Author: Arek Ouzounian
Last Changed: Jun 14, 2024
Before today, the last commit to my bloggen project was about a year ago. So, what happened?
Well, school was a big part of it, but a sizeable part was also due to my inability to come up with a solid plan on how to design this project. Before, I had been making small projects and executables without any semblance of how larger scale projects worked. I was good at brainstorming ideas for the project, but ultimately, my ability to design the software and integrate it into a tech stack was lacking.
My research process was (and still is) somewhat flawed; I could come up with what seemed like good ideas at first, but when I went to implement them, they began to become quickly contrived. I didn’t scope out the right libraries first, and was approaching the whole project with a very hacky mindset. Because of that, I kept repeating mistakes and falling into design traps.
I went from trying to have no authentication and just use pure TCP, to wanting to build over SSH, to wanting to write my own low level server code (and defining my own HTTP-adjacent protocol for it), to just forgetting the server code entirely and trying to make it all work with a clever client and a couple of scripts, and back and forth multiple times. Finally, I’ve settled on this design:
russh
library. The only assumption to be made is that the client will have their public key in the authorized_keys
section on the server; this is a reasonable assumption to make for any cloud scenario.
Let’s see how this all goes.
Blog generated by bloggen