Skip to content

Instantly share code, notes, and snippets.

@ivan
Last active July 22, 2024 00:40
Show Gist options
  • Save ivan/a36e2489623469d96c1ad79077b6dcf9 to your computer and use it in GitHub Desktop.
Save ivan/a36e2489623469d96c1ad79077b6dcf9 to your computer and use it in GitHub Desktop.
2024 reading list

Things I might read in 2024.



  • Antoine de Saint-Exupéry, Richard Howard (translator) - The Little Prince
  • Sayaka Murata, Ginny Tapley Takemori (translator) - Convenience Store Woman (via)
  • Jorge Luis Borges - Tlön, Uqbar, Orbis Tertius (in Labyrinths)/ printed (via)
  • Franz Kafka - The Metamorphosis (via)
  • William Olaf Stapledon - Star Maker/ audio, go to 12m35s to skip past the introduction spoilers




Lectures/videos


Interactive fiction


unplanned notable things read


unplanned and abandoned

  • Ichiro Kishimi, Fumitake Koga - The Courage to Be Disliked/ audio
  • Matt Dinniman - Dungeon Crawler Carl/ audio
  • Charles Eisenstein - The More Beautiful World Our Hearts Know Is Possible/ audio
  • Geoff Smart - Who: The A Method for Hiring/ audio
  • Genki Kawamura - If Cats Disappeared from the World/ audio
@ivan
Copy link
Author

ivan commented Jul 16, 2024

There's an idea in programming language design called Wadler's Law, which is that the majority of discussion is on syntax and not semantics. I imagine this applies to configuration too: the majority of time spent "tinkering" is on layout and coloring and not on changes to the tool's behavior. This is a trap. You get the most value of "configuration" when you use it to improve your workflow.

https://buttondown.email/hillelwayne/archive/keep-perfecting-your-config/

@ivan
Copy link
Author

ivan commented Jul 16, 2024

