18
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'm entering that LLM "Vice" Coding phase where it feels like I'm treading water as different models keep making similar mistakes and breaking features when unrelated features are added.
Closing the loop and implementing full e2e testing with playwright has helped in a lot of ways but you have to be especially careful when having the LLM write tests because it will very quickly decide that the incorrect behavior is expected and your test will actually be completely useless because it does a skip test, return early, or
>=instead of>etc.One strategy that I've really started to like is having an abstraction layer for the tests like a page-object model (POM). These are much too verbose if I was coding by hand but with an LLM it helps to have these types of things because the LLM really has no idea what is going on in the page without some kind of reference system ร la API.
The Qwen Coder free limits are starting to feel really generous compared to Gemini over the past few days. I would never pay for AI credits or cloud anything because it is all insanely priced but maybe I would buy a bigger graphics card next time. Using llmfit to find a good model, it seems pretty straightforward to run a Qwen Coder model locally via vLLM... but my graphics card is a bit too old and it is AMD so that limits my options somewhat.
For a couple days last week I got really into Bleve and running SQLite fts5 with detail=none and hand-tokenized trigrams. But after doing a lot of benchmarking it seems like normal SQLite fts5 with detail=full and trigram tokenizer will be the best balance for the performance profile that I'm targeting. If disk space was free then I'd absolutely add Bleve just for the stellar search performance but alas it is not free and adding it just for that almost doubles the database size requirements and binary size.
my favorite thing about coding assistance tools...
are the poetics of the insane
deranged code comments
of excessive length
๐๐คก
Interesting those comments are hilarious. I'm a hobby coder and have used some of it in my job. Nothing super crazy. Created some python libraries and scripts for automating things. I've started using Claude a bit and it's been pretty cool how quickly something's I've been able to do. But at most what I do is hundred to maybe 1-2k lines of code.
Super basic for me in terms of "use" and I haven't integrated any agents or skills yet. My main career is in finance, so the impact may be a bit further off, but I still want to understand how these tools work from a coding perspective since then I'll know better how to apply it in other areas. I'm also an executive so it's even further off for me.
I've used our internal copilot for some coding support, project planning, problem dissection. But it's interesting how the brain process switches... It feels different.
Yeah... I would say the most important control that you have which determines whether the LLM output will be useful or not is context. Unfortunately, a lot of these skills, agents, and LLM appendages are often counterproductive if not actively harmful:
https://arxiv.org/pdf/2602.11988
For example, I've never once had Gemini's "generalist subagent" do anything remotely useful which the simple find and replace program
sedwould be able to do a thousand times faster.Some harnesses and workflows are useful though. "Plan mode", where a large agent decides what to do and hands off the tasks to a medium sized agent, works pretty well. I think the generalist subagent is trying to do something similar but the model is just too small to do anything useful.
It's useful to ask different large models the same question, with varying amounts of context. Using certain words can predetermine the output like if you ask "is this a bee sting"? or "is this a wasp bite"? then the output could be completely different depending on (bee, wasp) but also (sting, bite). This can have dangerous consequences of course!
So you need to disprove often and withhold information at times to get the best result.
The other point in variation is that many of the big LLM providers are constantly tweaking their models and offloading certain queries to caches or smaller LLMs even while billing you under a different one depending on resource availability. And at the same time there are Mixture of Experts models which is the same idea just at the model level so technically they are billing you for the model you paid for in these cases but because you worded the question in a certain way the response comes from a smaller part of the model. But even normal big models have this locality aspect too... So there are many things which cause the quality of results to vary.
Definitely interesting. I've had to play with copilot and specifically exclude my work related information if I want something that isn't biased towards internal documents. I've really only scratched the surface, since I think I've been in a bit of denial. But ya these will certainly impact the job market and if you didn't know how you'll fall behind
All the time at the end of my coding sessions, I tell Claude "clean up the comments to reflect the state of the code, not the process we followed getting to it. This gets rid of things like
// X now behaves like Y instead of Z.With March Madness around the corner, I decided I would join the fantasy league (or whatever you call it) at work. This is a new job, so I'm looking for ways to try to connect with more people.
I don't follow men's college basketball at all, so I spent about a day vibe-coding a set of python tools to:
It cost me about $25 in anthropic API credits, and it's not perfect, but it was an interesting exercise. This is something I could tune and analyze endlessly, but I wanted to limit the amount of time and energy i put into this project, so I cut myself off as soon as the model could give me a credible answer.
The little bit of research I did about picking a bracket suggested that the higher seeds should be favored, but that a chalk bracket (highest seed always wins) is very unlikely to win. The model I generated predicted a few different upsets with high confidence, so it seems like it is doing something that at least sort of aligns with reality.
I mostly followed the model picks, but sometimes two teams model predictions were very close. If they were within ~10% of even (e.g. 54% vs 43%), I broke the tie by having regular claude research the injuries and playing styles for the two teams, and I chose the team that seemed healthier or whose play style (according to Claude) gave them n advantage.
I have been fantasizing about getting a perfect (or just very good) bracket, the way I daydream when I occasionally buy a lottery ticket, but I don't really expect it to do too well. At least it will give me something to connect with my new coworkers over.
Would love a follow-up. Or maybe you can share your bracket here once the picks are locked. Will be interesting to see how it fairs.
I love March Madness for all of the upsets. Curious to see how many of those are actually "predictable".
Here it is
I checked it a few minutes ago and it was right about 6 games and wrong about 2 so far.
Got my NAS quasi configured (stupid sea gate gave me 8 drives all with some issue so warranty claiming them).
Successfully configured the fire wall to only allow minimal access to it so thatโs nice
(Did not design these, printed others' prints):
3D printed a stand for my Anker magsafe charger.
3D printed spacers for 120mm fans.
3D printed a 100mm to 75mm set of adapting VESA brackets and used them to attach a tiny PC to the back of a monitor with some hex M4 screws I got in bulk
Continued trying to learn and mess with FreeCAD for designing 3D stuff. Getting better but the workflow is still super offputting to my brain. I've been trying Plasticity and liking it but not sure it's going to be worth it or not, since they're not focused on parametric side of things, so dimensional things are an afterthought. The landscape re: CAD software is pretty bleak. Plasticity does have a Linux version though and that was big selling point for me. I'm really undecided. It's editing/history is destructive so you can't really redimension things later either. Maybe I should tough it out and stick to FreeCAD and just try to continue getting comfortable with it.
Looked into a bunch of aspects regarding maybe trying to sell 3D prints, and just having a small personal business in general, and the anxiety of everything involved (and Etsy now requiring all sold designs be 100% designed by the seller and no longer allowing printing others' designs even with approval / when licensing allows) made me back off and probably stick to this for personal use. Maybe I'll reconsider at some point but putting that idea on pause a bit for now.
Now that I might be just sticking to personal use for the time being, I might try other community / free "non-commercial" CAD software, but not sure
Edit: realizing this is probably better meant for the "creative stuff you did lately" post than the programming/technical one though sometimes i have some difficulty distinguishing where something should go. I am probably having anxiety about this for no reason
Aah, it's definitely a thing ๐ I don't think you're explicitly asking for suggestions, but I wish to commit to text the concepts which were useful to me, in case someone else comes through here looking for advice!
But yeah, good luck with your free CAD adventure :3 they're quite a few options out there these days!
Thanks! Yeah it's definitely been an adjustment to learn the Sketch -> Part style of design. Especially where there are restrictions on doing multiple shapes together with each other unless you do it a certain way, etc. There was a video series about "moving from Fusion to FreeCAD" which, even though I've never used Fusion, helped me grasp a lot of the concepts and power in FreeCAD. I do think I can learn it well- I just find it annoying, even once I eventually learn it, that I can't drag 3D shapes and "draw" in 3D space directly. That's so much more intuitive to my brain, but if I want that, I need to use my Windows PC, or a Windows VM, and use software with a licensing model I'm not going to be a big fan of (whether that's Fusion, Solidworks for Makers, Siemens Solid Edge, etc. - and I'm not even sure which of things like these fit the bill- or Plasticity which will cost money and not provide enough)
On the other hand, FreeCAD is so powerful (especially given the spreadsheets / parametric stuff) for an open-source / free project that it almost feels better just to "deal with it" and learn it instead. Maybe the process of learning a more difficult tool will enhance my skills more than something where it's easy. I still wish it was easy though- drawing in 3D directly is so much more enjoyable haha!
I've fiddled with OpenSCAD too, and while I'm not a programmer currently, I've taken a bit of classes for it a long time ago, and done a little on my own, so I'm familiar- I've thought about trying to go deep into building models that way, but that feels like an even bigger hurdle, so maybe I should settle on something and learn it.
The beauty of the "put these things together like legos" workflow of something like TinkerCAD is I can get in and out with a quick simple design of a clip/bracket/etc for my needs in the shortest time possible
Oh, I'd highly advise looking into CadQuery if you ever want to pick up a software CAD tool -- it's dramatically faster and more sane of a programming language, albeit, with a different mental model (it's basically software FreeCAD).
Agreed overall that additive workflows are nicer ๐ may I ask if you've tried the Part workbench, incidentally? It leans more heavily onto boolean modifiers, so you can take primitives and smoosh them together more, and that's a more supported flow. There're still sketches, but you can leave them further from the forefront of the design process.
(note: I'm a lot less knowledgable about the Part workbench, and there may be terrible flaws in it -- ultimately, there's a reason the main supported flow goes through PartDesign these days)
Okay, thanks for the rec! Will check that out.
I have almost exclusively dealt with the Part Design workbench and not really messed with just the Part one, but I will play with it and see how it feels
I have minimal coding experience; mainly just java that I learned in a high school class that I've used to write Processing scripts for generative art over the past decade, later pivoting to P5.js and javascript so that I could work online without needing the Processing IDE installed.
I've recently started using Claude Code to help me write extensions for Autodesk Revit (via python and an add in called PyRevit, which lets you use python to quickly prototype extensions). For those not in architecture, Revit is the defacto industry standard for building information modelling and construction documentation. We model the building using discrete elements (walls, floors, windows, plumbing fixtures, etc...), those elements contain all sorts of information that inform how they interact with other elements, what materials they are made of, etc... Then we can use that live model to then create live architectural drawings that would be used for construction.
For the past few weeks, if I encountered something that took me longer than it should, or I found myself wishing I had a different way of completing a task, I would go to Claude, have a back and forth about what that feature could be, how exactly it would work, and then let it code away. Of course it takes some back and forth for debugging, I've found it helpful to direct it to send detailed debugging information to the built in pyRevit console.
The key extension that I've created so far is something I'm calling "Team Updates", that bootstraps a change description log on top of the native Revit model sync function. The way we collaborate is by having a central model (either in the cloud or on our local server), with users opening a local copy of that model, making changes to the model, and then "syncing" which is a push/pull to that central model, sending the changes that have been made, and pulling changes other people have made. What I've found lacking is a way of quickly seeing what has changed in a model over a period of time, especially if the project team is large and multiple people are making changes. So I've created a custom sync button that prompts the user to just enter a short description of what changes they are syncing, then the regular Revit sync happens. That description is saved to our project folder into a .JSON file with a timestamp and username, and then I have a separate button to then pull the changelogs over some past amount of time to aid in me writing change narratives for our consultants. It also will pop up when someone opens a model and it will display all the change descriptions that have been entered since the last time they opened the model (let's you catch up on what other people are doing).
The other extensions that I'm most proud of so far:
I fully intend to get this all up on github once I get it to a place where I'm confident it's working correctly!
Current tool kit
So have had two separate projects on the go this week, but minimal progress on either.
I researched implementing the Arr stack, since I have heard about it but knew very little. I also thought it might help in locating a still active torrent for a season of a show I am watching, where it seems hard to track down using my surface level knowledge. I am not sure if it is the right fit for my usecase, but I plan on spinning up a VM to try it out.
I have been researching testing frameworks to have automated testing on my React learning project. I learned that you can set up JUnit to run API testing, so will probably implement that for my backend testing. Once that is all configured and tests written then I will start researching testing for the frontend.
Feel free to reach out if you want to hear about my setup. A couple of years ago I implemeneted several parts of an -arr stack in Docker containers on my Synology NAS.
I don't have the functionality where it automatically finds and downloads stuff, since I don't need that use case, but I have the components to do that if I just configure it.
I continue to tweak it every now and then, but it's currently stable and working well for what I need it to do.
I am part way through implementing it, and it seems pretty easy so far. Right now I am just in the process of adding indexers.
With a big push to be "AI Native" native at work with a whole week of lectures on how to use AI effectively, I thought I'd apply some of my learnings towards a feature I own. The feature launched last year but it was opt-in only. We wanted to switch it to be opt-out by default and give users an easier way of opting out besides just reaching out to us. This involved updating our database schemas, updating our API, and updating the UI as well to include a toggle for this new column we were adding to the database. The existing codepath would now just check the database instead of a feature flag.
I decided to delegate this to AI to see how well it'd work. One of the things they told us over and over again during our lectures was that the AI output is only as good as your input. If you just say crap like "Build X, make no mistakes", the AI will build something very shallow that is technically "X", but doesn't have any real functionality. As a result, I spent roughly half a day going back and forth with Claude Code and our brainstorming skill to come up with a thorough plan on what to do. Luckily for me, an engineer on a sister team had worked on adding a toggle recently so I pointed Claude towards their stack of PRs and asked it what steps we can extrapolate from those PRs to use in my own project.
I'm not a designer so I left the actual UI design up to our design team but I got started on the coding in the mean time. Claude managed to do a fairly solid job once I had defined a thorough plan for it step by step. The code patterns in my company's repos have been a certain way for 10+ years now so there's plenty for the AI to go off of and generate from. Following my "plan", it managed to make the modifications I needed, run the necessary scripts, and get a small stack of PRs up. I had some minor tweaks I needed it to make but once it resolved those, I was good to go. I'm pretty impressed by its "abilities" and it really is just like having a junior engineer who will do as you say.
Having fun making a new telegram bot/userbot that allows an llm to use Tools to do what it wants in a chat.
https://github.com/jason-s13r/qotbot
Ask for a poll, it makes one by combining tools.
Wasn't interested the clawdbot stuff where giving an llm bash access and all the other credentials is the norm.
Have had two of these bots talking amongst themselves and holy shit the chat goes weird fast.
I am working on an ongoing project of implementing FieldStation42, which is a simulation of Cable TV any way you want to build it. The end goal is a recreation of my local TV stations complete with commercials and bumps from a specific period in the 90s. Playing on a CRT TV
Most of my time is spent looking for old media and commercials, sorting and creating fictional TV schedules.
Initially I had set too many rules for myself and stalled out a bit, but recently have made some encouraging progress and seeing it up and working has me re-energized.
This project has been fulfilling because of the research aspects, and hunting for old VHS tapes. I have had many great discussions with people about how they remember certain stations or when programs aired or what shows I am missing.