TQ dev.com
tqdev.com · Personal blog · on HN since 2016
A developer's blog on practical web and server topics, including PHP, Go, LUKS disk encryption, APIs and software practices.
What HN saysHN commenters link it for how-to guides such as LUKS-encrypted servers on Hetzner and audio fixes, and for an essay on the CAP theorem.
16HN people shared it
4linked it in comments
32stories submitted
136story points
9 months agolast shared
2016people per year2026
Most-shared posts
- 1The “Boring Software” manifesto3 people · 77 points · first shared 2018 · 58 comments on HN
- 2Gophercon 2017 – videos online2 people · 3 points · first shared 2017 · discussion on HN
- 3NoOps: Developer operations manifesto1 people · 8 points · first shared 2016 · 4 comments on HN
- 4LUKS with USB unlock (and passphrase fallback)1 people · 4 points · first shared 2022 · discussion on HN
- 57 web development practices challenged1 people · 4 points · first shared 2019 · discussion on HN
- 6PostgREST, LoopBack, DreamFactory and other reflective APIs1 people · 3 points · first shared 2016 · discussion on HN
- 7JavaScript is too expensive to use1 people · 3 points · first shared 2016 · discussion on HN
- 8Porting PHP-CRUD-API to C#1 people · 3 points · first shared 2016 · 1 comments on HN
- 9A tiny polymer clone: w3component.js1 people · 3 points · first shared 2016 · discussion on HN
- 10High frequency metrics in PHP using TCP sockets1 people · 2 points · first shared 2024 · discussion on HN
- 11Building micro-services in Java1 people · 2 points · first shared 2018 · discussion on HN
- 12Scaling to 1M WebSockets in PHP1 people · 2 points · first shared 2024 · discussion on HN
- 13'Fork me on GitHub' SVG ribbons (10 years later)1 people · 2 points · first shared 2019 · discussion on HN
- 14The myth of the “right tool for the job”1 people · 2 points · first shared 2017 · 1 comments on HN
- 15XSS and CSRF mitigation, best practices1 people · 2 points · first shared 2016 · discussion on HN
What HN people wrote when they linked it
yread · 2026-02-20
I'm actually just looking into LUKS on Hetzner.
I've found this - how to do it without ever entrusting any encryption key to Hetzner
https://www.tqdev.com/2023-luks-encrypted-debian-12-server-hetzner/
But it seems like way too much work
There is this easy tutorial (that for some reason disappeared)
https://web.archive.org/web/20260128114859/https://community.hetzner.c…
and this on how to get an email when you need to unlock it via SSH
https://dominik.wombacher.cc/posts/email_notification_to_unlock_luks_e…
kruffin · 2025-02-16
When I had this issue, it was fixed by disabling and removing the speech-dispatcher. Something to do with text to speech (I never use it but is sure to be a pain if you do need it) automatically doing things that corrupt the audio stream globally.
https://tqdev.com/2021-firefox-ubuntu-crackling-sound
btown · 2024-11-26
https://tqdev.com/2024-the-p-in-cap-is-for-performance is a really interesting take on this as a response to https://blog.dtornow.com/the-cap-theorem.-the-bad-the-bad-the-ugly/ - essentially, the only way to get CA is if you're willing to say that every request will succeed eventually, but it might take an unbounded amount of time for partitions to heal, and you have to be willing to wait indefinitely for that to happen. Which can indeed make sense for asynchronous messaging, but not for real-time applications as we think about them in the modern day. In practice, if you're talking about CAP for high-performance systems, you're choosing either CP or AP.
jedimastert · 2021-02-23
It's not necessarily bad, but there's plenty of steps to automate away, with two ideas:
* You can use your production server as a "git server" without basically any overhead
* You can set up scripts that run on git events.
Basically, you can push directly to your production server and then deploy using that those event listeners
Here's a better explainer
https://tqdev.com/2018-deploying-with-git-push-to-production
As for having to reboot your server every time, I have no idea, although that seems like a long time. I'd expect less than a minute, but I don't know much about django