13
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've been doing some minor updates on my from-scratch golang ssh alternative, xs, finally adding what I hope is proper handling of network disconnects to clean up dead sessions; and I'm currently looking at adding Streamlined NTRU Prime 4591761 key exchange to the available connection options, since 'djb' (Daniel J. Bernstein) posted on his blog some thoughts about KYBER. xs supports all KYBER sizes, but I might deprecate KYBER-512 support, given what he said about it...
NOTE: this isn't ssh, not compatible at all. Highly experimental. Don't use for any important security scenarios.
That was… a wild read so far. Even without understanding everything (one could say, much at all) in detail due to missing background knowledge, the author discussing this makes it read like a thriller. Couldn’t stop reading! And it is explained very well too, to the point where I could understand the arguments made even as a layperson in the PQC topic.
While I’m not entirely through yet, I will definitely read his blog again in the future. Thank you for sharing not only your project, but some background thoughts on it as well!
Last night I ended up creating this little completely client-side website in a single HTML file to export images of long text posts as an alternative to paying for Twitter Premium or writing threads, because the UX of both those features sucks (requires additional clicking/tapping to see full content), whereas images are always shown.
I call it xeetshot - longer xeets without premium or threads (sorry Elon).
This is what it looks like in practice, I think it fits nicely with the design of both the web and the mobile apps when used in dark mode.
what database and language did you build this in?
It's literally just a single HTML file with some inline JS 😅
Everything is done client-side, a truly "serverless" application, if you will (lol).
tailwind is so cool
Going to finally start digging into Typescript tonight and make a basic Todo project or something to practice this weekend. Been putting off learning it for awhile but, feel like I'm ready to start getting into it finally. It does not seem that bad so far..
Still building a small webapp to track books/games/films/etc I want to play/read/watch/etc. Ended up doing a lot of work to parse HTML dumped from Goodreads after I realised they not longer have an accessible public API and their CSV export doesn't include all your data (notably, it's missing dates you started a book). The whole project is raising a lot of questions for me about how best to store and cache data.
Finally got around to figuring out cert-manager (letsencrypt+cloudflare) and ingress along with metallb on microk8s.
While it may be straightforward to some and I use AKS/EKS at work although not an expert but enough to complete projects/tasks. I found several issues along the way.
Refreshed microk8s version via snap but add-ons need to be done manually. Updated deployments and did a rolling restart.
core DNS/calico issues on a node in a 3 node cluster:
1x Pi 4 8gb
2x HP Elitedesk 800 G2
The Pi being the issue. Even with minimal pods on it, was struggling causing calico issues along with DNS lookups/timeouts in core DNS. Removed the Pi from the cluster and had no DNS issues!
Typos in letsencrypt endpoint and finding out stage vs prod endpoints. Issuer and ClusterIssuer differences as well.
ingress endpoint always being 127.0.0.1: git issue and fix
Once working, was able to update my Adguard Home DNS custom filtering rules to point to the metallb IP for the desired DNS entries.
Got tailscale split DNS working as well.
Time to look for another mini PC to replace the Pi 4.
I like Brett Domino’s song consisting only of four-letter words so I made a webpage playing it with lyrics last weekend. It was fun and I got to practice Javascript on Astro.
Not a huge project, but it was fun nonetheless.
That's fun. Never heard of the song before, but I can see why you like it. :)
Simple and clever implementation too, using the width="1", height="1" embed of the official YouTube video. 👍
Been knee deep in a heavy rework of some code so that a vendors output is obsoleted.
Has led me down the path of trying to get better again at firing off multiple sql queries at once through code (as i basically have on point where I need to just get all the data and go from there), and it is so much more confusing that it sometimes feels like it should be.
I'm doing this all in F#, which is WONDERFUL for literally everything I've ever done, and even has really neat stuff for this, but unfortunately it falls into one of those areas where a lot of the docs sorta assume you already know what you're doing, so i'm stuck jumping around trying to figure out exactly how best to structure these.
Sounds like you need a connection pool with multiple threads/cursors.
If this is really what you need, at a certain point you may be better off with dumping the data out of the database. For example, if this is mssql use the bcp utility
To be clear "go from there" is "manipulate the data in memory line by line comparing/combining the multiple outputs to massage it into the acceptable format for submission".
I don't think you can just call bcp to dump into your program can you? And given i'm only asking for about 100-200k records at a time it's performant enough so long as you have an index on the columns you filter with.
I'll have to look into the connection pool thing though.
Is it possible to do that manipulation in sql first and output a final formatted dataset? That is usually my preference.
Normally I would, but in this case there's enough data across enough tables with enough conditions that making a fact table/view is just way way too large, and very awkward in sql, especially when it's going to wind up in F# anyways, where the logic checks and conditionals are a lot easier to do.
I had several CTE's and subqueries before I decided that SQL was not the ideal tool for this particular query.
I've been doing a bunch of stuff on notado.app:
htmx
to add a nice search-as-you-type feature (technical video walkthrough)Next week I think I need to really start finalizing all of the updates to release the next version of
komorebi
. It's still quite an involved process, but I think it might make for an interesting video ("how one overwhelmed open source dev pulls out hair trying to publish a new release" 😅)Finally upgraded my routers version of openwrt yesterday. So far almost all my time has gone into finding out why udhcpc can get a lease if i run it from the command line, by not if ifupd runs it.
Turns out there's two things. One is that ifupd uses -C, and the other is a different command file to handle events. A symlink solved the command file, but i have no idea how to suppress the -C.
I’ve been trying to build a kanban board in react, but trying to get drag and drop to work has been an incredibly frustrating experience. I’ve been using a library called dnd-kit since it seems to be actively maintained, but progress has been slow because both the documentation has been kinda vague and because I bit off more than I could chew by over complicating everything before I got a working sample. But I know the project will look hella good on my resume once it’s done.
I've got two projects going on. One is an internet riddle game built in React....like the 90s/early 00s style (ala NotPron, OddPawn, etc.)
The other is just a personal website also built in React.
The first is just a passion project. The second is to sell myself to land a new (hopefully remote) gig.