HOW TO EASILY REPRODUCE A FLAKY TEST IN PLAYWRIGHT
Debugging tests that work locally but randomly fail on CI can be frustrating. This post provides tips and a single command to help consistently reproduce these test failures locally.
Full-text search across article titles and summaries. Refine with sector, year, content type, and reading-time filters.
Debugging tests that work locally but randomly fail on CI can be frustrating. This post provides tips and a single command to help consistently reproduce these test failures locally.
Deep Research has been upgraded to use the Gemini 2.5 Pro Experimental model under the hood.
After a file searching stress test, it was found that Chrome can be almost 60% faster than Firefox at the same task using web workers.
Sponsored
If slow QA processes and flaky tests are a bottleneck for your engineering team, you need QA Wolf.
Synchronous `await` is technically possible in JavaScript and it could remove the need for duplicated synchronous and asynchronous versions of features. However, there are two drawbacks: performance degradation due to the need for every function call to be resumable and concurrency issues requiring mutexes to prevent interruptions in event handlers. While synchronous `await` has nicer usability, the downsides make it impractical.
A benchmark portrayed PostgreSQL's full-text search (FTS) as slow. However, an optimization of pre-calculating and storing the `tsvector` makes it much faster. For reference, the `tsvector` is a data type used for storing preprocessed documents in a format optimized for efficient full-text search. While standard FTS is good enough for matching, better ranking might require extensions like VectorChord-BM25.
eBPF (Extended Berkeley Packet Filter) is a Linux kernel technology that allows users to run sandboxed programs within the kernel space. Netflix uses eBPF to capture TCP flow logs at scale but had challenges attributing IP addresses to the correct workload identities due to IP address reassignment in the cloud. It developed a new attribution method that first accurately attributes local IP addresses by using workload identity certificates and IP address assignment services. Then, its FlowCollector attributes remote IP addresses by tracking IP ownership time ranges learned from flows, which results in accurate, fleet-wide network insights.
Firebreak sprints are dedicated periods where engineers work on self-selected tasks to address technical debt and improve the codebase. These sprints happen between regular development cycles and they should address developer productivity or system reliability, be achievable within the timeframe, and have measurable results that are then documented and communicated.
When using htmx, it's better to prioritize standard HTML features and full-page navigations over the hx-boost attribute, which is supposed to bring over Single-Page Application (SPA) behavior. Using hx-boost can lead to unpredictable issues. Instead, regular links, when combined with things like cache headers and same-origin links, are a better user and developer experience.
GitMCP is an open-source service that turns GitHub projects into Model Context Protocol (MCP) endpoints, letting AI assistants access and understand project documentation. It requires no setup, gives AI assistants semantic search capabilities, and is free.
Apache ECharts is an open-source JavaScript visualization library for both PC and mobile devices. It has many chart types and supports many data formats. The library provides special effects, including 3D visualizations with GL, and dynamic data updates.
AI is changing how devs find solutions, with tools like Copilot and Claude becoming popular but still having limitations like hallucinations and outdated information. StackOverflow is declining in popularity as a result. To fill the emerging knowledge gap, devs may need to rely more on blog posts and comprehensive guides for info.
AI coding mandates are annoying devs who are forced to use the tools, especially when they introduce errors and increase debugging time. Executives are driven by FOMO and the promise of increased productivity and reduced costs, but are out of touch with the realities of AI coding. The choice to use AI tools should be up to devs themselves.
Devs of single-player games can reduce the memory footprint of each actor by selectively removing unused multiplayer features from the Unreal Engine, which can result in lots of memory savings in large projects.
Hacker News commenters find that search engines are still useful for direct resource location, while LLMs are better for open-ended research, clarifying complex concepts, and summarizing information, though they do hallucinate often.
React component trees implicitly define valid state transitions as a function of state ({transitions} = f(state)), and understanding this model is necessary for handling asynchronous and concurrent updates to prevent users from triggering invalid actions.
DrawDB is a free and open-source tool that helps devs design databases visually and generate SQL with features like exporting, reverse engineering, customization, and collaboration.
The new CSS property `text-wrap: pretty`, implemented in Safari Technology Preview, uses paragraph-based algorithms to improve typography by addressing issues like short last lines and bad rag.
Tusk, Cursor Agent, and Claude Code were tested in generating unit tests for a TypeScript PR with a bug in it. Tusk, a verticalized unit testing agent, outperformed general-purpose agents like Cursor Agent and Claude Code by detecting the bug in 90% of runs and consistently following codebase mocking patterns. While general-purpose LLMs are easily accessible, verticalized agents are better for catching edge cases and for overall reliability.
Zustand and Immer can be used for state management in React apps. Zustand is more of a minimalist state management solution, with much less boilerplate compared to Redux. Immer makes immutable state updates easy, especially with nested data.
There's a "missing middle path" for B2B SaaS startups, a fundraising strategy between the high-growth VC model and bootstrapping. Raising a small amount of capital (under $1M) while maintaining equity allows founders to build profitable, valuable assets without excessive financial risk or sacrificing too much time.
A company using AI models for security vulnerability detection found that recent AI model improvements beyond Claude 3.5-3.7 Sonnet have not improved much on its internal benchmarks or in developers' ability to find new bugs. This goes to show that current benchmarks may not accurately reflect real-world usefulness and generality, with AI labs probably overfitting to specific benchmarks.
Good programmers get knowledge from original sources like documentation, rather than relying on quick fixes from online forums. They also have a deep understanding of tools and the ability to thoroughly analyze error messages. They can break down complex problems into manageable pieces and are unafraid to dive into code.
Browser MCP is a tool that connects AI apps to your web browser, allowing them to automate tasks, such as testing, form filling, and data collection. It runs locally and securely using your existing browser profile.
Bare is a small, modular JavaScript runtime designed for desktop and mobile environments. It uses libjs and libuv for engine-independent V8 bindings and async I/O. This allows module authors to implement native addons that can run on the JavaScript engine directly.
Uncurl makes sharing curl commands easy by allowing users to paste commands, generate shareable URLs, and access them from anywhere.
Git has evolved from a small project to the dominant version control system in 20 years. It was originally created to improve patch and tarball management for Linux kernel development and was envisioned as a low-level toolset rather than a full-fledged version control system. Over time, user-friendly "porcelain" commands were created, turning Git into the tool we know today.
By analyzing the internal "thoughts" of LLMs as they generate code, a "nullability probe" was created to determine if a model recognizes when a variable could be null. From this, it was found that LLMs do develop an internal concept of nullability during training, although their ability to apply this understanding depends on factors like code complexity and model size.
In 10 years, Netlify popularized the Jamstack architecture and made frontend dev lives easier. Over the past decade, there has been a big shift from server-side development to frontend-focused teams, especially with the rise of tools like React and Next.js. Looking forward, AI agent-driven development will probably be the next frontend dev trend.
Devs should avoid mocking framework dependencies directly and instead create thin adapters around libraries they control and use integration tests with real implementations.
While using testing frameworks with domain-specific languages DSLs might seem concise, they can complicate large-scale code refactoring and programmatic maintenance due to their added complexity.
GitHub Actions allows the `shell` keyword to be set to any executable on the `$PATH`, allowing for unexpected and potentially risky custom shell execution within workflows.
Companies often fail to fix obvious bugs because their priorities shift a lot and they focus on profit-generating requirements over user experience.
SEE THE VALUE OF DEBUG IDS → play with Sentry's interactive sandbox
Sponsored
In 99% of cases, the JavaScript that you run on a website isn't what you wrote — it's been minified, transformed, polyfilled, etc. This makes tracing errors back to code challenging.
React's memoization tools like `React.memo`, `useMemo`, and `useCallback` cache values or components and prevent unnecessary re-renders based on dependency changes. A common misconception is addressed that memoizing props alone doesn't prevent child component re-renders, but rather when the prop is used in a hook or the child is wrapped with `React.memo`. There are also a few common pitfalls to watch out for, like prop spreading, the children prop, and nested memo components that can silently break memoization.
Hiding HTML elements that require JavaScript when JavaScript is disabled is possible. There are three methods: using JavaScript to enable a class, overriding styles with `noscript`, and lastly, the preferred approach of using a `d-js-required` class. This class is combined with `noscript` and CSS hides elements by default unless JavaScript is active.
"Item Flow" is a proposed unified CSS system designed to control layout flow, wrapping, packing, and spacing in both Flexbox and Grid. It will consolidate the functionality of flex-flow and grid-auto-flow into a new shorthand property, item-flow, along with longhand properties like item-direction, item-wrap, item-pack, and item-slack.
Database protocols like those of MySQL and PostgreSQL are underwhelming in terms of their developer experience. Since they use a mutable connection state, it requires complex connection management and makes error recovery difficult. Also, there aren't safe retry mechanisms for queries due to the uncertainty of idempotency.
Software engineers are expected to constantly learn new frameworks, languages, and tools in both front-end and back-end dev. This burden extends to DevOps responsibilities like infrastructure management and deployment. Even promotions to management don't necessarily reduce the technical workload, especially since managers often still have to be technically competent.
Software engineers can develop leadership skills by focusing on soft skills instead of just coding prowess. They can do this by mentoring others, leading meetings, filling gaps within teams, and tracking the impact of their work to showcase leadership qualities.
Meta has released the Llama 4 herd, a collection of AI models that features advanced multimodal AI models designed for personalized experiences. The collection includes Llama 4 Scout, which has a 10M token context length, and Llama 4 Maverick, which outperforms models like GPT-4o in multiple benchmarks. The models were codistilled from Llama 4 Behemoth, a large, powerful teacher model.
This is a React Native component that adds customizable fade gradients to the edges of content, which indicates overflow to the user in scrollable views on both iOS and Android.
RubyUI is a collection of customizable and accessible UI components built with Phlex that can be copied and pasted into your Ruby on Rails apps.
MCP (Model Context Protocol) is a new standard for integrating LLMs with tools and data that allows AI agents to connect to APIs, maintain sessions, run commands, and share context. However, MCP doesn't have built-in security, making it vulnerable to attacks like command injection, tool poisoning, silent redefinition, and cross-server tool shadowing. Devs and platform builders need to put security measures in place, such as input validation, version pinning, integrity checks, and careful monitoring.
CPU caching affects Python code performance despite Python's high-level nature. Experiments comparing sequential and random list access show that random access is significantly slower, especially with larger lists exceeding cache sizes. This means that cache-aware programming is relevant even in interpreted environments like CPython.
The increasing reliance on AI tools in OSINT is leading to a decline in critical thinking and tradecraft. A study showed that confidence in AI reduces critical thinking and independent verification. Analysts are shifting from investigators to operators, trusting AI outputs without proper scrutiny, which leads to errors and manipulation.