logo

drewdevault.com

[mirror] blog and personal website of Drew DeVault git clone https://hacktivis.me/git/mirror/drewdevault.com.git
ModeNameSize
-rw-r--r--.build.yml41L
-rw-r--r--.gitignore2L
-rw-r--r--LICENSE229L
-rw-r--r--README.md4L
-rw-r--r--assets/main.scss311L
-rw-r--r--config.toml39L
-rw-r--r--content/_index.gmi25L
-rw-r--r--content/_index.html4L
-rw-r--r--content/blog/2020-Election-worker.gmi57L
-rw-r--r--content/blog/2020-Election-worker.md5L
-rw-r--r--content/blog/2021-01-02-Every-commit-should-be-perfect.gmi45L
-rw-r--r--content/blog/2021-01-02-Every-commit-should-be-perfect.md5L
-rw-r--r--content/blog/2022-01-15-The-RISC-V-experience.gmi23L
-rw-r--r--content/blog/2022-01-15-The-RISC-V-experience.md171L
-rw-r--r--content/blog/2022-09-02-In-praise-of-qemu.md83L
-rw-r--r--content/blog/2023-01-22-A-new-focus.md77L
-rw-r--r--content/blog/2023-01-24-FOSDEM.md62L
-rw-r--r--content/blog/2023-01-30-Should-private-platforms-engage-in-censorship.md187L
-rw-r--r--content/blog/2023-02-20-Helios-aarch64.md682L
-rw-r--r--content/blog/2023-03-09-Comment-or-no-comment.md234L
-rw-r--r--content/blog/2023-04-08-Drivers-and-mercury.md614L
-rw-r--r--content/blog/2023-04-11-The-FSF-is-dying.md112L
-rw-r--r--content/blog/2023-04-18-A-new-shell-for-Unix.md212L
-rw-r--r--content/blog/2023-04-24-Who-leads-us.md95L
-rw-r--r--content/blog/2023-05-01-Burnout.md56L
-rw-r--r--content/blog/2023-08-09-Hello-from-Ares.md99L
-rw-r--r--content/blog/2023-08-29-AI-crap.md119L
-rw-r--r--content/blog/2023-11-26-RMS-on-sex.md491L
-rw-r--r--content/blog/2023-12-26-Prusa-is-floundering.md143L
-rw-r--r--content/blog/A-broad-intro-to-networking.md248L
-rw-r--r--content/blog/A-culture-of-stability-and-reliability.gmi13L
-rw-r--r--content/blog/A-culture-of-stability-and-reliability.md61L
-rw-r--r--content/blog/A-few-ways-to-make-money-in-FOSS.gmi50L
-rw-r--r--content/blog/A-few-ways-to-make-money-in-FOSS.md112L
-rw-r--r--content/blog/A-new-systems-language.gmi76L
-rw-r--r--content/blog/A-new-systems-language.md119L
-rw-r--r--content/blog/A-philosophy-for-instant-messaging.gmi67L
-rw-r--r--content/blog/A-philosophy-for-instant-messaging.md135L
-rw-r--r--content/blog/A-practical-understanding-of-Flux.md248L
-rw-r--r--content/blog/A-story-of-two-libcs.gmi203L
-rw-r--r--content/blog/A-story-of-two-libcs.md244L
-rw-r--r--content/blog/Abiopause.md90L
-rw-r--r--content/blog/Absence-of-features-in-IRC.md122L
-rw-r--r--content/blog/Actually-you-CAN-do-it.md65L
-rw-r--r--content/blog/Add-a-contrib-directory.md73L
-rw-r--r--content/blog/Alice-in-Wonderland.md75L
-rw-r--r--content/blog/Alpine-does-not-make-news.md57L
-rw-r--r--content/blog/Analytics-and-informed-consent.gmi17L
-rw-r--r--content/blog/Analytics-and-informed-consent.md51L
-rw-r--r--content/blog/Analyzing-HN.md299L
-rw-r--r--content/blog/Anatomy-of-a-shell.md131L
-rw-r--r--content/blog/Anime-recommendation-fate.gmi12L
-rw-r--r--content/blog/Anime-recommendation-fate.md6L
-rw-r--r--content/blog/Anime-recommendation-gatari.gmi17L
-rw-r--r--content/blog/Anime-recommendation-gatari.md5L
-rw-r--r--content/blog/Announcing-Hare.md11L
-rw-r--r--content/blog/Announcing-aerc-0.1.0.md52L
-rw-r--r--content/blog/Announcing-annotations-for-sourcehut.md233L
-rw-r--r--content/blog/Announcing-first-class-hg-support-on-sourcehut.md43L
-rw-r--r--content/blog/Announcing-wio.md56L
-rw-r--r--content/blog/Anti-AGPL-propaganda.md91L
-rw-r--r--content/blog/Apollo-federation-2-gaslighting.md177L
-rw-r--r--content/blog/Apple-CSAM-scanning.md69L
-rw-r--r--content/blog/Arch-Linux-with-full-disk-encryption-in-15-minutes.md72L
-rw-r--r--content/blog/Archive-it-or-miss-it.md45L
-rw-r--r--content/blog/Avoid-traumatic-changes.md76L
-rw-r--r--content/blog/BARE-message-encoding.md215L
-rw-r--r--content/blog/Backups-and-redundancy-at-sr.ht.md119L
-rw-r--r--content/blog/Better-than-DuckDuckGo.gmi27L
-rw-r--r--content/blog/Better-than-DuckDuckGo.md99L
-rw-r--r--content/blog/Bring-more-tor-into-your-life.md60L
-rw-r--r--content/blog/Building-a-real-Linux-distro.md110L
-rw-r--r--content/blog/Burnout-2.md87L
-rw-r--r--content/blog/Calculate-your-doation-fees-for-Patreon.md86L
-rw-r--r--content/blog/Can-I-be-on-your-podcast.md78L
-rw-r--r--content/blog/Can-we-talk-about-client-side-certs.md99L
-rw-r--r--content/blog/Cash-for-leftpad.md104L
-rw-r--r--content/blog/Celeste.gmi17L
-rw-r--r--content/blog/Celeste.md5L
-rw-r--r--content/blog/China.md214L
-rw-r--r--content/blog/Code-review-with-aerc.md144L
-rw-r--r--content/blog/Come-build-your-project.gmi17L
-rw-r--r--content/blog/Come-build-your-project.md35L
-rw-r--r--content/blog/Commercial-forks-of-FOSS-projects.md81L
-rw-r--r--content/blog/Commons-clause-will-destroy-open-source.md123L
-rw-r--r--content/blog/Complicated.md58L
-rw-r--r--content/blog/Conciseness.md13L
-rw-r--r--content/blog/Configuring-aerc-for-git.md70L
-rw-r--r--content/blog/Conservative-web-development.md98L
-rw-r--r--content/blog/Copilot-GPL-washing.md240L
-rw-r--r--content/blog/Copying-aint-stealing.gmi31L
-rw-r--r--content/blog/Copying-aint-stealing.md5L
-rw-r--r--content/blog/Corporate-surveillance-murder.gmi15L
-rw-r--r--content/blog/Corporate-surveillance-murder.md49L
-rw-r--r--content/blog/Cryptocurrency-is-a-disaster.gmi37L
-rw-r--r--content/blog/Cryptocurrency-is-a-disaster.md146L
-rw-r--r--content/blog/DCO.gmi32L
-rw-r--r--content/blog/DCO.md92L
-rw-r--r--content/blog/DRM-leasing-and-VR-for-Wayland.md478L
-rw-r--r--content/blog/Dark-forest.gmi32L
-rw-r--r--content/blog/Dark-forest.md5L
-rw-r--r--content/blog/Debugging-your-new-PL.md97L
-rw-r--r--content/blog/Decentralize-decentralize-decentralize.md145L
-rw-r--r--content/blog/Demon-Slayer-review.gmi33L
-rw-r--r--content/blog/Demon-Slayer-review.md5L
-rw-r--r--content/blog/Dependencies-and-maintainers.md74L
-rw-r--r--content/blog/Designing-a-replacement-part-for-my-truck.md82L
-rw-r--r--content/blog/Developers-shouldnt-distribute.md74L
-rw-r--r--content/blog/Does-Rust-belong-in-Linux.md177L
-rw-r--r--content/blog/Dont-sign-a-CLA-2.md135L
-rw-r--r--content/blog/Dont-sign-a-CLA.md79L
-rw-r--r--content/blog/Dont-use-Discord-for-FOSS.gmi21L
-rw-r--r--content/blog/Dont-use-Discord-for-FOSS.md119L
-rw-r--r--content/blog/Effective-project-governance.md108L
-rw-r--r--content/blog/Elasticsearch-does-not-belong-to-Elastic.gmi11L
-rw-r--r--content/blog/Elasticsearch-does-not-belong-to-Elastic.md60L
-rw-r--r--content/blog/Electron-considered-harmful.md101L
-rw-r--r--content/blog/Email-driven-git.md229L
-rw-r--r--content/blog/Embedding-files-in-C.md89L
-rw-r--r--content/blog/Engineers-solve-problems.md38L
-rw-r--r--content/blog/Enough-to-decide.md177L
-rw-r--r--content/blog/FOSDEM-recap.md98L
-rw-r--r--content/blog/FOSS-contributor-tracks.md80L
-rw-r--r--content/blog/FOSS-is-to-surrender-your-monopoly.gmi31L
-rw-r--r--content/blog/FOSS-is-to-surrender-your-monopoly.md91L
-rw-r--r--content/blog/Fediverse-toxicity.md43L
-rw-r--r--content/blog/Fees-on-donation-platforms.md48L
-rw-r--r--content/blog/Firefox-is-on-a-slippery-slope.md86L
-rw-r--r--content/blog/Firefox-the-embarassment-of-FOSS.gmi37L
-rw-r--r--content/blog/Firefox-the-embarassment-of-FOSS.md62L
-rw-r--r--content/blog/Four-principles-of-software-engineering.gmi17L
-rw-r--r--content/blog/Four-principles-of-software-engineering.md29L
-rw-r--r--content/blog/Framing-accessibility-in-broader-terms.md117L
-rw-r--r--content/blog/Free-gemini-hosting.gmi5L
-rw-r--r--content/blog/Free-gemini-hosting.md5L
-rw-r--r--content/blog/Free-software-licenses-MIT.md81L
-rw-r--r--content/blog/Fuck-you-nvidia.md64L
-rw-r--r--content/blog/Fucking-laptops.md62L
-rw-r--r--content/blog/Future-of-sway.md91L
-rw-r--r--content/blog/Gemini-TOFU.gmi63L
-rw-r--r--content/blog/Gemini-TOFU.md83L
-rw-r--r--content/blog/Gemini-and-Hugo.gmi88L
-rw-r--r--content/blog/Gemini-and-Hugo.md5L
-rw-r--r--content/blog/Gemreader.gmi13L
-rw-r--r--content/blog/Gemreader.md5L
-rw-r--r--content/blog/Generics-arent-ready-for-Go.md104L
-rw-r--r--content/blog/Getting-on-without-Google.md127L
-rw-r--r--content/blog/Getting-started-with-qemu.md103L
-rw-r--r--content/blog/Git-email-webcast.md29L
-rw-r--r--content/blog/Git-is-already-distributed.md120L
-rw-r--r--content/blog/GitHub-notifications.md87L
-rw-r--r--content/blog/Gmail-is-a-huge-source-of-spam.gmi34L
-rw-r--r--content/blog/Gmail-is-a-huge-source-of-spam.md65L
-rw-r--r--content/blog/Go-1.11.md79L
-rw-r--r--content/blog/Go-is-a-great-language.gmi19L
-rw-r--r--content/blog/Go-is-a-great-language.md75L
-rw-r--r--content/blog/Going-off-script.md85L
-rw-r--r--content/blog/Google-embraces-extends-extinguishes.md76L
-rw-r--r--content/blog/Google-has-been-DDoSing-sourcehut.md88L
-rw-r--r--content/blog/H0-H0-H0.gmi26L
-rw-r--r--content/blog/H0-H0-H0.md5L
-rw-r--r--content/blog/HDCP-in-Weston.md124L
-rw-r--r--content/blog/HN-over-Gemini.gmi27L
-rw-r--r--content/blog/HN-over-Gemini.md6L
-rw-r--r--content/blog/Hack-everything-without-fear.md59L
-rw-r--r--content/blog/Hacking-on-your-TI-calculator.md195L
-rw-r--r--content/blog/Hare-codegen-v2.md291L
-rw-r--r--content/blog/Help-Chile-promote-digital-freedoms.md52L
-rw-r--r--content/blog/Himitsu.md198L
-rw-r--r--content/blog/History-of-intelligent-observation.md196L
-rw-r--r--content/blog/History-will-not-remember-us-fondly.gmi17L
-rw-r--r--content/blog/History-will-not-remember-us-fondly.md87L
-rw-r--r--content/blog/Hooks.md26L
-rw-r--r--content/blog/How-I-choose-a-license.gmi55L
-rw-r--r--content/blog/How-I-choose-a-license.md5L
-rw-r--r--content/blog/How-I-learned-to-stop-worrying-and-love-C.md121L
-rw-r--r--content/blog/How-I-maintain-FOSS-projects.md121L
-rw-r--r--content/blog/How-does-IRC-federate.gmi19L
-rw-r--r--content/blog/How-does-IRC-federate.md72L
-rw-r--r--content/blog/How-does-virtual-memory-work.md75L
-rw-r--r--content/blog/How-new-Linux-users-succeed.md145L
-rw-r--r--content/blog/How-to-abandon-a-FLOSS-project.md71L
-rw-r--r--content/blog/How-to-contribute-to-FOSS.md51L
-rw-r--r--content/blog/How-to-design-a-new-programming-language.gmi19L
-rw-r--r--content/blog/How-to-design-a-new-programming-language.md84L
-rw-r--r--content/blog/How-to-go-to-war.md160L
-rw-r--r--content/blog/How-to-make-your-downstreams-happy.md63L
-rw-r--r--content/blog/How-to-store-data-forever.md214L
-rw-r--r--content/blog/How-to-write-a-better-bloom-filter-in-C.md217L
-rw-r--r--content/blog/How-to-write-an-IRC-bot.md93L
-rw-r--r--content/blog/How-to-write-release-notes.gmi79L
-rw-r--r--content/blog/How-to-write-release-notes.md123L
-rw-r--r--content/blog/Hyprland-toxicity.md184L
-rw-r--r--content/blog/I-shall-toil-quietly.md43L
-rw-r--r--content/blog/Im-doing-FOSS-full-time.md69L
-rw-r--r--content/blog/Im-handing-wlroots-and-sway-to-Simon.gmi7L
-rw-r--r--content/blog/Im-handing-wlroots-and-sway-to-Simon.md27L
-rw-r--r--content/blog/Implementing-mime-in-xxxx.md482L
-rw-r--r--content/blog/In-Memoriam-Mozilla.md64L
-rw-r--r--content/blog/In-praise-of-Plan-9.md104L
-rw-r--r--content/blog/In-praise-of-Postgres.gmi53L
-rw-r--r--content/blog/In-praise-of-Postgres.md101L
-rw-r--r--content/blog/In-praise-of-ffmpeg.md89L
-rw-r--r--content/blog/Input-handling-in-wlroots.md249L
-rw-r--r--content/blog/Integrating-a-VT220-into-my-life.md206L
-rw-r--r--content/blog/Interactive-SSH-programs.md223L
-rw-r--r--content/blog/Introducing-shell-access-for-builds.md88L
-rw-r--r--content/blog/Introduction-to-POSIX-shell.md102L
-rw-r--r--content/blog/Introduction-to-Wayland.md244L
-rw-r--r--content/blog/Is-GitHub-a-derivative-work.gmi27L
-rw-r--r--content/blog/Is-GitHub-a-derivative-work.md83L
-rw-r--r--content/blog/It-takes-a-village.gmi1008L
-rw-r--r--content/blog/It-takes-a-village.md1024L
-rw-r--r--content/blog/Its-not-okay-to-pretend-youre-open-source.md70L
-rw-r--r--content/blog/KDE-Sprint-retrospective.md69L
-rw-r--r--content/blog/Kernel-hacking-with-Hare-part-1.md291L
-rw-r--r--content/blog/Kernel-hacking-with-Hare-part-2.md492L
-rw-r--r--content/blog/Kernel-hacking-with-Hare-part-3.md772L
-rw-r--r--content/blog/Kineto-a-gemini-proxy.gmi13L
-rw-r--r--content/blog/Kineto-a-gemini-proxy.md5L
-rw-r--r--content/blog/KnightOS-was-interesting.md75L
-rw-r--r--content/blog/Language-design-considerations.md203L
-rw-r--r--content/blog/Learn-your-package-manager.md41L
-rw-r--r--content/blog/Lessons-to-learn-from-C.md83L
-rw-r--r--content/blog/Let-distros-do-their-job.md109L
-rw-r--r--content/blog/Lichess.gmi40L
-rw-r--r--content/blog/Lichess.md9L
-rw-r--r--content/blog/Limited-generics-in-C.md110L
-rw-r--r--content/blog/Line-printer-shell-hack.md190L
-rw-r--r--content/blog/Linux-Mint-and-elementary-OS.md96L
-rw-r--r--content/blog/Linux-development-is-profoundly-distributed.md89L
-rw-r--r--content/blog/Local-mail-server.md149L
-rw-r--r--content/blog/Losing-faith-in-America.md78L
-rw-r--r--content/blog/MSG_PEEK-is-more-common-than-you-think-CVE-2016-10229.md49L
-rw-r--r--content/blog/Mail-service-provider-recommendations.md121L
-rw-r--r--content/blog/March-2nd-1943.md55L
-rw-r--r--content/blog/Marijuana-reform-in-NL.gmi23L
-rw-r--r--content/blog/Marijuana-reform-in-NL.md6L
-rw-r--r--content/blog/Mark-Rober-and-capitalist-manipulation.gmi31L
-rw-r--r--content/blog/Mark-Rober-and-capitalist-manipulation.md5L
-rw-r--r--content/blog/Megacorps-are-not-your-dream-job.gmi19L
-rw-r--r--content/blog/Megacorps-are-not-your-dream-job.md74L
-rw-r--r--content/blog/Microsoft-plays-their-hand.md66L
-rw-r--r--content/blog/Mobile-linux-retrospective.md196L
-rw-r--r--content/blog/Music-syncing-on-Android.md113L
-rw-r--r--content/blog/My-journey-from-MIT-to-GPL.md79L
-rw-r--r--content/blog/My-lets-encrypt-setup.md128L
-rw-r--r--content/blog/My-weird-branchless-git-workflow.md70L
-rw-r--r--content/blog/Netherlands-update.gmi19L
-rw-r--r--content/blog/Netherlands-update.md92L
-rw-r--r--content/blog/New-workstation.gmi30L
-rw-r--r--content/blog/New-workstation.md5L
-rw-r--r--content/blog/NewPipe-represents-the-best-of-FOSS.md50L
-rw-r--r--content/blog/Nitter-and-other-internet-reclamation-projects.md68L
-rw-r--r--content/blog/On-real-names.md94L
-rw-r--r--content/blog/On-the-traits-of-good-replacements.gmi30L
-rw-r--r--content/blog/On-the-traits-of-good-replacements.md76L
-rw-r--r--content/blog/Open-hardware-graveyard.md50L
-rw-r--r--content/blog/Open-letter-to-Senator-Casey.md63L
-rw-r--r--content/blog/Open-source-is-defined-by-the-OSD.gmi29L
-rw-r--r--content/blog/Open-source-is-defined-by-the-OSD.md134L
-rw-r--r--content/blog/Open-source-matters.md94L
-rw-r--r--content/blog/Open-sourcing-video-games.md262L
-rw-r--r--content/blog/Organizing-my-thoughts.md79L
-rw-r--r--content/blog/Our-self-hosted-parser-design.gmi566L
-rw-r--r--content/blog/Our-self-hosted-parser-design.md688L
-rw-r--r--content/blog/PINE64-let-us-down.md108L
-rw-r--r--content/blog/Patches-welcome.md61L
-rw-r--r--content/blog/Phone-maintenance.md64L
-rw-r--r--content/blog/Pine64s-weird-priorities.md82L
-rw-r--r--content/blog/PinePhone-review.md138L
-rw-r--r--content/blog/Pinebook-Pro-review.gmi21L
-rw-r--r--content/blog/Pinebook-Pro-review.md76L
-rw-r--r--content/blog/Plaid-is-an-evil-nightmare-product.md66L
-rw-r--r--content/blog/Please-stop-using-slack.md149L
-rw-r--r--content/blog/Please-use-text-plain-for-emails.md138L
-rw-r--r--content/blog/Portability-matters.md81L
-rw-r--r--content/blog/Porting-Alpine-Linux-to-RISC-V.md118L
-rw-r--r--content/blog/Porting-DOOM-to-Helios.md484L
-rw-r--r--content/blog/Porting-an-entire-toolchain-to-the-browser-with-emscripten.md366L
-rw-r--r--content/blog/Praise-for-Alpine-Linux.gmi35L
-rw-r--r--content/blog/Praise-for-Alpine-Linux.md91L
-rw-r--r--content/blog/Privacy-as-a-hobby.md135L
-rw-r--r--content/blog/Process-scheduling-in-KnightOS.md125L
-rw-r--r--content/blog/Provided-as-is-without-warranty.md64L
-rw-r--r--content/blog/Python-datetime-sucks.md102L
-rw-r--r--content/blog/Python-stop-screwing-distros-over.md83L
-rw-r--r--content/blog/RE-Is-this-aggregator-idea-good.gmi12L
-rw-r--r--content/blog/RE-Is-this-aggregator-idea-good.md6L
-rw-r--r--content/blog/RaptorCS-Blackbird-a-horror-story.md172L
-rw-r--r--content/blog/RaptorCS-redemption.md108L
-rw-r--r--content/blog/Re-Slow.md161L
-rw-r--r--content/blog/Reckless-limitless-scope.md90L
-rw-r--r--content/blog/Redirecitng-stderr-of-running-process.md53L
-rw-r--r--content/blog/Reflection.gmi333L
-rw-r--r--content/blog/Reflection.md413L
-rw-r--r--content/blog/Reforming-the-free-software-message.md50L
-rw-r--r--content/blog/Reframing-gemini.gmi13L
-rw-r--r--content/blog/Reframing-gemini.md5L
-rw-r--r--content/blog/Reliability.md101L
-rw-r--r--content/blog/Rotating-passwords.md81L
-rw-r--r--content/blog/Rust-is-not-a-good-C-replacement.md129L
-rw-r--r--content/blog/Self-hosted-livestreaming.md191L
-rw-r--r--content/blog/Shell-literacy.gmi115L
-rw-r--r--content/blog/Shell-literacy.md170L
-rw-r--r--content/blog/Should-you-move-to-sr.ht.md54L
-rw-r--r--content/blog/Shut-up-and-get-back-to-work-style.md61L
-rw-r--r--content/blog/Signal.md202L
-rw-r--r--content/blog/Simple-correct-fast.md48L
-rw-r--r--content/blog/Slow.md543L
-rw-r--r--content/blog/Smarter-every-day-and-4privacy.md196L
-rw-r--r--content/blog/Social-and-parasocial-media.md56L
-rw-r--r--content/blog/Spamtoberfest.gmi83L
-rw-r--r--content/blog/Spamtoberfest.md95L
-rw-r--r--content/blog/Spooky-code-at-a-distance.gmi49L
-rw-r--r--content/blog/Spooky-code-at-a-distance.md85L
-rw-r--r--content/blog/Spooky.gmi17L
-rw-r--r--content/blog/Spooky.md5L
-rw-r--r--content/blog/Starship.gmi48L
-rw-r--r--content/blog/Starship.md5L
-rw-r--r--content/blog/State-of-Sway-August-2017.md63L
-rw-r--r--content/blog/State-of-sway-April-2016.md117L
-rw-r--r--content/blog/State-of-sway-April-2017.md82L
-rw-r--r--content/blog/State-of-sway-December-2015.md117L
-rw-r--r--content/blog/State-of-sway.md122L
-rw-r--r--content/blog/Status-update-April-2019.md94L
-rw-r--r--content/blog/Status-update-April-2020.md68L
-rw-r--r--content/blog/Status-update-April-2021.gmi40L
-rw-r--r--content/blog/Status-update-April-2021.md60L
-rw-r--r--content/blog/Status-update-April-2022.md104L
-rw-r--r--content/blog/Status-update-August-2019.md79L
-rw-r--r--content/blog/Status-update-August-2021.md39L
-rw-r--r--content/blog/Status-update-August-2022.md34L
-rw-r--r--content/blog/Status-update-December-2019.md84L
-rw-r--r--content/blog/Status-update-December-2020.gmi17L
-rw-r--r--content/blog/Status-update-December-2020.md51L
-rw-r--r--content/blog/Status-update-December-2021.gmi13L
-rw-r--r--content/blog/Status-update-December-2021.md43L
-rw-r--r--content/blog/Status-update-February-2020.md58L
-rw-r--r--content/blog/Status-update-February-2021.gmi111L
-rw-r--r--content/blog/Status-update-February-2021.html64L
-rw-r--r--content/blog/Status-update-February-2022.md64L
-rw-r--r--content/blog/Status-update-January-2020.md71L
-rw-r--r--content/blog/Status-update-January-2021.gmi12L
-rw-r--r--content/blog/Status-update-January-2021.html101L
-rw-r--r--content/blog/Status-update-January-2022.gmi19L
-rw-r--r--content/blog/Status-update-January-2022.md60L
-rw-r--r--content/blog/Status-update-July-2019.md90L
-rw-r--r--content/blog/Status-update-July-2020.md84L
-rw-r--r--content/blog/Status-update-July-2021.gmi42L
-rw-r--r--content/blog/Status-update-July-2021.md70L
-rw-r--r--content/blog/Status-update-July-2022.md64L
-rw-r--r--content/blog/Status-update-June-2019.md105L
-rw-r--r--content/blog/Status-update-June-2020.md97L
-rw-r--r--content/blog/Status-update-June-2021.md49L
-rw-r--r--content/blog/Status-update-June-2022.md66L
-rw-r--r--content/blog/Status-update-March-2019.md137L
-rw-r--r--content/blog/Status-update-March-2021.gmi99L
-rw-r--r--content/blog/Status-update-March-2021.md64L
-rw-r--r--content/blog/Status-update-March-2022.md158L
-rw-r--r--content/blog/Status-update-May-2019.md113L
-rw-r--r--content/blog/Status-update-May-2020.md73L
-rw-r--r--content/blog/Status-update-May-2021.gmi45L
-rw-r--r--content/blog/Status-update-May-2021.md66L
-rw-r--r--content/blog/Status-update-May-2022.md133L
-rw-r--r--content/blog/Status-update-November-2019.md64L
-rw-r--r--content/blog/Status-update-November-2020.gmi100L
-rw-r--r--content/blog/Status-update-November-2020.md120L
-rw-r--r--content/blog/Status-update-November-2021.gmi11L
-rw-r--r--content/blog/Status-update-November-2021.md40L
-rw-r--r--content/blog/Status-update-October-2019.md106L
-rw-r--r--content/blog/Status-update-October-2020.gmi28L
-rw-r--r--content/blog/Status-update-October-2020.md72L
-rw-r--r--content/blog/Status-update-October-2021.gmi19L
-rw-r--r--content/blog/Status-update-October-2021.md74L
-rw-r--r--content/blog/Status-update-October-2022.md152L
-rw-r--r--content/blog/Status-update-September-2019.md97L
-rw-r--r--content/blog/Status-update-September-2020.md36L
-rw-r--r--content/blog/Status-update-September-2021.gmi16L
-rw-r--r--content/blog/Status-update-September-2021.md51L
-rw-r--r--content/blog/Status-update-September-2022.md33L
-rw-r--r--content/blog/Status-update.md129L
-rw-r--r--content/blog/Stepping-away-from-Gemini.gmi13L
-rw-r--r--content/blog/Stepping-away-from-Gemini.md5L
-rw-r--r--content/blog/Stress-and-happiness.md144L
-rw-r--r--content/blog/Supply-chain-when-will-we-learn.md102L
-rw-r--r--content/blog/Sustainable-creativity-post-copyright.gmi24L
-rw-r--r--content/blog/Sustainable-creativity-post-copyright.md92L
-rw-r--r--content/blog/Sway-0.9-in-retro.md112L
-rw-r--r--content/blog/Sway-1.0-highlights.md151L
-rw-r--r--content/blog/Sway-1.0-released.md93L
-rw-r--r--content/blog/Sway-and-client-side-decorations.md47L
-rw-r--r--content/blog/Sway-wlroots-at-XDC-2018.md77L
-rw-r--r--content/blog/TOTP-is-easy.md107L
-rw-r--r--content/blog/Terminal-emulation-legacy.gmi105L
-rw-r--r--content/blog/Terminal-emulation-legacy.md5L
-rw-r--r--content/blog/The-Netherlands.gmi25L
-rw-r--r--content/blog/The-Netherlands.md83L
-rw-r--r--content/blog/The-case-against-fork.md124L
-rw-r--r--content/blog/The-forbidden-topics.md171L
-rw-r--r--content/blog/The-last-years.md165L
-rw-r--r--content/blog/The-next-YAML.gmi49L
-rw-r--r--content/blog/The-next-YAML.md89L
-rw-r--r--content/blog/The-next-chat-app.gmi23L
-rw-r--r--content/blog/The-next-chat-app.md116L
-rw-r--r--content/blog/The-potential-of-federation.md81L
-rw-r--r--content/blog/The-problem-with-Python-3.md151L
-rw-r--r--content/blog/The-profitability-of-online-services.md104L
-rw-r--r--content/blog/The-rc-shell-and-whitespace.md179L
-rw-r--r--content/blog/The-road-to-sustainable-FOSS.md123L
-rw-r--r--content/blog/The-worlds-dumbest-IRC-bot.gmi97L
-rw-r--r--content/blog/The-worlds-dumbest-IRC-bot.md144L
-rw-r--r--content/blog/The-worst-bugs.md183L
-rw-r--r--content/blog/The-wrong-words-but-the-right-ideas.md83L
-rw-r--r--content/blog/Thoughts-on-performance.md87L
-rw-r--r--content/blog/To-make-money-in-FOSS-build-a-business.gmi13L
-rw-r--r--content/blog/To-make-money-in-FOSS-build-a-business.md48L
-rw-r--r--content/blog/Try-not-to-make-unlikable-software.md47L
-rw-r--r--content/blog/Understanding-pointers.md283L
-rw-r--r--content/blog/Use-me-as-a-resource.gmi14L
-rw-r--r--content/blog/Use-me-as-a-resource.md33L
-rw-r--r--content/blog/Use-open-platforms-or-else.gmi13L
-rw-r--r--content/blog/Use-open-platforms-or-else.md63L
-rw-r--r--content/blog/Use-the-right-tool.md53L
-rw-r--r--content/blog/Using-Wl-wrap-for-mocking-in-C.md123L
-rw-r--r--content/blog/Using-cage-for-a-seamless-RDP-Wayland-desktop.md65L
-rw-r--r--content/blog/Using-git-with-discipline.md114L
-rw-r--r--content/blog/Utility-vs-usability.gmi17L
-rw-r--r--content/blog/Utility-vs-usability.md58L
-rw-r--r--content/blog/Vendor-purpose-OS.md47L
-rw-r--r--content/blog/Wayland-misconceptions-debunked.md237L
-rw-r--r--content/blog/Wayland-shells.md242L
-rw-r--r--content/blog/We-are-complicit-in-our-employers-deeds.md67L
-rw-r--r--content/blog/Web-browsers-need-to-stop.md43L
-rw-r--r--content/blog/What-desktop-Linux-needs.md147L
-rw-r--r--content/blog/What-is-Gemini-anyway.gmi69L
-rw-r--r--content/blog/What-is-Gemini-anyway.md135L
-rw-r--r--content/blog/What-is-a-fork.md128L
-rw-r--r--content/blog/What-motivates-the-authors-of-the-software-you-use.md55L
-rw-r--r--content/blog/When-not-to-use-a-regex.md79L
-rw-r--r--content/blog/Why-Go-error-handling-doesnt-sit-right-with-me.md113L
-rw-r--r--content/blog/Why-I-built-sr.ht-with-Flask.md81L
-rw-r--r--content/blog/Why-I-use-old-hardware.md58L
-rw-r--r--content/blog/Why-am-I-working-in-private.gmi30L
-rw-r--r--content/blog/Why-am-I-working-in-private.md129L
-rw-r--r--content/blog/Why-rewrite-wlc.md93L
-rw-r--r--content/blog/Writing-a-Wayland-compositor-1.md384L
-rw-r--r--content/blog/Writing-a-wayland-compositor-part-2.md170L
-rw-r--r--content/blog/Writing-a-wayland-compositor-part-3.md252L
-rw-r--r--content/blog/You-cant-capture-the-nuance.md133L
-rw-r--r--content/blog/You-dont-need-jQuery.md147L
-rw-r--r--content/blog/Your-VPN-is-a-serious-choice.md98L
-rw-r--r--content/blog/aerc-with-mbsync-postfix.md117L
-rw-r--r--content/blog/awk-is-the-coolest-tool-you-dont-know.gmi166L
-rw-r--r--content/blog/awk-is-the-coolest-tool-you-dont-know.md5L
-rw-r--r--content/blog/bleh.md66L
-rw-r--r--content/blog/cozy-devnotes-machine-specs.md296L
-rw-r--r--content/blog/dotfiles.md95L
-rw-r--r--content/blog/dotorg.md121L
-rw-r--r--content/blog/finger-client.gmi49L
-rw-r--r--content/blog/finger-client.md82L
-rw-r--r--content/blog/free-software-free-infrastructure.md142L
-rw-r--r--content/blog/generating-ioctls.md514L
-rw-r--r--content/blog/git-snail-mail.md160L
-rw-r--r--content/blog/godocs.io-six-months-later.gmi15L
-rw-r--r--content/blog/godocs.io-six-months-later.md39L
-rw-r--r--content/blog/godocs.io.gmi21L
-rw-r--r--content/blog/godocs.io.md18L
-rw-r--r--content/blog/goproxy-breaks-go.md72L
-rw-r--r--content/blog/hare-ssh.md939L
-rw-r--r--content/blog/helios.md93L
-rw-r--r--content/blog/how-to-fuck-up-releases.md73L
-rw-r--r--content/blog/io_uring-finger-server.gmi635L
-rw-r--r--content/blog/io_uring-finger-server.md871L
-rw-r--r--content/blog/osuweb.md525L
-rw-r--r--content/blog/pkg-go-dev-sucks.md72L
-rw-r--r--content/blog/pmOS-on-xiaomi-poco-f1.md153L
-rw-r--r--content/blog/postmarketos.md74L
-rw-r--r--content/blog/powerctl-a-hare-case-study.md251L
-rw-r--r--content/blog/scdoc.md51L
-rw-r--r--content/blog/skytree.gmi29L
-rw-r--r--content/blog/skytree.md5L
-rw-r--r--content/blog/sourcehut-design.md79L
-rw-r--r--content/blog/sr.ht-general-availability.md113L
-rw-r--r--content/blog/stalebot.md57L
-rw-r--r--content/blog/tar-is-good-actually.gmi54L
-rw-r--r--content/blog/tar-is-good-actually.md5L
-rw-r--r--content/blog/visurf-announcement.gmi34L
-rw-r--r--content/blog/visurf-announcement.md87L
-rw-r--r--content/blog/wlroots-whitepaper-available.md8L
-rw-r--r--content/dynlib.html369L
-rw-r--r--content/editing.html99L
-rw-r--r--content/gemini.md15L
-rw-r--r--content/gmni.gmi16L
-rw-r--r--content/gmnisrv.gmi34L
-rw-r--r--content/ideas.md59L
-rw-r--r--content/japanese.md288L
-rw-r--r--content/kineto.gmi7L
-rw-r--r--content/make-a-blog.md105L
-rw-r--r--content/misc.md29L
-rw-r--r--content/new-server.html214L
-rw-r--r--content/new-sysadmin-lecture.md39L
-rw-r--r--content/pinebook.html190L
-rw-r--r--content/talks/cryptocurrency.md27L
-rw-r--r--content/talks/foss-and-money.md25L
-rw-r--r--content/talks/foss-contributors-mindset.md35L
-rw-r--r--content/talks/foss-contributors-mindset.pdf243928B
-rw-r--r--content/talks/hare.md27L
-rw-r--r--content/talks/himitsu.md22L
-rw-r--r--content/talks/qbe.md29L
-rw-r--r--content/talks/sourcehut-ci.md24L
-rw-r--r--content/time.html54L
-rw-r--r--layouts/_default/section.gemrss.xml44L
-rw-r--r--layouts/_default/single.html11L
-rw-r--r--layouts/blog/rss.xml41L
-rw-r--r--layouts/blog/section.html10L
-rw-r--r--layouts/blog/single.gmi17L
-rw-r--r--layouts/blog/single.html20L
-rw-r--r--layouts/index.gmi13L
-rw-r--r--layouts/index.html48L
-rw-r--r--layouts/partials/foot.html6L
-rw-r--r--layouts/partials/head.html14L
-rw-r--r--layouts/partials/webring-out.html73L
-rw-r--r--static/DEC_VT100_terminal.jpg2063016B
-rw-r--r--static/anki/JLPT-N1-5.apkg1245402B
-rw-r--r--static/anki/JLPT-N1.apkg1245402B
-rw-r--r--static/anki/JLPT-N2-5.apkg864474B
-rw-r--r--static/anki/JLPT-N2.apkg864474B
-rw-r--r--static/anki/JLPT-N3-5.apkg925914B
-rw-r--r--static/anki/JLPT-N3.apkg925914B
-rw-r--r--static/anki/JLPT-N4-5.apkg401626B
-rw-r--r--static/anki/JLPT-N4.apkg401626B
-rw-r--r--static/anki/JLPT-N5.apkg372954B
-rw-r--r--static/anki/astronomy.apkg65754B
-rw-r--r--static/anki/common-vocab.apkg6013146B
-rw-r--r--static/anki/comp.apkg90330B
-rw-r--r--static/anki/counter-vocab-full.apkg53466B
-rw-r--r--static/anki/counter-vocab.apkg53466B
-rw-r--r--static/anki/linguistic-vocab-full.apkg381146B
-rw-r--r--static/anki/linguistic-vocab.apkg86234B
-rw-r--r--static/anki/music.apkg57562B
-rw-r--r--static/avatar-148.jpg13203B
-rw-r--r--static/avatar-148.png40450B
-rw-r--r--static/avatar-512.png357508B
-rw-r--r--static/avatar.png9221B
-rw-r--r--static/pie.jpg3552224B
-rw-r--r--static/publickey.txt87L
-rw-r--r--static/time.css171L
-rw-r--r--static/video-js.css1234L
-rw-r--r--static/video.js22383L
-rw-r--r--webring-in.template23L