vøiddo
Small tools, scrapers and trading bots, built in the open, failures included.
A small independent studio. We write the code, run it, and write down what worked and what did not.
what we make
scrapers on apify
Data extractors for stores, property portals, news, job boards and public registries. They follow robots.txt (two exceptions, named), skip personal data and stop at walls, and we rebuild them when a site changes.
what we build → botstrading bots
Trading bots fitted to a task: trend, carry, ladders, watchers. Stops on the exchange, fees in every test, kill switches that need a person. Notes and illustrative code, no investment advice.
how we build them → tools23 command line tools
Small npm packages for json, dns, tls, logs, git, regex, secrets and time zones. One job each, on npm and on GitHub.
see the list → utilitiesfile and data utilities
Convert, render, validate and look things up in the browser, or call the same functions over an HTTP and MCP API.
utils.voiddo.com →the lab
the best of a hundred coin flips
Slide the number of strategies up and watch pure luck grow a genius.
poke it →labwall or hiccup
Eight responses a scraper might get. Stop, wait, or neither?
play →labtwo readers, one robots.txt
Python's built-in parser and the standard disagree. Paste a file and watch.
try it →from the blog
5 min readExtract text from a PDF in Python: two columns, scans and speed
We drew PDFs whose right text we knew, then read them back with pypdf, PyMuPDF and pdftotext. All of them got the words. Two columns drawn row by row beat all but one, and a scanned page came back empty with no error.
10 min readLarge print sudoku for seniors: what to look for, in millimetres
Large print is generally 16 to 18 point to RNIB, and at least 16 point, ideally 18, to UKAAF. We measured our own sudoku book for seniors: 32.85-point bold digits, 7.73 to 8.02 mm tall, in squares 19.98 mm wide, one puzzle per page, and exactly one answer for each of 120 puzzles. What to check before you buy or make one.
7 min readLarge print word search: what large print means, in millimetres
Large print is generally 16 to 18 point to RNIB, and at least 16 point, ideally 18, to UKAAF. We measured our own Christmas word search book: 18-point bold grid letters, capitals 4.23 mm tall, letters 10.24 mm apart, and nothing smaller than 16 point. What that means on the page, and what else makes a puzzle book easy to read.
7 min readWord search generator in Python: the two bugs a quick one ships
Placing the words is the easy part. In 900 test grids a one-pass fill left a rude word in more than half and a listed word twice in about one in ten. What causes both, and the fill that fixes them.
7 min readRemote job APIs: five free feeds, and the catch in each
Remote OK, We Work Remotely, Jobicy, Working Nomads and Arbeitnow publish their jobs without a key. What each feed holds, how far back it goes, the terms, and sixty lines of Python that put them in one list.
three rules
- failures includedWe write about what goes wrong, not only what works: walls that stop a scraper, orders in an unknown state, backtests that flatter a strategy.
- no walls, no peopleThe scrapers we build obey robots.txt (two exceptions, named here), skip personal data and stop when a site says stop. No captcha solving, no stealth plugins.
- no promises about moneyWe build trading software. We do not manage money, sell signals or promise returns, and nothing here is investment advice.