Blog overview

Statische Kacheln für interaktive Karten in statischen Webseiten
Wie man eigene Kacheln herstellt und als statischen Inhalt einbindet

Bibliotheken wie Leaflet haben es einfach gemacht, eigene interaktive Karten in Webseiten einzubinden. Aber woher kommen die Kacheln, auch als Tiles bezeichnet, welche die Grundlage dieser Karten bilden? Neben der direkten Einbindung von Kacheln des OpenStreetMap-Projektes oder diversen akademischen und kommerziellen Produkten kann man selbstverständlich auch seine eigenen Kacheln verwenden. Der typischerweise empfohlene, datenschutzkonforme Weg besteht im Aufsetzen eines Kachel-Servers. Es geht jedoch auch dem Paradigma statischer Webseiten folgend: Die Kacheln lokal rendern und als einfache Dateien auf den eigenen Webspace hochladen.

More ›››

  • DSGVO
  • Datenschutz
  • Docker
  • Kacheln
  • Karte
  • Leaflet
  • Open Data
  • Statische Webseite
  • Tiles

(Updated: )

About the Software behind this Blog
An open Software Test

This (first) entry in my blog serves to demonstrate all features of the used software. It is also designed to be used as an open, continually expanded software-test for new features of the mentioned software. In detail, paragraphs, lists, various links, source code and interactive figures are demonstrated. Other than in all subsequent articles in this blog, changes of this very article are not indicated in the context of its date of release. (The abstract of blog entries can contain free markdown elements such as links into Wikipedia.)

More ›››

  • Blog
  • Demo
  • Op-ed
  • Software-Test

'zugbruecke' 0.2 released
Calling into Windows DLLs under Linux, MacOS or BSD

Significantly improved 0.2 release of zugbruecke, a ctypes drop-in replacement for calling Windows DLLs from Unix-like systems and pleiszenburg.de open source project.

More ›››

  • Interoperability
  • Linux
  • Python
  • Python Module
  • Software Development
  • Unix
  • Wine
  • ctypes

Compiling and Testing NUMBA from Source
On Ubuntu 22.04 LTS / Linux Mint 21

My recent journey into Numba has made me explore rarely used parts and edge-cases of the library. It inevitably made me discover bugs and inconsistencies. To the numba developers' credit, they are reacting impressively fast and offer bug-fixes for you to test in dedicated branches. It is therefore absolutely worth supporting those efforts by testing their fixes against your use-cases. This raises a question: How does one test these? Or, in other words, how does one build numba from source?

More ›››

  • CUDA
  • JIT
  • Python
  • contributing
  • numba

(Updated: )

Serverseitige E-Mail-Filter bei Hetzner, 2022-Edition
Über ein faktisch nicht dokumentiertes Feature

Wenn man bei Hetzner Webhosting-Kunde ist, beispielsweise mit "Level 1" oder "Level 4", erhält man nicht nur eine gewisse Anzahl an Mailboxen. Hetzner unterstützt auch serverseitige Filterung von E-Mails. Doch das Feature ist faktisch nicht dokumentiert und hat dem Anschein nach eine bewegte Geschichte.

More ›››

  • E-Mail
  • Filter
  • Hetzner
  • Sieve

Characterizing 'vectorized' and 'guvectorized' for different amounts of data and compiler targets
On Numba's JIT Vectorization Capabilities

The Python package Numba is a JIT compiler that translates a subset of Python and NumPy code into machine code. Among other features, it allows to generate NumPy ufuncs via numba.vectorize and generalized ufuncs via numba.guvectorize. The mentioned types of functions can be compiled for different targets, i.e. for CPU, both single- and multi-threaded (parallel), as well as for CUDA on Nvidia GPUs. I am analyzing the performance of a simple compiled demo workload across different sizes of input data and different compiler targets. TLDR: numba.vectorize and numba.guvectorize show near-identical scaling behavior. An array of size more than 10^3 is required to saturate 24 CPU cores. CUDA shows its strengths north of 10^4.

