Hacker Newsnew | past | comments | ask | show | jobs | submit | bmacho's favoriteslogin

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.


According to another comment this product is pure 1-(perfluorohexyl)octane [1]. There's no practical way to make it at home, but it can be had for $980-$750/kg from an industrial supplier, depending on how many kilograms you commit to buy at once:

https://www.chemicalbook.com/ProductDetail_EN_1-perfluorohex...

Add analytical lab services to analyze it for purity and you could still get a lifetime supply for the price of a couple of brand-name bottles. This is the sort of thing that some Americans have been doing to get cheap GLP-1 peptide drugs from overseas too.

[1] https://en.wikipedia.org/wiki/Perfluorohexyloctane


I've read hundreds of dust mite studies, and this is the conclusion I came to, but it's difficult to put in a direct single argument with a citation that most people would require to accept it. I also got dust mites entirely out of my home and my chronically low vitamin D was resolved without a change in lifestyle or supplementation.

But I'll do my best to share some of the steps toward this conclusion:

#1. There is a body of molecular research showing dust mite allergens directly damage the immune system, most importantly once you inhale their fecal pods, they cause epithelial permeability in the lungs. (this study is a good overview of several ways it directly damages the immune system, all of which are totally unrelated to type 1 hypersensitivity, btw: https://www.jacionline.org/article/S0091-6749(18)30848-0/ful...)

#2. There are challenge studies that show dust mites directly causing eczema symptoms after inhalation, which shows that dust mite allergens can act on areas other than the respiratory system, probably by entering the blood stream. Of course there are also challenge studies for asthma. (here's a paper arguing for causal role in asthma https://www.atsjournals.org/doi/full/10.1164/rccm.200811-175...)

#3. All of the major allergic diseases(asthma, eczema, rhinitis, and although it is not as well studies, I believe IBS) have epithelial damage and increased allergy as a core feature of the disease. #1 and #2 are good evidence that dust mites play a causal role in these diseases

#4. From asthma and epithelial permeability in the lungs you can get to worse outcomes from flu and covid etc, from rhinitis you can get to worse sleep and worse mental health etc and reach a large number of health outcomes.

#5. It's true that people with allergy suffer worse from all these problems, but so much damage has already been done before you even get to Type 1 hypersensitivity, but that's another story.

So basically, dust mites directly damage your immune system in the lungs, skin, nose, eyes, guts(and maybe more?), create a sustained immune response, and leads to a multitude of other bad health outcomes.

