The Curious Engineer

All blogs / Linux / Unix

Drew DeVault's blog

drewdevault.com

Drew DeVault's blog - Blog

Linux / UnixSociety / politics / economySoftware / engineering practiceOS / kernelEngineering blogs

Posts
397 from 11 Dec 2010 to 23 Sep 2026
Posting
monthly (14 in the last year)
Kind
personal blog
Feed
https://drewdevault.com/blog/index.xml

2026 13

  1. Why is Hacker News like that?
  2. AI in Linux
  3. The circus freaks of open source
  4. Vim Classic 8.3.0 released
  5. New blog design
  6. Add an LLM policy for rust-lang/rust
  7. I can't cancel GitHub Copilot
  8. Addressing the harassment
  9. Rewrote my blog with Zine
  10. tar: a slop-free alternative to rsync
  11. A eulogy for Vim
  12. The cults of TDD and GenAI
  13. Redesigning my microkernel from the ground up

2025 17

  1. OpenAI employees… are you okay?
  2. What's up with FUTO?
  3. Cloudflare bankrolls fascists
  4. A better future for JavaScript that won't happen
  5. Embedding Wren in Hare
  6. What's new with Himitsu 0.9?
  7. Just speak the truth
  8. Unionize or die
  9. The British Airways position on various border disputes
  10. Resistance from the tech sector
  11. A Firefox addon for putting prices into perspective
  12. Using linkhut to signal-boost my bookmarks
  13. Please stop externalizing your costs directly into my face
  14. A holistic perspective on intellectual property, part 1
  15. Join us to discuss transparency and governance at FOSDEM '25
  16. FOSDEM '25 protest
  17. No billionaires at FOSDEM

2024 6

  1. Neurodivergence and accountability in free software
  2. Rust for Linux revisited
  3. So you want to compete with or replace open source
  4. Writing a Unix clone in about a month
  5. Copyleft licenses are not “restrictive”
  6. FDO's conduct enforcement actions regarding Vaxry

2023 27

  1. Why Prusa is floundering, and how you can avoid their fate
  2. Richard Stallman's political discourse on sex
  3. Can I be on your podcast?
  4. On "real name" policies
  5. Going off-script
  6. The forbidden topics
  7. Hyprland is a toxic community
  8. AI crap
  9. Hello from Ares!
  10. The rc shell and its excellent handling of whitespace
  11. Alpine Linux does not make the news
  12. Seriously, don't sign a CLA
  13. Social media and "parasocial media"
  14. Burnout and the quiet failures of the hacker community
  15. Reforming the free software message
  16. Throwing in the towel on mobile Linux
  17. How to go to war with your employer
  18. Burnout
  19. Who should lead us?
  20. rc: a new shell for Unix
  21. The Free Software Foundation is dying
  22. Writing Helios drivers in the Mercury driver environment
  23. When to comment that code
  24. Porting Helios to aarch64 for my FOSDEM talk, part one
  25. Should private platforms engage in censorship?
  26. My plans at FOSDEM: SourceHut, Hare, and Helios
  27. Setting a new focus for my blog

2022 51

  1. I shall toil at a reduced volume
  2. Codegen in Hare v2
  3. In praise of Plan 9
  4. Notes from kernel hacking in Hare, part 3: serial driver
  5. TOTP for 2FA is incredibly easy to implement. So what's your excuse?
  6. Status update, October 2022
  7. In praise of ffmpeg
  8. Does Rust belong in the Linux kernel?
  9. Notes from kernel hacking in Hare, part 2: multi-threading
  10. The phrase "open source" (still) matters
  11. Status update, September 2022
  12. Notes from kernel hacking in Hare, part 1
  13. In praise of qemu
  14. powerctl: A small case study in Hare for systems programming
  15. A review of postmarketOS on the Xiaomi Poco F1
  16. PINE64 has let its community down
  17. Status update, August 2022
  18. How I wish I could organize my thoughts
  19. Conciseness
  20. Code review at the speed of email
  21. The past and future of open hardware
  22. Status update, July 2022
  23. The Fediverse can be pretty toxic
  24. Porting Doom to Helios
  25. GitHub Copilot and open source laundering
  26. Introducing the Himitsu keyring & password manager for Unix
  27. Status update, June 2022
  28. The Helios microkernel
  29. Bleh
  30. Google has been DDoSing SourceHut for over a year
  31. Status update, May 2022
  32. A Hare code generator for finding ioctl numbers
  33. When will we learn?
  34. Implementing an SSH agent in Hare
  35. Announcing the Hare programming language
  36. Status update, April 2022
  37. Announcing git snail-mail
  38. It is important for free software to use free software infrastructure
  39. The Netherlands so far
  40. Status update, March 2022
  41. It takes a village
  42. Why am I building a programming language in private?
  43. Open Source is defined by the OSI's Open Source Definition
  44. Plaid is an evil nightmare product from Security Hell
  45. Status update, February 2022
  46. Framing accessibility in broader terms
  47. Free software licenses explained: MIT
  48. Implementing a MIME database in XXXX
  49. Pine64 should re-evaluate their community priorities
  50. Status update, January 2022
  51. The RISC-V experience

