Hacker News

Show HN: Pantagruel, an Accessible Specification Language

Hacker News - Mon, 02/23/2026 - 5:05pm

Hi HN!

Seven years ago I posted the very first version of PANTAGRUEL (my phone has started autocorrecting to all-caps; I have no idea why but I like it), a “lightweight formal methods” language.

Since then it’s gone through many iterations. I want to post it here because in the recent months it’s acquired a consistent, well-formed and documented type system, and an actual model checker.

In other words, it’s now a language of the same kind as something like TLA+ or Alloy. It differs from those in being (hopefully) radically simpler. It’s designed to be approachable with far less learning and specialization, and it’s designed to be effective in specifying not just software, but any type of formal system, including poetry and games.

If you’ve ever been interested in “tools for thought” and ways to make your own descriptions of things more precise and rigorous, it might be worthwhile to you.

Comments URL: https://news.ycombinator.com/item?id=47129643

Points: 1

# Comments: 0

Categories: Hacker News

Threat hunting for home users and SMBs

Hacker News - Mon, 02/23/2026 - 5:02pm

Threat hunting for home users and SMBs is becoming essential as attackers increasingly target environments with limited security controls. Without EDR, SIEM, or centralized logging, defenders must rely on host-level visibility and behavioural analysis.

A practical Windows-focused workflow: 1. Process analysis: Identify unsigned binaries, LOLBins, anomalous parent-child relationships, and processes executing from temp or user-writable directories. 2. Persistence review: Inspect scheduled tasks, services, Run/RunOnce keys, WMI subscriptions, and startup folders for new or modified entries. 3. Network telemetry: Examine outbound connections, DNS anomalies, beaconing patterns, and processes making unexpected network calls. 4. System modification review: Look for new accounts, privilege changes, security configuration drift, and recent software installations. 5. Script and PowerShell telemetry: Identify encoded commands, AMSI bypass attempts, suspicious module loads, and script execution from non-standard locations. 6. Correlation: Combine signals to identify multi-stage behaviours indicative of compromise.

Sapience simplifies this workflow by aggregating process, network, persistence, and behavioural indicators into a single interface. It highlights anomalies and maps certain behaviours to MITRE ATT&CK techniques, making it easier for non-enterprise defenders to spot early indicators of compromise without parsing logs or using multiple admin tools.

Comments URL: https://news.ycombinator.com/item?id=47129622

Points: 1

# Comments: 0

Categories: Hacker News

Show HN: RespectASO – Free, open-source, self-hosted ASO keyword research tool

Hacker News - Mon, 02/23/2026 - 4:50pm

I built a free, open-source ASO keyword research tool that runs locally via Docker. You don't need any API keys or accounts; and no data leaves your machine.

WHY FREE & WHY OPEN-SOURCE? What any ASO tool gives you are just algorithmically estimations. I have tried many and I can say they are not consistent at all. And they likely over-complicate things in their solutions where over-complication does not necessarily create a better solution.

WHY SELF-HOSTED? I wanted to provide this as free. If I hosted the whole thing at a site, I suspect that abuse would be one of the things I would need to deal with, and it would also come with lots of infrastructure costs. And users would share their data suspecting how the hack this is possible for free of charge. Hosting locally is extremely easy, can be done in less than 2 minutes.

HOW IT WORKS IN A NUTSHELL? It uses the public iTunes Search API to estimate keyword popularity (6-signal model), difficulty (7 weighted factors), and downloads per ranking position. You can scan 30 App Store countries, track your app's rank, and export to CSV. It has all the core functions one can ask for.

Installation: git clone https://github.com/respectlytics/respectaso.git cd respectaso docker compose up -d

License: AGPL-3.0. Built with Django + SQLite + Tailwind.

Comments URL: https://news.ycombinator.com/item?id=47129463

Points: 1

# Comments: 0

Categories: Hacker News

Show HN: Crash-safe job queue – lease-expiry race and fencing fix

Hacker News - Mon, 02/23/2026 - 4:46pm

Most lease-based job queues look correct until you test them adversarially.

I built Faultline, a PostgreSQL-backed distributed job execution engine using:

- Lease-based claims - Retry scheduling - Idempotent side effects via a ledger table - A deterministic race reproduction harness

The interesting part wasn’t the happy path. It was the lease-expiry race.

Setup:

- Lease TTL: 1s - Worker A sleeps 2.5s (forces expiry) - Barrier enforces deterministic ordering - Worker B reclaims the job

Structured trace:

{"event": "lease_acquired", "job_id": "...", "token": 1, "forced": true} {"event": "execution_started", "job_id": "...", "token": 1} {"event": "lease_acquired", "job_id": "...", "token": 2, "forced": true} {"event": "execution_started", "job_id": "...", "token": 2} {"event": "stale_write_blocked", "job_id": "...", "stale_token": 1, "current_token": 2, "reason": "token_mismatch"} {"event": "worker_exit", "reason": "stale"} {"event": "worker_exit", "reason": "success"}

Worker A believed it still owned the lease. Worker B legitimately reclaimed it.

Without fencing, Worker A could still attempt mutation.

UNIQUE(job_id) alone is insufficient — it prevents duplicate rows but does not encode lease epoch ownership.

The fix:

- Add `fencing_token BIGINT` - Increment atomically on every lease acquisition - Bind side effects to `(job_id, fencing_token)` - Enforce a write gate before mutation

Claim logic:

UPDATE jobs SET state='running', lease_owner=$1, lease_expires_at = NOW() + make_interval(secs => $2), fencing_token=fencing_token+1, updated_at=NOW() WHERE id=$3 AND ( state='queued' OR (state='running' AND lease_expires_at < NOW()) ) RETURNING id, fencing_token;

Lease validity depends solely on DB time (`NOW()`); workers never use local clocks for correctness.

Guarantees under forced expiry + reclaim:

- No duplicate side effects - No stale worker mutation - Deterministic reproduction of the race - DB-enforced epoch ownership via `(job_id, fencing_token)`

The harness forces this race deterministically via barrier gating and forced TTL expiry.

Curious how others handle fencing under lease-based execution — specifically how teams handle fencing token overflow at scale and whether renewal logic changes the fencing guarantee.

Comments URL: https://news.ycombinator.com/item?id=47129394

Points: 1

# Comments: 1

Categories: Hacker News

Pages