duncan­lock­.net

Want “Reader Mode” for almost the entire web - and have every page load nearly instantly? Here’s how.

There are three main constellations of Web Browsers - ones based on Google’s Blink rendering engine (used in Google Chrome, MS Edge, Vivaldi, Brave and others), ones based on WebKit (used in Safari on MacOS & iOS 7 iPadOS) - and on Mozilla’s Geko engine (used by Firefox & Thunderbird).

There are also a few other, “non-mainstream browsers”, that have their own engines. Cosmic wanderers, not part of the main constellations, that chart their own course, building everything themselves: Flow, Servo, LadyBird, NetSurf - and Dillo-Plus.

Dillo Plus has a Tiny Superpower

Actually, the Dillo-Plus browser has quite a few tiny superpowers - but the one I’m interested in is its ability to ignore all the CSS styles from the website and load your CSS …

Continue reading “Super Fast Reader Mode for the Entire Web, with Dillo Plus”

It’s too easy to overlook the countless hours of dedication poured into the open source software that powers our digital lives. I want to take a moment to express my appreciation and admiration for one of the many unsung heroes of my digital world, who’s software I use all the time.

David Peter / sharkdp

GitHub Profile

Avatar
GitHub Profile

These are the projects of theirs that I love & use the most:

bat

A cat(1) clone with wings.

Bat is a cat clone with syntax highlighting for loads of languages, Git integration - and it’s written in Rust, so it works on Linux/Windows/MacOS. It’s completely replaced cat for me:

alias cat="bat"

fd

A simple, fast and user-friendly alternative to ‘find …

Continue reading “Thanks, David Peter (sharkdp)!”

How to use an existing instance of a browser to debug in VSCode - instead of always launching a new one, or use debug in Brave.


Open source developers are often the unsung heroes of the technology world, creating & maintaining the software that powers our digital lives. Sadly, their contributions often go unnoticed, but without their dedication and expertise, much of the software & digital infrastructure what we take for granted today wouldn’t exist.

I want to recognize the brilliant work of one developer and express my gratitude to them for making the world a better place through open source.

Zachary Yedidia / zyedidia

GitHub Profile

Avatar
GitHub Profile

These are the projects of theirs that I love & use the most:

eget

Easily install prebuilt binaries from GitHub.

Most of the software on my machine comes from the systems package manager, and is automatically kept up to date. The problems with this, is that …

Continue reading “Thanks, Zachary Yedidia (zyedidia)!”

How to use git hashes - or other environment variables in Vite & Vue 3


Open source developers are often the unsung heroes of the technology world, creating & maintaining the software that powers our digital lives. Sadly, their contributions often go unnoticed, but without their dedication and expertise, much of the software & digital infrastructure what we take for granted today wouldn’t exist.

I want to recognize the awesome work of one developer and express my gratitude to them for making the world a better place through open source.

Andrew Gallant / burntsushi

GitHub Profile

I love to code.

Avatar
GitHub Profile

These are the projects of theirs that I love & use the most:

ripgrep

ripgrep recursively searches directories for a regex pattern while respecting your gitignore

Ripgrep is a superfast replacement for grep, ag, ack etc…​ It’s not just way faster than all …

Continue reading “Thanks, Andrew Gallant (burntsushi)!”

How apy keys work, what .source files are and how to fix Key is stored in legacy trusted.gpg keyring Warnings


I run a Miniflux instance on my desktop computer, which fetches all my feeds and makes the content available locally.

Inspired by a discussion the other day on HackerNews, I wrote a little script that asks Miniflux for a list of my feeds in OPML format and turns it into an AsciiDoc page, which I publish on here, as my BlogRoll & Links page:

import os
import sys
import urllib.request
import xml.etree.ElementTree as ET
from datetime import datetime

key = os.environ["MINIFLUX_API_KEY"]

if not key:
    print("$MINIFLUX_API_KEY not set.")
    sys.exit(-1)

url = "http://miniflux.home/v1/export"
hdr = {"X-Auth-Token": key}
request = urllib.request.Request(url, headers=hdr)
opml = ET.fromstring(urllib.request.urlopen(request).read())
updated = datetime.now().astimezone().replace(microsecond=0).isoformat(" ")

header = f"""
:title: Blogroll & Links
:slug: blogroll-links
:created: 2022-11-15 13 …
Continue reading “Automatically Publishing a Blogroll from an OPML File”

In this When Will We Learn post, Drew DeVault talks about supply chain attacks against language package managers (npm, PyPI, cargo, etc…​) - and compares them to official Linux distribution repositories (deb, rpm, etc…​).

The conclusion drawn was:

The correct way to ship packages is with your distribution’s package manager. These have a separate review step, completely side-stepping typo-squatting, establishing a long-term relationship of trust between the vendor and the distribution packagers, and providing a dispassionate third-party to act as an intermediary between users and vendors. Furthermore, they offer stable distributions which can be relied upon for an extended period of time, provide cohesive whole-system integration testing, and unified patch distribution and CVE notifications for your entire system.

I think I agree with this, essentially. We do need to change the way we do …

Continue reading “Supply Chain Attacks & Package Managers - a Solution?”

I’ve been using Linux exclusively for ~15 yrs. I’ve recently started a fantastic new job – the only wrinkle was that it came with a Windows 10 laptop. This is my first time using Windows after a 15-year break. This is how it’s been going.

First Impressions

Windows is such a mess! It’s sort of shocking how much of a mess it is. Desktop Linux is often criticized for this, but Windows is much worse, somehow! It’s really inconsistent. Half of it is “new” UI and half of it is old Win32/GDI type UI - just as bad as KDE/GTK - except worse, because you can’t configure them to use the same theme. Also, when you install a Linux distribution, it’ll start off either all KDE or all GTK, or whatever - but with Windows …

Continue reading “Using Windows after 15 years on Linux”