The Problem with SSH Agent Forwarding

After hacking the matrix.org website today, the attacker opened a series of GitHub issues mentioning the flaws he discovered. In one of those issues, he mentions that “complete compromise could have been avoided if developers were prohibited from using [SSH agent forwarding].”

Continuations for Web Development

One of the distinguishing features of Racket’s built-in web-server is that it supports the use of continuations in a web context. This is a feature I’ve only ever seen in Smalltalk’s Seaside before, though Racket’s version is more powerful.

Google Groups Without Google Accounts

It turns out that when you delete your Google accounts, Google unsubscribes you from any (public and private) Google Groups you’re a member of. I found out about this only because my inbox traffic these past couple of days felt unusually light so I went and looked at racket-users and, lo and behold, there were a bunch of new posts I hadn’t received.

Bye, Bye, Google

I spent this past weekend de-Google-ifying my life and, despite my expectations, it wasn’t too hard to do.

Announcing north

A database migration tool written in Racket.

Announcing forms

Today marks the first public release of forms, a Racket library for web form validation. Racket’s formlets module from the standard library already does something similar, but, unfortunately, it lacks any facilities for easily showing validation errors to end users which is a big part of what I want from this kind of library. Another nice thing about this new library is it’ll be able to validate things other than forms – like JSON – soon!

Try Firefox

Since Microsoft officially announced that they will switch Edge’s rendering engine to Chromium, many people have written about how this poses a danger to the future of the web. I’m not going to repeat those same arguments, as I feel others have done a good job of it. What I want to do is urge you to try Firefox for a couple of days this week. That’s it. Give it a try.

Advent of Racket 2018

I decided to do this year’s Advent of Code in Racket and stream the whole thing. We’ll see how far I make it (getting up this early is rough!), but so far I finished day one. The code is here and the playlist for the recordings is here.

If you want to get notified as soon as I jump on to start streaming, you can follow me on Twitch.

Announcing geoip

Racket support for MaxMind’s geolocation databases.

Announcing net-ip

Racket support for working with IP addresses and networks.