I want to tell you about an idea that has had a huge influence on the way that I write software. And I mean that in the literal sense: it’s changed the way that I write software; it’s re-shaped my development workflow. The idea is this: you can write programs that modify themselves. And I don’t mean macros or metaprogramming or anything fancy like that. I mean that you can write programs that edit their own source code.| ianthehenry.com
I never thought it could happen to me. I mean, parentheses? In this day and age? But for the past couple years, my go-to programming language for fun side projects has been a little Lisp dialect called Janet. (print "hey janet") I like Janet so much that I wrote an entire book about it, and put it on The Internet for free, in the hopes of attracting more Janetors to the language. I think you should read it, but I know that you don’t believe me, so I’m going to try to convince you. Here’...| ianthehenry.com
I wrote a book. It’s called Janet for Mortals, and it’s free, and it’s on the internet, and you can read it right now. And you should read it right now, instead of reading this blog post, because this blog post is not very interesting if you haven’t read the book. Heck, this blog post is not very interesting even if you have read the book. This blog post is a thinly-veiled promotion for my book to slip into my newsletter and RSS feed, with just enough additional content to pad it out ...| ianthehenry.com
Take a look at this: This is a triangulation of a set of random points, such that all the points are connected to one another, all of the faces are triangles, and the edges include the convex hull of the points. I would like to claim that this is not a very “good” triangulation. This algorithm tends to produce lots of long, slivery triangles, and a really uneven distribution of edge counts across different vertices – some vertices have way more edges than they need to. Here’s a differ...| ianthehenry.com