HackerNews Digest

March 16, 2026

Canada's bill C-22 mandates mass metadata surveillance of Canadians

Bill C‑22, the Lawful Access Act, revises Canada’s lawful‑access framework in two parts. The first section replaces the broad, warrant‑less “information demand” power of Bill C‑2 with a limited “confirmation of service” request that lets police ask telecoms only whether they serve a specific person; any further subscriber data requires a production order signed by a judge, applying a “reasonable grounds to suspect” standard. The bill also codifies rules on voluntary disclosure, challenges, exigent circumstances and foreign requests. The second part, the Supporting Authorized Access to Information Act (SAAIA), largely retains Bill C‑2’s obligations for electronic service providers (ESPs). Core providers must assist law‑enforcement testing of access capabilities, keep related requests secret, and retain categories of metadata (including transmission data) for up to one year, while being prohibited from retaining content, browsing history, or social‑media activity. An exemption permits non‑compliance when compliance would create systemic vulnerabilities. Oversight is shifted to the Intelligence Commissioner, but concerns remain about security risks, secrecy, and alignment with international regimes such as the Budapest Convention and the CLOUD Act.
Read full article →
The discussion is dominated by concern that Bill C‑22 expands state surveillance by allowing warrant‑free data access and obligating service providers, which many view as a serious erosion of privacy and democratic safeguards. Critics highlight a subjective loophole, potential foreign influence, and risk of abuse, while a minority argue that broader police powers could improve investigations and recover stolen property. Overall the consensus leans toward opposition, citing insufficient safeguards and the threat of a permanent surveillance infrastructure.
Read all comments →

Chrome DevTools MCP

The Chrome DevTools MCP server (M144 beta) now supports an “auto‑connect” feature that lets coding agents attach to an active Chrome instance. By enabling remote debugging at **chrome://inspect/#remote‑debugging** and launching the MCP server with the **--autoConnect** flag, the server requests a remote‑debugging session; Chrome displays a permission dialog and, when approved, shows the “Chrome is being controlled by automated test software” banner. This allows agents to reuse the current browsing session (e.g., avoiding extra sign‑ins) and to inspect selected elements or network requests directly from the Elements or Network panels. Configuration examples (e.g., gemini‑cli) illustrate the required command line and JSON settings. After granting permission, the agent can open pages, capture performance traces, and investigate issues without switching between manual and automated workflows. The announcement notes that further panel data will be exposed to agents in future updates.
Read full article →
Comments express strong interest in using Playwright‑based agents for low‑overhead web automation while acknowledging the token‑intensive nature of Chrome DevTools MCP and its impact on cost. Many favor direct CLI tools for speed and efficiency, noting that MCP remains useful for discovery and one‑off integrations but can become a “mega token guzzler.” Concerns recur about API brittleness, frequent site changes, authentication handling, and potential terms‑of‑service or security risks. Numerous alternatives and wrappers are shared, highlighting a community focus on balancing performance, stability, and ethical considerations.
Read all comments →

The 49MB web page

The article documents how contemporary news sites generate extremely heavy page loads—e.g., a New York Times article triggers 422 network requests and transfers ~49 MB of data, equivalent to downloading ten 5‑MB MP3s. This bloat stems from programmatic ad auctions that download and execute megabytes of JavaScript, continuous tracking beacons, and third‑party overlays. The resulting CPU load, battery drain, and high cumulative‑layout‑shift (CLS) degrade performance and user privacy. Economic pressure to maximize CPMs drives hostile UI patterns: multiple intrusive modals, low‑contrast close buttons, oversized sticky ads, autoplaying video players, and “read‑more” truncations that increase interaction cost and impede readability. The author recommends mitigating these issues by limiting pop‑ups, serializing overlays, reserving fixed‑size ad containers to prevent layout shifts, and consolidating consent/subscribe prompts into non‑blocking elements. Lightweight alternatives such as text‑only sites (e.g., text.npr.org) and RSS feeds illustrate that a user‑centric, low‑bloat experience is technically feasible.
Read full article →
The comments convey a broadly negative view of modern web pages, especially news sites, criticizing excessive JavaScript, large media files, intrusive ads and pervasive tracking that inflate page sizes, slow loading, and raise privacy concerns. Users report disabling scripts, employing ad‑blockers or reader modes, and preferring minimalist sites as coping strategies. While many attribute the bloat to ad‑driven revenue models and pressure from product managers, some acknowledge similar issues in enterprise tools and mobile apps. Overall, there is a call for leaner design, better business models, and reduced reliance on heavy client‑side code.
Read all comments →

