Dotfile Managment using dotdrop

There has to be an easier way

Every developer has a customized system that they are familiar with to make coding easier. For a Linux system this involves modifying the dotfiles for all the software being used on their system. One of the dis-advantages of all these dotfiles is that they take a long time to get setup on a system. So switching between different PC’s can be a bit of a time sync to get everything setup to your liking. [Read More]
dotfiles  python  c 

Meson Python Modules

The meson build system is very versatile and can be integrated with a wide variety of technology. Meson can be used to build C modules that link in as a python module. Sometimes this is required to allow Python to integrate with a system library written in C. Let start by creating a Python module called mymath which implements a function called add written in C. This library contains all the definitions for the methods to interface with the extension module. [Read More]
meson  python  c 

Meson Polyglot - Rust and C

The definition of polyglot is “knowing or using several languages.” With that definition Meson could be considered a polyglot. Meson is able to work with multiple languages. Currently c, cpp, d, objc, objcpp, fortran, java, cs, vala and rust are supported by Meson. Rust is a language that emphasize on memory safety and speed at the same time. Let’s start with Rust’s version of Hello World! and see about compiling it using meson. [Read More]
meson  rust  c 


Using meson for stm32 development

STM32 Meson Ive been a big fan of stm32-cmake which simplifies the setup of a stm32 embedded project. All that is required is the STMCubeMX directory and the chip being used. All the rest is automatically generated by stm32-cmake. I’ve recently learned about meson and have decided to create the stm32-meson project as a way to learn how to get something useful done is meson. First I’ll show the expected usage of the project. [Read More]
linux  gcc  meson 

RTL-SDR basic setup

What is a Software Defined Radio (SDR) I recently got my hands on a RTL-SDR which is a software defined radio (SDR). A software-defined radio (SDR) is a radio communication system where components that have been traditionally implemented in hardware (e.g. mixers, filters, amplifiers, modulators/demodulators, detectors, etc.) are instead implemented by a means of software on a personal computer or embedded system. In recent years SDRs have become very affordable using commedy hardware. [Read More]

Automatic CMake Header Dependency

Download dependencies

Often times 3rd party dependencies can be the hardest part of setting up a C++ project. CMake has eased this pain, but it is still often quite difficult to deal with with the numerous different types of build system. CMake includes the FetchContent library call which allows a dependency to either be cloned from a git repository or tar.gz archive to be included into the project. This is a very convenient feature which allows your projects dependencies to be neatly downloaded without having to include the source in your project. [Read More]
cmake  c++ 

PC / Desk Setup

I spend a lot of time at my PC so I’ve put a lot of though into the parts that make the experience a pleasent one. I have a modest PC I build back in 2015 when I was still in high school. It’s served me quite well over the years. Here are the major components that make up my system. I’m also planning on updating this post whenever I add new equipment to my desk setup. [Read More]
pc  desk 

Raspberry Pi IR Receiver

I recently got my hands on a IR Receiver and Transmitter module from a ELEGOO Upgraded 37 in 1 Sensor Modules Kit V2.0. I wanted to learn how the technology works and figure how to the IR transmitter with my Raspberry Pi 4. EEVblog has an excellent video describing how the IR transmitter and receiver work in excellent detail. EEVblog #506 - IR Remote Control Arduino Protocol Tutorial Signal Basics The IR transmitter works by using OOK (on off keying) to modulate a carrier frequency. [Read More]

Vim Plug Autoload

This post is about how to write some vim-script to autoload the plugin manager from the .vimrc. This makes the process of getting up and running on a new system easier because the plugin manager is automatically downloaded as well as the plugins are also automatically downloaded. Using the commands from I was able to create a script to auto download VimPlug for vim and NeoVim on windows and on Linux. [Read More]

CMake Dependencies using Fetch Content

Simple built-in method to download and build dependencies

I recently have been wanted to play around a bit with learning the Vulkan graphics API. Before I was able to get started with that I needed a couple if libraries as dependencies to make things easier to work with cross platform. GLFW is an Open Source, multi-platform library for OpenGL, OpenGL ES and Vulkan development on the desktop. It provides a simple API for creating windows, contexts and surfaces, receiving input and events. [Read More]