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.
(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.)
'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.
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?
(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.
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.
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".
'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.
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?!?
'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.
'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.
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.
(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.
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
.
'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.
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?
ZFS Snapshots mit 'Ablgleich'
Eine Live-Demo und Diskussion mit Christian Zengel (Vlogger Logic)
Ich war zu Gast bei Christian Zengels Vlogger Logic.
'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.
'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.
'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.
'bewegung' 0.0.1 released
A versatile video renderer
Initial release of bewegung
, a versatile video renderer and pleiszenburg.de open source project.
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.
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".
'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.
'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.
'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.
'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.
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.
'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.
'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.
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.
'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.
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.
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.
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.
(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.
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.
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.