What Is Agentic Engineering?

Agentic engineering refers to developing software with the assistance of coding agents—LLM‑based systems that can both generate and execute code (e.g., Claude Code, OpenAI Codex, Gemini CLI). An agent is prompted with a goal, then iteratively produces and runs code until the goal is satisfied; code execution distinguishes these agents from pure text generators. Human engineers focus on problem definition, solution selection, and trade‑off analysis rather than manual coding. Effective use of coding agents requires supplying appropriate tools, specifying problems at the correct level of detail, and continuously verifying and refining outputs. Although LLMs do not self‑learn from errors, agents can be improved by updating prompts and tool harnesses based on observed failures. The approach aims to increase the quantity, quality, and impact of software produced. This guide outlines evolving patterns for working with coding agents, emphasizing reproducible techniques that remain relevant as the technology advances.
Read full article →
Comments converge on the view that agent‑assisted coding is useful for well‑defined, narrowly scoped problems where tests and output formats are clear, but it struggles with evolving requirements and architectural decisions that demand deep domain insight. Participants stress the necessity of separate verification steps, loud failure signals, and human accountability to mitigate alignment and safety risks. The naming debate—whether to call it “agentic coding” or “agentic engineering”—is seen as secondary to recognizing these boundaries. Skepticism about industry hype and the novelty of agents is also expressed, emphasizing that the core concept predates recent LLM advances.
Read all comments →

LLMs can be exhausting

The author reflects on exhaustion when using LLMs such as Claude and Codex and identifies two main technical pain points: degraded prompt quality due to mental fatigue and slow, context‑heavy feedback loops. Fatigue leads to incomplete prompts, interruptions, and poorer model outputs, while iterative tasks (e.g., parsing large files) require repeated re‑parsing, inflating the context window and slowing the cycle. To mitigate these issues, the author recommends: - Recognize when prompting feels uncertain or impatient and pause to avoid “doom‑loop” degradation. - Write highly descriptive prompts with clear end‑state expectations; confidence in the prompt correlates with better results. - Treat slow feedback loops as the target problem: start a fresh session, define explicit success criteria (e.g., reproduce a failure case within five minutes), and let the LLM propose optimizations. - Apply a test‑driven approach, asking the model to generate minimal reproducible examples and leverage levers for faster iteration, which reduces context consumption and debugging time. Overall, the piece frames exhaustion as a skill‑management issue, emphasizing disciplined prompting and engineered feedback cycles to improve LLM productivity.
Read full article →
Comments converge on the view that using LLMs for code generation shifts work from writing to intensive verification, creating higher cognitive load and fatigue. Review of AI‑produced code is described as more draining than manual coding, especially under corporate mandates for large pull requests. Several participants suggest mitigating strategies such as test‑driven prompts, limiting concurrent agent sessions, asynchronous workflows, and prompt libraries. Opinions differ on whether the difficulty stems from skill gaps or inherent tool design, but most agree the current workflow can lead to burnout without careful process adjustments.
Read all comments →

LLM Architecture Gallery

The LLM Architecture Gallery compiles visual schematics of a wide range of large language models, illustrating design choices across dense, Mixture‑of‑Experts (MoE), Multi‑Layer‑Attention (MLA), and hybrid decoder families. The collection includes architecture diagrams for models such as Llama 3 8B, OLMo 2 7B, DeepSeek V3 and V3.2, DeepSeek R1, Gemma 3 27B, Mistral Small 3.1 24B, Llama 4 Maverick, Qwen‑3 variants (4B, 8B, 32B, 235B‑A22B, Next 80B‑A3B), SmolLM3 3B, Kimi K2 and Kimi Linear 48B‑A3B, GLM‑4.5 355B, GPT‑OSS 20B/120B, Grok 2.5 270B, MiniMax M2/M2.5 230B, Arcee AI Trinity Large 400B, GLM‑5 744B, Nemotron 3 series, Xiaomi MiMo‑V2‑Flash 309B, Step 3.5 Flash 196B, Nanbeige 4.1 3B, Tiny Aya 3.35B, Ling 2.5 1T, Qwen3.5 397B, and Sarvam 30B/105B. A summary overview figure provides a comparative layout of these architectures.
Read full article →
The comments praise the gallery’s clear visualization and note that contemporary open‑weight models have largely converged on a dense decoder‑only transformer with similar components, making architectural variations minor. Consensus is that recent capability gains stem chiefly from scaling, refined training pipelines, and reinforcement‑learning techniques rather than fundamental design changes. Viewers express appreciation, request sortable or hierarchical layouts, and suggest extensions such as agent diagrams while acknowledging the resource’s usefulness.
Read all comments →

