Home Server Ops with a Read-Only Agent and pyinfra
How I manage my home server with a coding agent: it gets read-only SSH access to explore, and every change goes through pyinfra deploys in a git repo that I review and apply. Read more →
Garmin inReach Mini 2 Leaflet checkin map
Scraping the check-in messages of a Garmin inReach Mini 2 and showing them on a Leaflet map. Read more →
Local macOS Dev Setup: dnsmasq + caddy-snake for python projects
How I run several Python WSGI services side by side on macOS: wildcard local domains with dnsmasq, Caddy as reverse proxy, and automatic startup on boot. Read more →
Georg Bayerle - Der Alpen Appell
Georg Bayerle schildert in seinem Buch der Alpen Appell den Konflikt zwischen der immer weitergehenden Erschließung und dem Versuch den Naturraum Alpen zu bewahren. Read more →
Mistune 3 Wikilink Inline Parser
Extending Mistune 3 to parse inline wikilinks. Read more →
BikeRouter and OnRouteMap
Bikerouter.de and Onroutemap.de are great tools to plan your long-distance, multi-day bikepacking adventures. Read more →
Using SQLite with JSON Data
Using SQLite to store, query and modify JSON data with full flexibility. Using JSON columns works best, if you need to support a flexible datamodel and during prototyping. Read more →
Tenant Isolation in Snowflake for ML - Operational Patterns
Follow-up to Tenant Isolation in Snowflake: how to run multi-tenant ML workloads in practice, from copying tenant data and promoting changes between environments to experimenting with real customer data under strict controls. Read more →
Exploring Mountain Huts with SPARQL and Wikidata
How to query Wikidata with SPARQL for mountain huts and bivouacs around a given latitude and longitude. Read more →
Tenant Isolation in Snowflake
Snowflake offers several ways to isolate tenants: separate accounts, separate databases, separate schemas, or shared tables with a tenant_id column. This post compares them with pros, cons and best practices. Read more →
Blue Yonder at PyCon.DE 2023
It's been now 10 years ago when Blue Yonder started the first sponsoring of a python conference at Europython Florence. Since then we have been either sponsoring and/or organizing at least one python event per year. Read more →
Using Docker multi-stage builds to compile turbodbc with PyArrow support on Debian 11
How to use a Docker multi-stage build to compile turbodbc with pyarrow support on Debian 11. Read more →
Beautiful Leaflet Markers with Folium and Font Awesome
TIL how to use fontawesome markers with folium. Read more →
Scale-Aware Rating of Count Forecasts
Forecasts crave a rating that reflects the forecast's quality in the context of what is possible in theory and what is reasonable to expect in practice. Read more →
Python Support in Snowflake
Snowflake offers different ways to access and call python from within their compute infrastructure. This post will show how to access python in user defined functions, via stored procedures and in snowpark. Read more →
Convert the Himalayan Database to SQLite
Conversion of the Himalayan database of the legendary Elizabeth Hawley from FoxPro to SQLite. Read more →
Azure Synapse SQL On-Demand OPENROWSET Common Table Expression with SQLAlchemy
Using SQLAlchemy to create openrowset common table expressions for Azure Synapse SQL-on-Demand Read more →
DuckDB vs. Azure Synapse SQL on-demand with Parquet
Inspired by Uwe Korns post on DuckDB this post shows how to use Azure Synapse SQL-on-Demand to query parquet files with T-SQL on a serverless cloud infrastructure. Read more →
Using turbodbc to access Azure Synapse SQL-on-demand endpoints
Azure Synapse SQL-on-Demand offers a web client, the desktop version Azure Data studio and odbc access with turbodbc to query parquet files in the Azure Data Lake. Read more →
Azure Data Explorer and Parquet Files in Azure Blob Storage
Last summer Microsoft has rebranded the Azure Kusto Query engine as Azure Data Explorer. While it does not support fully elastic scaling, it at least allows to scale up and out a cluster via an API or the Azure portal to adapt to different workloads. It also offers parquet support out of the box which made me spend some time to look into it. Read more →
Understanding Predicate Pushdown at the Row-Group Level in Parquet with PyArrow and Python
How predicate pushdown works on row group level in Apache Parquet, and how to use the row group statistics with pyarrow to read only the data you need. Read more →