<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Home on Michael Davies</title><link>https://michaeldavies.org/</link><description>Recent content in Home on Michael Davies</description><generator>Hugo</generator><language>en-au</language><lastBuildDate>Tue, 25 Aug 2026 14:03:18 +0930</lastBuildDate><atom:link href="https://michaeldavies.org/index.xml" rel="self" type="application/rss+xml"/><item><title>About</title><link>https://michaeldavies.org/about/</link><pubDate>Tue, 25 Aug 2026 14:03:18 +0930</pubDate><guid>https://michaeldavies.org/about/</guid><description>&lt;p&gt;You can learn more about Michael Davies by reading his &lt;a href="https://mrda.io"&gt;resume&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Traffic Shapping</title><link>https://michaeldavies.org/posts/traffic-shapping/</link><pubDate>Mon, 17 Oct 2022 10:45:59 +0930</pubDate><guid>https://michaeldavies.org/posts/traffic-shapping/</guid><description>&lt;h1 id="traffic-shaping"&gt;Traffic Shaping&lt;/h1&gt;
&lt;p&gt;I got asked a question recently, &amp;ldquo;How far apart could control plane
nodes of a kubernetes cluster be and the cluster remain stable?&amp;rdquo;&lt;/p&gt;
&lt;p&gt;The further apart they are geographically, the greater the network latency.
How does network latency impact a cluster&amp;rsquo;s stability? Are there certain
deployment architectures that work better when network latency is a factor?&lt;/p&gt;
&lt;p&gt;How does network latency impact &lt;code&gt;etcd&lt;/code&gt;&amp;rsquo;s ability to reach consensus
through obtaining a quorum? How does it impact spinning up workloads?
Upgrades? Key rotation? Workload transitions? High-Availability?
Disaster recovery?&lt;/p&gt;</description></item><item><title>Building Multiarch Aware Containers</title><link>https://michaeldavies.org/posts/building-multiarch-aware-containers/</link><pubDate>Thu, 06 May 2021 07:51:03 +0930</pubDate><guid>https://michaeldavies.org/posts/building-multiarch-aware-containers/</guid><description>&lt;h1 id="building-multiarchitecture-aware-containers"&gt;Building multiarchitecture aware containers&lt;/h1&gt;
&lt;p&gt;Multi-architecture is not something that most people think about - everyone
assumes that the only architecture that counts is x86_64, but that&amp;rsquo;s not the
case!&lt;/p&gt;
&lt;p&gt;In my job at &lt;a href="https://www.redhat.com"&gt;Red Hat&lt;/a&gt; I care about making sure that
software running on ppc64le, arm64 and s390x behaves just the same as it does
on x86_64, which brings me to containers. Did you know that container images
are architecture specific?&lt;/p&gt;</description></item><item><title>Fixing Broken Debian Packages</title><link>https://michaeldavies.org/posts/fixing-broken-debian-packages/</link><pubDate>Thu, 06 Oct 2016 08:10:22 +0930</pubDate><guid>https://michaeldavies.org/posts/fixing-broken-debian-packages/</guid><description>&lt;h1 id="fixing-broken-debian-packages"&gt;Fixing broken Debian packages&lt;/h1&gt;
&lt;p&gt;In my job we make use of &lt;a href="http://www.vidyo.com/"&gt;Vidyo&lt;/a&gt; for videoconferencing,
but today I ran into an issue after re-imaging my Ubuntu 16.04 desktop.&lt;/p&gt;
&lt;p&gt;The latest version of &lt;code&gt;vidyodesktop&lt;/code&gt; requires &lt;code&gt;libqt4-gui&lt;/code&gt;, which doesn&amp;rsquo;t
exist in Ubuntu anymore. This always seems to be a problem with non-free
software targeting multiple versions of multiple operating systems.&lt;/p&gt;
&lt;p&gt;You can work around the issue, doing something like:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;sudo dpkg -i --ignore-depends=libqt4-gui VidyoDesktopInstaller-*.deb
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;but then you get the dreaded unmet dependencies roadblock which prevents you
from future package manager updates and operations, which presents itself
like this:&lt;/p&gt;</description></item><item><title>Mocking Python Objects and Functions</title><link>https://michaeldavies.org/posts/mocking-python-objects-and-functions/</link><pubDate>Sun, 20 Sep 2015 08:28:17 +0930</pubDate><guid>https://michaeldavies.org/posts/mocking-python-objects-and-functions/</guid><description>&lt;h1 id="mocking-python-objects-and-object-functions-using-both-class-level-and-function-level-mocks"&gt;Mocking python objects and object functions using both class-level and function-level mocks&lt;/h1&gt;
&lt;p&gt;I had some &lt;em&gt;fun&lt;/em&gt; solving an issue with partitions larger than 2Tb, and came
across a little gotcha when it comes to mocking in python when a) you want to
mock both an object and a function in that object, and b) when you want to
&lt;code&gt;mock.patch.object&lt;/code&gt; at &lt;em&gt;both&lt;/em&gt; the test class and test method level.&lt;/p&gt;
&lt;p&gt;Say you have a function you want to test that looks like this:&lt;/p&gt;</description></item><item><title>Ironic on a Nuc Part2</title><link>https://michaeldavies.org/posts/ironic-on-a-nuc-part2/</link><pubDate>Thu, 10 Sep 2015 19:15:21 +0930</pubDate><guid>https://michaeldavies.org/posts/ironic-on-a-nuc-part2/</guid><description>&lt;h1 id="ironic-on-a-nuc---part-2---running-services-building-and-deploying-images-and-testing"&gt;Ironic on a NUC - part 2 - Running services, building and deploying images, and testing&lt;/h1&gt;
&lt;p&gt;This is a continuation of the previous post on Ironic on a NUC - setting things up. If you&amp;rsquo;re following along at home, &lt;a href="https://michaeldavies.org/posts/ironic-on-a-nuc-part1"&gt;read that first&lt;/a&gt;).&lt;/p&gt;
&lt;h2 id="creating-disk-images-for-deployment"&gt;Creating disk images for deployment&lt;/h2&gt;
&lt;p&gt;Now let&amp;rsquo;s build some images for use with Ironic. First off, we&amp;rsquo;ll need a deploy ramdisk image for the initial load, and we&amp;rsquo;ll also need the image that we want to deploy to the hardware. We can build these using diskimage builder, part of the triple-o effort.&lt;/p&gt;</description></item><item><title>Ironic on a Nuc Part1</title><link>https://michaeldavies.org/posts/ironic-on-a-nuc-part1/</link><pubDate>Thu, 10 Sep 2015 19:07:40 +0930</pubDate><guid>https://michaeldavies.org/posts/ironic-on-a-nuc-part1/</guid><description>&lt;h1 id="ironic-on-a-nuc---part-1---setting-things-up"&gt;Ironic on a NUC - Part 1 - Setting Things Up&lt;/h1&gt;
&lt;p&gt;Just because a few people have asked, here is what I did to get a standalone Ironic installation going and running in an Intel NUC.&lt;/p&gt;
&lt;p&gt;Why a NUC? Well, the Intel NUC is a cute little piece of hardware that is well suited as a test lab machine that can sit on my desk. I&amp;rsquo;m using a DC53427HYE, which is an i5 with vPro. vPro is a summary term for a bunch of Intel technologies, including AMT (Active Management Technology). This allows us to remotely manage this desktop for things like power management - think of this as an analogy to IPMI for servers.&lt;/p&gt;</description></item><item><title>Virtualenv and Library Fun</title><link>https://michaeldavies.org/posts/virtualenv-and-library-fun/</link><pubDate>Thu, 23 Jul 2015 15:04:23 +0930</pubDate><guid>https://michaeldavies.org/posts/virtualenv-and-library-fun/</guid><description>&lt;p&gt;Doing python development means using virtualenv, which is wonderful. Still, sometimes you find a gotcha that trips you up.&lt;/p&gt;
&lt;p&gt;Today, for whatever reason, inside a venv inside a brand new Ubuntu 14.04 install, I could not see a system-wide install of pywsman (installed via &lt;em&gt;sudo apt-get install python-openwsman&lt;/em&gt;)&lt;/p&gt;
&lt;p&gt;For example:&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;mrda@host:~$ python -c &amp;#39;import pywsman&amp;#39;
# Works
mrda@host:~$ tox -evenv --notes \
(venv)mrda@host:~$ python -c &amp;#39;import pywsman&amp;#39;
Traceback (most recent call last):
File &amp;#34;&amp;lt;string&amp;gt;&amp;#34;, line 1, in &amp;lt;module&amp;gt;
ImportError: No module named pywsman
# WAT?
&lt;/code&gt;&lt;/pre&gt;&lt;/blockquote&gt;
&lt;p&gt;Let&amp;rsquo;s try something else that&amp;rsquo;s installed system-wide&lt;/p&gt;</description></item><item><title>Dhcp and Nucs</title><link>https://michaeldavies.org/posts/dhcp-and-nucs/</link><pubDate>Wed, 22 Jul 2015 14:56:28 +0930</pubDate><guid>https://michaeldavies.org/posts/dhcp-and-nucs/</guid><description>&lt;p&gt;I&amp;rsquo;ve put together a little test network at home for doing some &lt;a href="https://github.com/openstack/ironic"&gt;Ironic&lt;/a&gt; testing on hardware using &lt;a href="http://www.intel.com/content/www/us/en/nuc/nuc-kit-dc53427hye.html"&gt;NUCs&lt;/a&gt;. So far it&amp;rsquo;s going quite well, although one problem that had me stumped for a while was getting the NUC to behave itself when obtaining an IP address with DHCP.&lt;/p&gt;
&lt;p&gt;Each time I booted the network, a different IP address from the pool was being allocated (i.e. the next one in the DHCP address pool).&lt;/p&gt;</description></item><item><title>lca2004</title><link>https://michaeldavies.org/posts/lca2004/</link><pubDate>Sat, 17 Jan 2004 17:00:00 +0930</pubDate><guid>https://michaeldavies.org/posts/lca2004/</guid><description>&lt;h1 id="linuxconfau-2004"&gt;linux.conf.au 2004&lt;/h1&gt;
&lt;p&gt;&lt;em&gt;I&amp;rsquo;ve backdated this post to when this event occured. Why write this now?
An &lt;a href="https://shearer.org"&gt;old friend&lt;/a&gt; reach out and got in touch in August 2026,
which led to me thinking about what we did all those years ago, and the
realisation that there is no good record remaining of lca2004, which meant
I wanted to write down a few thoughts.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The linux.conf.au 2004 conference was held at the University of Adelaide between January 12 and 17, 2004. That&amp;rsquo;s such a long time ago,
but there&amp;rsquo;s so many good memories of that time. We produced a &lt;a href="https://mirror.linux.org.au/pub/linux.conf.au/2004/programme.html"&gt;conference CD&lt;/a&gt; that contained a snapshot of what happened, and there&amp;rsquo;s
also the wayback machine&amp;rsquo;s preservation of the &lt;a href="https://web.archive.org/web/20050306091536/http://www.linux.org.au/conf/2004/"&gt;conference website&lt;/a&gt;.&lt;/p&gt;</description></item></channel></rss>