Pupeteer

1 Well thought-out side projects

Despite some misgivings that I am veering away from my cirriculum, and more generally that there is such an ocean of talent out there, I spent much of Sunday exploring Andrew Healey’s projects on his website.

The main reason is that they are just so well thought-out and explained!

For example, one of his side projects is this website which (1) gets your location from your IP address and (2) plays you a soothing song if (and only if) it is raining in your locality.

The idea is so simple yet so much more engaging then the run-of-the-mill CRUD app. I can see it very easily lending itself to modification too: e.g. a website that only plays a song when it is not rainy.

2 Pupeteer

It is probably a post-hoc justification, but it also seems to me that reading and playing with well thought-out and explained side projects also likely expose me to the “right” kind of tools for the tasks that I want to use in my own projects.

For example, at the back of my mind, I have always wanted to do a project that involves a degree of web-scraping. Yet I have no idea where to look for the appropriate tools, esp. assuming that I want to (for the moment) stick with the familiar Node + Express stack.

Of course, I could (and have) spent some time Googling a list of popular tools. But at least some time will need to be spent looking up sources, deciding on their realiability, and picking and choosing the most suitable materials for the purpose.

For example: suppose a YouTube search yields a promising looking Video, but it is from a channel/author I am not familiar with. Do I invest the full 20-30 minutes on the video or not? At what point when I encounter difficult parts do I decide to read something else or skip altogether? Decisions, deicisions!

By contrast, if I am just following along a well established author, I can dive into the substance much more easily.

A concrete case: Andrew’s random-mdn-page project displays a random mdn page about Javascript once the user loads the website.

Obviously a degree of web scraping is involved: otherwise how do get the page (or the link to the page in the first page)?

Very helpfully, Andrew explained the process in detail in his blog post (which is actually entitled “A Tiny Project, From Inception to Deployment”). And the tool he used (Pupeteer) is well-commented, and therefore easy to modify for other uses, e.g, this commit on my fork.

I am therefore likely to spend more time exploring (and modifying) Andrew’s (and other’s) side-projects before starting something brand new on my own. There are some easy wins: a lot of the older projects (esp. those hosted on Heroku) are no longer live after a few years. Simply making the changes necessary to resucitate it is a good context to keep me focused and happy.