What are you doing this week? Feel free to share!
Keep in mind it’s OK to do nothing at all, too.
(Lets pretend this is a day late for the US who observed MLK day, and not just that I failed at knowing which day of the week it was. 😬)
I’m trying a new side-project strategy: Getting up early, and working on them in the hour or so before my first morning meeting at work. The goal is to give me reason to go to bed, and to not stay up super late with side projects, as the sleep disruption has been getting to me.
For now, I’m working on a very basic Vector Art program designed for one thing: making it easy to build polylines and polygons for use in Love2D, and exposing Fennel (and eventually Lua) codegen to make it easy to import into Love2D projects.
So far, I’m still getting my feet wet with Fennel, but I’ve become charmed by paren syntax, especially in Janet, and Fennel is close enough, and a far sight easier to web-deploy (which matters to me a fair bit).
Once I get Vectron into a half-decent state, I’ll show it off here, but it’s not there yet.
Exactly the same strategy is my new year’s resolution, but it’s not going well for me :D
Yeah, we’ll see how well it lasts, especially given that I have ADHD, but I’m trying to weaponize the “work on fun/shiny things” in this case. I seem to have an endless barrage of ideas to work on, but have had a hard time actually working on them consistently, because I tend to burn out of a project when I work on it at nights, and it turns into a Bad Time because of how much sleep it costs me.
If it continues to go well, you’ll be hearing from me about Vectron next week, and the week after that and so on, if not, feel free to remind me later for a post mortem.
I’m learning to do network packet analysis using Wireshark & Golang to work with pcap files.
Setting up my new machine with nix-darwin, flakes and home-manager. Really feels like the correct intersection of configuration without drift, or (too much) hoop jumping. Also like that it can wrap Homebrew for when things are still available there but not yet in Nixpkgs.
Otherwise usual jobs around the house and spending time with the family. Oh, and work.
It’s a slow time at work right now, and I’m taking it easy my last semester which gives me lots of free time! So I’m learning how to connect a Zig shared library from my fuzzy finder to a neovim plugin with the luajit ffi. Also finishing up my own neovim colorscheme since I’m tired of gruvbox’s bright green strings. And hopefully getting over my hesitation and sharing one of my blog posts somewhere for once :)
@ithadtobedone: Pre-spring cleaning my lab.
@self-flagellation: side-by-side walking through select parts of firefox and chromium composition, input routing and text layouting code. Coding on my non-vt*** lua cli shell.
@fingerburns: finishing up hand-wiring a dactyl keyboard, then time to get the firmware side going. If that is painless enough (ha) try and design a thigh-mounted bottom plate.
@homework: paper of the week to read is Simplification and analysis of transitive trust networks.
I have a bee in my bonnet about the “correct” way to write server code in Clojure (tho my frustrations could be applied to any language that aims for functional purity): if I am to rely on pure functions in the core of my app and push the stateful changes to the edges, then how do I write code that doesn’t look like shit?
Using Clojure’s atom for state means I have to be aware of and work around simultaneous change (much like locking or transactions), which means writing swap! calls that update the relevant details using special functions that conditionally apply the change or return the existing value. This is ugly and awkward and prone to bugs.
After reviewing re-frame for use in our client app, I’ve adapted it for the server code as well, which has led me to some really nice patterns but also requires a somewhat ill fitting pattern for the response code.
Either way, trying to do this the “right” way instead of doing it imperatively (like my happier days in Ruby on Rails lol) has given me a lot to think about and learn about but has also wasted a lot of my precious hobby coding time.
At work, finalising support for static analysis of Python code in the analysis suite I work on (that’s been a long road but finally have finally seen some results in the last few weeks).
Outside work, trying to find some time to work more on dinit (https://github.com/davmac314/dinit). It’s seeing a lot more attention now that it’s used by chimera (https://chimera-linux.org/) and also supported as a primary init by Artix linux.
Working on Tailpam.
I’m looking into my first few bugs.
I’ve pinpointed the cause of the first one, but how to fix it isn’t very clear. Our desktop app publishes to a web service, and one of the parameters that we use isn’t fully supported in the web back-end yet. It’s in progress, but not going to be ready for a while. In the meantime, the “powers that be” want the option to default to “on” in the desktop app, so now I’m figuring out the best way to make it work temporarily until the feature is fully implemented to make it work for real.
I finally got around to writing a script to mirror my GitHub repos on SourceHut, and I need to learn about systemd timers so I have it done automatically.
I should also make it support more use cases… right now it only supports GitHub to SourceHut, and probably breaks if the SourceHut repo has changes that aren’t in GitHub.
I also want to finish reading “A Ditch In Time”, which I almost finished reading a week and a half ago, but still haven’t sat down to finish.
Learning Elixir Oban and Broadway to see which one will work for a couple of use cases I have at work and in a side project.
Working on a compiler that generates client and server code based on a simple description of the desired domain logic. It is tricky, but it feels like a very interesting direction to experiment with. Svelte is having success with just that idea applied to frontend code, but why not generate the whole stack that way?
Trying to get the SAM chip to respond to I2C is the big one.