Latest entries

  1. Coding Club

    Today I trekked to my daughter’s school (a long walk across the street!) to speak at her after-school coding club that’s been meeting weekly over the last month. It was really fun to see how they were learning to code. […]

    Brad FrostPublished

  2. Building a Runtime with QuickJS

    Building a tiny JavaScript runtime on top of QuickJS with timers, file I/O, and an event loop.

    Andrew HealeyPublished

  3. datasette-files-s3 0.1a1

    Release: datasette-files-s3 0.1a1 A backend for datasette-files that adds the ability to store and retrieve files using an S3 bucket. This release added a mechanism for fetching S3 configuration periodically from a URL, which means we can use time limited IAM credentials that are restricted to a prefix…

    Simon WillisonPublished

  4. Thoughts on slowing the fuck down

    Thoughts on slowing the fuck down Mario Zechner created the Pi agent framework used by OpenClaw, giving considerable credibility to his opinions on current trends in agentic engineering. He's not impressed: We have basically given up all discipline and agency for a sort of addiction, where your highest…

    Simon WillisonPublished

  5. datasette-llm 0.1a1

    Release: datasette-llm 0.1a1 New release of the base plugin that makes models from LLM available for use by other Datasette plugins such as datasette-enrichments-llm. New register_llm_purposes() plugin hook and get_purposes() function for retrieving registered purpose strings. #1 One of the responsibilities…

    Simon WillisonPublished

  6. BRINC's new police drone uses Starlink, carries Narcan, chases vehicles at 60mph

    Company calls Guardian the "most capable 911 response drone ever.”

    Ars TechnicaPublished

  7. Here is NASA's plan for nuking Gateway and sending it to Mars

    Only one US-built nuclear reactor has ever flown in space, and that was more than 60 years ago.

    Ars TechnicaPublished

  8. Reddit will require "fishy" accounts to verify they are run by a human

    AI-generated content is still acceptable for now.

    Ars TechnicaPublished

  9. We got an audience with the "Lunar Viceroy" to talk how NASA will build a Moon base

    "It has been clear that we all need to be focused on one thing, not 10 things."

    Ars TechnicaPublished

  10. Meta, YouTube must pay $3M to woman who got hooked on apps as a child

    Meta emerges as the biggest loser as second child safety trial verdict hits.

    Ars TechnicaPublished

  11. Nintendo is raising prices of Switch 2 game cartridges starting in May

    The first physical game affected will cost $10 more than a digital copy.

    Ars TechnicaPublished

  12. Supreme Court rejects Sony's attempt to kick music pirates off the Internet

    Sony's 1984 Betamax win helps Cox beat Sony in important online piracy case.

    Ars TechnicaPublished

  13. Google's TurboQuant AI-compression algorithm can reduce LLM memory usage by 6x

    TurboQuant makes AI models more efficient but doesn't reduce output quality like other methods.

    Ars TechnicaPublished

  14. Antibiotic resistance among germs swells during droughts, study suggests

    Study links two crises: Climate change and antibiotic-resistant infections.

    Ars TechnicaPublished

  15. LiteLLM Hack: Were You One of the 47,000?

    LiteLLM Hack: Were You One of the 47,000? Daniel Hnyk used the BigQuery PyPI dataset to determine how many downloads there were of the exploited LiteLLM packages during the 46 minute period they were live on PyPI. The answer was 46,996 across the two compromised release versions (1.82.7 and 1.82.8).…

    Simon WillisonPublished

  16. Trump staffs science and technology panel with non-scientists

    Appointee list is in keeping with the administration's hostility toward science.

    Ars TechnicaPublished

  17. Google bumps up Q Day deadline to 2029, far sooner than previously thought

    Company warns entire industry to move off RSA and EC more quickly.

    Ars TechnicaPublished

  18. Meta loses trial after arguing child exploitation was “inevitable” on its apps

    Meta plans to appeal as it faces down two other child safety trials.

    Ars TechnicaPublished

  19. Apple begins age checks in the UK with latest iOS update

    Move follows government pressure on smartphone makers to do more to protect children online.

    Ars TechnicaPublished

  20. Disney cancels $1 billion OpenAI partnership amid Sora shutdown plans

    Press reports suggest Disney was blindsided and that no money changed hands.

    Ars TechnicaPublished

  21. Honda cancels the two electric vehicles it was developing with Sony

    Sony Honda Mobility says the Afeela 1 and Afeela 2 are no more.

    Ars TechnicaPublished

  22. So long, farewell: Saying goodbye to Audi's best car, the 2026 RS6 Avant

    With production now finished, we take one last ride in our favorite station wagon.

    Ars TechnicaPublished

  23. How chemists turned bourbon waste into supercapacitors

    Hydrothermal carbonization can directly convert sloppy stillage into hard or activated carbon.

    Ars TechnicaPublished

  24. "The last straw"—RFK Jr.'s anti-vaccine ally angrily quits CDC panel after spat

    Robert Malone quit a vaccine panel, blaming an HHS spokesperson for "trashing" him.

    Ars TechnicaPublished

  25. Prot Asks: Arkadiusz about blindness, Emacspeak, Hyperbole, Chinese and Slavic culture

    In this 2-hour video I talk with Arkadiusz about how he uses the computer as a blind person and several other topics.

    Protesilaos StavrouPublished

  26. A eulogy for Vim

    Vim is important to me. I’m using it to write the words you’re reading right now. In fact, almost every word I have ever committed to posterity, through this blog, in my code, all of the docs I’ve written, emails I’ve sent, and more, almost all of it has passed through Vim. My relationship with the software…

    Drew DeVaultPublished

  27. Auto mode for Claude Code

    Auto mode for Claude Code Really interesting new development in Claude Code today as an alternative to --dangerously-skip-permissions: Today, we're introducing auto mode, a new permissions mode in Claude Code where Claude makes permission decisions on your behalf, with safeguards monitoring actions before…

    Simon WillisonPublished

  28. Final analysis of 2025 Iberian blackout: Policies left Spain at risk

    Too much hardware was allowed to disconnect right at the edge of normal conditions.

    Ars TechnicaPublished

  29. Newly purchased Vizio TVs now require Walmart accounts to use smart features

    Walmart wants to connect what people stream "directly with retail interaction."

    Ars TechnicaPublished

  30. Package Managers Need to Cool Down

    Package Managers Need to Cool Down Today's LiteLLM supply chain attack inspired me to revisit the idea of dependency cooldowns, the practice of only installing updated dependencies once they've been out in the wild for a few days to give the community a chance to spot if they've been subverted in some…

    Simon WillisonPublished

  31. Quoting Christopher Mims

    I really think "give AI total control of my computer and therefore my entire life" is going to look so foolish in retrospect that everyone who went for this is going to look as dumb as Jimmy Fallon holding up a picture of his Bored Ape — Christopher Mims, Technology columnist at The Wall Street Journal…

    Simon WillisonPublished

  32. Code as a Tool of Process

    Steve Krouse wrote a piece that has me nodding along: Programming, like writing, is an activity, where one iteratively sharpens what they're doing as they do it. (You wouldn't believe how many drafts I've written of this essay.) There’s an incredible amount of learning and improvement, i.e. sharpening…

    Jim NielsenPublished

  33. Resurrecting a £50 computer with Vivaldi and ChromeOS Flex

    The other day, I was pruning my inbox when I noticed an email from a company that I occasionally buy print cartridges from, IJT Direct, offering a reconditioned PC, with a new USB keyboard, mouse, wifi dongle, all for £50–including tax and delivery. Last year I upcycled an eBay Windows machine for my…

    Bruce LawsonPublished

  34. Malicious litellm_init.pth in litellm 1.82.8 — credential stealer

    Malicious litellm_init.pth in litellm 1.82.8 — credential stealer The LiteLLM v1.82.8 package published to PyPI was compromised with a particularly nasty credential stealer hidden in base64 in a litellm_init.pth file, which means installing the package is enough to trigger it even without running import…

    Simon WillisonPublished

  35. When “One in a Billion” Happens Every Day: Scaling Redis at Report URI

    Something that I've come to learn as we continue to grow Report URI is that everything is easy until scale makes it hard. We're now processing so much telemetry that a "one in a billion" problem can happen every, single, day, and we'

    Scott HelmePublished

  36. Dine ’n em-dash

    The best defense is to write humanly. The post Dine ’n em-dash appeared first on Jeffrey Zeldman Presents.

    Jeffrey ZeldmanPublished

  37. Please Compensate The Work You Appreciate

    The other day, I had a casual conversation with colleagues about buying music. Nobody gave a rat’s ass; they all just either downloaded the .mp3 files or used Spotify. Most conversations on this topic end like this so I expected the response from more than a few individuals, but not from everyone. I…

    Wouter GroeneveldPublished

  38. Restoring a 2018 iPad Pro

    This was surprisingly hard to find—hat tip to Reddit’s Nakkokaro and xBl4ck. Apple’s instructions for restoring an iPad Pro (3rd generation, 2018) seem to be wrong; both me and an Apple Store technician found that the Finder, at least in Tahoe, won’t show the iPad once it reboots in recovery mode. The…

    Kyle KingsburyPublished

  39. Talking Death of a Software Craftsman on the Dead Code Podcast

    I joined Jared again on the Dead Code Podcast to go a bit deeper on my post, The Death of a Software Craftsman. The outlook is kinda bleak, but plenty of digs at agile software practices :)

    David Bryant CopelandPublished

  40. Do you need AI for that?

    My social feed has divided mostly into two camps—those who can now only talk about how excited they are about AI, and those who are refusing to use it at all. I’m somewhat bemused by both of these positions, I see LLMs as a useful tool, in the way that I see spreadsheets as a […]

    Rachel AndrewPublished

  41. The Creative Infinite

    I found myself using the phrase “the Creative Infinite” when I’m talking about AI as a design material. I keep coming back to it because I don’t think we’ve fully grasped what this technology actually is, what it can do, […]

    Brad FrostPublished

  42. Streaming experts

    I wrote about Dan Woods' experiments with streaming experts the other day, the trick where you run larger Mixture-of-Experts models on hardware that doesn't have enough RAM to fit the entire model by instead streaming the necessary expert weights from SSD for each token that you process. Five days ago…

    Simon WillisonPublished

  43. Weekly Update 496

    Watching OpenClaw do its thing must be like watching the first plane take flight. It's a bit rickety and stuck together with a lot of sticky tape, but squint and you can see the potential for agentic AI to change the world as we know it. And I

    Troy HuntPublished

  44. Poem: Of carmine clouds

    Just read the poem. No further comment.

    Protesilaos StavrouPublished

  45. Emacs: spontaneous live stream Tuesday 24 March @ 21:30 Europe/Athens

    I am doing a live stream related to Emacs, where I will continue working on my denote-sequence package.

    Protesilaos StavrouPublished

  46. Quoting Neurotica

    slop is something that takes more human effort to consume than it took to produce. When my coworker sends me raw Gemini output he’s not expressing his freedom to create, he’s disrespecting the value of my time — Neurotica, @schwarzgerat.bsky.social Tags: ai-ethics, slop, generative-ai, ai, llms

    Simon WillisonPublished

  47. datasette-files 0.1a2

    Release: datasette-files 0.1a2 The most interesting alpha of datasette-files yet, a new plugin which adds the ability to upload files directly into a Datasette instance. Here are the release notes in full: Columns are now configured using the new column_types system from Datasette 1.0a26. #8 New file_actions…

    Simon WillisonPublished

  48. Quoting David Abram

    I have been doing this for years, and the hardest parts of the job were never about typing out code. I have always struggled most with understanding systems, debugging things that made no sense, designing architectures that wouldn't collapse under heavy load, and making decisions that would save months…

    Simon WillisonPublished

  49. ‘CanisterWorm’ Springs Wiper Attack Targeting Iran

    A financially motivated data theft and extortion group is attempting to inject itself into the Iran war, unleashing a worm that spreads through poorly secured cloud services and wipes data on infected systems that use Iran's time zone or have Farsi set as the default language.

    Brian KrebsPublished

  50. Sneaky Header Blocker Trick

    There is a lil’ UI detail on this blog. Most people don’t even notice it, but the ones who do often reach out, asking how on earth it works. It feels like it defies the rules of CSS! In this blog post, I’ll break down the surprisingly-straightforward implementation so you can start using this trick yourself…

    Josh W. ComeauPublished

  51. Beats now have notes

    Last month I added a feature I call beats to this blog, pulling in some of my other content from external sources and including it on the homepage, search and various archive pages on the site. On any given day these frequently outnumber my regular posts. They were looking a little bit thin and were…

    Simon WillisonPublished

  52. Starlette 1.0 skill

    Research: Starlette 1.0 skill See Experimenting with Starlette 1.0 with Claude skills. Tags: starlette

    Simon WillisonPublished

  53. Emacs: spontaneous live stream Monday 23 March @ 17:00 Europe/Athens

    I am doing a live stream related to Emacs, where I will try to implement a new feature for the denote-sequence package.

    Protesilaos StavrouPublished

  54. Emacs: doric-themes version 1.1.0

    Minimalist themes for GNU Emacs to complement my ef-themes (maximalist) and modus-themes (moderate).

    Protesilaos StavrouPublished

  55. Experimenting with Starlette 1.0 with Claude skills

    Starlette 1.0 is out! This is a really big deal. I think Starlette may be the Python framework with the most usage compared to its relatively low brand recognition because Starlette is the foundation of FastAPI, which has attracted a huge amount of buzz that seems to have overshadowed Starlette itself…

    Simon WillisonPublished

  56. PCGamer Article Performance Audit

    Research: PCGamer Article Performance Audit Stuart Breckenridge pointed out that PC Gamer Recommends RSS Readers in a 37MB Article That Just Keeps Downloading, highlighting a truly horrifying example of web bloat that added up to 100s more MBs thanks to auto-playing video ads. I decided to have Claude…

    Simon WillisonPublished

  57. The diminished art of coding

    Programming is an art. It’s less like fine art or music and closer to architecture or carpentry – combining form and function – but it is an art. If you don’t believe me, consider code reviews. I’ve definitely done code reviews where I admired the mastery on display, where the elegance of the solution…

    Nolan LawsonPublished

  58. JavaScript Sandboxing Research

    Research: JavaScript Sandboxing Research Aaron Harper wrote about Node.js worker threads, which inspired me to run a research task to see if they might help with running JavaScript in a sandbox. Claude Code went way beyond my initial question and produced a comparison of isolated-vm, vm2, quickjs-emscripten…

    Simon WillisonPublished

  59. DNS Lookup

    Tool: DNS Lookup TIL that Cloudflare's 1.1.1.1 DNS service (and 1.1.1.2 and 1.1.1.3, which block malware and malware + adult content respectively) has a CORS-enabled JSON API, so I had Claude Code build me a UI for running DNS queries against all three of those resolvers. Tags: dns, cors, cloudflare

    Simon WillisonPublished

  60. More Details Than You Probably Wanted to Know About Recent Updates to My Notes Site

    I shipped some updates to my notes site. Nothing huge. Just small stuff. But what is big stuff except a bunch of small stuff combined? So small stuff is important too. What follows is a bunch of tiny details you probably don’t care about, but they were all decisions I had to make and account for along…

    Jim NielsenPublished

  61. Merge State Visualizer

    Tool: Merge State Visualizer Bram Cohen wrote about his coherent vision for the future of version control using CRDTs, illustrated by 470 lines of Python. I fed that Python (minus comments) into Claude and asked for an explanation, then had it use Pyodide to build me an interactive UI for seeing how…

    Simon WillisonPublished

  62. RSS creator on Bluesky & AT Proto

    Bluesky can't abandon the developers who made a bet on AT Proto, so they should give the protocol to a standards body while catching up on UX.—Dave Winer The post RSS creator on Bluesky & AT Proto appeared first on Jeffrey Zeldman Presents.

    Jeffrey ZeldmanPublished

  63. Profiling Hacker News users based on their comments

    Here's a mildly dystopian prompt I've been experimenting with recently: "Profile this user", accompanied by a copy of their last 1,000 comments on Hacker News. Obtaining those comments is easy. The Algolia Hacker News API supports listing comments sorted by date that have a specific tag, and the author…

    Simon WillisonPublished

  64. Using Git with coding agents

    Agentic Engineering Patterns > Git is a key tool for working with coding agents. Keeping code in version control lets us record how that code changes over time and investigate and reverse any mistakes. All of the coding agents are fluent in using Git's features, both basic and advanced. This fluency…

    Simon WillisonPublished

  65. The responsibility to keep flowing

    I describe the prevailing conditions in my mountains and how those relate to matters of complacency, responsibility, foresight, and adaptability.

    Protesilaos StavrouPublished

  66. Turbo Pascal 3.02A, deconstructed

    Turbo Pascal 3.02A, deconstructed In Things That Turbo Pascal is Smaller Than James Hague lists things (from 2011) that are larger in size than Borland's 1985 Turbo Pascal 3.02 executable - a 39,731 byte file that somehow included a full text editor IDE and Pascal compiler. This inspired me to track…

    Simon WillisonPublished

  67. Quoting Kimi.ai @Kimi_Moonshot

    Congrats to the @cursor_ai team on the launch of Composer 2! We are proud to see Kimi-k2.5 provide the foundation. Seeing our model integrated effectively through Cursor's continued pretraining & high-compute RL training is the open model ecosystem we love to support. Note: Cursor accesses Kimi-k2.5…

    Simon WillisonPublished

  68. Re: People Are Not Friction

    Dave Rupert puts words to the feeling in the air: the unspoken promise of AI is that you can automate away all the tasks and people who stand in your way. Sometimes I feel like there’s a palpable tension in the air as if we’re waiting to see whether AI will replace designers or engineers first. Designers…

    Jim NielsenPublished

  69. A Satisfied Customer Review Of The Yogurtia

    And now for something completely different. For years, we’ve been happy users of the Yogurtia, a Japanese “fermented food maker”. That alone should sound enticing enough to warrant this small review! What’s a fermented food maker? I’m glad you ask. It’s a maker for food to ferment. Next question. In…

    Wouter GroeneveldPublished

  70. Look into the future of the web platform

    Last week I spoke at the very lovely Web Day Out in Brighton. My talk was about browser support, based on the work I’ve done over the past almost five years on Baseline. I ran through the various things you need to consider when deciding whether to use features that don’t meet your Baseline target. …

    Rachel AndrewPublished

  71. SQLite Tags Benchmark: Comparing 5 Tagging Strategies

    Research: SQLite Tags Benchmark: Comparing 5 Tagging Strategies I had Claude Code run a micro-benchmark comparing different approaches to implementing tagging in SQLite. Traditional many-to-many tables won, but FTS5 came a close second. Full table scans with LIKE queries performed better than I expected…

    Simon WillisonPublished

  72. Feds Disrupt IoT Botnets Behind Huge DDoS Attacks

    The U.S. Justice Department joined authorities in Canada and Germany in dismantling the online infrastructure behind four highly disruptive botnets that compromised more than three million hacked Internet of Things (IoT) devices, such as routers and web cameras. The feds say the four botnets -- named…

    Brian KrebsPublished

  73. Maintaining the long-term view

    An entry from my journal in which I describe how I do not lose my patience while working in my land.

    Protesilaos StavrouPublished

  74. Untitled

    Tonight I got to meet one of my design heroes, Margaret Calvert. Her work speaks for itself, which makes her modesty even more impressive. When I told her I use her typeface every day, she simply responded “oh dear, poor you”. Legend.

    Paul Robert LloydPublished

  75. Thoughts on OpenAI acquiring Astral and uv/ruff/ty

    The big news this morning: Astral to join OpenAI (on the Astral blog) and OpenAI to acquire Astral (the OpenAI announcement). Astral are the company behind uv, ruff, and ty - three increasingly load-bearing open source projects in the Python ecosystem. I have thoughts! The official line from OpenAI and…

    Simon WillisonPublished

  76. Consensus Board Game

    I have an early adulthood trauma from struggling to understand consensus amidst a myriad of poor explanations. I am overcompensating for that by adding my own attempts to the fray. Today, I want to draw a series of pictures which could be helpful. You can see this post as a set of missing illustrations…

    Alex KladovPublished

  77. Autoresearching Apple's "LLM in a Flash" to run Qwen 397B locally

    Autoresearching Apple's "LLM in a Flash" to run Qwen 397B locally Here's a fascinating piece of research by Dan Woods, who managed to get a custom version of Qwen3.5-397B-A17B running at 5.5+ tokens/second on a 48GB MacBook Pro M3 Max despite that model taking up 209GB (120GB quantized) on disk. Qwen3.5…

    Simon WillisonPublished

  78. datasette 1.0a26

    Release: datasette 1.0a26 Datasette now has a mechanism for assigning semantic column types. Built-in column types include url, email, and json, and plugins can register additional types using the new register_column_types() plugin hook.

    Simon WillisonPublished

  79. I redesigned my website without touching my keyboard…all while painting a mural

    On Friday night, I needed a break from screens, so decided to work on a bathroom mural that our family has been chipping away at for the last 4 years. But a lot was on my mind, so made the […]

    Brad FrostPublished

  80. Snowflake Cortex AI Escapes Sandbox and Executes Malware

    Snowflake Cortex AI Escapes Sandbox and Executes Malware PromptArmor report on a prompt injection attack chain in Snowflake's Cortex Agent, now fixed. The attack started when a Cortex user asked the agent to review a GitHub repository that had a prompt injection attack hidden at the bottom of the README…

    Simon WillisonPublished

  81. Leverage our treasure trove of Threat Intelligence data

    We've been working on CSP Integrity for a little while now, and it was only announced in open beta back in September. Since then, as more of our customers start to use it, we've continued to improve it and observe the potentially huge benefits. CSP Integrity

    Scott HelmePublished

  82. Web of State of the Browser Day Out [blog]

    Okay, that's a stupidly obscure title. It's meant to represent the combined events: State of the Browser and Web Day Out - two events I attended in the last month. The short version is: if you get the chance to attend these events or even anything similar, I'd highly recommend that you grab that ticket…

    Remy SharpPublished

  83. Hypermedia Friendly Model Context Protocol App Architecture

    I am working on speedystride.com, a programming tool that helps athletes quickly input workouts on their Apple and Garmin watches. These watches come with a built-in workout programming feature that is especially useful for structured programs. For example, runners will often do interval training, which…

    Carson GrossPublished

  84. Quoting Ken Jin

    Great news—we’ve hit our (very modest) performance goals for the CPython JIT over a year early for macOS AArch64, and a few months early for x86_64 Linux. The 3.15 alpha JIT is about 11-12% faster on macOS AArch64 than the tail calling interpreter, and 5-6%faster than the standard interpreter on x86_64…

    Simon WillisonPublished

  85. GPT-5.4 mini and GPT-5.4 nano, which can describe 76,000 photos for $52

    OpenAI today: Introducing GPT‑5.4 mini and nano. These models join GPT-5.4 which was released two weeks ago. OpenAI's self-reported benchmarks show the new 5.4-nano out-performing their previous GPT-5 mini model when run at maximum reasoning effort. The new mini is also 2x faster than the previous mini…

    Simon WillisonPublished

  86. You Might Debate It — If You Could See It

    Imagine I’m the design leader at your org and I present the following guidelines I want us to adopt as a team for doing design work: Typography: Use expressive, purposeful fonts and avoid default stacks (Inter, Roboto, Arial, system). Motion: Use a few meaningful animations (page-load, staggered reveals…

    Jim NielsenPublished

  87. Weekly Update 495

    In the beginning, it was simple. A website, a database and 150M+ email addresses to search. Time has added serverless functions (which run on servers 🤷‍♂️), code on the edge, new data storage constructs and a completely different mechanism for even just querying a simple email address.

    Troy HuntPublished

  88. Too Many Notes

    Lately, in work conversations, I find myself fighting a lifelong tendency to provide way more context than is absolutely required. If you ask me to okay your work, for example, I may respond with an essay on what delighted me about it. The teaching gene, plus the exuberance of writing and thinking clearly…

    Jeffrey ZeldmanPublished

  89. Building a Shell

    I built a tiny shell in C to learn what fork, execvp, and dup2 are doing under the hood.

    Andrew HealeyPublished

  90. Preparing for springtime

    I describe what I am doing these days and how I feel about the living environment I am a part of.

    Protesilaos StavrouPublished

  91. Implementing Hybrid Semantic + Lexical Search

    Semantic search alone wasn't good enough. Here's how I improved search on kentcdodds.com through three rounds of iteration with Cursor and GPT-5.4, each time learning something that the previous design missed.

    Kent C. DoddsPublished

  92. Food, Software, and Trade-offs

    Greg Knauss has my attention with a food analogy in his article “Lose Myself”: A Ding Dong from a factory is not the same thing as a gâteau au chocolat et crème chantilly from a baker which is not the same thing as cramming chunks of chocolate and scoops of whipped cream directly into your mouth [..…

    Jim NielsenPublished

  93. The Best Indicator For Quality In a Video Game Is My Willingness To Replay It

    Here’s a thought: the best indicator for quality in a video game is my willingness to first finish and then replay it. How many games have you replayed once? Or even twice? Or how about simply finishing it in the first place. I catch myself giving up on games that tend to drag on much faster than I used…

    Wouter GroeneveldPublished

  94. The Over-Engineering Method

    In Canada, “Engineer” is a protected term. I am a software developer, not a Software Engineer. There are valid reasons – historical reasons – to restrict who is a capital-E Engineer, but these reasons are at odds with how the term is commonly used today....

    Ash FurrowPublished

  95. A die-cut above

    Cover art for the 1971 prog-rock LP “Fearless,” by British band Family features a distinctive, die-cut cover design depicting the five band members gradually morphing into a single entity combining features of them all. Tom Brigham, a high school student and friend of mine the year the LP was released…

    Jeffrey ZeldmanPublished

  96. Selfie: beard and hair are growing

    Selfie picture of me from the side showing my beard while holding my hair

    Protesilaos StavrouPublished

  97. Computing in freedom with GNU Emacs

    A holistic introduction to Emacs: how useful it is and how it champions free software.

    Protesilaos StavrouPublished

  98. contrast-color() beyond black & white

    Two techniques that bypass the black-or-white limit of contrast-color() for custom color palettes.

    Una KravetsPublished

  99. Untitled

    Sun-kissed evenings in Porto never fail to impress.

    Paul Robert LloydPublished

  100. Feature Flagging at Databricks

    In late January, I published a post1 (archive) on the Databricks engineering blog about “SAFE”, the feature flagging and experimentation platform I’ve been working on for the past few years. SAFE is what I’ve been spending most of my time on during my time at Databricks, and it’s been rewarding to see…

    Ben CongdonPublished