The Strange Behavior of the void Type in TypeScript (6 minute read)
In TypeScript, the `void` type signifies "nothing" and is mostly used to declare the return type of functions. While you can declare a variable as `void`, it's generally not recommended as it can only hold the value `undefined`, making it impractical. Functions declared with a `void` return type are expected to return `undefined`, either explicitly or implicitly. However, due to how TypeScript handles function type declarations and shorthand syntax, functions with a `void` return type can actually return non-`undefined` values - it's important to note that this is a special case to accommodate common usage patterns.
|
The Rise of Open Source Time Series Databases (8 minute read)
Time series databases store and query data with timestamps, which is useful for infrastructure monitoring, finance, and IoT applications. These databases are an alternative to traditional relational databases, especially when dealing with billions or trillions of data points. The future of time series databases will likely involve solutions for high cardinality, where a large number of unique data points can strain performance, and time series churn, where frequently changing data points can make historical analysis challenging.
|
|
Monolith First (5 minute read)
A "monolith-first" strategy is better for building new applications, even if microservices are anticipated later. Starting with a monolith is more practical and less risky than starting with microservices due to the significant overhead associated with managing a distributed system. Also, it's hard to define stable service boundaries upfront, making a monolith a better platform for experimentation and refining boundaries before moving to a microservices architecture.
|
Why you should "design it twice"? (3 minute read)
Brainstorming at least two distinct designs when creating software allows you to compare and identify the best solution and potentially combine ideas from both. This requires more upfront effort, but prevents costly rework later and improves design quality.
|
|
Security layer for developers (Sponsor)
Arcjet helps developers protect their apps in code (no agents required). Implement bot protection, rate limiting, email validation, PII detection, and defense against common attacks; test everything locally so you don't break prod. Start free.
|
Amplify UI (GitHub Repo)
Amplify UI is an open-source library that offers a range of customizable, accessible, and cloud-connected UI components. It has connected components for streamlined cloud workflows, primitive components for consistent branding, data-bound components for dynamic data display, and various theming options.
|
Conform (GitHub Repo)
Conform is a type-safe form validation library for HTML forms. It integrates with server frameworks like Remix and Next.js.
|
|
Ex-CrowdStrike employees detail rising technical errors before July outage (8 minute read)
A report says that CrowdStrike prioritizes speed over quality, which may be a reason behind the huge failure it had recently, which paralyzed airlines and caused significant financial losses. Former employees claim they repeatedly raised concerns about rushed deadlines, insufficient training, and increasing technical problems, but their warnings were ignored. The company disputes these claims, stating that it is committed to quality control and that the information came from disgruntled former employees.
|
Grounding AI in reality with a little help from Data Commons (8 minute read)
Google's DataGemma models address the issue of hallucinations in LLMs by grounding them in real-world data from the Data Commons knowledge graph. Two approaches are used: Retrieval Interleaved Generation (RIG) and Retrieval Augmented Generation (RAG). RIG fine-tunes the model to identify statistics and verify them against Data Commons, while RAG retrieves relevant information before the LLM generates text.
|
Exploring the scalable matrix extension of the Apple M4 processor (16 minute read)
Apple M4 chip's Scalable Matrix Extension (SME) unit can achieve impressive peak compute rates for matrix multiplication. However, its performance for vector operations is much lower due to limitations in data movement. This is due to the architecture's reliance on tile storage, where data needs to be moved from the CPU registers to the ZA storage for optimal performance.
|
|
Why Kubernetes needs an LTS (7 minute read)
Kubernetes should adopt a Long-Term Support (LTS) model with a 24-month support window to address the challenges of frequent upgrades and encourage best practices for cluster management.
|
|
Love TLDR? Tell your friends and get rewards!
|
Share your referral link below with friends to get free TLDR swag!
|
|
Track your referrals here.
|
Want to advertise in TLDR? ð°
|
If your company is interested in reaching an audience of web developers and engineering decision makers, you may want to advertise with us.
If you have any comments or feedback, just respond to this email!
Thanks for reading,
Priyam Mohanty, Jenny Xu & Ceora Ford
|
|
|
|