hifi by apg


Volume 12: Published via lofi since 2015

The idea for hifi came about last September, and I ran with it without thinking too much about how I’d organize everything to publish volumes. I figured I’d simply pull links out of Trello or something and just do it. That adhoc style worked well for 9 volumes.

A couple of weeks ago, when I decided that I would finally do Volume 10, I realized that I could probably hack together something using the (awful) Trello API, and force myself to discover the details of the project at link save time, instead of the all too time consuming strategy of “the night before the volume should go out.”

Each hifi volume is simply a list on the “hifi” board in my Trello account. Because most of the projects I capture actually happen from my phone, the actual GitHub links end up as attachments on Cards, and the title of the page gets tossed into the Card’s title. I manually edit that down to the project-nameauthor-name template, and add markdown formatted text to the Card’s description.

From there, the aptly named lofi simply pulls the cards from the list I specify and dumps it into the golang template I use for each volume.

The website is rendered using more-modest, which is quite simply a GNU make specific Makefile, which calls upon the powers of discount’s theme binary.

I copy and paste the rendered body into the predefined Mailchimp template I created for Volume 1, schedule it, and “boom goes the dynamite”.

It goes without saying that I could make more optimizations to this workflow if I took the time to do so, and maybe I eventually will.

On to the hacks!

Kepler – Pablo Torres, Robert Lord

A solar system simulator written in JavaScript, for the web. [This is now broken for me; YMMV – ed]

Macmoji – Ryan McLeod

vm86 – ruki

A basic 32-bit x86 virtual machine.

smu – Enno Boland

smu is a small (e.g. ~650 lines of C) and simple implementation of a markdown like language. It’s one-pass, so it doesn’t support reference style links, but most other features are supported, in addition to a few others.

Kgif – Kirill

Creates a animated gif from interactions in the active window, using scrot and imagemagick.

python-prompt-toolkit – Jonathan Slenders

A library for building powerful interactive command lines in Python.

ln – Michael Fogleman

ln is a 3d line art renderer written in Go.

selfie_formatter – Skye Shaw

The RSpec Selfie Formatter: A Formatter that takes photos of you while your tests run and uses them to track progress and format the results.


Or.. How Haskell’s Printf works.

A coworker stated: “My favorite experiment for a type system is ‘how would you do printf?’” I’m not a Haskell expert, but I immediately came up with an idea. I then looked at the types to see that I was on the right track, but not quite keeping up with the pack, so to speak. I searched for an explanation, and this post cleared it all up. It’s pretty clever!

One has to wonder, though, why the requirement for polyvariadic functions existed, and why [PrintfArg] wasn’t good enough, but the API is obviously nicer without the list, so…

Reader, and friend of hifi, Justin Abrahms recently asked about an offlineimap like tool for calendars. Little did I know that sitting in the inbox of hifi links was an article that pointed at a potential solution!

That’s a wrap!

I’m always on the lookout for interesting hacks, projects, pieces of art, neat papers, etc. If you have something I should see, don’t hesitate to reply to this email!

Until next time!

Happy hacking,