And since low vitamin D is associated with dust mite sensitization((https://www.worldallergyorganizationjournal.org/article/S193...) , it's also associated with all those other bad health outcomes that are actually caused by dust mites.

People have a mental model that vitamins are at the root level of causality, and therefore don't consider that vitamin D could also be caused by dust mite exposure.

IgE levels are inversely associated with vitamin D: https://www.nature.com/articles/s41598-020-77968-1

But supplementing vitamin D doesn't lower IgE: https://publications.aap.org/pediatrics/article/150/Suppleme...

And of course high IgE is directly caused by exposure to dust mites if you're sensitized.

I don't know the specific mechanism by which they cause low vitamin d, but two possibilities are that #1: the high and sustained immune response your body runs from constant dust mite exposure consumes vitamin D and acts like a leaky bucket. #2: dust mites somehow disrupt vitamin d production in the skin(e.g. there was one study showing https://www.jacionline.org/article/S0091-6749(13)01768-5/ful...)


This is what makes the innovator's dilemma repeat itself so many times in so many industries. It's not that the incumbent companies don't see the new technology; it's that they're so entrenched in what they know how to do that pivoting to the new technology is basically a Hail Mary no matter how you do it. Do it too early and your shareholders are going to think you're crazy. Do it too late, and you're risking entering a new market as the chaser with a bad hand of company, employees, and board that don't have any idea of what they're doing.

“The most successful people have failed more times than you have tried”

Pyrotherapy. The idea of fighting untreatable (at the time) illnesses by inducing a fever in the patient. There's actually a Wikipedia article about it: https://en.wikipedia.org/wiki/Pyrotherapy As in deliberately infect a syphilis patient with malaria, which can give you a very high fever. The first time I heard about that one was in Neal Stephenson's Baroque Cycle, turns out it was one of the non-fictional parts of the books (which were a mix of historical facts and fiction).

Quote: "In general, the body temperature was maintained at 41 °C (105 °F).[1] Many diseases were treated by this method in the first half of the 20th century."

The malaria variant was not the common variant, that was saved for extreme cases, apparently (e.g. Syphilis). Mostly it was hot baths and the like.

I, for one, will stick to my near-daily sauna sessions.


My computer died a few months ago and Emacs on Android has carried me through well. Still able to do development on the go. Amazing, amazing work by the Emacs dev!

The Unexpected Keyboard is a great addition, but even with the stock Android keyboard, it's totally usable. Of course, it helps to add things to menus and remap the volume keys.

You can add buttons to the toolbar with something like:

  (tool-bar-add-item "spell"
                   'eval-last-sexp
                   'eval-last-sexp
                   :help "Eval last sexp")

  (tool-bar-add-item "back-arrow"
                   'xref-pop-marker-stack
                   'xref-pop-marker-stack
                   :help "Previous Definition")

  (tool-bar-add-item "fwd-arrow"
                   'xref-find-definitions
                   'xref-find-definitions
                   :help "Find Definitions")
There are many icons bundled with Emacs that you can reuse: https://cgit.git.savannah.gnu.org/cgit/emacs.git/tree/etc/im...

You can remove toolbar buttons:

  (tool-bar-add-item-from-menu 'find-file "")
Otherwise, you can add to menus:

  (define-key global-map
            [menu-bar edit expand]
            '("Expand word" . dabbrev-expand))
Remapping the volume keys is super handy, especially when you change the behavior by mode or buffer:

  (global-set-key (kbd "<volume-down>") 'fill-paragraph)

  (global-set-key (kbd "<volume-up>") 'my-runner)

  (defun my-runner ()
  (interactive)
  (cond ((equal major-mode 'org-mode)
         (call-interactively (local-key-binding (kbd "C-c C-c"))))
        ((equal major-mode 'emacs-lisp-mode)
         (save-buffer)
         (call-interactively 'eval-defun))
        ((string= (my-get-file-name)
                  "/data/data/org.gnu.emacs/files/.emacs.d/my_python_file.py")
         (save-buffer)
         (with-current-buffer (shell "*shell*")
           (my-send-string
            "python /data/data/org.gnu.emacs/files/.emacs.d/my_python_file.py"
            t
            "*shell*")
         ))
        (t
         (message "Undefined action"))
        ))
Redefining the fill column is handy to set appropriate text wrapping:

C-x f runs the command set-fill-column

Otherwise, the menu for Lime Wrapping in this buffer is super helpful.

I set my init to load up Dired so that I'm met with my project directory and am ready to go.

It's hard for me to think of another editor having my back like Emacs has. Again, amazing work by the community!


What a neat trick. I'm thinking you can abuse polynomials similarly. If the goal is to print the first, say, 100 elements, a 99-degree polynomial would do just fine :^)

EDIT: the llm gods do recreational mathematics as well. claude actually thinks it was able to come up with and verify a solution...

https://claude.ai/share/5664fb69-78cf-4723-94c9-7a381f947633


Fwiw, my favourite textbook in communication theory (Lapidoth, A Foundation in Digital Communication) explicitly calls out this issue of working with equivalence classes of signals and chooses to derive most theorems using the tools available when working in ℒ_2 (square-integrable functions) and ℒ_1 space

There are no markers in 'det' that one can use to figure out whether the vowel is long or short. 'ee' is always long, and 'ett(e)' is always short.

English has far more vowels than letters. 'ee' is an old digraph that always afaik means long-e, and ett(e) is a french borrowing that will always indicate short-e. 'deat' would work for long-e, too, probably, although 'ea' is much squirrelier (turns into a couple of diphthongs.)


Yeah, when talking to non-natives I sometimes double-check if they understand words with silent letters/non-obvious pronunciation, but sometimes I just mispronounce them to be better understood, it's faster.

In Canadian English we use the "Antony" and "tortuss" pronunciations as well. For "often", I usually only pronounce the 't' if the word is stressed in the sentence.

I think this article is funny. Python's STL is way more useful and contains myriad useful things that Ruby lacks out of the box.

difflib is probably my favorite one to cite.

Go see for yourself: https://docs.python.org/3/library/index.html

The benefit there is that their quality, security, completeness and documentation are all great!


Larry Wall: 3 great virtues of a programmer are Laziness, Impatience and Hubris.

Which is both a joke (turning virtue on its head) and kinda true, in that laziness makes you automate things, impatience spurs you to make things faster, and hubris spurs you to make sure that they work.


No, the point is the clutter. A pound # is the most intrusive ascii character, with about 85% black. Older languages were critised to use $ with about 55% black as prefix. It's like writing in ALL-CAPS.

Beware of using this to publish static sites: you can accidentally expose your .git directory to the public internet.

I got pwned this way before (by a pentester fortunately). I had to configure Apache to block the .git directory.


> refused a task from me because it would be too much work

Was this after many iterations? Try letting it get some "sleep". Hear me out...

I haven't used Codex, so maybe not relevant, but with Claude I always notice a slow degradation in quality, refusals, and "<implementation here>" placeholders with iterations within the same context window. One time, after making a mistake, it apologized and said something like "that's what I get for writing code at 2am". Statistically, this makes sense: long conversations between developers would go into the night, and they get tired, their code gets sparser and crappier.

So, I told it "Ok, let's get some sleep and do this tomorrow.", then the very next message (since the LLM has no concept of time), "Good morning! Let's do this!" and bam, output a completely functional, giant, block of code.

Human behavior is deeeeep in the statistics.


Looking back at my time at university, I have to admit that I mainly attended group study sessions in order to spend more time with the attractive singles in our course. This had the accidental benefit of forcing me to study and discuss the material more (which led to better understanding) so that I could help coach others. That in turn led to 1) a reasonable side-hustle in tutoring and 2) dating and marrying my wife.

Your point is spot on, except here:

> There will be few-to-no kids of poor single moms

Plenty of poor single moms with well behaved kids. The eternal problem is the lack of discipline at home. Successful kids grow up with structure, not being told yes all the time, are held accountable, and have a soft place to land when they make mistakes.

That is certainly harder to do with a single parent home, but it happens all the time in multi-parent homes as well.


> The patient was shown two pictures: of a house in the winter time and of a chicken's claw. The pictures were positioned so they would exclusively be seen in only one visual field of the brain. The patient then chose the snow shovel with his left hand and his right hand chose the chicken's head. When the patient was asked why he had chosen the objects he had chosen, the answer he gave was "The chicken claw goes with the chicken head, and you need a snow shovel to clean out the chicken shed."

> The human brain's left hemisphere is primarily responsible for interpreting the meaning of the sensory input it receives from both fields; however, the patient's left hemisphere had no knowledge of the winter house. Because of this, the left hemisphere had to invent a logical reason for why the shovel was chosen.

https://en.wikipedia.org/wiki/Left-brain_interpreter



Exactly.

And communicating [situation], [action(s)], [how this affects you] is one of the most basic professional communication skills you could imagine.


So apply to thousands of jobs then? That's only a couple applications a day for 2 years.

And I'm not saying this from an ivory tower, my first job took 700 applications in 2021. But until you have a job, your job is to apply 8 hours a day


And what I know with ADHD is that the incapacity to handle dumb meetings is just one definition of functioning. Maybe you don't need medication to clean yourself enough to prevent skin issues, prevent addiction to substances, compulsive criminal behavior, avoid hoarding behaviors, have a safe living space, have the capacity to maintain friendships/avoid loneliness, engage with social interactions in a mutually respectful manner etc. But most people I know with ADHD severely struggle with at least one of the above and I consider that functioning, not just holding down a job. My understanding is not on the level of "can you do bullshit work" but it is "can you clean your dishes before they stink" and "can you respond to being turned down by a girl without blowing up your life".

Back in the early '90s, I was a big fan of the C/C++ debugging library "electric fence" (written by Bruce Perens) - it was a malloc() implementation that used mmap() to set the pages of the returned buffer such that any writes in that region (and even read accesses!) caused a segfault to happen, and the program halts, so you can examine the stack. It was a godsend.

I just use stacked branches and work out of the top branch. When changes are solid -ish I move down a level in the stack and cherry pick isolated changes into small/focused commits. Then I put the entire stack in review with a doubly linked list references so the reviwer can walk up and down the stack to see the corpus of changes.

That way a 1000 line pr consisting of 25 commits can be landed as 5 dependant prs with a much more focused review.


It's not mentioned in this article, but Geoffrey West's book "Scale: The Universal Laws of Life, Growth, and Death in Organisms, Cities, and Companies" give a fascinating and approachable overview of similar ideas.

One of the ideas presented is the "quantization" of the exponents observed in power laws relating various biometrics. E.g. it's known that the larger a species' average mass, the longer it lives, and that this relationship is expressed as a power law. What West found is that the exponents in many of these relationships are integer multiples of 1/4! This book, and West's research, uncover the origin of that phenomenon, relating it back to the efficient distribution of material throughout the organism (certain branching laws of cardiovascular networks, or phloem in plants, etc.)

It's not hard to see how that could apply to things like cities and companies as well.


Made me think of A City Is Not A Tree - https://www.patternlanguage.com/archive/cityisnotatree.html

Read code, read code, read code. You will get better.

When looking at a piece of code, keep asking questions like: what does this return, what are the side effects, what can go wrong, what happens if this goes wrong, where do we exit, can this get stuck, where do we close/save/commit this, what's the input, what if the input is wrong/missing, where are we checking if the input is OK, can this number underflow/overflow, etc

All these questions are there to complete the picture, so that instead of function calls and loops, you are looking at the graph of interconnected "things". It will become natural after some time.

It helps if you read the code with some interest, e.g. if you want to find a bug in an open source project that you have never seen the code for.


There is another way that's a compromise: give corner cases a home.

In accountancy there is the "General Journal" (https://en.wikipedia.org/wiki/General_journal) - a place to correct of accounting errors, enter adjustments, etc.

The General Journal really only works because accounting entries are immutable: corrections are always new entries. So it's not clear if "give corner cases a home" works everywhere.

But if the principle does work for your use case, it lets the rest of the system be as strict as you like!


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: