If you’ve been building with LLMs over the last year, you’ve likely hit the “Agent Wall.” You build a cool agent, give it a massive system prompt, and it works… until it doesn’t. As you add more capabilities, the context window gets bloated, the agent gets confused, and porting that logic to another platform (like […]

Read More →

Large Language Models (LLMs) all predict text, but they differ a lot in how they follow instructions, use context, handle tools, and optimize for safety, speed, or cost. If you treat them as interchangeable, you’ll ship brittle prompts. If you treat them as different runtimes with different affordances, you’ll get reliable results. This post explains the major differences across […]

Read More →

In the world of data processing, JSON (JavaScript Object Notation) has become a ubiquitous format for data interchange. Whether you’re working with APIs, configuration files, or data storage, JSON is often the go-to format. However, manipulating JSON data can be cumbersome, especially when dealing with large datasets. This is where jq, a powerful command line […]

Read More →

The WebDriver spec defines a set of interfaces and a wire protocol that are platform and language-neutral and that allow out-of-process programs to remotely control a browser in a way that emulates the actions of a real person using the browser. It is primarily intended to allow web authors to write tests that automate a […]

Read More →

Puppeteer is a Node library which provides a high-level API to control headless Chrome over the DevTools Protocol. It can also be configured to use full (non-headless) Chrome. Puppeteer works only with Chrome. However, many teams only run unit tests with a single browser (e.g. PhantomJS). In non-testing use cases, Puppeteer provides a powerful but […]

Read More →