Email Details

WP Engine sues WordPress founder โš–๏ธ,hardest bug ever found ๐Ÿ› ๏ธ, chaotic codebases ๐ŸŒ€

WP Engine has sued Automattic and WordPress founder Matt Mullenweg for libel, slander, attempted extortion, unfair competition, and more. 

TLDR

Together With

 TLDR Web Dev 2024-10-03

๐ŸŽ‚ Celebrate Cloudflare's 14th birthday with a lot of new features (Sponsor)

In celebration of its 14th Birthday Week, Cloudflare has recently announced loads of new developer platform product updates:

โš™๏ธ Queues, Calls TURN server, and Vectorize are now generally available

๐Ÿ–ผ๏ธ More for free: 5000 free image transformations a month for all accounts, free tier for Vectorize, and more

๐Ÿƒ Speed improvements for Workers KV and Workers AI

โœ๏ธ AI Gateway enhances AI App monitoring with persistent logs of user prompts and AI responses

๐ŸŽ๏ธ Zero-latency SQLite storage in every Durable Object

Get started on Cloudflare โ€” the one-stop spot for building, optimizing, and securing your websites.

๐Ÿง‘โ€๐Ÿ’ป

Articles & Tutorials

The hardest bug investigation of my career and the insane code that caused it (8 minute read)

A weird bug in an augmented reality system caused disorienting visual glitches and interestingly, only happened every Wednesday. After an extensive, months-long investigation involving robotic arms, lasers, and a high-FPS camera, the root cause turned out to be due to a time-translation hack using day-of-week words in German and English neglecting to account for the German word for Wednesday, "Mittwoch." This oversight led to timestamp discrepancies, resulting in the weekly glitches and an unpredictable error correction mechanism.
"We ran out of columns" - The best, worst codebase (11 minute read)

This is the story of a massive, poorly designed legacy codebase with a chaotic database structure, including a table with a single column and row used for generating IDs and a manually-updated calendar table. The codebase itself was a mishmash of technologies, with a mix of VB and C#, various JavaScript frameworks, and even a shipping manager built in a weekend by a lone developer. Despite its flaws, developers found the chaotic nature of the system freeing, as they were forced to create isolated, independent solutions within the larger mess.
Serialization is the Secret (8 minute read)

JavaScript is a mutable programming language, while Elixir leans towards immutability. While both languages appear to have similar variable assignment behavior, Elixir achieves this through "rebinding," creating new variables with new values instead of mutating existing ones. This immutable approach, along with Elixir's process-based concurrency, eliminates the possibility of race conditions and unexpected state changes that are common in mutable languages.
๐Ÿง 

Opinions & Advice

Hash ordering and Hyrum's Law (5 minute read)

Hyrum's Law states that any observable behavior in a system, even if undocumented, will be relied upon by some users. This has massive consequences, especially during large-scale migrations, as users might depend on seemingly insignificant details like hash iteration order. One example is the iteration order of hash tables in Java, which is technically unspecified but often remains stable for years. This can lead to users inadvertently writing code that depends on the order, causing problems during Java version upgrades.
Good programmers worry about data structures and their relationships (4 minute read)

Linus Torvalds (the creator of Git and Linux) says that data structures are more important than code in software development since good data structures lead to better code design and maintainability. This developer supports this view with personal experience, describing how restructuring data in a project allowed a team to move faster in the long run. The prioritization is also how Git grew to be the dominant version control system.
Healthy Performance Management for Engineers? It's Possible! (6 minute read)

Traditional performance reviews can be ineffective for engineering roles. Instead, a better way to manage performance is by setting clear expectations while also being dynamic, since the nature of development is always changing.
๐Ÿš€

Launches & Tools

TinyJS (GitHub Repo)

TinyJS is a JavaScript library for dynamically creating HTML elements with deep property assignment. It makes DOM manipulation easier by allowing you to generate standard HTML tags programmatically, apply properties, append content, and select DOM elements.
Ultimate Express (GitHub Repo)

Ultimate Express is a drop-in replacement for Express.js that offers faster performance using ยตWebSockets while maintaining full Express compatibility.
The Fastest Mutexes (10 minute read)

Cosmopolitan Libc's new mutex implementation is much faster than other popular libraries. One of the secrets behind the implementation is nsync, a C library written by a distinguished engineer at Google.
๐ŸŽ

Miscellaneous

In the land of LLMs, can we do better mock data generation? (16 minute read)

Using LLMs to generate mock data has proven to be much harder than expected. A team explored using LLMs to generate Rust code for dynamic INSERT queries for their database platform, but found the generated code bad. Eventually, the team developed a hybrid approach, using LLMs to predict faker (Python package) methods for data generation while using topological sorting for accurate insertion order.
Offline UX Patterns (10 minute read)

Expensify's offline UX patterns prioritize "optimistic responses," assuming API requests will succeed when the user is back online and allowing them to proceed as if the action is complete. These responses can be incorporated with or without feedback, where the user is either aware or not aware that a request is pending and/or sent.
Web Scraping with your Web Browser: Why Not? (13 minute read)

Web scraping can be effectively done directly within a web browser, despite the widespread reliance on Python and other external tools. While limitations like CORS restrictions exist, they can be overcome with the use of proxy servers. This article shows a simple web scraper built entirely within a web browser using just a few lines of JavaScript code.
โšก

Quick Links

Don't Sleep on AbortController (7 minute read)

AbortController is a JavaScript API that allows you to abort various operations like network requests, event listeners, and streams in a clean way.
WP Engine sues Automattic and WordPress Founder (62 page PDF)

WP Engine has sued Automattic and WordPress founder Matt Mullenweg for libel, slander, attempted extortion, unfair competition, and more.
Why TCP needs 3 handshakes (12 minute read)

TCP requires three handshakes to establish a connection because it makes sure both parties confirm their ability to send and receive data.
Angular Routing Essentials: All You Need to Know in One Post (18 minute read)

A comprehensive guide to Angular Routing that covers essential concepts like defining routes, links, and outlets and advanced features like data resolvers and route protection.

Love TLDR? Tell your friends and get rewards!

Share your referral link below with friends to get free TLDR swag!
Track your referrals here.

Want to advertise in TLDR? ๐Ÿ“ฐ

If your company is interested in reaching an audience of web developers and engineering decision makers, you may want to advertise with us.

If you have any comments or feedback, just respond to this email!

Thanks for reading,
Priyam Mohanty, Jenny Xu & Ceora Ford


If you don't want to receive future editions of TLDR Web Dev, please unsubscribe from TLDR Web Dev or manage all of your TLDR newsletter subscriptions.

ยฉ 2024 Email Dashboard. All rights reserved.