Treeblood
TreeBlood Is the fastest
to MathML compiler that exists. Written in
pure Go, it outperforms MathJax by over 1000 times in terms of raw speed. To try it out, simply enter a
expression in the box below. To see TreeBlood in action in the wild, browse around my blog for a while. All
math on my website is rendered by TreeBlood via a goldmark extension.
Tags
How to Graph Functions with Bézier Curves
Since Bézier curves are so ubiquitous in computer graphics, they are a natural choice for plotting the graph of a
function. At their core, Bézier curves are polynomial in nature, so unless the graph is for a polynomial function with
the same degree as our Bézier curve, we are forced to approximate. In this post, I will detail the thought process
behind my implementation of a Bézier function plotter.
Tags
Embedding a Python Application in uWSGI
Tags
Writing a Simple Notcurses Program
Notcurses is a modern TUI library written by Nick
Black (who you may see around the net as dankamongmen or some equally
dank designation). As Dank himself will tell you, the older ncurses library is beautifully
documented, rigorously tested, and very well supported. It is, however, quite old tracing its
history back to at least 1982, and as such lacks some modern features such as thread-safety. I had
been using the venerable ncurses for my fireplace program -
a use case that it was never designed to handle. Overall ncurses does a good job, but there is
occasional tearing and artifacts. Notcurses solved all the graphical glitches beautifully, and
performance was noticeably improved. The problem is that just about the only other person using
notcurses is Nick Black himself, and while his documentation is extensive, it is mostly source code
snippets with few examples. Hopefully this article will provide a nice jumping-off point for the
absolute beginner.
Tags
Getting Glitchy

Tags
Flame Simulation in 2D
I am a fan of useless terminal commands. Cowsay, Figlet, and pipes.sh
have all brought me hours of joy. But I had always dreamed of having my
own fireplace in the terminal to keep me warm during those cold
late-night coding sessions. Sure, I had tried a few (aafire comes to
mind), but none of them ever really suited me. They all had their own
problems - opening in a new window, no color, lame effect, etc. Finally,
I could bear it no longer; It had been a while since I had given myself
a frivolous challenge, and my cold terminal had nearly given me
frostbite. There was but one option: I would build my very own
fireplace. And to make it a real challenge, I would do it without any
googling.
Tags
On Substitution Ciphers
Tags