Urgent.News

What's breaking now, across thousands of outlets.

Tech

Mining 14,351 Chess Puzzles with Stockfish 18 (and the Illegal-FEN Trap in chess.js)

When we started building Brass Pawn ( source on GitHub, AGPLv3 ), we needed a large offline tactics, positional judgement, and endgame dataset that ran completely on-device—both in the browser and natively on iPhone, iPad, and Mac. Transcribing chess puzzles by hand or scraping unverified problem collections breaks down fast. Two failure modes show up immediately in real training: Cooked…

In building Brass Pawn, a team needed an offline dataset of chess puzzles that could run entirely offline, whether on a computer or mobile device. Transcribing puzzles from human annotators or scraping unreliable online collections proved problematic. Two major issues emerged: ambiguous solutions and horizon effects, where an engine's shallow evaluation failed to capture deeper strategic nuances.

To address these challenges, the team developed a verification pipeline using Stockfish 18. This pipeline aimed to ensure puzzle uniqueness and correct solution evaluation. The first stage focused on mining unique tactical puzzles, while subsequent stages involved depth-22 verification and independent checks for endgame stability.

A critical issue discovered was an "illegal-FEN trap" in chess.js that allowed positions where the non-moving side was already in check. Such illegal positions could be passed through chess.js without detection and would cause Stockfish to respond with bestmove (none). This issue posed a significant risk for puzzle validation and engine interactions. To mitigate this, the team created a helper function that checks for illegal FENs before processing them, ensuring only valid positions are used for evaluation.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in Tech

Cosmos Cloud URL authentication is a per-resource decision

Cosmos Cloud URL authentication is a per-resource decision Cosmos Cloud combines a reverse proxy, container management, app store, authentication provider, VPN, backups, and monitoring.

  • Cosmos Cloud authentication is per-resource decision, not global
  • Separate authorization settings for each URL, app, and user group
  • Protected URLs require explicit authorization decisions and permissions

Did I forget something? A short about the to-dos that sink into old daily notes, and the Dataview query that finds them

Rozz Queries is a new three-part set of Rozz shorts, each one built around a single query from our free Dataview pack. Episode 1 is about the to-do you wrote in a daily note last week that's now…

  • "Rozz Queries" is a three-part series focusing on Dataview queries
  • Episode "The To-Do You Forgot" highlights forgotten daily tasks query
  • Query finds uncompleted tasks from last 14 days in daily notes folder

48-Hour Field Notes: My Output File Looked Complete Because I Streamed Straight Into It

A batch job that writes one JSON document per item sounds like the safest code you will write all week, right? No shared state, no transactions, no concurrent writers, just open() , write() , close()…

  • Batch job streamed JSON documents directly into destination path
  • Resume logic treated file existence as completion
  • Two bugs compounded each other: truncated output and resume logic

More from Thursday 5 November →