Blog

A pragmatic mix of code, automation, data and infrastructure, with equal respect for running shoes, good food and getting outdoors.

Massive Browser API

proxyweb scraping

Byteful Residential Proxies

proxyweb scraping

Geonode Proxies

proxyweb scrapingPython

Massive ASN Targeting

proxyweb scraping

Massive Geotargeting

proxyweb scraping

Massive Proxies

proxyweb scrapingPython

What’s New in Chrome 144?

browserweb scrapingChrome

What’s New in Firefox 147?

Firefoxbrowserweb scraping

What’s New in Firefox 146?

Firefoxbrowserweb scraping

What’s New in Chrome 143?

browserweb scrapingChrome

What’s New in Firefox 145?

Firefoxweb scraping

Camoufox in Docker

DockerCamoufox

Playwright Browser Footprint

Playwrightweb scraping

Get Cookies from Chrome or Firefox

SeleniumPlaywrightcookiesweb scraping

Headless Browser Hacks

SeleniumPlaywrightweb scrapingframebufferanti-bot

Webshare Proxies

proxyweb scraping

Test a Playwright Web Scraper

web scrapingtestingPlaywright

Test a Selenium Web Scraper

web scrapingtestingSelenium

Handling HTML Entities and Unicode

web scrapingHTMLUnicode

Scraping JSON-LD Data

web scraping

Test a Web Scraper using Patching

web scrapingtestingpytest

Test a Web Scraper using Mocking

web scrapingtestingpytest

Test a Web Scraper using VCR

web scrapingtesting

Web Scraper Testing

web scrapingtesting

Zyte API Sessions

web scrapingZyte

Zyte API Cookie Management

web scrapingcookiesZyte

Installing CPLEX

optimisation

Installing MOSEK

optimisation

Optimisation with Pyomo

optimisationPython

Optimisation with CVXPY

optimisationPython

Optimisation with SciPy

optimisationPython

Migrating from GitLab Pages to Vercel

Vercel{blogdown}GitLab

Scraping the NYSE Composite Index

web scrapingtradingR

Asset Price Data

{alpacar}R

Alpaca API Authentication

trading{alpacar}R

Earnings Calendar

BASHweb scrapingrequeststradingPython

Caching & Avoiding Duplication

web scrapingrequestsPython

Downloading Files with Selenium

web scrapingSeleniumPython

Economic Calendar

web scrapingPlaywrighttradingPythonR

Your Life in Weeks

{ggplot2}R

Bypassing Cloudflare with Cloudscraper

web scrapingCloudflarePython

Installing Docker

DockerLinuxUbuntu

Locations from Google Map

web scrapingPython

Backtesting

quantGARCHR

Asset Allocation

quantGARCHR

Risk/Reward Tradeoff

quantGARCHR

Model Validation

quantGARCHR

Leverage Effect

quantGARCHR

Skewed Returns

quantGARCHR

Python Packages from GitHub

PythonGitHubGit

What is Traefik?

TraefikNGINX

Testing CSS & Xpath

web scrapingCSS

Gatsby Content from MDX

TypeScriptGatsby

Python Security Audit

pre-commitGitPython

ChromeDriver in GitLab CI Pipeline

SeleniumChromeDriverCIGitLab

Gatsby, Tailwind & Docker

DockerTailwindGatsby

Humble Head

Gatsby

Minecraft Paper Server

UbuntuMinecraft

Weekly Digest & Annual Review

KerasSSHJuliaFirefox

Chrome & ChromeDriver in Docker

DockerChromeDriverSelenium

Minecraft Client on Ubuntu

UbuntuMinecraft

Minecraft Server on Ubuntu

UbuntuMinecraft

Weekly Digest

LLMDockerSelenium

Weekly Digest

SparkKerasVercelR

Externalise CSS

CSSGatsby

Weekly Digest

Docker

Gatsby on Vercel

VercelGatsby

Cookies & Headers from Selenium

web scrapingSeleniumcookiesPython

Weekly Digest

AWSDockerSpark

Add Nodes & Fields to GraphQL Schema

AsciiDocGraphQLGatsby

Weekly Digest

AWSDockerCSS

Gatsby Page Ordering

AsciiDocGraphQLGatsby

Adding a Sitemap with Gatsby

SEOsitemapGatsby

Gatsby Starter Project

JavaScriptGatsby

Undetected ChromeDriver with noVNC

DockerSeleniumChromeDriverweb scrapingnoVNC

Mocking S3 from Python tests

testingpytestS3Python

Flattening Nested Schemas

MarshmallowSQLAlchemy

Installing Gatsby

UbuntuGatsby

Chrome DevTools Protocol & Selenium

web scrapingSeleniumdevtools

Stay Below the Radar

DockerSeleniumChromeDriverweb scraping

Scaling Density Plots

{ggplot2}{ggridges}R

Enforcing Style in an R Project

lintpre-commitGitR

Enforcing Style in a Python Project

lintpre-commitGitPython

Schools in England

{blimey}R

Mailfence Setup

encryptionemail

Creating Git Commits in CI

CIGitGitLabGitHub

Adding Timestamp Columns

PostgreSQLSQL

How to Harvest RSS Feeds

RSSweb scraping

Building GPXSee

spatial

{emayili} Understanding Encrypted Email

emailencryptionGPG{emayili}

HCRIS Field Labels

{pdftools}R

Medusa: A Multi-Headed Tor Proxy

web scrapingproxyTor

{emayili} Right-to-Left

Markdown{emayili}R

{emayili} Styling Figures

Markdown{emayili}R

{emayili} Managing CSS

Markdown{emayili}R

{emayili} R Markdown Parameters

Markdown{emayili}R

{emayili} Rendering R Markdown

Markdown{emayili}R

Old ’Hood, New ’Hood

spatial{geosphere}{ggmap}R

Websockify & noVNC: Adding SSL

NGINXnoVNCWebsockify

TomTom Traffic

{tomtom}R

TomTom Routing

spatial{tomtom}R

Mobility & Unrest in South Africa

{saffer}{mobility}R

Shiny on ECS

ShinyECSR

Scrapy with a Rotating Tor Proxy

proxyTorScrapyDockerPython

Desktop in Docker

DockerUbuntu

Using {pagedown} in Docker

Docker{pagedown}R

Launching Selenium with JavaScript Disabled

Seleniumweb scrapingPython

This is not Rain: It’s a Trickle

Seleniumweb scrapingR

Cyril’s Speeches

{saffer}R

Topographic Maps for South Africa

spatialDocker{saffer}R

Retail Data: Scraping & API

web scrapingPython

Scraping Machinery Parts

web scrapingR

DNS on Ubuntu

Ubuntu

Chairing a Conference Session

speakingconference

Linux VM on Azure

AzureLinux

Installing rJava

LinuxDockerR

Quick WordPress Install with Docker

WordPressMySQLNGINXDockerLinux

RSelenium and Java Heap Space

web scrapingSeleniumR

Clustering Time Series Data

Machine Learning

Bulgaria Web Summit

Conference

PLOS Subject Keywords: Gathering Data

Association RulesCollaborative FilteringR

The Next Rembrandt

Machine Learning

Beautiful Data

book reviewPythonR

Data Mining with Rattle and R

Machine Learningbook reviewR

Shiny Bayesian Updates

BayesianShinyR

Machine Learning with R Cookbook

Machine Learningbook reviewR

Graph Databases

Neo4jbook review

Top 250 Movies at IMDb

web scrapingR
No matching items