Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Advent of Distributed Systems (cryingpotato.com)
263 points by cryingpotato 11 months ago | hide | past | favorite | 21 comments
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!




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)


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 :(


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.


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.


same issues here


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.


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/


Is there any way to take the class without registering at a self pace?


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_tb2fErI4-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...



Woah this is neat!!


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.


That’s useful feedback, I’ll try to put up an explainer modal. Thanks for trying it!


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.


Me too - I put it off so much I went and built this first before trying the challenges!


Looks really fun! Looks like there's also Rust bindings to Maelstrom [1] and since its a network challenge, it should be doable in any language. I might try it in Rust!

[1] https://docs.rs/async-maelstrom/latest/async_maelstrom/


Hey! I love this, thanks for making it. One suggestion: the editor color scheme is very hard for me to read. There's not a lot of contrast between the light, pastel colors and the white background.

Personally, I would really appreciate either a) a way to change the theme, or b) a more accessible default theme.

I'm a bit late to the party, but thanks!


Really cool and a great way to show off what you've built with Cannon


Thanks a lot!


Looks good!


Thanks!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: