惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
Cyber Attacks, Cyber Crime and Cyber Security
Cisco Talos Blog
Cisco Talos Blog
Scott Helme
Scott Helme
The Last Watchdog
The Last Watchdog
G
GRAHAM CLULEY
T
Tenable Blog
PCI Perspectives
PCI Perspectives
Simon Willison's Weblog
Simon Willison's Weblog
N
News and Events Feed by Topic
Know Your Adversary
Know Your Adversary
S
Schneier on Security
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
P
Privacy International News Feed
C
CERT Recently Published Vulnerability Notes
NISL@THU
NISL@THU
SecWiki News
SecWiki News
S
Securelist
D
Docker
阮一峰的网络日志
阮一峰的网络日志
人人都是产品经理
人人都是产品经理
T
Tailwind CSS Blog
T
Troy Hunt's Blog
The Register - Security
The Register - Security
K
Kaspersky official blog
Blog — PlanetScale
Blog — PlanetScale
云风的 BLOG
云风的 BLOG
Hacker News: Ask HN
Hacker News: Ask HN
S
Secure Thoughts
Stack Overflow Blog
Stack Overflow Blog
T
Threat Research - Cisco Blogs
博客园 - 司徒正美
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
F
Fortinet All Blogs
T
Threatpost
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
小众软件
小众软件
WordPress大学
WordPress大学
Security Archives - TechRepublic
Security Archives - TechRepublic
博客园 - 聂微东
Attack and Defense Labs
Attack and Defense Labs
B
Blog RSS Feed
Project Zero
Project Zero
Y
Y Combinator Blog
T
The Blog of Author Tim Ferriss
博客园 - 【当耐特】
V
V2EX
Help Net Security
Help Net Security
P
Proofpoint News Feed
A
Arctic Wolf

Ye Olde Blogroll — Firehose

kottke.org Outside My Window | A Blog of Birds & Nature with Kate St. John Via Negativa The Wallflower Digest baty.net Miskatonic University Press | William Denton Transactions with Beauty Britney Winthrope — Personal blog Z1NZ0L1N Amerpie by Lou Plummer 75CentralPhotography Home :: Sacha Chua Blog – Harold Jarche Doug Jones Tom Van Winkle's Return to Gaming Adactio: Jeremy Keith ooh.directory: a place to find good blogs that interest you Sal's whygodwhy – idk! fine! whatever! who cares! shut up! uncountable thoughts Murmurs Dr Robert N. Winter Who's the Real Loser? Shady Characters Ludicity Notes Without a Thesis Robin Monks - Technologist, AI/ML, Healthtech David Smith, Independent iOS Developer Homepage - blakewatson.com Ploum.net Oatmeal Midnight Reading oh, hey Brian | Brian Bennett blog 2026 | baccyflap.com - a delicate blend of bakelite and fear Our Adventures in Japan Jack's Space | Everything happens for the best Matt Lakeman jzhao.xyz Home - Stephanie Stimac's Blog マリウス Gingerly thoughts on ecology, culture, travel, photography, walking and other ephemera blast-o-rama. Quiet System - sink on uwu SchwarzTech Home ophanim's chariot Navendu Pottekkat - The Open Source Absolutist …time is what you make of it… Ron Seems Sentient Stuffed Crocodile Notes Sympolymathesy, by Chris Krycho Hosentaschenblog Charlie's Diary meyerweb.com Paul Johnson Refugio Norte linkedlist → bits and bytes about the Web New Ideas Blog - Gustavo Ribeiro Marius Masalar Mi blog Domain registered at WHC.ca Tyler Hellard - Pop Loser cedmax Jean Kapsa https://www.feadin.eu/en/ Garbage Collector Brian DeVries Grant Petersen's Blog The Artist’s Notebook Dan Cohen – Vice Provost, Dean, and Professor at Northeastern University 12XU | Verspannungsmusik! denisdefreyne.com Welcome | Chris Smaje Alex – Le site Internet d'Alex Sirac. cultural snow fLaMEd fury homepage A Shroud of Thoughts Ryan Reid Illustration + Design Don't Worry About the Vase Amy Goodchild Songs on the Security of Networks Protesilaos, also known as “Prot” GitHub - uxai/non-profit-bloggers: A repository of blogs by bloggers who blog for the joy of writing. 👋 Hi! Joe Van Cleave's Blog Amit Gawande Paul's Beer & Travel Blog Steve Best West Coast Stat Views (on Observational Epidemiology and more) Darknet Diaries – True stories from the dark side of the Internet. SEAN BONNER Artist, Instructor, using only Free/Libre and Open-Source software since 2009. Along the Ray Chris Aldrich | BoffoSocko 印记 | Live a life you will remember. Herman's blog
Illusion Slopes
Max Kapur · 2025-04-10 · via Ye Olde Blogroll — Firehose

Systems for making systems

I read a comment stating that git (a tool programmers use to collaborate on code, sort of like Word’s Track Changes) is not a version control system but a “system for creating a version control system.”

That got me thinking about other such “metasystems” I use, and the frustration that arises when one expects a mere system and instead gets the meta thing.

Read more →

PageRanking People and Blogs interviews

I recently learned about PageRank, the original Google algorithm for ranking webpages. It works by constructing a Markov chain on links between pages and computing the stationary distribution. The stationary probability of a given page measures the page’s centrality in the web, an index of popularity.

