Utilizing TypeScript Interfaces to Guide GPT-4

Based on a suggestion from Matt Brockman, I’ve found that defining TypeScript interfaces within GPT-3 or GPT-4 prompts is an effective way to ensure that generated responses possess a desired...

What can a software engineer do about climate change?

I spent the first 15 years of my career both keenly aware of the impending climate crisis and feeling that my chosen profession, software engineering, was poorly positioned to really...

How to dramatically improve the reasoning ability of GPT-3

Following up on my recent post about prompt engineering, in this post I explore a technique that dramatically improves GPT-3’s reasoning ability and output quality. Presumably, this will work on...

Prompt Engineering Tips and Tricks with GPT-3

I’m going to assume you know what GPT-3 is and why it’s a Big Deal™. The way you interact with GPT-3, or its forthcoming competitors, is through Prompt Engineering. In...

Why Security Expectations Matter: Hidden Content is Readable in Shared Google Sheets

This post describes a security design flaw that I found last year in Google Sheets. While this isn’t a traditional security bug, it could still create vulnerability for users and...

Installing XGBoost on OS X

Today I went to install XGBoost on OS X Sierra and ran into some issues. Here’s how I fixed it.

Using Huginn Scenarios to Save Money

This is my fourth post about Huginn, a tool that I’ve been working on with the generous support of other open source collaborators. Huginn is a light-weight platform for building...

An Example of Poor Security Communication in the Google Auth Flow

Responsible Disclosure The issues discussed in this post were responsibly disclosed to Google Security. Google triaged the issues, talked to the involved teams, and declined the opportunity to fix before...

Demasking Google Users with a Timing Attack

Responsible Disclosure I believe strongly in the responsible disclosure of security issues, having participated in Google’s responsible disclosure program in the past and helping to run a similar disclosure program...

Select any Procfile on Heroku via Environmental Variable

I couldn’t figure out a way to customize which Procfile is run on Heroku, so I made a very simple buildpack that moves your preferred Procfile into position on deploy....

Frequency Analysis of XKCD's 'What If?'

I thought it’d be fun to do a word frequency analysis of XKCD author Randall Munroe’s wonderful “What If?” series. After tokenizing all current 102 “What If?” entries and removing...

Adding RSS feeds to any site with Huginn

This is my third post about Huginn, a tool that I’ve been working on with the generous support of other open source collaborators. Huginn is a light-weight platform for building...

Know when the world changes-- with Huginn

This is my second post about Huginn, a tool that I’ve been working on with the generous support of other open source collaborators. Huginn is a light-weight platform for building...

Parsing Bash in JavaScript in Chrome with Browserify

For a side project, I wanted to be able to use js-shell-parse to parse complex Bash commands in JavaScript, in a Chrome extension. (More on this craziness in a future...

Never Forget Your Umbrella Again, with Huginn

Huginn is a tool that I’ve been working on, with the support of generous open source collaborators, for about a year. Huginn is a light-weight infrastructure for building data-gathering and...