“Any sufficiently advanced technology is equivalent to magic“”
Hello,
Welcome to issue #381!
In this issue, we have an excellent collection of curated full-stack content to keep you informed and inspired! The first article is fascinating to me since I also found myself trying to hack TicketMaster's new digital tickets. The first version was quite naive, you could just remove the floating bar from the DOM and take a screenshot of the barcode. Now the barcode is regenerated every 15 seconds and the author of the article needs to go into a much deeper rabbit hole to fully reverse engineer how the ticket works and how to avoid the invasive TicketMaster mobile app. It's a fascinating reading that will teach you about bar codes, bearer tokens, and OTP codes, so definitely recommended!
I won't spoil the rest of the content here and let you discover it for yourself!
— Your editor, Luciano
“Screenshots won’t get you in”, but Chrome DevTools will (if you know where to look)! This article might look like a bit of off-topic, but I loved to read how the author used web technologies to reverse engineer how TicketMaster's new rotating barcode works. I personally hate as well how this new ticketing system tries to lock users down to one proprietary solution which does not help the users. If you are also into barcodes and content encoding you'll surely find this read quite fascinating.
How much random is a random number generation in JavaScript? Ben Nadel compares the randomness of Math.random() vs crypto.getRandomValues() in terms of randomness and performance.
Have you ever wondered how big websites with hundreds of thousands of users scale their databases? This article discusses 8 different techniques commonly used to scale databases to insane levels!
The unopinionated nature of React is a two-edged sword. On the one hand, you get freedom of choice. On the other hand, many projects end up with a custom and often messy architecture. This article is the seventh part of a series about software architecture and React apps where we take a code base with lots of bad practices and refactor it step by step. In this article, you will learn where to put all the small functions that often end up in utility files using the domain layer.
The Accessibility team at GitHub considers drag-and-drop a “high-risk pattern,” often leading to accessibility barriers and a lack of effective solutions in the industry. They developed a solution for a more accessible sortable list, which they refer to as "one-dimensional drag-and-drop".
Move aside, TailwindCSS, the next best CSS utility-class library, is already here, and it's all about web development... and comics. Because the caped crusader makes everything better! Check out this awesome CSS library that allows you to make Batman comics! Why wouldn't you want to do that?!
Book of the week
Python Crash Course, 3rd Edition: A Hands-On, Project-Based Introduction to Programming
by Eric Matthes
You'll start by learning basic programming concepts, such as variables, lists, classes, and loops, and practice writing clean code with exercises for each topic. You'll also learn how to make your programs interactive and test your code safely before adding it to a project. You'll put your new knowledge into practice by creating a Space Invaders-inspired arcade game, building a set of data visualizations with Python's handy libraries, and deploying a simple application online. As you work through the book, you'll learn how to: