Blogging with Fastpages
Notes about using fastpages to build a blog from my Jupyter Notebooks and Markdown documents.
I may be a hypocrite, but I’m not wrong…
I’ve spent over 25 years preaching the value of a portfolio site to artists, software engineers, and designers that wanted to join my studio or learn how to get into games or related industries. Now that I’m 6 months into my PhD and planning for career 2.0, it’s past time for me to do the same. This sums up the justification in a single tweet:
The popularity of this tweet makes me laugh, because it's an illustrative example! I thought about trying to get a screenshot of David's slide, but just took a terrible phone photo of a webinar and tweeted with the quote.
— Amelia McNamara (@AmeliaMN) July 22, 2018
I recently finished reading Build a Career in Data Science1, which I recommend. It motivated me to start the process of sharing my work.
Introduction to Fastpages
This site is built with fastpages, a platform for building static Jekyll web blogs from Jupyter Notebooks (JNs). Markdown and Word DOCs are also supported.
From their github page:
fastpages automates the process of creating blog posts via GitHub Actions, so you don’t have to fuss with conversion scripts. A full list of features can be found on GitHub.
Fastpages is built by the team that created the deep learning PyTorch front-end fastai
and the Python programming environment nbdev
. The team is led by Jeremy Howard, former President and Chief Data Scientist of Kaggle and author of Deep Learning for Coders with Fastai and PyTorch: AI Applications Without a PhD2.
I was first introduced fastpages
and nbdev
during the recent ACM TechTalk, It’s Time Deep Learning Learned from Software Engineering, presented by Howard and moderated by his collaborator Hamel Husain.
From Introducing Fastpages:
fastpages uses nbdev to power the conversion process of Jupyter Notebooks to blog posts. When you save a notebook into the /_notebooks folder of your repository, GitHub Actions applies nbdev against those notebooks automatically. The same process occurs when you save Word documents or markdown files into the _word or _posts directory, respectively.
Some resources I found helpful in launching this blog:
- The fastpages github page has detailed setup instructions
- This video tutorial created by Abdul Majed walks you through the initial setup process
- A sample jupyter-based blog page provides a live demonstration of its capabilities
I was able to get the initial site live quite quickly with little drama, and have found the process of modifying existing content and publishing new material straightforward so far. Before choosing fastpages
I considered the following hosting / authoring options:
- A general purpose site like Wix
- A page on Medium or Substack
- Other JN-based tools like Pelican
- Finding a way to use JNs in blogdown3
I decided that Fastpages was the best way for me to publish JN-based work directly, with professional look and feel, on a site that I control, for free. That’s a pretty great combination. I also like that it supports Markdown (like this page), is part of the larger fast.ai family of products (and philosophy), and is hosted on github.
Finally, if you still need to be convinced of the value of building a portfolio, and what to include in one give the following resources a look:
- Advice to aspiring data scientists: start a blog on David Robinson’s Variance Explained
- Data Science Portfolios That Will Get You the Job
- Thinking of blogging about Data Science? Here are some tips and possible benefits.
Many of us need to spend less time consuming, and more time creating. Now you know how and why, so go publish something!
-
Robinson, Emily, and Jacqueline Nolis. Build a Career in Data Science. Simon and Schuster, 2020. ↩
-
Howard, Jeremy, and Sylvain Gugger. Deep Learning for Coders with Fastai and PyTorch. O’Reilly Media, Inc., 2020. ↩
-
There is a lot of cool stuff going on in R these days and blogdown supports a lot of interesting publishing workflows, but I ultimately decided that it would probably be easier to find a way to publish my R work using fastpages than to publish my Python work with blogdown. Time will tell… ↩