mirror of
https://github.com/davegallant/davegallant.github.io.git
synced 2025-08-06 00:33:39 +00:00
Add support me button below each post
This commit is contained in:
@@ -104,6 +104,16 @@
|
||||
<section class="body"><p>I’m a software tinkerer with a passion for infrastructure, tooling, security, and coffee.</p>
|
||||
</section>
|
||||
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="https://storage.ko-fi.com/cdn/widget/Widget_2.js"
|
||||
></script>
|
||||
<script type="text/javascript">
|
||||
kofiwidget2.init("Support Me", "#a15bc2", "F1F2S4LWI");
|
||||
kofiwidget2.draw();
|
||||
</script>
|
||||
|
||||
|
||||
<div class="post-tags">
|
||||
|
||||
</div>
|
||||
@@ -111,6 +121,7 @@
|
||||
</main>
|
||||
|
||||
<footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -200,6 +200,16 @@ module 'platform' has no attribute 'linux_distribution'
|
||||
<p>The docs say <code>Deprecated since version 3.5, will be removed in version 3.8: See alternative like the distro package.</code></p>
|
||||
<p>I suppose this highlights one of the caveats of relying upon the system’s python, rather than having an isolated, dedicated environment for all dependencies.</p></section>
|
||||
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="https://storage.ko-fi.com/cdn/widget/Widget_2.js"
|
||||
></script>
|
||||
<script type="text/javascript">
|
||||
kofiwidget2.init("Support Me", "#a15bc2", "F1F2S4LWI");
|
||||
kofiwidget2.draw();
|
||||
</script>
|
||||
|
||||
|
||||
<div class="post-tags">
|
||||
|
||||
|
||||
@@ -241,6 +251,7 @@ module 'platform' has no attribute 'linux_distribution'
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -136,6 +136,16 @@ Containers have much less overhead in terms of boot time and storage allocation.
|
||||
<h2 id="in-summary">In Summary<a href="#in-summary" class="hanchor" ariaLabel="Anchor">#</a></h2>
|
||||
<p>Building out a homelab can be a rewarding experience and it doesn’t require buying a rack full of expensive servers to get a significant amount of utility. There are many services that you can run that require very minimal setup, making it possible to get a server up and running in a short period of time, with monitoring, and that can be securely connected to remotely.</p></section>
|
||||
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="https://storage.ko-fi.com/cdn/widget/Widget_2.js"
|
||||
></script>
|
||||
<script type="text/javascript">
|
||||
kofiwidget2.init("Support Me", "#a15bc2", "F1F2S4LWI");
|
||||
kofiwidget2.draw();
|
||||
</script>
|
||||
|
||||
|
||||
<div class="post-tags">
|
||||
|
||||
|
||||
@@ -189,6 +199,7 @@ Containers have much less overhead in terms of boot time and storage allocation.
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -244,6 +244,16 @@ nix-shell '<home-manager>' -A install
|
||||
<h2 id="wrapping-up">Wrapping up<a href="#wrapping-up" class="hanchor" ariaLabel="Anchor">#</a></h2>
|
||||
<p>The title of this post is slightly misleading, since it’s possible to retain some of your dotfiles and have them intermingle with home-manager by including them alongside nix. The idea of defining user configuration using nix can provide a clean way to maintain your configuration, and allow it to be portable across platforms. Is it worth the effort to migrate away from shell scripts and dotfiles? I’d say so.</p></section>
|
||||
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="https://storage.ko-fi.com/cdn/widget/Widget_2.js"
|
||||
></script>
|
||||
<script type="text/javascript">
|
||||
kofiwidget2.init("Support Me", "#a15bc2", "F1F2S4LWI");
|
||||
kofiwidget2.draw();
|
||||
</script>
|
||||
|
||||
|
||||
<div class="post-tags">
|
||||
|
||||
|
||||
@@ -285,6 +295,7 @@ nix-shell '<home-manager>' -A install
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -106,6 +106,16 @@
|
||||
<section class="body"><p>Rotating credentials is a security best practice. This morning, I read a question about automatically rotating AWS Access Keys without having to go through the hassle of navigating the AWS console. There are some existing solutions already, but I decided to write a <a href="https://gist.github.com/davegallant/2c042686a78684a657fe99e20fa7a924#file-aws_access_key_rotator-py">script</a> since it was incredibly simple. The script could be packed up as a systemd/launchd service to continually rotate access keys in the background.</p>
|
||||
<p>In the longer term, migrating my local workflows to <a href="https://github.com/99designs/aws-vault">aws-vault</a> seems like a more secure solution. This would mean that credentials (even temporary session credentials) never have to be written in plaintext to disk (i.e. where <a href="https://docs.aws.amazon.com/sdkref/latest/guide/file-location.html">AWS suggests</a>). Any existing applications, such as terraform, could be have their credentials passed to them from aws-vault, which retrieves them from the OS’s secure keystore. There is even a <a href="https://github.com/99designs/aws-vault/blob/master/USAGE.md#rotating-credentials">rotate command</a> included.</p></section>
|
||||
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="https://storage.ko-fi.com/cdn/widget/Widget_2.js"
|
||||
></script>
|
||||
<script type="text/javascript">
|
||||
kofiwidget2.init("Support Me", "#a15bc2", "F1F2S4LWI");
|
||||
kofiwidget2.draw();
|
||||
</script>
|
||||
|
||||
|
||||
<div class="post-tags">
|
||||
|
||||
|
||||
@@ -149,6 +159,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -195,6 +195,16 @@ Hello world
|
||||
</blockquote>
|
||||
<p>I had been experimenting with Podman on Linux before writing this, but after listening to this <a href="https://kubernetespodcast.com/episode/164-podman/">podcast episode</a>, I was inspired to give Podman a try on macOS.</p></section>
|
||||
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="https://storage.ko-fi.com/cdn/widget/Widget_2.js"
|
||||
></script>
|
||||
<script type="text/javascript">
|
||||
kofiwidget2.init("Support Me", "#a15bc2", "F1F2S4LWI");
|
||||
kofiwidget2.draw();
|
||||
</script>
|
||||
|
||||
|
||||
<div class="post-tags">
|
||||
|
||||
|
||||
@@ -236,6 +246,7 @@ Hello world
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -189,6 +189,16 @@ horizontalpodautoscaler.autoscaling/tekton-pipelines-webhook Deployment/tekton
|
||||
<p>I made sure to install Tailscale in the container so that I can easily access K3s from anywhere.</p>
|
||||
<p>If I’m feeling adventurous, I might experiment with <a href="https://rancher.com/docs/k3s/latest/en/advanced/#running-k3s-with-rootless-mode-experimental">K3s rootless</a>.</p></section>
|
||||
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="https://storage.ko-fi.com/cdn/widget/Widget_2.js"
|
||||
></script>
|
||||
<script type="text/javascript">
|
||||
kofiwidget2.init("Support Me", "#a15bc2", "F1F2S4LWI");
|
||||
kofiwidget2.draw();
|
||||
</script>
|
||||
|
||||
|
||||
<div class="post-tags">
|
||||
|
||||
|
||||
@@ -230,6 +240,7 @@ horizontalpodautoscaler.autoscaling/tekton-pipelines-webhook Deployment/tekton
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -124,6 +124,16 @@ Encrypting your shared volumes should also be done, since unfortunately <a href=
|
||||
<h2 id="summary">Summary<a href="#summary" class="hanchor" ariaLabel="Anchor">#</a></h2>
|
||||
<p>Having backups of various forms of cloud data is a good investment, especially in <a href="https://en.wikipedia.org/wiki/2022_Ukraine_cyberattacks">times of war</a>. I certainly feel more at ease for having backed up my emails.</p></section>
|
||||
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="https://storage.ko-fi.com/cdn/widget/Widget_2.js"
|
||||
></script>
|
||||
<script type="text/javascript">
|
||||
kofiwidget2.init("Support Me", "#a15bc2", "F1F2S4LWI");
|
||||
kofiwidget2.draw();
|
||||
</script>
|
||||
|
||||
|
||||
<div class="post-tags">
|
||||
|
||||
|
||||
@@ -169,6 +179,7 @@ Encrypting your shared volumes should also be done, since unfortunately <a href=
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -142,6 +142,16 @@ When setting up the machine, I mostly went with all of the defaults. Configurati
|
||||
<h2 id="summary">Summary<a href="#summary" class="hanchor" ariaLabel="Anchor">#</a></h2>
|
||||
<p>It is fairly simple to setup a router with pfSense from within a virtual machine. A physical dedicated routing machine is not necessary and often does not perform as well as software running on faster and more reliable hardware. So far, pfSense has been running for over a week without a single hiccup. pfSense is a mature piece of software that is incredibly powerful and flexible. To avoid some of the instability I had experienced with OpenWrt, I enabled <a href="https://docs.netgate.com/pfsense/en/latest/backup/autoconfigbackup.html">AutoConfigBackup</a>, which is capable of automatically backing up configuration upon every change. I plan to explore and experiment with more services and configuration in the future, so the ability to track all of these changes gives me the peace of mind that experimentation is safe.</p></section>
|
||||
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="https://storage.ko-fi.com/cdn/widget/Widget_2.js"
|
||||
></script>
|
||||
<script type="text/javascript">
|
||||
kofiwidget2.init("Support Me", "#a15bc2", "F1F2S4LWI");
|
||||
kofiwidget2.draw();
|
||||
</script>
|
||||
|
||||
|
||||
<div class="post-tags">
|
||||
|
||||
|
||||
@@ -189,6 +199,7 @@ When setting up the machine, I mostly went with all of the defaults. Configurati
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -160,6 +160,16 @@ volumes:
|
||||
<p>Now the link <a href="https://www.youtube.com/watch?v=-lz30by8-sU">https://www.youtube.com/watch?v=-lz30by8-sU</a> will redirect to <a href="http://invidious:3000/watch?v=-lz30by8-sU">http://invidious:3000/watch?v=-lz30by8-sU</a></p>
|
||||
<p>I’m still looking for ways to improve this invidious setup. There doesn’t appear to be a way to stream in 4K yet.</p></section>
|
||||
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="https://storage.ko-fi.com/cdn/widget/Widget_2.js"
|
||||
></script>
|
||||
<script type="text/javascript">
|
||||
kofiwidget2.init("Support Me", "#a15bc2", "F1F2S4LWI");
|
||||
kofiwidget2.draw();
|
||||
</script>
|
||||
|
||||
|
||||
<div class="post-tags">
|
||||
|
||||
|
||||
@@ -207,6 +217,7 @@ volumes:
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -143,6 +143,16 @@ pod/davegallant-proxy created
|
||||
<p>It would be nice if Azure provided tooling similar to cloud-sql-proxy, so that using private databases would be more of a convenient experience.</p>
|
||||
<p>One other thing to note is that some clients (such as <a href="https://dbeaver.io/">dbeaver</a>) <a href="https://github.com/dbeaver/dbeaver/issues/872">do not provide DNS resolution over SOCKS</a>. So in this case, you won’t be able to use DNS as if you were inside the cluster, but instead have to rely on knowing private ip addresses.</p></section>
|
||||
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="https://storage.ko-fi.com/cdn/widget/Widget_2.js"
|
||||
></script>
|
||||
<script type="text/javascript">
|
||||
kofiwidget2.init("Support Me", "#a15bc2", "F1F2S4LWI");
|
||||
kofiwidget2.draw();
|
||||
</script>
|
||||
|
||||
|
||||
<div class="post-tags">
|
||||
|
||||
|
||||
@@ -202,6 +212,7 @@ pod/davegallant-proxy created
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -243,6 +243,16 @@ jobs:
|
||||
<p>Gitea Actions are fast and the resource footprint is minimal. My gitea instance is currently using around 250mb of memory and a small fraction of a single cpu core (and the runner is using a similar amount of resources). This is impressive since many alternatives tend to require substantionally more resources (ahem, gitlab). It likely helps that the codebase is largely written in go.</p>
|
||||
<p>By combining gitea with the networking marvel that is tailscale, running workflows becomes simple and fun. Whether you are working on a team or working alone, this setup ensures that your workflows are securely accessible from anywhere with an internet connection.</p></section>
|
||||
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="https://storage.ko-fi.com/cdn/widget/Widget_2.js"
|
||||
></script>
|
||||
<script type="text/javascript">
|
||||
kofiwidget2.init("Support Me", "#a15bc2", "F1F2S4LWI");
|
||||
kofiwidget2.draw();
|
||||
</script>
|
||||
|
||||
|
||||
<div class="post-tags">
|
||||
|
||||
|
||||
@@ -286,6 +296,7 @@ jobs:
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -128,6 +128,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -218,6 +218,7 @@
|
||||
|
||||
</main>
|
||||
<footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -128,6 +128,7 @@
|
||||
|
||||
</main>
|
||||
<footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -141,6 +141,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -121,6 +121,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -121,6 +121,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -121,6 +121,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -123,6 +123,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -121,6 +121,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -121,6 +121,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -121,6 +121,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -121,6 +121,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -121,6 +121,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -121,6 +121,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -123,6 +123,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -121,6 +121,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -121,6 +121,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -121,6 +121,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -121,6 +121,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -121,6 +121,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -121,6 +121,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -121,6 +121,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -121,6 +121,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -121,6 +121,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -121,6 +121,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -336,6 +336,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -121,6 +121,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -121,6 +121,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -121,6 +121,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -121,6 +121,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -121,6 +121,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -121,6 +121,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -121,6 +121,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -121,6 +121,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -121,6 +121,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -121,6 +121,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -121,6 +121,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -121,6 +121,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -121,6 +121,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -121,6 +121,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -121,6 +121,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -123,6 +123,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -121,6 +121,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -123,6 +123,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -121,6 +121,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -121,6 +121,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -121,6 +121,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -121,6 +121,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -121,6 +121,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -121,6 +121,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -121,6 +121,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -125,6 +125,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -121,6 +121,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -121,6 +121,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -121,6 +121,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -121,6 +121,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -121,6 +121,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
|
@@ -19,6 +19,16 @@
|
||||
{{- end -}}
|
||||
</section>
|
||||
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="https://storage.ko-fi.com/cdn/widget/Widget_2.js"
|
||||
></script>
|
||||
<script type="text/javascript">
|
||||
kofiwidget2.init("Support Me", "#a15bc2", "F1F2S4LWI");
|
||||
kofiwidget2.draw();
|
||||
</script>
|
||||
|
||||
|
||||
<div class="post-tags">
|
||||
{{ if ne .Type "page" }}
|
||||
{{ if gt .Params.tags 0 }}
|
||||
|
@@ -1,4 +1,5 @@
|
||||
<footer>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex">
|
||||
{{- range $index, $key := .Site.Params.Social -}}
|
||||
<a class="soc" href="{{ $key.url }}" rel="me" title="{{ $key.name }}"
|
||||
@@ -13,7 +14,6 @@
|
||||
</footer>
|
||||
{{ if not .Site.IsServer }} {{ template "_internal/google_analytics.html" . }}
|
||||
{{ end }} {{- if (isset .Site.Params "social") -}}
|
||||
|
||||
<script>
|
||||
feather.replace();
|
||||
</script>
|
||||
|
Reference in New Issue
Block a user