

Pretty niche but I find this useful at work.
Professional software engineer, musician, gamer, stoic, democratic socialist


Pretty niche but I find this useful at work.


I’ll consider myself lucky that the worst I’ve had to deal with was a 8K LOC C file that implemented image processing for a cancer detection algorithm. Nothing terribly tricky but just poorly organized. Almost no documentation at all. The only test was running this code against a data set of patient images and eyeballing the output. No version control other than cloning the project onto their NAS and naming it “v2” etc.
Research code can be really scary.


In 2048 you win by going down,left,down,left,down,left, repeat until high score.
That’s not true. But I can see how threes would be harder. There’s also a similar game called “suika” or “fruit merge” that is quite fun.


I assume a mod tagged this as NSFW, b/c I didn’t do it (intentionally anyway).
I find it odd, b/c if browsing this thread is not suitable for your workplace, then really browsing any thread at work is NSFW.
EDIT: I removed the tag. Hopefully it was just an accident on my part and mod doesn’t get mad at me.


Oooo Ace Attorney is a great call. Thanks for reminding me.


It would be pretty devastating, but I’d at least have my memories of music and the ability to feel vibrations. I think I could still get some enjoyment out of playing drums. But it would definitely suck.


I’m on a strong streak with my Japanese self study. Been going for over a year and I’m somewhere around N4-N3 level. It’s very rewarding to understand long conversations, but it also feels like progress is slow. My grammar is pretty good now, but learning vocabulary and kanji is like a Sysyphian quest.
I’d say I usually get in at least 30 minutes of listening practice every day. I’m still not speaking much, but I think this is OK. I’ve heard VR chat is a good resource for that, but the timezone mismatch makes it pretty hard.
Overall I recommend immersion based study with a strong emphasis on input (listening + reading) before doing much output. Duolingo is a waste of time if you’re serious about approaching fluency. I’ve never seen a single comprehensive product that actually works for learning Japanese. You have to consume native materials, and there are some good tools that make it easier, but you need to be a bit savvy to stitch them all together into a cohesive workflow.


僕も日本語を勉強している。もし勉強方法の質問があればぜひ聞いてください。


I’m not a huge Eilish fan, but “when the party’s over” is excellent and very different from everything else I’ve heard from her.


Hard disagree about CCR.


Ha. I’d expect nothing less from Theo.


Didn’t Firefox just release a new feature that prevents fingerprinting? Hard to get a reading on Mozilla these days.
I think you’re right. An UPDATE would fail, but not an INSERT.
I believe both SERIALIZABLE and REPEATABLE READ isolation levels would raise an error for this example.
And I looked this up: Postgres won’t retry the transaction for you either. Though ultimately I think this a good default behavior.
Sqlite does not have a SELECT ... FOR UPDATE feature. The alternative is BEGIN IMMEDIATE.
There is a subtle scenario with read-modify-write transactions in MVCC where SQLite lacks some grace (in my opinion).
In MVCC, transactions work with a point-in-time (read “between atomic transactions”) consistent “read snapshot” of the database.
Consider this example:
foo.foo.There is no conflict here because these transactions are isolated from each other via the snapshot mechanism. Transaction A’s read snapshot is immutable and will not see any writes from transaction B, even if they are happening concurrently.
Now what happens in this example (from the OP):
foo.foo.foo.This is a true conflict because both transactions are trying to write to foo, and transaction A’s writes might be based on what it just read. There is no consistent way for A to proceed, because B already wrote to foo, invalidating A’s read snapshot.
So SQLite handles this by returning an error to A, effectively requiring A to restart the transaction.
There are other ways this could be handled though. The DB could optimistically retry the transaction for you. There is even a special BEGIN IMMEDIATE; statement that it could use to proactively take a write lock on foo so that the transaction doesn’t get starved by other writers. But SQLite puts all of the responsibility on users to handle this.
I’m not an expert, so there could be a very good reason that SQLite works this way, but it feels a bit annoying as a user.
I don’t actually know off the top of my head how PostgresQL handles this particular scenario.


Probably won’t solve all of your problems, but I like to at least change git’s default pager to delta.
Less than $100 is tricky, but I’ve been meeting all your criteria with a Beelink EQ14. I also use it as my router.