TLDR Web Dev

TLDR WEB DEV 2025-01-10

5 sections14 entrieslinks blockcomplete parse

Parse notes

  • Subscription/account footer truncated before parsefooter_truncated

01ARTICLES & TUTORIALS

ACCESSIBILITY ESSENTIALS EVERY FRONT-END DEVELOPER SHOULD KNOW

Following accessibility best practices improves the user experience for everyone, not just those with disabilities. Some key principles include using semantic HTML, correctly structuring forms with labels (avoiding placeholders), writing descriptive alt text for images, and having smooth keyboard navigation with focus management in modals. This post covers styling considerations like focus indicators and how to use ARIA attributes.

martijnhols.nl13 min read

SQL NULLS ARE WEIRD!

SQL's handling of NULL values is counterintuitive: the `=` operator doesn't consider two NULLs equal, returning NULL instead, while the `IS` operator correctly identifies them as identical. This behavior affects unique constraints - multiple NULLs can exist in a uniquely constrained column because each NULL is treated as distinct. These two methods help to enforce uniqueness with NULLs: creating a generated column that replaces NULLs with a default value and using a partial index that only enforces uniqueness when a specific column is NULL.

jirevwe.github.io9 min read

HOW PINTEREST STORES AND TRANSFERS HUNDREDS OF TERABYTES OF DATA DAILY

Pinterest's engineering team developed a Change Data Capture (CDC) system to manage the hundreds of terabytes of data its platform processes daily. This system, built using Debezium, addresses the challenges of real-time data processing for personalized recommendations and fraud detection. The architecture includes a control plane for managing connectors and a data plane that uses Kafka to transfer change events from distributed databases.

blog.quastor.org6 min read

02OPINIONS & ADVICE

OUR FRONTEND IS A TOTAL MESS, AND I'M LOSING MY MIND (REDDIT THREAD)

A React developer vents about a poorly-built enterprise application riddled with technical debt. The application uses outdated patterns like React class components and Redux excessively, resulting in massive, unmaintainable code. Multiple UI libraries are haphazardly combined, and a reliance on JSON schemas for everything, including layout and event handling, makes the application incredibly complex.

links.tldrnewsletter.com

GO IS A WELL-DESIGNED LANGUAGE, ACTUALLY

Go is a well-designed language. Google's goal was to create a language that enabled efficient development and maintenance of large-scale, concurrent server code by programmers of varying skill levels. While there are criticisms about its filesystem API, error handling, and foreign function interface (FFI), these were deliberate trade-offs.

mattjhall.co.uk8 min read

03LAUNCHES & TOOLS

CSS VARIABLES EDITOR

The CSS Variables Editor browser extension allows users to manage and test CSS variables, including AI-generated palettes and accessibility checks, directly within their web app.

cssvariables.comTool

JSESC

Jsesc is a JavaScript library that escapes data to create short, ASCII-safe, stringified representations suitable for JavaScript strings. It offers various options for customization and handling different data types, including BigInt and ES6 data structures.

github.comGitHub repository

TELEVISION

Television is a fast, fuzzy-finding terminal user interface written in Rust that allows users to search through various data sources (files, Git repositories, etc.) using a customizable configuration.

github.comGitHub repository

04MISCELLANEOUS

WHAT HAPPENED TO LIGHTWEIGHT DESKTOP APPS? HISTORY OF ELECTRON'S RISE

Electron is a framework created by GitHub for its Atom editor. It is used widely today for cross-platform desktop app development, powering popular applications like Slack and VS Code. Electron's ease of use and automatic updates led to widespread adoption. The convenience and speed of development often outweigh the performance issues it has for many teams.

smalldiffs.gmfoster.com6 min read

MUSINGS ON TRACING IN PYPY

PyPy initially struggled with method-based JITs (just-in-time compilers) but found success with a tracing approach, which was great for a complex, dynamically typed target language (Python). While tracing offers benefits like aggressive inlining and simplified optimizations, it also suffers from performance cliffs and complexities in handling certain control flows.

pypy.org10 min read