rtpg
rtpg.co · Personal blog · on HN since 2016
Developer rtpg writes about programming topics such as Copilot's types, Python tooling, database indexes, migrations, and TCP sockets.
What HN saysHN links it for practical posts on type systems, effect systems, and zero-downtime data model changes, and commenters discuss its Copilot type analysis.
18HN people shared it
4linked it in comments
40stories submitted
1.0Kstory points
9 months agolast shared
2016people per year2026
Most-shared posts
- 1Trying to Understand Copilot's Type Spaghetti4 people · 80 points · first shared 2024 · 83 comments on HN
- 2Writing Your Own Sudo3 people · 11 points · first shared 2022 · discussion on HN
- 3Black Handles Comments When Python's Grammar Ignores Them3 people · 3 points · first shared 2021 · discussion on HN
- 4The pedantic checklist for changing your data model in a web application2 people · 310 points · first shared 2021 · 98 comments on HN
- 5Precision in Technical Discussions2 people · 92 points · first shared 2022 · 30 comments on HN
- 6DB Indexes Do Not Magically Compose2 people · 7 points · first shared 2024 · 1 comments on HN
- 7Type Unions Don't Always Compose Well2 people · 5 points · first shared 2024 · discussion on HN
- 8My Fractal of Pain from Trying to Do TCP Sockets the First Time2 people · 5 points · first shared 2021 · 1 comments on HN
- 9Writing the Most Boring Quine2 people · 2 points · first shared 2023 · discussion on HN
- 10Supercharged Types2 people · 2 points · first shared 2016 · discussion on HN
- 11I Tried to Reduce Pylint Memory Usage1 people · 249 points · first shared 2020 · 32 comments on HN
- 12Implementing Rust's dbg! in Python1 people · 121 points · first shared 2020 · 49 comments on HN
- 13Checking Out CPython 3.14's remote debugging protocol1 people · 85 points · first shared 2025 · 26 comments on HN
- 14Named Arguments in Rust, If You Want Them1 people · 5 points · first shared 2024 · discussion on HN
- 15A Conjecture About Adversarial Wordle1 people · 3 points · first shared 2022 · discussion on HN
What HN people wrote when they linked it
rtpg · 2024-09-26
The function trait section reminded me about effect systems and Purescripts row polymorphism[0], which is a great little way to be able to encode properties of your functions.
I think Rust might quickly run into the “negative trait” problem trying to get that working, while embracing an effect system like Purescripts might get you the goods in a “principled” way. Though I haven’t thought about this deeply.
[0]: https://rtpg.co/2016/07/20/supercharged-types.html
berdario · 2016-10-14
> typing and scope are obviously independent features
You might want to read about effect systems
http://rtpg.co/2016/07/20/supercharged-types.html
(it might not be the best blog post on the subject theory, but I think it's a nice practical example)
globular-toast · 2024-09-21
There's a little bit more to it. Firstly you can deploy the migration first as long as it's forwards compatible (ie. old code can read from it). That migration needs to be zero downtime; it can't, for example, rewrite whole tables or otherwise lock them, or requests will time out. Doing a whole new schema is one way to do it, but not always necessary. In any case you probably then need a backfill job to fill up the new schema with data before possibly removing the old one.
There's a good post about it here: https://rtpg.co/2021/06/07/changes-checklist.html
simonw · 2024-04-15
Could you help me understand which Copilots are involved in this?
Your tweet at https://twitter.com/ataiiam/status/1765089261374914957 mentions "Cursor's copilot".
The blog post at https://rtpg.co/2024/03/07/parsing-copilots-type-spaghetti/ talks about GitHub Copilot - did they make a mistake there?
And your product is CopilotKit - is that related to the GitHub and Cursor Copilots in some way or is it something different?