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

UI KIT

A UI kit for building performant 3D user interfaces for Three.js in React with support for nested scrolling, buttons, inputs, dropdowns, tabs, checkboxes, and more.

2024.03.18
github.comGitHub repositoryTLDR Web Dev

WHAT WE CAN LEARN FROM THE HELLDIVERS 2 AND PALWORLD LAUNCHES

When games have unforeseen popular launches, like Palworld and Helldivers 2 did, it can be hard for them to stay online under such heavy load. Several factors contribute to launch failures: inadequate server capacity, unforeseen bugs appearing at scale, poor community management, and underestimating player demand. To manage these issues, some companies use flexible scaling solutions with cheap servers (like Google Cloud) or carefully design games to reduce complexity (like Thatgamecompany), while others focus on increasing the number of players in a single instance (like Unchained Entertainment).

2024.03.18
venturebeat.com16 min readTLDR Web Dev

THE RETURN OF THE FRAME POINTERS

Frame pointers are used for reliable debugging and profiling and allow tools to accurately trace program execution. A 2004 compiler change removed frame pointers by default to slightly boost performance, breaking many profilers and debuggers. Decades later, Fedora and Ubuntu are now releasing versions with frame pointers enabled by default, vastly improving the accuracy of profiling tools.

2024.03.18
brendangregg.com12 min readTLDR Web Dev

USE LEGACY LINES OF CODE TO ESTIMATE A SOFTWARE REWRITE

Estimating software rewrites is difficult due to the hidden complexities within legacy code. A useful way to estimate a rewrite is to count the lines of code in an existing system, which represents the project’s complexity. Based on this, you can create an estimate as such: Developer Days = Total LOC / LOC per Day per Developer.

2024.03.18
spin.atomicobject.com8 min readTLDR Web Dev

ON AUTOMATING SOFTWARE ENGINEERING

Software engineering automation is progressing similarly to self-driving cars, with AI gradually taking on more tasks while humans provide oversight, leading to a future where developers supervise AI and provide high-level input.

2024.03.18
twitter.com3 min readTLDR Web Dev

HOW FIGMA'S DATABASES TEAM LIVED TO TELL THE SCALE

Figma's database team had to deal with hypergrowth that was starting to outpace their database's capacity. To address this, they first focused on vertical partitioning, which bought them time but was not a long-term solution. They then embarked on a complex nine-month project to implement horizontal sharding, tailoring their approach to Figma's specific needs. To manage their horizontally sharded databases, they built a service in Golang to support load-shedding, transaction support, database topology management, and more.

2024.03.15
figma.com20 min readTLDR Web Dev

COMPARING JAVASCRIPT FRAMEWORKS PART 1: TEMPLATES

This is a thorough comparison of the template languages used by React, Vue, Angular, and Svelte. It looks at how the frameworks define and use components, event handling, and more advanced techniques like slotting. While all four frameworks can do everything that was tested, React still feels most natural to the author.

2024.03.15
maartenhus.nl30 min readTLDR Web Dev

HTTP/2 AND HTTP/3 EXPLAINED

HTTP is the backbone of the web, and it is constantly evolving. HTTP/1.1 introduced persistent connections and headers for better efficiency. HTTP/2 improved performance with multiplexing (sending multiple requests over one connection) and binary formatting. HTTP/3 is built on the QUIC protocol for enhanced performance on unstable networks, overcoming issues with TCP and TLS. Currently, both HTTP/2 and HTTP/3 are widely used.

2024.03.15
alexandrehtrb.github.io7 min readTLDR Web Dev

THE CURSE OF THE SENIOR SOFTWARE ENGINEER

Staying in a senior position for too long can hinder your future job prospects. This is known as the "Curse of the Senior Software Engineer" – you become too experienced for typical Senior roles, but lack the leadership experience necessary for higher-level positions. To avoid this curse, either proactively pursue promotions and leadership opportunities within your company or seek out companies that offer less structured career paths.

2024.03.15
yieldcode.blog11 min readTLDR Web Dev

WHY SOFTWARE PROJECTS FAIL

