<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>David Marchbanks</title><link>https://davidmarchbanks.dev/en/</link><description>Recent content on David Marchbanks</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Fri, 17 Apr 2026 05:04:00 +0000</lastBuildDate><atom:link href="https://davidmarchbanks.dev/en/index.xml" rel="self" type="application/rss+xml"/><item><title>Getting old and Linux</title><link>https://davidmarchbanks.dev/en/posts/getting-old-and-linux/</link><pubDate>Fri, 17 Apr 2026 05:04:00 +0000</pubDate><guid>https://davidmarchbanks.dev/en/posts/getting-old-and-linux/</guid><description>&lt;h2 id="introduction">Introduction&lt;/h2>
&lt;p>So as I grow older, I find myself in two different places when it comes to Linux.&lt;/p>
&lt;ol>
&lt;li>I want it to be easy and clear with instructions when I&amp;rsquo;m lost&lt;/li>
&lt;li>I want to be able to tweak the living crap out of it&lt;/li>
&lt;/ol>
&lt;p>At the time of writing this, I am running Gentoo and it really fills in #2 hard. But I&amp;rsquo;ve also always enjoyed gaming in Linux despite it&amp;rsquo;s difficulties in the past. I was an avid supporter of Cedega, and bought games that interest me that had Linux binaries like Unreal 2k4 and X3. Which Gaming under Gentoo is not doable, but not necessarily easy.&lt;/p></description></item><item><title>Gitlab To S3 Backup</title><link>https://davidmarchbanks.dev/en/posts/gitlab-to-s3-backup/</link><pubDate>Sun, 01 Mar 2026 17:46:52 +0000</pubDate><guid>https://davidmarchbanks.dev/en/posts/gitlab-to-s3-backup/</guid><description>&lt;p>So I have a need to nightly backup a few things. I thought I would share how I do this using the following:&lt;/p>
&lt;ol>
&lt;li>Digital Ocean Object Storage&lt;/li>
&lt;li>Gitlab&lt;/li>
&lt;li>Mongo&lt;/li>
&lt;li>Python ( For simplicity )&lt;/li>
&lt;/ol>
&lt;p>To start, I have a template for connecting up to digital ocean that I use in multiple spots. We&amp;rsquo;ll call this &lt;code>docker_util.yaml&lt;/code>&lt;/p>
&lt;p>docker_util.yaml&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">image&lt;/span>: &lt;span style="color:#ae81ff">docker:24.0.5&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">services&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#ae81ff">docker:24.0.5-dind&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">before_script&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#ae81ff">wget https://github.com/digitalocean/doctl/releases/download/v1.105.0/doctl-1.105.0-linux-amd64.tar.gz&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#ae81ff">tar xf doctl-1.105.0-linux-amd64.tar.gz&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#ae81ff">mv doctl /bin&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#ae81ff">doctl auth init -t ${DO_API_TOKEN}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#ae81ff">doctl registry login&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Notice the ${DO_API_TOKEN}, you will need to create a secret for this. Also pending on when you are reading this, you may need to update the doctl version.&lt;/p></description></item><item><title>Easy Circle Image in Xamarin without a plugin</title><link>https://davidmarchbanks.dev/en/posts/easy-circle-image-in-xamarin-without-a-plugin/</link><pubDate>Mon, 01 Jul 2019 01:32:06 +0000</pubDate><guid>https://davidmarchbanks.dev/en/posts/easy-circle-image-in-xamarin-without-a-plugin/</guid><description>&lt;p>So &lt;a href="https://montemagno.com/">James Montemagno&lt;/a> has written a plugin a long while back that provides an easy method for writing images to XAML. The only down side to this is that you have to add a namespace and nuget package.&lt;/p>
&lt;p>So while watching &lt;a href="https://kymphillpotts.com/">Kym Phillpots&lt;/a> on Twitch, I learned a new way of providing circular images without a plugin. It&amp;rsquo;s super easy!&lt;/p>
&lt;p>So to start out we are going to wrap an image in a frame. Then adjust our corner radius to the appropriate radius ( half of your expected image size ). By default, the image is likely to bleed off the frame or some other unwarranted result.&lt;/p></description></item><item><title>Write your own Custom Controls for Xamarin.Forms</title><link>https://davidmarchbanks.dev/en/posts/write-your-own-custom-controls-for-xamarin-forms/</link><pubDate>Thu, 23 May 2019 01:06:18 +0000</pubDate><guid>https://davidmarchbanks.dev/en/posts/write-your-own-custom-controls-for-xamarin-forms/</guid><description>&lt;p>So why would you need to write a custom control for Xamarin? Does it have a purpose other than wrapping native controls that don&amp;rsquo;t exist in Xamarin? Why yes, it does serve a good purpose. I often will write a component to avoid having to copy and paste XAML repeatedly.&lt;/p>
&lt;h2 id="how-do-we-create-one">How do we create one?&lt;/h2>
&lt;p>I am going to assume you already have a project started in this post. I often create a directory/namespace called Controls in my PCL for this purpose. In any case, right click in your solution in Visual Studio&amp;rsquo;s PCL project and click Add, and then New Item.&lt;/p></description></item><item><title>Writing XAML Value Converters for Xamarin Forms</title><link>https://davidmarchbanks.dev/en/posts/writing-xaml-value-converters-for-xamarin-forms/</link><pubDate>Tue, 23 Apr 2019 02:58:00 +0000</pubDate><guid>https://davidmarchbanks.dev/en/posts/writing-xaml-value-converters-for-xamarin-forms/</guid><description>&lt;h2 id="explanation">Explanation&lt;/h2>
&lt;p>XAML isn&amp;rsquo;t perfect. It is often missing some tools that honestly should just be a party of the set. For example, express if a value is null or not null.&lt;/p>
&lt;p>What we will want to use is the IValueConverter interface. This interface has two methods defined:object Convert&lt;/p>
&lt;pre tabindex="0">&lt;code>object Convert(object value, Type targetType, object parameter, CultureInfo culture);&lt;/code>&lt;/pre>&lt;pre tabindex="0">&lt;code>object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture);&lt;/code>&lt;/pre>&lt;p>These two methods are used to convert a value from one type to another. The first method is called to convert your base value. The second one is if you have two way binding, to convert it back. This is not always necessary unless you have a specific use case that can be converted from one value to another, such as Hex color to Color object and vice versa.&lt;/p></description></item><item><title>Handling API''s with Xamarin with JWT</title><link>https://davidmarchbanks.dev/en/posts/handling-apis-with-xamarin-with-jwt/</link><pubDate>Fri, 22 Mar 2019 00:07:25 +0000</pubDate><guid>https://davidmarchbanks.dev/en/posts/handling-apis-with-xamarin-with-jwt/</guid><description>&lt;p>If you are writing an application that has it&amp;rsquo;s authentication with JWT, you might be wondering what is a good method to do this? I&amp;rsquo;ve used the HttpClient along with Xamarin.Essentials&amp;rsquo;s Preference tools for this.&lt;/p>
&lt;p>To start out, I use the Preferences to store my token and refresh token. We also set our BaseAddress. Doing this allows us to switch from Dev, QA, and Production environments without touching every service.&lt;/p></description></item><item><title>Xamarin Forms Best Practices</title><link>https://davidmarchbanks.dev/en/posts/xamarin-forms-best-practices/</link><pubDate>Thu, 21 Mar 2019 22:52:16 +0000</pubDate><guid>https://davidmarchbanks.dev/en/posts/xamarin-forms-best-practices/</guid><description>&lt;p>So I&amp;rsquo;ve written a few Xamarin projects now, and there have been a few things I&amp;rsquo;ve found that help keep your code clean. Disclaimer, this is based on my own opinion and you can take it at that.&lt;/p>
&lt;h3 id="naming">Naming&lt;/h3>
&lt;p>It&amp;rsquo;s important that you do not add the name Xam, Xamarin, or Android to your namespace. Doing so can cause any plugins you add, or dependencies you want have issues. No one likes to have to do the full namespace or have to put the global keyword in. Save yourself some time and effort, just don&amp;rsquo;t use those namespaces.&lt;/p></description></item><item><title>About Me</title><link>https://davidmarchbanks.dev/en/pages/about-myself/</link><pubDate>Wed, 20 Mar 2019 22:54:31 +0000</pubDate><guid>https://davidmarchbanks.dev/en/pages/about-myself/</guid><description>&lt;p>So my name is David. I am a 40 year old software developer in Michigan. I started out programming when I was really little on a old V-Tech kid computer doing BASIC. From there I moved into websites a bit. I had a personal website called Sub-Zero&amp;rsquo;s Realm way way way way back. I ran that from Mortal Kombat 2 till about 3 or 4. Then I got really into other games like Resident Evil and Silent Hill, but did&amp;rsquo;t pursue web development after that much.&lt;/p></description></item></channel></rss>