This page contains short articles about projects I'm doing myself or that friends of mine have expressed some interest in and for which I've decided to write short summaries. It also contains some short notes on how to solve some particular problems to keep an easy to access repository for friends and other people who might have the same problems. Please note that many of these articles are written late at night or in short breaks so if you spot any errors any correction is welcome.
The topics covered include:
Some source-code of hobby projects and/or partially externally used code as well as some unfinished stuff that I've released under BSD or BSD-like licenses can be found in my GitHub repositories. Most of the finished and released projects are automatically built for every release and every GitHub commit by Jenkins Pipelines on dynamically created Xen virtual machines for FreeBSD (amd64, arm6, aarch64), Linux (amd64) and Windows (amd64) as well as automatically tested by the pipeline scripts (using Unit-Testing for components, Frama-C with it's wp plugin against RTEs and to prove certain correctness constraints on C applications as well as Selenium with Java to emulate users on Web applications using chromedriver). I plan to auto deploy the artifacts in near future to a public artifact repository (like this webpage is automatically deployed on every commit into the corresponding repository).
If you like to read books on interesting subjects you can also refer to my list of recommended books
I've been notified that not all browser refer to the atom feed that's supplied by this blog and that not everyone notices the presence of such a feed even if interested. Of course one can subscribe using an RSS/ATOM reader using the ATOM feed at https://www.tspi.at/atom.xml or the corresponding onion URI http://rh6v563nt2dnxd5h2vhhqkudmyvjaevgiv77c62xflas52d5omtkxuid.onion/atom.xml
4 mins
This article solves the mystery behind some of my FreeBSD systems that had appeared to be randomly freezing and provides a solution to this single specific problem.
44 mins
Nuclear Magnetic Resonance (NMR) and Electron Paramagnetic Resonance (EPR) are pivotal techniques used to explore molecular structures and dynamics through the magnetic properties of atomic nuclei and unpaired electrons. This article provides an introductory level examination of NMR, integrating both classical and quantum mechanical descriptions. Key topics include the Zeeman effect, Bloch equations, relaxation processes, and the quantum mechanical framework involving spin operators, Eigenstates, and the density matrix formalism. The discussion delves into the effects of RF driving fields, Rabi oscillations, and the incorporation of relaxation processes using the Lindblad master equation. The article concludes by demonstrating how these quantum mechanical models align with the phenomenological Bloch equations, providing a comprehensive understanding of the dynamics of spin systems under resonance conditions. While the primary focus is on NMR, the article also offers insights into EPR, broadening the perspective on magnetic resonance techniques.
9 mins
Discover how to implement language negotiation on a static website using Apaches mod_rewrite. This article provides a step-by-step guide to serving translated content based on users browser preferences, enabling a seamless multilingual experience without the need for complex server-side scripts or content management systems. Whether you are looking to add multilingual support to your Jekyll-generated site or simply explore the powerful features of Apache, this guide offers clear explanations and practical examples to help you get started.
51 mins
This article explores the integration of the MLX90640 far infrared thermal sensor with a RaspberryPi using FreeBSD. It delves into the technicalities of interfacing the sensor, the intricacies of its data processing and compensation algorithms, and demonstrates these concepts with Python code examples.
7 mins
This article gives a short summary on the way to interface with the I2C bus on RaspberryPi using Python by using a thin wrapper around the ioctl calls supported by FreeBSD. In addition it introduces a small PyPi package that supplies this thin wrapper.
22 mins
A short summary on the interaction of alkali atoms with electromagnetic radiation
45 mins
A quick overview on how one can generate word and sentence embeddings using BERT, mpnet and OpenAIs sentence embedding API in Python. The second part also includes a mini semantic search engine (with linear index that only serves demonstration purpose). This article does not offer and in depth explanation but only a quick overview glance on the APIs to play around.
59 mins
This is a very short overview on how to use the tooling/function API of ChatGPT to call external functions to perform actions or retrieve some simple information. In addition a simple iterative problem solving process of GPTs is shown as an example in Python. It makes use of an external commercial API though.
1 min
Presented at the seminar at Atominstitut der Technischen Universität Wien. Electron spin resonance is a widely used analytical tool in medicine, biology and material sciences. Spin systems have many applications in quantum physics - for example in quantum computing and sensing. Traditionally such spin systems are driven with microwaves which offer only limited spatial resolution. We are currently in the process of developing and building experiments with the aim to coherently drive electron spin systems with high spatial resolution using the collective effect of the non radiative near field of modulated electron beams. Since electron microscopes offer a well established and highly capable platform for electron beam experiments we want to integrate our experimental setup in a scanning electron microscope. This also opens up future possibilities to perform in-situ electron spin analysis in scanning electron microscopes. In this talk I'm going to give a quick introduction to electron spin resonance and it's applications, our approach and our existing experimental setups as well as our current efforts and characterization measurements that have been performed to introduce this novel approach to interact with spin systems into an scanning electron
6 mins
In this blog post, we navigate through an unorthodox yet effective method of building models using the lmfit library, a wrapper around scipy's fitting routines. The article dives into a hands-on approach for fitting noisy data with a custom-defined Gaussian model, while suggesting that the conventional wisdom of lmfit isn't the only path to success. The tutorial initializes by installing lmfit and swiftly moves to crafting a function for the Gaussian model, which involves defining an objective function to decipher the best parameters for data fit. It guides the reader through generating synthetic noisy data, plotting it for visual aid, and conducting the fitting process. Through this procedure, a parameters are constructed and optimized to fit our model to the noisy data, followed by a presentation of the fitting report. Finally, the results are visualized, and the article concludes by discussing the advantages of this method, especially when dealing with complex or iterative models. The full code for the exercise is accessible in a GitHub GIST, allowing readers to directly engage with the material covered.
3 mins
This concise article provides a detailed guide on installing and running multiple outdated PHP versions on a FreeBSD system using suphp. It covers essential steps such as retrieving specific ports tree revisions, configuring distinct installation paths to prevent version conflicts, and setting up suphp for handling different PHP versions. Emphasizing strict security precautions, the article strongly advises against using this setup in public-facing systems and suggests its use solely for isolated, non-public applications.
5 mins
Mini summary and recipes to use the RaspberryPi GPIOs from FreeBSD
22 mins
The following blog article summarizes a quick implementation of a Difference of Gaussian (DoG) pyramid as approximation of a Laplacian of a Gaussian pyramid. It does not utilize optimizations so performance (around 10ms for a simple 6 octave pyramid) is rather low.
5 mins
Just a short recipe on how to get unique device names for CP2102N serial or RS485 to USB adapters even when they're renumbered by the operating system.
6 mins
A short summary on how to trigger Jenkins jobs by executing a post-receive commit hook in a git repository
22 mins
A mini summary (mostly for my own reference) on how to use the CP2102N USB to UART bridge in minimal configurations. This article explains the different powering schemes, lists some of the uncommon functionality and shows the design of a simple USB to TTL serial and USB to RS485 half duplex interface board. In addition it contains a short introduction on how to configure the USB chipsets later on.
71 mins
This short article contains a summary about image filters and how one can realize them. It will contain a short reminder of how convolution works, what separable filters are and some example of image filters and their (most inefficient but direct) implementation in Python. In the end it will also show how one might naively implement convolution in OpenCL to increase performance in comparison to the naive Python implementations shown. This article provides one with a small playground to quickly try out separable image filter kernels and execute them on the GPU using pyopencl from a Python testing environment.
1 min
Presented at the 13th ASEM (Austrian Society for Electron Microscopy) workshop: Coherent electro-magnetic control of quantum systems is usually done by electro-magnetic radiation - which limits addressing single selected quantum systems, especially in the microwave range. In our proof of concept experiment we want to couple for the first time the non-radiative electro-magnetic near-field of a spatially modulated electron beam to a quantum system in a coherent way. As the quantum system we use the unpaired electron spins of a free radical organic sample (Koelsch radical - α, γ-Bisdiphenylene-β-phenylallyl) that is excited via the near-field of the modulated electron beam. The readout of the spin excitation resembles a standard continuous wave electron spin resonance experiment and is done inductively via a microcoil using a lock-in amplifier. In the long term this experiment should demonstrate the feasability of coherent driving and probing of quantum systems far below the diffraction limit of electro-magnetic radiation by exploiting the high spatial resolution of an electron beam.
18 mins
This is a short summary or rather recipe collection on how to use ```pycryptodomex``` for some simple encryption and decryption procedures using RSA with the OAEP schemes from ```PKCS#1``` as well as signing and verification routines using the PSS scheme.
9 mins
The journey of getting a JupyterLab instance running behind a haproxy reverse proxy on Manjaro Linux and FreeBSD - with some drawbacks.
10 mins
Short introduction into gits large file storage extension, the way it works and how to run it without an external provider to host your files
20 mins
A simple summary of hat WSGI can do for one, how to use it with Python and how to run the uwsgi application server (and how to solve the deployment problem there) from the viewpoint of someone who already developed web applications in many different languages and frameworks.
6 mins
Short article about circumventing the CH340 contained in the FY6900 function generator by using its external 3.3V serial interface and an CP2102 or any microcontroller.
15 mins
A short story about how one can use autocorrelation and cross-correlation functions on discretized samples of radio frequency data and also noise to detect the frequency of a single signal, the delay of a reflected signal, the phase relation between two signals and how one can track multiple reflective targets in applications like LIDAR, sonar or radar using correlations - and how to get them robust against external influence.
14 mins
A mini introduction about the terms heterodyne, superheterodyne, homodyne and lock-in amplifier
4 mins
Short summary on how to generate time lapse videos from webcams or other sources using ffmpeg on various platforms
27 mins
This article summarizes some experiments using a simple 450nm laser diode on a 3D printer for some basic laser cutting and engraving in paper, plywood and other simple to cut materials.
12 mins
A short story about SMR disks in ZFS ZPools and why you should never ever use them there even when it looks ok on the first look and why you should replace them as fast as possible even when you don't see problems in the beginning.
40 mins
A short summary of the basic principles behind switched mode DC-DC converters (buck, boost, buck-boost, etc.), maximum power point tracking and impedance matching as well as a short recapitulation of the charging and discharging of reactive elements such as inductors and capacitors.
11 mins
Simple project that provides a digitally controllable linear current source up to 500 mA powered from a rectified 230V to 12V transformer. The whole current source is bias-able to high voltage (-2 kV in this case) by opto isolating it's serial communication path
3 mins
A really simple circuit to monitor the presence of a 230V AC line using an PC817 opto coupler and a 5V or 3.3V microcontroller
6 mins
Mini summary on how to configure DHCP failover or load balancing when using ISC-DHCP for legacy IP networks. This is not a full explanation of all details, just a quick sample on how to get up failover in a few minutes.
7 mins
This blog post tackles a common challenge in email service administration where users set up mail forwarding without implementing Sender Rewriting Scheme (SRS), which leads to problems with email authentication methods like DKIM and SPF. The suggested workaround is to reverse the forwarding process by configuring the receiving mail server to periodically fetch mail from external accounts using the `fetchmail` tool, which requires only the target server to be configured. Detailed steps explain how to configure `fetchmail` alongside a local MTA like Postfix to pull emails while bypassing SPF and DKIM checks for localhost deliveries. The author shares his personal experience using this setup during a mail service migration, emphasizing the advantages of the method while also discussing the security consideration that `fetchmail` needs access to plaintext credentials. The post includes comprehensive steps for installing and configuring `fetchmail` on a FreeBSD system, and configuring Postfix to ensure proper mail delivery without authentication checks for fetched mail.
14 mins
This article allows you to discover how we (a group from TU Vienna and University of Vienna) brought the fascinating world of physics to life at the Wiener Forschungsfest 2022! Using a visible range laser, a bicycle wheel, and modern photodiodes, we demonstrated how to measure the speed of light in an interactive and engaging setup designed mainly for children. This hands-on experiment highlighted the incredible speed of light while also conveying the fact that light is fast but not infinitly fast and allowed visitors to influence the accuracy of the measurement themselves. This article provides a short summary about the historical context, experimental setup, and the exciting outcomes of this educational outreach project.
7 mins
A simple temperature drift compensated voltage controlled current source up to 8A (10A peak) and 30V rail to rail based on OPA549 or other power operational amplifiers
1 min
Published in Ultramicroscopy: We present a method to separate coherent and incoherent contributions of cathodoluminescence (CL) by using a time-resolved coincidence detection scheme. For a proof-of-concept experiment, we generate CL by irradiating an optical multimode fiber with relativistic electrons in a transmission electron microscope. A temporal analysis of the CL reveals a large peak in coincidence counts for small time delays, also known as photon bunching. Additional measurements allow us to attribute the bunching peak to the temporal correlations of coherent CL (Cherenkov radiation) created by individual electrons. Thereby, we show that coincidence measurements can be employed to discriminate coherent from incoherent CL and to quantify their contribution to the detected CL signal. This method provides additional information for the correct interpretation of CL, which is essential for material characterization. Furthermore, it might facilitate the study of coherent electron-matter interaction.
6 mins
Recipes to execute remote commands and transfer files using the native Python SSHv2 implementation of paramiko
87 mins
A short summary on the inner workings of the Iterative Dichotomiser 3 (ID3) decision tree algorithm, a small Python playground implementation and application to one toy and two real world datasets out of the world of biology and medicine
13 mins
A short summary on how to control the Korad KA3005P power supply using Python as well as some simple samples on how to use my own control library
30 mins
Since I was not really satisfied with various tutorials out there this is my personal summary on how to develop Python extensions in ANSI C. A simple library that captures frames from Video4Linux devices on various Unices without external dependencies will serve as an example.
7 mins
A mini summary of how to use the bivariate correlation coefficient (Pearson correlation coefficient) together with shifts to get information about time based correlations between two different time series datasets
11 mins
A mini project that summarizes a simple method to control a bunch of 100W silicone heatbands used to bake a vacuum system. Control is done using a PWM controller realized inside an AVR using a pretty simple implementation, remote control of the duty cycle is offered via an ESP8266 based WiFi capable NodeMCU
21 mins
Playing around with scraping online status information from a social networks chat service and doing some statistical analysis
4 mins
A simple summary on how to dynamically load modules from files in Python similar to the dlopen/dldsym/dlclose semantics in C
7 mins
This is a simple short summary on how one can build a websocket server for use with ones JavaScript web application in Python using asyncio and websockets package
7 mins
A summary how to implement the logarithmic and exponential function using operational amplifiers - and how to use this to build simple mixers when combining with a simple summation amplifier
19 mins
Summary on how to use operational amplifiers to build simple function generators such as square wave function generators. This approach can be used to build simple laboratory function generators as well as low frequency oscillators used for various applications.
23 mins
A write up of the methods used to iteratively solve arbitrary linear equations systems. This includes the definition of Krylov subspace solvers, the Lanczos and Arnoldi algorithm to build orthogonal subspaces, a summary of the steepest descent and projective methods and then as an real world realization of projective methods the conjugate gradient (CG) and generalized minimal residual (GMRES) method.
7 mins
Mini article on how one can solve the linear least squares problem numerically using QR matrix decomposition
10 mins
Due to still common demand this is a short summary of the Bayesian rule for single events as well as a calculator that uses estimated prevalence, sensitivity and specificity, puts these values into Bayes rule and calculates the probabilities for correct and false results.
7 mins
Mini recipe and hopefully descriptive summary on how to perform QR decomposition using Givens rotations which forms the basis of many linear algebra numeric applications such as least squares, GMRES, etc.
8 mins
A summary on a procedure on how to use a galvanic process to plate copper (and other metallic surfaces) with gold using a galvanic bath
8 mins
A mini summary on how one can use Python and matplotlib to calculate and render two dimensional static electric fields generated by point charges in infinitly sized space based on Coulombs law and the superposition principle.
3 mins
A summary on how to derive the capstan equation describing the friction of a rope on a bollard, winch or a capstan
1 min
This short recipe explains how one can recover a Jenkins secret text credential directly using only the web interface
8 mins
This article is a mini summary of the steps that have been required to migrate from the v2 to the v3 stack of the things network, a community driven LoRA-WAN backend solution.
4 mins
Mini (really short) summary of one way as well as a recipe on how to write daemons in python
9 mins
Short summary on how to build a small 6 kV power supply using an 2.1 kV microwave oven transformer, two of the accompanying capacitors and a bunch of diodes that is capable of delivering a little bit more than half a kilowatt of power
15 mins
A short summary on the workings of photodiodes, how one can interface them to simple electronics and a simple amplifier circuit
25 mins
Pfeiffer makes great turbopumps but sometimes you want to log information or control them from an existing control system. Out of this desire I played around with the RS485 protocol used by Pfeiffer and wrote some simple unofficial tools - that's what this blog entry is about
9 mins
This is an opinion article on why I think one should use version control systems such as git or SVN for everything including writing tasks for thesis, books or articles as well as websites and other stuff in addition to software development.
8 mins
A mini introduction and summary on how to create own Python PyPi (pip) packages
17 mins
Mini summary on how to use the AD7705 with Atmel AVRs
18 mins
Some thoughts why in my opinion Jabber/XMPP is currently one of the best chat system that's currently available - and much more than just a simple chat system.
4 mins
This blog post describes a really simple method to get a hint if the interior of a vacuum chamber has been contaminated with some oil without the use of expensive chemical analysis.
3 mins
This blog post describes - as a less than 5 minute read - how one can implement the now everywhere visible feature that tells people how long it'll take on average to read a given blog post.
3 mins
A common error - but the solution is easy to forget. And it's even harder when using the Arduino IDE
5 mins
A short summary on how the box-mueller method works to generate normal distributed random numbers (for example for Monte-Carlo simulations, etc.)
9 mins
Notes on the the protocol that's required to remotely control Gamma vacuum ion pumps / titan sublimation pumps via a quad pump controller and some views on the inner workings of my own library implementing the protocol
5 mins
Mini summary on how to install the NFS client and how to perform the mount itself on the most problematic operating system that one can encounter in ones network
10 mins
Mini article that explains the difference between switch and router mode and some of their applications when using the tinc VPN client
7 mins
A short summary on how one could configure network bridges on a FreeBSD dom0 for Xen
2 mins
Mini note but essential when a Windows machine should join any sanely administered network.
6 mins
Sometimes it's convenient to add annotations to Grafana dashboards and panels using Grafanas flexible HTTP API instead of writing them into a database and fetching them from there using Annotation queries. Since I lacked a complete example and it took me some minutes to find out how this works this blog post summarizes the process.
13 mins
A description of a simple implementation of a system clock module for AVRs supporting delay, millis(), etc. This blog post tries to shed some light onto these simple and basic functions as well as some common pitfalls.
7 mins
A common problem in industry and laboratories - accessing a serial port via the network to allow multiple machines or VMs access the same physical serial port. This blog post explains how to build such an console server on a FreeBSD host offering physical serial ports an FreeBSD as well as Windows clients who are able to access the ports like local ones.
3 mins
In case one wants to push one's Jenkins RSS feeds to some internal devices or publish them with different credentials than are needed to access the Jenkins server this is a simple scripted solution on how to do this.
25 mins
Mini summary about the ADC on the ATMega328p and ATMega2560
12 mins
This blog post is a little summary or introduction on how to calculate Eigenvalues and Eigenvectors using power iterations that tries to use a little less formal jargon to provide a short overview.
12 mins
A mini summary on how to do OpenGL context creation without using external utility libraries on X11 systems.
9 mins
A summary on a procedure on how to use a galvanic process to plate 3D printed objects made out of PLA or PET-G with copper and possibly also other metals
3 mins
Mini note on robust serial communication with microcontrollers (basically: use checksums and synchronization patterns)
16 mins
A mini summary on how to perform impedance matching for antennas or other devices using the NanoVNA v2 together with the NanoVNASaver and SimSmith applications based on the impedance matching of an electron deflection system
5 mins
Mini blog post that shows how I integrated DHCP events into my automation solution by pushing commit, release and expiry events into my message broker infrastructure
6 mins
A short summary about the basic conditions in a pierce type electron gun
12 mins
A short summary about the operation and characteristics of thermionic emission cathodes, the current limiting factors and the most important failure modes
8 mins
Mini blog article that summarizes the build of a simple 2 mA beam current electron gun from common of the shelf components gathered from the hardware store as well as some 3D printed components.
27 mins
A rather unusual blog post for this site, a collection of various doomsday scenarios predicted or at least allowed by physics that might happen for sure (but don't be frightened, usually with a really low probability). Note that this is not an in depth article but just a short overview of some scenarios.
8 mins
A pretty short blog post about a small nuance that might lead to a huge hit in your search ranking when using static site generators that use nested pre and code tags and may trigger even more errors in case one doesn't use mobile first approach for one's stylesheets
9 mins
One approach to recover a Windows 10 system from damaged registry hive files in case of missing restore points and registry backups.
4 mins
Something easy and simple. How to cut glass tubes and other glass parts using electrically heated hot wire.
21 mins
Summarizing a method to use RS485 with MAX485 driver ICs on Atmel AVRs (specifically on the ATMega328P) utilizing the on chip USART.
26 mins
This blog post summarizes how one can access common webcams from C on operating systems supporting the video4linux (V4L) API. This information can be used to built robots, surveillance systems or simply communication applications.
3 mins
Since I always have to lookup how this works in some examples or hidden deep in the manual I decided to write a short summary about linear extrude, rectangular extrude and rotate extrude
4 mins
A short summary on how to generate a sitemap for search engines automatically when using the Jekyll static site generator
5 mins
Just a short description of what I've tried (and didn't expect to work) about the usage of 3D printed parts made out of PLA in the typical desktop FDM 3D printing process, i.e. a method to build really low cost parts at home.
7 mins
This blog post summarizes one of the methods that can be used with CSS3 adjacent sibling selectors or general sibling selectors in combination with attribute selectors to implement a simple collapsible menu without any JavaScript
7 mins
The most simple implementation of a cookie banner as long as the banner is only required with active JavaScript
29 mins
Mini introduction into the nature of the Internet and it's basic working principles.
12 mins
Summary of the most basic OpAmp circuits that are usually built as well as their basic properties
6 mins
Mini summary about a problem that is mentioned as a regression but is not easily found on the internet when using Intel or amdgpu graphic drivers on FreeBSD
7 mins
This article describes a simple and working solution to automatically upgrade jenkins running on a local servlet container such as Apache Tomcat by using a simple POSIX compliant shellscript (working on Linux, Unices, etc.) as well as a simple Jenkins job itself.
13 mins
A short view on the role of message brokers in two different context, which problems they solve and what one should be aware of.
13 mins
A short summary about the basic properties of Maxwell equations, the resulting electromagnetic wave equations and commonly used gauges (Lorenz, Coulomb).
18 mins
This blog post takes a look at the pastry distributed hashtable. This is a hashtable that allows resilient and scaling distributed key value stores and that can be used to build a variety of applications on top.
15 mins
Short summary of various commonly used Gaussian integrals (1 dimensional) most of the time not shown in school textbooks.
5 mins
This blog post describes the protocol used by many currently sold cheap spectrum analyzer boards as far as I've been able to gather information.
18 mins
A summary and short comparison of various generic (non application specific) data serialization techniques and formats
9 mins
Minimal description of the two possible activation procedures of LoRA WAN device activation and the meaning of device activation for the network. This article has been written since the difference between OTAA and ABP as well as the reasoning seems to be a problem for some developers.
7 mins
Since a student of mine struggled realizing simple structured serialization and deserialization to and from XML in C# I decided to put together a small tutorial.
13 mins
A short summary of LoRA WAN stuff that's often not seen by device and application manufacturers and developers. This blog post tries to give a short overview of network behavior and internals.
8 mins
This blog post summarizes the steps for disaster recovery on MariaDB or MySQL in case the database system doesn't start up any more or contains damaged table definitions which might even prevent one from dropping tablespaces or databases.
12 mins
Short blog post about the casting of a simple epoxy countertop with embedded sink.
20 mins
Since it seems to be a huge mystery to many people this blog post tries to summarize some of the parts relevant to the consumer side of power grid systems.
15 mins
In this blog article I'm describing a small automated plant watering solution that's used indoor to grow basil, capsicum and chili pepper indoor.
10 mins
A short summary about the different meaning and interpretation of impedance, ABCD, scattering and transfer parameters in simple (linear) two port networks.
2 mins
Mini post about an unusual error when using RabbitMQ - or mnesia in general. This is something that shouldn't happen and was also not expected to happen.
16 mins
This article describes an trick that I'm using in some of my applications to allow one to exchange modules or plugins inside an application at application runtime as well as keeping old versions active as long as they're required.
6 mins
Mini article about the measurement of capacitance with AVRs with a minimum of external components (in it's most extreme form none external components exploiting the gate capacitance of the micro-controllers input)
3 mins
Mini article about the usage of the Aspell spell checker on FreeBSD on the command line and inside the automated build pipeline for static webpages
12 mins
Since I'm a huge fan of the Erlang programming language and the OTP toolkit but normally aren't working with projects where Erlang is suited or in case some existing code is using already other languages and so I'm not capable of using Erlang I tried to summarize some of the things that I think one can learn from programming in Erlang/OTP even when using other programming languages. Of course this stuff is not enforced by the runtime environments and it's harder to achieve on other platforms but the approaches work nevertheless.
19 mins
A dive into programming using the WebAuthn API in JavaScript and the requirements on the server side to perform 2FA using HSM's like the YubiKey, platform embedded TPMs or similar solutions supported by webauthn.
4 mins
Mini Blog-Post that describes modeling 4 digit NACA airfoil profiles in OpenJSCAD
27 mins
This is an opinion article on the future of web development. Currently there is a trend about building more and more logic into the client - even for simple tasks. That trend has been there previously and it has been a bad idea back then. This article tried to present a few arguments why I don't think that this is or should be the future of the web.
11 mins
This blog post summarizes a method that can be used to develop software in the same way one would when using object oriented techniques with C++, Java or similar languages. It's based on the method used by the previously mentioned languages to implemented that stuff on bare metal.
19 mins
Since a friend required this - a short write up on how to use your Raspberry-Pi (with FreeBSD) with an UMTS/LTE modem to provide internet connectivity to your local network.
7 mins
A really short introduction of the basic anatomy of a Unix-like or Linux daemon process.
8 mins
This blog post is part of a short series about WebRTC. It describes the different media sources available as well as how one can do local loopback of a datastream. Note that data transfer is not described in this blog post, only access to webcam and screen sharing streams and direct pixel manipulation.
11 mins
Short tutorial on how to use libjpeg for simple image I/O (to read and write JPEG files to/from disk or memory and represent them as simple in-memory bitmap for simple CV experiments)
7 mins
Mini tutorial on how to use the NodeMCU Amica and a cheap PIR sensor module to build a pretty simple motion sensor that supports reporting via MQTT messages.
4 mins
Really short primer on ACSL predicates for formal verification of ANSI C code with Frama-C.
9 mins
How to use Frama-C static analysis and proof assitant with ACSL annotations for function pointers in ANSI C.
5 mins
A short summary on how this page is built using the Jekyll static website generator as well as a really simple Jenkins job that's triggered by a GitHub webhook.
3 mins
Short introduction on how to use lagg(4) to perform automatic seamless switching from ethernet to WiFi (when they represent the same network on the same IP subnet) and back on FreeBSD.
9 mins
A short primer on how to get started using Kerberos for authentication inside your network. This includes setup of an kerberos key distribution center (KDC) on an secure host as well as of the server machines against which one will authenticate as well as the required configuration on the clients.
9 mins
This is a short description on how to get started using Selenium with chromedriver on FreeBSD with a Java application. This can be used to develop automatic test applications for web applications or simple bots that scrape content from webpages or automate actions on the web using a full browser capable of running JavaScript, running browser plugins, etc. (Update - In addition an implementation in Python has been added to show a short draft on how one can get started with Selenium in Python as well.)
4 mins
Real first mini steps when using Amazon webservices. Adding 2FA to your root user, creating an administrative user, enabling 2FA there and creating access keys for CLI tools.
11 mins
A short review about the T4EU1C Sonoff Switch as well as an example how to flash Sonoff basic switches with custom firmware
18 mins
A short tutorial on how to setup node red and configure the first flows to be used with sonoff basic switches and other data sources as well as XMPP/MQTT interfaces and some other ideas how one can use node red in various areas
21 mins
Since I often hear confusion about the level or type of privacy when I talk with people about onion routing services like TOR, tunneling services like VPN, DNS encryption via DOH, using proxyservers, using alternate DNS services, using encryption and signature, etc. I've decided to write a short blog post about that different stuff and what it provides - and what not (in my personal opinion).
6 mins
Example on how one can use the ESP8266 NONOS SDK to build applications using a custom Makefile (i.e. not using the nested Makefiles of espressifs SDK) to build one of the most simple microcontroller projects.
23 mins
A short description on what the ESP8266-NONOS-SDK really does (step by step) to build the firmware images that get uploaded to the microcontroller via esptool.
12 mins
This is a short article that shows how one can use Frama-C and the WP plugin to proof correctness or some properties of ANSI C code written for AVR microcontrollers.
4 mins
Because it's sometimes said TOR hidden services are only used by criminals this post lists a few more credible services and some reasons why one might use them.
1 min
A short summary on how to use the GitHub API with access tokens to mirror all your GitHub repositories and keep them up to date.
8 mins
A really short *unfinished* introduction into the various memory models of the x86 architecture
11 mins
How to get an IPv6 network connection working if your ISP doesn't support IPv6 even today. Also includes a short description on how to do this on an connection using dynamic endpoint adresses.
5 mins
Short summary on how to setup the development environment for ESP8266 (Non-OS and RTOS) as well as ESP32 (RTOS) including a short shellscript that's capable of setting up the development environment.
12 mins
A really short description on how to build OpenHantek on FreeBSD and how to configure the system - and how to create a FreeBSD port.
3 mins
A short summary on how to configure mpd5 to authenticate against an external PPP provider for PPPoA usage (via PPTP). This is required for authentication with most Austrian (A)DSL providers when using their modems in single user mode.
2 mins
A short rant on the incapability of Android Studio to be portable over various POSIX operating systems and a hackish solution on how to keep the feeling of a local application while running it remotely on a Linux machine.
12 mins
Description of an easy way of using piezo disks as touch sensors to perform bed leveling with 3D printers or other CNC machines. This blog entry describes the most basic possible way without much external circuits (only an ATtiny13A and two resistors are used)
9 mins
How to use the GIT client to interoperate with a remote SVN server or how to migrate an SVN repository to GIT including it's full history.
13 mins
This article contains a short tutorial about multifactor authentication, various factors that may be used and a tutorial on how to use the Yubikey hardware token for web- and local as well as SSH (pam) authentication on FreeBSD.
11 mins
A short description how to use TOR as a normal user and what to be aware of when using TOR
19 mins
A short primer on how to use Frama-C to proof properties about C-code.
5 mins
Just a short description of what a JWT is, what it can do for one and how they are realized - and why one would want to use them to identify users in one's web application by using JWTs instead of session IDs.
13 mins
A short summary on how to embed authentication and generally signing with the Austrian citizien card
8 mins
This is the description of a small carrier board for two DRV8825 breakout boards (or compatible) that are controlled by an AVR (ATMega328p) which runs a small (linear) motion processor that gets it's commands via I2C.
22 mins
A short cheat sheet on how to use the git version control system (most basic operations)
9 mins
This article explains how to use an AVR as I2C slave device (basically how to set registers for the TWI controller) and how to interface that to an RaspberryPi running FreeBSD
4 mins
The blogsphere is a web of interconnected websites. As usual websites are linked like all pages in the WWW but on the other hand they provide an easy way of notifying each other of being referenced by a third party. Pingback is - besides trackbacks - the (XML-RPC based) technology used for that notification.
4 mins
This post describes a simple derivation of the complex inpedance formulas well known from electronics.
6 mins
Short explanation on how to use the 28BYJ-48 geared stepper motor with the ULM2003 7-way Darlington transistor array.
4 mins
Something most drivers don't want to hear - a basic pallpark calculation of the optimal maximum speed that offers the maximum car througput on streets.
5 mins
How to use the GPIO pins on the AVR microcontrollers when using avr-gcc
17 mins
This blog post should provide a short overview of TAN alternatives and methods as well as their pitfalls and security
7 mins
This is an article (in German because of it's specific audience) about SPF and DKIM features that prevent mail spoofing and it's effects on mail forwarding
20 mins
This article describes some of the ideas and thoughts during building my first FDM printer and which lessions have been learned from that project.
4 mins
This article is a (really) short tutorial on how one can handle messages from LoRA nodes that are routed via thethingsnetwork inside an self-contained JavaEE application.
2 mins
An easy method to add tags to your static Jekyll generated pages and blogs
5 mins
A short summary of the algorithms required for linear accelerated and decelerated stepper motor control on microcontrolers.
7 mins
A short description how to setup a TOR hidden service or an stealth hidden service and why one would want to do that even if one doesn't offer illegal content
4 mins
How to get started with the STM32F401RE nucelo development board on FreeBSD with gcc and openocd
10 mins
Example how to flash Sonoff basic switches with custom firmware (using cli tools or the Arduino IDE)
18 mins
The following article leads the reader through building an LoRA-WAN gateway from an iMST ic880a concentrator board and an RaspberryPi. Optionally is shows the reader how to add GPS, enable remote configuration via the tinc VPN daemon and via a TOR stealth hidden service.
2 mins
How to get started with Android development on FreeBSD (using Android Studio)
10 mins
A tutorial on how to automatically manage TLS certificates for various services with DNS challenges and an zone served out of a bind zonefile that is protected via DNSSEC.
7 mins
A really simple colinear coaxial 1090 MHz antenna for ADS-B, one of the most simple antenna constructions that can be used to receive automatic dependent surveillance squitters using low cost software defined receivers such as DVB-T sticks.
3 mins
A short description of the davlik.vm.* tuneables for memory management tuning on Android devices
4 mins
How to automate DNSSEC signatures on a manually managed zone
1 min
Published in Nuclear Instruments and Methods in Physics Research Section A: High precision collider experiments at high energy accelerators and B-factories need accurate position resolution while preserving a low material budget for precise particle tracking. Thin double-sided silicon detectors (DSSDs) fulfill both requirements, if a careful sensor design is applied to maintain a high charge collection efficiency. In this continuation of a previous study we investigate the p-stop and the p-spray blocking methods for strip isolation on the n-side (ohmic side) of DSSDs with n-type bulk. We compare three different p-stop patterns: the common p-stop pattern, the atoll p-stop pattern and a combination of these patterns, and for every pattern four different geometric layouts are considered. Moreover we investigate the effect of the strip isolation on sensors with one intermediate strip. Sensors featuring these p-stop patterns and the p-spray blocking method were tested in a 120 GeV/c hadron beam at the SPS at CERN, beta-irradiated to 100 kGy at SCK-CEN (Mol, Belgium), and immediately afterwards tested again at CERN in the same setup as before. The results of these tests are used to optimize the design of DSSDs for the Belle II experiment at KEK (Tsukuba, Japan).
1 min
Published in Nuclear Instruments and Methods in Physics Research Section A: Successful track reconstruction in a silicon tracking device depends on the quality of the alignment, on the knowledge of the sensor resolution, and on the knowledge of the amount of material traversed by the particles. We describe algorithms for the concurrent estimation of alignment parameters, sensor resolutions and material thickness in the context of a beam test setup. They are based on a global optimization approach and are designed to work both with and without prior information from a reference telescope. We present results from simulated and real beam test data.
4 mins
A short description (in german) how to use the facebook chat with it's XMPP interface.
1 min
A short description how to enable EAP-MD5 authentication for wired 802.1x authentication on Windows 7 since it has been (correctly) disabled for security reasons
Dipl.-Ing. Thomas Spielauer, Wien (webcomplains389t48957@tspi.at)
This webpage is also available via TOR at http://rh6v563nt2dnxd5h2vhhqkudmyvjaevgiv77c62xflas52d5omtkxuid.onion/