Software projects often fail due to hidden complexities and human factors rather than technical shortcomings. Overconfident developers can underestimate task complexity and the challenges of using new technologies or third-party dependencies. Inexperienced managers may prioritize personal ambitions over project success, lack firm leadership, or cave to every change imposed by higher-ups. Projects can become zombies, draining resources without delivering value, as stakeholders become reluctant to admit defeat due to fear or embarrassment.

2024.03.15
vadimkravcenko.com10 min readTLDR Web Dev

QUIETLY GOING INSANE WITH TOOLS & AUTOMATION

This author started a project of automating a simple Unreal Engine task, but it quickly spiraled into an overly complex solution. His first attempt was a PowerShell script to delete specific project folders, but this evolved into a full-blown Windows installer using GitHub Actions to build a release. Eventually, he decided to use the language Zig to build an executable for the script, but Zig’s low-level nature proved hard to work with.

2024.03.15
jerkytreats.dev12 min readTLDR Web Dev

PSD

PSD is a lightweight parser for Adobe Photoshop PSD and PSB files. It can be used both in web browsers and Node.js, uses WebAssembly to speed up decoding image data, and pulls in zero dependencies.

2024.03.15
github.comGitHub repositoryTLDR Web Dev

LAVAGUE

LaVague is a framework that transforms natural language instructions into browser interactions.

2024.03.15
github.comGitHub repositoryTLDR Web Dev

SKYVERN

Skyvern automates browser-based tasks using LLMs and computer vision. It is able to handle unfamiliar websites and changes in website layout without breaking.

2024.03.15
github.comGitHub repositoryTLDR Web Dev

ONBOARDING ROULETTE: DELETING OUR EMPLOYEE ACCOUNTS DAILY

While automated testing is crucial for quality software and preventing regressions, complex features can be difficult and time-consuming to test, leading to situations where teams prioritize building features over writing robust tests. In cases like this, developers should consider alternative strategies like canary releases, beta testing, and dogfooding. The startup in this article decided to start automatically deleting an engineer's account daily. This forced them to experience the onboarding process firsthand, uncovering bugs and building empathy for the user experience.

2024.03.15
graphite.dev6 min readTLDR Web Dev

THE MESSY REALITY BEHIND A SILICON VALLEY UNICORN

A VC-funded startup aiming to disrupt the local services industry experienced rapid growth fueled by pressure from investors. To keep up with demand, the company hired Filipino contractors to perform routine tasks that software could technically handle. This allowed engineers in San Francisco to focus on strategic initiatives and experimentation, leading to significant user growth. The story highlights how automation is not necessarily a reality for a lot of engineering companies today.

2024.03.15
spectrum.ieee.org12 min readTLDR Web Dev

WINNING A HACKATHON, LOSING MY SANITY

Students created a "Spotify Wrapped" for student dining habits for a hackathon by scraping data from Tufts University's outdated meal plan portal. The project found numerous security flaws in the portal's design, for example, session keys were stored in URL parameters and guest access permissions were easily circumvented.

2024.03.15
jero.zone7 min readTLDR Web Dev

ECSS

Simple but comprehensive list of rules for efficient CSS.

2024.03.15
ecss.infoToolTLDR Web Dev

PERFORMANCE-AWARE PROGRAMMING SERIES

This course teaches experienced programmers the fundamentals of modern CPU architecture, enabling them to write faster code through performance estimation and optimization techniques.

2024.03.15
computerenhance.com4 min readTLDR Web Dev

MAKE YOUR FUNCTIONS MORE REUSABLE WITH GENERICS

TypeScript generics enable developers to create type-safe, reusable functions by allowing them to infer the type of a promised return value, removing the need for the overly broad 'any' type.

2024.03.15
totaltypescript.com2 min readTLDR Web Dev

HOW DISCORD'S LIVE STREAMING WORKS

Discord's live streaming feature broadcasts users' screen activity to others in their group. To achieve this, Discord uses OS-specific APIs for screen and audio capture along with robust fallback mechanisms. The captured video data is then encoded using codecs like VP8 and H264 for efficient transmission, with Discord servers handling quality adjustments and routing for high-quality delivery to viewers.