More ›››

  • CUDA
  • HPC
  • JIT
  • Python
  • benchmark
  • generalized universal function
  • numba
  • ufunc
  • vectorization

PGP Key Transition (key8 => key9)
Biennial Key Swap

I have recently set up a new OpenPGP key ("key9") and will be transitioning away from my old one ("key8"). The old "key8" has NOT been compromised. The old "key8" expired today, Wednesday, 2022-08-17. However, it was updated and it will continue to be valid until Friday, 2022-08-19. I hereby kindly request all future correspondence to come to the new "key9".

More ›››

  • communication
  • email
  • gnupg
  • key
  • pgp
  • security
  • signing

'bewegung' 0.0.7 released
A versatile video renderer

0.0.7 release of bewegung, a versatile video renderer and pleiszenburg.de open source project. Improved documentation.

More ›››

  • Python
  • Python Package
  • Release
  • animated-gif
  • animation
  • animation-framework
  • compositor
  • h264
  • renderer
  • rendering
  • rendering-engine
  • scientific-visualization
  • video
  • visualization

International Geomagnetic Reference Field vs. Python
On the proliferation of implementations - plus a new one

There are literally a ton of Python-implementations of the International Geomagnetic Reference Field (IGRF) out there. I just added a new one to the mix. Why?!?

More ›››

  • IGRF
  • Python
  • geomagnetism
  • geophysics
  • magnetic field

'abgleich' 0.0.8 released
A ZFS synchronization and backup tool

0.0.8 release of abgleich, a simple ZFS sync tool and pleiszenburg.de open source project. This version is a major rewrite of many of its core functionalities to allow better long-term maintenance and extension. The cleanup of snapshots has been improved and is now also possible on the source zpool. Besides, abgleich now does not collide anymore with other ZFS backup tools.

More ›››

  • BSD
  • Backup
  • Linux
  • Python
  • Python Package
  • Release
  • Unix
  • ZFS

'bewegung' 0.0.6 released
A versatile video renderer

0.0.6 release of bewegung, a versatile video renderer and pleiszenburg.de open source project. Major overhaul of linear algebra functionality, better package structure and a test suite.

More ›››

  • Python
  • Python Package
  • Release
  • animated-gif
  • animation
  • animation-framework
  • compositor
  • h264
  • renderer
  • rendering
  • rendering-engine
  • scientific-visualization
  • video
  • visualization

My NumFOCUS-proposal got accepted
Array types for scaling for poliastro

Reviewer remarks:

Well written proposal with clear goals and benefits. Likely that this project would not be accomplished without this funding. Integrating with other NumFOCUS projects is a plus.

More ›››

  • HPC
  • NumFOCUS
  • Python
  • astrodynamics
  • orbital mechanics
  • poliastro
  • proposal

(Updated: )

Turning Plugin Management into Actual Package Management
QGIS Enhancement Proposal 179

QGIS Python plugins can not explicitly depend on regular Python packages. Although QGIS Python plugins can depend on other QGIS Python plugins, introduced in QGIS 3.8, this mechanism is far away from mature. Code quality, design and maintainability of the entire current plugin management system within QGIS, based on a detailed analysis of version 3.12, are questionable at best. This document proposes (a) to re-implement the existing plugin management system with all of its features, (b) to clean up the cross-plugin dependency design and (c) to add support for both the conda and the pip Python package managers for managing QGIS Python plugins - effectively adding support for dependencies between QGIS Python plugins and regular Python packages. These proposed changes are fully backward compatible and do not introduce adverse performance characteristics.

This proposal does intentionally not address the question of "Python environments", i.e. virtual environments and conda environments.

More ›››

  • Python
  • QGIS
  • conda
  • cpp
  • deployment
  • distribution
  • packaging
  • pip

Array types for scaling for poliastro
A NumFOCUS small development grants program proposal

At the moment, while excellent for individual computations, poliastro does not scale well to many parallel and array-like computations - e.g. propagating many orbits or many transfer solutions - as required by a lot of contemporary research. This will introduce array types and related infrastructure into poliastro.

