I've been generating a lot of web apps recently. It's been exhilarating to be able to launch projects (albeit on the small side) that I've always wanted to see be created finally be willed into existence. Last week on the train back from London I embarked on my largest project yet, https://tldr.express. I've been amazed by Agents like...
FauxRPCFauxRPC, a tool for generating fake gRPC servers, now integrates with , a tool for generating fake gRPC servers, now integrates with protovalidateprotovalidate, which lets you define validation rules in your Protobuf definitions. Now every request processed by FauxRPC will be automatically validated against your protovalidate rules. Not only will you get high quality data validation in your application, but now you can have..., which lets you define validation rules in your Protobuf definitions. Now every request processed by FauxRPC will be automatically validated against your protovalidate rules. Not only will you get high quality data validation in your application, but now you can have...
Day two of recipe week is this recipe for candied jalopenos that I like to make a batch of at the start of the summer for pizzas on my Ooni.
Today marks two years since I first set up an e-ink display in my mom’s apartment to help her live on her own with amnesia. The display has worked extremely well during those two years, so I’m sharing the basic set-up in case others find it useful for similar situations. Note: unless you have specific experience caring for someone who has amnesia...
In the end, after the past week of watching this take and that take, but mostly just avoiding any real bothering with any takes at all, about how the election went the way it did, I’ve settled in the only place that makes any sense to me. Whatever the perceived self-interest of any given Mine Furor voter—be it caste allegiance or aspiration,...
Atuin is a tool and labor of love built by Ellie Huxtable that runs in the background to capture commands you’ve entered. It stores these locally in a SQLite database and provides a great CLI tool to search through that history, provide stats of what commands you frequently run, and optionally...
When an HTML element becomes too narrow, its content starts to wrap into multiple lines. This is intended behavior and works well in many cases. However, for short text, it doesn't look great when the last word or icon drops to the next line, becoming an orphan. For example, you might see something like this: Click here for more info It...
As I'm currently looking for my next role, I've had to do serious reflection on the work I actually want to do. My conclusion from this reflection is that teams generally don't hire for the work I really like, with some rare exceptions. This is why I almost always end up carving out my own space. Whenever I join a team, regardless of what the job...
React server components. Streaming server side rendering. Edge compute. Web app architecture advancements are making classic SPAs appear long in the tooth. Time to see what I’ve been missing, and try to keep up with the Joneses (negative connotation fully implied). I might suffer from Perpetual Reengineering Syndrome as this is the umpteenth time...
I have an admission to make. Social share images for Pika were broken on Twitter/X, LinkedIn, and Apple Messages for months. And it made me sad. But in the past few months we got it fixed. And that made me very happy! We really love our Pika social share images. They are pretty. They are readable. They reflect the theme chosen by the blogger....
Taco Bell is a miracle of food preparation. They manage to have a menu of dozens of items that all boil down to permutations of 8 basic items: meat, cheese, beans, vegetables, bread, and sauces. Those basic fundamentals are combined in new and interesting ways to give you the crunchwrap, the chalupa, the doritos ...
The hills on the horizon are becoming clearer, I think to myself. I reflect on the faint haze that remains after the heavy fog that painted the landscape white earlier in the morning. The low sun is shining, illuminating the few remaining colourful leaves on the trees in front of me. I think back to all the changes in the leaves — from the pink...
A practical guide to left and right shift operators in JavaScript
Music from Bon Iver plays in the background of a cosy cafe in the heart of Mitte, Berlin. The cafe is elevated from street level, which gave me a different perspective of the street. After a few days of cold mornings, the city had started to warm up a little bit. People will still wearing hats and gloves on the street, but the temperature was no...
I have been thinking about how musical concepts apply to blogging recently. For example, could you make “playlists” of your content that are curated by theme or the mood of the posts? For example, could I have a list of “Monday morning pick-me-ups” with heartwarming stories I have written, or a list of “Web Wednesday” posts that are all about...
A few weeks ago, I wrote a blog post with a friend in real time using Google Docs. We started with a blank page and conversed in the document to develop an idea. Then, we started writing, together. The result was a delightful story. We only spoke in Google Docs; our communication was limited to text. We decided to write a fiction story. I am less...
A supermarket in Berlin with a sign that reads ‘freshly made smiles’. Freshly made smiles at a supermarket in Berlin.
How I ship projects at big tech companies This piece by Sean Goedecke on shipping features at larger tech companies is fantastic. Why do so many engineers think shipping is easy? I know it sounds extreme, but I think many engineers do not understand what shipping even is inside a large tech company. What does it mean to ship? It does not mean...
In the last few posts I have shown some of the experiments I did with font rendering. Those experiments were all in the In the last few posts I have shown some of the experiments I did with font rendering. Those experiments were all in the rendererrenderer. I’m using . I’m using msdfgen-atlasmsdfgen-atlas to generate the textures used by the renderer, and I wanted to experiment with to generate the textures used by the renderer, and I wanted to experiment with msdfgenmsdfgen’s parameters. Instead of generating new font data and then reloading the browser, I decided to try “headless” rendering controlled by a shell script.’s parameters. Instead of generating new font data and then reloading the browser, I decided to try “headless” rendering controlled by a shell script.
Ten years back, I was working as a creative copywriter at a Moscow publishing house that had published and distributed Delivering Happiness a few years prior.… Continue reading → The post One of the best books I’ve ever read — Wonder Boy appeared first on Sergey Kaplich.
Quick check: do you agree or disagree with the following statement: Quick check: do you agree or disagree with the following statement: If a study finds a result significant at a p=0.05 level, that means they have followed a methodology which produces this conclusion correctly 95 % of the time. If a study finds a result significant at a p=0.05 level, that means they have followed a methodology which produces this conclusion correctly 95 % of the time. Yes or no? Keep that in mind, and we’ll get back to it. Yes or no? Keep that in mind, and we’ll get back to it. I’m reading the Fisher book where he popularised the p-value I’m reading the Fisher book where he popularised the p-value1111 Statistical Methods for Research...Statistical Methods for Research...
Did you go to university, polytechnic, or a similar institution? If so, do you remember… group assignments? No two words combined strike as much fear in the minds of undergraduates in my experience, other than perhaps pop quiz. I worked with some standout people during some of my group assignments, including Vadim and Clara. But the majority of...
Ashley Fairbanks: Let me share my lifelong dream for the left: taking over fraternal organizations (Moose, Oddfellows, Etc.) They are 501c8s, which is basically impossible to get now. Most of them own property, they often have liquor licenses that are grandfathered in. We could have clubhouses! This morning, via Rob Horning, I saw Henry Farrell...
Remember when I said that if you muddle with vintage hardware mixtures, one thing gets fixed but the other has a very big tendency to break? I was trying to save this for the PicoGUS post but that’ll have to wait as debugging the current problem is giving me a headache. You see, I kind of sort of maybe perhaps broke my Vintage Sound Blaster 16. I...
Everything you need to know about query planning can be understood from this query: SELECT * FROM xy WHERE y = 3 ORDER BY x Imagine we have two indexes, one ordered on y, and one ordered on x. Then two possible plans suggest themselves: Plan 1: scan the y index, restricting it to the values of y such that y = 3, then sort the result by x. Plan 2:...
Everything you need to know about query planning can be understood from this query: SELECT * FROM xy WHERE y = 3 ORDER BY x Imagine we have two indexes, one ordered on y, and one ordered on x. Then two possible plans suggest themselves: Plan 1: scan the y index, restricting it to the values of y such that y = 3, then sort the result by x. Plan 2:...
Binary vector embeddings are so cool Evan Schwartz: Vector embeddings by themselves are pretty neat. Binary quantized vector embeddings are extra impressive. In short, they can retain 95+% retrieval accuracy with 32x compression and ~25x retrieval speedup. It's so unintuitive how well this trick works: take a vector of 1024x4 byte floating point...
The last seven days have been... difficult. I don't think I need to go into why (even for my non-American readers), but I am doing my best, as are a lot of people, to take things day by day. Honestly, as a white hetero man, I'm not so much worried for myself, but I'm deeply concerned about my family and friends who are LGBTQ+ and other...
I attended the University at Buffalo Hacking event over the weekend. It was fun. There were 90+ projects, I judged 15 projects. There were some interesting talks as well. It was good to see youth energy. It feels good to teach next generation something.Another thing, GeoGuessr played as a group game under time pressure is a lot of fun. This may...
I’m excited to offer the next giveaway, 20 licenses ($9.99 value each) for Monodraw. If you ever need to add ASCII art to a README or any text file, Monodraw is the best tool for creating it. From flow charts to mind maps, Monodraw’s drawing tools make adding boxes, lines, shapes and text as simple as any graphic design program. From the...
When I launched the More Birchtree subscription back in January of this year, I made the commitment that it would mean access to more posts, not just an excuse to put existing stuff behind a paywall. With 86% of the year behind us, I wanted to check in on how
Machine learning models are rapidly becoming more capable; how can we make use of these powerful new tools in our Go applications? For top-of-the-line commercial LLMs like ChatGPT, Gemini or Claude, the models are exposed as language agnostic REST APIs. We can hand-craft HTTP requests or use client libraries (SDKs …
Vector embeddings by themselves are pretty neat. Binary quantized vector embeddings are extra impressive. In short, they can retain 95+% retrieval accuracy with 32x compression 🤯.
For reasons that should be obvious, quite a few of us are probably going to be reaching for more cozy comfort media over the next while as a way to help us cope and function. So, I figure I might as well make a note of a few of them as I go, in case others need something they can watch without triggering an anxiety attack. And, because I have...
Upcoming events: EmacsSF (in person): coffee.el in SF https://www.meetup.com/emacs-sf/events/304301988/ Sat Nov 16 1100 America/Los_Angeles M-x Research: TBA https://m-x-research.github.io/ Wed Nov 20 0800 America/Vancouver - 1000 America/Chicago - 1100 America/Toronto - 1600 Etc/GMT - 1700 Europe/Berlin - 2130 Asia/Kolkata – Thu Nov 21 0000...
That development time acceleration of 4 days down to 20 minutes… that’s equivalent to about 10 years of Moore’s Law cycles. That is, using generative AI like this is equivalent to computers getting 10 years better overnight. That was a real eye-opening framing for me. AI isn’t magical, it’s not sentient, it’s not the end of the world nor our...
A short list this week because of how delayed last week’s link post was. “Understanding Society: Dewey on habits” “Community building & traditions - annie’s blog” “Bret Victor - De Programmatica Ipsum” “Don’t expect the tech platforms to help us this time.”. “ We only got four years. And the tech barons, having gotten a taste of administrative...
Today on Ask Me Anything I describe the best musical experience of my life
I’m not going to try to analyse what happened in the recent US presidential elections or why. The US has been heading in this direction for decades, so we already know it’s not down to a single cause or event. Nor will I try to predict what’s going to happen there over the next for years. Unpredictability is part of what makes these kinds of...
Josh is here again with another stunner of an article and they’ve done a fantastic job of demonstrating how useful container queries can be in the real world. This is a really important part: I don’t think most designers are even aware that they have this exciting new capability. It’s our job to share these developments with them, so that they...
Carville is right, the Dems stink from the blame-men-for-everything politics. That’s going to take a long time to clean up. To borrow a term they applied to all men, it’s toxic, and it certainly cost us this election. We left men with a choice, swallow hard and vote Democratic because we listen to trump and […]
How much extra javascript do you need to wire a reasonably ambitious and feature full rich text editor in your HTMX based app? Let’s find out. Some context: The very first build of tinychat shipped with a plain text editor. tinychat uses HTMX to get the SPA feel going. Last week I added integration with CK Editor 5. Here is what it looks like:...
As promised last week, this week is recipe week. This is one we batch cook for Baby Knight every few weeks and she can't get enough of it. The last batch I didn't have any tomato puree but I went ahead with it anyway and she still enjoyed it.
I’ve been working professionally for the better part of a decade on web apps and, in that time, I’ve had to learn how to use a lot of different systems and tools. During that education, I found that the official documentation typically proved to be the most helpful.
When trying to define the difference between a link () and a button (), a general rule of thumb is: links are for navigation, buttons are not. That can take you pretty far. However, like most things, there’s nuance and that mental model can fall apart under certain scenarios. Why? Because buttons can be for navigation too. Where? Buttons in forms...
For a few months, I had issues with my Wi-Fi network. The 2.4 GHz network would be fine, but the 5 GHz one would suddenly stop working and completely disappear from the available Wi-Fi networks. OpenWRT upgrades also didn’t improve the situation. This was very annoying. After some discussions with a friend, I learned about Dynamic Frequency...
As a junior engineer, there's simply no substitute for getting the first 100K lines of code under your belt. The "start over each day" method will help get you to those 100K lines faster. You might think covering the same ground multiple times isn't as valuable as getting 100K diverse lines of code. I disagree. Solving the same problem repeatedly...
MDN Browser Support Timelines I complained on Hacker News today that I wished the MDN browser compatibility ables - like this one for the Web Locks API - included an indication as to when each browser was released rather than just the browser numbers. It turns out they do! If you click on each browser version in turn you can see an expanded area...
I was fixing a page at work—like a gentleman—but I couldn’t figure out why a simple link wasn’t being respected. I must have read over the output of this script at least a dozen times, if not more. As always, the W3C Validator came to the rescue: Line 36, Column 308: there is no attribute “HERF” Heh, HERF. No wonder. As an aside, I might have a...
in the context of programming, transpernt is a contranym it can either mean that a system is hard to see (like a pane of glass) or easy to see into (like a transparent gameboy). !--more-- these two meanings are pretty much exact opposites, and it's frequently difficult to know which one is being spoken about. FORTH systems often pride themselves...
John Gruber: How It WentBut he’s an optimist at heart. You’d like him. I, of course, don’t know who you are, dear reader, but I know you’d like my dad, Bob Gruber, because everyone likes Bob Gruber.It’s exceptionally
We like to use pre-recorded videos at EmacsConf to minimize technical risks. This also means we can caption them beforehand, stream them with open captions, and publish them as soon as the talk goes live. Here's the process: Speakers upload their videos in whatever format they like. We use PsiTransfer to accept the uploaded files. We rename the...
Kalshi is an up-and-coming legal US prediction market regulated by the CFTC. The markets on Kalshi each have a betting limit which may be found within a PDF sent to the CFTC by KalshiEX LLC. Unfortunately these PDFs are formatted … Continue reading →
When upgrading to Rails 7.1 with any models using the encrypts macro from ActiveRecord::Encryption, be wary of upgrading the config.load_defaults in config/application.rb from 7.0 to 7.1. The 7.1 defaults for ActiveRecord::Encryption include a combination of settings that can lead to your app...
Revisiting the timeless Von Neumann Architecture