2024.03.14
blog.quastor.org6 min readTLDR Web Dev

POKÉMON GO: ARCHITECTURE OF THE #1 AR GAME IN THE WORLD

Pokémon GO began as an iteration of Niantic's earlier augmented-reality game, Ingress. It uses GCP’s scalability for its massive player base. The game's architecture heavily utilizes Google Kubernetes Engine for managing workloads and Spanner for its global consistency and high transactionality in storing player and map data. Niantic introduced Redis as an in-memory cache to handle the immense traffic spikes during live events like Raid Battles. Pokémon GO uses PushGateway for real-time notifications.

2024.03.14
fullstackexpress.io9 min readTLDR Web Dev

BEST PRACTICES FOR WRITING TESTS WITH REACT TESTING LIBRARY

To write effective tests using the React Testing Library, developers should focus on using ByRole queries to target elements based on accessibility roles. For simulating user interactions, one should use the userEvent library rather than fireEvent. Utilize findBy* queries and waitForElementToBeRemoved to manage asynchronous updates for more robust tests.

2024.03.14
claritydev.net10 min readTLDR Web Dev

FALSEHOODS PROGRAMMERS BELIEVE ABOUT TIME ZONES

Time zones are complex. Rules and boundaries change frequently based on political and geographical influences. Developers often underestimate the challenge of handling time zones and their irregular offsets, multiple names, and unpredictable changes by governments. Building any system reliant on time zones requires careful consideration of their complexities to avoid future errors.

2024.03.14
zainrizvi.io10 min readTLDR Web Dev

KEEPING TRACK OF ENGINEERING-WIDE GOALS AND MIGRATIONS

Yelp created an internal platform called EE Metrics to help engineering teams manage technical debt and highlight important company-wide engineering initiatives. EE Metrics provides teams with detailed web pages outlining their technical debt and surfaces key migrations or health metrics. The platform's Team Health Reports allow teams to see critical audits and prioritize actions based on the highest impact to the team.

2024.03.14
engineeringblog.yelp.com9 min readTLDR Web Dev

LLMS ARE NOT ENOUGH… WHY CHATBOTS NEED KNOWLEDGE REPRESENTATION

LLMs have impressive factual knowledge, but their reasoning abilities remain limited, as they struggle with applying their knowledge to novel queries. Explicit knowledge representation, such as databases or knowledge graphs, is needed for reliable question-answering that combines the factual recall of LLMs with efficient search capabilities. However, designing these knowledge structures is not an easy task.

2024.03.14
blog.anj.ai6 min readTLDR Web Dev

REACT GEIGER

React Geiger is a tool for "audiolizing" React performance issues. It runs in the background and makes little clicking noises during excessively slow component rerenders.

2024.03.14
github.comGitHub repositoryTLDR Web Dev

FINDER

Finder generates the shortest CSS selector for elements on web pages.

2024.03.14
github.comGitHub repositoryTLDR Web Dev

FLYDE

Flyde is an open-source visual programming language that aims to augment traditional coding practices. It is designed for integration with TypeScript/JavaScript codebases. Flyde features a VSCode extension, Node.js support, and browser compatibility.

2024.03.14
github.comGitHub repositoryTLDR Web Dev

SALT LABS RESEARCH FINDS SECURITY FLAWS WITHIN CHATGPT ECOSYSTEM

Researchers have identified significant security vulnerabilities within the ChatGPT ecosystem that potentially allow attackers to access users' accounts on third-party websites, such as GitHub, without their consent. These vulnerabilities were found both in the core ChatGPT platform and its plugins. They expose sensitive data and enable account takeovers through exploitation of the OAuth authentication process and other flaws in plugin frameworks.

2024.03.14
salt.security18 min readTLDR Web Dev

COMPRESSING CHESS MOVES FOR FUN AND PROFIT

This article explores efficient chess move encoding to reduce database size and improve query speeds on a large chess website. The author developed a custom encoding that represents moves using fewer bits than standard text formats. This approach optimizes for common move types (pawn moves, captures) and in a test case, the encoding reduced file size by 74%.