I wanted to try implementing the algorithm myself and fiddle with a few Rust libraries, so I wrote a script that runs PageRank on interviews from the People and Blogs series. P&B interviews are a tidy dataset for the algorithm, because Manu always asks interviewees to recommend other blogs, then he uses these recommendations to pick subsequent interviewees. This means the graph is well connected despite its small size.

I was going to share the results here, but ranking blogs by popularity seems against the spirit of the indie web ethos, so you’ll have to run the program yourself. (But to make it clear I’m not covering anything up, let me acknowledge that my interview is in a 61-way tie for last place, with all the other blogs that had no links to them.)

A few observations from this exercise below.

Read more →

Find your perfect match with integer programming

Owen Lacey blogged about a reality game show called Are You the One? in which contestants win a prize by guessing the soulmate ordained for them by the show’s producers. Specifically, there are nn men and nn women, and each one has an unknown “perfect” match; to win the prize, the contestants (as a group) must pair everyone up correctly.

During each episode, the contestants get two kinds of clues:

  1. Truth Booth, where the contestants submit a single couple and learn whether that couple is a perfect match.
  2. Match Up, where the contestants submit a matching (assigning everyone to a couple) and learn the number (but not the identity) of perfect matches present in their matching.

The game ends after Match Up if all nn couples in the matching are correct. Definitely check out Owen’s post, which has a better (and illustrated!) explanation of the rules.

Below, I present an efficient algorithm for playing Are You the One. It exploits both the informational clues and contestants’ intuitions to find perfect matches quickly. With modest assumptions on the quality of players’ intuitions, my algorithm wins by episode 10 in 100% of simulated seasons.

Read more →

Pytest + Ruff + Mypy

There is a pytest-ruff plugin for Pytest (a Python testing framework) that will automatically run ruff format --check and ruff check as part of your test suite. The pytest-mypy plugin does the same thing for Mypy. These plugins are handy, but for some reason , the tests they generate are exempted from the pytest -k ... logic. Normally, you can use -k to select a subset of tests to run, but if you install one of the plugins mentioned, that plugin’s tests run no matter what. This can slow you down if, like me, you develop on a slow computer.

So, here’s what I use instead of pytest-ruff and pytest-mypy: A humble test/test_qa.py file with three functions.

import subprocess
import sys
from pathlib import Path

import mypy.api

REPO_ROOT = Path(__file__).parent.parent


def test_mypy():
    stdout, stderr, returncode = mypy.api.run([str(REPO_ROOT)])
    sys.stdout.write(stdout)
    sys.stderr.write(stderr)
    assert returncode == 0


def test_ruff_format():
    subprocess.run(
        [sys.executable, "-m", "ruff", "format", "--check"],
        cwd=REPO_ROOT,
        check=True,
    )


def test_ruff_lint():
    subprocess.run(
        [sys.executable, "-m", "ruff", "check"],
        cwd=REPO_ROOT,
        check=True,
    )

(I run Mypy via its Python API instead of the command line to save a tiny bit of subprocess.run() overhead, but it doesn’t make a massive difference.)

This gets you all the functionality of the plugins, but with two fewer dependencies, and the -k flag works:

# Run tests for an in-progress feature and skip QA
pytest -k test_some_feature

# Run only the QA tests
pytest -k test_qa

# Run all tests
pytest

Person of the Year 2006

If you need a fun fact for a corporate icebreaker activity, you can always say, “I was Time magazine’s Person of the Year in 2006,” then stand around awkwardly waiting for someone to Google it.

The official announcement of “your” accomplishment makes for good reading in 2025. In tech circles, we often regard the early days of Web 2.0 as a time of naivety when we thought that letting anyone post on the internet would democratize media and unlock an era of creative expression. Of course, we know now that it isn’t so simple—that open platforms can amplify extreme views, for example, or serve as vectors for misinformation. But apparently we also knew this then, in the earliest days of YouTube and Facebook:

Web 2.0 harnesses the stupidity of crowds as well as its wisdom. Some of the comments on YouTube make you weep for the future of humanity just for the spelling alone, never mind the obscenity and the naked hatred.

But that’s what makes all this interesting. Web 2.0 is a massive social experiment, and like any experiment worth trying, it could fail.

Obviously, the course we chose twenty years ago led us to the world of today. But we didn’t select this path arbitrarily, or without regard for the challenges it would present; we examined the risks and decided the experiment was worth it.

I got a similar sense from reading Thomas Friedman’s The World is Flat (2005), which lays out a theory of globalization based on the convergence of technological development (the internet) and trade liberalization. Some of the passages feel quaint:

If there is a skilled person in Timbuktu, he will get work if he knows how to access the rest of the world, which is quite easy today. You can make a Web site and have an e-mail address and you are up and running. (Ch. 3)

(In the ebook, I commented, “Taxes? Immigration law?”) But elsewhere, Friedman anticipates critiques of globalization which have now become standard:

In the flat world, the balance of power between global companies and the individual communities in which they operate is tilting more and more in favor of the companies, many of them American-based. These companies command as much if not more power than many governments. (Ch. 13)

Not to mention “What the world has never witnessed is an old-style pandemic in a Wal-Mart world,” later on in the same chapter.