More ›››

  • HPC
  • NumFOCUS
  • Python
  • astrodynamics
  • orbital mechanics
  • poliastro
  • proposal

'bewegung' 0.0.5 released
A versatile video renderer

0.0.5 release of bewegung, a versatile video renderer and pleiszenburg.de open source project. Many small changes in the linear algebra functionality, among other additions.

More ›››

  • Python
  • Python Package
  • Release
  • animated-gif
  • animation
  • animation-framework
  • compositor
  • h264
  • renderer
  • rendering
  • rendering-engine
  • scientific-visualization
  • video
  • visualization

Pure Python & Numpy openMP-style parallel for-loops!
POSIX shared memory and forks

I recently came across POSIX shared memory and thought like ... what can you do with this and numpy?

More ›››

  • BSD
  • Linux
  • POSIX
  • Python
  • Unix
  • fork
  • parallel computing
  • shared memory

ZFS Snapshots mit 'Ablgleich'
Eine Live-Demo und Diskussion mit Christian Zengel (Vlogger Logic)

Ich war zu Gast bei Christian Zengels Vlogger Logic.

More ›››

  • BSD
  • Backup
  • Demo
  • Diskussion
  • Linux
  • Python
  • Python Package
  • Unix
  • ZFS

'bewegung' 0.0.4 released
A versatile video renderer

0.0.4 release of bewegung, a versatile video renderer and pleiszenburg.de open source project. It is a pure bug-fix release.

More ›››

  • Python
  • Python Package
  • Release
  • animated-gif
  • animation
  • animation-framework
  • compositor
  • h264
  • renderer
  • rendering
  • rendering-engine
  • scientific-visualization
  • video
  • visualization

'bewegung' 0.0.3 released
A versatile video renderer

0.0.3 release of bewegung, a versatile video renderer and pleiszenburg.de open source project. The handling of SVGs has been improved.

More ›››

  • Python
  • Python Package
  • Release
  • animated-gif
  • animation
  • animation-framework
  • compositor
  • h264
  • renderer
  • rendering
  • rendering-engine
  • scientific-visualization
  • video
  • visualization

'bewegung' 0.0.2 released
A versatile video renderer

Second release of bewegung, a versatile video renderer and pleiszenburg.de open source project. Dependencies with regard to matplotlib are handled in a more flexibel manner.

More ›››

  • Python
  • Python Package
  • Release
  • animated-gif
  • animation
  • animation-framework
  • compositor
  • h264
  • renderer
  • rendering
  • rendering-engine
  • scientific-visualization
  • video
  • visualization

'bewegung' 0.0.1 released
A versatile video renderer

Initial release of bewegung, a versatile video renderer and pleiszenburg.de open source project.

More ›››

  • Python
  • Python Package
  • Release
  • animated-gif
  • animation
  • animation-framework
  • compositor
  • h264
  • renderer
  • rendering
  • rendering-engine
  • scientific-visualization
  • video
  • visualization

Asteroid Discovery 1980-2020
'A remake' (old idea, new rendering pipeline)

Nice little by-product of optimizing my animation pipeline: A "remake" of Scott Manley's famous Asteroid Discovery video from 2010, in my case all the way from 1980 to today, September 14 2020, in 1080p.

More ›››

  • HPC
  • animation
  • asteroids
  • astrodynamics
  • discovery
  • solar system

PGP Key Transition (key7 => key8)
Biennial Key Swap

I have recently set up a new OpenPGP key ("key8") and will be transitioning away from my old one ("key7"). The old "key7" originally expired on Sunday, 2020-08-16. However, it was updated and it will continue to be valid until Friday, 2020-10-16. I hereby kindly request all future correspondence to come to the new "key8".

More ›››

  • communication
  • email
  • gnupg
  • key
  • pgp
  • security
  • signing

'abgleich' 0.0.7 released
A ZFS synchronization and backup tool

0.0.7 release of abgleich, a simple ZFS sync tool and pleiszenburg.de open source project. Yet another pure bug-fix release.