2024.03.14
mbuffett.com9 min readTLDR Web Dev

A FORMULA FOR RESPONSIVE FONT-SIZE

The CSS formula “font-size: calc(1rem + 0.25vw);” enables responsive font sizing, allowing text to scale smoothly across various screen widths and removing the need for traditional media query breakpoints.

2024.03.14
jameshfisher.com1 min readTLDR Web Dev

C++ SAFETY, IN CONTEXT

This article lays out a comprehensive view of C++ safety issues, advocating for cross-disciplinary collaboration across programming languages and security communities to address various security and safety threats within languages.

2024.03.14
herbsutter.com28 min readTLDR Web Dev

WRITE FOR OTHERS BUT MOSTLY FOR YOURSELF

The act of writing, particularly with the intention of public sharing, forced this author to find and understand gaps in their own knowledge, leading to deeper learning for themselves.

2024.03.14
jack-vanlightly.com4 min readTLDR Web Dev

CHEERP

Cheerp is a C/C++ compiler that optimizes code for WebAssembly and JavaScript, enabling easy integration of existing C/C++ libraries and applications into web environments.

2024.03.14
github.comGitHub repositoryTLDR Web Dev

THE DAY SOFT DELETES CAUSED CHAOS

Soft deletes in databases, while seemingly convenient, can lead to unfortunate consequences due to their hidden complexity and potential for data integrity issues. This author recounts a severe incident where a change in soft delete handling during a migration resulted in allowing the selling of the same seat an unlimited number of times for a popular concert. It’s worth considering using history/audit tables for preserving deleted data instead of soft deletes in production systems.

2024.03.13
blog.bemi.io4 min readTLDR Web Dev

WHAT IS INP AND WHY YOU SHOULD CARE

Google introduced Interaction to Next Paint (INP) as a new Core Web Vital on March 12 to emphasize the importance of a website's overall responsiveness throughout a user's entire visit. INP measures the delay between users' interactions (clicks, taps, or keypresses) and visual feedback from websites. To understand and improve your website's INP score, utilize the Performance tab in Chrome DevTools, prioritize timely visual feedback, and optimize JavaScript execution.

2024.03.13
blog.sentry.io6 min readTLDR Web Dev

MY FAVORITE ANIMATION TRICK: EXPONENTIAL SMOOTHING

Exponential smoothing is an animation technique that provides a smooth and responsive way to move objects towards their target positions. This blog demonstrates its use in UI elements and camera movement, showing its advantages over linear or easing-based animations. The mathematical basis of exponential smoothing is derived from differential equations, so it automatically handles varying time intervals and speed parameters.

2024.03.13
lisyarus.github.io9 min readTLDR Web Dev

40 YEARS OF PROGRAMMING

This essay reflects over a four-decade career in software development. To be a successful software engineer, one must communicate and collaborate well. While "getting things done" is important, developers must also consider the long-term maintenance costs of their work. Readers should find their own best practices for productive software engineering while also remembering to take care of themselves.

2024.03.13
liw.fi17 min readTLDR Web Dev

NERVOUS ABOUT Q&AS? 7 ESSENTIAL TIPS TO ANSWER CONFIDENTLY

While feeling nervous when asked questions under pressure is normal, it can hinder your ability to respond with the best possible answer. To overcome this, adjust your mindset, embrace silence, and strategically clarify the question before answering. If the question is complex, provide a brief answer and offer a follow-up discussion. For complaints, focus on understanding the underlying concerns rather than getting defensive.

2024.03.13
newsletter.techleadmentor.com5 min readTLDR Web Dev

MENTORSHIP’S ROLE IN MY STAFF PROMOTION

This article offers two stories, with advice, on how mentorship was key to a Meta engineer’s promotion to staff engineer. One story focuses on explicit mentorship, where they regularly checked in with someone to get advice. The other story focuses on implicit mentorship, where they worked with someone who had the skills they wanted to develop.

2024.03.13
developing.dev3 min readTLDR Web Dev