Jesse Li writes about programming and security, including a BitTorrent client in Go, malware reverse engineering and a browser timing attack.
HN commenters repeatedly recommend his BitTorrent client tutorial as an informative, free guide to the protocol.
I think you've nailed why copilot is so exciting, so irresponsible, yet so not novel. The other comment in this thread who compares it to tab complete gets it too — tab complete is a dialogue as well, as is every "utterance" in the feedback loop between you and your computer.
The first half of this essay I wrote last year also develops the dialogic nature of computing, using some of the ideas from Soviet philosopher Mikhail Bakhtin: https://blog.jse.li/posts/software/
I typically only use the spec (https://www.bittorrent.org/beps/bep_0003.html) because it's simple enough, but in case of doubt I guess a third party resource is good. I found https://blog.jse.li/posts/torrent/ to be quite informative about it.
I used to work on a fork of https://github.com/jackpal/Taipei-Torrent with custom features, I found its code to be easy enough to understand
My starting point was searching for tutorials and asking ChatGPT to implement a torrent parser :) There are great blog posts [0] for building a BitTorrent client. Along the way, I referenced open-source implementations and the BitTorrent Protocol Specification as well [1].
[0] https://blog.jse.li/posts/torrent/
[1] https://www.bittorrent.org/beps/bep_0003.html
what's with the sign in required, is this a paid tutorial?
Here are some free tutorials:
JS - https://allenkim67.github.io/programming/2016/05/04/how-to-make-your-own-bittorrent-client.html
GO - https://blog.jse.li/posts/torrent/
Python - https://markuseliasson.se/article/bittorrent-in-python/
Agree with C and old style C++, but going off the flowchart [1] in the article this could be done quite cleanly with boost::asio and C++20 coroutines as well.
[1] https://blog.jse.li/torrent/download.png
Reminds me of building a bittorrent client in go: https://blog.jse.li/posts/torrent/