2021 69

  1. Breaking down a small language design proposal
  2. Please don't use Discord for FOSS projects
  3. Please use me as a resource
  4. Sustainable creativity in a world without copyright
  5. On commercial forks of FOSS projects
  6. Status update, December 2021
  7. Impressions of Linux Mint & elementary OS
  8. How new Linux users can increase their odds of success
  9. What desktop Linux needs to succeed in the mainstream
  10. postmarketOS revolutionizes smartphone hacking
  11. My philosophy for productive instant messaging
  12. I will pay you cash to delete your npm module
  13. Python: Please stop screwing over Linux distros
  14. Status update, November 2021
  15. Breaking down Apollo Federation's anti-FOSS corporate gaslighting
  16. GitHub stale bot considered harmful
  17. How SmarterEveryDay's 4privacy can, and cannot, meet its goals
  18. Software developers have stopped caring about reliability
  19. Status update, October 2021
  20. How reflection works in Hare
  21. Developers: Let distros do their job
  22. Nitter and other Internet reclamation projects
  23. Status update, September 2021
  24. visurf, a web browser based on NetSurf
  25. Status update, August 2021
  26. Tips for debugging your new programming language
  27. Police to begin regular, warrant-free searches of homes for child abuse material
  28. proxy.golang.org allows many Go packages to be silently broken
  29. In praise of PostgreSQL
  30. My wish-list for the next YAML
  31. Status update, July 2021
  32. Is GitHub a derivative work of GPL'd software?
  33. How does IRC's federation model compare to ActivityPub?
  34. You can't capture the nuance of my form fields
  35. A finger client
  36. Status update, June 2021
  37. Provided "as is", without warranty of any kind
  38. I will be moving to the Netherlands
  39. Build your project in our new language
  40. Using io_uring to make a high-performance... finger server
  41. How to write release notes
  42. aerc, mbsync, and postfix for maximum comfy offline email
  43. Status update, May 2021
  44. Pinebook Pro review
  45. I try not to make unlikable software (and features)
  46. godocs.io six months later
  47. In praise of Alpine Linux
  48. Cryptocurrency is an abject disaster
  49. Parsers all the way down: writing a self-hosting parser
  50. Status update, April 2021
  51. The Developer Certificate of Origin is a great alternative to a CLA
  52. What should the next chat app look like?
  53. Go is a great programming language
  54. The world's stupidest IRC bot
  55. The complete guide for open sourcing video games
  56. We are building a new systems programming language
  57. Status update, March 2021
  58. The corporate surveillance machine is killing people
  59. To make money in FOSS, build a business first
  60. Gmail is a huge source of spam
  61. A great alternative is rarely fatter than what it aims to replace
  62. How to make your downstream users happy
  63. Use open platforms — or else
  64. Open source means surrendering your monopoly over commercial exploitation
  65. Elasticsearch does not belong to Elastic
  66. Spooky action at a distance
  67. History will not remember us fondly
  68. Fostering a culture that values stability and reliability
  69. A megacorp is not your dream job

