In case this has escaped your notice, #DancingontheInside is why we invented the Internet.
It started with this song from Gen Hoshino, to which he added:
Share your own instrumental accompaniments, arrangements, dances or covers on YouTube!
And the Internet complied.
For the first time in 38 years of driving, I suffered a cracked windshield. So the Kia Soul is at Good Guys this morning having a new one installed.
Postscript: Excellent service, quick turnaround. Good Guys is in a funny business: if I’m typical, I need windshield work maybe once a decade, so their challenge is to stay top-of-mind with longevity. In their case, it’s a long history of television commercials that does it.
Under cover of pandemic darkness, Corney’s Shoe Store on Queen Street pulled up stakes. Inside has been stripped back to the brick, not a shoe to be seen.
On the left is the spoke wrench loaned to me by my friend Cynthia, which works like a dream; on the right is a 3D printed spoke wrench, which took just over 3 hours to to print on my Monoprice Select Mini 3D printer, which was an abject failure: the PLA simple wasn’t up to the task.
Charlottetown: where the mayor, who used to be your son’s French teacher, stops his crane to let you walk your bicycle across the street; then, 10 minutes later, you pass your Green MLA, who defeated the mayor’s brother in the last election, washing the windows of her house; then, 5 minutes after that, you run into said former MLA, and have a conversation about PHP and screen scraping.
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.