I’ve been working on a way of keeping the photos and videos in Catherine’s Instagram online without Instagram, and finally came up with a solution today, which you can browse to your heart’s content at:
Catherine posted to Instagram for four years, from December of 2015 to December of 2019. She started and ended in the Christmas season, and so both her first video and her last video were of the Christmas village that gets set up in our dining room every year.
To generate this static HTML version, I started with a data dump requested from Instagram, and wrote a short PHP script to process the media.json file found therein, which contains an index of every photo, video and story in the archive.
The script first loads in the JSON file and converts it to a PHP object:
$media_file = file_get_contents("media.json");
$media = json_decode($media_file);
Then it generates a thumbnail image, using ImageMagick, for every image, and writes the HTML needed to render that image, and link to the original:
fwrite($fp, "<h2>Photos</h2>\n");
foreach($media->photos as $key => $photo) {
$html = "<a href='" . $photo->path . "'><img src='thumbnails/" . $photo->path . "' width='200' height='200' alt='" . htmlentities($photo->caption, ENT_QUOTES) . "' title='" . htmlentities($photo->caption, ENT_QUOTES) . "'></a> ";
fwrite($fp, $html . "\n");
$parts = explode("/", $photo->path);
$subdir = $parts[1];
if (!file_exists("thumbnails/photos/$subdir")) {
system("mkdir thumbnails/photos/$subdir");
}
if (!file_exists("thumbnails/" . $photo->path)) {
system("convert " . $photo->path . " -resize 200x200 thumbnails/" . $photo->path);
}
}
It goes through the same process for the videos and stories, the result being one big index.html that shows everything. A sort of anti-Instagram, UX-wise.
I uploaded this file, along with the generated thumbnails and the photos, videos and stories directories, to an Amazon S3 bucket, wired up Catherine’s eramosa.net domain name to the bucket and, presto, static website.

My friend Dave Atkinson mused that an oral history of how I learned the things I learned the other day came to be learned.
So I recorded one.
Another Saturday, another rise to the challenge of simulating a Saturday trip to the Charlottetown Farmers’ Market. This week: homemade bagel with smoked salmon from Gallant’s, cream cheese, capers, and homemade pickled onions. And a smoothie.
We ordered Thai takeout for lunch today. The first time we’ve had restaurant food in 47 days. It was amazing.
Khoaw Pon has online ordering and will bring your food to the curb.
I recommend the Thai Basil Stir Fry with added cashews.
Since the start of The Meditation in March, Tom Cullen, personable owner of Purity Dairy, has kindly dropped milk and yogurt by our front vestibule each week. My bicycle is on the road now, though, and it’s a beautiful sunny day, so rather than calling on Tom again, I rode up to the dairy myself after breakfast.
There’s nothing better to remind you that you live in a small town utopia than having an early morning chat over the counter with Tom and his cousin Greg about how the milk business is holding up.

It is so great to be back on my bicycle again after winter: it’s like powering my body up after a long hibernation.
Alison Stine writes in Belt:
And when you look for a model on how to remake the world after the pandemic? Make it a place where strangers care for strangers without expecting anything in return. Make it a place where the community is only as strong as its weakest member, and where help is given, as much and as often as it can be. Make it like Appalachia—but don’t forget us this time.
You can wash pillows. In the washing machine.
You can make a stir fry from kohlrabi, shallots, and tempeh.
Nobody’s coming to empty the upstairs wastebaskets; it’s on me.
If you enable it in your settings, Zoom meetings can have “breakout rooms,” created manually or automagically, where sub-hives can gather for smaller discussions.
Shopify has a retail point of sale system.
Mail from Belfast to Charlottetown takes two days. Mail from Charlottetown to Belfast takes a week.
For someone known to claim he has no friends, I sure have a lot of good friends.

(Yes, you can click on the underlined links)


I am