Recently I've been exploring a declarative approach to managing events. It's very much WIP, but some ideas are coming together into what I'm calling 'event schematics'
So far, popular programming languages have benefited from a feedback loop with generative models. But if program search is the harder problem, then languages with strong typing and verification will dominate long-term
"Deliberate practice requires effort and is not inherently enjoyable. Individuals are motivated to practice because practice improves performance"
- Ericsson, Krampe, & Tesch-Romer, 1993
A lot of people don't realize that "deliberate practice" has a strict definition. Most forms of practice don't qualify as deliberate practice. It's more than just practicing "deliberately" or "on purpose."
Deliberate practice consists of individualized training activities specially chosen to improve specific aspects of a student’s performance through repetition and successive refinement. It's mindful repetition on performance tasks just beyond the edge of one's capabilities.
It's about making performance-improving adjustments on every single repetition. Any individual adjustment is small and yields a small improvement in performance – but when you compound these small changes over a massive number of action-feedback-adjustment cycles, you end up with massive changes and massive gains in performance.
Even academic studies sometimes mislabel a practice condition as "deliberate practice" when it really isn't. That's what Debatin et al. (2021) found in their study "The meta-analyses of deliberate practice underestimate the effect size because they neglect the core characteristic of individualization—an analysis and empirical evidence."
Basically, deliberate practice requires a high volume of action-feedback-adjustment loops, and every single one of those loops has to be tailored to the individual student. People – even researchers – will sometimes forget or not be aware of this condition, or will not realize the extent of individualization that is necessary.
So you end up with many studies demonstrating a benefit of some component of deliberate practice, but these studies often get mislabeled or misinterpreted as demonstrating the full benefit of true deliberate practice.
The field of education is particularly susceptible to this issue because it is impossible for a teacher with a classroom of students to provide a true deliberate practice experience without assistive technology that perfectly emulates the one-on-one pedagogical decisions that an expert tutor would make for each individual student.
I realize that’s a big claim, but here’s a “proof by contradiction” to back it up.
Remember that different students have different knowledge profiles, and at every moment in time, each student needs to be working on a problem that is specifically chosen based on their personal knowledge profile.
As a thought experiment, suppose that by some miracle the teacher found a problem that was appropriate for all the students in the class – that’s not even realistic, because it would be too advanced for some students and too simple for others, but just suppose that this miracle happened.
-- Some students would finish the problem correctly and quickly.
-- Others would finish it correctly but need more time.
-- Others would get it incorrect and need to go through a remedial process (identifying their mistake and engaging in additional practice on the same problem type).
So, even if a miracle of “here’s a problem that’s appropriate for everyone” were to exist at one moment in time, it would cease to exist at the next moment in time.
While I'm on the topic of confusions about deliberate practice, here are a handful of others:
CONFUSION #2: Doesn't "beyond the edge of one’s capabilities" mean that you can’t do it? How can you practice it if you can’t do it?
"Beyond the edge of one’s capabilities" means that you’re working on things outside of your current repertoire. This could mean any of a number of things, e.g.:
-- Maybe you can do it with scaffolding, but you are unable to do it without scaffolding. For instance, a musician might not be capable of playing a difficult section of a musical piece at full speed. So they might practice it while playing slowly (a type of scaffolding), and then gradually ramp up the speed while maintaining accuracy.
-- Maybe you can do it sometimes, but not consistently/accurately. For instance, a gymnast might not be capable of landing a particular flip consistently with proper form. But maybe they can land it 50% of the time with shaky form. So they might practice improving their consistency and form on this skill.
In general, working on things outside of one’s repertoire is a core aspect of deliberate practice. Non-experts are often misled to practice within their level of comfort. This tends to be more effortful and less enjoyable, which can mislead non-experts to practice within their level of comfort.
Even more generally, the idea of practicing outside of one’s repertoire can be generalized to the idea of engaging in a cycle of strain and adaptation. This is done in, e.g., Ericsson (2006). Here’s a snippet:
"When the human body is put under exceptional strain, a range of dormant genes in the DNA are expressed and extraordinary physiological processes are activated. Over time the cells of the body, including the brain (see Hill & Schneider, Chapter 37) will reorganize in response to the induced metabolic demands of the activity by, for example, increases in the number of capillaries supplying blood to muscles and changes in metabolism of the muscle fibers themselves.
These adaptations will eventually allow the individual to execute the given level of activity without greatly straining the physiological systems. To gain further beneficial increases in adaptation, the athletes need to increase or change their weekly training activities to induce new and perhaps different types of strain on the key physiological systems."
CONFUSION #3: Performance-improving adjustments on every single repetition” is hard to understand in some realms of performance. For instance, does each step a runner takes involve feedback and improvement?
If “performance-improving adjustments on every single repetition” is incomprehensible at the level you’re looking, then it’s an indication you need to zoom out a bit.
The same confusion can happen in, e.g., deliberate practice in math, if you zoom in too much. When a student solves a math problem, do we really expect every single pen stroke to involve feedback and improvement? No. You have to zoom out to the level of the problem.
I don’t know much about serious running, but I would expect that the appropriate level to view these deliberate practice cycles is not the level of a single step, but rather, a cohesive group of a taxing “deliberate practice” runs and easier “recovery” runs. At this level, it looks more like that cycle of strain/adaptation that is characteristic of deliberate practice.
And that level seems to align with what’s discussed in the literature – for instance, in Casado et al., 2020, Deliberate Practice in Training Differentiates the Best Kenyan and Spanish Long-Distance Runners, it is mentioned that “systematic training … included high-intensity training sessions considered deliberate practice (DP) and easy runs.”
CONFUSION #4: Deliberate practice is bunk because the idea that anyone can do anything with practice doesn't hold up.
The whole premise of this confusion is incorrect: deliberate practice does NOT claim that anyone can do anything via deliberate practice.
While there is a mountain of research supporting the conclusion that the volume of accumulated deliberate practice is the single biggest factor responsible for individual differences in performance among elite performers across a wide variety of talent domains, the next biggest factor is genetics, and the relative contributions of deliberate practice vs genetics can vary significantly across talent domains.
I will say that Ericsson himself tends to downplay the importance of genetics, which I too disagree with, and I think most of today’s talent development researchers would also disagree with – but that is completely separate from the theory of deliberate practice.
It’s one of those unfortunate cases where an author introduces two ideas, one accurate and another inaccurate, that are completely independent of each other, but the two ideas get conflated because they had the same author (who may themself be conflating the ideas in their writing).
The same thing happened with the ideas of “spiral curriculum” and “discovery learning,” which are both widely attributed to psychologist Jerome Bruner in the 1960s. Spiraling and discovery learning are sometimes conflated, even though they are two completely separate ideas – and while spiraling is supported by the cognitive science of learning, discovery learning is not (it is actually opposed by the cognitive science of learning). One of Bruner’s ideas holds weight, while the other does not.
It’s the same with Ericsson. Ericsson’s personal beliefs regarding the extent to which deliberate practice can make up for genetic disadvantage, (or, more generally, lack of genetic advantage) are orthogonal to the superiority of deliberate practice. An argument against them is not an argument against the superiority of deliberate practice.
CONFUSION #5: Deliberate practice isn't optimal because you can't do it when you lack a proper structured/comprehensive curriculum with timely feedback.
I mean, yeah, it's completely true that when you lack a proper structured/comprehensive curriculum with timely feedback, there is not a way to engage in deliberate practice in the strictest sense of its definition, and the best you can do is try to approximate it.
But this is not an argument against deliberate practice being the optimal form of practice.
The big picture is that deliberate practice is the Platonic ideal of practice. It constitutes an optimal training regimen within an optimal practice environment (curriculum must be perfectly structured / scaffolded / comprehensive, feedback must be immediate / comprehensive, etc.).
When a field first emerges (or undergoes a rapid transformation), there are typically no well-developed practice environments because there has been no time to create them. But over time, practice environments are constructed and improved.
That’s why Olympic records keep getting broken year after year. That’s why so many of today’s high school students are able to learn something like calculus that, only a few centuries ago, used to be cutting-edge math.
Sure, there are fields in which training environments are not as developed as in other fields, but that’s totally unrelated to the superiority of deliberate practice as a general practice technique.
The science of learning has advanced significantly over the past century. Numerous effective cognitive learning strategies have been identified and researched extensively since the early to mid-1900s, with key findings being successfully reproduced over and over again.
kinda wild how far you can get with CSS alone
a scroll animation tied to the content scroll powers the percentage update + icon animation
interpolate-size provides a way to transition the popover between button size and content size using starting-style 🤙
@JungleSilicon I think so, although it would be easy to think "oh I've found a problem, let's make an app for that". But I think you really want to find the deep problems in the domain. In some ways it's easier to be a domain expert that learns to code to solve problems
Blog post coming soon about "sync engines vs local-first".
TLDR: Most people interested in local-first are probably best of with a sync engine. Building an app that's fully local-first (according to the seven ideals) is a lot more work.
So after pulling on this thread a while, I've settled on a Zettelkasten approach for note-taking. So far, it's been really powerful and my notes are rapidly filling up.
One of the difficulties I found with argument mapping style approaches is that a thought serves different purposes depending on the context it's being used. Trying to create a thought with one specific context in mind can limit its use in other places. Zettelkasten approach is to create atomic notes that stand on their own, which can then be pulled into different contexts
I played around with categorising thoughts as value claims and factual claims. This could be useful specifically for constructing an argument, but in general for note-taking this sort of framing isn't especially helpful.
I also think hyperlinking between notes is a lot more scalable than trying to maintain a visual graph. It really showcases the flexible nature of hyperlinking
I'm not planning on becoming a PKM expert, but happy I've landed on a setup that lets me get my thoughts down and aids the thinking process. Obsidian was super simple to configure how I wanted
I'm going to focus on exploring an idea I've had for a while: Chains of Thought.
I've noticed that I use a certain type of diagram to help me think through reasoning. It works by linking thoughts together that follow from one another to produce conclusions.
Sometimes, one thought is the product of multiple other thoughts. Each thought stands alone, but can be traced back to its origins. This makes it easy to check if the chain of thought is sound, or if it's not valid for some reason.
I often also find myself revisiting the same chains of thought. When this is done mentally without a tool, I often remember the conclusion but forget the reasoning.
I have lots of ideas building on the basic structure, such as
- append-only with diffs to show the evolution of a chain of thought
- different relationships between thoughts, e.g. implies, contradicts
- a larger knowledge system that uses thoughts as the building block
When I'm in a freeflow state of getting ideas down, even having to name a file breaks the flow. I don't know what to call it I'm just thinking! The problem with the freeflow mode is finding stuff later
@chrisshank23 If the linker from can decide how the content it's linking too is viewed, it opens up a world of options.
It does make the linker susceptible to changes in the linked content though. Questions of coupling and cohesion
Linking notes serve as a way to pull in context. I've defined a concept somewhere, I can pull it in anywhere but maintain the canonical version.
One problem is that traditional linking context is clunky. If you want to refer to it you have to leave the current context. Link popovers are one solution, but I'd love to explore different approaches to inlining content.
I'm imagining Windows Movie Maker style:
Explicitly load in the source material you want to populate the working context, then modify/transform it.
Works well for cloning material, but @chrisshank23 's explorations might allow for linking
https://t.co/Fskr08aYT5
Argument maps are too explicit
Analysing texts with argument maps has shown me most pieces are written with such an implicit structure that it's difficult to represent them, and for note-taking and drafting it breaks the flow to try fit everything into a rigid structure