Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K

    Neil Fraser

    neil.fraser.name · Personal blog · on HN since 2008

    Neil Fraser, a Google engineer, writes about programming projects, computer science education, and odd experiments like JS-Interpreter and Differential Synchronization.

    Visit blogRSSHN submissions
    ProgrammingWriting & ThinkingDistributed Systems
    What HN says

    HN commenters cite it for the neural-network tank failure story, the computer-science-by-mail post, and as a reference on operational transformation and synchronization.

    Stats for nerds
    78HN people shared it
    104linked in comments
    2.3Kstory points
    Dec 2024last shared
    2010people per year2024

    Top posts on HN

    1. 1
      Google Engineer bails out student in jail
      1 person · 540 points · first shared 2010 · 196 comments on HN
    2. 2
      Computer Science in Vietnam
      9 people · 304 points · first shared 2013 · 49 comments on HN
    3. 3
      Ten Years at Google
      1 person · 239 points · first shared 2016 · 65 comments on HN
    4. 4
      Computer Science by Mail
      4 people · 151 points · first shared 2015 · 50 comments on HN
    5. 5
      Travel in the USA Requires ID
      1 person · 147 points · first shared 2015 · 137 comments on HN
    6. 6
      Airship Tails
      1 person · 122 points · first shared 2012 · 23 comments on HN
    7. 7
      Differential Synchronization (2009)
      22 people · 81 points · first shared 2009 · 10 comments on HN
    8. 8
      Lava Lamp Centrifuge
      2 people · 70 points · first shared 2010 · 38 comments on HN
    9. 9
      String overlap detection in Python
      2 people · 68 points · first shared 2010 · 14 comments on HN
    10. 10
      Flow Charts
      1 person · 61 points · first shared 2013 · 30 comments on HN

    What HN people wrote when they linked it

    • phesOct 2016

      I remember reading this here a while back - wonder what happened:
      https://neil.fraser.name/news/2015/04/13/

      But like others in this post I would recommend CS unplugged.

      And depending on how long he is in there for he might want to look at:

      How to Design Programs - This is a good book, and although it's in Scheme, it teaches how to create appropriate levels of abstraction, which seems to be something many programmers struggle with.

      Concepts, Techniques & Models of Computer Programs - Discusses the different paradigms and how they are inter-related.

      Also something a bit more vocational like The Pragmatic Programmer or Clean Code / Clean Coder probably wouldn't hurt either.

      If he can read all of those he will be very well prepared to do some actual programming when he gets out.

      SICP not a bad shout either, although I've not got past the first chapter.

    • ivan_ahApr 2013

      While OTs (there are several variants) are a promising approach for distributed authoring, I think the complexity of implementing them is still prohibitive. Surely there is a better way...

      I have been reading papers on this looking for a "clean" way to solve this (in the context of packet loss, latency, etc).

      One good approach I was able to understand is Neil Fraser's Differential Sync http://neil.fraser.name/writing/sync/eng047-fraser.pdf

      There are other approaches out there. One example which uses character based changes and is worth checking out is here:
      PAPER wikisym.org/ws2010/tiki-download_wiki_attachment.php?attId=15
      CODE https://github.com/gritzko/ctre

      I feel like it is time someone solved this collab. editing thing once and for all and shared the code with everyone. (Firepad? https://github.com/firebase/firepad/)

    • lioetersSep 2024

      That reminds me of the JavaScript interpreter written in JavaScript (which is used for Scratch, I think) - that supports stepping through multiple instances of the interpreter to achieve a kind of interleaved concurrency.

      https://neil.fraser.name/software/JS-Interpreter/docs.html#threading

      > JavaScript is single-threaded, but the JS-Interpreter allows one to run multiple threads at the same time. Creating two or more completely independent threads that run separately from each other is trivial: just create two or more instances of the Interpreter, each with its own code, and alternate calling each interpreter's step function. They may communicate indirectly with each other through any external APIs that are provided.

      > A more complex case is where two or more threads should share the same global scope..

    • alephnanOct 2023

      > text editing as the de-facto solution is so weird to me since that problem is both niche and extremely complex.

      My first foray into collaborative editing was for my text editor. Indeed, things get super linearly harder as you add basic functionality of editors such as deleting and replacing, especially when those space multiple lines.

      Instead, I reached for Fraser’s differential syncing. https://neil.fraser.name/writing/sync/. There’s a lot of ambiguity and nuances in various versions of the prose and white paper that I could never really flesh out.

      I think anyone attempting to relay a collaborative editing algorithm needs to do is start with the simplest scenarios: append only / monotonically increasing data.

    • gghhMay 2017

      This blog post from Google engineer Neil Fraser made the rounds 4 years ago: https://neil.fraser.name/news/2013/03/16/

      He traveled to Vietnam and observed a high quality Computer Science education in primary / secondary school. Talking about grade 11 scholars, he wrote:

      After returning to the US, I asked a senior engineer how he'd rank this question on a Google interview. Without knowing the source of the question, he judged that this would be in the top third. The class had 45 minutes to design a solution and implement it in Pascal. Most of them finished, a few just needed another five minutes. There is no question that half of the students in that grade 11 class could pass the Google interview process.

    • gcommerJan 2015

      You are completely assuming that everyone who wants to program is intending to do so professionally, or that they won't be able to grow from a basic intro of "here is how to present your thoughts programmatically" and then cover the deeper subjects later, as they need to.

      This is especially relevant as we start teaching programming at younger and younger ages. I hope it's obvious that when kids start programming in 4th grade, it's much more intuitive to start them on Logo than lambda calculus...

      See, for example:
      https://neil.fraser.name/news/2013/03/16/

      Also, if you look at the amount of money that "Flappy Bird" made, perhaps making brain-dead iPhone apps isn't such a bad deal...

    Related

    John Regehrblog.regehr.org401 people

    Teaching C

    John Regehr
    Personal · last shared 2026
    Colin Frasermedium.com/@colin.fraser20 people

    Generative AI is a hammer and no one knows what is and isn't a nail

    Colin Fraser
    Personal · last shared 2025
    Matt Welshmatt-welsh.blogspot.com85 people

    Rewriting a large production system in Go

    Matt Welsh
    Personal · last shared 2026
    jwzjwz.org880 people

    Watch a VC use my name to sell a con

    jwz
    Personal · last shared 2026
    Ben Tillybentilly.blogspot.com34 people

    How you eat corn on the cob predicts whether you're an analyst or algebraist

    Ben Tilly
    Personal · last shared 2026
    Cal Patersoncalpaterson.com102 people

    Firefox usage is down despite Mozilla's top exec pay going up

    Cal Paterson
    Personal · last shared 2026
    Google Research Blogresearch.googleblog.com278 people

    Guetzli: A New Open-Source JPEG Encoder

    Google Research Blog
    Company · last shared 2018
    Mark Guzdialcomputinged.wordpress.com69 people

    Stanford CS enrollment increase "downright scary"

    Mark Guzdial
    Personal · last shared 2026