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 couple of days ago, I released north, a database schema migration tool written in Racket. It currently supports PostgreSQL and SQLite, but new adapters are extremely easy to add and my main reason for building it was because I wanted not only a CLI utility but also programmatic access to do migrations from Racket. I’m going to make that last part easy for everyone with the next release after I clean up some of the internals and write more docs.

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

I released geoip today. It’s a Racket library for working with MaxMind’s geolocation databases. It’s got a tiny API surface (3 functions!), but it should be useful to anyone needing to do geolocation in Racket. As always, check it out and let me know what you think! BTW, I streamed the whole process on Twitch so, if that’s your thing, you can check out the recordings here.

Announcing net-ip

I released net-ip – a small Racket library for working with IP (v4 and v6) addresses and networks – today. I needed this to be able to work on another library I’m going to release at some point in the future for doing geo-location based on Maxmind’s databases. Check it out and let me know what you think!

Announcing component

I released component the other day. It’s a Racket library for managing the lifecycle of stateful objects in long-running applications and for doing dependency injection. It was inspired by the Clojure library of the same name by Stuart Sierra. Check it out and let me know what you think! P.S. Expect more Racket libraries from me in the coming weeks and months. I’m really enjoying the language so far!

Announcing cursive_re

I released cursive_re today. It’s a tiny Python library made up of combinators that help you write regular expressions you can read and modify six months down the line.