9
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 am working on an open source tool for monitoring an email server. The idea is that it regularly sends an email from one account to another and verifies that the email is received. It will have multiple options for notifications like email, twilio integration, and maybe AWS SNS.
I may add more monitoring capabilities (like checking a DNS record or hitting web page and checking for some canary text in the result).
My sister had an email failure (she uses Google work spaces) because her domain name registration lapsed and they reset her DNS records. Easily fixed by paying the bills, but it occurred to me that it's pretty hard to tell when you're not receiving mail. So this is meant to fix that.
One feature I am working on is having the sensitive values in the config file encrusted with an RSA public key. That way when consign laying around doesn't leak all the passwords and such, and you provide the private key to the daemon when you run it.
(1) YOShInOn RSS Reader: did a little PDD (pain-driven development) I alternate between a TikTok-like interface and one that shows me the top 100 most likely articles to frontpage and get a lot of comments on Hacker News. Then I go through my favorites and click a button to submit certain articles to HN.
This clumps together a lot of submissions that will be high scoring together so I have a long run of articles that get just a few votes and then I have several that frontpage at the same time which I think looks improper so I wrote a little script that randomizes the order of the submission queue on demand.
There's another problem that the delay between when Superfeedr ingests an article and I see it has gotten long plus the queue for submissions to HN can also get long so some news articles are getting stale before they are posted. The worst case was when I submitted a really good roundup article to Tildes about the first two weeks of the NFL season and I posted it after the third week which I blame partially on the system, partially on me having a cold, and partially on being preoccupied with the other kind of football.
Just putting a date on the stories in the display will probably help with that but really time sensitive stories need to jump the line I think.
(2) Three-sided cards: These cards have a front side, back side and "web side", for instance
https://mastodon.social/@UP8/110668614218055905
First I always printed cards in standard sizes like 4x6 or 8.5x11 inches, then I got a rotary cutter and calculated image sizes by hand, a few weeks ago I updated my software so I could specify the paper size and it would figure out how to fit the image to the paper. The real endpoint is to put a lot of cards together on the wall like
https://mastodon.social/@UP8/111052075781351382
and then I print a QR code that lets you "flip over" the cards and see the back sides
HTTPS://GEN5.INFO/$/A4B+6AWA+-RR3CS-V/
until last week that layout engine for that card required me to specify the URLs, sizes and positions of all the cards which is a hassle, now I can just give the card number (ex. 341) and have it read the size from the card database. I still have to calculate the position by hand but doing it this time I got closer to formulating the requirements for specifying something like "card 341 is on top of 342 and centered" so someday it will be better.
The project involves a lot of photography, since I have a cold I haven't gone to any sports games (my big subject now) but instead I have been taking photos around the house and learning to how to use my Lytro Illium to take ordinary pictures as well as figure out how to do something useful with the lightfield features.
(3) Blog: No progress.
I've been working on putting together a starter template for using NixOS as a terminal development environment on WSL. I haven't shared it widely yet because I'm going to publish walkthrough video of myself going through the guide and setting it up for scratch for people to follow along with, but I think the README itself is already fairly easy to follow along with if anyone wants to try it out before I publish the video on Sunday!
I’ve recently begun learning the Godot game development engine.
Now that I’m out of school, I have a lot more free time to actually pursue technical projects for fun.
Currently, I’m just learning the basics. But I’d love to create a relatively simple 2d, sprite based, D&D inspired RPG.
Recently I got interested in PrivateGPT/ChatDocs and training it on my extensive library of coaching practice plans and drills so that I can say something like, “create an hour long practice plan that has a 10 minute warm up, 10 minutes of footwork, 20 minutes of passing, 10 minutes of shooting, and a 10 minute cool down.”
The downside is that it runs super slow on my laptop, so my next step is going to be modifying it so that I can deploy it to Heroku and let them handle the compute.
Long term, if I want to commit to it, I could then turn around and sell access to it to other coaches.
My sister is a teacher and I think it could be cool to use all of her teaching materials to create lesson plans.
There was a new release of Deno with Jupyter notebook support, so I added support to Bot Typist to work with TypeScript (and not just Python).
Deno’s notebook support is still pretty rough though. Sometimes executing a cell fails due to a timing issue and you have to run it again. I assume it will improve.
After trying out my plugin to write a longer notebook I realized that GPT4 is getting pretty expensive as the prompt gets longer, so I may need to rethink things a bit or try a different LLM.
Been a bit annoyed at work. I've been working on a fix for this longstanding bug for the last month. Every time I go to get reviewers for my PR, I get told to add something and make a big change that requires more effort and more time. Hoping to get it merged in finally tomorrow but our code quality bot is giving me grief. One of the methods I'm working with has a lot of if statements for handling different cases of data and adding my fix under a feature flag pushes it beyond the limit for if statement branches (code smell for anyone familiar). While the method was already over that limit, my changes push it beyond that limit. I think there's a way to get around it but I need to ask engineers who know more than me.
On a more positive note, I've been working on a small quality of life project for a new product my company is working on. As a junior engineer, this is the first project I'm seeing from start to finish, even though it technically builds on an existing project. I've been making steady progress on it and hope to get it done by next week so I can demo it. Should also help the new product with discovery so I hope it brings meaningful traffic to it.
I've been working on Hyperwave, a full-stack starter kit for building RESTful apps (or Hypermedia-Driven, if you prefer). I chose to use Bun to reduce the total dependencies as much as possible, so you're getting a lot of bang for your buck with just a few dependencies: Hono (web server), HTMX, Tailwind CSS, and typed-html. As a developer experience, it's pretty awesome to write functions that return JSX on the backend, and ship 0 unnecessary javascript.
Enjoy!