It was a sad reality check to read Rachel Nolan’s review of two books on U.S./Mexican border dynamics in a recent LRB. The fundamental reality is U.S. firearms freely flow into Mexico while drugs flow the opposite direction. Reducing crime and violence in Mexico would require the U.S. to meaningfully reform both the lousy state of public health and the abysmal state of firearms access. However,…
Every year, Nieman Lab publishes hundreds of predictions for journalism for the year ahead . I wanted to catch up on this thinking before I attend NICAR in March but I didn’t want to read each page individually online, so I scraped each page into a single PDF. This is possible because Neiman Lab’s content is licensed CC-BY-NC. So I feel comfortable re-releasing their work in this reformatted…
I spent a large amount of last year rebuilding DocumentCloud. A rebuild is always a risky proposition and carried some serious risks. I thought I’d take a moment to explain why it was the right solution and how we approached it. In 2023, we added some new features like an improved Add-Ons browser and redesigned some existing components, which created some inconsistency between the old-and-new…
Flexoki is a color scheme for prose, developed by Steph Ango, the creator of Obsidian. Ango describes the project: Flexoki is designed for reading and writing on digital screens. It is inspired by analog inks and warm shades of paper. I think it looks fantastic, especially in dark mode. The colors are vibrant without being super saturated, and I find their warm tones calming. This project has been…
Jason Kottke: Today is the fourth anniversary of the attack on Congress and attempted coup of the United States government and the man who incited it will be sworn in as President of the United States later this month. On this dark day, it is important to remember what happened and why, so I went back and looked at some of what I posted in the aftermath of the attack. Here are a few of the videos,…
When I imagine electrified transportation with the potential to transform and decarbonize society, I don’t think of electric cars. It’s e-bikes that have the biggest potential for impactful change to how we live. I’m really excited by the thinking behind CLIP: it’s an intervention that electrifies existing bikes and makes bicycle commuting more accessible. It’s just damn good design.
Yesterday , I linked to a tutorial on Atkinson dithering . I think dithering is an extremely cool effect, especially when trying to achieve a retro aesthetic. Bill Atkinson developed his take on a dithering algorithm for the first Macintosh, and his results are supremely “Mac”—it tends to produce the most (subjectively) pleasant images compared to other methods. But what’s the appeal of a retro…
Yesterday , I mentioned that I’ve been saving bookmarks with Raindrop . I’ve been saving bookmarks for over a decade. For me, it’s the only sensible way to remember anything I come across online. Effectively, I have created a personal subset of the web. Bookmarking is a better habit than dumping everything to a “read later” queue, since I’m not creating yet another inbox that I need to clear out…
In traditional holiday fashion, I’m dusting off the ol’ blog and trying to commit to posting more regularly. Let’s see if it sticks this time! I think I’ve got a good foundation to at least share a few interesting links each week, since I’ve got a long backlog of links saved in Raindrop . I’ve also got a bunch of interesting work slated for this year, so I’m hoping to use this space to think…
While developing a new application with SvelteKit, I figured I’d go for an off-the-shelf solution for authentication. I quickly found myself frustrated with Auth.js , since they promote using OAuth provided by big tech companies and discourage credential-based auth. I thought, what the heck, let’s try rolling my own auth and see how hard it is. It’s not difficult at all, it just requires a little…
The headline of the Global Carbon Project’s 2024 report : we’ve not reached peak fossil emissions. Global emissions from burning fossil fuels are projected to rise another 0.8%, for a total 37.4 billion tons (GtCO2), in 2024. Despite growth in fossil emissions, decreases in land-use emissions have plateaued total annual global emissions at 41.6 GtCO2 for the last decade. Atmospheric CO2 is…
We’ve already reached 1.5° . I think it’s safe to assume no serious emissions reductions, and the possibility of increases, for the the next four years. We’ll likely see a 2° warmer world in the next 20 years . While many estimates put 4° out at 2100, some studies estimate we’ll reach it in the next 40 years . Given the challenge of thinking exponentially and our political reality, I’m inclined to…
Winter Solstice is December 21, 2024 at 4:19AM Eastern. I want to mark it on my digital calendar, Fantastical . Since all the entries are based on events with a duration, there’s no way to “bookmark” a specific moment in time and space. Even if I create an event that starts and ends at the same time, it still shows up on my calendar as something with a start and an end, when I really want it to…
A recent preprint claims terrestrial carbon sinks trapped much less atmospheric CO2 than in previous years. Patrick Greenfield , covering it for The Guardian , reports: “The issue of natural sinks has never really been thought about properly in political and government fields. It’s been assumed that natural sinks are always going to be with us. The truth is, we don’t really understand them and we…
While reading the release notes for React 19 RC, I was thrilled to see the addition of a new hook, useActionState . This hook renames useFormState, moves it from the react-dom package to the core react package, and adds an additional return value that indicates the pending status of the returned server action. This hook is critical when writing any code that interacts with Next.js Server Actions .…
Oleksandr Hlushchenko’s release update for FSNotes 6 begins: Hello everyone, it’s been a long time since the last big issue. The covid ended, the war began, I moved to Lviv, this post I am writing with no light at all. A huge series of events, among which it would seem there is no place for development. But luckily life hasn’t stopped and today I am happy to present you a new major update for…
Cory Doctorow’s 2023 essay introducing enshittification into the popular lexicon gave a name the vague feeling that the arc of platforms bends towards extracting increasing value from their users at the expense of the experiences that originally grew their usage. Edward Zitron’s report last month on the decline of Google Search gives a name to the individuals directly responsible for it: “These…
I was sitting on my front porch after lunch, about halfway through reading Alex Ross’s recent article, “What is Noise?,” when my neighbor’s hired landscaper began using a leaf-blower. He was using it to clear away bits of mulch that, while being moved and spread, had fallen on the pavement. A simple broom could have swept clean the mess. A more careful application of the mulch could have avoided…
I built a fantastic application layout today. Lightweight, responsive, rock-solid, uncomplicated ; it just works. I feel immense satisfaction when I can solve a problem, completely, in the fewest possible steps. It was just a just few hours of work, supported by a few additional hours of sketching and mocking, but possible because of the thousands of hours I’ve spent solving this kind of problem…
In the fall I built a compost bin. Having a healthy balance of green (nitrogen-rich) and brown (carbon-rich) compost promotes decomposition; an ideal ratio is about 4 parts brown to 1 part green. One issue I have is that our kitchen and garden compost produces plenty of green matter, in the form of veggie scraps, weeds, and trimmings, but not nearly enough brown matter to balance it out.…
Update: 5/28/2024 React 19 now includes React.useActionState , which updates useFormState to address these concerns by adding a pending return value. I fully endorse useActionState ! Server actions are the new shiny toy in Reactland, and for good reason: they make handling form submissions more straightforward than they’ve even been for front-end developers. That being said, they’re still in an…
I’ve been a big fan of Notion for years, since I first learned about it in late 2018. I run my freelancing business on Notion, using it to keep track of all my meeting notes, project details, client directories, task lists, and development timelines. I’ve also extended it into my personal life for daily journaling and habit-tracking. A habit tracker is a case study in how Notion databases can be…
I’ve worked remotely since 2017, both as an employee and as a founder. When we all locked down in 2020, I saw everyone thrown into chaotic remote working situations they had no time to prepare for. At that time, nearly two-thirds of employees polled “felt like the cons outweigh the pros” and a third considered quitting altogether. Four years later, remote work is now an intentional choice made by…
Craig Mod’s submission to the New York Times ’s “52 Places to Go in 2024”, Yamaguchi, is a spiritual successor to his submission last year, Morioka. In his most recent Ridgeline newsletter, Mod explains why he keeps submitting mid-sized cities with populations in the hundreds of thousands, instead of multi-million metropoli like Kyoto and Tokyo: Cities like Yamaguchi and Morioka occupy an Other…
Building my own publishing system has been a fun distraction. This is for better and worse. it keeps my programming skills sharp, but it gets in the way of actually publishing anything. To quote from one of my first notes , “the human condition, the condition of the tool-using animal, is to be perpetually vulnerable to mistaking instruments for ends”. I’m as guilty of that as ever. Anyway, I am…
This transcript of Bruce Schneier’s lunchtime lecture at the Kennedy School is worth reading in full. He presents a loose case for how and why to regulate the deployment of AI: In this talk, I am going to make several arguments. One, that there are two different kinds of trust—interpersonal trust and social trust—and that we regularly confuse them. Two, that the confusion will increase with…
First, some complaints about automating Apple stuff: Why are there no Smart Mailboxes or Mail Rules on iOS? Why can’t that be synced through iCloud or similar? My rules only get run once I open Mail on my laptop. The performance of Shortcuts on iOS 17 is terrible and I haven’t seen this discussed much. I’m talking like a 5-second delay between touch and response, it’s embarrassing. Creating a…
I just asked an LLM for help writing some AppleScript and—holy moly—it was so much better than trying to write AppleScript myself. Now that I don’t need to learn the syntax, I feel like a world of automation has just opened up to me.
I just recently upgraded my digital garden with search and, like adding feeds , the Next.js App Router made this feature extremely easy to accomplish. But more than a pleasant developer experience, I’m most excited by how simple it was to create a progressively enhanced search interface with React Server Components. The foundation of the search component is statically-rendered, browser-native HTML…
Since I’ve started collecting notes and highlights here, I’ve been meaning to return them as formatted feeds, RSS being the main one. Well, I got around to it . It was way easier than I remembered, and I even got bonus Atom and JSON feeds out of it. I’m using Next 13.2 and its new App Directory to generate the site, so this made feeds delightfully simple to implement. In fact, it may be the best…
In summing up the unlikely, 30-year story of how Yellowstone’s algae inspired the invention of PCR (the biochemical technique used for COVID testing), Clive Thompson writes: I think I’m so smitten by this story — with its mix of deep curiosity into seemingly pointless subjects, followed by the discovery that this “pointless” material is wildly useful in a new domain — because it dovetails with my…
I want my website/homepage to give me ways to keep track of bookmarks, notes and highlights in the things that I’m reading. I’m typically creating these on my phone or tablet, and the kind of data varies with the kind of reading: when browsing the web, I’m saving tagged bookmarks into Pinboard. This is like my private search engine, where it’s easy to recall things I have seen in the past that I…