Skip to content

Instantly share code, notes, and snippets.

View charlesroper's full-sized avatar
🌱

Charles Roper charlesroper

🌱
View GitHub Profile

How to setup a practically free CDN using Backblaze B2 and Cloudflare

⚠️ Note 2023-01-21
Some things have changed since I originally wrote this in 2016. I have updated a few minor details, and the advice is still broadly the same, but there are some new Cloudflare features you can (and should) take advantage of. In particular, pay attention to Trevor Stevens' comment here from 22 January 2022, and Matt Stenson's useful caching advice. In addition, Backblaze, with whom Cloudflare are a Bandwidth Alliance partner, have published their own guide detailing how to use Cloudflare's Web Workers to cache content from B2 private buckets. That is worth reading,

@charlesroper
charlesroper / Digital agencies serving charities, social justice, and civil society.md
Last active October 10, 2025 22:08
Digital agencies serving charities, social justice, and civil society.md

Digital agencies serving charities, social justice, and civil society

A curated, UK-leaning list of digital agencies serving charities, social justice, and civil society.

Full-service & product/web build

  • Torchbox – employee-owned; Wagtail CMS creators; deep nonprofit track record. ([Torchbox][1])
  • Reason Digital – builds sites, apps, and tools for charities; impact-focused. ([Reason Digital][2])
  • Fat Beehive – charity website specialists; long-standing sector focus. ([Fat Beehive][3])
  • The Developer Society (DEV) – UK not-for-profit co-op working exclusively with charities/NGOs. ([The Developer Society][4])
@charlesroper
charlesroper / Volunteer Your Skills.md
Created October 10, 2025 22:05
Volunteer Your Skills.md

Volunteer Your Skills

Volunteering

  • DataKind UK – volunteer data & digital projects. ([DataKind UK][1])
  • Digital Candle – free 1-hour advice calls for charities. ([digitalcandle.org.uk][2])
  • CodeYourFuture – volunteer to teach/mentor. ([CodeYourFuture][3])
  • codebar – coach at inclusive coding workshops. ([codebar][4])
  • AbilityNet “ITCanHelp” – accessibility-minded tech support volunteering. ([abilitynet.org.uk][5])
  • Reach Volunteering – skills-based volunteering marketplace. ([reachvolunteering.org.uk][6])
@charlesroper
charlesroper / alt-text.md
Created September 13, 2025 12:36
Alt text example
z0f76a1d14fd21a8fb5fd0d03e0fdc3d3cedae52f

Alt text (concise)

Line chart titled “US Unemployment Rate” comparing U-3 (unemployed) and U-6 (under-employed) from Dec 2016–Dec 2022. Both series are steady and slowly falling through 2019, then spike sharply at the start of the COVID-19 pandemic (U-3 ~15%, U-6 ~23%) and decline through 2021–2022. By late 2022 U-3 is ~3–4% and U-6 ~6–7%. U-6 is consistently higher than U-3 throughout.

Extended description (for complex image)

  • What the chart shows: Two lines: an olive line for Unemployed (U-3) and a blue line for Under-employed (U-6), plotted as percent of the labor force on the y-axis (3%–23%) across time on the x-axis (Dec 2016 to Dec 2022).
  • Series meaning (context):
@charlesroper
charlesroper / CLI tools.md
Last active July 29, 2025 02:15
Modern CLI Tools for nix and Windows.md

Modern CLI Tools for *nix and Windows

A collection of CLI tools I use (or have used). Most can be installed using your *nix distro’s package manager, or with Scoop on Windows. If you’re not already using Scoop, it's definitely worth trying.

✨ Other lists you might find interesting
@charlesroper
charlesroper / dragon_party_data.json
Created July 26, 2025 15:45
A JSON schema for testing that captures the state of the “Dragon Slayers United” party – including member profiles with classes, levels and equipment; current quest details and objectives; shared inventory; game settings and notification preferences; cumulative stats and metadata such as creation timestamp and version.
{
"adventureParty": {
"name": "Dragon Slayers United",
"members": [
{
"id": 1,
"name": "Aria Stormblade",
"class": "Ranger",
"level": 8,
"skills": ["Archery", "Stealth", "Tracking"],
@charlesroper
charlesroper / eza-completion.ps1
Last active July 20, 2025 09:57
Native tab-completion for eza on PowerShell 7+
<#
eza-completion.ps1
──────────────────
Native tab-completion for eza on PowerShell 7+
Drop this file in your $PROFILE directory and source it:
. (Join-Path (Split-Path $PROFILE -Parent) "eza-completion.ps1")
Make sure the following PSReadLine options are set:
@charlesroper
charlesroper / Summary of Andy Masley’s AI articles.md
Created May 17, 2025 00:19
Summary of Andy Masley’s AI articles.md
@charlesroper
charlesroper / How much bandwidth and CO₂e does an adblocker save.md
Last active May 16, 2025 23:32
How much bandwidth and CO2e does an adblocker save.md

How much bandwidth and CO₂e does an adblocker save?

ChatGPT o4-mini-high; 2025-05-17

On average, studies show that a heavyweight ad- and tracker-blocker like uBlock Origin saves around a third of the data you’d otherwise download – and in concrete terms:

  • Bandwidth saved per page load
    In a diverse set of real-world tests on hundreds of popular sites, the average bandwidth saving from ad- and tracker-blocking was 899 KB (with a median of just under 500 KB and a 95th-percentile of 2.76 MB) (Brave). This corresponds to roughly 25–34 % less data transferred compared with no blocker (arXiv).
  • CO₂e saved per page load
@charlesroper
charlesroper / Comparing Email to Other Energy Expenses.md
Last active May 16, 2025 22:59
Comparing Email to Other Energy Expenses.md

Comparing Email to Other Energy Expenses

3–5 kg CO₂e per year (email footprint) ≈

Activity CO₂e produced Notes
Boiling a full kettle ~60–100 times ~50–70 g each 3 000–5 000 g = ~70 kettles
Driving a petrol car ~15–25 miles ~0.2–0.3 kg CO₂e per mile UK average car
1–2 roast dinners ~2–3 kg each Meat-heavy meal (esp. lamb/beef)