Managing local common lisp projects

When I started using lisp, I came from the world of modern dependency managers (npm, pip, maven, and the like). So I started searching for an equivalent in lisp. I quickly came across quicklisp. To my surprise, however, quicklisp worked differently than these packages. It works more like a dependency cache than true dependency manager, but that is a topic for another article. The biggest struggle that quicklisp brought was managing local packages.

Type safe Django app, Part 3

In Part 2 we got a taste of using returns and created our first model methods. In this part, we will build out views that interact with databases and learn how to combine returns containers. This composition is the key to effectively using container types and where we will see the benefits of all our work. Writ views that actually do something The first view introduced in the official tutorial performs multiple actions which we will split up into individual functions.

Type safe Django app, Part 2

In Part 1 of this series, we looked at how to setup a python project with types, setup our project, and used some basic types. In this part we will start working with the database, implement custom database methods, and look at how to use returns to improve the safety of those methods. Into the database Let's run our initial migrations and get rid of the error that we ignored in the first part.

Type safe Django app, Part 1

Django is a great framework for web development. Unfortunately, due to the nature of Python and web development in general, it often leads to hard to track down bugs and tangled code. We will take a look at one way to reign this in. Throughout this series we will follow the official Django tutorial while making the code safer and easier to reason about. We will accomplish this by enlist the help of mypy (for general type checking) and returns (for containers that will provide safety).

Django With Hy

Hy introduces a List that gives you all the power of macros and the elegant Lisp syntax while enabling the full power of Python. Although it's easy enough to use Python libraries in Hy, you just import them as you would in Python, I was weary of using a full framework outside it's native language. To prove out this concept, I followed the official django tutorial using Hy. To my surprise I only ran into minor issues.