TLDR Web Dev

TLDR WEB DEV 2024-08-21

6 sections16 entrieslinks blockcomplete parse

Parse notes

  • Subscription/account footer truncated before parsefooter_truncated

01GENERAL

02ARTICLES & TUTORIALS

NEVER CALL NEW DATE() INSIDE YOUR COMPONENTS

It's good not to call impure functions like `new Date()` inside React components, especially when setting the initial state. Doing so makes testing difficult due to inconsistencies. Instead, it's better to pass the impure function or its result as a prop, which this article shows through code examples.

kyleshevlin.com5 min read

MAKING DATABASE SYSTEMS USABLE

Traditional database systems have a tough time providing intuitive and user-friendly interfaces. A 2007 paper identifies several "pains" associated with relational databases, such as the complexity of joins, overwhelming options, unexpected results, and difficulties with data creation. There are potential solutions for improving database usability, including the development of presentation data models, integrated provenance, intuitive interactions, using LLMs, and flexible schema design.

muratbuffalo.blogspot.com9 min read

03OPINIONS & ADVICE

AN UNDERRATED SOFTWARE ENGINEERING INTERVIEW QUESTION

A "bug squash" interview, where candidates are presented with a real codebase containing a bug and asked to find and fix it, is an underrated software engineering interview question. This author believes this type of interview is more realistic and engaging than traditional coding challenges, as it reflects the everyday work of software engineers and allows candidates to showcase their debugging skills and understanding of codebases.

blog.jez.io7 min read

TOASTS ARE BAD UX

Toasts might be a bad user experience because they are disruptive and often appear far from the user's focus. As an alternative, this author suggests using a more integrated approach, such as a loading indicator, to provide feedback for actions. He provides specific examples from YouTube and Gmail to illustrate how toasts can be replaced with more user-friendly methods.

maxschmitt.me2 min read

ON FINISHING THINGS

This author struggles to finish personal projects because of the lack of a clear definition of "finished," the absence of external accountability, and the fear of sharing imperfect work. Writing a detailed product spec upfront and setting time constraints for projects helps him get past this block.

alexreichert.com7 min read

04LAUNCHES & TOOLS

INTRODUCING ZED AI

Zed AI is a hosted service that integrates AI-powered coding into the Zed text editor, letting developers use LLMs while maintaining full control over their code.

zed.dev9 min read

@SWAN-IO/BOXED

@swan-io/boxed provides TypeScript building blocks for functional programming, including immutable types like Option, Result, and Future. It makes development easier with a chaining API, reliable types, and compatibility with pattern matching libraries.

github.comGitHub repository

PRERENDERING WITH PRESET VITE

Preact's Vite preset now includes built-in prerendering. By generating HTML at build time, this approach improves initial load speeds and user experience with minimal changes to existing codebases.

preactjs.com11 min read

05MISCELLANEOUS

FINDING A 鈥楬ARMLESS' PI-HOLE VULNERABILITY

This bug bounty hunter conducted a security audit of the open-source ad blocker Pi-hole and discovered a "harmless" vulnerability in the api.php file. The vulnerability allowed unauthenticated users to change the CPU temperature format displayed on the Pi-hole status page. While considered inconsequential by the Pi-hole team, the bug bounty hunter reported the issue and contributed a fix to the code.

kiyell.com7 min read