dslabs
advent-of-code-jq
dslabs | advent-of-code-jq | |
---|---|---|
17 | 232 | |
1,114 | 203 | |
- | - | |
8.0 | 7.8 | |
29 days ago | 4 months ago | |
Java | jq | |
- | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
dslabs
-
The leadership myth in replicated databases (2023)
I recently took a Distributed Systems course, and I also thought it was very interesting and unexpected how in the most basic form of Paxos, there is no concept of node roles or hierarchy like leader/follower, master/replica, etc. The base case is that all nodes have the same replicated log, and are "writers" capable of initiating changes to the log.
This youtube video was particularly helpful in learning about consensus algorithms, specifically Paxos/MultiPaxos:
https://www.youtube.com/watch?v=JEpsBg0AO6o
John Ousterhout (author of Raft) walks through Paxos/MultiPaxos as outlined by Leslie Lamport, and then talks about a series of optimizations to improve performance. One key optimization is transitioning from performing consensus on a single log-slot proposal, to the entire log-slot altogether, which mitigates failed consensus rounds, and is where concepts like leader nodes emerge. If your familiar with Raft and Paxos, while listening to these optimization applied to MultiPaxos, you can kind of notice it to begin to resemble Raft.
The course I took was through Georgia Tech, but was largely based around a framework developed at the University of Washington called dslabs:
https://github.com/emichael/dslabs
It was super informative for my learning about the foundations of distributed systems, namely consensus algorithms. I'd highly recommend it for anyone interested in learning more. Although fair warning, the programming assignments were quite difficult and time consuming.
-
Show HN: Advent of Distributed Systems
I took a Distributed Systems course at Georgia Tech 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)
There are tests to validate your implementation. I learned a ton from this, although I gave up at the last milestone because my grade was satisfactory in the class :)
-
Preparing for distributed systems in fall 2023
If you open the syllabus from OMSCS site, it says that the 5 programming assignments will be based on https://github.com/emichael/dslabs
-
anyone want to share their coding assignments?
If you want to learn about distributed systems, this project is very cool imo. https://ellismichael.com/dslabs/ Don’t put your solution in a public repository.
-
DSLabs solutions
Per the original author's repo:
-
Build Your Own Fast, Persistent, Toy KV Store
This might interest you as well: https://github.com/emichael/dslabs
That distributed systems lab is what Georgia Tech's Distributed System lab[0] is based on, at least when I took the course back in 2021
[0] - https://omscs.gatech.edu/cs-7210-distributed-computing
-
CS 7210 - Labs available
Haven't taken the course, so not sure on specifics, but the projects are generally based on dslabs, as highlighted in the syllabus for the course.
-
Gain experience in Distributed Systems
If the former, I don't want to discourage you, but good luck. In my MS we had to build an extremely simplified PAXOS implementation and it took everyone 200+ hrs and I think 1 or 2 out of 50 students ended with a fully correct implementation. Actually, that project is publicly available, here: https://github.com/emichael/dslabs
-
I want to work on distributed systems: Rust or C++?
fwiw this is used in many graduate programs around the country to teach distributed systems concepts: https://github.com/emichael/dslabs and can be done completely independently.
-
Is GIOS/AOS needed for DC?
DSLabs: https://github.com/emichael/dslabs is the base of the projects and cumulates in implementing a Google Spanner inspired distributed KV store. Look through that repo and if you think you can handle it, you’ll probably be fine.
advent-of-code-jq
-
Ask HN: How do I get better at programming as a hobbyist?
If you just want a series of programming puzzles, check out the Advent of Code[1]
[1] https://adventofcode.com/
-
What Happens After Agile Dies?
This goes against Agile, against what many have only known. You can try it, and see what happens. Try a challenge from AdventOfCode, spend a couple of days working up a plan first. Did you write a cleaner solution? Now extrapolate.
-
When was the last time you used this? - Part 2: Algorithms
I have used BFS only sporadically to solve problems at work. DFS was usually a simpler or better choice. BFS is, however, an essential tool for Advent of Code puzzles - each year, BFS is sufficient to solve at least a few puzzles. BFS is also a very common algorithm for coding interviews.
-
2023, a year in images
I'm staring to be a huge fan of the Advent of Code challenge every beginning of December. Everyday puzzle is a great excuse to talk to people of your company that probably you don't interact much otherwise. And /r/adventofcode subreddit fan-arts and community is fun to follow. I always entered after completing the daily challenge, otherwise it may be a huge spoil :D
-
Ask HN: Programming Courses for Experienced Coders?
Advent of Code (https://adventofcode.com/)
It's not a programming course per-se, but it's a great resource to master the skill of coding and problem solving.
It's just one part though, it won't teach you anything about architecturing a bigger system.
-
Having a Game I'm into Makes Every Day Enjoyable
For anyone currently looking for something that does this for you, may I suggest Advent of Code: https://adventofcode.com/ This is the first year I've really had time and space to enjoy it, and enjoy it I have.
Also - this article ends on such a weird note given the message that the rest of it delivers. The author has finally realized how valuable it is to have something that gets them going, regardless of whether or not it ends up being "useful", but then immediately stumbles over the fear of it not lasting and failing to achieve greatness in it and sharply concludes with that sentiment.
Perseverance through intermediate-ness into greatness is irrelevant to enjoyment.
-
Stuff I Learned during Hanukkah of Data 2023
Hanukkah of Data is a series of data-themed puzzles, where you solve puzzles to move your way through a holiday-themed story using a fictional dataset. I think of it as "Advent of Code meets SQL Murder Mystery".
-
Using only vim to solve AdventOfCode Challenges | Episode 1
This journey will transform you and challenge your creative and resourceful thinking. You will explore new possibilities with VIM, going beyond what you thought it could do. And as you advance through the Advent Of Code puzzles, you will truly transform yourself if you follow the two scenarios listed below.
-
Ask HN: What apps have you created for your own use?
I've been making a CLI for advent of code ( https://adventofcode.com/ ) this week: https://github.com/VitamintK/wang-aoc-cli
It's been satisfying!
-
Does being bad at solving programming problems means not being a good programmer?
December started 12 days ago, and for my first year I decided to try the Advent of Code 2023, which is basically 1 programming problem everyday and they get harder and harder each day. I started HARD, I ate problems, day by day, until... day 10; things started getting pretty hard and couldn't do - I think - pretty average difficulty problems.
What are some alternatives?
advanced-java - 😮 Core Interview Questions & Answers For Experienced Java(Backend) Developers | 互联网 Java 工程师进阶知识完全扫盲:涵盖高并发、分布式、高可用、微服务、海量数据处理等领域知识
LeetCode - This is my LeetCode solutions for all 2000+ problems, mainly written in C++ or Python.
DalvDB - A distributed Key/Value storage, which uses client devices as a replica and stores each user data in a different partition
aoc - Advent of Code solutions
conductor - Conductor is a microservices orchestration engine.
online-judge - A modern open-source online judge and contest platform system.
barreldb - A disk based KV store (based on Bitcask implementation)
Exercism - Scala Exercises - Crowd-sourced code mentorship. Practice having thoughtful conversations about code.
py4j - Py4J enables Python programs to dynamically access arbitrary Java objects
codewars.com - Issue tracker for Codewars
presto - Official repository of Trino, the distributed SQL query engine for big data, formerly known as PrestoSQL (https://trino.io) [Moved to: https://github.com/trinodb/trino]
materials - Bonus materials, exercises, and example projects for our Python tutorials