Articles

(Mar 27) #rust Save to Pocket

A single CPU core creates the illusion of being able to perform many tasks in parallel by rapidly switching between processes, progressing each one slightly. But how is this implemented? In this extensive article by Philipp Oppermann, Philipp discusses the advantages and disadvantages of preemptive and cooperative multitasking. Philipp then goes on to explore the async/await feature in Rust (which is built upon the latter method), futures, executors and wakers, and implementations of them all in Rust.

(Mar 26) #alloy #sat solver Save to Pocket

We've had articles about SAT solvers a few times in the past, and if you recall, they're basically a method for solving complex problems with simple booleans. Understanding how complex problems can be mapped to something understandable for a SAT solver can be tricky, but luckily Marianne Bellotti does an excellent job of explaining this process. Marianne introduces Alloy, a declarative specification language, and unravels how it converts to conjunctive normal form to solve problems.

(Mar 27) #linux Save to Pocket

Do you use the Linux kernel? Interested in contributing or curious how the process works? Sergio Prado has written an article about all the different tools used for checking and testing code that is submitted to the Linux kernel. "20% of the development process (2 weeks) is reserved for code integration and the other 80% (8 to 10 weeks) is focused on testing and bug fixes" sounds about right for a project worked on by thousands of people.

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 us by becoming a patron (Patreon) for perks like ad-free issues, or via a one-time donation via PayPal.

Interested in sponsoring our newsletter? Click here to send us an email.

Cheers,

Pek