apple

Apr
22
Quick Thoughts on Severance

Quick Thoughts on Severance

Definitely a binge-worthy show about the work/life balance with a touch of dystopia and a slowly unraveling onion of a mystery show. Absolutely fantastic.
1 min read
Jan
21

New Year New Phone

After several years of watching people use large Android phones, Apple released their own larger phones this past October. Initially,
2 min read
Mar
11

An Invitation to the Future

> The popular image of the visionary is someone with a clear view of the future, but empirically it may
2 min read
Apr
09

A Late Night Musing: Music

With a lack of something better to write about, thought I’d just share my thoughts on some new music
3 min read

Latest

New Year New Phone

After several years of watching people use large Android phones, Apple released their own larger phones this past October. Initially, I resisted diving in and buying one. I was rather content with the size and the camera of my two year-old iPhone 5, but then I started seeing the photographs

An Invitation to the Future

> The popular image of the visionary is someone with a clear view of the future, but empirically it may be better to have a blurry one. — Paul Graham, Frighteningly Ambitious Startup Ideas [http://paulgraham.com/ambitious.html] This past week could be deemed the Week of the Future. It’

A Late Night Musing: Music

With a lack of something better to write about, thought I’d just share my thoughts on some new music I’ve been listening to lately. I’m a big fan of Pepsi and they’ve been having a promo with Apple to give away free Itunes with their bottled

DigitalOcean Referral Badge

Social Links


Mastodon
document.addEventListener('DOMContentLoaded', function() { // Get all links in the document const links = document.getElementsByTagName('a'); const currentDomain = 'foursides.ca'; const amazonAffiliateTag = 'four0b-20'; // Replace with your Amazon affiliate tag // Process each link Array.from(links).forEach(link => { const href = link.getAttribute('href'); // Skip if link is null, empty, or just a hash if (!href || href === '' || href.startsWith('#')) { return; } try { const url = new URL(href); // Handle Amazon links if (url.hostname.includes('amazon.')) { // Remove any existing tag url.searchParams.delete('tag'); // Add your affiliate tag url.searchParams.set('tag', amazonAffiliateTag); // Update the link attributes link.setAttribute('href', url.toString()); link.setAttribute('target', '_blank'); link.setAttribute('rel', 'nofollow noopener noreferrer'); } // Handle other external links (not Amazon and not internal) else if (!url.hostname.includes(currentDomain)) { // Add referrer parameter url.searchParams.set('ref', 'foursides.ca'); // Update the link attributes link.setAttribute('href', url.toString()); link.setAttribute('target', '_blank'); link.setAttribute('rel', 'nofollow noopener noreferrer'); } } catch (e) { // If URL parsing fails, it's likely a relative URL (internal link) // Do nothing for internal links console.debug('Skipping internal link:', href); } }); });T