41554 blogs · [ { "id": "01a087a9-017b-7061-ab6f-eec005e82bb0", "title": "AFL 2026 Season in Motion: Visualising the Ladder Race", "url": "https://mortimer.xyz/afl-2026-ladder-race/", "published_at": "2026-08-31T12:00:00+00:00" }, { "id": "01a087a9-01a7-7152-bb01-0fa27684e8f6", "title": "Vibe coding a game in 2026 as a data engineer", "url": "https://mortimer.xyz/vibe-coding-a-game/", "published_at": "2026-06-11T00:00:00+00:00" }, { "id": "01a087a9-01a7-7152-bb01-0fa276d9d026", "title": "If databases were rappers (thoughts from a Generative AI)", "url": "https://mortimer.xyz/if-databases-were-rappers/", "published_at": "2026-03-17T12:00:00+00:00" }, { "id": "01a087a9-01a7-7152-bb01-0fa2772de96c", "title": "Implementing a component based design system in PowerBI", "url": "https://mortimer.xyz/powerbi-design-system/", "published_at": "2026-02-11T12:00:00+00:00" }, { "id": "01a087a9-01a7-7152-bb01-0fa277c522e4", "title": "Power BI PBIP Git version control", "url": "https://mortimer.xyz/pbip-git-version-control/", "published_at": "2026-01-31T12:00:00+00:00" }, { "id": "01a087a9-01a7-7152-bb01-0fa278b1d2cd", "title": "Loan Logic, an application to help with mortgage scenario modelling", "url": "https://mortimer.xyz/loan-logic-mortgage-scenario-modelling/", "published_at": "2025-11-14T00:00:00+00:00" }, { "id": "01a087a9-01a7-7152-bb01-0fa278c2200c", "title": "Load to Teradata with a Python wrapper for TPT", "url": "https://mortimer.xyz/python-teradata-tpt/", "published_at": "2025-10-08T12:00:00+00:00" }, { "id": "01a087a9-01a7-7152-bb01-0fa27970b546", "title": "If cloud platforms were people (thoughts from a Generative AI)", "url": "https://mortimer.xyz/if-cloud-platforms-were-people/", "published_at": "2025-09-10T12:00:00+00:00" }, { "id": "01a087a9-01a7-7152-bb01-0fa27990a1db", "title": "Quackpipe, running DuckDB local and on AWS Glue", "url": "https://mortimer.xyz/quackpipe-aws-glue-duckdb/", "published_at": "2025-08-15T12:00:00+00:00" }, { "id": "01a087a9-01a7-7152-bb01-0fa27a29c4ce", "title": "Query Salesforce with Python", "url": "https://mortimer.xyz/query-salesforce-with-python/", "published_at": "2025-07-05T00:00:00+00:00" }, { "id": "01a087a9-01a7-7152-bb01-0fa27adbe62e", "title": "Publishing a Python Streamlit app to Posit Connect", "url": "https://mortimer.xyz/streamlit-app-on-posit-connect/", "published_at": "2025-04-09T12:00:00+00:00" }, { "id": "01a087a9-01a7-7152-bb01-0fa27bb09859", "title": "Making Machine Learning predictions from BigQuery Dataform", "url": "https://mortimer.xyz/gcp-bigquery-dataform-vertex-predict/", "published_at": "2025-04-03T12:00:00+00:00" }, { "id": "01a087a9-01a7-7152-bb01-0fa27c8f3fb6", "title": "The Tale of Two Routes: A Love Story Between BigQuery and Vertex AI for Machine Learning predictions", "url": "https://mortimer.xyz/gcp-ml-predict-two-routes-bigquery-vertex/", "published_at": "2025-03-31T12:00:00+00:00" }, { "id": "01a087a9-01a7-7152-bb01-0fa27d0c8bd2", "title": "GCP Serverless prediction service using Cloud Run from a Vertex AI model", "url": "https://mortimer.xyz/gcp-predict-service-cloudrun/", "published_at": "2025-02-15T12:00:00+00:00" }, { "id": "01a087a9-01a7-7152-bb01-0fa27d44a267", "title": "Checking the public IP address of a GCP Cloud Function", "url": "https://mortimer.xyz/gcp-function-ip-checker-terraform/", "published_at": "2024-11-04T12:00:00+00:00" }, { "id": "01a087a9-01a7-7152-bb01-0fa27dd16f0e", "title": "If programming languages were people (thoughts from a Generative AI)", "url": "https://mortimer.xyz/if-programming-languages-were-people-ai-thoughts/", "published_at": "2024-10-25T00:00:00+00:00" }, { "id": "01a087a9-01a7-7152-bb01-0fa27e8a62c5", "title": "Debugging Dataform with Node.js in VScode", "url": "https://mortimer.xyz/debugging-dataform-nodejs/", "published_at": "2024-09-16T12:00:00+00:00" }, { "id": "01a087a9-01a7-7152-bb01-0fa27f3ecec6", "title": "GCP Cloud Functions for Web Scraping AFL data", "url": "https://mortimer.xyz/gcp-function-afl/", "published_at": "2024-08-02T12:00:00+00:00" }, { "id": "01a087a9-01a7-7152-bb01-0fa2800bdfc0", "title": "Flask application with custom package deployed to GCP Artifact Registry and Cloud Run", "url": "https://mortimer.xyz/flask-poetry-mono-repo-docker-gcp-artifact-registry/", "published_at": "2024-07-18T12:00:00+00:00" }, { "id": "01a087a9-01a7-7152-bb01-0fa28044e5a0", "title": "Converting table schemas from any database to BigQuery for Dataflow", "url": "https://mortimer.xyz/bigquery-ddl-helper/", "published_at": "2024-05-01T00:00:00+00:00" }, { "id": "01a087a9-01a7-7152-bb01-0fa2806d7971", "title": "A way to build CRUD apps with R Shiny and SQLite", "url": "https://mortimer.xyz/shinelite/", "published_at": "2024-05-01T00:00:00+00:00" }, { "id": "01a087a9-01a7-7152-bb01-0fa28089e3cf", "title": "KMS encrypted credentials with Dataflow on GCP", "url": "https://mortimer.xyz/gcp-kms-dataflow/", "published_at": "2024-04-19T00:00:00+00:00" }, { "id": "01a087a9-01a7-7152-bb01-0fa2809fed00", "title": "Python Beam and DataFlow to write data to BigQuery with a custom Docker image", "url": "https://mortimer.xyz/dataflow-beam-docker/", "published_at": "2023-12-22T00:00:00+00:00" }, { "id": "01a087a9-01a7-7152-bb01-0fa280fe5239", "title": "Copying a table from Teradata to Google BigQuery", "url": "https://mortimer.xyz/google-bigquery-teradata/", "published_at": "2023-10-03T00:00:00+00:00" }, { "id": "01a087a9-01a7-7152-bb01-0fa28124b030", "title": "Connecting Nifi to Teradata", "url": "https://mortimer.xyz/nifi-teradata/", "published_at": "2023-09-13T00:00:00+00:00" }, { "id": "01a087a9-01a7-7152-bb01-0fa2820fcfb4", "title": "Hip-hop collaboration network graph", "url": "https://mortimer.xyz/hiphop-collaboration-network/", "published_at": "2023-05-08T00:00:00+00:00" }, { "id": "01a087a9-01a7-7152-bb01-0fa2826b2f16", "title": "Flask application with Postgres containerized across multiple clouds", "url": "https://mortimer.xyz/flask-postgres-docker-multi-cloud/", "published_at": "2023-04-02T12:00:00+00:00" }, { "id": "01a087a9-01a7-7152-bb01-0fa282d48296", "title": "Connecting to Teradata from Python", "url": "https://mortimer.xyz/python-teradata/", "published_at": "2023-03-25T12:00:00+00:00" }, { "id": "01a087a9-01a8-7222-b417-9745c87c3e66", "title": "Python mono repo for Data Science with Poetry", "url": "https://mortimer.xyz/python-mono-repo-for-data-science-with-poetry/", "published_at": "2023-02-17T12:00:00+00:00" }, { "id": "01a087a9-01a8-7222-b417-9745c9261f27", "title": "Install Posit Connect on Ubuntu", "url": "https://mortimer.xyz/install-posit-connect-ubuntu/", "published_at": "2023-01-04T12:00:00+00:00" }, { "id": "01a087a9-01a8-7222-b417-9745c9e6e8bf", "title": "Publish an R Package to a private repository and use", "url": "https://mortimer.xyz/r-package-publish-private/", "published_at": "2022-12-05T12:00:00+00:00" }, { "id": "01a087a9-01a8-7222-b417-9745ca609e81", "title": "Databricks security model architecture", "url": "https://mortimer.xyz/databricks-security-model-architecture/", "published_at": "2022-10-31T12:00:00+00:00" }, { "id": "01a087a9-01a8-7222-b417-9745cb52878e", "title": "Databricks and Azure DevOps CICD Pipeline for DBFS", "url": "https://mortimer.xyz/databricks-azure-devops-cicd-dbfs/", "published_at": "2022-08-11T12:00:00+00:00" }, { "id": "01a087a9-01a9-70ba-b653-87f355363b7b", "title": "Databricks using Azure ML model registry", "url": "https://mortimer.xyz/databricks-using-azureml-model-registry/", "published_at": "2022-08-10T12:00:00+00:00" }, { "id": "01a087a9-01a9-70ba-b653-87f355dd4d96", "title": "Model scoring API as a Docker container", "url": "https://mortimer.xyz/model-scoring-api-as-docker/", "published_at": "2022-08-04T12:00:00+00:00" }, { "id": "01a087a9-01a9-70ba-b653-87f35654edd9", "title": "Databricks sample NFL MLFlow", "url": "https://mortimer.xyz/databrick-sample-nfl-mlflow/", "published_at": "2022-08-03T12:00:00+00:00" }, { "id": "01a087a9-01a9-70ba-b653-87f35683b76d", "title": "Databricks sample NFL dataset", "url": "https://mortimer.xyz/databrick-sample-nfl-data/", "published_at": "2022-08-02T12:00:00+00:00" }, { "id": "01a087a9-01aa-7050-af2d-a87a8736a1ca", "title": "Model scoring API examples", "url": "https://mortimer.xyz/model-scoring-api/", "published_at": "2022-07-09T12:00:00+00:00" }, { "id": "01a087a9-01aa-7050-af2d-a87a87bf468b", "title": "Power BI PBIX Git version control", "url": "https://mortimer.xyz/pbix-git-version-control/", "published_at": "2022-06-14T12:00:00+00:00" }, { "id": "01a087a9-01aa-7050-af2d-a87a87f46c52", "title": "Git post-receive hook for deployment of a static site", "url": "https://mortimer.xyz/git-post-receive-hook-for-ssg-deployment/", "published_at": "2022-05-06T12:00:00+00:00" }, { "id": "01a087a9-01aa-7050-af2d-a87a8878dcef", "title": "Raspberry Pi time lapse server", "url": "https://mortimer.xyz/raspberrypi-timelapse/", "published_at": "2022-03-18T12:00:00+00:00" }, { "id": "01a087a9-01aa-7050-af2d-a87a88ac5097", "title": "Dynamic Images in Power BI Dashboards", "url": "https://mortimer.xyz/powerbi-dynamic-images/", "published_at": "2022-03-17T12:00:00+00:00" }, { "id": "01a087a9-01aa-7050-af2d-a87a8907f254", "title": "Integrating Azure Cognitive with Retool", "url": "https://mortimer.xyz/retool-azure-cognitive/", "published_at": "2021-12-03T12:00:00+00:00" }, { "id": "01a087a9-01aa-7050-af2d-a87a89833f13", "title": "Installing Prefect Server on Azure", "url": "https://mortimer.xyz/prefect-on-azure/", "published_at": "2021-11-22T12:00:00+00:00" }, { "id": "01a087a9-01aa-7050-af2d-a87a8a686b9c", "title": "Secret Santa with Node.js and Gmail", "url": "https://mortimer.xyz/secret-santa-node/", "published_at": "2021-10-16T12:00:00+00:00" }, { "id": "01a087a9-01aa-7050-af2d-a87a8b5d128e", "title": "How I develop Python in VSCode", "url": "https://mortimer.xyz/python-vscode/", "published_at": "2021-08-28T12:00:00+00:00" }, { "id": "01a087a9-01aa-7050-af2d-a87a8b758b36", "title": "Git Cleanup", "url": "https://mortimer.xyz/git-cleanup/", "published_at": "2021-07-29T12:00:00+00:00" }, { "id": "01a087a9-01aa-7050-af2d-a87a8bcf2c2b", "title": "RStudio with SSL proxy", "url": "https://mortimer.xyz/rstudio-https-proxy/", "published_at": "2021-05-26T12:00:00+00:00" }, { "id": "01a087a9-01aa-7050-af2d-a87a8c0c50ec", "title": "Tableau Web Data Connector Node Generator", "url": "https://mortimer.xyz/tableau-wdc-gen/", "published_at": "2021-04-17T12:00:00+00:00" }, { "id": "01a087a9-01aa-7050-af2d-a87a8c45a3f1", "title": "Agent Based Modelling", "url": "https://mortimer.xyz/mesa-workforce/", "published_at": "2021-04-16T12:00:00+00:00" }, { "id": "01a087a9-01aa-7050-af2d-a87a8cac3070", "title": "Geospatial shapes for vizualisation", "url": "https://mortimer.xyz/geospatial-for-visualisation/", "published_at": "2021-03-12T12:00:00+00:00" }, { "id": "01a087a9-01ab-7277-a53b-935eec814cca", "title": "Setting up a cloud webserver for hosting a static site", "url": "https://mortimer.xyz/setting-up-webserver/", "published_at": "2021-02-05T12:00:00+00:00" }, { "id": "01a087a9-01ab-7277-a53b-935eecd45e40", "title": "Tableau Web Data Connector", "url": "https://mortimer.xyz/tableau-wdc-sas/", "published_at": "2020-12-17T12:00:00+00:00" }, { "id": "01a087a9-01ab-7277-a53b-935eedb3569e", "title": "Embedded BI", "url": "https://mortimer.xyz/embedded-bi/", "published_at": "2020-11-04T12:00:00+00:00" }, { "id": "01a087a9-01ab-7277-a53b-935eee7c6bf7", "title": "Speed Up My Site", "url": "https://mortimer.xyz/speed-up-my-site/", "published_at": "2020-09-20T12:00:00+00:00" }, { "id": "01a087a9-01ab-7277-a53b-935eef4b9b4d", "title": "Linux Users Groups", "url": "https://mortimer.xyz/linux-users-groups/", "published_at": "2020-09-02T12:00:00+00:00" } ] posts Claim your blog
Back to mortimer.xyz
Blog · corpus.blog/blogs/mortimer.xyz/posts

mortimer.xyz

mortimer.xyz

2026

2025

2024

2023

2022

2021

2020