Gavin Ratcliff

Home Blog Cooking

How my website works

August 11th, 2024 (edited August 12th, 2024)

This is a short rundown of how I implemented my website (mostly so I can remember).

Frontend

The frontend is built around a few static assets and a simple Python script that combines them all. There is a posts directory that contains all the markdown posts for the website. The script iterates over them and generates HTML with CommonMark, attaching a short header and footer HTML template. Finally, it builds out a short table of contents of posts for the index.

The rest of the assets are static and simply need to be copied over to the generated folder (which can be served by any web server).

Deployment

There isn't a 'backend' per se, but I do have a few small deployment conveniences. First, deploy.sh generates the complete website and copies it into the directory my web server serves. Then, I configured GitHub to send my server a webhook whenever someone pushes to the blog repo. The webhook listener is always listening for this, and fetches the latest repo and runs the deploy script. This makes it super easy to update the website.

Why I chose this

I like this simple implementation, as it greatly lowers the cognitive load of managing my website. If I want to post, I just make a new markdown file and commit it, and it will update without thought. It also requires very little in the way of extra libraries and doesn't require more than basic web and Python skills to understand. I think it will be easy to come back to and update it in a year or so. As a plus, I think it looks nice.

It's not perfect, though, and at some point, I hope to implement:

Summer learning 2023

June 24th, 2023 (edited August 12th, 2024)

I finished up a three week stay on a rural rice farm in Japan, and I came home with the goal of doing AI/ML research in college. The start of undergrad looms in mid-August, so I have around a month and a half to do some learning. I have set aside my grand plans to study ML foundations and will focus on practice: statistics and applied deep learning.

Statistics

From some browsing and chatting with ML researchers on twitter it seems a strong foundation in statistics will compound in value as I learn ML.

My primary resource will be the often recommended book All of Statistics I will read through at least the first 6 chapters, take notes, and do the exercises assigned in the CMU course

I will experiment with two new study techniques (mostly to figure out what will work for me in college). First, I will typeset all my solutions in LaTeX. Second, I have been making extensive use of Anki for learning Japanese, and I will use it to memorize important theorems and rules. These are both are experiments so if I don't like how they work for me I will drop them and go back to studying with my old techniques.

Applied Deep Learning

The theory of ML/DL is interesting, but I need a foundation in practical application to justify the investment of learning it. I will focus on learning enough of deep learning basics (algorithms, frameworks, etc.) to train simple models and build apps.

I have chosen to follow the popular online course fast.ai My intuition here tells me the choice of course doesn't matter too much, the important part is that I start playing with deep learning immediately.

The goal is that I should be able to learn a piece of theory (from a paper, textbook, etc.) and implement it in PyTorch with these practical skills. I am essentially learning lab technique early in my career so that research becomes more efficient.

Proof of Knowledge

The end goal of this learning project is to produce a simple yet interesting app or tool that will function as proof I am capable of applying ML techniques to a real project. Where my interests and skills will lie after completing this learning seminar are unclear, but I will work with this goal in mind. Additionally, I will keep blogging updates and insights.

powered by Debian sticker