Search the archive

Full-text search across article titles and summaries. Refine with sector, year, content type, and reading-time filters.

Results

9,381 matches

WHY FACEBOOK DOESN'T USE GIT

Facebook chose Mercurial over Git because Mercurial is written in a more modular way that makes it easier to extend. Additionally, back when Facebook adopted Mercurial, its developer community was more helpful in addressing Facebook's specific scaling problems. However, it is true that Git is a familiar tool for many engineers, and Mercurial was not necessarily the faster choice out of the box.

2024.07.16
graphite.dev10 min readTLDR Web Dev

SAFEGUARDING APP HEALTH AND CONSUMER EXPERIENCE WITH METRIC-AWARE ROLLOUTS

DoorDash uses metric-aware rollouts to automatically detect and address app quality degradation during experiment rollouts. This new feature allows for faster response to issues and a much better customer experience by automatically pausing rollouts and alerting experiment owners when app quality degradation is detected.

2024.07.16
doordash.engineering9 min readTLDR Web Dev

IT'S ABOUT TIME I TRIED TO EXPLAIN WHAT PROGRESSIVE ENHANCEMENT ACTUALLY IS

Progressive enhancement is a design and development principle where a website is built in layers, starting with a solid baseline experience for all users and progressively adding enhancements based on browser capabilities. This approach prioritizes functionality and accessibility for all users, regardless of their device or browser, and uses JavaScript as an enhancement rather than a requirement. This is the opposite of graceful degradation, where a "perfect" experience is designed and then broken down for less capable browsers, potentially resulting in a broken user interface.

2024.07.16
piccalil.li9 min readTLDR Web Dev

MAKO

Mako is a new open-source front-end build tool based on Rust.

2024.07.16
github.comGitHub repositoryTLDR Web Dev

IS TYPESCRIPT JUST A LINTER?

TypeScript is not just a linter but a typed language built on JavaScript, with the ability to infer types and act as a linter due to the presence of the 'any' type.

2024.07.16
totaltypescript.com3 min readTLDR Web Dev

BUILDING AND SCALING NOTION'S DATA LAKE

As Notion grew exponentially, it had to build a scalable data lake. Its solution involves incrementally ingesting updated data from Postgres to Kafka, then using Hudi to write to S3 for processing. Spark is used for complex tasks like tree traversal and denormalization. This approach has resulted in cost savings, improved data freshness, and has unlocked new possibilities for AI and search features.

2024.07.15
notion.so14 min readTLDR Web Dev

HOW WE SAVED 300MS FROM EVERY AWS POD STARTUP WITH A SINGLE GRAFANA LOKI QUERY

Checkly, a synthetic monitoring tool, reduced its pod startup time by optimizing the AWS SDK and changing the order of operations. It initially used large containers with long startup times, but switching to ephemeral pods required a faster startup. The company found that multiple versions of the AWS SDK were causing delays. Standardizing the version led to a bunch of savings in compute costs.

2024.07.15
checklyhq.com12 min readTLDR Web Dev

SPEEDING UP THE JAVASCRIPT ECOSYSTEM

TypeScript's new isolated declarations feature simplifies code packaging by automatically generating .d.ts files. This improves the "go to source" functionality and also removes the need to manually create these files. It makes publishing packages faster by shifting definition file generation from the publishing process to the installation process.

2024.07.15
marvinh.dev9 min readTLDR Web Dev

WORKING WITH STACKED BRANCHES IN GIT IS EASIER WITH --UPDATE-REFS

Git 2.38 introduced the --update-refs feature to streamline the process of rebasing stacked branches. This new feature automatically updates dependent branches when the base branch is rebased, eliminating the need for manual rebasing and potential conflicts. It can be used in various scenarios, including rebasing a stack of branches, updating stacked branches on a changed branch, and interactive rebasing.

2024.07.15
andrewlock.net8 min readTLDR Web Dev

Sponsored

👀 OBSERVING AWS MICROSERVICES

Join Lumigo CTO, Aviad Mor, and AWS Serverless Hero, Yan Cui! On the agenda: why observability for AWS microservices [9] has gotten so expensive and complicated [9] — and what you can do about it. Featured topics include AI and ML for observability, distributed tracing, cost management techniques, and more! Join live to attend the

2024.07.15
info.lumigo.ioSponsorTLDR Web Dev

PLV8

