In my never ending quest of finding great projects to create by throwing ideas at the wall and see what sticks, I'd like to propose this: An Exercism.io fork specifically for our small community. A few of you in the survey suggested I find ways to help you learn by doing; whether that is in the form of recurring puzzles, one-on-ones, or challenges. I would love to find a way to do this, and I believe Exercism is the way to go.

The Exercism platform has two types of users: students and mentors. Students take tracks of a specific language and solve exercises. Mentors look at student solutions and approve/reject them with feedback. While it can be slow to get a response, it is vastly superior than automated teaching platforms. Exercism also provides side-exercises that do not require mentors, but only if you have unlocked the main tracks. Students can share their solutions for everybody to see and learn. It is really a great platform. Oh, and don't get me started with how awesome the submission process is.

Anyway, I've been playing around with the codebase and have a local copy running on my computer. I'm still learning the ropes, but it is certainly doable to host it on a server. All I need to know is: Are you interested?

If you'd like to see this come to life, let me know by filling out this survey: https://goo.gl/forms/Wp0F6FK2NaHy3oMA3. If you are interested in becoming a mentor, we can use our Discord to discuss any details.

-pek

Articles

(Dec 26) #haskell

If you are coming from an Object Oriented Programming world, you could think of a typeclass as an Interface. Its purpose is to add constraints and functionality to a type. The most common among them would be the equality typeclass which adds the ability to use the equal operator ( == ) on a type. But typeclases go beyond what Interfaces can do, and in this article Patrick Thomson gives us a high level overview.



(Dec 25) #javascript

If you are working on a distributed architecture that includes redundant persistent storage, it is vital that modifications to that storage need to be coordinated to avoid data duplication or stale data. Consensus algorithms are algorithms that aim to solve that problem. In this article Matt Ritter explains how the Raft consensus algorithm works with interactive examples and code snippets in JavaScript.



(Dec 31) #ballerina

Ballerina is a new programming language that "makes it easy to write microservices that integrate APIs." If you are like me and your first question is "why would you want a whole new language for that?", then this post by Richárd Kovács might answer some (actually, a lot) of your questions. The author deliberately created a project that has many moving parts to see what the language has to offer.







Programming language of the day: WurstScript. "Wurstscript is a delicious programming language which can compile to Jass code that is used to power WarCraft III."



And that's it for today! Discuss this issue at our subreddit r/morningcupofcoding.

Did you like what you read? Let us know by clicking one of the links below.

Liked - Disliked

I hope you enjoyed reading the latest issue of Morning Cup of Coding. If you did, consider supporting it by becoming a patron (Patreon), buying me a coffee (PayPal), donating anonymously (coinbase), or purchasing an MCC mug (RedBubble); it helps me keep this going.

Cheers,

Pek