CC0 Spring 2021 Update
For the upcoming spring semester, we have released another, smaller, update for CC0. — Read more
For the upcoming spring semester, we have released another, smaller, update for CC0. — Read more
In this post, I’ll walk through the key additions and enhancements made to the CC0 compiler, as well as sharing some of the discussions we had along the way. — Read more
The Haskell compiler GHC has implemented over 115 language extensions. A lot of these let you do some really interesting things, such as statically checking array indices via dependant types, or even write programs completely within the type system. Unfortunately a lot of these are not “practical” in the sense that the effort involved in using these features outweighs the benefits. But I recently read about a way to put some of that machinery to good use called “recursion schemes”. These help us write code which is more obviously correct, and more concise. — Read more
There are a lot of great introductions to monads, but since monads are notorious for being a difficult topic to understand, the world could probably benefit from another one. This blog post will focus on making the idea of monads more concrete through examples of some of the more ubiquitous monads. — Read more
In the previous post we saw how to set up the boilerplate code necessary for a C Python extension. We will use that code and see how to handle and throw errors, deal with Python objects, and convert from C to Python types. — Read more
Sometimes portions of a Python codebase could benefit from being written in C. For example, the code may need to interact with other C libraries, or we may simply need the performance boost. Although the Python documentation for writing extensions is very thorough, there are some common operations which are not as obvious as they may seem. In this blog series we will look at the boilerplate code we need to write extensions for Python 3, as well as how to actually interact with various Python objects. — Read more
Recently I was working on a project in which I needed to quickly visualize groups of 2D data points.
As the project was in Python, I thought the well-established libraries Tkinter
and matplotlib
would be useful for this task. Unfortunately, I had to hunt through many sources to figure out
how to use these two libraries together, so I am writing this blog post to help others who may have
similar needs.
— Read more
I’ve decided to start writing a blog in 2019. — Read more