2020 56

  1. How to design a new programming language from scratch
  2. godocs.io is now available
  3. Status update, December 2020
  4. Become shell literate
  5. Web analytics should at least meet the standards of informed consent
  6. A few ways to make money in FOSS
  7. We can do better than DuckDuckGo
  8. Status update, November 2020
  9. Utility vs usability
  10. What is this Gemini thing anyway, and why am I excited about it?
  11. I'm handing over maintenance of wlroots and sway to Simon Ser
  12. Firefox: The Jewel^WEmbarassment of Open Source
  13. Status update, October 2020
  14. Four principles of software engineering
  15. Spamtoberfest
  16. A tale of two libcs
  17. TOFU recommendations for Gemini
  18. The unrealized potential of federation
  19. Status update, September 2020
  20. Linux development is distributed - profoundly so
  21. Linux development is distributed - profoundly so
  22. Embrace, extend, and finally extinguish - Microsoft plays their hand
  23. Software engineers solve problems
  24. Status update, August 2020
  25. Web browsers need to stop
  26. I want to contribute to your project, how do I start?
  27. pkg.go.dev is more concerned with Google's interests than good engineering
  28. The falsehoods of anti-AGPL propaganda
  29. Status update, July 2020
  30. March 2nd, 1943
  31. General-purpose OS, special-purpose OS, and now: vendor-purpose OS
  32. Introducing the BARE message encoding
  33. Status update, June 2020
  34. Can we talk about client-side certificates?
  35. Add a "contrib" directory to your projects
  36. Status update, May 2020
  37. We are complicit in our employer's deeds
  38. How to store data forever
  39. Configuring aerc for git via email
  40. Status update, April 2020
  41. My unorthodox, branchless git workflow
  42. Designing and 3D printing a new part for my truck
  43. The reckless, infinite scope of web browsers
  44. GitHub's new notifications: a case of regressive design
  45. An open letter to Senator Bob Casey on end-to-end encryption
  46. The Abiopause
  47. Thoughts on performance & optimization
  48. Fucking laptops
  49. Status update, February 2020
  50. Dependencies and maintainers
  51. KnightOS was an interesting operating system
  52. The happinesses and stresses of full-time FOSS work
  53. A philosophy of project governance
  54. Status update, January 2020
  55. Following up on "Hello world"
  56. Hello world

2019 51

  1. Managing my dotfiles as a git repository
  2. PinePhone review
  3. Status update, December 2019
  4. Developers shouldn't distribute their own software
  5. Take action to save .org and prosecute those who sold out the internet
  6. Software developers should avoid traumatic changes
  7. China
  8. Status update, November 2019
  9. An old-school shell hack on a line printer
  10. Status update, October 2019
  11. How to fuck up software releases
  12. RaptorCS's redemption: the POWER9 machine works
  13. Why Collabora really added Digital Restrictions Management to Weston
  14. RaptorCS POWER9 Blackbird PC review
  15. Don't sacrifice the right ideas to win the right words
  16. Status update, September 2019
  17. How I decide between many programming languages
  18. Building interactive SSH applications
  19. Shell access for builds.sr.ht CI
  20. Status update, August 2019
  21. DRM leasing: VR for Wayland
  22. FOSS contributor tracks
  23. Status update, July 2019
  24. Announcing code annotations for SourceHut
  25. Absence of certain features in IRC considered a feature
  26. Status update, June 2019
  27. My personal journey from MIT to GPL
  28. Initial pre-release of aerc: an email client for your terminal
  29. What is a fork, really, and how GitHub changed its meaning
  30. Status update, May 2019
  31. Webcast: Reviewing git & mercurial patches with email
  32. Announcing Wio: A clone of Plan 9's Rio for Wayland
  33. The "shut up and get back to work" coding style guide
  34. Using Cage for a seamless remote Wayland session
  35. Choosing a VPN service is a serious decision
  36. Announcing first-class Mercurial support on Sourcehut
  37. Status update, April 2019
  38. NewPipe represents the best of FOSS
  39. Rust is not a good C replacement
  40. Status update, March 2019
  41. Announcing the release of sway 1.0
  42. Sourcehut's spartan approach to web design
  43. Tips for a disciplined git workflow
  44. Generics aren't ready for Go
  45. Wayland misconceptions debunked
  46. My experiences at FOSDEM 2019
  47. Why I chose Flask to build sr.ht's mini-services
  48. Why I use old hardware
  49. I'm going to work full-time on free software
  50. Backups & redundancy at sr.ht
  51. Patches welcome