More ›››

  • BSD
  • Backup
  • Linux
  • Python
  • Python Package
  • Release
  • Unix
  • ZFS

'abgleich' 0.0.5 released
A ZFS synchronization and backup tool

0.0.5 release of abgleich, a simple ZFS sync tool and pleiszenburg.de open source project. The handling of the root dataset of the tree of synchronized datasets can be configured.

More ›››

  • BSD
  • Backup
  • Linux
  • Python
  • Python Package
  • Release
  • Unix
  • ZFS

'abgleich' 0.0.6 released
A ZFS synchronization and backup tool

0.0.6 release of abgleich, a simple ZFS sync tool and pleiszenburg.de open source project. It is a pure bug-fix release.

More ›››

  • BSD
  • Backup
  • Linux
  • Python
  • Python Package
  • Release
  • Unix
  • ZFS

'abgleich' 0.0.4 released
A ZFS synchronization and backup tool

0.0.4 release of abgleich, a simple ZFS sync tool and pleiszenburg.de open source project. The tools is now available in both German and English. It can furthermore easily be translated into additional languages.

More ›››

  • BSD
  • Backup
  • Linux
  • Python
  • Python Package
  • Release
  • Unix
  • ZFS

Cross-platform Python with Wine and Jupyter
'wenv' and 'wenv-kernel'

I built and published two little tools, wenv and wenv-kernel. They allow to run Windows-versions of [C]Python on top of Wine on Linux, MacOS or BSD.

More ›››

  • BSD
  • Linux
  • Python
  • Python Package
  • Release
  • Unix
  • Windows
  • Wine
  • ipython
  • jupyter

'abgleich' 0.0.3 released
A ZFS synchronization and backup tool

0.0.3 release of abgleich, a simple ZFS sync tool and pleiszenburg.de open source project. The tool now features a wizard GUI and a couple of additional, useful configuration options.

More ›››

  • BSD
  • Backup
  • Linux
  • Python
  • Python Package
  • Release
  • Unix
  • ZFS

'abgleich' 0.0.2 released
A ZFS synchronization and backup tool

0.0.2 release of abgleich, a simple ZFS sync tool and pleiszenburg.de open source project. It now supports Python 3.8 and and offers a fully object oriented API.

More ›››

  • BSD
  • Backup
  • Linux
  • Python
  • Python Package
  • Release
  • Unix
  • ZFS

Earthquakes 2010-2019
10 years of earthquakes visualized

I got inspired to visualize and animate 10 years of earthquakes in 3D and documented how the video was made, enabling its relatively easy reproduction.

More ›››

  • OpenStreetMap
  • Python
  • USGS
  • animation
  • earthquake
  • geophysics
  • globe
  • open data
  • rendering
  • scientific-visualization
  • video
  • visualization

'abgleich' 0.0.1 released
A ZFS synchronization and backup tool

Initial release of abgleich, a simple ZFS sync tool and pleiszenburg.de open source project.

More ›››

  • BSD
  • Backup
  • Linux
  • Python
  • Python Package
  • Release
  • Unix
  • ZFS

PGP Key Transition (key6 => key7)
Biennial Key Swap

I have recently set up a new OpenPGP key ("key7") and will be transitioning away from my old one ("key6"). The old key has NOT been compromised and will continue to be valid until Sunday, 2018-08-26. I hereby kindly request all future correspondence to come to the new one.

More ›››

  • communication
  • email
  • gnupg
  • key
  • pgp
  • security
  • signing

Calling into Windows DLLs under Linux, MacOS or BSD
Pleiszenburg.de releases open source project 'zugbruecke'

