I think that the real power of spaced repetition is not in flashcard applications like this. It is in behavior modification.
Let's take a real example to show how this works.
August 19, 2025. My wife called me in to help her decide what to do about a dentist that she thought was ripping her off. A couple of quick suggestions later, and she went to being mad at me about not having heard the problem through before trying to fix it badly. As soon as she was mad, I immediately connected with how stupid what I did was, and that this never goes well. But, of course, it was now too late.
Not a mistake I was going to make for a while. But, given my history, a mistake I was bound to make again.
I changed that. This time I stuck this into my spaced repetition system. Each time the prompt comes up, I remember that scene, holding in mind how it important it is to emotionally engage, not offer quick suggestions, and be sure to listen to the full problem in detail. It takes me less than 30 seconds. Reviewing this prompt, for my whole lifetime, will take less than 15 minutes of work. Just typing this up this time takes more work than I'll spend on it in the next several years.
This mistake hasn't happened since. Not once. And I believe it won't again in my life.
I have literally changed dozens of such behaviors. My wife says that it is like there is a whole new me. She can't believe the transformation.
All it took is looking at spaced repetition as general purpose structured reinforcement, and not as just a way to study flashcards.
If, like me, you're not a real mathematician but suffered through linear algebra and differential equations, you can still totally understand this stuff! I started off teaching myself differential geometry but ultimately had far more success with lie theory from a matrix groups perspective. I highly recommend:
My friends were all putnam nerds in college and I was not, and I assumed this math was all beyond me, but once you get the linear algebra down it's great!
And my word that is a terrifying forum. What these people are doing cannot be healthy. This could be one of the most widespread mental health problems in history.
Local-First & Sync-Engines are the future. Here's a great filterable datatable overview of the local-first framework landscape:
https://www.localfirst.fm/landscape
My favorite so far is Triplit.dev (which can also be combined with TanStack DB); 2 more I like to explore are PowerSync and NextGraph. Also, the recent LocalFirst Conf has some great videos, currently watching the NextGraph one (https://www.youtube.com/watch?v=gaadDmZWIzE).
Ah thank you! Our designer is Julian Kelly (https://jfk.works). He's amazing, and worked on Messenger at Meta — a background which has been surprisingly helpful since everything we're working on is a spin on chatting.
It is a neat example of how an org can structure and manage multiple projects and services in a single git repository. They've use Leiningen to achieve their objective.
> The Common Metadata Repository (CMR) is an earth science metadata repository for NASA EOSDIS data. The CMR Search API provides access to this metadata.
> Building and Running the CMR
> The CMR is a system consisting of many services. The services can run individually or in a single process. Running in a single process makes local development easier because it avoids having to start many different processes. The sections below contain instructions for running the CMR as a single process or as many processes.
Ah yes good question! Here's some context for you. First off, the way moves work:
(edit: I realized I didn't answer your question. If we receive a captured for a piece we're optimistically tracking that always takes precedence, since once a piece is captured it can't move anymore!)
* clients send a token with each move
* they either receive a cancel or accept for each token, depending on if the move is valid. If they receive an accept, it comes with the sequence number of the move (everything has a seqnum) and the ID of the piece they captured, if applicable
* clients receive batches of captures and moves. if a move captured a piece, it's guaranteed that that capture shows up in the same batch as the move
So when you make a move we:
* Write down all impacted squares for the move (2 most of the time, 4 if you castle)
* Write down its move token
* If you moved a piece that is already tracked optimistically from a prior not-yet-acked-or-canceled move, we note that dependency as well
We maintain this state separate from our ground truth from the server and overlay it on top.
When we receive a new move, we compare it with our optimistic state. If the move occupies the same square as a piece that we've optimistically moved, we ask "is it possible that we inadvertently captured this piece?" That requires that the piece is of the opposite color and that we made a move that could have captured a piece (for example, if you moved a pawn up that is not a valid capturing move).
If there's a conflict - if you moved a piece to a square that is now occupied by a piece of the same color, for example - we back out your optimistically applied move. We then look for any moves that depended on it - moves that touch the same squares or share the same move token (because you optimistically moved a piece twice before receiving a response).
So concretely, imagine you have this state:
_ _ _ _
K B _ R
You move the bishop out of the way, and then you castle
_ _ B _
_ R K _
Then a piece of the same color moves to where your bishop was! We notice that, revert the bishop move, notice that it used the same square as your castle, and revert that too.
There's some more bookkeeping here. For example, we also have to track the IDs of the pieces that you moved (if you move a bishop and then we receive another move for the same bishop, that move takes precedence).
Returning the captured piece ID from the server ack is essential, because we potentially simulate after-the-fact captures (you move a bishop to a square, a rook of the opposite color moves to that square, we decide you probably captured that rook and don't revert your move). We track that and when we receive our ack, compare that state with the ID of the piece we actually captured.
I think that's most of it? It was a real headache but very satisfying once I got it working.
I discovered this shortly after introducing The Secret of Kells to a child and had terrible, beautiful ideas about overly ornate websites that I have since thought better of. Mostly.
In order to paint, you must first learn how to draw. There is a ton of misinformation on the internet and in literature, especially the famous book - "Drawing on the Right Side of the Brain Workbook" [1]. This is a completely wrong way to learn how to draw. It gets you to point where your results may look pleasing but your foundation is going to be weak and it will fall apart.
Let me explain.
In order to draw convincingly, you must first internalize the object in 3 dimensions. You have to learn how to "think" in 3D - more specifically, given an object, you must be able to draw it from any angle, with or without foreshortening, and with any arrangement of illumination and with any camera focal length. Start with simple shapes - they're boring but that is a __must__. Then, start stacking primitives such as cones, cubes, cylinders, etc. Draw 20 different views of the same setup of primitives. Do this everyday for 6 months and you will pickup how to think in "3D" so to speak.
If you follow [1], you won't be able to do this. You will be able to copy a photograph or illustration by recognizing shapes but that only goes so far. If someone asks you to draw the same thing from a slightly different camera angle, you're lost.
Learning how to paint then adds another layer about color harmony, texture and stroke style. But fundamental drawing skills are __critical__ in order to paint well. All bets are off if you're trying to do abstract art or non-representational art.
You can take Jeffrey Watt's classes or a full course [2] or follow a few channels such as Sycra [3] on Youtube.
The core story seems to be: Westlaw writes and owns headnotes that help lawyers find legal cases about a particular topic. Ross paid people to translate those headnotes into new text, trained an AI on the translations, and used those to make a model that helps lawyers find legal cases about a particular topic. In that specific instance the court says this plan isn't fair use. If it was fair use, one could presumably just pay people to translate headnotes directly and make a Westlaw competitor, since translating headnotes is cheaper than writing new ones. And conversely if it isn't fair use where's the harm (the court notes no copyright violation was necessary for interoperability for example) -- one can still pay people to write fresh headnotes from caselaw and create the same training set.
The court emphasizes "Because the AI landscape is changing rapidly, I note for readers that only non-generative AI is before me today." But I'm not sure "generative" is that meaningful a distinction here.
You can definitely see how AI companies will be hustling to distinguish this from "we trained on copyrighted documents, and made a general purpose AI, and then people paid to use our AI to compete with the people who owned the documents." It's not quite the same, the connection is less direct, but it's not totally different.
That reminds me of Hong Kong, where I used to live and which maintains a large sovereign wealth fund to ensure its currency is pegged to the US dollar.
While various US think tanks ranked it well on their checklists of "economic freedom", they tended to gloss over the rest of the recipe that made it work. Not just the huge sovereign wealth fund, but also how half the housing is government-run or subsidized and you don't really own land, you just rent it for a very long term from the government.
I wouldn't say it runs a "random ROM from the internet" - LineageOS is a very well-established project and is fully FOSS (free and open source software) except for firmware necessary for specific devices. It is the natural choice for any project, such as Waydroid, that requires good community support and ongoing availability.
Over a number of years, Google have progressively removed many of the original parts of AOSP (the FOSS foundation upon which Android is based), which means that alternative components have to be developed by projects like LineageOS. In spite of this, I suspect that LineageOS makes fewer modifications to AOSP than most phone vendors do, including Google themselves!
> Less interested in people and character studies.
If you don’t want examples then all you need to know is velocity. The Y Combinator people call it doing things that don’t scale. Here is how it works for absolutely anything:
1. Get the right tools in place. This is an intrinsic capability set you have to build. People tend to fail here most frequently and hope some framework or copy/paste of a library will just do it for them. Don’t be some worthless pretender. Know your shit from experience so you can execute with confidence.
2. Build a solid foundation. This will require a lot of trial and error plus several rounds of refactoring because you need some idea of the edge cases and where you the pain points are. You will know it when you have it because it’s highly durable and requires less of everything compared to the alternatives. A solid foundation isn’t a thing you sell. It’s your baseline for doing everything else at low cost.
3. Create tests. These should be in writing but they don’t have to be. You need a list of known successes and failures ready to apply at everything new. There are a lot of whiners that are quick to cry about how something can’t be done. Fuck those guys and instead try it to know exactly what more it takes to get done.
4. Finally, measure things. It is absolutely astonishing that most people cannot do this at all. It looks amazing when you see it done well and this is ultimately what separates the adults from the children. This is where velocity comes from because you will know exactly how much faster you are compared to where you were. If you aren’t intimately aware of your performance in numbers from a variety of perspectives you aren’t more special than anyone else.
People who accomplish hard things are capable of doing those because they didn’t get stuck. They had the proper tools in place to manipulate their environment, redefine execution (foundation), objectively determine what works without guessing, and then know how much to tweak it moving forward.
This is from the SQLite creator D. Richard Hipp who is always worth reading, but, I'd like to recommend reading what TCL's creator John Ousterhout has to say.
His article on threads from 1995 was highly influential on me, and I remember it to this day. More recently (2018, revised and expanded in 2021), he published a book on software engineering practices called A Philosophy of Software Design which is, in my opinion, the best in its category.
Hind sight is 20-20. The BitKeeper business had a good run, we were around for 18 years. It made enough that I and my business guy are retired off of what we made.
On the other hand, we didn't make enough for everyone to retire if they wanted to. We had a github like offering and it's pretty clear that we should have put a bunch of money into that and open sourced BitKeeper.
All I can say is it is incredibly hard to make that choice when you have something that is paying the bills. I tried to get Sun to do it with the BSD based SunOS and they wouldn't. And even though I had that vision for Sun, when it was my livelihood, I couldn't see the path to doing so.
Shoulda, coulda, woulda, my biggest regret is not money, it is that Git is such an awful excuse for an SCM. It drives me nuts that the model is a tarball server. Even Linus has admitted to me that it's a crappy design. It does what he wants, but what he wants is not what the world should want.
It says a lot that we have a bk fast-export and we can incrementally run that and get idempotent results. As in go from BK to Git on an ongoing basis, have two people do it in parallel and they both get bit for bit identical results. If you try and go the other way, Git -> BK, if you do it in parallel you get different results because Git doesn't store enough information, so BK has to make up the missing bits.
Git has no file create|delete|rename history, it just guesses. That's my biggest regret, I wish Linus had copied that part.
OK, here you go: what large group of jobs has been eliminated by "AI" so far? No time limit answering, unless you die first, in which case "time's up!" My assertion, made in public and under my real name is that barring some giant breakthrough, nothing like this is going to happen any time soon. As far as I can tell, as an active worker in the field (erstwhile finance FWIIW), "AI" is a force multiplier for statisticians, and basically that's it.
Jobs have been eliminated in America because of poor industrial and trade policy. Nothing to do with "AI." I get extremely irate when people make the assertion that "oh, well, the jobs are going away soon anyway" -using this complete and utter falsehood as an excuse to continue the looting of the country.
The guy interviewed here is a real mixed bag. Some of what he says is nonsense, some of it is accurate. FIRE has basically been a vampire squid on the economy without adding much value. Most of it could be "automated" away by using a magic 8-ball; it doesn't actually provide any value. Except the politicians rice bowls depend on the status quo.
Alright, it's not really a blog post about dating, per se. It's more of a blog post about becoming the kind of person who maxes out their dateability, no matter what their starting physical/mental/spiritual condition.
It's hard to explain what reading this post did to me. There are a few times in my life where I consciously decided to switch life trajectories radically and become someone entirely different. First age 8, when I vowed to become an idiot. After reading this was the second one, age 24, where I vowed to become a sexy idiot. I printed it out at the college library and reread it every day at breakfast - a strategy I highly recommend to my fellow nimrods. And, voila, age 25 when I, the jester, moved countries with no passport, no job lined up, and no plan, to go live with the woman who I would eventually call my wife.
Yes, there are tons of resources but I'll try to offer some simple tips.
1. Sales is a lot like golf. You can make it so complicated as to be impossible or you can simply walk up and hit the ball. I've been leading and building sales orgs for almost 20 years and my advice is to walk up and hit the ball.
2. Sales is about people and it's about problem solving. It is not about solutions or technology or chemicals or lines of code or artichokes. It's about people and it's about solving problems.
3. People buy 4 things and 4 things only. Ever. Those 4 things are time, money, sex, and approval/peace of mind. If you try selling something other than those 4 things you will fail.
4. People buy aspirin always. They buy vitamins only occassionally and at unpredictable times. Sell aspirin.
5. I say in every talk I give: "all things being equal people buy from their friends. So make everything else equal then go make a lot of friends."
6. Being valuable and useful is all you ever need to do to sell things. Help people out. Send interesting posts. Write birthday cards. Record videos sharing your ideas for growing their business. Introduce people who would benefit from knowing each other then get out of the way, expecting nothing in return. Do this consistently and authentically and people will find ways to give you money. I promise.
7. No one cares about your quota, your payroll, your opex, your burn rate, etc. No one. They care about the problem you are solving for them.
There is more than 100 trillion dollars in the global economy just waiting for you to breathe it in. Good luck.
part 1
There is a massive disagreement on AI safety and the definition of AGI. Microsoft invested heavily in OpenAI, but OpenAI's terms was that they could not use AGI to enrich themselves.
According to OpenAI's constitution: AGI is explicitly carved out of all commercial and IP licensing agreements, including the ones with Microsoft.
Sam Altman got dollar signs in his eyes when he realized that current AI, even the proto-AGI of the present, could be used to allow for incredible quarterly reports and massive enrichment for the company, which would bring even greater investment. Hence Dev Day. Hence the GPT Store and revenue sharing.
This crossed a line with the OAI board of directors, as at least some of them still believed in the original ideal that AGI had to be used for the betterment of mankind, and that the investment from Microsoft was more of a "sell your soul to fight the Devil" sort of a deal. More pragmatically, it ran the risk of deploying deeply "unsafe" models.
Now what can be called AGI is not clear cut. So if some major breakthrough is achieved (eg Sam saying he recently saw the veil of ignorance being pushed back), can this breakthrough be called AGI depends on who can get more votes in the board meeting. And if one side can get enough votes to declare it AGI, Microsoft and OpenAI could loose out billions in potential licence agreements. And if one side can get enough votes to declare it not AGI, then they can licence this AGI-like tech for higher profits.
Few weeks/months ago OpenAI engineers made a breakthrough and something resembling AGI was achieved (hence his joke comment, the leaks, vibe change etc). But Sam and Brockman hid the extent of this from the rest of the non-employee members of the board. Ilyas is not happy about this and feels it should be considered AGI and hence not licensed to anyone including Microsoft. Voting on AGI status comes to the board, they are enraged about being kept in the dark. They kick Sam out and force Brockman to step down.
Ilyas recently claimed that current architecture is enough to reach AGI, while Sam has been saying new breakthroughs are needed. So in the context of our conjecture Sam would be on the side trying to monetize AGI and Ilyas will be the one to accept we have achieved AGI.
Sam Altman wants to hold off on calling this AGI because the longer it's put off, the greater the revenue potential.
Ilya wants this to be declared AGI as soon as possible, so that it can only be utilized for the company's original principles rather than profiteering.
Ilya winds up winning this power struggle. In fact, it's done before Microsoft can intervene, as they've declared they had no idea that this was happening, and Microsoft certainly would have incentive to delay the declaration of AGI.
Declaring AGI sooner means a combination of a lack of ability for it to be licensed out to anyone (so any profits that come from its deployment are almost intrinsically going to be more societally equitable and force researchers to focus on alignment and safety as a result) as well as regulation. Imagine the news story breaking on /r/WorldNews: "Artificial General Intelligence has been invented." And it spreads throughout the grapevine the world over, inciting extreme fear in people and causing world governments to hold emergency meetings to make sure it doesn't go Skynet on us, meetings that the Safety crowd are more than willing to have held.
part 3
This would not have been undertaken otherwise. Instead, we'd push forth with the current frontier models and agent sharing scheme without it being declared AGI, and OAI and Microsoft stand to profit greatly from it as a result, and for the Safety crowd, that means less regulated development of AGI, obscured by Californian principles being imbued into ChatGPT's and DALL-E's outputs so OAI can say "We do care about safety!"
It likely wasn't Ilya's intention to ouster Sam, but when the revenue sharing idea was pushed and Sam argued that the tech OAI has isn't AGI or anything close, that's likely what got him to decide on this coup. The current intention by OpenAI might be to declare they have an AGI very soon, possibly within the next 6 to 8 months, maybe with the deployment of GPT-4.5 or an earlier-than-expected release of 5. Maybe even sooner than that.
This would not be due to any sort of breakthrough; it's using tech they already have. It's just a disagreement-turned-conflagration over whether or not to call this AGI for profit's sake.
Let's take a real example to show how this works.
August 19, 2025. My wife called me in to help her decide what to do about a dentist that she thought was ripping her off. A couple of quick suggestions later, and she went to being mad at me about not having heard the problem through before trying to fix it badly. As soon as she was mad, I immediately connected with how stupid what I did was, and that this never goes well. But, of course, it was now too late.
Not a mistake I was going to make for a while. But, given my history, a mistake I was bound to make again.
I changed that. This time I stuck this into my spaced repetition system. Each time the prompt comes up, I remember that scene, holding in mind how it important it is to emotionally engage, not offer quick suggestions, and be sure to listen to the full problem in detail. It takes me less than 30 seconds. Reviewing this prompt, for my whole lifetime, will take less than 15 minutes of work. Just typing this up this time takes more work than I'll spend on it in the next several years.
This mistake hasn't happened since. Not once. And I believe it won't again in my life.
I have literally changed dozens of such behaviors. My wife says that it is like there is a whole new me. She can't believe the transformation.
All it took is looking at spaced repetition as general purpose structured reinforcement, and not as just a way to study flashcards.