A Charming Algorithm for Count-Distinct

- Justin Jaffray tl;dr: "The count-distinct problem is to estimate the number of distinct elements appearing in a stream. That is, given some enumeration of “objects,” which you can think of as any data type you like, we want to know approximately how many unique objects there are."

featured in #385

Diagram Layout Engines: Minimizing Hierarchical Edge Crossings

- Júlio César Batista tl;dr: TALA is a new layout engine designed specifically for software architecture. At its core, it combines many different graph visualization algorithms to produce aesthetic diagrams. This article is a part of a series where we dive into the inner workings of TALA. Today's topic is on minimizing edge crossings in hierarchical layouts.

featured in #385

Twintrees, Baxter Permutations, and Floorplans

- Donald Knuth tl;dr: Video of Donald Knuth's annual lecture covering "three fascinating concepts, which seem at first to be entirely unrelated to each other, are in fact in one-to-one correspondence, via three beautiful algorithms."

featured in #377

Challenging Algorithms And Data Structures Every Programmer Should Try

- Austin Henley tl;dr: "Not only have they come up during job interviews, but learning them changed how I think about problems." Austin's explains the following algorithms and data structures: (1) Topological sort. (2) Recursive descent parsing. (3) Myers string difference. (4) Bloom filter. (5) Piece table. (6) Splay tree.

featured in #376

The Wavefunction Collapse Algorithm Explained Very Clearly

- Robert Heaton tl;dr: "Wavefunction Collapse is a very independent-minded algorithm, and needs almost no outside help or instruction. You feed it an example of the vibe you’re going for, and it figures everything else out for itself. Despite this self-sufficiency, it is surprisingly simple. It doesn’t use any neural networks, random forests, or anything else that sounds like machine learning. This makes it very clean and intuitive once you get the idea."

featured in #376

Cracking A Compression Algorithm!

tl;dr: "The first thing I did was to create a sort of “assembly simulator” – I ported the assembly steps line-by-line out of the disassembly and into a C# program. Why do this? At the time, I was a beginner with assembly, so this exercise served two purposes: firstly, it helped me become more familiar with the disassembly; secondly, it gave me a program I could run that I knew for a fact would match what the assembly code was doing."

featured in #361

Lessons Learned from Algorithmic Impact Assessments in Practice

tl;dr: "Understanding algorithmic impact is critical to building a platform that serves hundreds of millions of listeners and creators every day. Our approach includes a combination of centralized and distributed efforts, which drives adoption of best practices across the entire organization — from researchers and data scientists to the engineer pushing the code."

featured in #358

How Do One-Time Passwords Work? 

- Serge Zaitsev tl;dr: "That’s just 16 lines of code! If you call totp() function passing it your secret key – you should get a 6-digit number that matches the one in the Google Authenticator"

featured in #344

Pricing At Lyft

- Yanqiao Wang tl;dr: "In this blog post, we discuss the rideshare pricing system architectural design, modeling approaches and potential future iterations of Lyft’s pricing engine to illustrate how we tackle price optimization to achieve Lyft’s long-term mission."

featured in #342

The Many Flavors Of Hashing

- Ciprian Dorin Craciun tl;dr: "Very few hashing algorithms are usable in more than a couple of situations. Even worse, using the wrong algorithm will lead in the best case scenario to performance problems, but in the worst case scenario to security issues and even financial loss. Thus, knowing which algorithm to pick for which application is crucial."

featured in #340