Fountain codes, segmentation faults, improving CSS, oh my! Monday Cup of Coding Issue #4

Panagiotis Peikidis
Human Readable
Published in
2 min readJun 11, 2018

Hello there!

This is the Monday edition of Morning Cup of Coding, a curated programming newsletter. If you like what you read, consider joining 3,6k engineers by subscribing here. You will receive one such email every workday morning.

Let’s get right to the articles!

Articles

Introduction to fountain codes: LT codes with Python

“Erasure codes” is code that breaks down data into chunks with additional information such that when read reconstruction of the original data is possible. It is mainly used when transferring data over unreliable networks. “Fountain codes” is a type of erasure code that given data it will produce an infinite amount of chunks such that any one of them are able to reconstruct the original data. Author François Andrieux shows us how to implement the Luby Transform Code, a particular fountain code algorithm, in Python.

Low Overhead Polling For Ruby

TruffleRuby is “a high performance implementation of the Ruby programming language. Built on the GraalVM by Oracle Labs”. One of its tricks is the ability to figure out if an optimized code is no longer needed… by causing a segmentation fault without losing any data. Chris Seaton explains how it works and the potential use in Ruby’s JIT.

Combining the Powers of SEM and BIO for Improving CSS

CSS specificity is how browsers decide what CSS properties apply to what HTML elements. Thus, when writing CSS, it is very important to understand this concept. Two techniques that help handle CSS specificity are SEM and BIO. Ryan Yu explains these two techniques in detail.

Exploring .NET Core platform intrinsics: Part 1 — Accelerating SHA-256 on ARMv8

.NET Core 2.1 has added a set of new data types that allow better access to underlying memory as well as platform dependent intrinsics. And there was much rejoicing in the circles of high-performance engineering. Author Nemanja Mijailovic implements SHA-256 for ARMv8 using these new features.

Collaboration

Do you have an article that hasn’t been published yet and feel fits our content? Feel free to contact me at pek@humanreadablemag.com for a collaboration.

Programming language of the day: Zig

Andrew Kelley has quit his cushy job at OkCupid to work full time on Zig. To show our support, we are featuring it as today’s programming language of the day: Zig. “Zig is an open-source programming language designed for robustness, optimality, and clarity. Robust — behavior is correct even for edge cases such as out of memory. Optimal — write programs the best way they can behave and perform. Clear — precisely communicate your intent to the compiler and other programmers. The language imposes a low overhead to reading code.”

--

--

Panagiotis Peikidis
Human Readable

Unity3D Consultant; Software Craftsman (…mostly). Author of Morning Cup of Coding