Knowledge Updates

Observations while developing web applications and creating great software.

  • React Hook Form vs. Formik ↗

    This discussion on X favors React Hook Form over Formik due to Formik falling behind with features and performance. Also some goodies for why native form handling isn’t yet good enough: you cannot style native validation errors.

    The preference for React Hook Form isn’t too surprising as it’s also supported by Vercel.

  • How to hire the best people you’ve ever worked with ↗

    Marc Andreessen, co-founder of Netscape and Andreessen Horowitz, on driven people:

    I define drive as self-motivation—people who will walk right through brick walls, on their own power, without having to be asked, to achieve whatever goal is in front of them. 

    People with drive push and push and push and push and push until they succeed. 

    Winston Churchill after the evacuation of Dunkirk:

    “We shall not flag or fail. We shall go on to the end, we shall fight in France, we shall fight on the seas and oceans, we shall fight with growing confidence and growing strength in the air, we shall defend our Island, whatever the cost may be, we shall fight on the beaches, we shall fight on the landing grounds, we shall fight in the fields and in the streets, we shall fight in the hills; we shall never surrender.”

    Winston Churchill

    That’s what you want.

  • Introducing a ViewTransition component in React ↗

    View Transitions in React may be coming soon with this newly opened PR by Sebastian Markbåge.

    Conceptually the <ViewTransition> component is like a DOM fragment that transitions its children in its own isolate/snapshot. The API works by wrapping a DOM node or inner component:

    import { ViewTransition } from 'react';
    
    <ViewTransition>
      <Component />
    </ViewTransition>

    The default is name="auto" which will automatically assign a view-transition-name to the inner DOM node. That way you can add a View Transition to a Component without controlling its DOM nodes styling otherwise.

    Via X
  • Systems Software Research is Irrelevant (PDF, 2000) ↗

    Rob Pike in the “Things to Do” section of his February 2000 paper while working at Bell Labs:

    Go back to thinking about and building systems. Narrowness is irrelevant; breadth is relevant: it’s the essence of system.

    Work on how systems behave and work, not just how they compare. Concentrate on interfaces and architecture, not just engineering.

    Be courageous. Try different things; experiment. Try to give a cool demo.

    Get involved in the details.

    Via X
  • Things we learned about LLMs in 2024 ↗

    Simon Willison:

    lot has happened in the world of Large Language Models over the course of 2024. Here’s a review of things we figured out about the field in the past twelve months, plus my attempt at identifying key themes and pivotal moments.

    Prompt-to-interface exploded:

    We already knew LLMs were spookily good at writing code. If you prompt them right, it turns out they can build you a full interactive application using HTML, CSS and JavaScript (and tools like React if you wire up some extra supporting build mechanisms)—often in a single prompt.

    […] the Chatbot Arena team introduced a whole new leaderboard for this feature, driven by users building the same interactive app twice with two different models and voting on the answer. Hard to come up with a more convincing argument that this feature is now a commodity that can be effectively implemented against all of the leading models.

    This is one reason why Rolldown is focused on WebAssembly performance — the world needs build tools to run in browsers. Web apps generating web apps. Watch VoidZero in 2025.

    On MLX:

    Apple’s mlx-lm Python supports running a wide range of MLX-compatible models on my Mac, with excellent performance. mlx-community on Hugging Face offers more than 1,000 models that have been converted to the necessary format.

    Prince Canuma’s excellent, fast moving mlx-vlm project brings vision LLMs to Apple Silicon as well. I used that recently to run Qwen’s QvQ.

    MLX is used by Exo which is a very fast way to get started running models locally.

    On the value of LLMs:

    I get it. There are plenty of reasons to dislike this technology—the environmental impact, the (lack of) ethics of the training data, the lack of reliability, the negative applications, the potential impact on people’s jobs.

    […]

    LLMs absolutely warrant criticism. We need to be talking through these problems, finding ways to mitigate them and helping people learn how to use these tools responsibly in ways where the positive applications outweigh the negative.

    I think telling people that this whole field is environmentally catastrophic plagiarism machines that constantly make things up is doing those people a disservice, no matter how much truth that represents. There is genuine value to be had here, but getting to that value is unintuitive and needs guidance.

    Agreed.