How To Noclip [in The Witness]

  1. Open the steam console by going to "steam://nav/console" in a browser and then opening in steam.
  2. Copy in download_depot 210970 210971 4660219967587740136 and press enter.
  3. While waiting for the network usage in steam's download in the library to stop, go to "C:\Users\[Your Username]\AppData\Roaming\The Witness" and move all the files out of here somewhere else (this is an old version so it can't read your saves and may corrupt them). Should you want a save with most puzzles completed, all lasers completed, all obelsks activated (but none completed) that is compatable with this version, one can be found here http://www.filedropper.com/witnessnoclipsave.
  4. Go to "C:\Program Files (x86)\Steam\steamapps\content\app_210970\depot_210971" and open either "witness_d3d11.exe" or "witness64_d3d11.exe"
  5. To active noclip, hold down shift, press period (.) then let go of all keys and press "m". To deactivate, click (make sure there's solid ground beneath you), then to reactivate just press m while pressing no other keys.

https://old.reddit.com/r/TheWitness/comments/au30c9/how_to_noclip/

The syntax to the "download_depot" command is as follows: download_depot <appid> <depotid> [<target manifestid>] [<delta manifestid>] [<depot flags filter>] : download a single depot You only need to worry about the first three arguments to it.

https://old.reddit.com/r/Steam/comments/611h5e/guide_how_to_download_older_versions_of_a_game_on/

@ivan
Copy link
Author

ivan commented Jul 17, 2024

"This is not acceptable!" I screamed as Kathy drowned

https://x.com/Horse_ebooks/status/154826371431022592

@ivan
Copy link
Author

ivan commented Jul 17, 2024

wow, they used to agree with me, and now they don't. I can't believe they lost their way.

https://old.reddit.com/r/slatestarcodex/comments/17da5r9/peter_thiel_reflects_on_funding_miri_and_yud/

@ivan
Copy link
Author

ivan commented Jul 17, 2024

The question they set out to answer was "How can humanity create an aligned machine intelligence?" The answer MIRI reached was "We can't." That seems like a totally appropriate/within-scope potential conclusion at which to arrive given that original objective.

https://old.reddit.com/r/slatestarcodex/comments/17da5r9/peter_thiel_reflects_on_funding_miri_and_yud/

@ivan
Copy link
Author

ivan commented Jul 18, 2024

  1. When there were people who actually did something negative to me, I'd do them favors or buy them gifts. This sounds crazy, but it worked quite well, and is precisely the spiritual jiujitsu Christ recommended in his sermons.

In high school I attended an all girls’ boarding school. There was a girl who was absolutely insufferable, not particularly intelligent or nice, tiresome, irritating, and I had several classes with her. One evening I told my mom over the phone that I felt badly because I truly hated this girl, and did not know how to move past it. Hating her made me miserable, I felt small and mean. My mom told me to buy her a candy bar, write an encouraging note and leave it anonymously in her school mailbox. I thought this sounded crazy, and didn’t really want to do it, but I did anyway. And it was incredible, the feeling of hatred I had for this girl completely vanished, almost instantly. Hatred is a heavy thing to bear and I learned more from this experience than perhaps anything else that year.

https://x.com/Rquietlyreading/status/1813733643090633039

@ivan
Copy link
Author

ivan commented Jul 18, 2024

gwern suggests that OpenAI has lost its mojo, along with the key employees that made it extraordinary a few years ago. Plausibly it’s now a zombie cargo ship cruising on momentum.

This is a fascinating essay from the person who, more than anyone, predicted the dramatic AI progress in 2021-22. That took pretty much everyone outside OpenAI (including me) by surprise, and apparently most of the OpenAI people as well.

https://substack.com/profile/2269869-david-chapman/note/c-60184177

Apropos of Sutskever now having left OA for good, I've gone back to my thinking about the long-term consequences of Altman's coup, and something I began to wonder in 2021 when the news about Anthropic broke: what if "the elves have left Middle Earth"? What if OA has lost its mojo? If so, what would that look like, and how would we know? What's the "rot" narrative?


Maybe I am a bit too easily impressed by how good gpt-4-base and Claude-3.5-sonnet are at poetry compared to the ChatGPTs, but I can't help but wonder if the OA magic has worn off since GPT-4 finished training c. August 2022. What made OA OA in 2020 was that it had taste: it had much less resources than competitors like DeepMind or Google Brain or FAIR, but (thanks to Alec Radford, Ilya Sutskever, Jared Kaplan, and the RLHF-focused safety team like Paul Christiano & Dario Amodei, and fellow-traveler scalers like Andrej Karpathy etc) they bet big on scaling laws & unsupervised learning at the moment those suddenly began to work. Without taste and agility—or you might say, "without its people, OA is nothing"—OA doesn't have that much of a moat.

And most of those people are gone, and the survivors are being policed for leaks to the media, and now know that if they leave, OA management wants to gag them, and has the power to confiscate their vested equity, wiping out all their wealth (an ability they have confirmed and refused to promise to not use); they further have heard the rumors of Altman's mismanagement, lack of candor and broken promises to Superalignment, outside conflicts of interest, ScarJo, and divide-and-conquer management tactics—even if they do not credit this and believe Altman that he had no idea and some rogue lawyer is to blame, the psychological safety

[...]

https://old.reddit.com/r/mlscaling/comments/1djoqjh/ilya_sutskever_launches_safe_superintelligence_a/l9uogp9/

@ivan
Copy link
Author

ivan commented Jul 18, 2024

I’m sorry. NGL, this is ridiculous. @ljharb please stop making this argument on behalf of “security” of the 99.9999% who don’t need this. You’re in search of an immutable JS runtime that doesn’t exist — and so your best/only bet is to save a reference to every possible runtime API, effectively doubling the runtime itself & adding overhead to all function calls. Users of this (and presumably other, given your philosophy) code are suffering from significantly slower & heavier JS. Stuff like this validates the main criticism (and generally, misconception) of JavaScript — that it “is” slow & bloated. It’s not & doesn’t have to be. Given that you’re on TC39 and actively involved in pushing new language features re: simplicity (thank you 🙇‍♂️), I find it especially odd/contradictory that it’s often your modules that do stuff like this, holding onto Node <= 4.x support (security patched ended 6 years ago), etc. This holds the entire ecosystem & language back… while you (and others) are simultaneously trying to improve, simplify, and lean out the language… huh?

You should let actual security audits defend against the bad actors you’re so eager to defend. That will remove offenders at the source instead of duplicating defenses at every node_module fence.

I’d advise you reinvest the passion/effort into tooling that lints for prototypal mutations. With your skill set and influence, i can definitely imagine it becoming some kind of badge / standard that users expect to see when filtering dependencies. The same tool can be used for application audits to protect the userland glue code between libraries. This way everyone has a collection of green check marks instead of a mountain of saved “require time” function references and/or redundant 50kb+ native polyfills simply because they don’t trust their environment nor the 100s of coexisting modules.

A11yance/aria-query#497 (comment)

At the time of this writing installing eslint-plugin-react pulls in a whopping number of 97 dependencies in total. I was curious about how much of these were polyfills and began patching them out one by one locally. After all was done, this brought down the total number of dependencies down to 15. Out of the original 97 dependencies 82 of them are not needed.

https://marvinh.dev/blog/speeding-up-javascript-ecosystem-part-6/

@ivan
Copy link
Author

ivan commented Jul 18, 2024

interesting to me that the "building a second brain" ppl consider the brain's primary activity to be associative information storage and retrieval, and not coordination of a system of sensory impulses

the brain's associative memory functionality might be considered primary only in one special state: dreaming

perhaps they're not building a second brain, but a more perfect dream?

https://x.com/qorprate/status/1814052577396318314

someone please build me a second prefrontal cortex

https://x.com/babarganesh/status/1814064513622405617

@ivan
Copy link
Author

ivan commented Jul 19, 2024

Due to the use of a controversial value in the certificate extension 2.5.29.9, to meet the first point of BR 7.1.2.11.5, we have decided to remove the extension after discussion.

https://bugzilla.mozilla.org/show_bug.cgi?id=1903066

@ivan
Copy link
Author

ivan commented Jul 19, 2024

You will need to do the manual update and change of the file listed in the TA. Its not pretty, I'm looking at about 5,000 machines offline.

[...]

For us, it's thousands of end-user devices geographically distributed all over Australia. All BitLocker protected.

This is probably going to take a week or two to get everyone back up and running.

https://old.reddit.com/r/crowdstrike/comments/1e6vmkf/bsod_error_in_latest_crowdstrike_update/

With cybersecurity like this, who needs criminals?

a comment in https://www.youtube.com/watch?v=0ZZBdGRnScA

Wow, this hits close to home. Doing a page fault where you can't in the kernel is exactly what I did with my very first patch I submitted after I joined the Microsoft BitLocker team in 2009. I added a check on the driver initialization path and didn't annotate the code as non-paged because frankly I didn't know at the time that the Windows kernel was paged. All my kernel development experience up to that point was with Linux, which isn't paged.

BitLocker is a storage driver, so that code turned into a circular dependency. The attempt to page in the code resulted a call to that not-yet-paged-in code.

The reason I didn't catch it with local testing was because I never tried rebooting with BitLocker enabled on my dev box when I was working on that code. For everyone on the team that did have BitLocker enabled they got the BSOD when they rebooted. Even then the "blast radius" was only the BitLocker team with about 8 devs, since local changes were qualified at the team level before they were merged up the chain.

The controls in place not only protected Windows more generally, but they even protected the majority of the Windows development group. It blows my mind that a kernel driver with the level of proliferation in industry could make it out the door apparently without even the most basic level of qualification.

https://news.ycombinator.com/item?id=41007570

The thing that amazes me is how they've rolled out such a buggy change at such a scale. I would assume that for such critical systems, there would be a gradual rollout policy, so that not everything goes down at once.

Lack of gradual, health mediated rollout is absolutely the core issue here. False positive signatures, crash inducing blocks, etc will always slip through testing at some % no matter how good testing is. The necessary defense in depth here is to roll out ALL changes (binaries, policies, etc) in a staggered fashion with some kind of health checks in between (did > 10% of endpoints the change went to go down and stay down right after the change was pushed?).

Crowdstrike bit my company with a false positive that severely broke the entire production fleet because they pushed the change everywhere all at once instead of staggering it out. We pushed them hard in the RCA to implement staggered deployments of their changes. They sent back a 50 page document explaining why they couldn't which basically came down to "that would slow down blocks of true positives" - which is technically true but from followup conversations quite clear that is was not the real reason. The real reason is that they weren't ready to invest the engineering effort into doing this.

You can stagger changes out within a reasonable timeframe - the blocks already take hours/days/weeks to come up with, taking an extra hour or two to trickle the change out gradually with some basic sanity checks between staggers is a tradeoff everyone would embrace in order to avoid the disaster we're living through today.

https://news.ycombinator.com/item?id=41004691

The CEO of Crowdstrike, George Kurtz, was the CTO of McAfee back in 2010 when it sent out a bad update and caused similar issues worldwide.

https://news.ycombinator.com/item?id=41008579

A colleague is dealing with a particularly nasty case. The server storing the BitLocker recovery keys (for thousands of users) is itself BitLocker protected and running CrowdStrike (he says mandates state that all servers must have "encryption at rest").

His team believes that the recovery key for that server is stored somewhere else, and they may be able to get it back up and running, but they can't access any of the documentation to do so, because everything is down.

https://old.reddit.com/r/crowdstrike/comments/1e6vmkf/bsod_error_in_latest_crowdstrike_update/ldw96jt/

Some guy up there suggested converting [BitLocker recovery keys] into barcodes and to use a barcode scanner. Might save some time.

https://old.reddit.com/r/crowdstrike/comments/1e6vmkf/bsod_error_in_latest_crowdstrike_update/ldx75ph/

@ivan
Copy link
Author

ivan commented Jul 19, 2024

It doesn't even work on newer Dell laptops, you just can't see the drive. Only workaround we had was to run install media and then run it from the command line there, because of Dell drivers.

The windows recovery partition on newer devices does not see the drives because Intel, in their stupidity, decided that most of newer devices should use Intel VMD/RST by default and not AHCI and Microsoft never included that driver in both the install media and recovery partition

https://x.com/SubZeroNexii/status/1814394934616830323

@ivan
Copy link
Author

ivan commented Jul 19, 2024

Imagine living your whole life, from growing up as a baby to a toddler to a child to an adolescent to an adult, gathering all of your experiences, your career, your family and friends, for it all to vanish instantly and you cease to exist because you got mad at a traffic stop. Your entire consciousness vanishing because you got mad over something that doesn’t matter. It’s actually quite mind-blowing to put yourself in those shoes, conceptually.

https://old.reddit.com/r/AllThatIsInteresting/comments/1e7apnz/indianapolis_driver_faces_no_charges_after/ldz0fao/

@ivan
Copy link
Author

ivan commented Jul 20, 2024

C coding tip: if you ever need arithmetic operations without implicit integer promotions, make a one-element vector type: https://godbolt.org/z/9bo648bsh

image

https://mastodon.social/@amonakov@mastodon.gamedev.place/112809365535996420

@ivan
Copy link
Author

ivan commented Jul 21, 2024

The secret to achieving speedups of multiple factors, not just low percentages, is less about applying generic rules or habits like “Don’t create closures inside for-loops”. It’s a common misconception that if you follow all these “best practices” that your code will be fast, because the uncomfortable truth in most instances (read not all) is that it won’t matter much. What makes code truly fast is being aware of what it’s supposed to solve and then taking the shortest path to achieve that goal.

https://marvinh.dev/blog/speeding-up-javascript-ecosystem-part-8/

@ivan
Copy link
Author

ivan commented Jul 21, 2024

@ivan
Copy link
Author

ivan commented Jul 21, 2024

We currently have an interesting bug on the BBC website where some users have a viewport that is, for example, 599.5px wide. So:

@-media (max-width: 599px) {}
@-media (min-width: 600px) {}

These users get no styles from either media query. I'm about to work on a fix.

https://x.com/JoshTumath/status/1801244891151782150

What about

@-media not (min-width: 600px) {}
@-media (min-width: 600px) {}

See the thread. That's effectively the solution.

https://x.com/lukedeentaylor/status/1801594689310617893

@ivan
Copy link
Author

ivan commented Jul 21, 2024

Feature Comparison

This is a best-effort feaure comparison between rkyv, FlatBuffers, and Cap'n Proto. This is by no means completely comprehensive, and pull requests that improve this are welcomed.

Feature matrix

Feature rkyv Cap'n Proto FlatBuffers
Open type system yes no no
Scalars yes no yes
Tables no* yes yes
Schema evolution no* yes yes
Zero-copy yes yes yes
Random-access reads yes yes yes
Validation upfront* on-demand yes
Reflection no* yes yes
Object order bottom-up either bottom-up
Schema language derive custom custom
Usable as mutable state yes limited limited
Padding takes space on wire? yes* optional no
Unset fields take space on wire? yes yes no
Pointers take space on wire? yes yes yes
Cross-language no yes yes
Hash maps and B-trees yes no no
Shared pointers yes no no

* rkyv's open type system allows extension types that provide these capabilities

https://rkyv.org/feature-comparison.html

@ivan
Copy link
Author

ivan commented Jul 22, 2024

I WANT TO SEE THE STUFF I DIDN'T WANT TO SEE!

a comment in https://www.youtube.com/watch?v=UT2GcoCJh5k

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment