technology

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
Aug
30

Jeff Jarvis, Google Me, and the Future of the Internet

Note from October 2014: Google Me was the precursor to Google+. With the latest discussion surrounding the end of the
4 min read
Mar
24
Living in the Immersion Age Now

Living in the Immersion Age Now

We are still a solo being, but we have collected together in multiple tribes, with connections between the tribes being apparent to others, or only to ourselves.
5 min read
Mar
22

Immersive Age versus Information Age

In the Immersive Age, information is always there for us, and the amount of information is behaving like a volcano.
4 min read
Jun
05

A Friend MIA

Recently, the charger for my laptop started to die on me. It wouldn’t hold a steady current that would
4 min read
Feb
20

Thought for the Day: Technology

Today, I was reading the Business section of Monday’s NY Times (I was too ill to finish it last
3 min read

Latest

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 Friend MIA

Recently, the charger for my laptop started to die on me. It wouldn’t hold a steady current that would allow my laptop to stay powered up – I knew I was going to have to get a new one before this happened because the cord from the charger to the

Thought for the Day: Technology

Today, I was reading the Business section of Monday’s NY Times (I was too ill to finish it last night) and came across several articles talking about the technology sector. I zeroed in on one article in particular. To sum up the article, it’s about the ongoing battle

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