Search the archive
Full-text search across article titles and summaries. Refine with sector, year, content type, and reading-time filters.
Results
9,381 matchesHANDLING UNIQUE INDEXES ON LARGE DATA IN POSTGRESQL
A production deployment failed due to a PostgreSQL limitation on unique index size for large text fields. This limitation is because PostgreSQL stores data in 8KB pages and enforces a maximum index entry size of roughly 2.7KB (1/3 of a page) within B-Tree indexes to optimize performance and page splitting. The solution involves creating a new column to store a hash of the large text field, implementing a trigger to automatically generate the hash on insert or update, and then creating a unique index on this hash column.
UNCOMMON USES OF PYTHON IN COMMONLY USED LIBRARIES
Common Python libraries often use Python in uncommon ways. `super()` in Python base classes is often used for cooperative multiple inheritance, and mixins are strategically applied for modularizing optional features. Relative imports are used for correct package resolution, and the `__init__.py` file doesn't always have the same purpose across packages.
WHEN FIGMA STARTS DESIGNING US
Figma is subtly pushing designers towards an engineering-centric approach through features like Auto Layout and Dev Mode. These features encourage premature optimization and a narrowing of the design space by prioritizing structure and consistency over exploration and spontaneity. This trend can lead to a monoculture in design, where everything feels similar due to shared constraints imposed by the tool.
A NON-ANTHROPOMORPHIZED VIEW OF LLMS
Anthropomorphizing LLMs with concepts like consciousness or ethics is misleading because they are essentially complex mathematical functions generating text. The real challenge lies in quantifying and bounding the probability of LLMs generating undesirable sequences, a task that is difficult because of our inability to define what exactly "undesirable" is. Focusing on LLMs as powerful sequence generators, rather than attributing human-like qualities to them, is necessary for clearer thinking about their impact and potential risks.
Sponsored
ADD SERVER-SIDE SUPPORT FOR MCP IN NEXT.JS
Clerk now supports server-side MCP in Next.js with a single API route—no extra services needed. Scorecard cut their MCP code from 1,000 lines to just 70. It's the fastest way to ship multi-tenant logic with Clerk. Read the changelog [14].
MORPH
Morph is a fast AI code edit application with models like morph-v3-fast. It is capable of applying edits at 4,500+ tokens/sec by referencing existing code and offers an alternative to slow, full-file rewrites.
BNA UI
BNA UI provides Expo React Native UI components designed for both iOS and Android. The library includes components, charts, hooks, and themes.
ZERO
Zero is an open-source AI email solution focused on data privacy and self-hosting. It allows users to integrate multiple email providers like Gmail while improving email functionality with AI agents.
ADDING A FEATURE BECAUSE CHATGPT INCORRECTLY THINKS IT EXISTS
This dev noticed an influx of ChatGPT screenshots containing ASCII tablature being uploaded to Soundslice, his sheet music scanning service. He discovered that ChatGPT was falsely advertising that Soundslice supported ASCII tablature import, leading users to believe the feature existed. Faced with this unexpected "market demand" driven by AI misinformation, his team decided to actually build an ASCII tab importer.
I USED O3 TO PROFILE MYSELF FROM MY SAVED POCKET LINKS
This dev profiled themselves using their saved Pocket articles before the service shut down. They used OpenAI's o3 model to analyze their saved URLs. o3 accurately predicted the author's age, location, family size, career, and other details based on the content they had saved.
THE ERA OF EXPLORATION
Future AI progress will depend more on exploration, acquiring new and informative experiences, rather than just scaling parameters. Pretraining LLMs inadvertently pays an "exploration tax" by learning a rich sampling distribution, allowing smaller models to later distill reasoning abilities. Exploration has two key axes: "world sampling," deciding which problems to learn from, and "path sampling," determining how to gather data within those problems.
THE FIRST TIME I WAS ALMOST FIRED FROM APPLE
A newly hired Apple engineer almost got fired for including copyrighted T.S. Eliot poetry in the Color Picker's code as an Easter egg, a mistake that taught him a valuable lesson about intellectual property.
CURSOR'S STEALTH BAIT AND SWITCH: FROM UNLIMITED TO UNUSABLE - MY STORY
A Cursor user writes about a frustrating experience of constant, unannounced downgrades and limitations to their "unlimited" AI coding tool subscription, which ended up being a bait-and-switch scenario.
'I'M BEING PAID TO FIX ISSUES CAUSED BY AI'
Businesses are hiring professionals to fix problems and rewrite generic, faulty content and code generated by AI tools like ChatGPT, often due to unrealistic expectations and a lack of understanding of AI's limitations.
BEHIND THE SCENES: SPEEDING UP PGSTREAM SNAPSHOTS FOR POSTGRESQL
pgstream is an open-source change data capture tool that improved its snapshot performance for PostgreSQL databases. The initial implementation used native tools for schema capture and transaction snapshots for data reads, but suffered from slow write speeds. By switching to binary COPY FROM for bulk inserts and deferring index creation, pgstream improved its snapshot performance, surpassing pg_dump/pg_restore in speed.
SERVING 200 MILLION REQUESTS PER DAY WITH A CGI-BIN
1990s-era CGI can still handle over 200 million requests per day on modest hardware using Go and SQLite. CGI's performance bottleneck was traditionally attributed to the overhead of process creation for each request, compounded by slow scripting languages. However, advancements in hardware and the use of faster languages like Go and Rust have improved CGI's efficiency and its ability to use multiple CPU cores properly.
ASYNC QUEUE – ONE OF MY FAVORITE PROGRAMMING INTERVIEWS (CAN AI BREAK IT?)
This dev's favorite programming interview question involves an asynchronous queue designed to prevent a faulty server from handling multiple simultaneous requests from a single-threaded client. The interview starts with implementing a `sendOnce` function and then progressively adds complexity with features like minimum delays, `sendMany` functionality, request cancellation, retries, and prioritization. This question tests a candidate's ability to reason about code, handle new requirements, and adapt to a single-threaded environment.
WHY I DON'T THINK AGI IS RIGHT AROUND THE CORNER
NVIDIA IS FULL OF SH*T
This dev criticizes NVIDIA for issues with the RTX 50 series launch, including scalpers, melting power connectors, and misleading marketing. NVIDIA prioritizes data center GPUs over consumer graphics cards, leading to defective products with technologies like DLSS used to compensate for insufficient hardware performance.
OPENCODE
Opencode is an open-source AI coding agent for use in the terminal. It has similar capabilities to Claude Code but is provider-agnostic, supporting Anthropic, OpenAI, Google, and local models. Opencode has a terminal-based user interface and a client/server architecture, allowing for remote control from various devices.
OMNITOOLS
OmniTools is a self-hosted, web-based app with a variety of online tools for simplifying tasks related to coding, images, videos, PDFs, and more. It processes files entirely client-side.
MAKING LANGUAGE MODELS PLAY BABA IS YOU
"Baba is Eval" is a project that turns the puzzle game "Baba is You" into a benchmark environment for language models. The project enables models to fetch game states, control the level through actions like movement and undo, and automate menu navigation. Initial experiments with Claude 4 show poor performance, which means AI needs better reasoning capabilities and context management for solving more complex levels.
LOCAL-FIRST SOFTWARE: YOU OWN YOUR DATA, IN SPITE OF THE CLOUD
"Local-first software" combines the benefits of cloud apps, like real-time collaboration and multi-device access, with the data ownership and control of traditional local applications. This approach prioritizes local storage and networks over centralized servers, making data modifications and access faster and independent of constant internet connectivity. Conflict-free Replicated Data Types (CRDTs) are a promising foundational technology for achieving these goals, but more research and experimentation are still needed.
HOW TO NAVIGATE THE AI DISTRIBUTION SHIFT
The emerging AI distribution shift is happening quickly. To navigate it, companies must strategically bet on a single AI platform, prioritizing retention, engagement, and user quality over initial scale, and understand the value exchange mechanisms at hand. Retention and product quality still matter over all else, but taking advantage of new AI distribution channels can launch products into escape velocity.
DATA ON AI-RELATED SHOW HN POSTS
Hacker News data reveals a large increase in AI-related "Show HN" posts, which now represent over 20% of the total, but these posts receive fewer votes and comments compared to non-AI-related submissions.
APPLE_GENERATIVE_MODEL_SAFETY_DECRYPTED
This repository contains decrypted safety filter files for Apple's generative AI models and provides tools and instructions to extract the encryption key and decrypt the overrides.
12-FACTOR AGENTS - PRINCIPLES FOR BUILDING RELIABLE LLM APPLICATIONS
This post presents principles for building reliable, scalable, and maintainable LLM-powered apps, with the core idea being that successful LLM apps often rely more on traditional software engineering than complex AI frameworks.
PROFILE README GENERATOR
This is a tool that makes the creation of customized GitHub profile READMEs easier.
WHAT'S THE DIFFERENCE BETWEEN ORDINARY FUNCTIONS AND ARROW FUNCTIONS IN JAVASCRIPT?
JavaScript has three ways to create functions: function declarations, function expressions, and arrow functions. The main differences are that arrow functions are more concise (using `=>` syntax) and don't have their own bindings to `this`, making them behave differently when used as object methods. Arrow functions also cannot be used as constructors with the `new` keyword, unlike regular functions, which can serve as constructor functions in older JavaScript patterns.
COLOCATING AGENT INSTRUCTIONS WITH ENG DOC
Putting agent instructions within existing engineering documentation can avoid information duplication. After doing so, this method was tested with the Gemini CLI AI agent, which successfully followed instructions to convert a code example into a buildable and testable component.
NEXT.JS PROMISE RACING
"Promise racing" is where the server waits for a promise to resolve unless it takes longer than a specified timeout (in this case, 1 second). If the promise resolves quickly, the data is sent directly to the client without any loading state, but if it takes too long, a loading spinner is shown while the promise continues resolving on the client side. This provides performance benefits by avoiding unnecessary loading states for fast requests while still gracefully handling slower ones.
FLOUNDER MODE
The "Hollywood style" of pursuing various creative endeavors conflicts with the Silicon Valley pressure to achieve unicorn status through a single company. However, a joyful, interest-driven approach to work can be both fulfilling and impactful. It's also important to resist pressures at first to find your strengths and interests.
YOU ARE WHAT YOU LAUNCH: HOW SOFTWARE BECAME A LIFESTYLE BRAND
Software has transitioned from being purely functional to becoming a form of self-expression and a lifestyle brand. The apps people choose, like Notion and Obsidian, signal taste and align them with specific tribes or identities. Companies are now focusing on aesthetics and vibes in addition to functionality, creating tools that reflect and reinforce a curated image.
PENNYBASE
Pennybase is a lightweight, file-based Backend-as-a-Service written in Go, with core backend features like a REST API, authentication, RBAC, and real-time updates, all without external dependencies. It stores data in CSV files with schema definitions for JSON mapping and uses an in-memory index for faster lookups.
OPENING UP ‘ZERO-KNOWLEDGE PROOF' TECHNOLOGY TO PROMOTE PRIVACY IN AGE ASSURANCE
Google has open-sourced its Zero-Knowledge Proof (ZKP) libraries to promote privacy in age assurance and digital ID solutions. ZKP allows users to prove certain facts about themselves, such as being over 18, without revealing any other personal information.
FREQUENTLY ASKED QUESTIONS (AND ANSWERS) ABOUT AI EVALS
This is a comprehensive overview of how to evaluate LLMs, with practical advice and opinions. For example, it's better to build custom annotation tools for faster iteration instead of using off-the-shelf options. Also, it's better to use binary pass/fail evaluations over Likert scales for clearer LLM thinking.
TOOLS: CODE IS ALL YOU NEED
Instead of relying heavily on MCP for automation, it's better for LLMs to generate code that can then be executed and validated. LLMs are currently better at writing tool-use code where the code is meant to call other tools through APIs.
WASM-AGENTS: AI AGENTS RUNNING IN YOUR BROWSER
Wasm-agents is a project by Mozilla that shows how to create AI agents that run directly in a web browser using WebAssembly and Pyodide.
SPENDING TOO MUCH MONEY ON A CODING AGENT
Allen Pike describes his team's surprising success and cost-effectiveness in using large language models like OpenAI's o3 for coding.
WRITING CODE WAS NEVER THE BOTTLENECK
While LLMs have reduced the cost of writing code, the real bottleneck in software engineering remains understanding, testing, and maintaining code.
THE UNCERTAIN FUTURE OF CODING CAREERS AND WHY I'M STILL HOPEFUL
Despite anxieties about AI and recent tech layoffs, this dev is hopeful for the future of coding careers because human ingenuity is still necessary.
HOW I SCANNED ALL OF GITHUB'S “OOPS COMMITS” FOR LEAKED SECRETS
A white-hat hacker found leaked secrets in deleted GitHub commits by scanning force push events using the GitHub Event API and GH Archive. He developed a tool to identify these "Oops Commits" and discovered thousands of active secrets, including one that could have led to a massive supply-chain compromise in the Istio project. The process involved manual searching, a vibe-coded triage tool, and an eventual AI-driven approach to identify valuable secrets.
REMIXING SHOPIFY'S ADMIN: HOW WE MADE IT 30% FASTER AND AI-READY
Shopify rebuilt its Admin platform using Remix, which led to a 30% performance improvement thanks to using Remix loaders for parallel fetching and having intelligent prefetching. This rebuild also made the system AI-ready by giving it structured route information and form schemas after the rebuild. The system itself handles 67 million daily page views and contributions from 101 teams with 350+ daily code merges.
STOP BUILDING AI AGENTS
Devs often jump to building complex AI agents powered by LLMs when simpler workflows would be better and easier to debug. There are multiple LLM workflow patterns, like prompt chaining and routing, that can solve many problems without the complexity of full-blown agents. Agents, where the LLM controls the workflow, should only be implemented for dynamic tasks requiring human oversight.
WHY I'M DIALING BACK MY LLM USAGE
When rebuilding infrastructure with Go and ClickHouse, this dev found that LLMs produced buggy and messy code, leading to a cycle of fixing one error only to create new ones. This experience showed a gap between the hype surrounding AI productivity and the reality of its limitations in production environments. Instead, LLMs are best for small tasks like refactoring.
HOW TO WRITE COMPELLING SOFTWARE RELEASE ANNOUNCEMENTS
Release announcements should focus on how the user's experience is improved, not just listing features or bug fixes. Instead of focusing on what developers did, highlight what users can now do with the software, using clear language and visuals like graphs and concise demos.
GLASS3D GENERATOR
The Glass3D generator allows devs to create a 3D glass effect (like Apple Liquid Glass) and customize visual effects like blur, color, and texture, with CSS code provided.
INTRODUCING THE FIRST ALPHA OF TURSO: THE NEXT EVOLUTION OF SQLITE
Turso has released the first alpha of its SQLite rewrite, which addresses SQLite's limitations like its lack of concurrent writes, limited real-time capabilities, and a closed development community. The alpha has an asynchronous interface to replace SQLite's synchronous API and includes core database operations, though indexes, multi-threading, and other advanced features are still in development.
WHATSAPP-API-JS V6
whatsapp-api-js is a TypeScript framework for server-agnostic integration with the official WhatsApp Business API, with features like message handling and webhook setup.