<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>Adam Craig Johnston | Software Developer</title>
	<atom:link href="https://adamjohnston.me/feed/" rel="self" type="application/rss+xml" />
	<link>https://adamjohnston.me</link>
	<description>Software Developer, Technology Enthusiast, Retro and Husband and Dad based in Melbourne.</description>
	<lastBuildDate>Sat, 27 Jun 2026 13:02:28 +0000</lastBuildDate>
	<language>en-AU</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.0.12</generator>
<site xmlns="com-wordpress:feed-additions:1">140396600</site>	<item>
		<title>BashNovusTools</title>
		<link>https://adamjohnston.me/bashnovustools/</link>
					<comments>https://adamjohnston.me/bashnovustools/#respond</comments>
		
		<dc:creator><![CDATA[Adam Craig Johnston]]></dc:creator>
		<pubDate>Sat, 27 Jun 2026 13:01:12 +0000</pubDate>
				<category><![CDATA[Bash]]></category>
		<category><![CDATA[Docker]]></category>
		<guid isPermaLink="false">https://adamjohnston.me/?p=1264</guid>

					<description><![CDATA[BashNovusTools is a collection of Linux administration scripts for common deployment and operations tasks. It provides commands for installing Docker, managing Docker access and services, and updating Ubuntu packages. The project can be used directly from source or packaged as a Snap. https://github.com/novuslogic/BashNovusTools]]></description>
										<content:encoded><![CDATA[<p>BashNovusTools is a collection of Linux administration scripts for common deployment and operations tasks. It provides commands for installing Docker, managing Docker access and services, and updating Ubuntu packages. The project can be used directly from source or packaged as a Snap.</p>
<p><a href="https://github.com/novuslogic/BashNovusTools">https://github.com/novuslogic/BashNovusTools</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://adamjohnston.me/bashnovustools/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1264</post-id>	</item>
		<item>
		<title>Installing AWS CLI</title>
		<link>https://adamjohnston.me/installing-aws-cli/</link>
					<comments>https://adamjohnston.me/installing-aws-cli/#respond</comments>
		
		<dc:creator><![CDATA[Adam Craig Johnston]]></dc:creator>
		<pubDate>Fri, 12 Jun 2026 13:35:47 +0000</pubDate>
				<category><![CDATA[AWS]]></category>
		<category><![CDATA[Using WordPress on AWS Lightsail and Docker]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[Wordpress]]></category>
		<guid isPermaLink="false">https://adamjohnston.me/?p=1250</guid>

					<description><![CDATA[Using WordPress on AWS Lightsail and Docker Summary The&#160;AWS CLI&#160;is a command-line tool that lets you manage and automate AWS services including Lightsail using PowerShell, Command Prompt, or Terminal. With AWS CLI, you can automate tasks, configure AWS resources, and streamline the deployment and management of Lightsail instances, Docker containers, and WordPress environments. Prerequisites Python [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="https://i0.wp.com/adamjohnston.me/wp-content/uploads/2026/05/title_page-e1779623451394.png" data-wplink-edit="true"><img data-attachment-id="1209" data-permalink="https://adamjohnston.me/using-wordpress-on-aws-lightsail-and-docker/title_page/" data-orig-file="https://i0.wp.com/adamjohnston.me/wp-content/uploads/2026/05/title_page-e1779623451394.png?fit=412%2C618&amp;ssl=1" data-orig-size="412,618" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="title_page" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/adamjohnston.me/wp-content/uploads/2026/05/title_page-e1779623451394.png?fit=200%2C300&amp;ssl=1" data-large-file="https://i0.wp.com/adamjohnston.me/wp-content/uploads/2026/05/title_page-e1779623451394.png?fit=683%2C1024&amp;ssl=1" loading="lazy" class="alignnone size-medium wp-image-1209" src="https://i0.wp.com/adamjohnston.me/wp-content/uploads/2026/05/title_page-e1779623451394-200x300.png?resize=200%2C300" alt="" width="200" height="300" srcset="https://i0.wp.com/adamjohnston.me/wp-content/uploads/2026/05/title_page-e1779623451394.png?resize=200%2C300&amp;ssl=1 200w, https://i0.wp.com/adamjohnston.me/wp-content/uploads/2026/05/title_page-e1779623451394.png?w=412&amp;ssl=1 412w" sizes="(max-width: 200px) 100vw, 200px" data-recalc-dims="1" /></a></p>
<h2><a href="https://leanpub.com/wordpressawslightsail">Using WordPress on AWS Lightsail and Docker</a></h2>


<h2 id="summary">Summary</h2>



<p>The&nbsp;<strong>AWS CLI</strong>&nbsp;is a command-line tool that lets you manage and automate AWS services including Lightsail using PowerShell, Command Prompt, or Terminal. With AWS CLI, you can automate tasks, configure AWS resources, and streamline the deployment and management of Lightsail instances, Docker containers, and WordPress environments.</p>



<h2 id="prerequisites">Prerequisites</h2>



<ul><li><strong>Python (if applicable):</strong><ul><li><strong>Required only for AWS CLI v1 (installed via pip):</strong>&nbsp;Python 3.7 or later recommended.</li><li><strong>AWS CLI v2:</strong>&nbsp;Python is bundled; you don&#8217;t need to install it separately.</li></ul></li><li><strong>Administrator or sudo privileges:</strong>&nbsp;Required for installation and configuration on most systems.</li></ul>



<h2 id="installation">Installation</h2>



<p><strong>Tip:</strong>&nbsp;All commands below should be run in your system&#8217;s terminal, PowerShell, or command prompt.</p>



<h3 id="windows">Windows</h3>



<h4 id="-option-1-msi-installer-"><strong>Option 1: MSI Installer</strong></h4>



<ol><li>Download the installer from the&nbsp;<a href="https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html">official AWS CLI documentation</a>.</li><li>Run the installer (e.g.,&nbsp;<code>AWSCLIV2.msi</code>).<em>Or, run this command:</em><code>msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi</code></li></ol>



<h4 id="-option-2-chocolatey-"><strong>Option 2: Chocolatey</strong></h4>



<p><a href="https://community.chocolatey.org/packages/awscli">Chocolatey</a>&nbsp;is a command-line package manager for Windows.</p>



<p>To install or upgrade AWS CLI:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
choco upgrade awscli

</pre></div>


<h4 id="-verify-installation-"><strong>Verify Installation</strong></h4>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
aws --version

</pre></div>


<h3 id="linux">Linux</h3>



<h4 id="-option-1-official-bundled-installer-"><strong>Option 1: Official Bundled Installer</strong></h4>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
curl &quot;https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip&quot; -o &quot;awscliv2.zip&quot;
unzip awscliv2.zip
sudo ./aws/install
rm -rf awscliv2.zip aws/

</pre></div>


<h4 id="-option-2-snap-ubuntu-debian-"><strong>Option 2: Snap (Ubuntu/Debian)</strong></h4>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
sudo snap install aws-cli --classic

</pre></div>


<h4 id="-verify-installation-"><strong>Verify Installation</strong></h4>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
aws --version

</pre></div>


<h3 id="macos">macOS</h3>



<h4 id="-option-1-homebrew-"><strong>Option 1: Homebrew</strong></h4>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
brew update
brew install awscli

</pre></div>


<h4 id="-verify-installation-"><strong>Verify Installation</strong></h4>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
aws --version

</pre></div>


<h2 id="creating-an-iam-user-group-for-lightsail-access">Creating an IAM User Group for Lightsail Access</h2>



<p>You can use either a&nbsp;<strong>service-linked role</strong>&nbsp;(created automatically by Lightsail) or set up a custom role with your own group and permissions.</p>



<h3 id="1-sign-in-to-the-aws-management-console">1. Sign in to the AWS Management Console</h3>



<ul><li>Go to the&nbsp;<strong>IAM (Identity and Access Management)</strong>&nbsp;service (search for &#8220;IAM&#8221; in the AWS Console search bar).</li></ul>



<h3 id="2-create-a-user-group">2. Create a User Group</h3>



<ul><li>Navigate to&nbsp;<strong>User groups</strong>&nbsp;?&nbsp;<strong>Create group</strong>.</li><li>Name your group (e.g.,&nbsp;<code>LightsailUsers</code>).</li><li>(Optional) Add users now, or skip and add later.</li><li>Click&nbsp;<strong>Next</strong>.</li></ul>



<h3 id="3-attach-permissions">3. Attach Permissions</h3>



<ul><li>In&nbsp;<strong>Attach permissions policies</strong>, search for&nbsp;<code>AdministratorAccess</code>.</li><li>Check the box for&nbsp;<code>AdministratorAccess</code>.</li><li>Click&nbsp;<strong>Next</strong>, then&nbsp;<strong>Create group</strong>.</li></ul>



<h3 id="4-add-users-if-you-didn-t-earlier-">4. Add Users (if you didn�t earlier)</h3>



<ul><li>In&nbsp;<strong>User groups</strong>, select your group.</li><li>Go to the&nbsp;<strong>Users</strong>&nbsp;tab, click&nbsp;<strong>Create user</strong>.</li></ul>



<h3 id="5-create-user-access-key">5. Create User &amp; Access Key</h3>



<ul><li>Set a username (e.g.,&nbsp;<code>developer</code>).</li><li>Leave console access unchecked (optional).</li><li>On&nbsp;<strong>Permissions</strong>, choose&nbsp;<strong>Add user to group</strong>&nbsp;and pick&nbsp;<code>LightsailUsers</code>.</li><li>Skip permission boundaries (optional).</li><li>Click&nbsp;<strong>Create user</strong>.</li></ul>



<h4 id="-create-access-key-"><strong>Create Access Key:</strong></h4>



<ul><li>In&nbsp;<strong>Users</strong>, click your user&#8217;s name.</li><li>Go to&nbsp;<strong>Security credentials</strong>&nbsp;tab, click&nbsp;<strong>Create access key</strong>.</li><li>Select&nbsp;<strong>Command Line Interface (CLI)</strong>.</li><li>Confirm recommendations and continue.</li><li>Download your credentials&nbsp;<code>.csv</code>&nbsp;and store securely.</li></ul>



<blockquote class="wp-block-quote"><p><strong>Tip:</strong>&nbsp;Tags (key-value pairs) can help organize and automate your Lightsail resources.</p></blockquote>



<h2 id="aws-cli-configuration">AWS CLI Configuration</h2>



<h3 id="1-run-the-aws-configure-command">1. Run the&nbsp;<code>aws configure</code>&nbsp;Command</h3>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
aws configure

</pre></div>


<p>You&#8217;ll be prompted for:</p>



<ul><li><strong>AWS Access Key ID:</strong>&nbsp;(From your downloaded&nbsp;<code>.csv</code>)</li><li><strong>AWS Secret Access Key:</strong>&nbsp;(From your downloaded&nbsp;<code>.csv</code>)</li><li><strong>Default region name:</strong>&nbsp;(e.g.,&nbsp;<code>ap-southeast-2</code>)</li><li><strong>Default output format:</strong>&nbsp;(<code>json</code>,&nbsp;<code>text</code>, or&nbsp;<code>table</code>)</li></ul>



<p>These are stored as your&nbsp;<strong>default profile</strong>.</p>



<h3 id="2-add-additional-profiles-optional-">2. Add Additional Profiles (Optional)</h3>



<p>You can create multiple named profiles (for different users/accounts):</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
aws configure --profile MyUbuntuProfile

</pre></div>


<h3 id="3-where-profiles-are-stored">3. Where Profiles Are Stored</h3>



<p>Profiles are kept in two files:</p>



<ul><li><strong>Linux/macOS:</strong>&nbsp;<code>~/.aws/</code></li><li><strong>Windows:</strong>&nbsp;<code>C:\Users\&lt;YourUsername&gt;\.aws\</code></li></ul>



<p><strong>Files:</strong></p>



<ul><li><strong><code>credentials</code></strong>&nbsp;&#8211; stores access keys</li><li><strong><code>config</code></strong>&nbsp;&#8211; stores region and output format</li></ul>



<p><strong>Example:</strong></p>



<p><code>~/.aws/credentials</code></p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
&#x5B;default]
aws_access_key_id = AKIAEXAMPLE1
aws_secret_access_key = secret1

&#x5B;MyUbuntuInstance]
aws_access_key_id = AKIAEXAMPLE2
aws_secret_access_key = secret2

</pre></div>


<p><code>~/.aws/config</code></p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
&#x5B;default]
region = ap-southeast-2
output = json

&#x5B;profile MyUbuntuInstance]
region = us-west-2
output = table

</pre></div>


<h2 id="using-multi-profiles">Using Multi-Profiles</h2>



<p>Multi-profiles allow you to easily switch between AWS accounts, users, or environments from a single machine.</p>



<ul><li><strong>View all profiles:</strong><code>aws configure list-profiles</code></li><li><strong>Use a profile:</strong><code>aws s3 ls --profile default aws ec2 describe-instances --profile MyUbuntuProfile</code></li></ul>



<h2 id="further-reading">Further Reading</h2>



<ul><li><a href="https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html">AWS CLI Official Docs &#8211; Installation &amp; Configuration</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://adamjohnston.me/installing-aws-cli/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1250</post-id>	</item>
		<item>
		<title>Installing Desktop Docker</title>
		<link>https://adamjohnston.me/installing-desktop-docker/</link>
					<comments>https://adamjohnston.me/installing-desktop-docker/#respond</comments>
		
		<dc:creator><![CDATA[Adam Craig Johnston]]></dc:creator>
		<pubDate>Sat, 06 Jun 2026 11:33:34 +0000</pubDate>
				<category><![CDATA[Docker]]></category>
		<category><![CDATA[Using WordPress on AWS Lightsail and Docker]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[Wordpress]]></category>
		<guid isPermaLink="false">https://adamjohnston.me/?p=1226</guid>

					<description><![CDATA[Using WordPress on AWS Lightsail and Docker Summary For Local Docker Development. We could use Docker Engine, which is the primary container runtime that runs directly on Linux and Windows servers. It is built for production use because it is lightweight, stable, and can be automated with command-line tools, system services, and CI/CD pipelines. This [&#8230;]]]></description>
										<content:encoded><![CDATA[<h2></h2>
<h2><a href="https://i0.wp.com/adamjohnston.me/wp-content/uploads/2026/05/title_page-e1779623451394.png"><img data-attachment-id="1209" data-permalink="https://adamjohnston.me/using-wordpress-on-aws-lightsail-and-docker/title_page/" data-orig-file="https://i0.wp.com/adamjohnston.me/wp-content/uploads/2026/05/title_page-e1779623451394.png?fit=412%2C618&amp;ssl=1" data-orig-size="412,618" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="title_page" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/adamjohnston.me/wp-content/uploads/2026/05/title_page-e1779623451394.png?fit=200%2C300&amp;ssl=1" data-large-file="https://i0.wp.com/adamjohnston.me/wp-content/uploads/2026/05/title_page-e1779623451394.png?fit=683%2C1024&amp;ssl=1" loading="lazy" class="alignnone size-medium wp-image-1209" src="https://i0.wp.com/adamjohnston.me/wp-content/uploads/2026/05/title_page-e1779623451394-200x300.png?resize=200%2C300" alt="" width="200" height="300" srcset="https://i0.wp.com/adamjohnston.me/wp-content/uploads/2026/05/title_page-e1779623451394.png?resize=200%2C300&amp;ssl=1 200w, https://i0.wp.com/adamjohnston.me/wp-content/uploads/2026/05/title_page-e1779623451394.png?w=412&amp;ssl=1 412w" sizes="(max-width: 200px) 100vw, 200px" data-recalc-dims="1" /></a></h2>
<h2><a href="https://leanpub.com/wordpressawslightsail">Using WordPress on AWS Lightsail and Docker</a></h2>
<h2 id="summary">Summary</h2>
<p>For <strong>Local Docker Development</strong>. We could use Docker Engine, which is the primary container runtime that runs directly on Linux and Windows servers. It is built for production use because it is lightweight, stable, and can be automated with command-line tools, system services, and CI/CD pipelines. This setup provides the performance and control necessary to run applications at scale. On the other hand, Docker Desktop is meant for development on macOS, Windows, and Linux desktops. It includes Docker Engine inside a small virtual machine and adds a graphical dashboard, resource controls, Docker Compose, and optional Kubernetes for local testing. In short, Docker Engine runs containers in production, while Docker Desktop provides the developer with an easy way to build, test, and debug containers locally before deploying them to production.</p>
<p>We will install Docker Desktop for our development work on either Windows, Linux, or macOS.</p>
<h2 id="installing-docker-desktop">Installing Docker Desktop</h2>
<h3 id="windows-11-or-higher">Windows 11 or higher</h3>
<h4 id="1-prerequisites">1. Prerequisites</h4>
<p>Before installing Docker Desktop on Windows:</p>
<ul>
<li><code>Windows Version:</code> You need Windows 11 or a newer version. Docker Desktop uses Hyper-V and WSL2.</li>
<li><code>Hardware Requirements:</code> Your system must support virtualization technology enabled in BIOS. Docker Desktop for Windows requires at least 4GB RAM and recommends SSD storage for optimal performance.</li>
<li><code>Licensing:</code> Docker Desktop is free for individuals, education, and small businesses (&lt; 250 employees or &lt; $10 million revenue). Large enterprises need a paid plan.</li>
</ul>
<h4 id="2-install-wsl2-">2. Install WSL2:</h4>
<ul>
<li>
<ol>
<li>Open PowerShell as an Administrator, then enter the following command.</li>
</ol>
</li>
</ul>
<pre><code class="lang-powwrshell">dism.exe <span class="hljs-regexp">/online /</span>enable-feature <span class="hljs-regexp">/featurename:Microsoft-Windows-Subsystem-Linux /</span>all <span class="hljs-regexp">/norestart</span>
</code></pre>
<p>This enables the core WSL feature on your system.</p>
<ul>
<li>
<ol>
<li>Enable Virtual Machine Platform</li>
</ol>
</li>
</ul>
<p>WSL 2 requires the Virtual Machine Platform feature to run the Linux kernel:</p>
<pre><code>dism.exe <span class="hljs-regexp">/online /</span>enable-feature <span class="hljs-regexp">/featurename:VirtualMachinePlatform /</span>all <span class="hljs-regexp">/norestart</span>
</code></pre>
<ul>
<li>
<ol>
<li>Set WSL 2 as the Default Version</li>
</ol>
</li>
</ul>
<pre><code class="lang-powershell">wsl --install
wsl --<span class="hljs-keyword">set</span>-<span class="hljs-keyword">default</span>-version <span class="hljs-number">2</span>
</code></pre>
<p>If prompted, please reboot your system and launch Ubuntu from the Microsoft Store once to complete the setup.</p>
<h4 id="3-download-and-install-docker-desktop-for-windows-">3. Download and install Docker Desktop for Windows.</h4>
<h5 id="1-install-via-gui-recommended-for-most-users-download-manually">1. Install via GUI (Recommended for Most Users) &#8211; Download Manually</h5>
<p>The simplest and most popular way to install Docker Desktop on Windows 11 or higher is described here.</p>
<p>Go to the official download page:</p>
<p><a href="https://docs.docker.com/desktop/setup/install/windows-install/">Install Docker Desktop on Windows</a></p>
<ul>
<li>
<ol>
<li>Click <code>Download Docker Desktop for Windows</code>.</li>
</ol>
</li>
<li>
<ol>
<li>Save the file (for example, Docker Desktop Installer.exe).</li>
</ol>
</li>
<li>
<ol>
<li>Double-click the installer to start setup.</li>
</ol>
</li>
</ul>
<h5 id="2-curl-with-cmd-or-powershell">2. Curl with CMD or Powershell</h5>
<p>Below is a single CMD command to download and silently install Docker Desktop with the WSL 2 backend. Please run as Administrator.</p>
<pre><code class="lang-cmd">curl -L <span class="hljs-string">"https://desktop.docker.com/win/main/amd64/Docker%%20Desktop%%20Installer.exe"</span> -o <span class="hljs-string">"%TEMP%\DockerDesktopInstaller.exe"</span> &amp;&amp; start /w <span class="hljs-string">""</span> <span class="hljs-string">"%TEMP%\DockerDesktopInstaller.exe"</span> install --<span class="hljs-keyword">accept</span>-license --quiet --backend=wsl-<span class="hljs-number">2</span>
</code></pre>
<h5 id="3-chocolatey">3. Chocolatey</h5>
<p>To install Docker Desktop on Windows using Chocolatey, run the following, Open PowerShell as Administrator and run:</p>
<h6 id="1-check-if-chocolatey-is-installed">1. Check if Chocolatey is installed</h6>
<pre><code class="lang-powershell"><span class="hljs-attribute">choco -v</span>
</code></pre>
<p>If a version number, such as 2.2.2, appears, the process is complete. If not, please install it using the following command:</p>
<pre><code class="lang-powershell"><span class="hljs-keyword">Set</span>-ExecutionPolicy <span class="hljs-comment">Bypass -Scope Process -Force</span>; [<span class="hljs-keyword">System</span>.Net.ServicePointManager]::SecurityProtocol = [<span class="hljs-keyword">System</span>.Net.ServicePointManager]::SecurityProtocol -bor <span class="hljs-number">3072</span>; iex ((New-Object <span class="hljs-keyword">System</span>.Net.WebClient).DownloadString(<span class="hljs-string">'https://community.chocolatey.org/install.ps1'</span>))
</code></pre>
<h6 id="2-install-docker-desktop">2. Install Docker Desktop</h6>
<pre><code class="lang-powershell">choco <span class="hljs-keyword">install</span> docker-desktop -y
</code></pre>
<ul>
<li><code>choco</code> Chocolatey command-line tool.</li>
<li><code>install</code> Checks for a lastest version of the package and installs it.</li>
<li><code>docker-desktop</code> The name of the Docker Desktop package.</li>
<li><code>-y</code> automatically accepts prompts.</li>
</ul>
<h6 id="3-update-docker-desktop">3. Update Docker Desktop</h6>
<pre><code class="lang-powershell"> choco upgrade docker-desktop -y
`
</code></pre>
<ul>
<li><code>choco</code> Chocolatey command-line tool.</li>
<li><code>upgrade</code> Checks for a newer version of the package and installs it.</li>
<li><code>docker-desktop</code> The name of the Docker Desktop package.</li>
<li><code>-y</code> automatically accepts prompts.</li>
</ul>
<h3 id="install-on-macos">Install on macOS</h3>
<h4 id="1-prerequisites">1. Prerequisites</h4>
<p>Before installing Docker Desktop on macOS:</p>
<ul>
<li><code>MacOS Version</code> Requires macOS Monterey (12) or newer.</li>
<li><code>Hardware Requirements</code> You need an Intel or Apple Silicon (M1, M2, M3, or newer) CPU, at least 4 GB of RAM, and 2 GB of free disk space.</li>
<li><code>Virtualization</code> Make sure Rosetta 2 is enabled for Apple Silicon, or Hypervisor Framework is enabled for Intel.</li>
<li><code>Licensing</code> Same free-tier rules apply as Windows.</li>
</ul>
<p>Docker Desktop for macOS can be installed in three ways:</p>
<h5 id="1-install-via-gui-recommended-for-most-users-">1. Install via GUI (Recommended for Most Users)</h5>
<ul>
<li>
<ol>
<li>Download Installer &#8211; Visit the official Docker Desktop for Mac download page <a href="https://docs.docker.com/desktop/setup/install/mac-install/">Install Docker Desktop on Mac</a>.</li>
</ol>
</li>
<li>
<ol>
<li>Choose the correct version and download:
<ul>
<li><a href="https://desktop.docker.com/mac/main/arm64/Docker.dmg?utm_source=docker&amp;utm_medium=webreferral&amp;utm_campaign=docs-driven-download-mac-arm64&amp;_gl=1*lb0mcn*_gcl_au*Nzk1NTkwMTE3LjE3NjIxNjk3ODU.*_ga*MTYzMzE2OTQzNy4xNzYyMTY5Nzg1*_ga_XJWPQMJYHQ*czE3NjIzNDM5NjUkbzMkZzEkdDE3NjIzNDU0NjMkajU5JGwwJGgw">Apple Silicon <code>Docker.dmg</code> Apple Chip</a></li>
<li><a href="https://desktop.docker.com/mac/main/amd64/Docker.dmg?utm_source=docker&amp;utm_medium=webreferral&amp;utm_campaign=docs-driven-download-mac-amd64&amp;_gl=1*hc9vj6*_gcl_au*Nzk1NTkwMTE3LjE3NjIxNjk3ODU.*_ga*MTYzMzE2OTQzNy4xNzYyMTY5Nzg1*_ga_XJWPQMJYHQ*czE3NjIzNDM5NjUkbzMkZzEkdDE3NjIzNDU1NDYkajYwJGwwJGgw">Intel <code>Docker.dmg</code> Intel Chip</a></li>
</ul>
</li>
</ol>
</li>
<li>
<ol>
<li>Open the Installer
<ul>
<li>Double-click the downloaded .dmg file.</li>
<li>Drag the Docker.app icon into the Applications folder.</li>
</ul>
</li>
</ol>
</li>
<li>
<ol>
<li>Launch Docker Desktop
<ul>
<li>Open Applications folder and launch Docker.app.</li>
<li>The first time you open the program, you might be asked to enter your system password.</li>
<li>Wait for the whale docker icon to appear in the macOS status bar.</li>
</ul>
</li>
</ol>
</li>
</ul>
<h5 id="2-using-homebrew-command-line-install-homebrew-https-brew-sh-">2. Using Homebrew (Command Line Install) <a href="https://brew.sh/">Homebrew</a></h5>
<p>Homebrew is a package manager for macOS that simplifies installing applications from the command line.</p>
<ul>
<li>
<ol>
<li>Open the Terminal App, in Terminal run:</li>
</ol>
</li>
</ul>
<pre><code class="lang-bash">/<span class="hljs-keyword">bin/bash </span>-c <span class="hljs-string">"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"</span>
</code></pre>
<ul>
<li>
<ol>
<li>Once installed, verify:</li>
</ol>
</li>
</ul>
<pre><code class="lang-bash">brew <span class="hljs-comment">--version</span>
</code></pre>
<ul>
<li>
<ol>
<li>Install Docker Desktop via Homebrew</li>
</ol>
</li>
</ul>
<p>Homebrew downloads and installs the latest version of Docker Desktop that works with your Mac�s architecture, whether it is Intel or Apple Silicon.</p>
<pre><code class="lang-bash"><span class="hljs-keyword">brew </span><span class="hljs-keyword">install </span>--cask docker
</code></pre>
<ul>
<li>
<ol>
<li>Once the installation is complete, open Docker Desktop. Wait until you see the whale Docker icon in the macOS status bar.</li>
</ol>
</li>
</ul>
<pre><code class="lang-bash"><span class="hljs-keyword">open</span> /Applications/Docker.<span class="hljs-keyword">app</span>
</code></pre>
<h5 id="3-using-mac-app-store-apple-silicon-only-">3. Using Mac App Store (Apple Silicon only)</h5>
<ul>
<li>
<ol>
<li>Open the Mac App Store</li>
</ol>
</li>
<li>
<ol>
<li>In the top-left corner of the App Store window, click the Search bar.</li>
</ol>
</li>
<li>
<ol>
<li>Type Docker Desktop and press Return.</li>
</ol>
</li>
<li>
<ol>
<li>You should see the official app listed as Docker Desktop Developer Tools by Docker Inc.</li>
</ol>
</li>
<li>
<ol>
<li>macOS will automatically download and install Docker Desktop in your Applications folder. Please wait until the download finishes.</li>
</ol>
</li>
<li>
<ol>
<li>Once the installation is complete, open Docker Desktop. Wait until you see the whale Docker icon in the macOS status bar.</li>
</ol>
</li>
</ul>
<pre><code class="lang-bash"><span class="hljs-keyword">open</span> /Applications/Docker.<span class="hljs-keyword">app</span>
</code></pre>
<h3 id="install-on-linux-ubuntu-24-04-">Install on Linux (Ubuntu 24.04)</h3>
<ul>
<li>
<ol>
<li>Add Official Docker Repository</li>
</ol>
</li>
</ul>
<p>Before you install Docker Desktop, you need Docker’s CLI and daemon packages to be available through its official repositories</p>
<p>Open a terminal (Ctrl+Alt+T) and run the following:</p>
<pre><code class="lang-bash">sudo apt <span class="hljs-keyword">update</span>
sudo apt install apt-transport-https <span class="hljs-keyword">ca</span>-certificates curl gnupg -<span class="hljs-built_in">y</span>

</code>These packages enable HTTPS access to repositories and manage trusted keys.</pre>
<p>Now, import the Docker GPG key and add the official Ubuntu repo:</p>
<pre><code class="lang-bash">sudo apt install apt-transport-https ca-certificates curl gnupg
curl -fsSL <span class="hljs-string">https:</span><span class="hljs-comment">//download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker.gpg</span>
echo <span class="hljs-string">"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu noble stable"</span> | sudo tee <span class="hljs-regexp">/etc/</span>apt<span class="hljs-regexp">/sources.list.d/</span>docker.list &gt; <span class="hljs-regexp">/dev/</span><span class="hljs-literal">null</span>
</code></pre>
<p>Then update your package index:</p>
<pre><code class="lang-bash"><span class="hljs-attribute">sudo apt update</span>
</code></pre>
<ul>
<li>
<ol>
<li>Download the Docker Desktop .deb Package</li>
</ol>
</li>
</ul>
<p>Docker Desktop for Linux comes as a .deb file. To get the latest version, you can use curl</p>
<pre><code class="lang-bash">curl -fsSL -<span class="hljs-keyword">o</span> docker-desktop.<span class="hljs-keyword">deb</span> http<span class="hljs-variable">s:</span>//desktop.docker.<span class="hljs-keyword">com</span>/linux/main/amd64/docker-desktop-latest.<span class="hljs-keyword">deb</span>
</code></pre>
<ul>
<li>
<ol>
<li>Install Docker Desktop</li>
</ol>
</li>
</ul>
<p>After you download the package, use apt to install it. This will make sure all the needed dependencies are installed automatically.</p>
<pre><code class="lang-bash">sudo apt <span class="hljs-keyword">install</span> ./docker-desktop.deb
</code></pre>
<p>This process installs Docker Desktop and its main components, such as:</p>
<pre><code><span class="hljs-comment">    * Docker Engine</span>
<span class="hljs-comment">    * Docker CLI (docker command)</span>
<span class="hljs-comment">    * Docker Compose</span>
<span class="hljs-comment">    * Docker Desktop system service</span>
</code></pre>
<ul>
<li>
<ol>
<li>Enable User Access to Docker</li>
</ol>
</li>
</ul>
<p>If you want to run Docker commands without using sudo, add your user to the docker group. The newgrp command lets you apply your group changes right away, so you do not need to log out first.</p>
<pre><code class="lang-bash">sudo usermod -aG docker $<span class="hljs-keyword">USER</span>
<span class="hljs-title">newgrp</span> docker
`
</code></pre>
<ul>
<li>
<ol>
<li>Launch Docker Desktop</li>
</ol>
</li>
</ul>
<p>Now you can start Docker Desktop with</p>
<pre><code class="lang-bash">systemctl --<span class="hljs-keyword">user</span> <span class="hljs-title">start</span> docker-desktop
`
</code></pre>
<h2 id="verify-docker-desktop-installation">Verify Docker Desktop Installation</h2>
<ul>
<li>
<ol>
<li>Start Docker Desktop</li>
</ol>
</li>
<li><code>Windows:</code> Find &#8220;Docker Desktop&#8221; in the Start Menu and open it. You should then see the Docker whale icon in the system tray.</li>
<li><code>Mac:</code> Open your Applications folder, find &#8220;Docker Desktop,&#8221; and start it. The Docker whale icon will show up in the menu bar.</li>
<li><code>Linux (Ubuntu 24.04):</code> The location and icon for launching Docker Desktop can vary depending on your Linux distribution. Check your distribution’s documentation or search for &#8220;Docker Desktop&#8221; in your application launcher for more information.</li>
<li>
<ol>
<li>Verify Docker Engine and Client</li>
</ol>
</li>
</ul>
<p>Open your terminal, command prompt, then run this command.</p>
<pre><code class="lang-bash">docker <span class="hljs-comment">--version</span>
</code></pre>
<p>This command shows the version of the Docker client and engine, so you can check that Docker is installed and working from your command line.</p>
<ul>
<li>
<ol>
<li>Run a Test Container</li>
</ol>
</li>
</ul>
<p>Execute the &#8220;hello-world&#8221; container to verify that Docker can pull images, create and run containers, then run this command.</p>
<pre><code class="lang-bash">docker <span class="hljs-keyword">run</span><span class="bash"> hello-world</span>
</code></pre>
<p>If the process works correctly, you will see a message</p>
<pre><code class="lang-bash">Hello <span class="hljs-keyword">from</span> Docker!
This message shows <span class="hljs-keyword">that</span> your installation appears <span class="hljs-keyword">to</span> be working correctly.
</code></pre>
<p>This confirms that the Docker engine, container networking, image pulling, and runtime execution are functioning correctly.</p>
<h2 id="further-reading">Further Reading</h2>
<ul>
<li><a href="https://learn.microsoft.com/en-us/windows/wsl/install">How to install Linux on Windows with WSL</a></li>
<li><a href="https://chocolatey.org/install">Installing Chocolatey</a></li>
<li><a href="https://docs.docker.com/desktop/setup/install/windows-install/">Install Docker Desktop on Windows</a></li>
<li><a href="https://docs.docker.com/desktop/setup/install/mac-install/">Install Docker Desktop on Mac</a></li>
<li><a href="https://brew.sh/">Homebrew</a></li>
<li><a href="https://docs.docker.com/desktop/setup/install/linux/ubuntu/">Install Docker Desktop on Linux (Ubuntu Example)</a></li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://adamjohnston.me/installing-desktop-docker/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1226</post-id>	</item>
		<item>
		<title>Using WordPress on AWS Lightsail and Docker &#8211; Early Access Edition</title>
		<link>https://adamjohnston.me/using-wordpress-on-aws-lightsail-and-docker/</link>
					<comments>https://adamjohnston.me/using-wordpress-on-aws-lightsail-and-docker/#respond</comments>
		
		<dc:creator><![CDATA[Adam Craig Johnston]]></dc:creator>
		<pubDate>Sun, 24 May 2026 11:52:39 +0000</pubDate>
				<category><![CDATA[AWS]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[Using WordPress on AWS Lightsail and Docker]]></category>
		<category><![CDATA[Wordpress]]></category>
		<guid isPermaLink="false">https://adamjohnston.me/?p=1206</guid>

					<description><![CDATA[Learn how to deploy WordPress on AWS Lightsail using Docker. This book provides a clear, step-by-step guide to setting up the AWS CLI, creating a Lightsail virtual server, installing Docker, and deploying WordPress with Docker Compose.You will also explore how to automate WordPress theme deployments using WP-CLI and CI/CD pipelines. It is designed for developers, [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="has-text-align-left has-text-align-justify has-small-font-size" id="Using-WordPress-on-AWS-Lightsail-and-Docker"><img data-attachment-id="1209" data-permalink="https://adamjohnston.me/using-wordpress-on-aws-lightsail-and-docker/title_page/" data-orig-file="https://i0.wp.com/adamjohnston.me/wp-content/uploads/2026/05/title_page-e1779623451394.png?fit=412%2C618&amp;ssl=1" data-orig-size="412,618" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="title_page" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/adamjohnston.me/wp-content/uploads/2026/05/title_page-e1779623451394.png?fit=200%2C300&amp;ssl=1" data-large-file="https://i0.wp.com/adamjohnston.me/wp-content/uploads/2026/05/title_page-e1779623451394.png?fit=683%2C1024&amp;ssl=1" class="wp-image-1209" style="width: 150px;" src="https://i0.wp.com/adamjohnston.me/wp-content/uploads/2026/05/title_page-e1779623271306.png" alt="" data-recalc-dims="1">      </p>



<p>Learn how to deploy WordPress on AWS Lightsail using Docker.</p>



<p>This book provides a clear, step-by-step guide to setting up the AWS CLI, creating a Lightsail virtual server, installing Docker, and deploying WordPress with Docker Compose.<br>You will also explore how to automate WordPress theme deployments using WP-CLI and CI/CD pipelines.</p>



<p>It is designed for developers, site owners, and technical users who want a simpler, more reliable, and more secure approach to WordPress deployment using DevOps practices.</p>



<p>Early Access Edition</p>



<p><h2><a href="https://leanpub.com/wordpressawslightsail">Using WordPress on AWS Lightsail and Docker</a></h2></p>
]]></content:encoded>
					
					<wfw:commentRss>https://adamjohnston.me/using-wordpress-on-aws-lightsail-and-docker/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1206</post-id>	</item>
		<item>
		<title>NovuscodeLibrary update for Delphi 11</title>
		<link>https://adamjohnston.me/novuscodelibrary-update-for-delphi-11/</link>
					<comments>https://adamjohnston.me/novuscodelibrary-update-for-delphi-11/#respond</comments>
		
		<dc:creator><![CDATA[Adam Craig Johnston]]></dc:creator>
		<pubDate>Mon, 17 Jan 2022 23:46:13 +0000</pubDate>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[NovuscodeLibrary]]></category>
		<guid isPermaLink="false">https://adamjohnston.me/?p=1147</guid>

					<description><![CDATA[An update to the NovuscodeLibrary &#8211; a Delphi library of utility functions and non-visual classes for Delphi 11 is now ready. https://github.com/novuslogic/NovuscodeLibrary Changelog ToDo]]></description>
										<content:encoded><![CDATA[
<p>An update to the NovuscodeLibrary &#8211; a Delphi library of utility functions and non-visual classes for Delphi 11 is now ready.</p>



<p><a href="https://github.com/novuslogic/NovuscodeLibrary">https://github.com/novuslogic/NovuscodeLibrary</a></p>



<p><a rel="noreferrer noopener" href="https://github.com/novuslogic/NovuscodeLibrary/blob/master/Changelog.md" target="_blank">Changelog</a></p>



<p><a rel="noreferrer noopener" href="https://github.com/novuslogic/NovuscodeLibrary/blob/master/ToDo.md" target="_blank">ToDo</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://adamjohnston.me/novuscodelibrary-update-for-delphi-11/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1147</post-id>	</item>
		<item>
		<title>NovuscodeLibrary update for Delphi 10.4</title>
		<link>https://adamjohnston.me/novuscodelibrary-update-for-delphi-10-4/</link>
					<comments>https://adamjohnston.me/novuscodelibrary-update-for-delphi-10-4/#respond</comments>
		
		<dc:creator><![CDATA[Adam Craig Johnston]]></dc:creator>
		<pubDate>Sun, 24 Jan 2021 23:21:25 +0000</pubDate>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[NovuscodeLibrary]]></category>
		<guid isPermaLink="false">https://adamjohnston.me/?p=1108</guid>

					<description><![CDATA[An update to the NovuscodeLibrary &#8211; a Delphi library of utility functions and non-visual classes for Delphi 10.4 is now ready. https://github.com/novuslogic/NovuscodeLibrary The next big goal will be a Documentation Wiki using CodeImatic.codegen &#8211; CodeDoc plugin. Still a work in progress. https://github.com/novuslogic/NovuscodeLibrary/issues/11 Also an upgrade and new samples. https://github.com/novuslogic/NovuscodeLibrary/issues/12 Changelog ToDo]]></description>
										<content:encoded><![CDATA[
<p>An update to the NovuscodeLibrary &#8211; a Delphi library of utility functions and non-visual classes for Delphi 10.4 is now ready.</p>



<p><a href="https://github.com/novuslogic/NovuscodeLibrary">https://github.com/novuslogic/NovuscodeLibrary</a></p>



<p>The next big goal will be a Documentation Wiki using CodeImatic.codegen &#8211; CodeDoc plugin. Still a work in progress.</p>



<p><a href="https://github.com/novuslogic/NovuscodeLibrary/issues/11" target="_blank" rel="noreferrer noopener">https://github.com/novuslogic/NovuscodeLibrary/issues/11</a></p>



<p>Also an upgrade and new samples. </p>



<p><a href="https://github.com/novuslogic/NovuscodeLibrary/issues/12">https://github.com/</a><a href="https://github.com/novuslogic/NovuscodeLibrary/issues/12" target="_blank" rel="noreferrer noopener">novuslogic</a><a href="https://github.com/novuslogic/NovuscodeLibrary/issues/12">/NovuscodeLibrary/issues/12</a></p>



<p><a rel="noreferrer noopener" href="https://github.com/novuslogic/NovuscodeLibrary/blob/master/Changelog.md" target="_blank">Changelog</a></p>



<p><a rel="noreferrer noopener" href="https://github.com/novuslogic/NovuscodeLibrary/blob/master/ToDo.md" target="_blank">ToDo</a></p>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://adamjohnston.me/novuscodelibrary-update-for-delphi-10-4/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1108</post-id>	</item>
		<item>
		<title>and that was 2020 in Review.</title>
		<link>https://adamjohnston.me/and-that-was-2020-in-review/</link>
					<comments>https://adamjohnston.me/and-that-was-2020-in-review/#respond</comments>
		
		<dc:creator><![CDATA[Adam Craig Johnston]]></dc:creator>
		<pubDate>Tue, 29 Dec 2020 11:05:02 +0000</pubDate>
				<category><![CDATA[Stuff]]></category>
		<guid isPermaLink="false">http://adamjohnston.me/?p=1085</guid>

					<description><![CDATA[There has been little content on this blog, due to the human malware sweeping the world. Some people have loss their jobs, or had reduced hours in my case I have been hyper-busy with my main employment. It seems my work still is keeping me away, from my side projects and adding content to this [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>There has been little content on this blog, due to the human malware sweeping the world. </p>



<p>Some people have loss their jobs, or had reduced hours in my case I have been  hyper-busy with my main employment.</p>



<p>It seems my work still is keeping me away,  from my side projects and adding content to this blog. However, some progress has happened.</p>



<p>So my thoughts for the new year &#8230; more time on my side projects with luck.</p>



<p>Say safe and happy new year.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://adamjohnston.me/and-that-was-2020-in-review/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1085</post-id>	</item>
		<item>
		<title>and that was 2019 in Review.</title>
		<link>https://adamjohnston.me/and-that-was-2019-in-review/</link>
					<comments>https://adamjohnston.me/and-that-was-2019-in-review/#respond</comments>
		
		<dc:creator><![CDATA[Adam Craig Johnston]]></dc:creator>
		<pubDate>Mon, 30 Dec 2019 12:00:36 +0000</pubDate>
				<category><![CDATA[AWS]]></category>
		<category><![CDATA[Delphi]]></category>
		<category><![CDATA[DelphiAWSSDK]]></category>
		<category><![CDATA[Lazarus]]></category>
		<category><![CDATA[NovuscodeLibrary]]></category>
		<category><![CDATA[Using WordPress on Amazon Lightsail]]></category>
		<guid isPermaLink="false">https://adamjohnston.me/?p=1020</guid>

					<description><![CDATA[This blog has been very quiet this year, lots of reasons, mostly work-related has kept me away. Some milestones were achieved this year: NovuscodeLibrary NovuscodeLibrary is a Delphi library of utility functions and non-visual classes. New package NovusCodeLibrary_cURL.dpk &#8211; cURL function library New package NovusCodeLibrary_WebUtils.dpk &#8211; Web functions library Now support Delphi 10.3 and packages [&#8230;]]]></description>
										<content:encoded><![CDATA[
<div class="wp-container-1 wp-block-group"><div class="wp-block-group__inner-container">
<p>This blog has been very quiet this year, lots of reasons, mostly work-related has kept me away.</p>
<p>Some milestones were achieved this year:</p>
<h3>NovuscodeLibrary</h3>
<p>NovuscodeLibrary is a Delphi library of utility functions and non-visual classes.</p>
<ul>
<li>New package NovusCodeLibrary_cURL.dpk &#8211; cURL function library</li>
<li>New package NovusCodeLibrary_WebUtils.dpk &#8211; Web functions library</li>
<li>Now support Delphi 10.3 and packages</li>
</ul>
<p><a href="https://github.com/novuslogic/NovuscodeLibrary">https://github.com/novuslogic/NovuscodeLibrary</a></p>
<p><a href="https://github.com/novuslogic/NovuscodeLibrary/blob/master/Changelog.md">Changelog</a></p>
<p><a href="https://github.com/novuslogic/NovuscodeLibrary/blob/master/ToDo.md">ToDo</a></p>
<p>Adding features or fixing bugs to Novuscodelibrary, it’s general done organically. The next feature supported:</p>
<ul>
<li>The Delphi Package Manager Project <a href="https://github.com/DelphiPackageManager/">https://github.com/DelphiPackageManager/</a></li>
</ul>
<h3>CodeImatic</h3>
<p>CodeImatic is a PascalScript based toolchain for building and deployment.</p>
<h4>CodeImatc.build</h4>
<p>CodeImatic.build is a PascalScript based build and deployment engine.</p>
<p><a href="https://github.com/novuslogic/CodeImatic.build">https://github.com/novuslogic/CodeImatic.build</a></p>
<h4>CodeImatc.codegen</h4>
<p>CodeImatic.codegen is a PascalScript template driven source code and static website generator.</p>
<p><a href="https://github.com/novuslogic/CodeImatic.codegen">https://github.com/novuslogic/CodeImatic.codegen</a></p>
<p>CodeImatic &#8211; Multiple features have been added and moving towards  an early beta release next year.</p>
<h3>DelphiAWSSDK</h3>
<p>The Delphi AWS SDK enables Delphi/Pascal developers to easily work with Amazon Web Services.</p>
<p><a href="https://github.com/novuslogic/DelphiAWSSDK" target="_blank" rel="noopener noreferrer">DelphiAWSSDK</a></p>
<p><a href="https://github.com/novuslogic/DelphiAWSSDK/blob/master/Changelog.md">Changelog</a></p>
<p>The next version of DelphiAWSDK v.04 will have a full translation of Amazon DynamoDB <a href="https://aws.amazon.com/dynamodb/">https://aws.amazon.com/dynamodb/ </a>using the new experimental Code-Generation based on CodeImatic.codegen <a href="https://github.com/novuslogic/CodeImatic.codegen">https://github.com/novuslogic/CodeImatic.codegen</a></p>
<h3>Using WordPress on Amazon Lightsail</h3>
<p><a href="https://leanpub.com/wordpressawslightsail/">https://leanpub.com/wordpressawslightsail/</a></p>
<p>I’m develpoing  a new book called &#8220;Using WordPress on Amazon Lightsail&#8221; which will be pushlished early next year, so sign up with the &#8220;Notify Me When This Is Published” button.</p>
<p>Happy New Year.</p>
</div></div>
]]></content:encoded>
					
					<wfw:commentRss>https://adamjohnston.me/and-that-was-2019-in-review/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1020</post-id>	</item>
		<item>
		<title>DelphiAWSSDK v0.3.0</title>
		<link>https://adamjohnston.me/delphiawssdk-v0-3-0/</link>
					<comments>https://adamjohnston.me/delphiawssdk-v0-3-0/#respond</comments>
		
		<dc:creator><![CDATA[Adam Craig Johnston]]></dc:creator>
		<pubDate>Mon, 05 Nov 2018 07:14:00 +0000</pubDate>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[DelphiAWSSDK]]></category>
		<category><![CDATA[Lazarus]]></category>
		<guid isPermaLink="false">https://adamjohnston.me/?p=1005</guid>

					<description><![CDATA[Delphi AWS SDK has new support for Lazarus / fpc 1.8 or higher. https://github.com/novuslogic/DelphiAWSSDK/releases/tag/v0.3.0 Summary of updates New Lazarus CreateTable1 DynamoDB Sample Refactored Core for Lazarus / fpc 1.8 or higher Moved Samples Samples\DynamoDB to Samples\DynamoDB\Delphi]]></description>
										<content:encoded><![CDATA[<p dir="auto">Delphi AWS SDK has new support for Lazarus / fpc 1.8 or higher.</p>
<p dir="auto"><a href="https://github.com/novuslogic/DelphiAWSSDK/releases/tag/v0.3.0" target="_blank" rel="noopener noreferrer">https://github.com/novuslogic/DelphiAWSSDK/releases/tag/v0.3.0</a></p>
<p>Summary of updates</p>
<ul>
<li>New Lazarus CreateTable1 DynamoDB Sample</li>
<li>Refactored Core for Lazarus / fpc 1.8 or higher</li>
<li>Moved Samples Samples\DynamoDB to Samples\DynamoDB\Delphi</li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://adamjohnston.me/delphiawssdk-v0-3-0/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1005</post-id>	</item>
		<item>
		<title>DelphiAWSSDK v0.2.0</title>
		<link>https://adamjohnston.me/delphiawssdk_v0-2-0/</link>
					<comments>https://adamjohnston.me/delphiawssdk_v0-2-0/#respond</comments>
		
		<dc:creator><![CDATA[Adam Craig Johnston]]></dc:creator>
		<pubDate>Mon, 03 Sep 2018 14:05:01 +0000</pubDate>
				<category><![CDATA[AWS]]></category>
		<category><![CDATA[Delphi]]></category>
		<category><![CDATA[DelphiAWSSDK]]></category>
		<guid isPermaLink="false">https://adamjohnston.me/?p=989</guid>

					<description><![CDATA[The Delphi AWS SDK enables Delphi/Pascal developers to easily work with Amazon Web Services. https://github.com/novuslogic/DelphiAWSSDK/releases/tag/v0.2.0 Summary of updates Updated support Delphi XE to Delphi X10.2 Tested support for Windows 32/64Bit, MacOSX 32Bit New TAmazonIndyRESTClient and TAmazonDelphiRESTClient classes Updated TAmazonSignatureV4 class to be less reliant on Indy,  allowing for cross-platform development. THashSHA2 supported in unit Amazon.Utils for Delphi XE8 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p dir="ltr">The Delphi AWS SDK enables Delphi/Pascal developers to easily work with Amazon Web Services.</p>
<p dir="ltr"><a href="https://github.com/novuslogic/DelphiAWSSDK/releases/tag/v0.2.0">https://github.com/novuslogic/DelphiAWSSDK/releases/tag/v0.2.0</a></p>
<p dir="ltr">Summary of updates</p>
<ul>
<li>Updated support Delphi XE to Delphi X10.2</li>
<li>Tested support for Windows 32/64Bit, MacOSX 32Bit</li>
<li>New TAmazonIndyRESTClient and TAmazonDelphiRESTClient classes</li>
<li>Updated TAmazonSignatureV4 class to be less reliant on Indy,  allowing for cross-platform development.</li>
<li>THashSHA2 supported in unit Amazon.Utils for Delphi XE8 and up.</li>
</ul>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://adamjohnston.me/delphiawssdk_v0-2-0/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">989</post-id>	</item>
	</channel>
</rss>
