Duplication is useful when it supplies independent, specific examples of a general concept that you don’t yet understand.

--Sandi Metz, 99 Bottles

I saw the movie Nomadland last night on Hulu. Meh. The fimmaking was visually beautiful and Frances McDormand was outstanding, but... it seemed like there was no story there. I felt like the movie never really engaged me or pulled me in. I didn't think McDormand's character was all that well developed, and the movie never made clear what was driving her. She starts nowhere, goes nowhere, and doesn't learn anything along the way. I have a feeling that is the point -- yes, exactly! she's going nowhere, and has nowhere to go... get it? -- but that's a hard trick to pull off in a film, and this one doesn't accomplish it.

The script felt as emotionally disconnected as its main character was. A lot of the critical attention seems to make a fuss about how the movie gives us a glimpse of this nomadic underclass, but I don't think it really did that well either; it shied away from that side of the story almost entirely, unlike the book.

Near the end it does seem to reach for a couple moment-of-truth scenes that have potential but end up as small beans. Those moments call more attention to the flatness of the script & plotline than they serve to move the needle toward actual drama.

I don't think I've ever been disappointed by a Frances McDormand film before. Maybe it's just me, but I thought Neverland was a big letdown.

You can’t create the right abstraction until you fully understand the code, but the existence of the wrong abstraction may prevent you from ever doing so. This suggests that you should not reach for abstractions, but instead, you should resist them until they absolutely insist upon being created.

--Sandi Metz, 99 Bottles

I see that Sandi Metz has a new edition of her 99 Bottles book out, with new JavaScript & PHP versions as well as the classic Ruby. I'll have to read it. I'm a big fan of Sandi's, and her work tends to be rich with insights and well-formulated principles about coding & program design. Even if it's an OO-focused book, and my preference is more FP focused these days, it's still a good bet that the book will be more than worth the time to work through it.

I put a simple webhook server in place to auto-rebuild the static version of site when I push changes to github. :-)

I've moved this site from the Perch CMS to Next.js. This is partly because of Perch's uncertain future and partly because I wanted something more modern to work with. I quickly tired of dealing with Perch's PHP stack (which I don't know well at all, since I don't use it professionally), so I've been looking for node.js alternatives on & off for years.

Next.js was intriguing first of all because it's React based, but also because it offers a really nice range of options from static to dynamic pages. It seemed worth trying out, and I really liked it after some early experiments.

Right now I've started with a fully static Next.js site. I'll see how this goes. I'm considering migrating to a headless CMS for content management if I get tired of the static generation loop again; directus.io is my leading candidate (except for a bug that broke its SQLite support for now).

So far, working with next.js has been great, especially as it lets me use React. It's far easier than the PHP templates I was using in Perch. And... it's all Javascript now! :)

Perch's future looks uncertain, unfortunately.

As things stand there is not active development happening with Perch....

The product doesn't make enough money to justify two people working on it.

They promise at least maintenance-mode updates, but given that situation I can't use it for any new projects. Very sad. It sounds like the their business model just wasn't working out for them.

From McLaren Stanley's epic Twitter thread about an engineering near-disaster at Uber:

So my advice. Everything in Computer Science is a trade off. There is no universally superior language. Whatever you do, understand what the tradeoff[s] are [and] why you are making them. Don’t let it descend into a political war between opinionated factions.

Build in failure points. Figure out how to identify the tradeoffs and give yourself a way out if you get to a certain point a realize that you made a mistake. Big efforts are hard, but the cost grows the longer you make the wrong trade off.

Don’t be a Curmudgeon who doesn't contribute to the solution. Don't be a Zealot who creates bigger problems for everyone else. The best engineers I’ve ever worked with are really good at not falling into either of these traps.

Maizie
Maizie restingMaizie resting
< Older Newer >