zugbruecke is an experimental Python module (currently in development status 3/alpha). It allows to call routines in Windows DLLs from Python code running on Unices / Unix-like systems such as Linux, MacOS or BSD. zugbruecke is designed as a drop-in replacement for Python's standard library's ctypes module. zugbruecke is built on top of Wine. A stand-alone Windows Python interpreter launched in the background is used to execute the called DLL routines. Communication between the Unix-side and the Windows/Wine-side is based on Python's build-in multiprocessing connection capability. zugbruecke has (limited) support for pointers and struct types. zugbruecke comes with extensive logging features allowing to debug problems associated with both itself and with Wine. zugbruecke is written using Python 3 syntax and primarily targets the CPython implementation of Python.

More ›››

  • Interoperability
  • Linux
  • Python
  • Python 3
  • Python Module
  • Software Development
  • Unix
  • Wine
  • ctypes

DWD eröffnet "Open Data"-Server
Änderung des Gesetzes über den Deutschen Wetterdienst tritt in Kraft

Mit dem Beschluss des "Gesetzes zur Änderung des Gesetzes über den Deutschen Wetterdienst" (DWD) durch Bundestag und Bundesrat, welches heute in Kraft tritt, werden viele vormals kostenpflichtige Messdaten und Produkte des DWD frei zugänglich.

More ›››

  • Datenquellen
  • Deutschland
  • Gesetz
  • Meteorologie
  • Offene Daten
  • Open Data
  • Wetter

(Updated: )

Newton wusste, dass er falsch lag
Schneller rechnen, Teil 1: Eine Wolke von Punktmassen

Dies ist der erste Text in einer geplanten Reihe zu effizienterem, schnellerem wissenschaftlichem Rechnen. Darin stelle ich eine einfache physikalische Berechnung vor, welche sich als wiederkehrendes Beispiel wie ein roter Faden durch weitere Texte dieser Reihe ziehen wird. Im Rahmen dieses Artikels wird die umzusetzende Modellphysik analysiert, auf dieser Analyse aufbauend eine erste Struktur für eine spätere Simulation vorgeschlagen und diese abschließend optimiert.

More ›››

  • Berechnung
  • Optimierung
  • Physik
  • Simulation
  • Wissenschaftliches Rechnen

Python 3.5 und PyQt5
Aktualisierung meiner virtuellen Umgebung für F&E

Weiterführend zu meinem Artikel über den Aufbau einer kombinierten virtuellen Umgebung für Python und Node.js mit Benutzerrechten unter Linux erkläre ich in diesem Artikel, worin die wesentlichsten Unterschiede zum Aufbau einer aktuell(er)en Umgebung bestehen. Anstelle von CPython 3.4 kommt CPython 3.5 zum Einsatz. PqQt4 wird durch PyQt5 abgelöst, was den Bau der Umgebung wesentlich vereinfacht. Als Unterbau dient wie zuvor wieder openSUSE 13.1 Linux in seinen Varianten für 32-Bit- und 64-Bit-x86-Architekturen. Dieser Artikel richtet sich an fortgeschrittene Nutzer, die mit dem Umgang mit Linux und einer Kommandozeile vertraut sind.

More ›››

  • Datenanalyse
  • JavaScript
  • Linux
  • Node.js
  • PyQt
  • PyQt5
  • Python
  • Python 3
  • Softwareentwicklung
  • nodeenv
  • virtualenv

Python & Node.js in Linux Userspace
Bootstrapping a Combined Virtual Environment for R&D

In this blog article I demonstrate how to bootstrap a combined Python and Node.js virtual environment completely in userspace on Linux. Root privileges might only be required for installing system-level dependencies. The described setup serves as my current fundamental baseline for development and data analysis work. It is based on Python 3.4 (CPython), virtualenv, nodeevn, Node.js 6.2, PyQt4, numpy, matplotlib, pymongo and h5py. In runs on top of both 32 bit (x86) and 64 bit (x86_64) openSUSE 13.1 Linux (now, as of early 2016, in long-term "Evergreen" support). The following text might be applicable to other versions of openSUSE or, in general, other Linux distributions, though package names and versions might differ.

More ›››

  • Data Analysis
  • JavaScript
  • Linux
  • Node.js
  • PyQt
  • PyQt4
  • Python
  • Python 3
  • Software Development
  • nodeenv
  • virtualenv