Dang, this is really relatable. A couple months I started digging into the Jimtcl interpreter, which is a 20-year-old Tcl interpreter written in C. My goal was to make it thread safe, which I naively thought wouldn't be that hard. Turns out interpreters are really complicated, lol. There were many many times I saw a line of code that made no sense, and only would make sense a couple days after when reading in another subsystem. Variable lookup caching in particular gave me a lot of grief, as I learned how epoch-based invalidation works. It's slightly insane to keep track of a different epoch per call frame, and whenever a variable is looked up, you have to figure out what call frame that variable is referencing based on context, and then check if its epoch is correct. It is incredibly humbling that these systems work as well as they do.
I eventually did end up getting Jimtcl to be multithread-safe, but it ended up being slower than the naive approach of serializing and deserializing between threads. I've been seriously nerd-sniped since, and have slowly been building my own thread safe interpreter, but I still have to cross check with Jimtcl constantly.
I will say scanners are somewhat unergonomic, but if you had a high enough definition camera, you could photograph the document in its "natural environment". Granted, it's harder to get an evenly lit picture that way, but I think it's a nicer interface.
Scanners with automatic feeders are ergonomic when you have to scan more than a page or two. Just place your stack of paper in the feeder and press start. I had a job where I used to do that routinely, and no way a camera would have been more convenient.
All of my document "scanning" for the last—god, maybe 15 years?—has been with a phone camera.
Before everyone just started using Docusign anyway, I'd bought houses with a phone "scanner". LOL.
I don't think I started with it, but for a very long time I've had an app called TinyScanner that's good-enough at edge detection, can de-noise or make a document entirely black & white, and can glue multiple pages together into a PDF. The results look better than plenty of flatbed scanner results I've seen, if not as good as the best of those.
Fair enough, I actually have been thinking about this topic lately since I have to generate and print and fill out and sign a lot of paper vouchers in my job. I would prefer having a dedicated scanner to just throw them into in a stack with a server/cron job/bash script always watching for new incoming documents rather than a more complex camera setup but yeah something like a camera over your shoulder on your desk could pick up documents too
And a shout-out to https://folk.computer/ as well! They're not as far along in terms of feature parity, but they are open source, and exploring the space in other directions.
If you have any ins with this project would you mind asking them to add a line or 2 describing what it is about, or even a linked text in the start.txt file?
Just a simple:
> Folk Computer is a research & art project centered around designing new physical computing interfaces.
From ./notes/tableshots.txt with a link towards the top would imo be quite helpful.
(Sorry, this is just one of my pet peeves: needing to know what a project is about before being able to read about it is just terrible UX, although extremely common as we as humans tend to forget that we know things others don't)
I would say that simply expanding the first word of "hello -" into:
> Hello, Folk Computer is a research & art project centered around designing new physical computing interfaces. [read more](./notes/tableshots.txt)
Is more than sufficient, most of the website is for people who already know about the project. I'm just asking for a small part at the beginning for us who are new :)
I'm curious to see if formally verified software will get more popular. I'm somewhat doubtful, since getting programmers to learn formally math is hard (rightfully so, but still sad). But, if LLMs could take over the drudgery of writing proofs in a lot of the cases, there might be something there.
How is getting proof one doesn't understand going to help build safer system?
I want to believe formal methods can help, not because one doesn't have to think about it, but because the time freed from writing code can be spent on thinking on systems, architecture and proofs.
That's a fair question, and looking at my post I now realize I have two independent points:
1. A proof mindset is really hard to learn.
2. Writing theorem definitions can be hard, but writing a proof can be even harder. So, if you could write just the definitions, and let an LLM handle all the tactics and steps, you could use more advanced techniques than just a SAT solver.
So I guess LLMs only marginally help with (1), but they could potentially be a big help for (2), especially with more tedious steps. It would also allow one to use first order logic, and not just propositional logic (or dependant types if you're into that).
I am so exhausted with being asked to learn difficult and frankly confusing topics - the fact that it is so hard and so humbling to learn these topics is exactly why everyone is so happy to let AI think about formal programming and I can focus on getting Jersey Shore season 2 loaded into my Plex server. It's the one where Pauly D breaks up with Shelli
Chronic tiredness can be such a hard thing to figure out, sorry you've been going through that! Is it sleepiness (as in can fall asleep at any point of the day), or fatigue (as in non-restorative sleep, brain fog, feeling exhausted, etc)? I've had chronic fatigue (non syndrome) for six years now, so I'm pretty familiar with how obnoxiously long it takes to get answers. Some things to look into:
Do a full polysomnogram with MSLT: this will check for sleep apnea, restless leg syndrome, narcolepsy, and idiopathic hypersomnia
Look into ME/CFS if you have post exertional malaise (pretty much you cross some invisible line in exertion followed by a delayed crash).
Look into MCAS if you also have strange allergy symptoms. I have MCAS, though tbh I didn't really have that many symptoms until I looked at Dr. Afrin's free chapter on MCAS.
Maybe fibromyalgia, but you didn't mention muscle pain, so it probably doesn't apply.
Obviously depression can cause somatic symptoms, so that's worth checking, but I think people jump to that conclusion too soon.
Note that a lot of these conditions don't really have tests, so it's really tricky to get a diagnosis. It takes finding a doctor who's willing to recognize them and give a diagnosis.
It's been cobbled together over the years to add things I want, like not backing up on battery, or sending a desktop message on success. When I set it up I couldn't figure out how to set up a timer, so it runs when I wake from suspend. I'd probably use a systemd timer in the future though.
I also should probably snapshot my file system before backing up since I'm running btrfs, but I never figured out how to do that either, and this works, lol.
Side note, but this product looks really cool! I have a fundamental mistrust of all boolean operations, so to see a system that actually works with degenerate cases correctly is refreshing.
Not sure if you're into 40s music, but there's a little known instrument called a theatre organ. It was conceived when silent films were taking off, and theaters needed some form of background music. Paying an organist was much cheaper than hiring a whole orchestra, so a lot of theaters opted to get an organ as a cost saving measure (imagine, lol). Anyways, a few have survived, and I learned the basics of playing one. It's an absolutely incredible instrument, in terms of the sheer amount of sounds you can make with it. Someone played the star wars overture for example[1]. It also has one of the most flexible interfaces, with the tabs, second touch, and sustenuno pedal on the volume foot controls. It's inspired a lot of my own tinkering with custom sound synthesis too.
The description of working with AI tools really resonates with me. It's dangerous to work on my codebase when I'm tired, since I don't feel like doing it properly, so I play slots with Claude, and stay up later than I should. I usually come back later and realize the final code that gets generated is an absolute mess.
It is really good for getting up to speed with frameworks and techniques though, like they mentioned.
You should take advantage of these states of cognitive exhaustion by asking Claude to document and explain the codebase to you, and checking whether it still makes sense. If there are things that you have trouble understanding in that state, make a note of them to check later whether they can be simplified.
No, it's much better for the business magnates if you spend all your short lifespan on solving problems every waking hour. Don't worry about experiencing your life, you need to generate value!
Same for me. What I liked about the article was the emphasis on the mental model. Staying up late using the a lot machine is not helping me to remember the model better
I eventually did end up getting Jimtcl to be multithread-safe, but it ended up being slower than the naive approach of serializing and deserializing between threads. I've been seriously nerd-sniped since, and have slowly been building my own thread safe interpreter, but I still have to cross check with Jimtcl constantly.
reply