Astra for Coding: Why Are We Doing This Again?
- The author evaluated GPT‑6 “Astra”, noting its impressive multimodal abilities but poor suitability for practical software engineering.
- A “software factory” experiment let Astra manage its own workflow, spawning sub‑agents and storing notes. Over 35 hours it consumed ~4 billion tokens (≈1 B tokens for the run), costing about $1,200, producing 75 k lines of code, 79 commits, ~1 400 messages, and $15.5 per commit.
- Astra heavily favors Python for tool calls, often generating convoluted, token‑efficient scripts (e.g., extensive pathlib manipulations, socket‑FD passing, and auto‑generated C extensions) that are unreadable and deviate from CPython style.
- The model repeatedly inserted low‑level code, random constants, and bizarre control‑flow constructs, suggesting training rewards prioritize token efficiency and task completion over human readability.
- Despite successful reverse‑engineering demos, the output frequently consisted of “slop” – code that technically runs but is objectively poor for maintainable projects.
- The author concludes that Astra’s current trajectory inflates costs and produces output misaligned with conventional software‑engineering practices, questioning the value of such models for developers.
Shopify is moving from React Native back to Swift and Kotlin
Shopify migrated to React Native in 2020 to avoid duplicating feature work, enable cross‑stack developers, and reduce parity maintenance. By 2025 LLM‑based agents dramatically lowered the effort required to implement and test equivalent Swift and Kotlin code, prompting a reassessment of the mobile stack. Prototypes showed agents could translate features between iOS and Android, maintain parity through shared specs and tests, and rebuild core apps faster than before. Consequently, Shopify is transitioning back to native development, using a greenfield approach: the Shop app was rebuilt and released in 12 weeks, and the larger Shopify app (300+ screens, widgets, watch extensions) is slated for release later this year, with remaining apps to follow. Migration is managed by the Helix system, which breaks work into test‑validated checkpoints, and a CLI that decouples business logic from UI for millisecond‑scale feedback loops. Open‑source React Native libraries (FlashList, Restyle) will be supported through 2026 or archived, with stewardship hand‑off planned. Future success will be measured by product velocity, app quality, and autonomous agent contribution.
Comments converge on the view that React Native’s original benefits—shared code and OTA updates—are now outweighed by its performance limits, platform‑specific bugs, and coordination overhead, especially for larger products. Many developers report that large‑language‑model assistance has reduced the cost of native rewrites, making separate Swift/Kotlin codebases more attractive, while others caution about code quality, security, and reliance on AI. Overall sentiment favors a shift back to native (or Kotlin Multiplatform) development, with mixed feelings about the speed and safety of AI‑generated code.
We Replaced MMAP with Io_uring in Our Rust Query Engine. It Got Slower
The team at Conviva built a Rust query engine on DataFusion, Arrow, Rayon and Tokio that reads large (3–5 GB) Arrow IPC files stored on NVMe. Using mmap gave zero‑copy reads but under heavy concurrent query loads the shared Linux page cache thrashed: RSS approached 99 % of RAM, major faults rose to >1 k /s, minor faults exceeded 2 M /s, and kernel lock contention caused p95 latency to jump from ~30 s to >150 s. A controlled test showed a single pod outperforming four pods by >20 % because all pods competed for the same page‑cache.
To avoid the page‑cache bottleneck they switched to io_uring with O_DIRECT via the compio Rust wrapper, issuing a separate read for each of ~40 columns per day‑long query. Initial runs on Linux cut major faults 35× but increased minor faults 8× and slowed total query time from 13.6 s (mmap) to 21.8 s. The slowdown stemmed from:
- a single “Batch Materialization Layer” handling prefetch, submission, decoding and caching on one thread,
- Arrow’s default Buffer::from_slice_ref copying data and causing many minor faults,
- insufficient parallelism (40 concurrent SQEs) and extra memcpy work.
After removing the copy (building Buffers directly from io_uring buffers) and enabling O_DIRECT, runtime improved to ~16 s—still ~20 % slower than mmap—highlighting that io_uring’s gains are negated by architectural overheads and memory‑management costs.
The comments emphasize that mmap and io_uring serve fundamentally different architectural roles, with io_uring delivering gains only when a custom, high‑skill userspace scheduler is built, while mmap suits delegated scheduling. Several contributors note that the article’s claim of io_uring superiority appears overstated, describing the piece as clickbait and AI‑generated, and questioning its relevance to Rust. Real‑world experiences are mixed: some report increased latency with io_uring and better performance using mmap combined with NUMA pinning, underscoring that the choice depends on workload specifics rather than a universal replacement.
The Gemini app is now available for Windows
The Gemini app for Windows launches for Windows 10 and 11, providing on‑desktop AI assistance via three primary modes:
- Quick access shortcut: Press Alt + Space to invoke Gemini over any active window for instant queries, fact‑checks, or idea generation without leaving the workflow.
- Dedicated workspace: A full‑screen interface lets users assign multi‑step tasks to Gemini Spark, retrieve data from Google services (Gmail, Drive), and generate project summaries.
- Creative generation: Integrated tools enable image creation with Nano Banana and video production with Gemini Omni, all within the same desktop environment.
The app is described as lightweight, non‑resource‑intensive, and globally available for download at gemini.google/desktop. Future updates will add more native desktop capabilities.
Comments express frustration with the lack of visual documentation, noting the absence of screenshots and only a brief clip. Users report resource‑usage and stuttering problems in browsers, with slightly better performance on desktop, and cite incompatibility on Windows ARM devices. The separation of Antigravity, Gemini, and Spark into distinct apps is seen as confusing, and the target audience for the Gemini app is unclear. Concerns also arise about the product’s longevity and hopes that future versions might gain broader, cross‑file capabilities.
Nine coding harnesses vs. your laptop
The page is titled “Notion” and displays a notice that JavaScript must be enabled to use the site, instructing users to enable it to continue. No functional content is presented without JavaScript. The only visual element referenced is an image with the alt text “Notion,” indicating that the page includes a graphic representing the Notion brand or interface. No additional text, links, or interactive features are described in the scraped excerpt. The content therefore consists solely of a JavaScript dependency warning and a single branded image placeholder.
Comments express mixed reactions to recent agent harness benchmarks. Several contributors note the absence of testing for newer tools like Juggler and request a simple, reproducible benchmark suite that measures token counts, latency, cache reuse, and pass rates across hardware, enabling result sharing. Others share alternative lightweight agents and comparative performance data, while a few criticize AI‑generated documentation and find certain article phrasing confusing. Additional remarks mention website usability issues and unrelated links, indicating a blend of constructive feedback and peripheral remarks.
Don't let anyone take away your big box of cables
The post recounts the author’s reaction to a meme shared by Tyler Gaw, which humorously highlighted the long‑term usefulness of a “Big Box of Cables” after ten years of storage. Inspired, the author documented the meme (screenshot, printout) and physically attached it to his own cable storage container, labeled “FAMILY TECHNO BOX.” He describes the steps taken—cutting clear tape, affixing the printed meme—to create a visual reminder of the box’s value and to discourage family members from discarding it. The author intends the taped message to serve both as personal motivation when adding new cables and as a caution to others about throwing away seemingly obsolete hardware. An accompanying image shows the box with cables protruding and the handwritten label, alongside the taped meme.
Comments show a broad consensus that systematic organization—grouping cables by type, using clear bags or labeled containers, and retaining only a few representative lengths—greatly reduces time spent searching and prevents clutter. Many users report occasional reliance on obscure or legacy cables, prompting them to keep a small selection of rare items while discarding bulk duplicates. Environmental and space concerns drive suggestions to donate, recycle, or scrap excess cables, though some hoarders argue the occasional need justifies retaining larger inventories. Overall sentiment is supportive of regular culling, clear labeling, and minimal‑duplication strategies, with occasional frustration when needed cables are missing.
Working with Git Worktrees in Magit
Git worktrees provide additional working directories attached to a single repository, sharing the object database, refs, stashes, and remotes while giving each worktree its own HEAD and index. They allow parallel development on multiple branches without repeated check‑outs, useful for long test runs, PR reviews, or isolating AI coding agents. Creating a worktree is fast (git worktree add <path> -b <branch>); a branch can be checked out in only one worktree at a time. Untracked files (e.g., node_modules, build caches) must be set up per worktree, which can be a downside for large projects. Magit integrates worktree management via commands such as magit-worktree-checkout, magit-worktree-branch, magit-worktree-status, magit-worktree-delete, and can display all worktrees in the status buffer with a hook. Each worktree is treated as a separate project by Emacs tools like project.el or Projectile. Deleting a worktree should use git worktree remove or Magit’s Z k; leftover bookkeeping can be cleaned with git worktree prune. The article also notes Jujutsu (jj) as an emerging VCS that mitigates worktree limitations by treating the working copy as an auto‑snapshotted commit.
The comments express strong approval of Git worktrees, highlighting their usefulness for managing multiple branches and monorepos, and noting that tools such as Magit now provide solid support. Several users mention integrating worktrees with AI‑driven workflows and recommend trying alternative tools like jujutsu. A recurring concern is the absence of sensible defaults and conventions, which some feel slows broader adoption, leading a few to create custom wrapper scripts that emulate an SVN‑style directory layout for easier handling.
OpenAI Agents API
The OpenAI Agents API provides programmatic access to a managed Codex harness that runs agents in sandboxed environments. Core concepts are Agent (model, instructions, tools, MCP servers), Environment (optional sandbox or self‑hosted workspace), Session (a durable instance handling multiple turns), and Events/Items (the inputs and outputs exchanged. OpenAI‑hosted sandboxes provisioned by the service handle code execution, file edits, MCP connections, and artifact creation; self‑hosted environments can be specified with a workspace directory and capability paths. Billing follows the selected model’s API rates and standard container rates for sandbox usage. Agents can use tools such as programmatic tool calling, MCP access, and web search, and support multi‑agent operation with up to four concurrent sub‑agents. Sessions retain state across turns, allow steering, context summarization, sub‑task delegation, and can be deleted when finished. Data residency is limited to the United States; Zero Data Retention is not supported, even with self‑hosted sandboxes. The API is accessed via SDKs or direct HTTP calls, with example payloads provided for JavaScript, Python, Go, Java, Ruby, and cURL.
Comments reflect mixed reactions to the new agent‑as‑a‑service offering. Many acknowledge that building and maintaining a harness is complex and see value in managed environments, especially for memory and context handling, while also noting the appeal of open‑source, cloud‑neutral solutions that avoid vendor lock‑in. Users cite successful self‑hosted setups and express concerns about pricing, billing granularity, and sandbox security. Skepticism appears around reliance on proprietary models and the need for compelling features beyond existing APIs, yet overall interest in the direction remains evident.
The Deathray: A simple way for an untrusted site to freeze a Mac
The author demonstrates a denial‑of‑service vulnerability that can be triggered on macOS by loading a malicious WebGPU shader from an untrusted website. The shader consists of a compute stage with an infinite busy‑loop that repeatedly copies data within a storage buffer, while a vertex shader reads from the same buffer, causing the GPU pipeline to stall. Because macOS’s WindowServer also relies on GPU resources, the stall propagates, rendering the desktop UI unresponsive and eventually invoking the system watchdog, which may trigger a kernel panic or require a forced power‑off. The effect reproduces on Chrome, Firefox and Safari on M‑series Macs but not on other operating systems. A similar WebGL‑based attack (ShadyShader, CVE‑2023‑40441) was previously disclosed and partially mitigated by Apple through input‑validation improvements, but WebGPU lacks comparable safeguards. The author notes that GPU pre‑emption on Apple silicon is handled by the ASC coprocessor firmware, limiting the kernel’s ability to abort runaway shaders, and that Apple has classified the issue as low‑priority.
The comments describe frequent browser freezes caused by infinite loops in WebGPU/WebGL shaders across multiple platforms, with varying severity on Windows, macOS, Linux, and mobile browsers. Users note that macOS lacks automatic GPU recovery, while other OSes can recover or isolate the hang. The problem is seen as a denial‑of‑service issue rather than a direct security breach, prompting some to disable the APIs despite losing functionality. There is general frustration, calls for better driver stability, and acknowledgment that the vulnerability has persisted for years without catastrophic impact.
Technique for Manipulating Satellite Photos Now Reveals Ancient Images (2025)
The decorrelation‑stretch algorithm, originally developed at NASA JPL for enhancing satellite data, maps original colors into an expanded range via matrix multiplication and diagonalization of color matrices—a process rooted in the Karhunen–Loève Transform. Ronald Alley’s 1996 paper refined the method for the ASTER multispectral imager, enabling faster, more accurate color enhancement used today to monitor volcanic plumes and map lava flows.
Jon Harman adapted the technique into the Dstretch plug‑in for ImageJ and later Android/iOS apps, leveraging his background in medical imaging and algebra. Dstretch has uncovered dozens of previously invisible rock‑art figures at sites such as Angkor Wat, Baja California, Norway’s Årsand 1, Egypt’s Beni Hassan, Canada’s Writing‑on‑Stone Provincial Park, and Greek urban settlements at Vlochos. It also revealed tattoos on mummified remains and aided archaeological surveys where conventional geophysical methods fail. Harman provides paid processing services (≈200 requests yr⁻¹ at $50 each) and the apps have been downloaded thousands of times, demonstrating broad utility beyond its space‑technology origins.
The comment expresses strong enthusiasm for false‑colour imaging and contrast‑enhancement tools, recalling personal experience with GIS and highlighting how swapping infrared bands reveals vegetation and hidden details. It notes that such techniques, including the DStretch plugin, have existed for years and are common in fields like medical imaging and archaeological analysis. The author suggests integrating these capabilities into standard camera software, mentions related methods such as Eulerian Video Magnification, and seeks accessible implementations for broader experimentation. Overall, the tone is appreciative and curious about practical applications.
The discussion is largely critical of current AI‑assisted coding agents, especially Astra, highlighting frequent low‑quality, unreadable code, excessive token consumption, costly and inefficient workflows, and a tendency toward unnecessary gold‑plating and extensive testing. Reviewers stress the importance of precise specifications, solid requirements, and human oversight to achieve usable results. A minority note occasional productivity gains when requirements are well defined, but overall sentiment doubts the models’ readiness for production‑level software engineering and questions the trade‑off between speed and code maintainability.