15
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?
Released this today: https://github.com/derv82/wifit3
Sequel to wifite2, wireless networking “auditor” (hacking tool).
Finally figured out how to get monitor mode and injection on Windows (and Linux too). 3 months later, it supports 15 chipsets and has a sweet ass TUI.
Tried blabbing about it on Reddit and HN, but it seems to get auto-modded everywhere. So here it is, world exclusive to Tildes 😆
I’m not familiar with wifite. Who is this tool for? What would they do with it?
Hack the planet!!!
Most wireless networks are mostly secure, but some vulnerabilities exist.
Like, WPS PINs are 8 digits long (10 million possible combinations), but due to flaws in the WiFi protocol, it’s trivial to crack the PIN in ~11,000 guesses.
And “handshakes” and “PMKIDs” are just the WiFi packets that contain an encrypted password, and can be cracked offline.
It’s a hacking tool, to hack WiFi
Decided since I couldn't sleep on the 1st, that it's "AI August" and threw the $200 at Claude for their max tier and have been kicking the shit out of it ever since.
Skipping all the controversy, i am in a situation where I've needed to do this.
I've kicked the tires on free models and found them....decent but only in small use case. That's mostly fine as it's a great tool for "okay I think this mess of a query could be refactored" or "mock up these 20 lines using X library i'm struggling with".
Professionally and personally however I'm at a point where I need to evaluate "the top end" so I figured $200 is something I already budgeted for and now is the time to do it.
Professionally I'm poking at "setup a project template for blah" style stuff. 100% segregated from any actual professional code or systems, but helping to mock up some things we know we need to make and might be lacking in knowledge/skills in some areas. I know that given the time several of us can get over this hurdle, but time isn't something we get much of, so seemed like a good starting point. I've also got some low hanging fruit stuff like "clean up this ROP" that it might be decent at.
Personally I've had about 1000 game/product ideas i've wanted to prototype over the years, and I've had a "perfect framework/app" for that in mind forever, so I've taken a game I already know but is the right level of stateful/complex (Turncoats) and used that as the core to try and build this.
Obviously i'm also trying to keep an eye out for if I NEED the top top model and usage (almost certainly do not) or if getting away with a cheaper one ($20 i believe) makes sense.
So far-
Professionally:
It's impressive, but I come back to the problems I keep seeing with AI (again skipping ethical/controversy stuff):
My rough understanding (do need to fact check it) is this $200 a month tier is really somewhere between $4k-15k in ACTUAL cost that's just subsidized to shit. Just throw this at the top as the implications of that are farther reaching and an interesting economics discussion, but I don't think i'm getting $4k+ a month out of it...
A big reason WHY i'm not getting that value out of it is...well I feel like this is a one and done set of things? I could see myself saving up "AI work" that's right at that annoying edge of "i know this is doable, our environment is causing some unique issues, I don't want to spend time on this right now". Wait 6 months, do a 1 month spend, bash through the problems with the fancy AI. Learn what we need, document,....and I'm done? It's very very hard for me to think of a use case where I need/want a monthly spend. I know that's what they keep trying to sell exec teams on, but any decent coder can say "yeah i'll throw the AI at it for a week, make it vomit out how it did the automation, document, review, and then we don't need it again"
Personally:
It's been interesting. The rough product i'm looking for is:
I picked this project because it's something I want to kick the tires on, and (as far as I can tell), no one else seems to be doing. I don't think this is some product i'm going to sell, so much as "i'm curious if there's not a lot of obvious training data how well will the AI will handle this?" with a side of "and if this works I think its the prototype library I've always wanted and can use it for the things I want to test rather than mocking up someone else's work".
I will say it's been impressive. As others have mentioned it does feel like running a decent dev/team sometimes, even if there's LOTS i'd still say it's weird about (obvious misses, zillions of comments, etc). I'm very much testing "what happens if i refuse to write code myself" right now as I know that's how people are adopting it, and lets just say I understand why I'm getting so many bugs from offshore dev's (i don't run any but I deal with vendor teams). Knowing/being able to request "hey build this logging/testing/simulation feature" is important and without it it'll happily pass all its tests and tell you things are working that aren't.
Still not sure how much of the $200 i'm using here, and I again feel like if i'm productive this month, I'll probably not need it for the next year.
Oh and on that note, if you're ever feeling like you aren't coding when you should be, just set aside $200 which you promise to give to the least financially literate person you know if you don't hit your personal goals. Sure does light a fire under your ass.
In general:
The current structure of AI brings to mind a weird (fake) example of search boxes.
In my life, searching a pile of documents has gone from "you really need to know what you're doing and it's still hit or miss, especially if you're not sure of the verbage in source data" to "yeah everything is a built in fuzzy find that shows all possible results and is trivial tweak and only gets better if you know some basics, and gets REALLLY good if you know your regex".
So with that in mind, my view of AI is that say we were still living in "shitty search box" times, and someone had figured out "awesome search box"....except unlike the modern version where it's just local to the project, EVERY searchbox is REQUIRED to route through google's server farm, even when you're checking a 12 page pdf.
I really think the future of this tech is a lot closer to "everything gets a local and specifically trained clippy", not "every copilot/claude/gemini endpoint answers any question you can think of". I used copilot in Excel for a quick "I know this is possible in formulas and I hate doing it" moment and that's fine, but I can also ask it for a flaky crust chicken pot pie recipe. WHY?!
Something for you to explore maybe is skills, specifically the ones that center around how claude code should approach things. What I have found that, at least for green field projects, it helps a lot to work with skills that force good old development practices. The superpowers skill plugin is the one I used. A bit more information in this comment I wrote a while ago about it when I was basically doing the same thing you did.
I specifically mentioned green field projects. As I still haven't found these tools to be able to handle any code base of significant size without all sorts of issues or extreme token usage (and still having substantial issues).
I did experiment with creating two skills,
codebase-discoveryandcodebase-auditfor existing code bases and bigger projects with some limited success.My conclusion is that I can see how using code harnesses and herding cats(agents) does help some developers be more productive in output. But given all the idiosyncrasies and various other behaviors requiring iron discipline and eye to detail I am also convinced that in a lot of the cases (potentially the majority) does not provide a net benefit as all time gained will need to be patched later anyway.
This is interesting because my experience is quite the opposite. At work, our code base is huge, and the models seem to handle it fine. I have an agent file that orients the model to where the different major components (front end, back end, etc) are and how them work together. If I'm adding or updating something, I may give it a starting place, like a page url to get it oriented. But it's capable enough to trace that path through the router, find the components, find the hooks, find the backed endpoints, services, etc. I usually start in planning mode to make sure its on the right track, but it can usually do it. I've seen claude sonnet 4.5 and chatgpt/codex 5.4 and 5.6 do this quite well.
It's also a lot of repetition (17 crud APIs in a trench coat). So it doesn't need to understand the whole code base to add a feature. But if the code base were that badly architected, it would be hard for a human to deal with it too.
I guess it may also depend on what you consider "a lot of tokens". We're not having any limits put on us in terms of spend.
It is impossible for me to judge your code base of course. What I can say is that
Had very little to do with my experience. A consistent code base will help the model and human alike. But, without constant vigilance and tuning the CLAUDE.md file I still saw it going for its own solutions and patterns that simply are not found elsewhere in the code base. Certainly when dealing with issues and any sense of urgency in the instructions the various Claude flavors (but also other models) tend to go for "patching" instead of solutions. Again, using skills like the superpowers "systematic-debugging" skill does help a ton.
It is not that I couldn't get results out of it. But, it required so much oversight and vigilance being aware of these... micro hallucinations that to me it is simply draining. Which opens up the risk for being less vigilant, etc, etc.
Again, I can't judge your works code base and the way you use it. Maybe you don't find all of the above draining, maybe your code base at work is exceptionally well suited for LLM wrangling, I dunno.
That's great, but you have to wonder how sustainable that will be in the long term. We already have seen various indications that a lot of the plans companies are on are subsidized by the VC investments and do not cover the actual costs.
All fair points. I definitely saw the patching / getting stuck in a local minimum behavior more with older claude models. I guess another couple of data points:
Having said all that, it does sort of depend on the moon and the tides. Sometimes I will almost one-shot a whole feature. And other times, I have to scrap a branch entirely and start over if it gets too far into the weeds.
Oh, you're right, I do wonder. But this job has flexible working hours, a great team, an interesting problem to solve, and a pretty good culture around setting a high-enough standard for the code we "develop". In the end, these turn out to be the priority, especially because I don't think it's easy to find a company not pushing AI right now.
It helps that we're building a SaaS platform that's business- but not safety-critical. The platform works in a way that we can pretty easily validate the correctness of it, and it has a lot of human oversight in its day-to-day use. The domain is also underserved by technology, so even bad software would be better than nothing (and I think we're delivering way above "bad"). For these reasons, I don't feel morally wrong about it.
I actually did leave my last job because it was a safety critical domain and people were relying on AI to do things that it wasn't suited for.
In terms of subsidized cost, I think we're going to see falling true cost as models reach either an actual plateau, or a level where they are "capable enough" for all the general tasks demanded of them. Then I think we'll see the focus shift to efficiency, the way it did with CPU architectures in the 2000s -- a shift from raw power increases to increases in operations/watt. I suppose it will be interesting to see how for them get before something else captures the imagination of the VC / investment capital.
Whether I like it or not, it's a paradigm shift in our industry on par with going from programming in machine code with card stacks to modern compiler tool chains, except it happened in 3 years instead of 50. In the wider world, I think it's going to be at least as big as computerization. In the 80s and 90s there were still plenty of places where there were no computers in office work. Now imagine having an office job of any kind where you don't mostly use a computer.
In the end, I can control almost nothing about the way things are going in the world, I just try to make my way through it as best as I can.
I've temporarily moved into a fairly decrepit old farmhouse. The window AC unit in the bedroom is a good modern one, but in the middle of the night it will switch back to Eco mode, which will cause the fan to cut off and wake my fiancee.
I started off asking Claude to ingest the manual and see if there's something I'm not doing. The bot did that, and checked forum posts, and came back with this idea that brownouts in the aging house infrastructure are causing the mode to flip from low to Eco.
Naturally this window unit has wifi. Claude found the sdk and wrote a script to poll the unit's mode and set it back it it switches modes.
Haven't seen it trigger yet, maybe soon.
i have decided to start working on my own silly little linux distro. the goal is to provide a teeny tiny little immutable host for containers. think talos linux but not for kubernetes, and not strictly api-only
i would like to cover other security properties: immutability, bootstrapped, etc. also, eventually i would like to add support (or fork it to support) for vms, ideally as a dom0 for xen
claude-command-highlighter
Syntax-highlights Bash commands in Claude Code.
Been working on this for over three weeks now, and am pretty pleased with it. I use it every day, and can't do without the highlighting any more. It makes reviewing Claude Code's Bash calls easier and faster.
I've been working on my book tracker app, largely polishing the sharing features for turning your charts into images that are easily posted on social media. And starting to plug away at the giant backlog of bugs.
I'm also currently working on a feature to help you come up with a rating for a book after you finish it. It basically uses the eye-doctor approach of "better A or B" where you rate the book relative to other books you've read.
https://ibb.co/1fmB8xVh
That seems pretty neat! Is it all a web app hosted somewhere, or is it a desktop or mobile app someone could download & use offline?
That “eye doctor” approach to ratings is a neat idea for sure.
It's a webapp. I have an android app version I've been playing with, but it's not offline.
I added a small feature to my music sequencer. Currently, it's organized as two panes. To the left you have what is essentially a list of pattern indices, representing a song structure, called the arranger. To the right, you have the pattern sequencer where you edit individual patterns. To edit a pattern at a given index, you move the cursor in the arranger to an entry with that index.
The feature I added was to automatically advance to the next entry in the arranger when the cursor in the pattern sequencer moves past the end of the pattern, and move it back if the cursor moves past the beginning of the pattern. That way you can edit sequences of contiguous patterns without ever switching back to the arranger to manually change pattern.
I want to keep the arranger and the pattern sequencer as independent from each other as possible, though, because it makes it so much easier to reason about side effects. The way I generally do this is that upon input, I invoke a master handler which then passes input to either handler dependent on the GUI state. If the arranger is enabled, it calls the arranger handler, and if the pattern sequencer is enabled, it calls the pattern sequencer handler. So the master handler has access to both, but they don't have access to each other.
My solution was for the pattern sequencer input handler to optionally return a command or event indicating that its cursor has moved past the end/beginning. The master handler sees the command and makes the necessary changes to the arranger. The arranger and pattern sequencer remain blissfully unaware of each other.
Maybe a bit mundane, but one technique of many to keep in mind to avoid hard coupling.
Working on my Robot arms, and getting them to run in a simulation in the browser.
Of course Luna has been consuming a lot of time.
And yesterday I have been looking for these “comment to DM” instagram tools. And all these SaaS want you to pay like 15-40 euro a month for the functionality. But I just built my own, so I can host it for free on cloudflare. The setup was a bit more, but at least I don’t have to pay that much for a simple webhook and API call + setup website.
The automation would’ve been easy already a while ago, now the UI to configure it was also very easy with Claude
I've started working on a different project since the last time I posted here (July 2025). I'm now working on a horde survival rhythm game with some friends! I've put my turn-based strategy game on hiatus since October of 2025. There's currently some downtime within the team, so I now have the opportunity to post here! There have been some interesting things I've been wanting to bring up in this recurring thread.
Dealing with Desynchronization between Visuals and Audio
It's a bad time for the player when what they see and what they hear in the game isn't in sync. There's two problems where I've only been able to fix one:
1. Logic-based "Beat Clock" Desyncing with Audio
For context, we're using an audio middleware called FMOD. I think it does audio playback on a separate thread from Unity's main thread. My initial implementation of a "beat clock" was purely logic. I would calculate the interval between beats based off of the BPM of whatever music was currently playing, then do some math based off of the time elapsed since the "beat clock" started ticking. In perfect conditions, the math worked perfectly. However, conditions are rarely perfect outside of my workstation (like on the laptop we bring to conventions, or on my Retroid Pocket).
Eventually, I decided to cheat and started listening to FMOD API's beat events. FMOD would report whenever a beat happens, and that would include data on which beat we're on, what measure we're on, and where we are on the music's track/timeline. I would then recalibrate my beat clock with each beat. The benefit here is that even if the game were to desynchronize due to a lag spike, it would recover on the next beat! I rationalize my decision in this way: what the player hears should match what they see, and if FMOD controls what the player hears, then FMOD should be the authority on the matter (especially because music playback doesn't feel like it's affected by lag spikes).
This decision would pay off during our last convention (about a week ago) - my Retroid Pocket was able to run the game without noticeable audio desync! I originally bought the Retroid because a Steam Deck was too expensive for me, but I wanted a way to carry my game anywhere I go and be able to show it to anyone in case there was an opportunity to show it off. With the purely logic-based beat clock, the experience felt sluggish, but switching to FMOD events fixed that. I'm quite happy that the Retroid can now run the game fairly well (some lag spikes but it recovers) and was a boon at the last convention (just having one laptop for players to try the game on results in lost opportunities for playtests).
Here's a clip of the game running on Retroid: https://bsky.app/profile/hourglasseye.com/post/3mrn44kapqk2w
2. Input Latency and Audio Latency
When the player presses a button, there's a few milliseconds before the game actually registers the press. There's also a few milliseconds before the player hears the sound you want them to hear. This is made worse by the use of wireless input and audio devices.
The solution that has been suggested to me is to implement a calibration utility, which I don't want to work on just yet (I think it can come in later, before 1.0). Thankfully, less than a handful of players have reported a noticeable desync due to either input lag or audio latency so far (we've had had about 100 to 150 playtests across three game conventions).
Procedurally Generated Shapes in Shaders
I recently got infatuated with Signed Distance Fields (SDFs). I've been doing some VFX work using Unity's Shader Graph, and have started relying on SDFs to procedurally generate shapes. Our game's "beat bar" (a visualizer that the player can use as an aid for timing their inputs "on beat") is now rendered purely by a shader! This let's me:
Combined with procedurally generated noise, SDFs let me make a lot of visuals without having to use textures.
I have two primary resources for learning this:
That's it! I hope this was an ok read. Questions about anything I wrote here are welcome. Suggestions are ok too!
Nice to see you posting again. Looks like a cool game concept! What's the timeline for a playable demo?
Thanks! We were initially thinking of getting one out as quickly as we can (like within a month since our last convention), but I saw some articles talking about how releasing a public demo should have a bit of marketing to go with it, so I'm not sure! But the goal is to have the game itself ready for a public demo soon. Just addressing some of the feedback and observations we got from the most recent playtests.
That's great. Be sure to update us here. Would love to give it a try.
I didn't like 28hse's search interface so I wrote a program for finding places to rent in Hong Kong:
https://github.com/chapmanjacobd/28hse
I don't really have an immediate use for it but it's fun to look every now and then. Probably horrifying to North Americans to see such small apartments but I live in a small house and living in half the amount of space wouldn't make my life meaningfully different--it just forces you to frequently confront the growing boxes and bins of junk which would normally naturally accumulate in ones garage.
It would be more useful for me to have made something similar for Chicago but all the platforms like Zillow are pretty locked down so it doesn't really work. Domu.com isn't very locked down but there isn't much availability in the price range that I'm looking at. Rent.com sort of works as a data source but its location filtering is poorly implemented. So I give up.
I found some condos last week in South Loop and was really excited but when I visited them the photos didn't exactly match the property. It was disorienting more than anything. I don't even mean people using AI to generate staged photos of rooms but even the non-furniture photos had AI touchups to clear any imperfections in the walls... just kinda made me feel the ick. If anything they should add deformities and imperfections to the photos so when you get there you're like "dayumm this place is nice--where's the contract?? I want to buy it": underpromise and overdeliver. But instead it feels like no one wants to do basic maintenance on things anymore and the front door doesn't even close properly because of that.
I've been vibe-coding my own android app version of "dutch blitz", mostly as an exercise in getting into android apps more. I spent a whole day spinning my wheels trying to get two emulators to talk to each other. I may just roll a standalone / windows build of the app so that I don't have to have two devices present for testing. But we'll see. It is probably something stupid.
My zwave smoke/CO detectors are reaching EOL (all CO detectors only last 7 years, then them freak out on you until you replace them). The new ones I got will not pair with my abode alarm/home automation system. The abode people are only supporting them in beta firmware, and only on newer base stations. They have not released a new feature or innovation since they got acquired, and the monitoring gets more expensive every year. So I'm done with them.
We don't really need the alarm aspect, and are probably fine with self monitoring, so I ordered a zwave antenna and am going to take the plunge on home assistant. I'm kind of looking forward to it.
I'm trying to learn odin, so I'm creating a small "game" with box2d and raylib. It's been surprisingly painless so far, and fun :)
I discovered the Ubuntu forums post archive on GitHub and wanted to see my old posts from 2006-2009 when I was active there.
Search results for my username only turned up one entry where it was quoted in someone else's comment, and I didn't find a browse or search for posts made by a user.
So I cloned the archive, used ag to grep for
/Posted by .* on \d\d\d\d-\d\d-\d\d/and build a ~1gb text file where each line contains thread file name, comment author's username, and date posted.This allowed for subsequent processing to build an index for any username.
I let Claude make the Python script to process the 1gb file into markdown index file for a user.
It can create an index for every user, but probably not a good idea to create so many files.
https://github.com/jason-s13r/ubuntuforums-by-user/blob/main/by-user/m/master5o1.md
I was certainly a dip shit at times.
Perhaps silly but I use and maintain a pure lua jellybeans port for neovim. It's been my colorscheme for a long time. I recently created a new one and switched wholesale to it: luna.nvim
I've replaced broken bicycle shifter for the new one and it works! I'm very happy because it's my first time repairing a bicycle. It was a little bit stressful in the beginning, but it went pretty smooth. Happy to be able to successfully do some manual work!