I’ll continue doing the Cryptography course on Coursera and maybe try programming the LFSR used in CSS(Content Scramble System) that was used in DVDs in the 90s. I find it very interesting despite it being an insecure cipher. And if I find more time, I want to try GPU passthrough on Linux and see how usable it is out of the box to play games on a Windows VM.
It depends how you learn best. Go is already fairly high-level.
Here are a few things I would play with:
That should be enough for day-to-day programming. I also encourage you to read up on how DHCP, ICMP, TCP/IP, DNS resolution works. And higher-level protocols such as HTTP.
Thank you, do you have any ideas for little projects I could do after I am done learning the basics and have played around with the implementations?
You could write a little file-sending tool.
You need a client mode that opens the file and tries to forward it to a server. For example the usage could be filecli send <filename> <targethost[:port]>
Eg: filecli send /etc/password myserver:8848
.
You need a server that accepts new client connections and puts the file in a per-determined location. For example the usage could be filecli recv <bind-addr:[port]> <directory>
. Eg: filecli recv 0.0.0.0:8848 ./Downloads
.
At first you just want to get the raw data for each connection and store them into incremental names. Eg: ~/Download/file-1 ~/Downloads/file2. Each connection can only send one file and the file is closed at the same time as the connection.
Once you have that, think about what issues the implementation has and how you could augment it, maybe by creating some sort of exchange protocol yourself. What happens if the connection gets interrupted during the transfer.
Hey there – I had the same question a while back and compiled a list of resources/curriculum to learn networking, using Go. You can find everything here. I think once you get the networking concepts down (using for example Beej’s guide). You can translate the C code into Go code (Go in fact just makes the same system calls, with some layers of abstraction on top) and will be well on your way!
kde-connect. With mconnect on Arch (no KDE) and weird one-off binary on Mac.
Haven’t yet tried to build mconnect on Mac.
Love it. Share menu on Android, CLI on laptop.
Sorry asimpson, don’t know about Windows. And pretty sure it’s not available of iOS.
I believe there is a KDE Connect binary for Windows but it’s probably broken, not sure though.