The Linux Programming Interface as a university course text

The author notes that, despite not initially targeting the academic market, “The Linux Programming Interface” (TLPI) is already being adopted by university instructors as required or recommended reading for Linux/UNIX system‑programming courses. To improve future editions for educational use, the author is requesting feedback from teachers who employ TLPI. The inquiry asks for institutional details (name, URL), course outlines, academic level (e.g., third‑year, fourth‑year), enrollment numbers, whether the book is mandatory or supplemental, and suggestions for enhancements specific to a university textbook. An accompanying image is referenced only by the alt text “Web Analytics.”
Read full article →
The comments express strong approval of TLPI as an optional text for a computer‑science operating‑systems course, describing it as the most comprehensive resource for understanding Linux internals. Users report incorporating its material into lectures, even extracting specific pages for instructional use, indicating a high level of trust in its depth and clarity for teaching purposes.
Read all comments →

A new Bigfoot documentary helps explain our conspiracy-minded era

None
Read full article →
The comments show a mixed view of conspiracies, combining skepticism about specific claims—such as alleged political memos, corporate age‑verification schemes, and cryptid cover‑ups—with acknowledgment that some theories contain elements of truth or become verified over time. Several remarks point to human pattern‑seeking and the ease of debunking myths given modern technology, while others express personal shifts from dismissing to partially accepting conspiratorial ideas. Overall, the discussion balances criticism of sensational claims with a tentative acceptance that certain narratives may later prove factual.
Read all comments →

//go:fix inline and the source-level inliner

Go 1.26 introduces a new implementation of the go fix subcommand that includes a source‑level inliner. Unlike compiler‑time inlining, this tool rewrites the source by replacing a function call with a copy of the callee’s body, handling argument substitution, imports, and preserving behavior. It is exposed via a //go:fix inline directive, allowing package authors to annotate deprecated or flawed APIs so that go fix automatically rewrites calls (e.g., replacing ioutil.ReadFile with os.ReadFile). The inliner also supports type and constant forwarding, and is used by gopls for refactorings like “Change signature” and “Remove unused parameter”. Internally it must manage complex cases: parameter elimination, side‑effect ordering, constant‑expression safety, identifier shadowing, unused‑variable elimination, and defer handling (which may require wrapping the callee body in a function literal). The implementation is ~7 kLOC and already generated >18 k changelists in Google’s monorepo, though some transformations remain conservative and may need manual cleanup.
Read full article →
The discussion emphasizes that the Go inline directive functions as a source‑level transformation applied during a go fix step rather than a compile‑time feature, making it most effective within closed, monorepo environments where an organization can rewrite all call sites. While it can reduce deprecated API usage without breaking external code, the approach is viewed as a workaround rather than a clean language addition, raising concerns about potential rewrite quality and the need for clearer documentation of its limitations.
Read all comments →

Separating the Wayland compositor and window manager

River 0.4.0 introduces a non‑monolithic Wayland architecture that separates the compositor from the window manager via the stable river‑window‑management‑v1 protocol. Traditional Wayland compositors combine three roles—display server, compositor, and window manager—mirroring X11’s legacy and requiring WM developers to implement a full compositor. The new protocol grants window managers full authority over window positioning, keybindings, and policy while the compositor retains frame‑perfect rendering, low latency, and all low‑level plumbing. State is divided into “window‑management” (dimensions, focus, bindings) and “rendering” (position, order, decorations) categories, updated atomically in manage and render sequences, eliminating per‑frame round‑trips. Benefits include a lower entry barrier for WM development, crash isolation, ability to use high‑level or garbage‑collected languages without performance loss, and easier debugging. Limitations restrict the model to 2‑D desktop use cases (no VR or heavy visual effects). The protocol is stable, future‑compatible through River 1.0.0, and the project seeks financial support via Liberapay or GitHub Sponsors.
Read full article →
The comments acknowledge the solid technical design of separating the compositor from the window manager and view the new protocol as a meaningful step toward simplifying Wayland WM development. However, there is widespread doubt about its adoption beyond River, with concerns that Wayland’s ecosystem remains fragmented by compositor‑specific extensions and that convergence on common standards may take years. Users appreciate River’s simplicity and similarity to X11 tiling managers, yet many cite persistent Wayland pain points—clipboard reliability, remote access, and missing features—as reasons to remain skeptical or prefer X11. Overall sentiment mixes optimism about the design with caution about broader standardization and usability.
Read all comments →