The Big Switcheroo

:: Racket, Emacs

In my previous post I talked about how Racket Mode now will often want the back end command server, before actually needing a live REPL — but it has to start a REPL anyway. This was bothering me. So I went on to address that. Doing so entailed reversing the I/O model for the back end. As a bonus, that set up fairly short strokes to supporting multiple REPLs.

Using check-syntax in Racket Mode

:: Racket, Emacs

During most of January and into February, I’ve been working full-time to have Racket Mode make better use of drracket/check-syntax analysis of fully-expanded code. I’m pretty excited by it.

Future of Racket

:: Racket

For most of the last decade I’ve made things in Racket — including making tools and tutorials to support other people making things in Racket.

At RacketCon 2019, Aaron Turon gave the keynote about the Rust community.

That afternoon, I had a talk about Racket Mode for Emacs.

The next morning?

Linux Laptop

:: Linux

For the first time, ever, I’ve been using Linux on raw hardware for a couple months. The experience has been utterly boring and wonderful.

Supporting multi-in

:: Racket, Emacs

In racket-mode I improved support for the multi-in form provided by racket/require.

Exploding Frog

:: Racket, Frog

I’m writing and publishing this post using something other than Frog.

Having said that, I’m not planning to abandon maintaining Frog.

Thread names

:: Racket

Sometimes people want Racket threads to have useful names — for example to show in logger output. Here is one way to do it.


:: Racket, Emacs

Even though it’s been one of my most time-consuming projects, I’ve hardly blogged about racket-mode — an Emacs major mode for Racket. To change that, here’s a post giving an overview of how racket-mode works, as well as a look at how it might grow someday.

Extramaze LLC: Using system fonts (not Google fonts)

:: Racket, Extramaze

In my previous post I discussed what I’m doing with — and what I’m intentionally not doing. Since then, I’m not-doing more. This improves performance and simplifies the content security policy.

Extramaze LLC: Using Racket, PostgreSQL, AWS (but no ads or JS)

:: Racket, Extramaze

For Extramaze LLC I’m using Racket in a commercial project — a search engine with email alerts for deals on music gear —

This blog post is a sort of whirlwind tour of the use case and business model, as well as how I use things like Racket, PostgreSQL, and AWS — but don’t use advertising or JavaScript.

Racket Makefiles

:: Racket

Please scroll

:: Racket, Emacs

Emacs Themes

:: Emacs


:: Racket, racket-cookbook

Keyword structs, revisited

:: Racket, macros, software

Blogging catch-up

:: Hacker School

GitHub dropped Pygments

:: Racket, software

Hacker school week 6

:: Hacker School

Racket workflow

:: Racket

Hands-on with Haskell week 1

:: Haskell, Hacker School

Applicable symbols

:: Clojure, Hacker School

Hacker School day 15

:: Hacker School

Why macros?

:: Racket, Clojure, Hacker School

Hands-on with Clojure day 5

:: Clojure, Hacker School

Hands-on with Clojure day 4

:: Clojure, Hacker School

Hands-on with Clojure day 3

:: Clojure, Hacker School

Hands-on with Clojure day 2

:: Clojure, Hacker School

Hands-on with Clojure

:: Clojure, Hacker School

Written in Racket

:: Racket

Destructuring lists with match

:: Racket

Does your Racket project need a makefile?

:: Racket, racket-cookbook

`__FILE__` and `__LINE__` in Racket

:: Racket, racket-cookbook

Fallback when required function not available

:: Racket, racket-cookbook

Racket cookbook

:: Racket, racket-cookbook

Using syntax/loc and unit test macros

:: Racket, racket-cookbook, macros

Using syntax/loc

:: Racket, macros

Racket package management

:: Racket

Markdown parser redesign

:: Racket

Interview and RacketCon talk

:: software

Understanding and Using C Pointers

:: software

Using call/input-url

:: Racket, racket-cookbook

Spoiler Alert: Just Give Google Power of Attorney

:: Google, technology

Skim or sink

:: software, Racket

Using Travis CI for Racket projects

:: Racket

A case with fall-through

:: Racket, macros

You have something to hide

:: politics

Chromebook Pixel

:: Google, Linux, Racket

The ~> Threading Macro

:: Racket, Clojure, macros


:: Google, Racket, Atom, RSS

A guide for infrequent contributors to Racket

:: Racket, Git

Planet vs. the new package system

:: Racket

Roger Ebert, not engines

:: technology

Parameters in Racket

:: Racket

My Google Reader successor

:: Google, Atom, RSS

Host your own web apps?

:: software

Serve static files

:: Racket

Feed stats in Frog (without FeedBurner)

:: Frog, Google, Atom, RSS

The year Google became "Evil"?

:: Google

Killing Google Reader

:: Google, RSS, Atom

Keyword structs

:: Racket, macros, software

Frog overview

:: blog, Frog, Racket, software

Live with Frog

:: blog, Frog, Racket, software

Lull while I prepare to change tires

:: software, Racket, blog, Frog

greg^.head --> (first greg)

:: software

Fucking "Suggested Post" (why web apps matter)

:: software, technology

Walking in the steps of soft interrogation

:: life, politics

My Chrome extensions

:: software, technology

Clear interrupts

:: life, nostalgia, technology

We need a prior art database

:: patents, politics, software, technology

Compare apples to oranges with the Nexus 4

:: technology, Android

Computing like component stereo systems

:: technology

Series A round: Human worker theme park

:: technology

Fear of Macros

:: macros, Racket, software

Ancient history

:: life, nostalgia


:: blog

Domain registrar switch

:: technology