Let’s run Jupyter notebooks in a Visual Studio Code development container, so we keep our host system clean and our development setup replicable. We’re building a scraper, so let’s add support for Puppeteer (pyppeteer) as well!
Let’s face it: sometimes DateTime is just too much: you only want to deal with dates. Since .NET 6, we finally have support for DateOnly. In this blog I’ll look at how to interact with it and how to add it to your Swagger API docs.
You have a bunch of online services that let you take screenshots of a site and save them in a folder. While it can be very useful to pay for such a system, it is not so hard to create it. Let’s use Chrome / Chromium with Puppeteer and Node.js (cluster) to take some snapshots in no-time. We’ll use the Puppeteer Cluster package to run multiple threads / workers to grab those screens in parallel. We’ll be using TypeScript.
The web is unreliable. Here’s a compact exponential back-off retry utility for TypeScript — one function, no dependencies, proportional jitter included.
This week we had to exfil some data out of a bucket with 5M+ of keys. After doing some calculations and testing with a Bash script that used AWS cli, we decided to go a more performant route and use s3p. They claim to be 5-50 times faster than AWS cli 😊.
Positional arguments like $1 and $2 are hard to read. This Bash pattern maps named options to explicitly allowed variables and validates the required input.