xk3's recent activity
-
5 votes
-
Margo Price - All American Made (2018)
2 votes -
Comment on Making React ProseMirror really, really fast in ~comp
-
Comment on Making React ProseMirror really, really fast in ~comp
xk3 LinkIf anything the second one seemed more laggy than the first. idk... maybe it is different on Apple Silicon... My browser shuddered and froze for a moment there--YOU'RE PLAYING WITH PEOPLE'S TABS!...But, hear me out, itβs really fast:
If anything the second one seemed more laggy than the first. idk... maybe it is different on Apple Silicon...
My browser shuddered and froze for a moment there--YOU'RE PLAYING WITH PEOPLE'S
LIVESTABS! The tabs are on the line. The tabs are online...Perhaps we could stop putting things in the Shadow DOM??! just an idea!
HTML is a pretty good format for documents. The browser is already pretty complicated even just with HTML5 and CSS3--we don't need to build another browser inside the browser!
-
Comment on What games have you been playing, and what's your opinion on them? in ~games
xk3 LinkI've been catching up on a few of thecatamites' early work: 50 Short Games, 10 Beautiful Postcards, Magic Wand... Most of them are pretty simple but often thought-provoking or perhaps...I've been catching up on a few of thecatamites' early work: 50 Short Games, 10 Beautiful Postcards, Magic Wand... Most of them are pretty simple but often thought-provoking or perhaps feel-provoking?
I don't like horror as a genre. I don't get the appeal. But horror-comedy! Something about it touches a funny bone in my skeleton. I think there could be more of it
-
Nelson Elhage - From error-handling to structured concurrency
3 votes -
Is 'worse is better' a neurosis?
12 votes -
Comment on I made a word association game - Noun Sense in ~games
xk3 Link ParentIt must be "aforementioned night" surely??nigh
It must be "aforementioned night" surely??
-
Comment on Android to debut "advanced flow" for sideloading unverified applications in ~tech
xk3 (edited )Link ParentI still feel like these words won't be very effective. Maybe a large stop π sign with multiple pages explaining the risks with AI generated pictures of family members crying... idk. It's a very...No one is instructing me
I still feel like these words won't be very effective. Maybe a large stop π sign with multiple pages explaining the risks with AI generated pictures of family members crying... idk.
It's a very real problem but one that won't be effectively solved unless the Play Store itself was severely locked down--even more than Apple's App Store. And in order to unlock third party app stores you need to talk to someone in a private environment like talking to a manager at a bank where another human being can make sure you are not under duress or being told that the FBI is going to open a case file for your parking ticket if you don't install an APK.
I don't think that world is ideal. But I also don't think any middle solution will effectively solve this problem--and even in that dystopian environment criminals will find a way...
Instead, we need to be better at criminalizing scams and tracing the money flows. Get better at detecting bad apps (which they need to do anyway to actually make their Play Store safe).
-
Comment on Android to debut "advanced flow" for sideloading unverified applications in ~tech
xk3 LinkI think "Coached" is perhaps the wrong word to use and, if people had to convince people to click the build number 10 times to enter developer mode to install an unofficial APK... well I'm sure...I think "Coached" is perhaps the wrong word to use and, if people had to convince people to click the build number 10 times to enter developer mode to install an unofficial APK... well I'm sure the new way will be even easier since it is just one button and a scheduled call to the victim 24 hours later.
-
Comment on What programming/technical projects have you been working on? in ~comp
xk3 (edited )Link ParentYeah... 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...agents or skills
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.
-
Comment on What programming/technical projects have you been working on? in ~comp
xk3 (edited )LinkI'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...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
// Need to resolve path to media_id if we want to store it as a caption // However, if we store the path here, it's problematic for InsertCaptionParams // Let's store the path temporarily in a different way or resolve ID later. // Given the current structure, we'll keep MediaPath in db.InsertCaptionParams? // Wait, the db package expects MediaID. Let's see how we can resolve it. // For now, let's keep the path in a temporary field, we can add a helper. // Actually, the InsertCaptionParams struct in db/queries.go has MediaID. // I'll leave the path in, and handle resolution in the db layer. // Wait, the db/queries.go uses MediaID in InsertCaptionParams, so I need an ID. // Let's resolve the ID. // We need access to db.Queries in metadata.go // I'll add GetMediaID as a helper to Metadata, but let's assume path is enough for now? // No, the DB requires MediaID. // I'll use a placeholder or resolve later. // Actually, I'll update InsertCaptionParams to have a temporary path if needed, or resolve it. // Let's change InsertCaptionParams to include MediaID. // I already did that in internal/db/queries.go. // How do I get MediaID here? // I have the path. I can use queries.GetMediaID(ctx, path). // But metadata.go doesn't have a queries object. // I'll skip this for now or pass it. // Actually, I'll pass the path in the struct but rename the field to MediaPath just for temporary use? // No, that breaks the refactoring. // Let's resolve ID: // I'll assume that the DB layer or a helper will be used. // For now, I'll store the path in MediaID field as a hack, and add a TODO. // No, that will cause a type error. // Okay, let's just use 0 as a placeholder for now and hope it's updated later.ππ€‘
-
OneOne - Unicorn (2009)
2 votes -
Theo Parrish - Falling Up [Carl Craig Remix] (2005)
4 votes -
Comment on Ghostty 1.3.0 has been released in ~comp
xk3 Link ParentI don't think you can fault him for this? That same attitude of stubbornness and perhaps rudeness but definitely bluntness (we all have bad days) is what led him to push so hard on moving the..."my way or the highway" attitude to programming
I don't think you can fault him for this? That same attitude of stubbornness and perhaps rudeness but definitely bluntness (we all have bad days) is what led him to push so hard on moving the terminal ecosystem forward.
If he was a more nice and gentle person I don't think he would start out his programming career by reverse engineering DRM. He bought a product and felt so wronged that it led him to create a driver and eventually that turned into Calibre. The ncurses maintainer was similarly uncooperative and that led him to create Kitty and that helped significantly to push the terminal ecosystem forward!
-
Brodu - BLU (2021)
4 votes -
SISTER BODY - Star / Red (2013)
6 votes -
Helena Deland - Smoking at the Gas Station (2020)
5 votes -
Comment on What programming/technical projects have you been working on? in ~comp
xk3 (edited )Link ParentWhere you have an unix shell you probably have access to git. I frequently copy notes between computers using ssh, git, or rsync as they can often do very similar things. For example you could...Would love any feedback folks are willing to share about the script
Where you have an unix shell you probably have access to git. I frequently copy notes between computers using ssh, git, or rsync as they can often do very similar things. For example you could pipe a git diff through ssh, if you are in the middle of making a commit:
ssh phone "cd $(pwd); git diff" | git apply -Git is a technical tool so of course it's not perfect for everything... But you'll never be able to escape file/line conflicts without making choices about tradeoffs as I'm sure you're familiar with by now!
Also, you don't need to trust GitHub/Lab/Berg with your private notes. Git itself works fine computer to computer. Personally, I choose one computer as the center hub--though I'm sure there are more decentralized ways to do it:
# hub pc cd /home/$USER/notes git remote -v git remote remove origin git config receive.denyCurrentBranch updateInstead # other devices git remote remove origin git remote add server ssh://$USER@hub-pc/home/$USER/notes/ git branch --set-upstream-to=server/main main git fetchBut you will still probably want something like Tailscale to make the DNS stuff easy (or use something like Syncthing which does UDP hole-punching using its own mechanism instead... But git has superior conflict management)
-
Comment on What programming/technical projects have you been working on? in ~comp
xk3 (edited )LinkI really enjoyed building the retirement account simulator a couple weeks ago with Gemini CLI. This week I'm pulling that thread by porting two repos from 99% handwritten Python CLI to 90%...I really enjoyed building the retirement account simulator a couple weeks ago with Gemini CLI. This week I'm pulling that thread by porting two repos from 99% handwritten Python CLI to 90% AI-ported Golang Web UI.
to
It is still very much a work in progress but I've often been pleasantly surprised by what is possible with simplicity.
Eventually all the programs will have a CLI, TUI, and Web UI with many overlapping features... but right now I need to pull out a lot of the ported functionality and go one subcommand at a time to make sure everything works
That page still seems a bit laggy and it interferes with native keyboard editing on mobile (like character, word selection and predictive text)
I only tried it on Firefox and Fennec
tbh I have little patience for input lag and weird behaviors compared to native textboxes (like the ones Tildes uses). I've never had a good experience with something that tries to.... I don't even know what you're trying to do?? Like what is the benefit of this type of interface that takes control over the normal web components via JavaScript?
https://handlewithcare.dev/blog/why_i_rebuilt_prosemirror_view/
okay I get it a bit more... it's a rich text editor like the WordPress live preview mode thing