17
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?
On previous threads, I explained some core aspects to the language I've been developing. 🧙
key concepts: No language-based manual memory management; No GC; No borrow checker; No Reference counters; Not based on any pre-existing syntax (although, it's lisp-like, without the parentheses), built in database, and full historical value and function effect logs, etc.
But - the project core has shifted, instead of being Forth based, I have decided to take an entirely different approach - I am turning the Linux kernel itself into a specialized programming runtime.
To start, I am taking Alpine Linux, removing a lot of the 'bloat' (which is not much considering it's a 5mb linux distro), forcing it to be read-only for all system files, stripping out the entirety of the file-system (replacing it with an in-memory database, sqlite-like). This should force it to become truly immutable (with full historical changes, diff'ing, and deduplication of all data through an omnipotent Registry (The Codex) for all changes and additions). The language itself is taking inspiration from existing shells like bash, w/ a REPL-like experience by twisting the idea of a 'terminal' and expanding beyond the confines of existing tty and bash shells.
All this to tie into this other modular hardware project I am working on, trying to decouple the CPU/GPU/&c&c&c from a mainboard, and allowing them to be plug and play, entirely by hacking the PCIe spec to pieces and forcing it to do something it really wasn't designed for exactly, but can. @ My company (DNX) we already do similar work by developing modular robotic platforms, but I am taking it to an extreme on the embedded side.
I could design it with existing OS', but it's a grand technical challenge to completely remake the tech stack, nearly start to finish! If it's horrible, great! That means it's running; If its a total and complete failure? Then I am happy to have tried.
Overall, it's three very different projects that rely on each other. It'll take some time, but it's moving at a decent pace.
All of it! and that's the beauty of everything! No idea where all this is going to go, but I am having a lot of fun, I've had someone recently join me in trying to get it running, so that's marginally exciting that there is at least one other person in the world who doesn't see the possible futility in all of it and willing to dance in the madness.
Haven’t read about this in previous topics, so while I’m gonna ask some questions, I’ll focus on two areas first (since as you note, the project does encompass… a lot :D)
This is cool, although I’m not quite sure I'm understanding correctly – how is the memory managed if it’s neither done manually nor GC’d?
Also, how does a built-in database work and what does interfacing with it look like? I.e., SQL-like (but flavor-independent) statements in code like I believe Vlang intends to do?
Yay for security! I think immutability, in “real” OSes as well as all sorts of other applications, is becoming more and more of a trendy topic to be concerned with (and, to be clear, rightfully so).
Still messing around with my modded iPod.
Decided to crack it open again to replace the screen and reformat the micro sdcard.
After putting everything back together I noticed that the screens colors are even more washed out than the previous screen.
Also it’s now freezing even more often with Rockbox.
About to throw this thing out the window….
Had never heard of it, but happy it exists, kind of the postmarketos of the music player world? Really cool.
So i have been working as a tech lead for a while and really have been burned out, feeling like i can’t do much anymore since I’ve been so frustrated with work.
That is until I started working on my own ideas for a bit. I haven’t done much, just built a small stack I’m happy with that I can use for any personal/professional project. But I’ve gotten auth working and just a landing page + small protected section.
Now I want to build a few projects in the next few months
What tech stack is it? What kind of auth are you using? Rolling your own or using some off the shelf provider?
Any specific ideas to work on?
So I am using NextJS for the Frontend, FastAPI for the Backend. Supabase for Auth - I am enjoying using it a lot. I have previously built it all manually, and while it's doable, I am happy to be able to not have to think about everything myself, have quick OAuth, Magic Links etc.
I haven't deployed anything yet, I will look into vercel, but I might just run it on a VPS myself.
I am constantly writing down Ideas, but I haven't boiled down to a specific one I want to work on immediately. I've just been experimenting a bit with RAG/LLM Agents which I have to use for my dayjob anyways so that is one thing I am looking at... Other than that, I am just looking into problems I encounter daily that might need solving
Working through cryptopals, attempted it a few years ago but gave up fairly early, it feels a lot more easy now with a bit more programming experience and maths knowledge, definitely a really fun thing to learn about crypto pitfalls! I was also helped by using cryptohack for a bit which is also fun, just a different style of challenge and a bit more handholdy, though covering more content (including modern post quantum stuff) which is nice
I've never heard of those. Looks cool, thanks!
Been working slowly on motorizing some old Alt-Azm telescopes. This has been a semi-painful process, as I am capable in the design of the mechanical parts, and in the software side of things. But the low level firmware and hardware side of things (programming microcontrollers) has been a struggle.
I've been following the OnStep group for my approach. They have been kind and sometimes helpful. I find the group can be hit or miss, and is very full of people making cryptic sentences about things that only other people on the forums for years would know lol.
But that's just where I ask as many clarifying questions as I can.
Currently going through an unit on Android app development at uni. I'm not a fan of the professor, but it's interesting! The API feels a bit convoluted to me, but I'm starting to understand how to navigate it decently and it seems good for making things quickly. I like ConstraintLayout, I wish I could use something like it in web dev instead of positioning things with CSS.
We've been tasked with producing a fully featured 2048 app. I'm a bit behind because I've been worrying overmuch about architecture, but I'm still progressing at a good pace.
Ah just basic dumb linux homelab stuff lately, compared to the wild projects everyone else here is working on.
I want to move away from SoftRAID on MacOS because they have switched the licensing fees and structure of the software since I first adopted it over a decade ago. I am using ZFS on all my Linux servers and have been testing it on MacOS lately with a backup drive of the data, just hesitant to pull the trigger and wipe and rebuild this pool.
I also reinstalled Linux on a T2 2018 Mac Mini again after something happened to the previous install on it, I'm hoping to move my photography workflow entirely to FOSS but I often still get caught up tinkering with other things. For instance, I checked out Docker again and I forgot how easy and fun it was.
For photography, not sure if you picked out software yet, but I started using Darktable for editing RAW photos based on a recommendation from another user on Tildes. Overall, it works well and I have not had complaints.
I've been trying to get into Darktable for years. It's by far the best for my needs especially because I'm so used to Lightroom. a
I've been using it again lately and I think I'm finally getting it the more I tinker with and configure it to my preferences.
I just wish it was a little more approachable out of the box, I would have taken to using it a decade ago. Lightroom was so self teachable to me because the UI is amazing and it has a flow. Darktable is missing that, I feel like there's no rhyme or reason to some features or improvement to the modules section and while after using this, Lightroom definitely feels limited in scope of features comparatively, I wonder if maybe that's also a good thing? I'm sure I'm a couple of tutorials away from making it work so this time I won't give up.
I was using Photoshop Elements to do simple edits on my pictures before, so Darktable was a huge amount of features given to me all at once. I did not watch tutorials (probably should have, could probably still benefit from watching a few still), but slowly learned the features I wanted through trial and error. There are still some pain points I have with Darktable, but for FOSS it is quite full-featured and I will probably stick to it longterm.
If you haven't tried wget2... it's pretty good. I've been background-busy the past couple weeks buying cheap hard drives (SAS 3TB are easily found for $15 and cheaper, including shipping) and downloading small websites. There are really so many websites out there but the
hegemonydominance of social media sites which de-prioritize links (or at least unverified domains in relation to the verified and thus prioritized) has kinda killed discoverability.One such site that I'm rediscovering is Glass Works. Lots of interesting content and comics here! You could get lost in there for a few months before you realize that you don't know where the exit is and now you're trapped inside someone else's mind-library (though it is not as scary (branching.... multicursal) as this one).
I'm at the final stages of my commercial game project, Acid Web. I'm mostly making levels at this point, in a home grown scripting language. Trying to write five sufficiently unique and challenging levels a day is already tough after five days. The levels are short, though, and it's easy enough at this point to factor code into reusable subroutines, after adding looping, conditional branching, local variables and expressions. I never intended for it to be a full-fledged scripting environment, but after successively realizing how much of a pain in the ass I could save myself by adding feature after feature to the language I'm at the point where a more rational choice might have been to use Lua.
I've been procrastrinating a lot, though. Mainly through:
This looks rad!
I think it's cool that you have your own scripting language. What made you decide to write your own?
Thanks!
Poor planning mostly :D
Initially I'd imagined very simple requirements. Subroutines, commands to spawn enemies, to wait for the specified amount of time and to wait for you to destroy all the enemies. Didn't need much of a compiler for that, it resembled a stripped down BASIC more than anything. Then after a while I added a basic looping construct to avoid repetition when I realized that would be a pain in the ass. Eventually I added global variables and expressions because I realized it would still be a pain in the ass to do things like drawing geometric patterns of enemies and parameterizing things via global variables. So I added local variables and function parameters to the subroutines, so I could factor some of that out into functions.
In hindsight, maybe I could have solved all this with coroutines in Lua, but I'm happy that I didn't for a few reasons. It's been a nice learning experience figuring these things out, and my language has no dynamic allocation during run-time, which is somewhat reassuring for a game.
So my DIY MP3 player project is moving along slowly. I have a screen and clickwheel, but due to almost non-existent documentation I have struggled to get the screen working. I am thinking the best bet is to return the screen to Amazon and get a different screen with better documentation. In buying the second screen, I will need to order the battery at the same time to qualify for free shipping, so I have been thinking about batteries recently.
I was trying to decide on which battery solution to go with, either a nondescript lithium ion battery or a system that can take 18650 battery cells. The nondescript solution is probably going to be more compact, but replacements in the future could be problematic. With the nondescript, while I may be able to get a replacement, it may be a different shape and therefore will not work in the case I will have built. 18650s have the potential to make the entire thing bulkier, but the advantage is when the battery fails it will be easy to replace with a standardized battery shape. Prices are similar, so I am thinking I will order the 18650 system, since one of my concerns with off the shelf audiophile grade MP3 players is lack of repairability, especially with the battery. I think some of this is just me becoming more disillusioned with device manufacturers not treating batteries as the consumables they are, and since I am my own device manufacturer I can address it in my own device. Especially for an audio product, I am concerned about longevity, since good audio stays good for a long time. I own a microphone that I think mine was manufactured in the 1960s (originally release in the 1950s), and it still sounds great, which proves that good audio stays good. So, I am trying to maintain repairability as much as possible in the design
Maybe you could use a cylindrical cell that's a smaller size than a 18650? I recently bought a tiny Bluetooth amp (Snowsky Retro Nano) that uses a replaceable 10440 battery. It's the size of an AAA but it's 3.7V. There's also the 14500, which is around the same size as an AA. You could potentially use a couple of them to get close to the capacity of an 18650.
I did not think of looking at smaller standard batteries. I will research to see if I can easily source a 14500 battery and a 14500 enclosure that handles output and input via USB ideally to simplify recharging it. The initial reason for choosing an 18650 was not because of capacity but because of lack of knowledge of other standards. A single 14500 probably has enough capacity for what I need, while slimming down the overall project which will be nice. I will research more to figure out if sourcing a 14500 is easily done.
Edit:
After some research I found one possibility for 14500 and one solid option for 18650
One other advantage of cylinder batteries is they are way more durable than pouch batteries. I don’t think you are trying to sell this project, so you don’t have to worry about durability necessarily, but it might just be better peace of mind not to have to reinforce the case you end up building.
And I agree with the other commenter about looking for smaller cell sizes. I would guess there is less variety available, and you can’t repurpose used cells as easily, but maybe you can get durability and repeatability without the added bulk.
Durability was not something I considered. As my case is probably something I will ask a friend with a 3D printer to print, having a cylindrical battery may be a big benefit
I finally got past a blocker for my rewrite of audiobookcovers.com (I can’t count the number of rewrites I have done).
This time I want to keep it simple. It’s going to be a react client rendered SPA. The server will use deno, and tRPC with react query integration. In my previous work, I fell in love with the typescript first support of bun, and then the extra quality of life DX improvements of deno. It is finally, in my experience, finally ready to support libraries built for node without any extra work. Deno 2 was the biggest improvement, but there were a few stumbling blocks that they have fixed since I used it last.
I was getting a react hook error trying to add tRPC. It turns out the speedy web compiler was causing that issue. My projects are not complicated enough that SWC makes any noticeable difference, so I just disabled it.
I also added tailwind v4. I didn’t notice when it released, but looking through the release notes, it looks fantastic. No more config files, it’s all just in css. Also no more postcss, it’s just a vite plugin. Way simpler to install. And they added 3d transform classes. I was previously using a tailwind plugin for those, and had some issues with it, so I am looking forward to rebuilding my components with it.
The only disappointing thing about my project currently is the database layer. I am using duckdb for a variety of reasons. They seem to have better DX than SQLite. They have native support for vectors, which are essential for search in this project. I want to use SQLite, but all of the node SQLite libraries I have tried in the past have some weirdness that I have been unable to deal with. Currently libsql is the most promising library and SQLite replacement (native vector support), but Turso is ditching that in favor of a rewrite of SQLite. I am sure it will be good once it’s more mature, but it isn’t ready yet. And currently installing libsql from homebrew only installs the http wrapper, not the libsql cli. Anyway, being on duckdb means I can’t use drizzle, so no end to end type safety. It’s a huge bummer, but it is what it is. The duckdb node neo API is actually pretty decent compared to some other direct database apis I have used, but it’s still worse than something like drizzle.
Anyway, I absolutely love the deno + react + vite SPA + tRPC + tailwind + tanstack query + tanstack router setup I have going right now. I think this will be the default for future projects. Maybe I’ll finally finish the audible drm stripper I tried to make in the past. But that is a problem for after I finish this rewrite.
Thanks to a recent thread I'm mostly messing around with little projects in helix to see if I think it'll be worth using.
From an F# perspective I suspect not, as not being able to push instantly to the repl is quite annoying. I also find it somewhat weird that when you're in insert mode things like ctrl+left/right will no longer jump entire words, which is nice for quick multi-cursor scenarios that you can logically solve by using some combo of those and home/end, as opposed to a complicated chaining of select and regex.
Slowly adding graphs with matplotlib to my plaintextaccounting workflow - I use hledger for tracking expenses, and for a while had just been using the default text outputs.
But I wanted some graphs, so I could get a better gauge of how much from each budget I was spending, and found a gist by someone who had done something similar. I’ve just been working on expanding that out more to have graphs that are more useful to me.
Next week (or this weekend when I track my weeks expenses) if I remember I’ll post some anonymized versions of what I’m talking about.
I've been trying my hand at game balancing using Google Sheets. I felt lost for a bit but I think I finally have something I can use for my game.
In the process, I've learned:
It was a little weird feeling like I didn't have anything visual/entertaining to show off throughout the week. Sometimes I feel like I did something cool using spreadsheet formulas, and I don't know how to effectively share/communicate it to strangers hahahaha.
I did, however, prepare something for Valentine's day ahead if time (like early this week), before doing spreadsheet stuff. It's a bit of vfx. I'll share it here as well, I hope y'all like it: https://imgur.com/gpdyp7L (it's just short, less than 10 secs)
I've honestly spent a lot of time reading some of the latest papers on AI to get some basis down. Plan on also digging into using Prophet from Meta a bit and dig into some random data.