TLDR Web Dev

TLDR WEB DEV 2024-06-21

6 sections15 entrieslinks blockcomplete parse

Parse notes

  • Subscription/account footer truncated before parsefooter_truncated

01GENERAL

Sponsored

COLLABORATING ON APIS IS EASIER WITH POSTMAN

When every dev team relies an APIs, collaboration is crucial. To ship better software, API producers and consumers need to share, discover, and reuse high-quality API assets.

postman.comSponsor

02ARTICLES & TUTORIALS

SO WE'VE GOT A MEMORY LEAK…

This developer tackled a memory leak in his high-traffic Rails app by analyzing heap dumps and using tools like rbtrace, heapy, and sheap. The root cause was traced to a combination of an issue in ActiveSupport::Subscriber and invalid URIs processed by the Bugsnag gem. He goes over his debugging process throughout the article.

stevenharman.net13 min read

CUSTOM ELEMENTS DON'T REQUIRE A HYPHEN AS A SEPARATOR

This author was initially confused about the rules for valid custom element tag names, as his Codepen tests with emojis failed due to a JavaScript error. After fixing the error, they realized that custom element tag names only need a hyphen, not necessarily as a separator. This means that tags like mytag- or h1- are valid, although using them might not be recommended.

blog.jim-nielsen.com3 min read

OPTIMIZING AI INFERENCE AT CHARACTER.AI

Character.AI optimizes LLM inference by using memory-efficient architecture design with techniques like Multi-Query Attention, hybrid attention horizons, and cross-layer KV sharing. It also utilizes stateful caching to store attention KV on host memory between chat turns to get a 95% cache rate. Other optimizations, like integer quantization, added allowed the company to reduce serving costs by 33x compared to its initial state in late 2022.

research.character.ai4 min read

03OPINIONS & ADVICE

WHY WE NO LONGER USE LANGCHAIN FOR BUILDING OUR AI AGENTS

Octomind decided to stop using LangChain for building AI agents despite initially finding it helpful. LangChain's high-level abstractions made its code more complex and difficult to maintain, especially as its requirements became more sophisticated. The company advocates for a "building blocks" approach using simple, low-level code with carefully selected external packages.

octomind.dev8 min read

THOUGHTS ON CODE REVIEWS

Code reviews are necessary for maintaining code quality and sharing knowledge within a team, but they can be inefficient if not optimized. Principles, design docs, and static analysis should be used to reduce the scope of reviews. Implementing an Automate/Defer/Pair framework allows teams to handle code changes quickly based on complexity and risk.

open.substack.com16 min read

04LAUNCHES & TOOLS

ROOSTER

Rooster is a framework-independent JavaScript rich-text editor that operates within a single HTML div element. It uses a "Content Model" layer to manage editing operations and convert them into HTML. Rooster includes packages for core functionalities, API access, DOM manipulation, and plugins.

github.comGitHub repository

REASSURE

Reassure automates performance regression testing for React Native apps by measuring render times and function executions. It integrates with Jest and React Native Testing Library or React Testing Library to provide detailed reports on performance changes.

github.comGitHub repository

ANNOUNCING TYPESCRIPT 5.5

TypeScript 5.5 comes with inferred type predicates, RegEx syntax checking, a JSDoc @import tag, and more.

devblogs.microsoft.com37 min read

05MISCELLANEOUS

ZIG VS RUST AT WORK: THE CHOICE WE MADE

A company chose Zig over Rust for a critical library rewrite. It found that the Zig compiler and build system's ability to integrate easily with existing codebases and support multiple target platforms was a strong factor.

ludwigabap.bearblog.dev5 min read

THE PROGRAMMER'S BRAIN

This article explores how developers can improve their coding skills by understanding and optimizing their cognitive processes. It covers reading and understanding code more efficiently, memorizing syntax, problem-solving strategies, avoiding cognitive overload, and best practices for naming variables and refactoring code. It also talks about the importance of understanding the cognitive dimensions of programming languages and codebases.

yoan-thirion.gitbook.io45 min read