PLV8 is a trusted Javascript language extension for PostgreSQL. It can be used for stored procedures, triggers, etc.

2024.07.15
plv8.github.ioToolTLDR Web Dev

QUARTZ

Quartz is a set of tools that helps you publish your notes as a website for free. It converts Markdown notes into a fully functional website.

2024.07.15
github.comGitHub repositoryTLDR Web Dev

GPU.CPP

gpu.cpp is a lightweight library that makes portable GPU computation with C++ simple. It focuses on general purpose native GPU computation, using the WebGPU specification as a portable low-level GPU interface. This means developers can drop in GPU code in C++ projects and have it run on Nvidia, Intel, AMD, and other GPUs, along with a wide variety of laptops, workstations, mobile devices, and more.

2024.07.15
github.comGitHub repositoryTLDR Web Dev

WE NEED VISUAL PROGRAMMING. NO, NOT LIKE THAT

Visual programming often fails to gain traction among developers because it focuses on replacing code syntax instead of visualizing important, implicit aspects of software that developers already struggle with. Developers already use visual representations like treemaps, code retention diagrams, network topologies, and memory layouts to understand and analyze different aspects of their code and systems. These visualizations can be immensely helpful for tasks like onboarding in large codebases, diagnosing performance problems, understanding data layouts, and tracking complex client-server interactions, so there still is a lot of opportunity here for startups.

2024.07.15
blog.sbensu.com13 min readTLDR Web Dev

UNIVERSAL CODE EXECUTION BY CHAINING MESSAGES IN BROWSER EXTENSIONS

By chaining various messaging APIs in browsers and browser extensions, it's possible to achieve 'universal code execution', breaking Same Origin Policy and browser sandbox. This vulnerability allows malicious web pages to communicate with an extension's content script and then relay messages to the background script, which can further communicate with a native application on the host operating system. This means that the chain can execute arbitrary code on the victim's machine.

2024.07.15
spaceraccoon.dev11 min readTLDR Web Dev

RESPONSIVE BAR CHARTS IN HTML AND CSS

Using SVG for responsive web visualization can be difficult. This article presents an alternative hybrid approach that combines HTML, CSS, and SVG. A grid-based layout with logical properties can be used to handle bidirectional text and accommodate positive and negative values.

2024.07.15
9elements.com10 min readTLDR Web Dev

GIT-PR

Git-PR allows you to make patch requests to GitHub repositories over SSH.

2024.07.15
pr.pico.shToolTLDR Web Dev

THE EXPERIENCE OF DEPLOYING NEXT.JS APPS ON CLOUDFLARE

Deploying Next.js applications on Cloudflare pages is not a seamless process due to a lack of documentation, inconsistencies with Next.js conventions, compatibility problems with a Vercel CLI change, issues with Set-Cookie headers, and challenges with logging and Node.js compatibility.

2024.07.15
davidgomes.com5 min readTLDR Web Dev

FROM WEB TO NATIVE WITH REACT

React Native is a framework that lets developers build native mobile apps using JavaScript and React. It has some key differences from React, such as the use of native UI primitives and the lack of global styling. This transition guide for React devs interested in building mobile apps provides a deep dive into the differences between React and React Native and discusses common mistakes new devs make, such as using array.map for large lists, using the default Button element, and placing secrets in app code.

2024.07.12
expo.dev23 min readTLDR Web Dev

REACT ARCHITECTURE DOMAIN LOGIC

Domain logic refers to code that operates on the core models of an application. Extracting domain logic from components and placing it in a dedicated domain layer improves code readability, testability, and reusability. It also reduces the need for complex testing setups and allows for focused unit tests.

2024.07.12
profy.dev12 min readTLDR Web Dev

ENGINEERING PRINCIPLES FOR BUILDING FINANCIAL SYSTEMS

Accounting systems should be accurate, auditable, and timely. Data should be immutable, durable, and recorded at the smallest grain and code should be idempotent. This article also goes through best practices for building financial systems, such as using integers for financial amounts, consistent rounding methods, delayed currency conversion, and integer representations of time.

2024.07.12
substack.wasteman.codes11 min readTLDR Web Dev

HOW TO HELP UNDERPERFORMERS

Performance is largely systemic and is influenced by culture, systems, management, and individual traits. Underperformers need effective feedback and a structured approach like the accountability dial.

2024.07.12
open.substack.com8 min readTLDR Web Dev

UBUNTU SECURITY UPDATES ARE A CONFUSING MESS

