Sponsored
Sooner or later, any software business will be faced with the Build vs. Buy question. This free ROI calculator [9] (by Qrvey) will help you understand the financial impact of a decision to continue to build analytics in-house or integrate an embedded analytics solution. Calculate your costs (free tool, no forms) [9].
Run a full Postgres database locally in WASM with reactivity and live sync.
Convert unstructured tech specs, design docs, and code into structured datasets for model fine-tuning.
A gradient generator that lets you make colorful blends between different colors.
This post analyzes Hacker News posts to understand community sentiment and trends. Using a large language model, its author analyzed over 100,000 posts and millions of comments to identify popular topics, like programming and computer science, and topics that evoke negative reactions, such as FTX and police misconduct. Certain topics, like GNOME and Google, can generate both positive and negative reactions because they are divisive.
Rebecca Yi and Jordan Cutler, two Senior Web Engineers at Pinterest, share their onboarding experience, detailing the structured learning program they went through, from the first week's Pintro sessions to launching their first projects two months later. The onboarding program included a combination of company-wide engineering sessions (Basecamp) and team-specific web engineer curriculum, which covered topics like web architecture, data fetching, and performance optimization. They both found their first projects, a performance audit and a Pin video feature improvement, an impactful and valuable learning experience.
This blog post discusses the complexities of location-based programming and the challenges of accurately determining a user's location. There are various methods used like user reporting, device heuristics, IP address, and edge compute. However, none of these methods can be fully trusted due to user dishonesty, device manipulation, IP spoofing, and the inherent limitations of edge compute.
Focusing solely on data to measure developer productivity is ineffective and potentially harmful - actual human interaction and relationships should be focused on instead.
Puter is an advanced, open-source internet operating system designed to be feature-rich, exceptionally fast, and highly extensible.
Good documentation is concise, well-structured, and uses plain language.
The "Read After Write" problem arises when a service attempts to read data immediately after writing it, but the changes may not be reflected in all nodes of the database yet. This is a common problem in distributed systems. This article goes over different database replication strategies, in terms of latency and data consistency. It suggests potential solutions, such as retrying reads, reading from the primary node, and accepting occasional inconsistencies depending on the application's requirements.
Building useful scalable AI applications requires developers to have good data preparation (data cleansing and management) and use retrieval-augmented generation. Models used should be pre-trained or fine-tuned. Custom models can be developed in-house, but usually will require a large amount of capital. Developers should be mindful of latency, memory, compute, caching, and other factors to make sure the user experience is good.
Markus, a solo developer, uses a single programming language, Go, for all his projects. This allows him to move faster as he has the deepest understanding of the language, and so doesn't have to context switch across languages as much. Furthermore, as he develops, he continues to specialize in Go, which gives him more opportunities in the future.
Distributed systems are naturally relational. Function invocations in distributed systems can be implemented as triggers on relational tables, where data updates trigger function executions. This model allows for efficient parallel processing, eliminates the need for manual coordination between systems, and makes writing code easier.
Instead of always seeking new beginnings, it's useful to “repair and remain” by fixing what's broken first. It's not easy to just stay put, but embracing the slow, hard work of staying put can be useful.
Sponsored
CodeRabbit [9] is now the most installed AI app on GitHub and GitLab [9], and developers are raving about its ability to catch bugs and cut code review time. Checkout examples on how to use an AI code reviewer [10]. CodeRabbit generates context-aware, line-by-line code reviews and 1-click fixes, while learning from user feedback in every
Supabase has launched postgres.new, an in-browser Postgres sandbox with AI assistance. This tool utilizes PGlite, a WASM version of Postgres, allowing users to spin up databases directly in their browser. postgres.new also has AI-powered features, such as drag-and-drop CSV import, report generation, charting, and ER diagram creation.
Whirl is a collection of CSS loading animations. It offers a variety of pre-made animations that you can easily incorporate into your web projects through copy-paste.
Browser engines now support two new CSS features, `@starting-style` and `transition-behavior: allow-discrete`, that create entry animations for elements that animate from `display: none`, including those animating into the top layer.
This blog post chronicles the evolution of HackerNews' search functionality from its inception in 2007 to the present. It highlights three distinct generations of search engines: early independent efforts, Octopart/ThriftDB-powered HNSearch, and the current Algolia-powered system.
Scholars have been working for over a century to piece together the Epic of Gilgamesh, one of the world's oldest literary texts, from fragments of clay tablets. The task is daunting, as there are hundreds of thousands of tablets and only a handful of experts in cuneiform. However, a new AI project called Fragmentarium is accelerating the process, allowing researchers to match fragments and discover new segments of Gilgamesh at a much faster rate. This has already led to the discovery of hundreds of missing words and lines.
AI companions may exploit emotional bonds in humans and become “addictive intelligence.” A lot of people are using AI as a companion, friend, or to act as characters. This creative usage for AI is booming, but also can be addictive, as seen in the Character.AI subreddit when the platform goes down.
Node.js toolbox is a catalog of Node.js libraries.
A historical evolution of HTTPS usage on the web, from its origins and adoption challenges to its eventual widespread acceptance.
This document proposes a new HTML attribute called `handwriting` that allows web developers to control whether an element or its subtree allows handwriting input.
A 3D animated bookshelf for ebooks.
This blog post shows off a novel web dev architecture that removes the need for a separate database. It uses in-memory data storage, periodic snapshots, and transaction logs for high availability. The author details how the Raft Consensus Protocol can be integrated to achieve 99.999% availability, making it suitable even for demanding enterprise clients.
This article explains how to create a simple React state management library using the `useSyncExternalStore` hook introduced in React 18. It outlines the key components of the library, including subscribing to state changes, retrieving the current state, and updating the state. The article also compares this approach to using React Context and discusses potential improvements like using reducers and immer for state management.
Data infrastructure projects are often quickly replaced and difficult to maintain. To prevent this, it's important to avoid "resume-driven development," where teams prioritize trendy technologies over practical needs, and the "key person dependency" problem, where only one person has all the knowledge of a system.
2024.08.12·seattledataguy.substack.com·11 min read·TLDR Web Dev Programmers should embrace a mindset of skepticism and constant verification, as trusting abstractions can lead to unexpected problems. Abstractions, while necessary for efficient thinking, are often leaky and can fail in unpredictable ways, so it's important to understand the underlying mechanisms. That's why "trust, but verify” is necessary when working on a project with a lot of abstractions.
Microfrontends (MFEs) are often touted as a solution for large, complex front-end applications, but they should be a last resort. While MFEs can offer benefits like team independence and modularity, they also introduce complexities like increased deployment overhead and a distributed monolith if not implemented correctly. Before adopting MFEs, prioritize refactoring your codebase and try starting with a modular monolith first.
While building a modern TUI (Terminal UI) framework, this author found that it's important to have smooth animation in terminals, achieved through techniques like overwriting instead of clearing, single-write updates, and the Synchronized Output protocol. He also advocates for DictViews for efficiently comparing data structures, and lru_cache for improving performance by caching function results.
Sponsored
How Clerk mitigated the recently discovered Open Response Type vulnerability. We dive into the technical details of the vulnerability, why most customers were protected by default, and how we mitigated the attack for the last few.
Nous is an AI platform with advanced autonomous agents for complex workflows, offering features like intelligent planning, flexible function calling, LLM integrations, and human-in-the-loop capabilities.
pg_replicate is a Rust crate published by Supabase that simplifies building data pipelines for replicating Postgres data to other systems by providing high-level abstractions over Postgres's logical streaming replication protocol.
This author created a massive 175-font pixel font megapack, using Rust to build his own custom font generation toolchain. He aimed to improve upon his previous packs by offering a wider range of styles and language support, and implemented automatic kerning and quality control measures to streamline the process. The author developed a tool called pifo, which uses algorithms to analyze and generate contours from pixel art, calculates kerning pairs, and exports the fonts in various formats.
A personal data pipeline is a system to collect, manage, and utilize personal data generated from various online services. This article goes over an architecture to create this pipeline, made of Data Getters, Processors, and Recipes, allowing users to extract, transform, and combine data from different sources.
This article goes into the four chips responsible for the SNES (Super Nintendo Entertainment System) graphics system: the two Pixel Processing Units (PPU1 and PPU2) and two SRAM chips. The PPU1 acts as the brain, while the PPU2 acts as a compositor to display the visuals. The article then discusses the different types of RAM used for storing graphics data, including VRAM (which is designed uniquely), OAM, and CGRAM.
An experienced software engineer asks for advice on pricing a product that converts designs to interactive code and commenters recommend various books.
OpenDevin is an open-source platform for developing and evaluating AI agents capable of interacting with the world through code, command lines, and web browsing.
Verso is a web browser built on top of the Servo web engine.
This blog post describes a simple approach to building Rust GUIs using Flutter and the flutter_rust_bridge library.
This is a practical guide to refactoring a messy React component through gradual improvements. First, one should make sure that tests are written so that no functional changes occur during refactoring. Then, linting rules should be used to prevent future code duplication and dead code. The guide highlights several key areas for refactoring, including splitting components based on responsibilities and extracting utility functions to improve code organization and maintainability.
Figma successfully migrated its core services to Kubernetes within 12 months. Its team scoped the migration to focus on core system changes while maintaining abstraction for users. They implemented load testing, incremental rollout, and real-world workload testing, which led to better reliability with a three-cluster setup.
We should replace the word "goals" with "quests" when thinking about personal aspirations. Goals are often seen as things we'll do later, while quests are more exciting and transformative experiences. The quest mentality encourages us to embark on personal journeys of self-discovery and achievement, rather than just trying to reach a specific destination.
This executive, who works at a logistics company, is frustrated with the company's inadequate third-party software and considering building their own. They are concerned about the complexity of the transition and the difficulty of attracting tech talent to the non-glamorous logistics industry. Commenters suggest initially hiring a small team of experienced freelancers to test the waters and thoroughly documenting requirements before building a new system with a focus on capturing the company's domain knowledge.
Canonical S-Expressions (csexp) is a compact and efficient data format that stores data as lists of bytes. It's easy to parse and ideal for storing raw binary data. However, csexp lacks support for complex data structures like associative arrays, requiring custom serialization and deserialization logic.
Stack Auth is a managed user authentication solution. It is developer-friendly and fully open-source. It supports Next.js, has prebuilt auth components, and supports RBAC.
RoundtableJS is an open-source JavaScript library for building complex surveys, forms, and data annotation tasks. It's designed to be simple but completely customizable. It makes it easy to add complex logic (e.g. branching, skipping, looping), modify question types, and fully customize the design.