Posts

  • runc idea - part 2

    This continues the container idea using runc started in part 1 where the idea was to turn container images into applications or more likely services. Last time, the OCI image was turned into an OCI bundle that was runnable with runc. The problem was the networking wasn’t configured to allow the host to talk to the service running in the container.

  • runc idea - part 1

    Basic premise is to explore an idea of turning container images into applications or more likely services. This will hopefully be a part of a series of posts about this idea.

  • Revisting baconfactor

    Last weekend, I was catching up with friends and the game of “Six Degrees of Kevin Bacon” was put forward but with a focus on television shows. The two shows chosen were Sliders and Last of Us. Afterwards, it got me to thinking more about what shows I remember seeing certain people in and that I was keen to dust off the program I hade made to to do it called “baconfactor”.

  • Making rootfs

    This weekend’s little project was creating a root file system image. The idea is to create an image that is bigger than what would be supported by the initrd.

  • Trying Firecracker

    Over the past two days I’ve been looking at running Firecracker to run a Ubuntu based VM from Alpine. The biggest challenge was getting the networking functional.

  • Exploring gitremote-helpers protocol

    When working with Git remotes, the three most common protocols to use are HTTPS, git and SSH. Git is not limited to just those as there is the ability to extend this to some other protocol. To do this you write a program called git-remote-<transport>, where git clone <transport>://... will cause that program to be used to fetch references and objects from the that location.

  • WSL, Alpine and Podman

    After an experiment with running Podman within an Alpine distrubution in WSL2 was successfully, I wondered could I make a minimal distrubution that had Podman pre-installed ready to go.

  • Examples of runc

    A brief demonstration of using runc directly to create a container. runc is a low-level tool meant to be used by higher-level tooling like Docker and Podman. This example is from their README but uses apk from Alpine to create a root file-system instead of extracting one from an existing container with docker.

  • Reading Microsoft OneNote files

    This weekend, I discovered the replacement of OneNote for Windows 10 contains a feature to back-up the notebooks to a .one file. This opens the door to possibility of reading my notes and writing a way to convert them to Markdown or reStructuredText in the not so far future.

  • initrd for Alpine - Part 2

    This is a follow-up my previous post initrd for Alpine where the project is extended to allow the user accounts and packages to be customised.

  • initrd for Alpine

    This is a follow-up to the weekend’s project of playing with the crosvm project (a virtual machine monitor). This time the focus is on building a initial RAM disk for Alpine.

  • CrosVM on Windows

    This weekend’s little project was looked at playing with the crosvm project on Microsoft Windows. The crosvm project is a type-2 virtual machine monitor, also known as a hosted hypervisor meaning that it runs on top of a conventional operating system.

  • Barebone Alpine Containers

    Today I can across Amazon’s documentation on their barebones containers, which uses dnf (Red Hat’s successor to yum) for their Amazon Linux distribution and so I was inspired to try it with Alpine Linux and its package manager apk.

  • BOM - Solar and GEOH5

    Several years ago (back in 2021), I came across the daily solar exposure data shared by Australia’s Bureau of Meteorology (BOM). This weekend I revisited using the data to convert it into the GEOH5 format, an open format for geo-science data.

  • Family Generation - Pairings

    Continuing on from generating names the stage is pairing such that the children between the first families are paired of together to create the next generation of families.

  • Family Generation - Names

    Back in 2020, I started writing down ideas for a game idea. The idea of this post while quite the tangent from the original idea was something I wanted to work on. That idea was to generate families to live in a town as well as businesses for those families to visit. A lot of that came from watching a video on Dwarf Fortress.

  • End of Year 2024

    Closing out the year 2024. An overview on some things I did, played and watched this year.

  • Life Update 2024

    In short life has been really busy the past several months as a month ago I got married. So in the lead-up for that there was working on the details of that as well as planning the honey moon.

  • An OCI Image from Python

    After looking into the recent addition of experimental support for Windows in BuildKit for Containerd, I decided to take a deep dive into seeing if I could create my own OCI (Open Container Initiative) image from Python.

  • BitTorrent in Containers

    The premise of this project came about the idea of imitate a network such as a mini-internet, with DNS, web hosts and some kind of simulated traffic between them. That project would have been too ambiguous so reducing it down to use stuff that already exists and can already be automated was needed. The existing tools that fit the brief was BitTorrent.

  • DLL dependency graphs

    Producing graphs of the dependencies between Window DLLs (dynamic link libraries). The goal is to use this information to make it easy to see if a DLL fails to load if it is likely due to its dependency by showing what it depends on.

  • Window Containers

    This is a dive into using Windows Containers without Docker. The starting point of this was evaluating the Host Compute System (HCS) of Microsoft Windows. HCS provides a sets of APIs for controlling VMs and containers and is essentially built as a low-level API for other container tools such as Docker to be built upon.

  • Streaming containers

    A friend of mine had an idea for a “Twitch Plays” style of stream. This is the journey of setting-up a machine to run it. The plan was to start with an existing machine running Microsoft Windows and use OBS Studio. Not all plans survive first contact, as my Raspberry Pi idea didn’t work either.

  • Start of year update

    It is already February and I haven’t had any technical weekend project to post about. I wanted decided to write general post to update what this year has been like so far.

  • End of Year 2023

    Closing out the year 2023. An overview on some things I did, played and watched this year.

  • OSM to Vector Tiles

    Rendering OpenStreetMap (OSM) data to vector tiles in MBTiles, where the tiles are in the Mapbox Vector Tile Format and tilemaker will be used to do the heavy lifting.

  • Jekyll Update

    This weekend when I went to deploy my latest blog post, it didn’t work. I pushed, refreshed and there was no new post on the site. Assuming that the GitHub Action was sitting in a queue, I went to bed with the idea of checking on it in the morning. When I checked it still wasn’t there.

  • Harfbuzz and Python

    I explored using Harfbuzz which is a text shaping library that is able to read a font file (TrueType font, .ttf) and convert a sequence of Unicode (text) into properly formatted and positioned glyph output. My goal was to create 3D geometry from it, be it flat.

  • Weekend - AEC and RTMP

    This was quite the busy weekend for me and included two programming projects. The first was parsing AEC Media Feed data for Australia’s 2023 Referendum and the second was looking at the RTMP and FLV protocol and format respectively.

  • Hyper-V Tools

    Today, I came across some tools for Hyper-V when looking into Host Compute System APIs for Microsoft Windows for controlling virtual machines. This covers more system administration tools rather than the programming interface.

  • OSM to TIFF Tiles

    This builds upon my previous post OSM to Raster Tiles with the goal of creating a Tagged Image File Format (TIFF) from the Portable Network Graphics (PNG) tiles generated from the Open Street Map data.

  • OSM to Raster Tiles

    This post has been a long time coming. It started out being an attempt to document a project that was mostly done 2020-09-12. Various notes were collected from that time but I wanted to re-create it to try to fill in some missing steps and inaccuracies.

  • OSM to TIFF - History

    Rendering OSM data to Portable Network Graphics (PNG) then constructing a Tagged Image File Format (TIFF) from the PNGs.

  • Digital Logic in Python

    The goal that I started with was to be able to express a 8-bit full adder in Python. The outcome of this as to be able to then output this representation to different formats.

  • End of Year 2022

    Closing out the year 2022. An overview on some things I did, played and watched this year.

  • Descent Formats

    The following file formats were used by Parallax Software in the computer game, Descent. Descent is a 3D six degrees of freedom shooter where the player is in a ship and has to fly through mine tunnels of a labyrinthine nature and destroy virus infected robots.

  • Rendering vector tiles from MBTiles

    MBTiles is an open specification for storing map tiles in a single file. The file itself is a SQLite database, which even has its own magic number so it can be identified from other files. The database forms a tileset (collection of tile). Tiles can either be raster based (either PNG or JPEG) or vector tiles. Tiles themselves are indexed based on zoom level, tile column and row.

  • peparser - New construct/Python

    This weekend, I looked into upgrade the Python script I had made previously for reading data from a Windows executable. The executable format for a Windows executable is PE/COFF (Portable Executable & Common Object File Format). The specification can be found at Microsoft Learn as of 2022, prior to that i was available as a download as either docx or pdf.

  • Drawing Routes via Open Source Routing Machine

    Last time, I documented my process set-up the use of the Open Source Routing Machine (OSRM). That left me with the routing demon that returned returning routes between two points.

  • Using OSRM - Open Source Routing Machine

    Open Source Routing Machine (OSRM) is the a C++ routing engine for shortest paths in road networks. It can be used for suggesting directions between two locations, which is what I am hoping to use it for. Its data source is OpenStreetMap and it can process the osm.pbf (protocol buffer files).

  • Work - Development Environment

    For the past 11 years, I’ve been a full-time software engineer. Today, I am sharing my typical set-up on my work machine.

  • Australian election candidate information

    The night of the 2022 Australian federal election, a friend of mine shared a link to the media feed provided by the Australian Electoral Commission (AEC). The purpose the feed is to provide a live feed of election results on the night of the election. The intended audience of the feed itself is for media organisations and third parties. They provide historical data to use to generate predictions and offer comparisons to past results for a particular electoral division.

  • Reading data from MERRA-2

    MERRA-2 is Modern Era Retrospective-analysis for Research and Applications which is a dataset produced by NASA. The 2 signifies the second version or generation after the first program was decommissioned due to ageing equipment.

  • Visualising PV data from AEMO

    AEMO is the Australian Energy Market Operator and are responsible for the National Electricity Market (NEM). They make their data available to increase public understanding and promote transparency.

  • Chess in 3D with Python

    Today I felt compelled to look at putting Chess into a 3D program using its Python library to create the geometry and leave it to the program to handle the rendering. If it helps, kind of think of it as Blender.

  • Welcome

    This website and blog is produced by Jekyll. This is fairly new site (created late 2022).

Donno’s Home Page

Hello, I am Sean otherwise known as Donno. I am a Software engineer working in Adelaide, South Australia.

See About for more about myself and my interests.