RSSAmplifier

Blog

kellegous.com

kellegous.comRSS feed ↗20 posts

Latest posts

Filtering MCP Tools with jq

Last week we were attaching an MCP server to everything; this week we’re throwing them all out and replacing them with CLI’s (Command Line Interfaces). I think this may have all started when Open Claw creator, Peter Steinberger, was on the Lex Friedman podcast and took a subtle dig at MCP by saying “Screw MCP’s. Every MCP would be better as a CLI” . He’s not wrong and he goes on to explain one of…

Reading with LLMs

TL;DR; This is a demo of using LLMs to summarize books to the desired reading length. Like any everyone else with a keyboard, I spend a lot of my time these days using Large Language Models . It is both exciting, in that this stuff is new and the applications seem endless and unexplored, but it is also frustrating, in that most real uses of AI have received lukewarm receiptions from users. Some…

Bouncing Ball (AI Updated)

Way back in February 2006, I wrote a post where I shared a really simple way to model a bouncing ball that produced somewhat realistic rotations when the ball collided with a surface. It was all based on a 1969 American Journal of Physics article that I somehow stumbled over while doing the first week exercise in Neil Gershenfeld's famous Nature of Mathematical Modeling course at MIT. Like so many…

PostgreSQL Slow Cascading Deletes

This is less a thing I recently learned than one that I re-learned multiple times through real-world experience. Imagine that you are migrating a reasonable sized dataset from a document store to PostgreSQL. You have enabled dual writes and you are progressing slowly through a backfill process when, sadly, latency begins to spike and you find that all the slow queries are DELETE statements and…

0.1 + 0.2 != 0.3

Recently someone shared a link to a Javascript quiz that asks various questions about Javascript's infamous quirks. It was a fresh remix on a greatest hit that we've all been jamming to since the early 2000's. And within that quiz was a question that seems to appear in most of these quizzes about Javascript: What will be the output of this code? console.log(0.1 + 0.2 == 0.3); This is a real fun…

A Thing I Learned: counting bits

How many bits are set to one in a bit string? It’s a problem that pops up in a number of areas: bitsets, cryptography, error correction, and most of all interview questions. This problem is also known by many names: hamming weight, population count, popcount, sideways sum just to name a few. Almost any software engineer can write a trivial implementation using bit shifts in minutes, yet this…

A Thing I Learned: constexpr & consteval

A Thing I Learned is intended to be an ongoing series where I teach myself to write narrowly about some small thing that I have recently discovered that may also be of interest to others. In this first post in the series, I’m going to talk about a couple of new specifiers that have been added to modern C++, constexpr and consteval and how I recently had a revelation that their compile time…

What time is March 14, 2021 2:00 AM?

This post is just some fascinating (or quite boring depending on your perspective) minutia that arises in the handling of time and timezones in programming. This deals with a little corner that exists in almost every time library yet I’ve never had much reason to explore it. I had just assumed that all major programming environments would return a consistent answer to this question. Surprisingly,…

Sleep Numbers

About 5 or 6 years ago, I decided to form better sleep habits. I had spent too much of the previous decade in sleep deprivation and even when I was getting sufficient quantities of sleep, my bed times were wildly inconsistent. In graduate school, I had made such a habit of neglecting sleep that my memories of those years are fragmented. I would like to say that that having kids is what prompted me…

Puzzle Corner

The only paper periodical that is still delivered to my house is MIT’s Technology Review . In the back of every issue, there is a section called Puzzle Corner. As the name implies, it includes puzzles. It’s really an amazing column and has a long history; it has been edited by Allen Gottlieb for more than 50 years . The column consists of densely packed reader-submitted math puzzles and solutions…

PHP and the case of swallowed errors

In an effort to write more, I'm considering cataloging more of the things I learn on a day-to-day basis. This post certainly falls into that category of posts. We recently solved the mystery behind a pattern of failures that have been happening very infrequently over a long period of time. The culprit was surprising and a little unsettling, so I thought it might be worthy of a public blog post.…

S(h)ave The Beard?

I read on the Internet that the beard trend is over. That's great news because I'm not trendy and I decided to stop shaving at the beginning of the year. I made it a few weeks without arousing any suspicion that I intended to keep the beard, but now it's time time decide: do I s(h)ave the beard? Register below to make your vote count check_circle Grow It! 0 check_circle Shave It! 0 First I asked…

The Holy Fear

As texts for sharing useful guidance and wisdom, religious texts are pretty much the worst. Visit the front page of any news site right now and there is a decent chance that much of the reported violence is rationalized by the teachings of one of these texts. Meanwhile, my Facebook feed is an absurd mix of age-old intolerance and cherry-picked biblical texts about peace and understanding. It…

Don't Lose $2,000 to Comcast Business

This is a post I don't even want to write. I like building things and writing about building things and I generally don't like bellowing to the Internet when something doesn't go quite as well as expected. But the more I've chatted with people about my experience with Comcast Business, the more I realized that it's probably worth writing a bit just to let others know what to expect. So consider…

SURFing The Charles

Earlier this month, I assembled some photos of the Charles River into a time lapse montage . It was a fun project even if it wasn't very novel. A while back a friend of mine suggested that I write more about the construction of these little projects. I figured I would give that a try with this last project. But here's the thing: I'm not really an expert at any of this stuff I tinker with. In fact,…

A Morning On The Charles

In 2006, my friend Myoung Lah and a group of housemates set a tripod atop Baker House at MIT and painstakingly moved the camera by hand at regular intervals to produce about 1,000 different photos from 6 distinct angles along the Charles River. They apparently did this in shifts for almost 24 hours. I'm still not really sure why they did it or why they didn't automate it to ensure consistency in…

The Pleasant Places to Live

Where in the U.S. will you find the most “pleasant” days in a year? “pleasant” here means the mean temperature was between (55° F and 75° F), the minimum temperature was above 45° F, the maximum temperature was below 85° F and there was no significant precipitation or snow depth. 5 Most Pleasant Places LOS ANGELES, CA 183 days/yr SAN DIEGO, CA 182 days/yr OXNARD, CA 166 days/yr…

Puzzling

A few weeks back, I took some time off for a bit of recharging. That gave me some time to do things that might normally get prioritized out of my schedule, like familiarizing myself with other growing startups in the Atlanta area. I set out reading a number of startup blogs when I stumbled across one with a coding puzzle . I read the description and actually closed the tab quickly. I am not a huge…

innerText vs. textContent

Why does innerText require layout? I ended with that question in my previous post about layout thrashing . Just to recap briefly, there are very common patterns of use in the DOM APIs that cause terrible performance due to unnecessary layout. These posts highlight some of the oddities that I’ve found working on web performance for several years. As with many other things in browsers, innerText’s…

On Layout & Web Performance

Outside of initial page load problems, “layout thrashing” is the most common performance problem I see in dynamic web applications. This is particularly true for Single Page Applications which build and destroy views on the fly. However, I’m often amazed by the number of web developers I run into who are unaware of the patterns that cause browsers to do unnecessary layout (aka “reflow” in the…