2018 41

  1. Anatomy of a shell
  2. Porting Alpine Linux to RISC-V
  3. How to abandon a FLOSS project
  4. sr.ht, the hacker's forge, now open for public alpha
  5. It's not okay to pretend your software is open source
  6. How does virtual memory work?
  7. Sway 1.0-beta.1 release highlights
  8. Go 1.11 got me to stop ignoring Go
  9. Don't sign a CLA
  10. Sway & wlroots at XDC 2018
  11. Getting started with qemu
  12. Conservative web development
  13. How to make a self-hosted video livestream
  14. The Commons Clause will destroy open source
  15. I don't trust Signal
  16. Setting up a local dev mail server
  17. Writing a Wayland compositor with wlroots: shells
  18. Git is already federated & decentralized
  19. Input handling in wlroots
  20. Simple, correct, fast: in that order
  21. The advantages of an email-driven git workflow
  22. A quick review of my Let's Encrypt setup
  23. Should you move from GitHub to sr.ht
  24. How I maintain FOSS projects
  25. Embedding files in C programs with koio
  26. Why did we replace wlc?
  27. Introducing scdoc, a man page generator
  28. Redirecting stderr of a running process
  29. Google embraces, extends, and extinguishes
  30. Sway reporting in from KDE's Berlin development sprint
  31. Achtung! Decentralize, decentralize, decentralize!
  32. Hack everything without fear
  33. How to write an IRC bot
  34. The path to sustainably working on FOSS full-time
  35. Writing a Wayland Compositor, Part 2: Rigging up the server
  36. Writing a Wayland Compositor, Part 1: Hello wlroots
  37. The last years
  38. Introduction to POSIX shell
  39. Sway and client side decorations
  40. Learn about your package manager
  41. fork is not my favorite syscall

2017 23

  1. wlroots whitepaper available
  2. Firefox is on a slippery slope
  3. A history of emergent intelligence
  4. On taking good care of your phone
  5. Portability matters
  6. Nvidia sucks and I'm sick of it
  7. The future of Wayland, and sway's role in it
  8. Analyzing HN moderation & censorship
  9. Killing ants with nuclear weapons
  10. When not to use a regex
  11. State of Sway August 2017
  12. Archive it or you will miss it
  13. An introduction to Wayland
  14. Limited "generics" in C without macros or UB
  15. Rotating passwords in bulk in the wake of security events
  16. Building a "real" Linux distro
  17. State of Sway April 2017
  18. MSG_PEEK is pretty common, CVE-2016-10229 is worse than you think
  19. Principles for C programming
  20. Compiler devnotes: Machine specs
  21. Lessons to learn from C
  22. The only problem with Python 3's str is that you don't grok it
  23. Actually, you CAN do it

2016 16

  1. State of Sway December 2016 - secure your Wayland desktop, get paid to work on Sway
  2. A broad intro to networking
  3. Electron considered harmful
  4. Getting on without Google
  5. I'm losing faith in America
  6. Using the right tool for the job
  7. What motivates the authors of the software you use?
  8. Sway 0.9 & One year of Sway
  9. Using -Wl,--wrap for mocking in C
  10. Life, liberty, and the pursuit of privacy
  11. Understanding pointers
  12. In Memoriam - Mozilla
  13. State of Sway - April 2016
  14. How to write a better bloom filter in C
  15. Please use text/plain for email
  16. Integrating a VT220 into my life

2015 5

  1. State of Sway - December 2015
  2. Bring more Tor into your life
  3. Please don't use Slack for FOSS projects
  4. A practical understanding of Flux
  5. Hooks - running stuff on Github hooks

2014 6

  1. On the profitability of image hosting websites
  2. Process scheduling and multitasking in KnightOS
  3. Python's datetime sucks
  4. Go's error handling doesn't sit right with me
  5. Hacking on your TI calculator
  6. The bug that hides from breakpoints

2013 2

  1. Custom Music Syncing on Android
  2. You don't need jQuery

2012 3

  1. Installing Windows 8 - Super-User Guide
  2. LibMinecraft and Partycraft
  3. Minecraft on Mango

2011 10

  1. Miners' Guild Site
  2. Umbraco Certification
  3. Free Software Abounds
  4. The Cheap Way To Fix a GameBoy Game
  5. On the Use of Internet Filtering
  6. Creating an Integrated Development Environment
  7. Redmond with the Microsoft Student Insiders
  8. Post-Session: Windows Phone 7 @ RMTT
  9. Rocky Mountain Tech Trifecta
  10. Colorado Springs Give Camp

2010 1

  1. Everything you want out of WP7