Knowledge Updates

Observations while developing web applications and creating great software.

  • The Process Predicament (2002) ↗

    The wildfires around Los Angeles are heartbreaking and preventable.

    Here’s the U.S. Forest Service back in 2002:

    Unfortunately, the Forest Service operates within a statutory, regulatory, and administrative framework that has kept the agency from effectively addressing rapid declines in forest health. This same framework impedes nearly every other aspect of multiple-use management as well. Three problem areas stand out:

    1. Excessive analysis—confusion, delays, costs, and risk management associated with the required consultations and studies;
    2. Ineffective public involvement—procedural requirements that create disincentives to collaboration in national forest management; and
    3. Management inefficiencies—poor planning and decision-making, a deteriorating skills base,
      and inflexible funding rules, problems that are compounded by the sheer volume of the required paperwork and the associated proliferation of opportunities to misinterpret or
      misapply required procedures

    These factors frequently place line officers in a costly procedural quagmire, where a single project can take years to move forward and where planning costs alone can exceed $1 million. Even noncontroversial projects often proceed at a snail’s pace.

    Forest Service officials have estimated that planning and assessment consume 40 percent of total
    direct work at the national forest level.

    That would represent an expenditure of more than $250 million per year. Although some planning is obviously necessary, Forest Service officials have estimated that improving administrative procedures could shift up to $100 million a year from unnecessary planning to actual project work to restore ecosystems and deliver services on the
    ground.

    Things have not gotten better since.

    Isaiah Taylor on X:

    In 2007 the Sierra Club successfully sued the Forest Service to prevent them from creating a Categorical Exclusion (CE) to NEPA for controlled burns (the technical term is “fuel reduction”). The CE would have allowed the forest service to conduct burns without having to perform a full EIS (the median time for which is 3.5 years).

    In 2021 the outgoing Trump BLM was served with the […] notice of intent to sue by the Center for Biological Diversity for their fuel reduction plan in the Great Basin. BLM backed away from the plan after the transition.

    Earlier today, the mayor of Los Angeles refused to answer questions from a reporter about her decision to cut the funding of the Los Angeles Fire Department by $17.6 million last June.

    Via X

  • Demonstrable, undeniable, awe-inspiring progress ↗

    David Heinemeier Hansson:

    This is exactly the kind of willing the future into existence that leaps of progress depend on. Who cares whether all these incredible ambitions arrive right on time or not.

    Because ambition this crazy is only likely to emerge from someone equally and sufficiently nuts. And I mean that in the most admirable way possible. Musk is nuts. He’s one of the crazy ones. A true original. Easy to hate, impossible to ignore.

    And that’s what gets me. Everyone find it easy to nod in agreement with Jobs’ ode to To The Crazy Ones. Everyone wants to believe that they’d support “the misfits, the rebels, the troublemakers”. That they too would cheer for those who are “not fond of rules. And… have no respect for the status quo”.

    But they won’t and they don’t. Most people are either aggressively or passively conformist. They squirm when The Crazy Ones actually attempt to change the world. They don’t see genius as often as they see transgressors.  A failure to comply and comport. And they don’t like it.

    I like it. Not crazy for the sake of crazy, but crazy for the sake of progress. Demonstrable, undeniable, awe-inspiring progress. And that’s what Mr Musk has brought us and continues to bring us.

    Watch on X
  • SSR Costs & Experience ↗

    Once you’re rendering on the server, doing the “right thing” for your users becomes significantly easier.

  • Habits decide your future

    “People do not decide their futures, they decide their habits, and their habits decide their futures.”

    F. M. Alexander
    Via Shawn Blanc on X
  • The Fish of Theseus ↗

    Fish 4.0 completes the move from C++ to Rust.

    Fish is a fantastic shell with tab completions, syntax highlighting, autocomplete, and lots more. It’s been my daily driver for at least 5 years now. If you depend on Bash scripts you can use Bass to load them.

    Great tooling makes development fun — very important in a hobby project:

    We need to get one thing out of the way: Rust is cool. It’s fun.

    It’s tempting to try to sweep this under the rug because it feels gauche to say, but it’s actually important for a number of reasons.

    For one, fish is a hobby project, and that means we want it to be fun for us. Nobody is being paid to work on fish, so we need it to be fun. Being fun and interesting also attracts contributors.

    Rust also has great tooling. The tools have really paid a lot of attention to use, and the compiler errors are terrific. Not even “compared to C++”, they just actually rule. And as we have tried to pay attention to our own error messages (fish has a bespoke error for if it thinks a file you told it to run has Windows line endings), we like it.

    And it is easy to get that tooling installed – rustup is magic, and allows people to get started quickly, with minimal fuss or root permissions. When the answer to “how to upgrade C++ compiler” is “find a repository (with root permissions), compile it yourself, install some other repository or a docker image”, it is amazing how the Rust answer can just be “use rustup”.

    Rust has great ergonomics – the difference between C++’s pointers (which can always be NULL) and Rust’s Options are apparent very quickly even to those of us who had never used it before. We did have a backport of C++’s optional, and liked using it, but it was never as integrated as Rust’s Options were.

    Great tools lead to great projects.

    While we’re talking about shells, you might want to try Ghostty, Berkeley Mono, and Fastfetch to kick off 2025.