T

Thea Flowers

blog.thea.codes · Personal blog · on HN since 2019

Thea Flowers is a software and hardware engineer who writes about Python, embedded systems, synthesizers, and running a small hardware company.

What HN saysHN commenters link her network namespace VPN guide and her reply to Josef Prusa on open source, and list her among favorite blogs.
38HN people shared it
10linked it in comments
40stories submitted
1.9Kstory points
2 months agolast shared
2019people per year2026

Most-shared posts

  1. 1
    The most thoroughly commented linker script (probably)
    9 people · 35 points · first shared 2021 · 3 comments on HN
  2. 2
    The Design of the Roland Juno Syntheziser's Oscillators
    4 people · 288 points · first shared 2020 · 81 comments on HN
  3. 3
  4. 4
    A Reply to Josef Prusa
    4 people · 2 points · first shared 2023 · discussion on HN
  5. 5
    Building a Stateless API Proxy
    3 people · 153 points · first shared 2019 · 53 comments on HN
  6. 6
  7. 7
    My Python testing style guide (2017)
    2 people · 205 points · first shared 2021 · 84 comments on HN
  8. 8
    Using Python to vectorize artwork for PCBs
    2 people · 38 points · first shared 2022 · 4 comments on HN
  9. 9
    Designing Winterbloom's Big Honking Button
    2 people · 5 points · first shared 2021 · discussion on HN
  10. 10
    Designing Winterbloom's Castor and Pollux
    2 people · 3 points · first shared 2021 · discussion on HN
  11. 11
    Nordvpn wireguard namespaces
    2 people · first shared 2025
  12. 12
    Homepage
    2 people · first shared 2021
  13. 13
    Creating a pick and place control board with the RP2040
    1 people · 185 points · first shared 2022 · 23 comments on HN
  14. 14
    Fixing the wrong bug to discover the right one (2014)
    1 people · 7 points · first shared 2022 · discussion on HN
  15. 15
    Prusa Has Learned Nothing
    1 people · 4 points · first shared 2024 · discussion on HN

What HN people wrote when they linked it

simonw · 2021-09-08
Agreed, this is an infuriating limitation of PATs - I would desperately like to be able to create a PAT with much more finely grained permissions - can only trigger this single REST API for this specific repo for example. There's a brilliant trick for doing that described here but it's a lot of work to setup: https://blog.thea.codes/building-a-stateless-api-proxy/ You can also create a brand new GitHub user account, grant it access to just a single repository and then create a PAT for that user account - annoying but it does at least let you scope down the permissions a bit.
yjftsjthsd-h · 2025-12-19
Can you use user namespaces to create a network namespace with the VPN active and stick applications in that namespace? From a quick search, https://blog.thea.codes/nordvpn-wireguard-namespaces/ sees to have at least the bones of a decent solution, though I've not had a chance to dig very far. A lot of results use root to set up the namespace, but I was pretty sure that shouldn't be needed with a new kernel and user namespaces enabled
the8472 · 2025-09-17
network namespaces provide a clean host/vpn split. https://blog.thea.codes/nordvpn-wireguard-namespaces/
guiambros · 2025-01-06
Here's a few more, from my Feedly: Julia Evans - https://jvns.ca/ Fabien Sanglard - https://fabiensanglard.net/ Rachel - http://rachelbythebay.com/w/ Bruce Eckel - https://bruceeckel.substack.com/ (old blog @ https://www.bruceeckel.com/) Blobs in Games - https://simblob.blogspot.com/ Astrid dot tech - https://astrid.tech/ Brendan Gregg - https://www.brendangregg.com/blog/ Stargirl Flowers - https://blog.thea.codes/
533474 · 2024-11-20
musingsole · 2023-04-02
This response references Thea Flowers' response: https://blog.thea.codes/a-reply-to-josef-prusa/ Prusa exists in what I hope is a time of transition from capital/ownership mindsets into a new type of open market. Wanting to straddle the fence in the name of profits shows once again Prusa only partially understand the movement they benefit from and namecheck frequently. Comparing Prusa to Marc Jacobs to emphasize the brand over the product is genius.
bengtan · 2021-05-28
Hi, I come across a lot of blogs when I curate for my newsletter Interesting Things [1]. Just looking through the links that have been curated in the past month or so, I would suggest: Tech - https://wasteofserver.com/ - https://tonsky.me/ - https://brianschrader.com/ - https://blog.thea.codes/ - https://fasterthanli.me/ - https://jvns.ca/ - https://blog.royalsloth.eu/ Non-tech - https://www.drorpoleg.com/ - About work and society - https://staysaasy.com/ - About tech work - https://www.nateliason.com/ - About life in general - https://andymatuschak.org/ - https://craigmod.com/ - https://perell.com/ And, of course, shameless plug: https://bengtan.com ---- [1] https://bengtan.com/interesting-things
gus_massa · 2021-01-14
Nice post. The info is in https://blog.thea.codes/the-most-thoroughly-commented-linker-script/ (by the same author)
type0 · 2021-01-01
> I dunno... I disagree with the assertion that the DX7 was the synth that made synth music mainstream. For a polyphonic synth though it was a game-changer, it did make it affordable, but so did sh-101 and countless other synths but those weren't polyphonic. Roland Juno could be said, it wasn't revolutionary but more evolutionary in electronic music making. Here's a good article on DCO vs VCO https://blog.thea.codes/the-design-of-the-juno-dco/ and recent discussion here: https://news.ycombinator.com/item?id=25598656
mierle · 2022-03-06
The key to understanding ELF is that it serves three purposes: (1) Execution - A container describing how an OS can load and execute a binary (2) Linking - A container with relocatable machine code; for the linker to assemble (3) Metadata for debugging and other purposes like stack traces Program headers describe "segments". Segments are for the execution time view of the ELF. They describe the parts of the file to load into memory regions, and the execution entry address. The program headers are what are read by the OS when running "./my_executable". The segments don't always have names. Also, it is confusing that "sections" and "segments" mean very different things, but that's just how it is. Thus, program headers (and the segments they describe) are for #1 - Execution. Sections are a link-time construct, leveraged by the linker, to decide how to allocate functions and data to the execution segments (via sections). Intermediate ELF object files contain relocatable code, where the code is allocated to sections (you can manually specify them if you want). Example sections include ".text", which is executable code; ".bss" which is zero-initialized static variables; ".data" which is pre-initialized static variables, and so on. You can see an example of sections being allocated to segments in this thoroughly described linker script [1]. Sections are mostly ignored during program execution. Thus, section headers (and the sections they describe) are for #2 - Linking. You…

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close