Should private platforms engage in censorship?
Outreachy Internship Progress
This Week in Matrix 2023-01-27
My plans at FOSDEM: SourceHut, Hare, and Helios
Setting a new focus for my blog
This Week in Matrix 2023-01-20
Synapse 1.75 released
Share your feedback about developing with Go
Edith Kanaka`ole Quarter
Status update, January 2023
This Week in Matrix 2023-01-13
Matrix Synapse Out of Disk Space state_groups_state
Internship Progress
SourceHut will blacklist the Go module mirror
Outreachy Blog #1: Introduce Yourself
This Week in Matrix 2023-01-06
Building a CoreDNS pluging
Go 1.20 Cryptography
Matrix Community Year In Review 2022
My age+YubiKeys Password Management Solution
The Matrix Holiday Update 2022
This Week in Matrix 2022-12-23
Framework in 2022: Year-in-review
Status update, December 2022
Writing a disk-based key-value store in Golang
This Week in Matrix 2022-12-16
The Recurse Center Carries Energy Forward
This Week in Matrix 2022-12-09
Synapse 1.73 released
Spotlight on Manjaro Linux: Interview with the team
This Week in Matrix 2022-12-02
Building an ASCII Particle Engine in Janet
Funding Matrix via the Foundation
I shall toil at a reduced volume
Summary of changes for November
Summary of changes for November
ncp11 Nightly Builds Now Available
Introducing Namecoin's New Intern, Robert Nganga
Hare is a boring programming language
Codegen in Hare v2
This Week in Matrix 2022-11-25
I was wrong about SBCs (Single Board Computers)
Framework Laptop Chromebook Edition reviews are live! 
Synapse 1.72 released
NLnet funding comes to an end
This Week in Matrix 2022-11-18
Now in stock and how a Framework Laptop gets from the factory to you
Four years of SourceHut
Status update, November 2022
In praise of Plan 9
Thirteen Years of Go
A GC-Friendly Go Interning Cache
Framework Laptops are now Thunderbolt 4 certified
In defense of linked lists
Making Hare more debuggable
Why Did the OpenSSL Punycode Vulnerability Happen
SourceHut terms of service updates, cryptocurrency-related projects to be removed
Summary of changes for October
Summary of changes for October
Anonymity Improvements in Electrum-NMC v4.0.6
Changes to name_show in Electrum-NMC Protocol v1.4.3
Notes from kernel hacking in Hare, part 3: serial driver
The Reciprocal Value of Access to Maintainers
Building software to last forever
Adam Bender - Principal Software Engineer at Google
Don’t kill your darlings
What's cooking on SourceHut? October 2022
TOTP for 2FA is incredibly easy to implement. So what's your excuse?
Roundabouts improve cities for everyone
Status update, October 2022
Status update, October 2022
Closing the loop with Refurbished Framework products
How to help improve SourceHut's design
In praise of ffmpeg
The Wonderfully Terrible World of C and C++ Encoding APIs (with Some Rust)
SourceHut does not ask for IP assignment from employees or contributors
winsvcwrap: Open source replacement for SRVANY in Golang
A 2000km road trip to Rajasthan
Hacktoberfest 2022
Does Rust belong in the Linux kernel?
Notes from kernel hacking in Hare, part 2: multi-threading
age and Authenticated Encryption
Anna May Wong quarter is 5th in series
Go runtime: 4 years later
Introducing the Framework Laptop Chromebook Edition
Foreword to 100 Greatest Canadian Coins and Tokens book
There is no “software supply chain”
The phrase "open source" (still) matters
What's cooking on Sourcehut? September 2022
Status update, September 2022
Spotlight on Fedora Linux: Interview with Matthew Miller
IRC × OAuth 2.0
Planning Go 1.20 Cryptography Work
Where links go to die
Go Developer Survey 2022 Q2 Results
30 thoughts on turning 30
Vulnerability Management for Go
Cross-compiling Hare programs is easy
Logging on Nomad with Vector
Summary of changes for September
Summary of changes for September
Summary of changes for August
Summary of changes for August
Thoughts on buying a car
Praise for Bear
powerctl: A small case study in Hare for systems programming
How does SourceHut's free software consultancy work?
An archeaological dive through a software copyright concern
Introducing Hayom
What's cooking on SourceHut? August 2022
Status update, August 2022
Don't use which
Federation vs. Clustering: Self-determination vs. distributed computing?
Attending IndiaFOSS 2022
A Wide Reduction Trick
Go 1.19 is released!
Namecoin Core 22.0 Released
Martian time in Hare
Planned deprecation of
C23 is Finished: Here is What is on the Menu
Greenhouse Retrospective and Future
KEMs and Post-Quantum age
Installing a pop-up blocker on a GameBoy at the last minute
When It Does Not Listen for Thee, Ask for Whom the Server Listens (Understanding Listening Addresses)
finally. #embed
Self Hosting using Nomad
The best investment
What's cooking on SourceHut? July 2022
Scrivendo Wohpe
Writing Wohpe
Pleasant debugging with GDB and DDD
Status update, July 2022
Debugging DNS Issues in Nomad
A better ranking algorithm
SourceHut is committed to making IRC better
Summary of changes for June
Summary of changes for June
Summary of changes for July
Summary of changes for July
Observations on 6 years of journaling
Safety features of the Hare programming language
What's cooking on SourceHut? June 2022
Status update, June 2022
pkcs11mod progress: Windows, macOS, certutil support, and more!
Electrum-NMC v4.0.0b1 fixes CVE-2022-31246
ncdns v0.3.1 Released
Implementing regular expressions in Hare
Share your feedback about developing with Go
Summary of changes for May
Summary of changes for May
My first solo road trip experience in the hills
Yondergrove, Hedgerow Hall, and the Ideology of the Cozy Forest
Status update, May 2022
What's cooking on SourceHut? May 2022
A Hare code generator for finding ioctl numbers
Understanding Networking in Nomad
Implementing an SSH agent in Hare
Will Hare replace C? Or Rust? Or Zig? Or anything else?
Summary of changes for April
Summary of changes for April
Oathbreaker Update: 2022-04-29
Announcing the Hare programming language
Homebrew Unsweetened Grapefruit Energy Drink
Thoughts on TGGW
Oxide Computer Company: “Benefits as a reflection of values”
Go Developer Survey 2021 Results
Conformance Should Mean Something - fputc, and Freestanding
Chronology in Hare
What's cooking on SourceHut? April 2022
Status update, April 2022
Generating ASCII Trees
When To Use Generics
Building cursed_font
SourceHut's 2021 Financial report
Get familiar with workspaces
Tailscale’s human-scale networks are still controlled by Google and Microsoft
Summary of changes for March
How Go Mitigates Supply Chain Attacks
Summary of changes for March
How to pay professional maintainers
What's cooking on SourceHut? March 2022
Status update, March 2022
Maya Angelou quarters in circulation
To Save C, We Must Save ABI
Summary of changes for February
Ever Closer - C23 Draws Nearer
Summary of changes for February
mineshaft gap
beerlicht pt 2
Dawn of Life exhibit illustrations
Inspecting Nomad Events using Vector and Grafana Loki
Status update, February 2022
What's cooking on SourceHut? February 2022
How I expose services while self hosting
Welcoming Conrad Hoffmann, the newest SourceHut developer
Fishes of the Great Lakes puzzle
What is a Process? (Operating Systems)
Summary of changes for January
Summary of changes for January
Implementing a MIME database in Hare
Ryan Bergman - Senior Staff Engineer at John Deere
What's cooking on SourceHut? January 2022
Status update, January 2022
SourceHut selected for NLNet NGI Zero funding
How does SourceHut's FOSS business model work?
Learning Writing and Coding from a Con Artist
Summary of changes for December
Summary of changes for December
Summary of changes for December
Capsul - Rumors of my Demise have been Greatly Exaggerated
17/12/2021: Capsul - Rumors Of My Demise Have Been Greatly Exaggerated
Using ClickHouse Keeper for Replication
Status update, December 2021
Pseudo-Randomness with an LFSR in Forth
What's cooking on SourceHut? December 2021
views::split: The Final Frontier
Professional maintainers: a wake-up call
Breaking Software and Getting Older
An interview with 100 rabbits
Summary of changes for November
Summary of changes for November
Announcing a persistent IRC session for sourcehut users
Practical parsing with Flex and Bison
I See Deno in Your Future
Using "hare release" to ship Hare software
Status update, November 2021
Debugging issues with Packer and Ansible in Docker
SourceHut's third year
C's assert() under the hood
cel7: a fantasy console-like
Summary of changes for October
Summary of changes for October
Load testing with K6
🥳 Greenhouse Enters Alpha Test Phase!! 🎉
Rebecca Panja - Staff Engineer at Medium
What's cooking on SourceHut? October 2021
Managing Child Processes with Golang: Linux, Windows, and MacOS
Maya Angelou quarter design begins new series
How reflection works in Hare
Summary of changes for September
Summary of changes for September
Greenhouse Update 4 - September
Using ssh-askpass with wayland
Binary Banshees and Digital Demons
Automatic Cipher Suite Ordering in crypto/tls
What's cooking on SourceHut? September 2021
git gud
GCP AI Notebooks Vulnerability - Remediation
Bypassing GCP Org Policy with Custom Metadata
Using Jitsi Meet with OBS to bring guests on your stream
Summary of changes for August
C-ing the Improvement: Progress on C23
Summary of changes for August
Docker Desktop
Introducing a GraphQL-native approach to webhooks
SourceHut is hiring FOSS software engineers
Breaking electron-store's encryption
Doggo - DNS Lookup tool in Golang
What's cooking on Sourcehut? August 2021
Greenhouse Update 3 - August
Optimizing A*
Summary of changes for July
Summary of changes for July
Making a Roguelike
Dry Toilet Installation
Mikhail Chernykh - Technical Lead at Indeed
The mythical 10× programmer is just a good leader
Lambdas, Nested Functions, and Blocks, oh my!
What's cooking on Sourcehut? July 2021
Dynamic linking best practices
Stiff goldenrod artwork
Summary of changes for June
Summary of changes for June
American Eagle silver coin
Building a Spatial Index Supporting Range Query using Space Filling Hilbert Curve
Better Portable Graphics (BPG) on the web with WebAssembly (WASM) and ServiceWorker
What's cooking on Sourcehut? June 2021
Summary of changes for May
Summary of changes for May
Analyzing CoreDNS logs with Clickhouse and Vector
Lake trout sign illustration
Spotted lanternfly illustrations and map
How I optimized my Owncast Stream to run on a Raspberry Pi part 2
SourceHut is leaving Freenode
What's cooking on Sourcehut? May 2021
Programming and Writing
Sourcehut is the fastest. So what?
Bug trackers are for tracking bugs
Strategies for handling OOMs in Hare programs
Self Hosting 101
Wood stove installation
What's cooking on SourceHut? April 2021
How I take Notes
Thoughts on Hare
Like Free Software? Give 'em Five!
IRC's Flaws
Future research areas
High-level data structures in Hare
Hare standard library development
What's cooking on SourceHut? March 2021
Hare's path to a self-hosting toolchain
Ten seconds to ponder if a thread is worth it
Summary of changes for April
Summary of changes for April
Summary of changes for March
Stephen Kawaguchi - Solution Architect at IBM
Summary of changes for March
Summary of changes for February
Sourcehut pages
What's cooking on Sourcehut? February 2021
Running Nomad for home server
Hare's advances compared to C
Summary of changes for January
Setup Gitlab Runner with AWS ECR
Aaron Suggs - Principal Engineer at Glossier
Using Centurylink gigabit fiber with Debian Linux
Alex Kessinger - Principal Engineer at Stitch Fix
What Is Guix Really?
What's cooking on Sourcehut? January 2021
On the subject of ethics in our industry
The Most Backdoor-Looking Bug I’ve Ever Seen
GCP .actAs d-day > How not to remediate
Summary of changes for December
The Chrome T-Rex game, except the dinosaur is you
How to try out somebody's Guix package
GCP Roles and Permissions 101
John Zittlau - Principal Engineer at Jobber
Re-Deriving the edwards25519 Decoding Formulas
What's cooking on Sourcehut? December 2020
Greg Wittel - Principal Software Engineer at Proofpoint
GCP Users and Group 101
Cloud Init Trivia
Designing a simple Job Queue in Golang
GCP IAM Policy 101
GCP Service Account 101
GCP Resource Hierarchy 101
Summary of changes for November
COVIDaware MN app investigation
Analysis Paralysis - CrashLoopBackoff
My brother’s hamster
Terraform Plugins
SourceHut's second year in alpha
SourceHut Q3 2020 Financial report
Migrating my blog to Zola
Summary of changes for October
IBM VPC (gen2) Flavors
Mailing lists are resistant to censorship
Crawling the Gemspace
Import existing Route53 records in Terraform
What's cooking on Sourcehut? October 2020
A Mini Macro Processor
Working offgrid efficiently
Post-mortem:'s almost-outage today
Reconstruct Instead of Validating
Visualizing Azure DevOps Dependencies with PlantUML
In-process work queueing for Go
The open source paradox
Setting up a RIPE Atlas Probe
SourceHut API 2.0 dev log
Stephen Wan - Staff Engineer at Samsara
Monitoring my home network
What's cooking on Sourcehut? September 2020
Injecting latency into applications running in docker
SourceHut's PeerTube bootstrap fund: first batch
NaCl Is Not a High-Level API
Tips for stable and portable software
SourceHut contributor spotlight
Registries Considered Harmful
What's cooking on Sourcehut? August 2020
Damian Schenkelman - Principal Engineer at Auth0
Katie Sylor-Miller - Frontend Architect at Etsy
hello, friend.
North Pacific Logbook
Ras Kasa Williams - Staff Engineer at Mailchimp
Sourcehut Q2 2020 Financial report
Create impeccable MIME email from markdown
What's cooking on Sourcehut? July 2020
SourceHut adds continuous integration for mailing lists
How we monitor our services
Identity fluidity and keysmashing
The end of the Redis adventure
What's cooking on Sourcehut? June 2020
How and why GraphQL will influence the SourceHut alpha
How To Write An Operator For Anything
Lessons Learned From Two Years Of Kubernetes
The Context of Software Freedom
Where Did Software Go Wrong?
Achieving accessibility through simplicity
Logging TLS session keys in LibreSSL
Monitoring K8s with Victoriametrics
The Deprecated *nix API
20/05/2020: Capsul rollin' onward with a Web Application
Status update: 2020-05-20
What's cooking on Sourcehut? May 2020
The PeerTube content bootstrap fund
Finding secrets by decompiling Python bytecode in public repositories
Status update: 2020-05-12
SourceHut + Plan 9 = ❤
Program eloquence considered harmful
I'm done with DWM
Changing power settings in elementary OS
Goodbye, Twitter
Dmitry Petrashko - Tech Advisor to the Head of Infra at Stripe
Bert Fan - Senior Staff Engineer at Slack
01/05/2020: Cyberia Services Update: 2020-04
Redis 6.0.0 GA is out!
Announcing the SourceHut project hub
Cos Auth
Using Tailscale for home server
Silvia Botros - Senior Principal Engineer at Twilio Inc.
Michelle Bu - Payments Products Tech Lead at Stripe
Prioritizing simplicity improves performance and reliability
Rick Boone - Strategic Advisor to Uber's VP of Infrastructure
What's cooking on Sourcehut? April 2020
On Shell Replacements
Diana Pojar - Staff Data Engineer at Slack
Sourcehut Q1 2020 Financial report
Duretti Hirpa - Formerly Staff Engineer at Mailchimp
Nelson Elhage - Formerly Staff Engineer at Stripe
Open and Shut
Ritu Vincent - Staff Engineer at Dropbox
Joy Ebertz - Senior Staff Software Engineer at Split
Dan Na - Staff Engineer and Team Lead at Squarespace
`zig cc`: a Powerful Drop-In Replacement for GCC/Clang
Keavy McMinn - Senior Principal Engineer at Fastly
Svelte is unappealing
Concurrent programming, with examples
What's cooking on Sourcehut? March 2020
KISS Linux
Planning to Relaunch
11/03/2020: Simple trusted compute: Announcing Capsul
What do we do when you lose your 2FA codes?
Typhoons and mold
25/02/2020: How to write a blog post for Cyberia
What's cooking on Sourcehut? February 2020
DNS Lookups in Kubernetes
Four Essential Diagrams for Business Analysts
Tildes is open-source
Sharing Expenses with Ledger
What's cooking on Sourcehut? January 2020
Resize PVC in Kubernetes
Sourcehut Q4 2019 Financial report
Installing Fedora 31 on a 2018 Mac mini
sshuttle - A better ssh tunnel
Use netcat for port scanning
Building a BitTorrent client from the ground up in Go
kubectl wait
Introducing kubekutr
When class-based React beats Hooks
Redis 6 RC1 is out today
What's cooking on Sourcehut? December 2019
Useful tools
3dot14: my setup
You're still not anonymous on Looped
You're not anonymous on Looped
What happens when you push to, and why was it so slow?
Sourcehut's year in alpha
A quick primer on dig
GitOps approach to Continuous Delivery for Kubernetes
Programming as Craft
Upcoming Projects
Creating an OBS source for serial devices
Switching to Fastmail
Intro to RBAC in EKS
Our model is customers first, investors never
Sourcehut Q3 2019 Financial report
What's cooking on Sourcehut? October 2019
New Desktop
What To Do About StackOverflow
Kubernetes cluster on RPi
What's cooking on Sourcehut? September 2019
Sourcehut makes BSD software better
Sourcehut welcomes Bitbucket refugees
References for Open Source in Streaming Talk
Fitting rooms, but for your name
What's cooking on Sourcehut? August 2019
a home for pino
Writing 2048 in Forth, or How I Spent My Summer Vacation
Detecting incognito mode in Chrome 76 with a timing attack
Announcing Tildes - a non-profit community site driven by its users' interests
OpenShift and Falco
Falsehoods Programmers Believe About Cats
tools ecosystem
History and effective use of Vim
What's cooking on Sourcehut? July 2019
Half lock your screen with xtrlock
Client side caching in Redis 6
My First Post
Setting Up a Pi-based Webcam
My Personal Networking Setup
Why I'm donating $150/month (10% of my income) to the musl libc project
Quick, Fix Your Diction
What's cooking on Sourcehut? June 2019
Unicode programming, with examples
Playlists, cmus, X3
The struggles of an open source maintainer
What's cooking on Sourcehut? May 2019
Common Docker Mistakes - Episode 1
Why I Don't Support The OSI But Am Now A Member Anyway
Chef's New License: A Community Response
Setting up Kong API Gateway - Part 2/2
Setting up Kong API Gateway - Part 1/2
Redis streams as a pure data structure
Adding Prometheus configuration to your CI/CD workflow
linux @ kmach
hello fujisan
goji no chaimu
Gopher: a present for Redis
Browsing a remote git repository
An update about Redis developments in 2019
the [E]nd of eeeee
A tale of 132 e’s
The Death of Edge
Using Zig to Provide Stack Traces on Kernel Panic for a Bare Bones Operating System
Turning the Wheel
the promise of pancakes
Why RESP3 will be the only protocol supported by Redis 6
Using GNU Recutils to Track Car Maintenance History
Makefile for Golang projects
Writing system software: code comments.
Casual Programming at Work for Fun and Profit
String Matching based on Compile Time Perfect Hashing in Zig
LOLWUT: a piece of art inside a database command
On Redis master-slave terminology
On Using a News Server to Host Discussions
Email as an Application Interface
The Canon Cat - Boxy, But Good
Redis is not "open core"
Redis will remain BSD licensed
where is the turtle farm
Bi-Weekly Music Post Part 4
Reversing JS Malware From
Visualizing the History of Programming Languages
Bi-Weekly Music Post Part 3
Introducing bbook
Bi-Weekly Music Post Part 2
Redis Lua scripting: several security vulnerabilities fixed
captain what is this
I Quit My Cushy Job at OkCupid to Live on Donations to Zig
Receiving notifications from Supervisor
Clarifications on the Incapsula Redis security report
projects and pain
an island to oneself
Bi-Weekly Music Post Part 1
An Analysis of Cloudflare's Email Address Obfuscation
Installing Postfix and Mailman on Debian Jessie
Messages, Google Chat, and Signal
Evernote Extraction Part II - Vimwiki Inception
Evernote Extraction
Hacking Harvard (and nearly every other college)
Learning Styles
Snow Day Calculator XSS
Moving and backing up Google Moving Images
How to Gopher
Stored XSS in Schoology
Uncovering a Bug in Cloudflare's Minification Service
Reading John Conover
Formatting for Gopher with GNU troff
Zig: January 2018 in Review
A short tale of a read overflow
An update on Redis Streams development
Unsafe Zig is Safer Than Unsafe Rust
OBS Scripting in Python
Hodor v4
DIY Dropbox
Bypassing Cert Pinning in the Steam Mobile App
Contact Management with Ranger and Vim
Zig: December 2017 in Review
Plain Text
Working with Recruiters
Redis PSYNC2 bug post mortem
Journal to Timesheet
Shoving off with Lightsail
Streams: a new general purpose data structure in Redis.
Information Gathering and Management
Diagrams from Text with PlantUML
Doing the FizzleFade effect using a Feistel network
the rock of polynesia
internet in paradise
Geeknote - Evernote at the command line
rainy with a chance of mosquitoes
Backing up dotfiles with stow and git
Setting up twtxt
The mythical 10x programmer
Redis on the Raspberry Pi: adventures in unaligned lands
A Better Way to Implement Bit Fields
Zig: Already More Knowable Than C
The first release candidate of Redis 4.0 is out
Getting Started -- Part 1
Migrating From WordPress to Jekyll -- Part 2
Migrating From WordPress to Jekyll -- Part 1
Using irssi with Slack
Learning to Type
Random notes on improving the Redis LRU algorithm
Writing an editor in less than 1000 lines of code, just for fun
The Purchase Funnel, Project Definition, and The Danger Zone
Programmers are not different, they need simple UIs.
Redis Loadable Modules System
Three ideas about text messages
Redis 3.2.0 is out!
Mechanical Keyboards
dia de pixales
woodland katamari
time flies
protest flag
orpheus orifice
declarative programming
the there afield
brawl at the cairodome
new homepage
100 more of those BITFIELDs
The binary search of distributed programming
Is Redlock safe?
Disque 1.0 RC1 is out!
Generating unique IDs: an easy and reliable way
6 years of commit visualized
Recent improvements to Redis Lua scripting
A few things about Redis security
Moving the Redis community on Reddit
Clarifications about Redis and Memcached
Lazy Redis is better Redis
About Redis Sets memory efficiency
Thanks Pivotal, Hello Redis Labs
Commit messages are not titles
Plans for Redis 3.2
Adventures in message queues
Redis Conference 2015
Side projects
Why we don’t have benchmarks comparing Redis with other DBs
SSH HoneyPot Analysis
SSH HoneyPot
SSH Log Analysis
Redis latency spikes and the Linux kernel: a few more details
Redis latency spikes and the 99th percentile
This is why I can’t have conversations using Twitter
Diskless replication: a few design notes.
A few arguments about Redis Sentinel properties and fail scenarios.
Redis cluster, no longer vaporware.
Queues and databases
A proposal for more reliable locks using Redis
Using Heartbleed as a starting point
Redis new data structure: the HyperLogLog
Fascinating little programs
What is performance?
Happy birthday Redis!
A simple distributed algorithm for small idempotent information
Redis Cluster and limiting divergences.
Some fun with Redis Cluster testing
Redis as AP system, reloaded
The Redis criticism thread
WAIT: synchronous replication for Redis
Blog lost and recovered in 30 minutes
The fight against sexism is not a free pass
Finally Redis collections are iterable
New Redis Cluster meta-data handling
English has been my pain for 15 years
Twilio incident and Redis
San Francisco
Exploring synchronous replication in Redis
Availability on planet Terah
Reply to Aphyr attack to Sentinel
Redis configuration rewriting
Hacking Italia
Redis with an SSD swap, not what you want
Log driven programming is a real productivity booster.
An idea for Twitter
News about Redis: 2.8 is shaping, I'm back on Cluster.
A few thoughts about Open Source Software
ADS-B wine cork antenna
Partial resyncs and synchronous replication.
Twemproxy, a Redis proxy from Twitter
Redis Crashes
Redis children can now report amount of copy-on-write
Memory errors and DNS
On Twitter, at Twitter
Eventual consistency: when, and how?
Optimizing the TCP/IP checksum calculation. Interesting low level journey.
The Utility of a Cup
announcing honeysuckle
refactor: argent
Trying OpenCL on Guix: An Experience Report
On Twitter's Acquisition, and Leaving
remote-unlocking full system encryption with arch linux
On Perfectionism
Gorkin: An Experiment with Cucumber & BDD
An Argument for Parameter Validation
Why this Year I'm Focusing on Charity.
Simplicity and Go
Is migrating from Twitter to Mastodon risky?