A patch for a vulnerability in Apache Tomcat 9 on Ubuntu 22.04 is only available to Ubuntu Pro subscribers. This is because Tomcat 9 is part of the universe repository, which is only supported on a "Best Effort" basis for regular users. Canonical has decided to withhold the patch from regular users despite having it available for Ubuntu Pro subscribers.

2024.07.12
gld.mcphail.uk5 min readTLDR Web Dev

KORVUS

Korvus is a search SDK that unifies the entire RAG pipeline in a single database query. It's built on top of Postgres, with bindings for Python, JavaScript, Rust, and C.

2024.07.12
github.comGitHub repositoryTLDR Web Dev

CODEMIRROR

CodeMirror is a code editor component for the web. It can be used in websites to implement a text input field that supports many editing features and has a rich programming interface to allow further extension.

2024.07.12
codemirror.netToolTLDR Web Dev

TINYBASE V5.0

TinyBase is a reactive data store for local-first apps. v5.0 introduces the new MergeableStore type for CRDT-based data merging and a Synchronizer framework for syncing data across different media. TinyBase now exclusively supports Expo SQLite v14 (SDK 51) and above.

2024.07.12
tinybase.orgToolTLDR Web Dev

ICONOGRAPHY OF THE X WINDOW SYSTEM: THE BOOT STIPPLE

The X Window System's boot stipple, a mesh pattern displayed during startup, served as an early indicator of successful configuration and helped users troubleshoot issues in the era of slow computers. Its disappearance in the mid-2010s was likely due to efforts to modernize and speed up Linux boot processes. While the stipple can be brought back through command-line flags, the process is fragmented across different display managers, reflecting the complex and sometimes unpolished nature of the X ecosystem.

2024.07.12
matttproud.com18 min readTLDR Web Dev

QUALCOMM'S ORYON CORE: A LONG TIME IN THE MAKING

Qualcomm's Oryon core is a CPU designed for laptops that aims to compete with AMD and Intel. It features a unique clustered architecture with high reordering capacity and fast clock speeds. The CPU faces challenges in terms of software compatibility and pricing compared to its x86 counterparts.

2024.07.12
chipsandcheese.com24 min readTLDR Web Dev

WEBVM

WebVM is a server-less virtual Linux environment running client-side.

2024.07.12
webvm.ioToolTLDR Web Dev

SNEAKY REACT MEMORY LEAKS: HOW THE REACT COMPILER WON'T SAVE YOU

The new React compiler has some limitations in addressing memory leaks caused by closures, particularly in the context of memoization hooks. While the compiler effectively caches values that don't depend on state or props, it doesn't prevent the underlying issue of shared closure contexts that can lead to prolonged memory retention. The author demonstrates this with a code example where creating a new object dependent on state within a memoized function results in a memory leak despite the compiler's memoization.

2024.07.11
schiener.io11 min readTLDR Web Dev

WEIRD THINGS I LEARNED WHILE WRITING AN X86 EMULATOR

This article explores unusual aspects of the x86 instruction set architecture discovered while creating an x86 emulator for time travel debugging. There are multiple encodings for the same instructions in the architecture. It uses prefixes to modify instruction behavior. The author also notes the peculiar nature of segment overrides in both 32-bit and 64-bit modes, the surprising behavior of shift instructions, and the inconsistent handling of flags by different instructions.

2024.07.11
timdbg.com12 min readTLDR Web Dev

REAL-TIME AUDIO PROGRAMMING 101: TIME WAITS FOR NOTHING

Real-time audio programming requires avoiding any code that might cause delays or unpredictable behavior, as such glitches would disrupt the smooth flow of audio data and lead to undesirable sound artifacts. People working with real-time audio need to understand worst-case execution times and avoid common pitfalls like locking, memory allocation, and external events within the audio callback function. To achieve seamless audio processing, employ lock-free data structures and atomic operations for communication between real-time and non-real-time contexts.

2024.07.11
rossbencina.com11 min readTLDR Web Dev

MARGIN OF SAFETY - MENTAL MODEL

Margin of Safety is a mental model that emphasizes the importance of accounting for potential errors and uncertainties when making estimations. It essentially acts as a buffer, preventing failure by providing extra capacity to handle unexpected events. It's a useful model to apply when estimating software projects (and most other things in life).

2024.07.11
read.perspectiveship.com4 min readTLDR Web Dev