TLDR Web Dev

TLDR WEB DEV 2025-03-05

6 sections16 entrieslinks blockcomplete parse

Parse notes

  • Subscription/account footer truncated before parsefooter_truncated

01GENERAL

02ARTICLES & TUTORIALS

ABUSING SQLITE TO HANDLE CONCURRENCY

SkyPilot uses SQLite for state management, but had issues with high concurrent writes when scaling its Managed Jobs feature, leading to database lock errors. After investigating SQLite's internals, it found that lock acquisition is prone to starvation due to the lack of FIFO guarantees and that WAL mode doesn't fully solve concurrent write problems. Avoiding SQLite for high write concurrency is the best option, but WAL mode and a high lock timeout can be used if you must use SQLite for such situations.

blog.skypilot.co8 min read

FINDING LEAKED PASSWORDS WITH AI: HOW WE BUILT COPILOT SECRET SCANNING

GitHub Copilot secret scanning uses AI to detect generic passwords in codebases. The development team faced challenges with unconventional file types and the need for resource-efficient scaling, leading to improvements in offline evaluation, prompt engineering, and workload-aware request management. Mirror testing was necessary for high precision and a low false positives rate.

github.blog9 min read

RESOURCE PREFETCHING MAY SLOW DOWN YOUR WEBSITE

While prefetching is supposed to improve website performance by loading resources in advance, it can sometimes worsen loading speed by competing with critical content for bandwidth. Despite being assigned the lowest priority, prefetch requests may initiate too early, delaying the loading of important elements like the Largest Contentful Paint (LCP). To prevent this, you can inject prefetch hints via JavaScript after the initial page load to make sure essential content loads first.

debugbear.com5 min read

03OPINIONS & ADVICE

LLM SUBSCRIPTIONS VS. APIS VALUE FOR MONEY

LLM subscriptions like ChatGPT Plus and Claude Pro are cheaper than using their API equivalents. The potential AI usage one could get from these $20 subscriptions can potentially exceed $1300 per month for Claude and $14,661 for ChatGPT if fully used. Even with lower usage, the subscription still provides a cost-effective alternative to direct API access.

asad.pw5 min read

GOODBYE, SKYPE: A PRODUCT INSIDER'S TAKE ON THE ICONIC APP'S FALL

The downfall of Skype was due to a lack of focus, prioritization of features over quality, and a failure to capitalize on opportunities like the COVID-19 pandemic. Plus, Microsoft's focus on Teams made Skype redundant and obsolete.

blog.logrocket.com7 min read

HOW TO DO THOUGHTFUL CODE REVIEWS

Before sending out code for a review, devs should do a self-review and break down large changes into smaller pull requests. The code reviewer should provide specific, actionable feedback. Repetitive tasks like formatting should be handled by linters and AI agents.

links.tldrnewsletter.com8 min read

04LAUNCHES & TOOLS

NUT

Nut is an open-source project that combines debugging technology with AI to automate bug fixing during app dev. It uses recording capabilities to provide AI with the context needed to effectively debug code generated through prompting, making creating apps without having to manually write code easier.

nut.newTool

STYLE OBSERVER

Style Observer is an observer library that lets you observe CSS changes and run JS.

github.comGitHub repository

05MISCELLANEOUS

WHY FASTDOOM IS FAST

The fastDOOM port of DOOM (a video game) runs much faster on a restored IBM PS/1. fastDOOM's speed improvements are from various optimizations, such as code cleanup, strategic inlining, and renderer choices.

fabiensanglard.net14 min read

DEALING WITH (HYPOTHETICAL) SHAM PACKAGES

This post discusses a hypothetical scenario where a malicious package, a "Swindle" in the "Sham" language ecosystem, is introduced into a software supply chain. In this case, an engineer might unknowingly merge a malicious update through automated dependency management, leading to potential security breaches. It then goes over how to discover the compromise and deal with it properly.

blog.rubygems.org6 min read