How to get "smart" punctuation working in Zola---the hacky way

In case you haven't noticed, I just recently upgraded the templates and CSS on this website to get a much nicer design. I was previously using the After Dark theme. While it looked pretty at first glance, it's not a typographical wonder: all of the text is at the exact same size, making it harder to read. Plus, monospaced fonts just aren't the right choice for reading long-form content. In the process of upgrading my site's design, I noticed that proper Unicode smart quotation---handled out of the box with Jekyll---was missing altogether from Zola. If you have JavaScript enabled, you can see that I came up with an imperfect solution to this problem on the front end.

Read more...

A complete web app development environment with Guile

I have a penchant for trying to build practical things in obscure programming languages. Scheme isn't that obscure, but it's used pretty infrequently for "real work" (unfortunately). I'm quite a fan of it, so I decided to give it a shot for writing a web app, something that I do pretty often. Since there's so many implementations, I tried a few. I also took a holistic approach to the entire system and reevaluated my choice of text editor for the task.

Read more...

Moving my site around

While my previous Jekyll-based website wasn't horribly complex, maintaining it was still a chore. Like most software written in a scripting language, Jekyll has a lot of run-time dependencies that must be installed for it to function. Given that I switch between a few different computers running different operating systems, making sure that all my Gems were up-to-date was annoying. Since I'm not getting paid to make my own website, I figured that I might as well migrate it to a simpler static site generator.

Read more...

My C FAQ: things I wished I had learned a while ago

The fact that C is the dominant programming language for everything low-level is an interesting historical oddity. Even though there were far better languages around when C was created (and now, of course), C still somehow ended up being what everything was written in. For that reason, having a good understanding of some of C's intricacies is important to be able to do security research or just maintain software written in C. There are far more complete resources on this topic, like the original C FAQ; the purpose of this post is to address specific things I would have liked to have known when I was starting out with C.

Read more...

PSA: GNOME Boxes works much better than VirtualBox for Windows VMs on Linux

Windows software is so prevalent that it's practically impossible to avoid running it in some way. Luckily, virtual machines let you run the occasional .EXE on an isolated system without dual-booting. The go-to free virtual machine program for years has been VirtualBox, but after having it screw up my Arch Linux system and trying out GNOME Boxes on Fedora, I can wholeheartedly recommend that everyone who's currently using VirtualBox to run Windows switch to Boxes.

Read more...