[HN Gopher] Show HN: Advent of Distributed Systems
       ___________________________________________________________________
        
       Show HN: Advent of Distributed Systems
        
       Hey! I built a playground called Advent of Distributed Systems
       (https://aods.cryingpotato.com/) where you can work through the
       Fly.io distributed systems challenges (https://fly.io/dist-sys/1/)
       directly in your browser. Running challenges like this directly in
       the browser has often been the best way for me to get the
       activation energy to start them since it bypasses all the annoying
       dev environment setup that has to happen as a precursor to working
       on it.  The coding environment was built with another project I'm
       working on called Cannon (https://cannon.cryingpotato.com/) that
       aims to let you embed codeblocks of any language in your browser.
       Right now the Go environment runs on a Modal backend using their
       sandbox, but I'm hoping to use the excellent work done on Hackpad
       (https://github.com/hack-pad/hackpad/tree/main) to run the whole
       thing in your browser, with no network calls necessary, soon.  Let
       me know what you think - week 3 is coming out soon!
        
       Author : cryingpotato
       Score  : 234 points
       Date   : 2023-12-12 14:38 UTC (1 days ago)
        
 (HTM) web link (aods.cryingpotato.com)
 (TXT) w3m dump (aods.cryingpotato.com)
        
       | semitones wrote:
       | This looks really cool! I'd love to get into more systems-design
       | AoC problems rather than DSA puzzles for a change.
       | 
       | feedback: I was a bit confused as to why the answer to the first
       | week was prefilled, was that intentional? Also, the buttons 1-6
       | aren't working for me (I'm on 2021 M1 Pro w/ Firefox 120.0.1)
        
         | jetru wrote:
         | same issues here
        
         | icy wrote:
         | The first puzzle is mostly a sanity check/demo. The UI confused
         | me a bit, but it seems you need to click on the 'Week' on top,
         | and not the challenges on the right.
        
         | cryingpotato wrote:
         | Thanks for trying it out!
         | 
         | I prefilled the answer for week 1 was to help people understand
         | the boilerplate needed better, but maybe that was giving too
         | much away. I'll try putting something more minimal in.
         | 
         | Unfortunately you can't use the buttons inside the iframe
         | because of CORS issues. Not sure if there's any easy workaround
         | for that :(
        
           | anze3db wrote:
           | I got confused by the buttons as well.
           | 
           | > I'll try putting something more minimal in.
           | 
           | That would be great, do please add the boilerplate to all the
           | weeks not just week one, because starting from a completely
           | blank page is also challenging, especially for people who
           | aren't familiar with Go all that much.
        
       | usrme wrote:
       | Thank you for doing this! I too have wanted to play with Fly's
       | distributed systems challenges but was put off by having to do
       | the setup bit.
        
         | cryingpotato wrote:
         | Me too - I put it off so much I went and built this first
         | before trying the challenges!
        
       | heldrida wrote:
       | Looks good!
        
         | cryingpotato wrote:
         | Thanks!
        
       | Zolomon wrote:
       | https://protohackers.com
        
         | cryingpotato wrote:
         | Woah this is neat!!
        
       | Racing0461 wrote:
       | I wish there was a good way to learn distributed systems between
       | dense lectures on MIT OCW and stringing together libraries with
       | raft/paxos already implemented in it or using aws/azure
       | "services"
       | 
       | Kind of like this codecrafters.io where i get a working KV
       | Store/Blob Storage/Kafka Stream out at the end. Code crafters
       | sounded good in the beginning, but it looks too beginner friendly
       | (their web server example is just writing hard coded text back to
       | a socket and i'm sure the other examples are just as shallow).
       | 
       | If anyone has any examples of this, lemme know.
        
         | shepherdjerred wrote:
         | I took a Distributed Systems course at Georgia Tech's OMSCS
         | program this spring, which used a learning framework from the
         | University of Washington: https://github.com/emichael/dslabs
         | 
         | You make a key-value store using multiple techniques, from a
         | basic single-node KV store, to a primary/replica, to PAXOS, to
         | sharded PAXOS (which is essentially what AWS DynamoDB is, minus
         | all of the features they've added since launch).
         | 
         | It's written in modern Java, and the tests that validate your
         | implementation are very thorough.
         | 
         | I learned a ton from this, although I gave up at the last
         | milestone because my grade was satisfactory in the class :)
         | 
         | Alternatively, you could enroll in the OMSCS and take the
         | course yourself. It's only $600 per class at a top-10 school!
         | The application is very easy and they accept anyone who has a
         | reasonable chance of completing the degree. If you have any
         | questions about the program feel free to email me (check my
         | profile) https://omscs.gatech.edu/
        
           | Racing0461 wrote:
           | Is there any way to take the class without registering at a
           | self pace?
        
             | shepherdjerred wrote:
             | The class was essentially just the project in that repo
             | plus some video lectures. Supposedly these lectures from
             | MIT [0] are similar. Alternatively you could just read the
             | course textbook [1] which I think is pretty good.
             | 
             | Here's the course page [2] if you want to see more details,
             | the syllabus, etc., and some student reviews [3] if you
             | want more context. Many students found the course difficult
             | -- it's one of the hardest rated courses in the program and
             | rated it rather unfairly IMO -- it's a difficult subject
             | but the course itself is about as approachable as you can
             | make distributed systems.
             | 
             | [0]: https://www.youtube.com/playlist?list=PLrw6a1wE39_tb2f
             | ErI4-W...
             | 
             | [1]: https://book.mixu.net/distsys/
             | 
             | [2]: https://omscs.gatech.edu/cs-7210-distributed-computing
             | 
             | [3]: https://www.omscentral.com/courses/distributed-
             | computing/rev...
        
       | dschofie wrote:
       | Really cool and a great way to show off what you've built with
       | Cannon
        
         | cryingpotato wrote:
         | Thanks a lot!
        
       | fphhotchips wrote:
       | When I clicked this it took me straight into a page with code and
       | an explanation with a bunch of assumed knowledge. It's not very
       | self-explanatory.
       | 
       | When I came back here, it the additional context of your text
       | post made everything make sense. Can I recommend that you start
       | with that on the page itself? Even a quick explanatory modal with
       | a "don't show this again" checkbox would help a lot.
        
         | cryingpotato wrote:
         | That's useful feedback, I'll try to put up an explainer modal.
         | Thanks for trying it!
        
       ___________________________________________________________________
       (page generated 2023-12-13 23:01 UTC)