Code or Die Welcome to my kitchen

Yak shaving tips, Infosec, Astronomy, Gardening

This is my blog. Proud guardian of three cats and two dogs, I currently reside in San Antonio, Texas.

I'm interested in gardening, astronomy, infosec among other pursuits. About this site.

Past and current projects. You can also browse the blog archive if you like.

Message of the Day: Party on dudes!

Static Site Generators Galore

Remember I posted about a few choice static site generators (SSG), built on the deliciously named JAM stack? Well, you’re in for a treat… just recently on website of repute Hacker News, (which I consume more often than not via the always informative Hacker Newsletter,) I found out about an awesome page that ranks all the open-source SSGs on GitHub, and another one that is a huge spreadsheet of hundreds of them!

Seriously hundreds of them

StaticSiteGenerators.net - “The definitive listing of Static Site Generators — all 458 of them!” The most powerful feature here is the sorting projects by date created/updated. Listing by language is nice too.

StaticGen

The webapp StaticGen ranks all the open-source SSGs on GitHub filtered by Stars, Forks, Issues. Pretty darn neat.

The field of SSGs really has come a long way and we are certainly spoiled for choice when it comes to serving up what the Web does best, which is deliver streams of plain text to the face as quickly as possible.

The Best Advice for Computer Science Students

So I’ve been back in academia for a while, (feeling like Rodney Dangerfield,) and I have noticed at least one super important aspect of writing code that seems to be overlooked by my classmates.

Spoiler: Use Git For All The Things

The missing ingredient is a version control system and since it is 2018 I mean Git. Git is used in the real-world, (“in the wild” as my old instructors would say,) and has become the version control system de rigueur. This means if you are a computer science student1 then you should definitely learn how to use it, and not just for the software engineering project management courses.

Git makes a kind of “save point” in my assignments and projects to which I can always fall back to the last known good configuration of a given program. This liberates me to go ahead and spike out with crazy ideas and randomness that may or may not yield a favorable result.

I use Git for homework, Git for solo projects, and Git for group projects. Admittedly this last one has a higher bar since it requires all group members to use git, however as a true believer you should have no trouble convincing them of its usefulness. If not, then you can still use Git personally and benefit from it, but you would be missing out on the whole point of version control with distributed teams.

Git along lil’ doggies

Luckily there are loads of resources to learn Git.

  1. Even if you’re not in the field of computer science, you may still reap the ample benefits of using Git. Any creative working collaboratively (or solo) can benefit from version control, but in practice most will simply use Dropbox or MS Office to handle multiple versions of the same document edited by different authors. 

Updating Ye Olde Jekyll

I have not experienced the dreaded slow build times reported by other Jekyll users perhaps because I have not yet surpassed “critical mass” on posts.

However with so many shiny new static site generators (SSGs) out in the wild, it never hurts to take a another look.

Alternatives to Jekyll

Gatsby.js

  • Written in React and uses shiny new GraphQL API.
  • Able to migrate existing posts from Jekyll, WordPress and more.
  • Comes with the usual learning curve caveats.
  • Resolves slow build time issue for large sites.
  • Great documentation.
  • Loads of plugins.

Hugo

  • Written in Go, aka Golang.
  • Billed as “the fastest tool of its kind.”
  • Publish in Markdown, using Go templates.
  • Ships with Disqus, but can be modified to use other commenting systems.

Pelican

  • Written in Python.
  • Publish in Markdown or reStructuredText.
  • Templates (themes) via Jinja2.
  • Import content from WordPress, RSS.
  • Also ships with Disqus and able to be customized.

Hexo

  • Written in nodeJS.
  • Publish in Markdown.
  • Fast build time.
  • Powerful CLI.

Middleman

  • SSG “using all the shortcuts and tools in modern web development.”
  • Ruby gem uses Rails middleware as a standalone framework.
  • Highly customizable.
  • Publish in ERb & Haml for dynamic content.
  • More for Web marketing and documentation than blogging.

Finally I must mention for historical fact:

Octopress

  • A collection of plugins and features built into Jekyll.
  • Excellent for inspiration in tinkering with your own Jekyll sites.
  • No longer maintained. 💀

If and when my day of build time reckoning comes, I will take the opportunity to plunge into Hugo just to learn a bit of Go!

There are tons of blog posts out there regarding this topic, including: