HackerNews Digest

January 12, 2026

The struggle of resizing windows on macOS Tahoe

The post describes how macOS “Tahoe” (a codename for a macOS version) introduced a large corner radius that reduces the effective click target for window resizing. The system expects a 19 × 19 px region near each window corner; with traditional sharp corners about 62 % of that region lies inside the window, but the rounded corners push roughly 75 % of the area outside the visible window frame. Consequently, users’ instinctive clicks inside the visual corner often miss the active zone, causing resize attempts to fail—a problem the author has not encountered in four decades of computing. The only reliable method on Tahoe is to place the cursor just outside the corner, a non‑intuitive gesture that increases error rates. No other functional changes or workarounds are discussed.
Read full article →
The comments are overwhelmingly critical of macOS Tahoe’s visual redesign and window‑management changes, describing the new rounded corners, altered resize zones, and “Liquid Glass” aesthetic as unintuitive, space‑wasting, and detrimental to usability. Many users compare the update unfavorably to previous macOS versions, Windows 11, and contemporary Linux desktops, suggesting the changes push them toward alternative operating systems or third‑party tools that restore familiar resizing behavior. Some acknowledge occasional positive tweaks or appreciate the visual style, but the dominant view is that the update reflects poor design decisions, a shift toward iOS‑centric priorities, and reduced overall software quality.
Read all comments →

CLI agents make self-hosting on a home server easier and fun

Self‑hosting became practical in 2026 due to AI‑driven CLI agents (e.g., Claude Code) that automate server setup. The author uses a Beelink Mini N150 mini PC (≈$379) with an 8 TB NVMe SSD, running Linux. Claude Code is installed locally and, via plain‑language commands, configures Docker, generates Docker‑Compose files, provisions services, applies Caddy reverse‑proxy, ensures data persistence, schedules updates, and configures boot‑time restarts. Deployed containers include: - **Vaultwarden** – lightweight Bitwarden‑compatible password manager. - **Immich** – self‑hosted photo library with mobile apps and local face‑recognition. - **ReadDeck** – Pocket replacement for saved articles. - **Uptime Kuma** – health monitoring with email alerts for service up/down events. Utility tools such as **Lazydocker** (terminal UI for Docker) and **Glances** (system metrics) provide on‑demand visibility. Resource usage remains modest: 13 containers consume ~4 GB RAM, ~6 % CPU on the mini PC. The workflow targets users comfortable with a terminal, who currently pay for SaaS but want direct control without becoming full‑time infrastructure experts.
Read full article →
The comments express mixed but generally pragmatic views on self‑hosting, acknowledging the appeal of low‑cost hardware and the convenience of tools like Tailscale and AI assistants such as Claude Code, while also highlighting recurring concerns about reliability, security, power outages, and ongoing maintenance. Many note that AI can simplify setup and troubleshooting, yet some remain wary of dependence on closed services and potential vulnerabilities. Cost considerations, backup strategies, and the balance between personal control and cooperative or managed alternatives appear repeatedly, underscoring both enthusiasm and caution.
Read all comments →

This game is a single 13 KiB file that runs on Windows, Linux and in the Browser

A 13 KB single‑file Snake game runs natively on Windows, Linux, and in browsers. The author built three separate implementations—C with WinAPI for i686 Windows, C with X11 for x86_64 Linux, and JavaScript using HTML5 Canvas—each 3–5 KB compiled/minified. The Windows binary uses a custom PE header that embeds a shell script; a decompressing stub expands a compressed payload, and Windows app‑help suppresses an initial 0xc0000005 error after the first run. The Linux version wraps an LZMA‑compressed ELF64 binary in a shell dropper that extracts and executes the payload while skipping the wrapper. The browser version places harmless garbage before the HTML, then hides it via CSS. All three components are concatenated so each OS selects its appropriate segment, producing a final 13 312‑byte file. Gameplay follows classic Snake rules: arrow/WASD control, ESC to quit, R to reset, P to pause, space to start; food yields 10 points (20 for rare yellow fruit), a new level after ten foods randomizes a maze guaranteeing a path to food, and snake speed scales with length.
Read full article →
The comments express strong admiration for how minimal binaries can deliver rich experiences, noting the impressiveness of size‑reduction tricks such as embedding the dynamic linker path in unused header fields. Readers show curiosity about whether these optimizations are manual or tool‑driven and request robust analysis tools that tolerate unconventional executables. Experiences running the program across browsers, Linux, and Windows highlight practical challenges and solutions, while the discussion extends to similar compact projects, praising the elegance of single‑file, polyglot applications and encouraging further experimentation.
Read all comments →

iCloud Photos Downloader

The repository icloud-photos-downloader/icloud_photos_downloader hosts a command‑line utility for downloading photos from Apple iCloud. The project’s README (or landing page) references three visual assets: “Quality Checks,” indicating automated testing or code‑quality verification; “Build and Package,” denoting the build pipeline that compiles and packages the tool for distribution; and “MIT License,” specifying that the software is released under the permissive MIT open‑source license. No additional functional details, usage instructions, or code excerpts are present in the provided text.
Read full article →
Comments reveal widespread frustration with Apple Photos’ limited export options, hidden “optimize” settings, and proprietary formats that make full backups difficult, prompting many users to seek third‑party or self‑hosted solutions. Numerous tools—including open‑source scripts, Docker containers, Parachute, Immich, and the author’s own backup app—are cited as effective ways to download, preserve metadata, and organize large iCloud libraries while reducing reliance on Apple’s storage fees. Opinions are generally positive about these alternatives, though users note occasional authentication hassles, performance issues, and the need for ongoing maintenance. Overall sentiment is critical of Apple’s native workflow but hopeful about community‑driven backup methods.
Read all comments →

Which programming languages are most token-efficient?

The analysis measured token‑usage of code solutions from the Rosetta Code dataset across 19 popular languages, using the Xenova GPT‑4 tokenizer. For each language, tasks with implementations in all selected languages were token‑counted and averaged. Results show a 2.6 × token‑efficiency gap between the most verbose language (C) and the most compact (Clojure). Dynamic languages generally require fewer tokens because they omit type declarations, though JavaScript is the most verbose among them. Functional languages such as Haskell and F# are surprisingly token‑efficient, rivaling the best dynamic languages due to strong type inference. APL, despite its terse syntax, scores poorly because its special glyphs split into multiple tokens. Conversely, the ASCII‑based array language J achieves the highest efficiency (≈70 tokens per task), roughly half the cost of Clojure (≈109 tokens). The study highlights that token efficiency can significantly affect LLM context‑window utilization, potentially extending development sessions for token‑lean languages like Haskell, F#, or J.
Read full article →
The discussion emphasizes that context size is not the primary constraint for large codebases; rather, effective use of context determines performance. It notes that AI agents often struggle with less‑common languages due to limited training data, while tools like Claude Code and Cursor employ strategies such as subagents, vector databases, and modular loading to reduce context usage. Recommendations include leveraging header‑implementation separation and language‑server summaries to avoid loading unnecessary code. Overall, the view is that agentic coding tools are still early‑stage but have significant potential for efficiency improvements.
Read all comments →

Jerome Powell Responds

Jerome H. Powell, Chair of the Federal Reserve, announced that on Friday the Department of Justice issued grand‑jury subpoenas to the Fed, accompanied by a threat of criminal indictment linked to his June Senate Banking Committee testimony about a multi‑year renovation of historic Fed office buildings. Powell asserts the subpoenas are not about the renovation or congressional oversight but represent political pressure aimed at influencing the Fed’s interest‑rate decisions. He emphasizes that the Federal Reserve sets rates based on its economic assessment, not presidential preferences, and that no official is above the law. Powell affirms his commitment to the Fed’s dual mandate of price stability and maximum employment, noting his experience serving under four administrations and pledging to continue his duties with integrity. (Last update: January 11 2026)
Read full article →
The comments convey broad distrust of the Federal Reserve and the current administration, emphasizing concerns that political pressure is compromising monetary independence and that systemic cronyism and intimidation are eroding democratic norms. Critics argue the Fed’s structure is outdated, costly, and vulnerable to abuse, while a minority express support for Jerome Powell’s outspoken stance and speculate on short‑term market moves. Overall, the discussion reflects skepticism toward institutional integrity, calls for reform, and a pervasive sense of frustration with perceived elite manipulation.
Read all comments →

FUSE is All You Need – Giving agents access to anything via filesystems

The article proposes using FUSE (Filesystem in Userspace) to expose arbitrary data as a virtual filesystem for AI agents, replacing multiple specialized tools with a single Bash‑style interface. By mapping domain entities (e.g., emails, folders) to files and directories, agents can perform familiar operations (ls, cat, mv, ln) to browse, read, and organize information, while the FUSE layer translates these calls into database queries. The author demonstrates an email‑assistant example: emails are represented as “.eml” files within a workspace hierarchy, with virtual folders like Starred and Needs_Action implemented via symlinks. Core FUSE operations (lookup, open, read, readdir, getattr, mkdir, rename, unlink, readlink, symlink) are implemented in TypeScript using the fuse‑native library, enabling on‑demand data loading and synchronization with the backend. A sandboxed agent, powered by the Anthropic SDK, executes Bash commands to list, search, star, and reorganize emails, illustrating reduced tool complexity and improved long‑context handling. The post concludes with a link to the GitHub implementation and predicts higher‑level APIs that abstract away FUSE details for broader adoption.
Read full article →
Comments are split between criticism of using a FUSE‑based filesystem as an LLM data layer and endorsement of filesystem abstractions. Several contributors argue that direct database or API access with proper permissions is simpler, more accurate, and faster than a FUSE layer, citing performance and maintenance concerns. Others share positive experiences building and using FUSE drivers for various services, highlighting flexibility, fun development, and successful projects that expose diverse storage backends as filesystems. Additional remarks suggest alternative approaches such as NFS/9P, MCP gateways, and question the notion of “sandboxed” AI infrastructure.
Read all comments →

I'm making a game engine based on dynamic signed distance fields (SDFs) [video]

The page presents a navigation list for YouTube, featuring links labeled: About, Press, Copyright, Contact us, Creators, Advertise, Developers, Terms, Privacy, Policy & Safety, How YouTube works, Test new features, and NFL Sunday Ticket. It ends with a copyright notice stating © 2026 Google LLC.
Read full article →
The comments convey strong enthusiasm for the SDF‑based engine, highlighting its impressive performance, novel terrain manipulation possibilities, and potential for fresh gameplay concepts. Viewers appreciate the clear presentation and see it as a promising direction beyond conventional polygon pipelines, noting prior examples in other projects and expressing curiosity about high‑fidelity digging experiences. Technical interest surfaces around layer interactions, physics integration, and reconstruction methods, while some raise concerns about handling skeletal animation within an SDF framework. Overall the response is supportive and inquisitive, focusing on both creative and implementation aspects.
Read all comments →

I Cannot SSH into My Server Anymore (and That's Fine)

The author decommissioned a $100‑per‑month VPS (“moana”) and replaced it with a low‑cost Fedora CoreOS VM (“tinkerbell”) on Vultr, managed entirely via Terraform. An Ignition config (generated from Butane YAML) creates a user and SSH key for initial access; after first boot Ignition is never used again, enforcing immutability. Container workloads (a static‑site binary behind Nginx, Caddy for TLS) are run with Podman Quadlets, which translate simple `.container` and `.pod` files into systemd units. A pod is used to share the network namespace so containers can communicate via localhost. Deployment is declarative: updating the container image tag triggers Podman’s auto‑update timer (enabled by the `io.containers.autoupdate=registry` label), causing the VM to pull the new image and restart the service without manual SSH. The setup eliminates ongoing VM configuration, requiring only image publishing. Future work includes adding an observability stack (e.g., OpenTelemetry) to gain visibility into the black‑box VM.
Read full article →
Comments express cautious endorsement of immutable, container‑centric systems such as Fedora CoreOS, Fedora IoT, and Quadlets, highlighting their low‑toil deployment, automatic updates, and rollback capabilities. At the same time, contributors warn against abandoning traditional sysadmin tools, stressing the continued relevance of SSH, shell access, and rigorous security measures like VPNs and firewalls. Concerns are raised about DevOps‑driven abstractions that may obscure debugging, network namespace handling, and erode basic system‑administration skills. Overall the consensus favors a hybrid approach that combines modern container workflows with proven administrative practices.
Read all comments →

Don't fall into the anti-AI hype

The author argues that advanced LLMs now accomplish most programming tasks, making manual code writing largely unnecessary. Recent personal experiments with Claude Code demonstrated rapid development: adding UTF‑8 support to a library, fixing Redis test failures, creating a pure‑C BERT inference library, and reproducing Redis Streams changes within hours. This shift emphasizes problem formulation over code writing, positioning AI as a partner for design and implementation. The author sees AI as a democratizing force akin to open‑source software, enabling small teams to compete with large firms, but warns of potential centralization and job displacement. He advocates open‑source AI development, vigilance against concentration of power, and political support for displaced workers. The recommendation is to adopt AI tools deliberately, experiment continuously, and focus on higher‑level system design rather than low‑level coding.
Read full article →
Comments reflect a split view on LLM‑driven coding. Many acknowledge productivity gains, faster prototyping and the potential to democratize development for small teams, while others stress that true value still depends on domain expertise, rigorous testing, and maintaining coding skills. Concerns include declining code quality, over‑reliance on hype, uncertain business models, centralization of model access, and ethical implications of data use. Participants note diverse programmer motivations—creative fulfillment, problem solving, or monetary goals—leading to differing attitudes toward adopting AI tools. Overall sentiment is mixed, balancing optimism about automation with caution about its limits and impacts.
Read all comments →