-
-{% assign entries_layout = page.entries_layout | default: 'grid' %}
-{% for i in (1..categories_max) reversed %}
- {% for category in site.categories %}
- {% if category[1].size == i %}
-
-
{{ category[0] }}
-
- {% for post in category.last %}
- {% include_cached archive-single.html post=post type=entries_layout %}
- {% endfor %}
-
- {% for post in site.categories.Articles limit:6 %}
+ {% for post in site.categories.Python limit:3 %}
{% include_cached archive-single.html post=post type=entries_layout %}
{% endfor %}
- {% for post in site.categories.Tutorials %}
- {% include_cached archive-single.html post=post type="grid" heading="heading" %}
- {% endfor %}
-
-
-
diff --git a/blog/_plugins/generate_categories.rb b/blog/_plugins/generate_categories.rb
new file mode 100644
index 000000000..cea8f9539
--- /dev/null
+++ b/blog/_plugins/generate_categories.rb
@@ -0,0 +1,30 @@
+module Jekyll
+ class CategoryPageGenerator < Generator
+ safe true
+
+ def generate(site)
+ if site.layouts.key? 'category'
+ site.data['categories'].each do |category|
+ site.pages << CategoryPage.new(site, site.source, category['slug'], category['name'], category['title'])
+ end
+ end
+ end
+ end
+
+ class CategoryPage < Page
+ def initialize(site, base, slug, name, title)
+ @site = site
+ @base = base
+ @dir = "categories/#{slug}"
+ @name = 'index.html'
+
+ self.process(@name)
+ self.read_yaml(File.join(base, '_layouts'), 'category.html')
+ self.data['title'] = title
+ self.data['slug'] = slug
+ self.data['permalink'] = "/categories/#{slug}/"
+ self.data['category_name'] = name
+ end
+ end
+ end
+
\ No newline at end of file
diff --git a/blog/_posts/2020-09-10-better-builds.md b/blog/_posts/2020-09-10-better-builds.md
index eb4b43e9d..6b153caa8 100644
--- a/blog/_posts/2020-09-10-better-builds.md
+++ b/blog/_posts/2020-09-10-better-builds.md
@@ -2,8 +2,6 @@
title: Can We Build Better?
toc: true
author: Adam
-categories:
- - Tutorials
internal-links:
- scala build
- scala builds
@@ -13,6 +11,8 @@ topcta: false
excerpt: |
Learn how to solve the problem of reproducible builds with Earthly, an open-source tool that encapsulates your build process in a Docker-like syntax. With Earthly, you can eliminate the pain of slow feedback and easily reproduce build failures, ensuring that your builds are not affected by environmental issues.
last_modified_at: 2023-07-14
+categories:
+ - Build
---
Have you ever had a test fail in the build but not locally? I have. Have you ever then burnt half a day pushing small changes and waiting for your build to get queued so that you could see if you had isolated the breaking change? Well I have, and I find the slow feedback process to be painful and I'd like to propose a solution.
diff --git a/blog/_posts/2020-10-08-the-world-deserves-better-builds.md b/blog/_posts/2020-10-08-the-world-deserves-better-builds.md
index 86493a24e..4b4913199 100644
--- a/blog/_posts/2020-10-08-the-world-deserves-better-builds.md
+++ b/blog/_posts/2020-10-08-the-world-deserves-better-builds.md
@@ -2,8 +2,6 @@
title: The world deserves better builds
featured: true
author: Vlad
-categories:
- - News
topic: earthly
funnel: 3
topcta: false
@@ -11,6 +9,8 @@ excerpt: |
Learn how Earthly is revolutionizing the build process with its self-contained, reproducible, and parallel approach. Say goodbye to slow, brittle builds and hello to a more efficient and user-friendly development experience.
topcta: false
last_modified_at: 2023-07-14
+categories:
+ - Build
---
Hello, developers of planet Earth! Earlier this year, we at Earthly embarked on a journey to bring better builds to the world. We started with a deep belief that builds should be self-contained, reproducible, portable, and parallel. In addition, we think build tools should be friendly, accessible, and down to earth - hence our name.
diff --git a/blog/_posts/2020-10-22-building-on-kubernetes-ingress.md b/blog/_posts/2020-10-22-building-on-kubernetes-ingress.md
index dce268c00..d31f24614 100644
--- a/blog/_posts/2020-10-22-building-on-kubernetes-ingress.md
+++ b/blog/_posts/2020-10-22-building-on-kubernetes-ingress.md
@@ -1,7 +1,7 @@
---
title: 'Building on Kubernetes: Ingress'
categories:
- - Articles
+ - Orchestration
tags:
- Interview
author: Corey
diff --git a/blog/_posts/2020-11-27-youre-using-docker-compose-wrong.md b/blog/_posts/2020-11-27-youre-using-docker-compose-wrong.md
index 30be69068..38ce9eea8 100644
--- a/blog/_posts/2020-11-27-youre-using-docker-compose-wrong.md
+++ b/blog/_posts/2020-11-27-youre-using-docker-compose-wrong.md
@@ -1,7 +1,5 @@
---
title: You're using docker-compose wrong
-categories:
- - Articles
author: Vlad
sidebar:
nav: "docker"
@@ -11,6 +9,8 @@ excerpt: |
Learn how to avoid common mistakes when using docker-compose for integration testing and development environments. Discover the cardinal sins to avoid and best practices to follow for a smoother Docker experience.
last_modified_at: 2023-07-14
topcta: false
+categories:
+ - Containers
---
Tell me if this sounds familiar? You were introduced to docker-compose either by choice or by force. You've been using it for a while, but you find it clunky. I'm here to tell you, you are probably using it wrong.
diff --git a/blog/_posts/2020-12-11-encrypting-data-with-ssh-keys-and-golang.md b/blog/_posts/2020-12-11-encrypting-data-with-ssh-keys-and-golang.md
index f0db2a404..be4d11d52 100644
--- a/blog/_posts/2020-12-11-encrypting-data-with-ssh-keys-and-golang.md
+++ b/blog/_posts/2020-12-11-encrypting-data-with-ssh-keys-and-golang.md
@@ -1,7 +1,7 @@
---
title: Encrypting Data With SSH Keys and Golang
categories:
- - Tutorials
+ - Golang
author: Alex
internal-links:
- ssh
diff --git a/blog/_posts/2021-01-15-top-3-resources-to-learn-golang-in-2021.md b/blog/_posts/2021-01-15-top-3-resources-to-learn-golang-in-2021.md
index 59d18bfe0..0c83ef3db 100644
--- a/blog/_posts/2021-01-15-top-3-resources-to-learn-golang-in-2021.md
+++ b/blog/_posts/2021-01-15-top-3-resources-to-learn-golang-in-2021.md
@@ -1,7 +1,7 @@
---
title: Top 3 Resources For Learning GoLang
categories:
- - Articles
+ - Golang
author: Adam
internal-links:
- golang
diff --git a/blog/_posts/2021-01-20-top-5-scala-blogs.md b/blog/_posts/2021-01-20-top-5-scala-blogs.md
index 4ebc1b578..180cd932d 100644
--- a/blog/_posts/2021-01-20-top-5-scala-blogs.md
+++ b/blog/_posts/2021-01-20-top-5-scala-blogs.md
@@ -1,7 +1,7 @@
---
title: 5 Blogs for Scala's Birthday
categories:
- - Articles
+ - Tutorials
author: Adam
internal-links:
- scala
diff --git a/blog/_posts/2021-02-11-mitmproxy.md b/blog/_posts/2021-02-11-mitmproxy.md
index 17371313c..fce524162 100644
--- a/blog/_posts/2021-02-11-mitmproxy.md
+++ b/blog/_posts/2021-02-11-mitmproxy.md
@@ -1,7 +1,5 @@
---
title: How to Man in the Middle HTTPS Using mitmproxy
-categories:
- - Tutorials
toc: true
author: Adam
excerpt: |
@@ -11,6 +9,8 @@ internal-links:
- proxy
topic: cli
last_modified_at: 2023-07-11
+categories:
+ - cli
---
**This article is about mitmproxy usage. If mitmproxy is your go-to for HTTP troubleshooting, Earthly can be your ally for reproducible builds. [Check it out](https://cloud.earthly.dev/login/).**
diff --git a/blog/_posts/2021-02-19-what-is-buildkit-and-what-can-i-do-with-it.md b/blog/_posts/2021-02-19-what-is-buildkit-and-what-can-i-do-with-it.md
index 495e6d3cf..f1b219cfb 100644
--- a/blog/_posts/2021-02-19-what-is-buildkit-and-what-can-i-do-with-it.md
+++ b/blog/_posts/2021-02-19-what-is-buildkit-and-what-can-i-do-with-it.md
@@ -1,7 +1,5 @@
---
title: What is Buildkit?
-categories:
- - Tutorials
toc: true
author: Adam
sidebar:
@@ -15,6 +13,8 @@ internal-links:
excerpt: |
Learn how to use BuildKit, an open-source project that turns Dockerfiles into Docker images. Discover its history, how to install it, and how to build images using BuildKit directly. Explore different output types and gain insights into the inner workings of BuildKit.
last_modified_at: 2023-07-19
+categories:
+ - Containers
---
**The article explores BuildKit's capabilities. Earthly enhances BuildKit with additional build automation and optimization. [Check it out](https://cloud.earthly.dev/login/).**
diff --git a/blog/_posts/2021-03-05-how-to-setup-and-use-amazons-elastic-container-registry.md b/blog/_posts/2021-03-05-how-to-setup-and-use-amazons-elastic-container-registry.md
index ec1fa8271..e7e467715 100644
--- a/blog/_posts/2021-03-05-how-to-setup-and-use-amazons-elastic-container-registry.md
+++ b/blog/_posts/2021-03-05-how-to-setup-and-use-amazons-elastic-container-registry.md
@@ -1,8 +1,6 @@
---
title: How to Setup and Use Amazon's Elastic Container Registry
toc: true
-categories:
- - Tutorials
author: Vivek Sonar
sidebar:
nav: "docker"
@@ -15,6 +13,8 @@ internal-links:
excerpt: |
Learn how to setup and use Amazon's Elastic Container Registry (ECR) to store and manage your container images. Discover the benefits of using ECR over Docker Hub and how it integrates with other AWS services like IAM, EKS, and ECS.
last_modified_at: 2023-07-14
+categories:
+ - Cloud
---
**This article compares different container registries. Earthly enhances CI workflows with reproducible builds for users integrating with ECR. [Check it out](https://cloud.earthly.dev/login/).**
diff --git a/blog/_posts/2021-03-10-understanding-docker-logging-and-log-files.md b/blog/_posts/2021-03-10-understanding-docker-logging-and-log-files.md
index cd1485c7d..b47df0f64 100644
--- a/blog/_posts/2021-03-10-understanding-docker-logging-and-log-files.md
+++ b/blog/_posts/2021-03-10-understanding-docker-logging-and-log-files.md
@@ -1,8 +1,6 @@
---
title: Understanding Docker Logging and Log Files
toc: true
-categories:
- - Tutorials
tags:
- docker
- tutorials
@@ -21,6 +19,8 @@ internal-links:
excerpt: |
Learn how to effectively manage Docker logging and log files to improve the performance and reliability of your containerized applications. Discover different logging strategies, Docker logging commands, and the various logging drivers supported by Docker.
last_modified_at: 2023-07-14
+categories:
+ - Containers
---
**This article is about Docker logging management. Docker users will appreciate how Earthly simplifies and accelerates their CI builds. [Check it out](https://cloud.earthly.dev/login/).**
diff --git a/blog/_posts/2021-03-11-build-your-own-ngrok-clone.md b/blog/_posts/2021-03-11-build-your-own-ngrok-clone.md
index e1072a1ad..0c37b5574 100644
--- a/blog/_posts/2021-03-11-build-your-own-ngrok-clone.md
+++ b/blog/_posts/2021-03-11-build-your-own-ngrok-clone.md
@@ -1,7 +1,5 @@
---
title: Build Your Own Ngrok Clone With AWS
-categories:
- - Tutorials
toc: true
author: Corey
excerpt: |
@@ -15,6 +13,8 @@ internal-links:
topic: cli
funnel: 2
last_modified_at: 2023-07-14
+categories:
+ - IaC
---
**Explore DIY ngrok alternatives in this article. Earthly provides a route to efficient, reproducible builds. [Learn how](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2021-03-17-compiling-containers-dockerfiles-llvm-and-buildkit.md b/blog/_posts/2021-03-17-compiling-containers-dockerfiles-llvm-and-buildkit.md
index 1b8e915c2..7c75ac21e 100644
--- a/blog/_posts/2021-03-17-compiling-containers-dockerfiles-llvm-and-buildkit.md
+++ b/blog/_posts/2021-03-17-compiling-containers-dockerfiles-llvm-and-buildkit.md
@@ -2,8 +2,6 @@
title: Compiling Containers - Dockerfiles, LLVM, and BuildKit
# header:
# tagline: "Dockerfiles, LLVM and BuildKit"
-categories:
- - Tutorials
toc: true
excerpt: |
Learn how containers are compiled using Dockerfiles, LLVM, and BuildKit in this tutorial. Explore the phases involved in creating a container image, the similarities between compiling code and building images, and how to programmatically generate container images using BuildKit and Go. Discover the concept of intermediate representations and see the development of a custom frontend for Docker build using the Ickfile format.
@@ -15,6 +13,8 @@ internal-links:
- docker build
- machine code
last_modified_at: 2023-07-14
+categories:
+ - Build
---
**Explore the nuances of building Docker images in this article. Earthly can upgrade your build process with advanced caching of docker layers and parallel execution. [Learn how](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2021-04-01-understanding-bash.md b/blog/_posts/2021-04-01-understanding-bash.md
index d35427d8e..2238a08b7 100644
--- a/blog/_posts/2021-04-01-understanding-bash.md
+++ b/blog/_posts/2021-04-01-understanding-bash.md
@@ -1,7 +1,5 @@
---
title: 'Understanding Bash'
-categories:
- - Tutorials
toc: true
author: Kasper Siig
sidebar:
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
Learn the ins and outs of bash scripting and how it can make your life easier. From understanding shebangs to error handling and variable naming, this article covers all the essentials for writing efficient and effective bash scripts.
last_modified_at: 2023-07-19
+categories:
+ - cli
---
**In this article, you'll learn the best practices for bash scripting. If you enjoy crafting efficient bash scripts, Earthly's containerized build approach can streamline your build processes. [Discover how Earthly can assist you](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2021-04-12-slow-performance-in-jenkins.md b/blog/_posts/2021-04-12-slow-performance-in-jenkins.md
index 362c7526c..8e4ae1ce5 100644
--- a/blog/_posts/2021-04-12-slow-performance-in-jenkins.md
+++ b/blog/_posts/2021-04-12-slow-performance-in-jenkins.md
@@ -1,7 +1,5 @@
---
title: 'Addressing Slow Performance in Jenkins'
-categories:
- - Tutorials
toc: true
author: Milan Bhardwaj
internal-links:
@@ -10,6 +8,8 @@ topic: ci
excerpt: |
Learn how to address slow performance in Jenkins and significantly improve the performance of your continuous integration workflow. This guide provides tips and strategies for overcoming common Jenkins performance issues without necessarily upgrading your hardware.
last_modified_at: 2023-07-14
+categories:
+ - Build
---
**In this article, we dive into optimizing Jenkins for better performance. If Jenkins slowdowns frustrate you, Earthly can boost your CI build speed and help you conquer those stubborn performance issues. [Learn more](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2021-05-05-docker-networking.md b/blog/_posts/2021-05-05-docker-networking.md
index e8b29e6ed..f7287ee1e 100644
--- a/blog/_posts/2021-05-05-docker-networking.md
+++ b/blog/_posts/2021-05-05-docker-networking.md
@@ -1,7 +1,5 @@
---
title: 'Understanding Docker Networking'
-categories:
- - Tutorials
toc: true
author: Ashish Choudhary
sidebar:
@@ -14,6 +12,8 @@ topic: docker
excerpt: |
This article provides a comprehensive guide to understanding Docker networking. It covers the basics of Docker networking, including different network drivers and their use cases. The article also explores advanced concepts like overlay and macvlan networks, as well as how to publish container ports and configure DNS. Whether you're new to Docker or looking to enhance your networking knowledge, this article is a must-read.
last_modified_at: 2023-07-11
+categories:
+ - Containers
---
**This article explores Docker networking. If you love Docker, Earthly can simplify your container build process. [Discover how](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2021-05-11-monorepo-with-bazel.md b/blog/_posts/2021-05-11-monorepo-with-bazel.md
index d30d94e87..9fcc753cc 100644
--- a/blog/_posts/2021-05-11-monorepo-with-bazel.md
+++ b/blog/_posts/2021-05-11-monorepo-with-bazel.md
@@ -1,7 +1,5 @@
---
title: 'Building a Monorepo with Bazel'
-categories:
- - Tutorials
toc: true
author: Siddhant Varma
last_modified_at: 2023-06-29
@@ -15,6 +13,8 @@ internal-links:
excerpt: |
Learn how to build a monorepo with Bazel, an open-source build tool developed by Google. Discover the benefits of using a monorepo and how Bazel simplifies the process of building and compiling code in multiple languages and platforms.
last_modified_at: 2023-07-11
+categories:
+ - Build
---
**In this article, we delve into the powerful combination of monorepos and Bazel. Earthly streamlines your monorepo management by providing containerized, reproducible builds. [Learn how](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2021-05-12-dos-gaming-in-docker.md b/blog/_posts/2021-05-12-dos-gaming-in-docker.md
index d51e6565e..5f867f559 100644
--- a/blog/_posts/2021-05-12-dos-gaming-in-docker.md
+++ b/blog/_posts/2021-05-12-dos-gaming-in-docker.md
@@ -1,8 +1,6 @@
---
#header:
title: DOS Gaming In Docker
-categories:
-- Tutorials
author: Corey
excerpt: |
Learn how to play classic DOS games in your web browser using Docker! This tutorial shows you how to create a Docker container with JS-DOS and a shareware game, allowing you to relive the nostalgia of the DOS era.
@@ -15,6 +13,8 @@ topic: docker
funnel: 2
topcta: false
last_modified_at: 2023-07-14
+categories:
+ - Containers
---
diff --git a/blog/_posts/2021-05-17-continuous-integration.md b/blog/_posts/2021-05-17-continuous-integration.md
index a084811e9..c6586e204 100644
--- a/blog/_posts/2021-05-17-continuous-integration.md
+++ b/blog/_posts/2021-05-17-continuous-integration.md
@@ -1,7 +1,7 @@
---
title: "What Is Continuous Integration?"
categories:
- - Articles
+ - Build
toc: true
author: Deborah Ruck
internal-links:
diff --git a/blog/_posts/2021-05-20-docker-multistage.md b/blog/_posts/2021-05-20-docker-multistage.md
index 9ee1a8a35..95ab3191b 100644
--- a/blog/_posts/2021-05-20-docker-multistage.md
+++ b/blog/_posts/2021-05-20-docker-multistage.md
@@ -1,7 +1,5 @@
---
title: "Understanding Docker Multistage Builds"
-categories:
- - Tutorials
toc: true
author: Lukonde Mwila
sidebar:
@@ -16,6 +14,8 @@ funnel: 2
excerpt: |
Learn how to optimize your Docker images and create production-grade images using multistage builds. Discover the core concepts of multistage builds, the challenges they present, and a better way to do multi-stage builds with Earthly.
last_modified_at: 2023-07-14
+categories:
+ - Containers
---
**Explore the advantages of Docker multistage builds in this article. Earthly enhances your build process through efficient layer caching and parallel execution. It's an improved Docker Multi-stage build. [Learn more](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2021-05-21-backward-and-forward-compatibility.md b/blog/_posts/2021-05-21-backward-and-forward-compatibility.md
index 0394725f5..24b6f9f20 100644
--- a/blog/_posts/2021-05-21-backward-and-forward-compatibility.md
+++ b/blog/_posts/2021-05-21-backward-and-forward-compatibility.md
@@ -1,7 +1,7 @@
---
title: "Protocol Buffers Best Practices for Backward and Forward Compatibility"
categories:
- - Tutorials
+ - Golang
toc: true
author: John Gramila
internal-links:
diff --git a/blog/_posts/2021-05-26-jruby.md b/blog/_posts/2021-05-26-jruby.md
index bbd29c541..976c96621 100644
--- a/blog/_posts/2021-05-26-jruby.md
+++ b/blog/_posts/2021-05-26-jruby.md
@@ -1,7 +1,7 @@
---
title: "Why is JRuby Slow?"
categories:
- - Tutorial
+ - Tutorials
toc: true
author: Adam
excerpt: |
diff --git a/blog/_posts/2021-06-01-achieving-repeatability.md b/blog/_posts/2021-06-01-achieving-repeatability.md
index 75ed0633f..f27962ca2 100644
--- a/blog/_posts/2021-06-01-achieving-repeatability.md
+++ b/blog/_posts/2021-06-01-achieving-repeatability.md
@@ -1,7 +1,5 @@
---
title: "Achieving Repeatability in Continuous Integration"
-categories:
- - Tutorials
toc: true
author: Allan MacGregor
internal-links:
@@ -11,6 +9,8 @@ internal-links:
excerpt: |
Learn how to achieve repeatability in your continuous integration pipeline and improve the reliability, reproducibility, reusability, and speed of your builds. Discover best practices for test automation, adopting continuous integration, and fixing broken builds immediately.
last_modified_at: 2023-07-19
+categories:
+ - Build
---
**This article delves into Continuous Integration practices. If you're committed to improving your CI workflows, Earthly can help. [Discover Earthly's role](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2021-06-01-creating-and-hosting-your-own-deb-packages-and-apt-repo.md b/blog/_posts/2021-06-01-creating-and-hosting-your-own-deb-packages-and-apt-repo.md
index c87c921aa..5e59c327e 100644
--- a/blog/_posts/2021-06-01-creating-and-hosting-your-own-deb-packages-and-apt-repo.md
+++ b/blog/_posts/2021-06-01-creating-and-hosting-your-own-deb-packages-and-apt-repo.md
@@ -1,7 +1,7 @@
---
title: "Creating and hosting your own deb packages and apt repo"
categories:
- - Tutorials
+ - Build
toc: true
author: Alex
internal-links:
diff --git a/blog/_posts/2021-06-08-autoconf.md b/blog/_posts/2021-06-08-autoconf.md
index 76750a3a2..d26c5adba 100644
--- a/blog/_posts/2021-06-08-autoconf.md
+++ b/blog/_posts/2021-06-08-autoconf.md
@@ -1,7 +1,5 @@
---
title: "Using Autotools to Configure, Make, and Install a Program"
-categories:
- - Tutorial
toc: true
author: Kasper Siig
sidebar:
@@ -16,6 +14,8 @@ topic: make
excerpt: |
Learn how to use Autotools to package and ship your application with ease. Autotools is a powerful and versatile tool that can make your application more portable and accessible on different systems.
last_modified_at: 2023-07-11
+categories:
+ - Make
---
**Explore the intricacies of Autotools for build automation. Already know Autotools? Discover how Earthly can upgrade your builds with containerized consistency and parallel execution. [Try Earthly now](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2021-06-10-deployment-strategies.md b/blog/_posts/2021-06-10-deployment-strategies.md
index 146026b3d..8b5c1a116 100644
--- a/blog/_posts/2021-06-10-deployment-strategies.md
+++ b/blog/_posts/2021-06-10-deployment-strategies.md
@@ -1,7 +1,7 @@
---
title: "Deployment Strategies"
categories:
- - Tutorial
+ - Tutorials
author: Adam
toc: true
sidebar:
diff --git a/blog/_posts/2021-06-16-git-branching.md b/blog/_posts/2021-06-16-git-branching.md
index 98bc52406..cc1f842da 100644
--- a/blog/_posts/2021-06-16-git-branching.md
+++ b/blog/_posts/2021-06-16-git-branching.md
@@ -1,7 +1,5 @@
---
title: "Git Branching Strategies and The Greek Revival"
-categories:
- - Tutorials
author: Adam
internal-links:
- git merging
@@ -13,6 +11,8 @@ bottomcta: false
excerpt: |
Learn about the evolution of git branching strategies and how they have changed over time. Follow the story of Ashley, a software developer, as she navigates different branching models and discovers the benefits and challenges of each approach. Gain insights into the importance of continuous integration, deployment, and the impact of cloud-based workflows on branching strategies.
last_modified_at: 2023-07-19
+categories:
+ - cli
---
**This article explores git branching strategies. Earthly helps you build faster. [Learn how](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2021-06-24-creating-and-hosting-your-own-rpm-packages-and-yum-repo.md b/blog/_posts/2021-06-24-creating-and-hosting-your-own-rpm-packages-and-yum-repo.md
index a8423ddbf..0495d45c8 100644
--- a/blog/_posts/2021-06-24-creating-and-hosting-your-own-rpm-packages-and-yum-repo.md
+++ b/blog/_posts/2021-06-24-creating-and-hosting-your-own-rpm-packages-and-yum-repo.md
@@ -1,7 +1,7 @@
---
title: "Creating and hosting your own rpm packages and yum repo"
categories:
- - Tutorials
+ - Build
toc: true
author: Alex
bottomcta: false
diff --git a/blog/_posts/2021-06-25-markdown-lint.md b/blog/_posts/2021-06-25-markdown-lint.md
index 5f6fa11fd..be2c30a48 100644
--- a/blog/_posts/2021-06-25-markdown-lint.md
+++ b/blog/_posts/2021-06-25-markdown-lint.md
@@ -1,7 +1,5 @@
---
title: "Linting Markdown And Documentation"
-categories:
- - Tutorials
author: Adam
internal-links:
- vale
@@ -12,6 +10,8 @@ internal-links:
excerpt: |
Learn how to ensure the quality of your markdown files and documentation with linting tools. Discover various tools like markdownlint, mdspell, alex, write-good, textlint, proselint, and Vale that can help you catch formatting errors, spelling mistakes, grammar errors, and improve writing clarity. Find the right tool for your needs and automate their usage to maintain high-quality documentation.
last_modified_at: 2023-07-19
+categories:
+ - Writing
---
**This article introduces prose linting tools. If you value precise software documentation, Earthly can integrate with Vale and markdownlint to automate and improve your CI builds. [Explore more](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2021-07-06-g++-makefile.md b/blog/_posts/2021-07-06-g++-makefile.md
index 092c997e7..fe8152470 100644
--- a/blog/_posts/2021-07-06-g++-makefile.md
+++ b/blog/_posts/2021-07-06-g++-makefile.md
@@ -1,7 +1,5 @@
---
title: "Creating a G++ Makefile"
-categories:
- - Tutorials
toc: true
author: Aniket Bhattacharyea
sidebar:
@@ -15,6 +13,8 @@ last_modified_at: 2023-04-17
excerpt: |
Learn how to compile C++ programs with the g++ compiler provided by GCC and automate the compilation process using Make. This tutorial covers the installation of GCC on Linux, Mac, and Windows, as well as the compilation process and the use of the make utility to simplify complex compilation tasks.
last_modified_at: 2023-07-11
+categories:
+ - Make
---
**In this article, we'll dive into GCC and Make. If you know the challenges of compiling C++ with Makefiles, Earthly provides a containerized approach to streamline and speed up your builds. [Explore Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2021-07-06-python-concatenate-lists.md b/blog/_posts/2021-07-06-python-concatenate-lists.md
index a3ca59211..96381cdd0 100644
--- a/blog/_posts/2021-07-06-python-concatenate-lists.md
+++ b/blog/_posts/2021-07-06-python-concatenate-lists.md
@@ -1,8 +1,6 @@
---
title: "Python Concatenate Lists"
description: "There are several ways to join lists in Python. In almost all situations using list1 + list2 is the way you want to concatenate lists."
-categories:
- - Tutorials
toc: true
author: Adam
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
Learn how to concatenate lists in Python using different methods, such as the `+` operator and the `extend()` function. Discover the best practices for combining lists and optimize performance in various scenarios.
last_modified_at: 2023-07-14
+categories:
+ - Python
---
**In this article, you'll discover how to merge lists in Python. If you're a Python developer, Earthly provides a containerized solution to simplify your build processes. [Learn More](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2021-07-08-python-makefile.md b/blog/_posts/2021-07-08-python-makefile.md
index 19e450afd..654bbb9dd 100644
--- a/blog/_posts/2021-07-08-python-makefile.md
+++ b/blog/_posts/2021-07-08-python-makefile.md
@@ -1,7 +1,5 @@
---
title: "Creating a Python Makefile"
-categories:
- - Tutorials
toc: true
author: Aniket Bhattacharyea
sidebar:
@@ -13,6 +11,8 @@ topic: make
excerpt: |
Learn how to use `make` with Python to automate tasks like running tests, installing dependencies, and cleaning builds. Discover the benefits of using `make` in your Python projects and how it can save you time and prevent errors.
last_modified_at: 2023-07-11
+categories:
+ - cli
---
**In this article, you'll learn how to automate Python builds with `make`. If you want to improve your Python build workflows, Earthly can elevate your `make` automation. [Learn more](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2021-07-13-python-timsort-merge.md b/blog/_posts/2021-07-13-python-timsort-merge.md
index bde54ace3..f672136ff 100644
--- a/blog/_posts/2021-07-13-python-timsort-merge.md
+++ b/blog/_posts/2021-07-13-python-timsort-merge.md
@@ -1,7 +1,5 @@
---
title: "Beating TimSort at Merging"
-categories:
- - Tutorials
author: Adam
sidebar:
nav: "thoughts"
@@ -15,6 +13,8 @@ topcta: false
excerpt: |
Learn how to beat TimSort at merging sorted lists in Python by creating a C extension. Discover the performance advantages of merging lists compared to sorting them, and explore the special comparisons used by TimSort for different data types.
last_modified_at: 2023-10-18
+categories:
+ - Python
---
diff --git a/blog/_posts/2021-07-15-golang-makefile.md b/blog/_posts/2021-07-15-golang-makefile.md
index 0bd865c5d..86cd3847a 100644
--- a/blog/_posts/2021-07-15-golang-makefile.md
+++ b/blog/_posts/2021-07-15-golang-makefile.md
@@ -1,7 +1,5 @@
---
title: "Creating a Golang Makefile"
-categories:
- - Tutorials
toc: true
author: Milap Neupane
author2: Adam
@@ -15,6 +13,8 @@ topic: make
excerpt: |
Learn how to automate repetitive tasks in Golang development using Makefiles. This tutorial covers creating a Makefile to build, run, clean, test, and manage dependencies in your Go projects, making your development process faster and more efficient.
last_modified_at: 2023-07-24
+categories:
+ - Make
---
**This article teaches you how to automate Golang tasks. Tired of struggling with Makefiles in your Golang projects? Earthly simplifies your build process with strong caching and the ability to run tasks in parallel. [Learn more](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2021-07-16-python-matplotlib-docker.md b/blog/_posts/2021-07-16-python-matplotlib-docker.md
index deeb4b017..2a542daf0 100644
--- a/blog/_posts/2021-07-16-python-matplotlib-docker.md
+++ b/blog/_posts/2021-07-16-python-matplotlib-docker.md
@@ -1,7 +1,5 @@
---
title: "Install `matplotlib` In A Docker Container"
-categories:
- - Tutorials
author: Adam
internal-links:
- matplotlib
@@ -9,6 +7,8 @@ bottomcta: false
excerpt: |
Learn how to install `matplotlib` in a Docker container and quickly generate graphs and visualizations. Discover the differences between installing `matplotlib` in Alpine Linux and Ubuntu, and why the process can be slower in Alpine.
last_modified_at: 2023-07-19
+categories:
+ - Python
---
**In this article, we'll show you an easy way to install `matplotlib`. Earthly can simplify your build process on any Linux distribution. [Discover how](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2021-07-23-command-line-tools.md b/blog/_posts/2021-07-23-command-line-tools.md
index a9515a7d2..a6de903de 100644
--- a/blog/_posts/2021-07-23-command-line-tools.md
+++ b/blog/_posts/2021-07-23-command-line-tools.md
@@ -1,7 +1,5 @@
---
title: "6 Command Line Tools for Productive Programmers"
-categories:
- - Tutorials
author: Adam
sidebar:
nav: "bash"
@@ -15,6 +13,8 @@ internal-links:
excerpt: |
In this article, the author shares six command-line tools that can enhance productivity for programmers. These tools include `broot` for navigating directories, `funky` for customizing shell functions, `FZF` for fuzzy searching, `McFly` for command-line completion, `zoxide` for improved directory navigation, and `GitUpdate` for simplified git commits. The author also mentions other helpful command-line tools and invites readers to share their own suggestions.
last_modified_at: 2023-07-14
+categories:
+ - cli
---
**In this article, you'll discover how command-line tools can do more for you.Earthly can transform your build processes. [Learn more](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2021-07-27-continuous-testing-in-devops.md b/blog/_posts/2021-07-27-continuous-testing-in-devops.md
index 02f376534..e86da41b9 100644
--- a/blog/_posts/2021-07-27-continuous-testing-in-devops.md
+++ b/blog/_posts/2021-07-27-continuous-testing-in-devops.md
@@ -1,7 +1,5 @@
---
title: "Using Continuous Testing in DevOps Workflows"
-categories:
- - Tutorials
toc: true
author: Alexandre Couedelo
internal-links:
@@ -11,6 +9,8 @@ internal-links:
excerpt: |
Learn how to implement continuous testing in your DevOps workflows using GitHub Actions. This tutorial covers the basics of continuous testing, including unit tests, API testing, end-to-end testing, and performance testing. Discover how to automate your testing process and improve the quality of your software releases.
last_modified_at: 2023-07-14
+categories:
+ - Deployment
---
**In this article explore the benefits of automation testing. Using GitHub Actions for CI/CD? Earthly can seamlessly boost your testing workflows. [Learn how](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2021-07-28-vscode-make.md b/blog/_posts/2021-07-28-vscode-make.md
index 008bf96e2..e569bde12 100644
--- a/blog/_posts/2021-07-28-vscode-make.md
+++ b/blog/_posts/2021-07-28-vscode-make.md
@@ -1,7 +1,5 @@
---
title: "Building in Visual Studio Code with a Makefile"
-categories:
- - Tutorials
author: Nicolas Bohorquez
author2: Adam
internal-links:
@@ -13,6 +11,8 @@ topic: make
excerpt: |
Learn how to use Makefiles in Visual Studio Code to simplify the build process for your software projects. This tutorial walks you through setting up a C++ project and demonstrates the power and flexibility of Makefiles.
last_modified_at: 2023-07-24
+categories:
+ - Make
---
**In this article, you'll discover how the Makefile VSCode extension can simplify your build process in Visual Studio Code. If you manage Makefiles, consider using Earthly to make your workflow more efficient. [Explore it now](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2021-08-12-convert-to-from-json.md b/blog/_posts/2021-08-12-convert-to-from-json.md
index 78072e3f9..f5c8c3b5a 100644
--- a/blog/_posts/2021-08-12-convert-to-from-json.md
+++ b/blog/_posts/2021-08-12-convert-to-from-json.md
@@ -1,7 +1,5 @@
---
title: "How to Convert from JSON to CSV at The Command Line"
-categories:
- - Tutorials
author: Adam
internal-links:
- csv
@@ -13,6 +11,8 @@ topic: cli
excerpt: |
Learn how to convert JSON to CSV and vice versa at the command line using tools like `dasel`, `jq`, `jsonv`, and `csvtojson`. These handy command line tools make the conversion process easy and efficient, allowing you to handle edge cases and customize the output according to your needs. Whether you're a data engineer or just someone who loves working with the command line, this article provides the knowledge and tools you need to perform JSON to CSV conversion effortlessly.
last_modified_at: 2023-07-11
+categories:
+ - cli
---
**Explore the top JSON-CSV conversion tools in this article. If you like `jq` consider Earthly for streamlining your build processes with its containerized approach. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2021-08-18-plotting-rainfall-data-with-python-and-matplotlib.md b/blog/_posts/2021-08-18-plotting-rainfall-data-with-python-and-matplotlib.md
index f09d39868..c5fef18da 100644
--- a/blog/_posts/2021-08-18-plotting-rainfall-data-with-python-and-matplotlib.md
+++ b/blog/_posts/2021-08-18-plotting-rainfall-data-with-python-and-matplotlib.md
@@ -1,7 +1,5 @@
---
title: "Plotting Precipitation with Python, Pandas and Matplotlib"
-categories:
- - Tutorials
internal-links:
- matplotlib
- pandas
@@ -9,6 +7,9 @@ internal-links:
author: Alex
excerpt: |
Learn how to plot precipitation data using Python, Pandas, and Matplotlib. Explore how to parse and manipulate the data, plot it interactively or save it as an image, and compare annual rainfall over multiple years.
+last_modified_at: 2023-07-14
+categories:
+ - Python
last_modified_at: 2024-05-22
---
diff --git a/blog/_posts/2021-08-24-jq-select.md b/blog/_posts/2021-08-24-jq-select.md
index e1419ca46..563afe104 100644
--- a/blog/_posts/2021-08-24-jq-select.md
+++ b/blog/_posts/2021-08-24-jq-select.md
@@ -2,7 +2,7 @@
title: "An Introduction to JQ"
html-title: "JQ Select Explained: Selecting elements from JSON with Examples"
categories:
- - Tutorials
+ - cli
description: "In this article, I'm going to go over the basics building blocks of jq in enough depth that you will be able to understand how jq works."
toc: true
author: Adam
diff --git a/blog/_posts/2021-09-02-make-flags.md b/blog/_posts/2021-09-02-make-flags.md
index a78c650ea..7e0e68b3b 100644
--- a/blog/_posts/2021-09-02-make-flags.md
+++ b/blog/_posts/2021-09-02-make-flags.md
@@ -1,7 +1,5 @@
---
title: "Understanding and Using Makefile Flags"
-categories:
- - Tutorials
toc: true
author: Aniket Bhattacharyea
sidebar:
@@ -12,6 +10,8 @@ topic: make
excerpt: |
Learn how to use `make` flags in your `Makefile` to customize the behavior of the compilation tools. Discover the benefits of using flags over hard-coded options and explore commonly used flags like `CFLAGS`, `CXXFLAGS`, and more.
last_modified_at: 2023-07-24
+categories:
+ - Make
---
**In this article, you'll master `make` flags and how to use them. If you already customize builds with `make` flags, discover how Earthly can streamline your build process for reliable and simultaneous builds. [Learn about Earthly's benefits](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2021-09-02-make-tutorial.md b/blog/_posts/2021-09-02-make-tutorial.md
index 6218be5e1..254802398 100644
--- a/blog/_posts/2021-09-02-make-tutorial.md
+++ b/blog/_posts/2021-09-02-make-tutorial.md
@@ -1,7 +1,5 @@
---
title: "Makefile Tutorials and Examples to Build From"
-categories:
- - Tutorials
toc: true
author: Aniket Bhattacharyea
sidebar:
@@ -12,6 +10,8 @@ internal-links:
excerpt: |
Learn how to automate the software building process using `make`, a powerful tool that saves time and resources. This article covers the basics of writing a Makefile, important components of `make`, and provides examples of using `make` with different technologies.
last_modified_at: 2023-07-14
+categories:
+ - Make
---
**In this article, you'll master Makefile automation. If you know `make`, Earthly provides a containerized, reliable way to improve your builds. [Learn more](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2021-09-15-ios-continuous-integration-pipeline.md b/blog/_posts/2021-09-15-ios-continuous-integration-pipeline.md
index ac75f1d31..ce550ef1c 100644
--- a/blog/_posts/2021-09-15-ios-continuous-integration-pipeline.md
+++ b/blog/_posts/2021-09-15-ios-continuous-integration-pipeline.md
@@ -1,7 +1,5 @@
---
title: "Setting Up an iOS Continuous Integration Pipeline"
-categories:
- - Tutorials
toc: true
author: Marsel Tzatzos
internal-links:
@@ -12,6 +10,8 @@ internal-links:
excerpt: |
Learn how to set up a continuous integration pipeline for your iOS app using fastlane and GitHub Actions. Automate your build, test, and deployment phases to streamline your development process and focus on writing code.
last_modified_at: 2023-07-19
+categories:
+ - Deployment
---
**Explore the essentials of iOS CI/CD setup in this article. If you're enhancing your pipelines with fastlane and GitHub Actions, discover how Earthly can elevate your build consistency and speed. [Learn how](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2021-09-30-awk-examples.md b/blog/_posts/2021-09-30-awk-examples.md
index d1ab6cb2b..8ff14fa5c 100644
--- a/blog/_posts/2021-09-30-awk-examples.md
+++ b/blog/_posts/2021-09-30-awk-examples.md
@@ -1,7 +1,5 @@
---
title: "Understanding AWK"
-categories:
- - Tutorials
toc: true
sidebar:
nav: "bash"
@@ -11,6 +9,8 @@ internal-links:
excerpt: |
Learn the basics of Awk, a powerful text processing tool, in this informative article. Discover how to use Awk to manipulate and analyze data, calculate averages, and even score books based on reviews. Whether you're a beginner or an experienced programmer, this article will help you unlock the potential of Awk.
last_modified_at: 2023-07-19
+categories:
+ - cli
---
**In this article, we'll explore the fundamentals of Awk, a tool that simplifies text processing. Earthly streamlines your build processes with ease and effectiveness. [Learn more](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2021-10-05-pull-through-cache.md b/blog/_posts/2021-10-05-pull-through-cache.md
index 100a05e45..258fc5185 100644
--- a/blog/_posts/2021-10-05-pull-through-cache.md
+++ b/blog/_posts/2021-10-05-pull-through-cache.md
@@ -1,7 +1,5 @@
---
title: "How I Saved $5,000/mo with a $5 Droplet"
-categories:
-- Tutorials
toc: true
author: Corey
@@ -12,6 +10,8 @@ internal-links:
excerpt: |
Learn how to save money and improve your developer workflow by setting up a pull-through cache for Docker Hub. This article provides step-by-step instructions and tips for configuring and hosting your own cache, helping you avoid rate limits and reduce costs.
last_modified_at: 2023-07-19
+categories:
+ - Containers
---
**In this article, you'll learn how to handle Docker rate limits. Earthly can optimize your CI builds with effective caching. [Learn more](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2021-10-11-bitbucket-ci.md b/blog/_posts/2021-10-11-bitbucket-ci.md
index 8e8923370..50cd5a9d4 100644
--- a/blog/_posts/2021-10-11-bitbucket-ci.md
+++ b/blog/_posts/2021-10-11-bitbucket-ci.md
@@ -1,7 +1,5 @@
---
title: "Bitbucket Continuous Integration Options Compared"
-categories:
- - Tutorials
toc: true
author: Ben Force
@@ -11,6 +9,8 @@ internal-links:
excerpt: |
Learn about the different options for continuous integration with Bitbucket, including using Jenkins, integrating with cloud CI/CD tools like AWS, and utilizing Bitbucket's native CI/CD service, Bitbucket Pipelines. Discover the benefits and costs of each option to determine the best fit for your project.
last_modified_at: 2023-07-14
+categories:
+ - Build
---
**Explore continuous integration options in this article. Earthly can enhance your CI pipelines with consistent, reproducible builds. [Discover Earthly's benefits](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2021-10-14-travis-bitbucket.md b/blog/_posts/2021-10-14-travis-bitbucket.md
index 60a975bb8..d34393d2d 100644
--- a/blog/_posts/2021-10-14-travis-bitbucket.md
+++ b/blog/_posts/2021-10-14-travis-bitbucket.md
@@ -1,7 +1,5 @@
---
title: "Using Travis CI with Bitbucket"
-categories:
- - Tutorials
toc: true
author: Lukonde Mwila
internal-links:
@@ -10,6 +8,8 @@ internal-links:
excerpt: |
Learn how to set up a continuous integration workflow using Travis CI and Bitbucket. This tutorial will guide you through the process of creating a simple REST API using Node.js and the Express framework, and then running tests on the application using Travis CI.
last_modified_at: 2023-07-14
+categories:
+ - Cloud
---
**This article explains how to set up Travis CI. Use Earthly with Travis CI to make your CI/CD pipelines more efficient with reproducible and parallel builds. [Learn more](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2021-10-22-ci-vs-cd.md b/blog/_posts/2021-10-22-ci-vs-cd.md
index d802e32d7..b714f2a21 100644
--- a/blog/_posts/2021-10-22-ci-vs-cd.md
+++ b/blog/_posts/2021-10-22-ci-vs-cd.md
@@ -1,7 +1,5 @@
---
title: "Understanding Continuous Integration vs. Continuous Deployment"
-categories:
- - Articles
toc: true
author: Charles Odili
sidebar:
@@ -11,6 +9,8 @@ internal-links:
excerpt: |
Learn about the concepts and practices of continuous integration (CI) and continuous deployment (CD) in software development. Understand how CI enables developers to code incrementally and integrate changes quickly, while CD automates the deployment of code changes to production environments. Discover the benefits of using both techniques together to deliver features quickly and efficiently.
last_modified_at: 2023-07-14
+categories:
+ - Deployment
---
**This article discusses advanced DevOps practices. Earthly streamlines CI workflows with containerized build automation. [Learn more](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2021-10-26-bash-string.md b/blog/_posts/2021-10-26-bash-string.md
index 69f39660f..39424e378 100644
--- a/blog/_posts/2021-10-26-bash-string.md
+++ b/blog/_posts/2021-10-26-bash-string.md
@@ -1,7 +1,5 @@
---
title: "Bash String Manipulation"
-categories:
- - Tutorials
toc: true
author: Adam
sidebar:
@@ -14,6 +12,8 @@ bottomcta: false
excerpt: |
Learn how to manipulate strings in bash with this informative tutorial. From concatenating strings to replacing parts of a string, you'll discover useful techniques for working with text in bash scripts.
last_modified_at: 2023-07-19
+categories:
+ - cli
---
**This article explains bash string manipulation techniques. If you find yourself working with bash in CI pipelines, you might like Earthly. Earthly containerizes your build to make it more consistent and speeds it up. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2021-10-27-canary-deployment.md b/blog/_posts/2021-10-27-canary-deployment.md
index 4ff9cc2e7..a0231b03e 100644
--- a/blog/_posts/2021-10-27-canary-deployment.md
+++ b/blog/_posts/2021-10-27-canary-deployment.md
@@ -1,7 +1,7 @@
---
title: "The Canary Deployment Strategy and When to Use It"
categories:
- - Articles
+ - Deployment
toc: true
author: Keanan Koppenhaver
sidebar:
diff --git a/blog/_posts/2021-11-03-bash-variables.md b/blog/_posts/2021-11-03-bash-variables.md
index 6f63da2da..80e2965fc 100644
--- a/blog/_posts/2021-11-03-bash-variables.md
+++ b/blog/_posts/2021-11-03-bash-variables.md
@@ -1,7 +1,5 @@
---
title: "Understanding Bash Variables"
-categories:
- - Tutorials
toc: true
author: Adam
sidebar:
@@ -12,6 +10,8 @@ internal-links:
excerpt: |
Learn the basics of bash variables and how they work in the UNIX shell. Discover how to define and access local shell variables, work with arrays, handle command-line arguments, and use environmental variables. Gain a solid understanding of bash variables to enhance your scripting skills.
last_modified_at: 2023-07-14
+categories:
+ - cli
---
**This article explains Bash variables. If you find yourself working with bash in your build scripts, you might like Earthly. Earthly provides containerized, reproducible builds for Bash scripters everywhere. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2021-11-05-azure-functions-node.md b/blog/_posts/2021-11-05-azure-functions-node.md
index 50ef078bb..9cb3e859f 100644
--- a/blog/_posts/2021-11-05-azure-functions-node.md
+++ b/blog/_posts/2021-11-05-azure-functions-node.md
@@ -1,7 +1,5 @@
---
title: "Azure Functions Deployment for Node.js Developers"
-categories:
- - Tutorials
toc: true
author: Mohammed Osman
sidebar:
@@ -13,6 +11,8 @@ related: true
excerpt: |
Learn how to deploy Azure functions using Node.js with this tutorial. Discover the benefits of serverless computing and how it can simplify your application deployment process.
last_modified_at: 2023-08-17
+categories:
+ - Cloud
---
**This article explains how to deploy Azure Functions. Earthly ensures consistent and reproducible builds in your CI/CD pipeline. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2021-11-11-argocd-kubernetes.md b/blog/_posts/2021-11-11-argocd-kubernetes.md
index e349fa5c2..d8225fb8e 100644
--- a/blog/_posts/2021-11-11-argocd-kubernetes.md
+++ b/blog/_posts/2021-11-11-argocd-kubernetes.md
@@ -1,8 +1,6 @@
---
title: "Using ArgoCD for Kubernetes Deployments
"
-categories:
- - Tutorials
toc: true
author: Sanni Michael
sidebar:
@@ -13,6 +11,8 @@ internal-links:
excerpt: |
Learn how to simplify Kubernetes deployments using ArgoCD, a lightweight tool that reads environment configurations from a Git repository and applies changes to a Kubernetes cluster. Discover common use cases and step-by-step instructions for implementing ArgoCD in your project.
last_modified_at: 2023-08-17
+categories:
+ - Deployment
---
**This article discusses the integration of ArgoCD in Kubernetes environments. Earthly enhances CI build processes deployments with reproducible builds. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2021-11-11-octopus-deploy.md b/blog/_posts/2021-11-11-octopus-deploy.md
index b059e2b57..fccfb2b16 100644
--- a/blog/_posts/2021-11-11-octopus-deploy.md
+++ b/blog/_posts/2021-11-11-octopus-deploy.md
@@ -1,7 +1,5 @@
---
title: "Using Octopus Deploy to Simplify Complex Deployments"
-categories:
- - Tutorials
toc: true
author: Daniel Olaogun
sidebar:
@@ -11,6 +9,8 @@ internal-links:
excerpt: |
Learn how to simplify complex deployments with Octopus Deploy, a continuous deployment platform that automates releases, manages deployments, and handles routine procedures. Discover the benefits of using Octopus Deploy and follow step-by-step instructions to set it up and connect it to your application.
last_modified_at: 2023-08-17
+categories:
+ - Deployment
---
**This guide provides instructions for setting up Octopus Deploy. Earthly ensures reproducible builds in your CI pipeline. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2021-11-22-aws-lambda-node.md b/blog/_posts/2021-11-22-aws-lambda-node.md
index 6996b155e..afb622c1a 100644
--- a/blog/_posts/2021-11-22-aws-lambda-node.md
+++ b/blog/_posts/2021-11-22-aws-lambda-node.md
@@ -1,7 +1,5 @@
---
title: "Setting up Your First AWS Lambda Deployment for a Node Application"
-categories:
- - Tutorials
toc: true
author: Said Hayani
sidebar:
@@ -12,6 +10,8 @@ internal-links:
excerpt: |
Learn how to set up your first AWS Lambda deployment for a Node application in this tutorial. Discover how to leverage AWS Lambda to execute backend applications without worrying about server configurations or maintenance.
last_modified_at: 2023-08-17
+categories:
+ - Cloud
---
**This tutorial provides guidance on using AWS Lambda for serverless applications. Earthly simplifies and accelerates the build process in CI/CD pipelines. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2021-11-23-awk-csv.md b/blog/_posts/2021-11-23-awk-csv.md
index ec453fa76..ddf350d69 100644
--- a/blog/_posts/2021-11-23-awk-csv.md
+++ b/blog/_posts/2021-11-23-awk-csv.md
@@ -1,7 +1,5 @@
---
title: "Using AWK with CSV Files"
-categories:
- - Tutorials
sidebar:
nav: "bash"
author: Adam
@@ -12,6 +10,8 @@ topic: cli
excerpt: |
Learn how to use AWK with CSV files and overcome its poor CSV support. Discover a simple solution using the `csvquote` tool to handle CSV files in AWK, making it as easy as working with any other format.
last_modified_at: 2023-07-14
+categories:
+ - cli
---
**This article discusses the challenges of handling AWK CSV in data processing. Earthly integrates tools to improve your build process. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2021-11-23-jenkins-stages-pipelines.md b/blog/_posts/2021-11-23-jenkins-stages-pipelines.md
index 31cd81f96..67bb74d5a 100644
--- a/blog/_posts/2021-11-23-jenkins-stages-pipelines.md
+++ b/blog/_posts/2021-11-23-jenkins-stages-pipelines.md
@@ -1,7 +1,5 @@
---
title: "Jenkins Deployment Stages and Pipelines"
-categories:
- - Tutorials
toc: true
author: Joel Olawanle
sidebar:
@@ -13,6 +11,8 @@ internal-links:
excerpt: |
Learn how to automate your software development using Jenkins's deployment stages and pipeline tools. This article will guide you through the process of setting up Jenkins, creating a Jenkinsfile, and utilizing stages to automate your software deployment.
last_modified_at: 2023-08-17
+categories:
+ - Deployment
---
**This article explains the Jenkins Pipeline automation process. Earthly streamlines the build process for Jenkins Pipeline users. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2021-11-24-spinnaker-kubernetes.md b/blog/_posts/2021-11-24-spinnaker-kubernetes.md
index 43b4bbd3e..f970c28f9 100644
--- a/blog/_posts/2021-11-24-spinnaker-kubernetes.md
+++ b/blog/_posts/2021-11-24-spinnaker-kubernetes.md
@@ -1,7 +1,5 @@
---
title: "Using Spinnaker for Kubernetes Deployments"
-categories:
- - Tutorials
toc: true
author: Sanni Michael
sidebar:
@@ -11,6 +9,8 @@ internal-links:
excerpt: |
Learn how to use Spinnaker, an open-source continuous delivery platform, to automate and standardize software releases to Kubernetes clusters. This tutorial provides step-by-step instructions on setting up Spinnaker, configuring providers and storage, and deploying applications with pipelines.
last_modified_at: 2023-08-17
+categories:
+ - Deployment
---
**This article discusses how to automate Kubernetes deployments. Earthly optimizes deployment pipelines effectively. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2021-11-25-travis-ci-alternatives.md b/blog/_posts/2021-11-25-travis-ci-alternatives.md
index 0d0da6435..0ac34667c 100644
--- a/blog/_posts/2021-11-25-travis-ci-alternatives.md
+++ b/blog/_posts/2021-11-25-travis-ci-alternatives.md
@@ -1,7 +1,5 @@
---
title: "Exploring Travis CI Alternatives"
-categories:
- - Tutorials
toc: true
author: Reda Dokkar
internal-links:
@@ -10,6 +8,8 @@ internal-links:
excerpt: |
Looking for alternatives to Travis CI? Check out this article that explores the ten best alternatives, including CircleCI, Jenkins, Bitrise, and more. Find the perfect CI tool for your project and improve your build process.
last_modified_at: 2023-07-14
+categories:
+ - Build
---
**This article examines alternatives to Travis CI. Earthly provides reproducible and parallel builds that can transform your CI pipeline. [Learn more](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2021-11-26-property-based-testing.md b/blog/_posts/2021-11-26-property-based-testing.md
index 9f31b3a06..60b479065 100644
--- a/blog/_posts/2021-11-26-property-based-testing.md
+++ b/blog/_posts/2021-11-26-property-based-testing.md
@@ -1,7 +1,7 @@
---
title: "Property-Based Testing In Go"
categories:
- - Tutorials
+ - Golang
author: Adam
internal-links:
diff --git a/blog/_posts/2021-12-03-kubernetes-docker.md b/blog/_posts/2021-12-03-kubernetes-docker.md
index 5813a27f3..00c25f6a3 100644
--- a/blog/_posts/2021-12-03-kubernetes-docker.md
+++ b/blog/_posts/2021-12-03-kubernetes-docker.md
@@ -1,7 +1,5 @@
---
title: "Kubernetes vs. Docker for Local Development"
-categories:
- - Tutorials
sidebar:
nav: "docker"
toc: true
@@ -9,6 +7,8 @@ author: Damaso Sanoja
excerpt: |
Learn the key similarities and differences between Docker and Kubernetes for local development and discover which tool is better suited for your use case. Find out how Docker's versatility and ease of use compare to Kubernetes' built-in container orchestration and unmatched flexibility.
last_modified_at: 2023-07-14
+categories:
+ - Orchestration
---
**This article compares Docker and Kubernetes. DevOps professionals benefit from Earthly's build automation when using Docker or Kubernetes. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2021-12-04-podman-rootless.md b/blog/_posts/2021-12-04-podman-rootless.md
index 1abac0ac9..ffa0e21ac 100644
--- a/blog/_posts/2021-12-04-podman-rootless.md
+++ b/blog/_posts/2021-12-04-podman-rootless.md
@@ -1,7 +1,5 @@
---
title: "Podman: The Rootless Docker Alternative"
-categories:
- - Tutorials
toc: true
author: Cameron Pavey
@@ -13,6 +11,8 @@ last_modified_at: 2023-04-17
excerpt: |
Learn about Podman, a rootless Docker alternative that implements Open Container Initiative (OCI) standards. Discover its benefits, such as improved security and the ability to create and manage pods, and find out why it may be a compelling choice for developers and companies.
last_modified_at: 2023-07-14
+categories:
+ - Containers
---
**This article discusses Podman container technology. Earthly enhances build pipelines with Podman's rootless container management. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2021-12-13-containerd-vs-docker.md b/blog/_posts/2021-12-13-containerd-vs-docker.md
index 7ae5b769f..a81140311 100644
--- a/blog/_posts/2021-12-13-containerd-vs-docker.md
+++ b/blog/_posts/2021-12-13-containerd-vs-docker.md
@@ -1,7 +1,5 @@
---
title: "Comparing Container Runtimes: containerd vs. Docker"
-categories:
- - Tutorials
toc: true
author: Johan Fischer
sidebar:
@@ -11,6 +9,8 @@ internal-links:
excerpt: |
Learn about the differences between container runtimes containerd and Docker in this informative article. Discover their features, how they work together, and what they can do individually, helping you make an informed decision for your containerized applications.
last_modified_at: 2023-07-14
+categories:
+ - Containers
---
**This article discusses the differences between Docker and containerd. Earthly provides reproducible and parallelizable container build workflows. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2021-12-13-docker-vs-chef.md b/blog/_posts/2021-12-13-docker-vs-chef.md
index 562521ec2..7e64a42ce 100644
--- a/blog/_posts/2021-12-13-docker-vs-chef.md
+++ b/blog/_posts/2021-12-13-docker-vs-chef.md
@@ -1,7 +1,5 @@
---
title: "Chef vs. Docker for Builds and Deployments"
-categories:
- - Tutorials
toc: true
author: Keanan Koppenhaver
sidebar:
@@ -11,6 +9,8 @@ internal-links:
excerpt: |
Learn the differences between Chef and Docker and how they can be used together in build and deployment pipelines. Discover the strengths of each tool and how they can enhance your infrastructure provisioning and containerization processes.
last_modified_at: 2023-07-14
+categories:
+ - Containers
---
**This article discusses how Docker and Chef can be combined in CI/CD pipelines. Earthly provides reproducible and parallel builds that integrate smoothly with Docker and Chef. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2021-12-20-golang-http.md b/blog/_posts/2021-12-20-golang-http.md
index 4f8c6a8f5..749c67c41 100644
--- a/blog/_posts/2021-12-20-golang-http.md
+++ b/blog/_posts/2021-12-20-golang-http.md
@@ -1,7 +1,5 @@
---
title: "Building a Golang JSON HTTP Server"
-categories:
- - Tutorials
toc: true
newsletter_side: false
author: Adam
@@ -13,6 +11,8 @@ internal-links:
excerpt: |
Learn how to build a JSON HTTP server using Golang in this tutorial. Discover the basics of creating a Golang web service, handling HTTP requests, and working with JSON data.
last_modified_at: 2024-04-07
+categories:
+ - Golang
---
**This article explains Golang JSON services. Earthly simplifies the build and test processes for Go web services. [Learn more](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-01-05-docker-secrets.md b/blog/_posts/2022-01-05-docker-secrets.md
index 58a9679b1..2823926b4 100644
--- a/blog/_posts/2022-01-05-docker-secrets.md
+++ b/blog/_posts/2022-01-05-docker-secrets.md
@@ -1,7 +1,5 @@
---
title: "The Complete Guide to Docker Secrets"
-categories:
- - Tutorials
toc: true
author: Allan MacGregor
sidebar:
@@ -12,6 +10,8 @@ topic: docker
excerpt: |
Learn how to securely manage secrets in Docker with Docker secrets. This article explains the benefits of using Docker secrets and provides a step-by-step guide on setting up Docker Swarm and leveraging Docker secrets in your development workflow.
last_modified_at: 2023-07-11
+categories:
+ - Containers
---
**This article discusses managing Docker secrets. Earthly significantly improves CI pipelines for Docker Swarm users. [Check it out](https://cloud.earthly.dev/login/).**
diff --git a/blog/_posts/2022-01-07-golang-errors.md b/blog/_posts/2022-01-07-golang-errors.md
index 932735b5d..fa2617c38 100644
--- a/blog/_posts/2022-01-07-golang-errors.md
+++ b/blog/_posts/2022-01-07-golang-errors.md
@@ -1,7 +1,5 @@
---
title: "Effective Error Handling in Golang"
-categories:
- - Tutorials
toc: true
author: Brandon
bottomcta: false
@@ -11,6 +9,8 @@ topic: go
excerpt: |
Learn how to effectively handle errors in Go with this informative article. Discover the basics of error handling in Go, strategies for robust code, and techniques for defining and wrapping errors. Improve your error handling skills and make your Go programs more reliable and debuggable.
last_modified_at: 2023-10-03
+categories:
+ - Golang
---
**This article explores Go error handling. Earthly is popular with Go developers for ensuring reproducible builds. [Check it out](https://cloud.earthly.dev/login/).**
diff --git a/blog/_posts/2022-01-11-golang-command-line.md b/blog/_posts/2022-01-11-golang-command-line.md
index 92c23bf57..dd77a5804 100644
--- a/blog/_posts/2022-01-11-golang-command-line.md
+++ b/blog/_posts/2022-01-11-golang-command-line.md
@@ -1,7 +1,7 @@
---
title: "Command Line JSON Client In Golang"
categories:
- - Tutorials
+ - Golang
author: Adam
sidebar:
nav: "activity-tracker"
diff --git a/blog/_posts/2022-01-12-stop-using-pie-charts.md b/blog/_posts/2022-01-12-stop-using-pie-charts.md
index 87c53d6d2..d0e02ae84 100644
--- a/blog/_posts/2022-01-12-stop-using-pie-charts.md
+++ b/blog/_posts/2022-01-12-stop-using-pie-charts.md
@@ -1,7 +1,7 @@
---
title: "Stop Using Pie-Charts"
categories:
- - Tutorials
+ - Articles
internal-links:
- matplotlib
- pandas
diff --git a/blog/_posts/2022-01-26-blue-green.md b/blog/_posts/2022-01-26-blue-green.md
index 8c5a7a08e..01f2d88b3 100644
--- a/blog/_posts/2022-01-26-blue-green.md
+++ b/blog/_posts/2022-01-26-blue-green.md
@@ -1,7 +1,7 @@
---
title: "How Blue-Green Deployments Work in Practice"
categories:
- - Articles
+ - Deployment
toc: true
sidebar:
nav: "deployment-strategies"
diff --git a/blog/_posts/2022-02-01-docker-mysql.md b/blog/_posts/2022-02-01-docker-mysql.md
index f83c012e0..afb3a2963 100644
--- a/blog/_posts/2022-02-01-docker-mysql.md
+++ b/blog/_posts/2022-02-01-docker-mysql.md
@@ -1,7 +1,5 @@
---
title: "How to Use Docker for Your MySQL Database"
-categories:
- - Tutorials
toc: true
author: James Walker
internal-links:
@@ -10,6 +8,8 @@ topic: docker
excerpt: |
Learn how to use Docker to manage your MySQL database and simplify your deployment process. This article covers everything from planning your deployment to persisting data with volumes, and even creating a custom Docker image for your MySQL instance.
last_modified_at: 2023-07-11
+categories:
+ - Containers
---
**This article explains how to Dockerize MySQL for isolated database environments. Earthly directly integrates Docker's containerization into the build process. [Check it out](https://cloud.earthly.dev/login/).**
diff --git a/blog/_posts/2022-02-03-golang-sqlite.md b/blog/_posts/2022-02-03-golang-sqlite.md
index 55184a26f..9fc22c889 100644
--- a/blog/_posts/2022-02-03-golang-sqlite.md
+++ b/blog/_posts/2022-02-03-golang-sqlite.md
@@ -1,7 +1,5 @@
---
title: "Golang SQLite `database/sql`"
-categories:
- - Tutorials
toc: true
author: Adam
sidebar:
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
Learn how to use Golang's `database/sql` package to work with SQLite databases. This tutorial covers topics such as installing SQLite, creating a database schema, populating the database, inserting and retrieving data, and more. If you're interested in learning how to persist data using SQLite in Golang, this article is for you.
last_modified_at: 2023-09-19
+categories:
+ - Golang
---
**This article explains how to integrate SQLite with Golang. Earthly simplifies the automation and containerization of Golang SQLite builds. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-02-08-docker-volumes.md b/blog/_posts/2022-02-08-docker-volumes.md
index 9a92c4b19..bfe7596ee 100644
--- a/blog/_posts/2022-02-08-docker-volumes.md
+++ b/blog/_posts/2022-02-08-docker-volumes.md
@@ -1,7 +1,5 @@
---
title: "Understanding Docker Volumes"
-categories:
- - Tutorials
toc: true
author: Shingai Zivuku
sidebar:
@@ -13,6 +11,8 @@ topic: docker
excerpt: |
Learn how to use Docker volumes to persist data outside of containers and easily share data between containers. This tutorial covers the basics of Docker volumes, including how to create and manage them, mount them to containers, and configure them using Docker Compose. If you're looking to improve your containerization workflow and make your builds self-contained and portable, check out Earthly, a build automation tool mentioned in the article.
last_modified_at: 2023-07-11
+categories:
+ - Containers
---
**This article discusses Docker volumes management. Managing complex Docker builds, Earthly's caching and parallelization save time. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-02-15-gitlab-ci.md b/blog/_posts/2022-02-15-gitlab-ci.md
index cc98c3024..43908a117 100644
--- a/blog/_posts/2022-02-15-gitlab-ci.md
+++ b/blog/_posts/2022-02-15-gitlab-ci.md
@@ -1,7 +1,5 @@
---
title: "Introduction to GitLab's CI/CD for Continuous Deployments"
-categories:
- - Tutorials
toc: true
author: Bukola Omosefunmi
sidebar:
@@ -11,6 +9,8 @@ internal-links:
excerpt: |
Learn how to automate your software deployments with GitLab's CI/CD tools. This tutorial explores the benefits of CI/CD practices and provides step-by-step instructions for setting up and implementing GitLab's CI/CD pipelines.
last_modified_at: 2023-08-17
+categories:
+ - Cloud
---
**This article provides a guide to setting up GitLab CI/CD. Earthly ensures consistent and portable build environments for GitLab CI/CD users. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-02-16-golang-grpc-example.md b/blog/_posts/2022-02-16-golang-grpc-example.md
index 979263b48..9ba0b39a3 100644
--- a/blog/_posts/2022-02-16-golang-grpc-example.md
+++ b/blog/_posts/2022-02-16-golang-grpc-example.md
@@ -1,7 +1,5 @@
---
title: "Golang gRPC Example"
-categories:
- - Tutorials
toc: true
author: Adam
sidebar:
@@ -22,6 +20,8 @@ topic: go
excerpt: |
In this article, the author explores how to build a gRPC client and server in Golang. They explain the advantages of using gRPC over REST, demonstrate how to generate code using `protoc`, and provide examples of implementing the server and client. The author also discusses error handling and testing the gRPC service. Overall, this article provides a comprehensive guide to getting started with gRPC in Golang.
last_modified_at: 2023-09-19
+categories:
+ - Golang
---
**This article explains how to use gRPC with Golang, highlighting the `protoc` tool. Earthly guarantees reproducible and efficient Go builds. [Learn more about Earthly](https://cloud.earthly.dev/login/).**
diff --git a/blog/_posts/2022-02-18-lxc-vs-docker.md b/blog/_posts/2022-02-18-lxc-vs-docker.md
index 2679ccf3f..be3e36d69 100644
--- a/blog/_posts/2022-02-18-lxc-vs-docker.md
+++ b/blog/_posts/2022-02-18-lxc-vs-docker.md
@@ -1,7 +1,5 @@
---
title: "LXC vs Docker: Which Container Platform Is Right for You?"
-categories:
- - Tutorials
toc: true
author: Eric Kahuha
@@ -13,6 +11,8 @@ topic: docker
excerpt: |
Are you confused about whether to use LXC or Docker for your containerization needs? This article compares the two container platforms in terms of host machine utilization, simplicity, speed, security, ease of use, scalability, and tooling. Whether you're a developer looking for simplicity or a system administrator in need of control, this article will help you make an informed decision.
last_modified_at: 2023-07-11
+categories:
+ - Containers
---
**This article compares LXC and Docker. Earthly enhances Docker by streamlining the container build process with advanced caching and parallelization. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-02-21-csv-python.md b/blog/_posts/2022-02-21-csv-python.md
index f97d78b11..29d23c888 100644
--- a/blog/_posts/2022-02-21-csv-python.md
+++ b/blog/_posts/2022-02-21-csv-python.md
@@ -1,7 +1,5 @@
---
title: "How To Read A CSV File In Python"
-categories:
- - Tutorials
toc: true
author: Kelly Moreira
@@ -12,6 +10,8 @@ topic: python
excerpt: |
Learn how to read a CSV file in Python using both the `csv` and `pandas` libraries. Discover the different methods and possible delimiter issues, and find out how to overcome them.
last_modified_at: 2023-07-14
+categories:
+ - Python
---
**This article explains how to handle CSV files in Python. Earthly streamlines the build process for Python developers working with CSV files. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-02-22-mongodb-docker.md b/blog/_posts/2022-02-22-mongodb-docker.md
index 70a033f92..a27c72714 100644
--- a/blog/_posts/2022-02-22-mongodb-docker.md
+++ b/blog/_posts/2022-02-22-mongodb-docker.md
@@ -1,7 +1,5 @@
---
title: "Using MongoDB with Docker"
-categories:
- - Tutorials
toc: true
author: Soumi Bardhan
internal-links:
@@ -10,6 +8,8 @@ topic: docker
excerpt: |
Learn how to use MongoDB with Docker to containerize your development environment and easily create isolated instances of MongoDB. This tutorial covers the best practices for running MongoDB in a Docker container, hosting a Flask app, and using Docker volumes to persist data.
last_modified_at: 2023-09-19
+categories:
+ - Containers
---
**This article examines how MongoDB and Docker work together. Earthly guarantees reproducible Docker builds for MongoDB. [Learn more about Earthly](https://cloud.earthly.dev/login/).**
diff --git a/blog/_posts/2022-03-05-circle-ci-with-django.md b/blog/_posts/2022-03-05-circle-ci-with-django.md
index 7ffc0a395..167f700c2 100644
--- a/blog/_posts/2022-03-05-circle-ci-with-django.md
+++ b/blog/_posts/2022-03-05-circle-ci-with-django.md
@@ -1,7 +1,5 @@
---
title: "CircleCI with Python and Django "
-categories:
- - Tutorials
toc: true
author: Josh
@@ -10,6 +8,8 @@ internal-links:
excerpt: |
Learn how to set up CircleCI for your Python Django project and automate tasks like linting, running tests, and pushing Docker images to Docker Hub. CircleCI offers a free tier with generous build minutes and easy integration with GitHub or Bitbucket.
last_modified_at: 2023-07-19
+categories:
+ - Cloud
---
**This article explains how to deploy Django applications using CircleCI. Earthly significantly enhances build speeds with its advanced caching mechanisms. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-03-09-golang-monorepo.md b/blog/_posts/2022-03-09-golang-monorepo.md
index ff9a5c6eb..226f0d4df 100644
--- a/blog/_posts/2022-03-09-golang-monorepo.md
+++ b/blog/_posts/2022-03-09-golang-monorepo.md
@@ -1,7 +1,5 @@
---
title: "Building a Monorepo in Golang"
-categories:
- - Tutorials
toc: true
author: Brandon
sidebar:
@@ -15,6 +13,8 @@ funnel: 2
excerpt: |
Learn how to successfully build a monorepo in Go, where each module independently manages its own build, test, and release cycles. Discover the benefits of using a monorepo and how to import local Go modules. Plus, explore efficient caching and versioning strategies for monorepo builds.
last_modified_at: 2023-07-11
+categories:
+ - Build
---
**This article discusses the management of Go monorepos. Earthly simplifies the build process for each module within a monorepo. [Check it out](https://cloud.earthly.dev/login/).**
diff --git a/blog/_posts/2022-03-17-golang-grpc-gateway.md b/blog/_posts/2022-03-17-golang-grpc-gateway.md
index 39ee4f05b..da6303d3d 100644
--- a/blog/_posts/2022-03-17-golang-grpc-gateway.md
+++ b/blog/_posts/2022-03-17-golang-grpc-gateway.md
@@ -1,7 +1,5 @@
---
title: "gRPC Gateway"
-categories:
- - Tutorials
toc: true
author: Adam
sidebar:
@@ -13,6 +11,8 @@ topic: go
excerpt: |
In this article, the author explores different ways to create a gRPC gateway that accepts HTTP requests and proxies them to a gRPC service. They cover building a proxy using grpc-gateway, creating a REST service based on the same proto file as the gRPC service, and combining REST and gRPC requests in a single service. The author also discusses TLS, certificate generation, and HTTP/2 in the context of these implementations.
last_modified_at: 2024-04-13
+categories:
+ - Golang
---
**Exploring gRPC gateway methods? Earthly simplifies your build process for gRPC services. [Check it out](https://cloud.earthly.dev/login/).**
diff --git a/blog/_posts/2022-03-18-buf-protobuf.md b/blog/_posts/2022-03-18-buf-protobuf.md
index 6acfce7dc..9642fcf5b 100644
--- a/blog/_posts/2022-03-18-buf-protobuf.md
+++ b/blog/_posts/2022-03-18-buf-protobuf.md
@@ -1,7 +1,7 @@
---
title: "Avoiding Common Protobuf's Pitfalls with Buf"
categories:
- - Tutorials
+ - Golang
toc: true
sidebar:
nav: "activity-tracker"
diff --git a/blog/_posts/2022-03-24-aws-lambda-docker.md b/blog/_posts/2022-03-24-aws-lambda-docker.md
index a68961994..6b54407cf 100644
--- a/blog/_posts/2022-03-24-aws-lambda-docker.md
+++ b/blog/_posts/2022-03-24-aws-lambda-docker.md
@@ -1,7 +1,5 @@
---
title: "Running Containers on AWS Lambda"
-categories:
- - Tutorials
toc: true
author: Adam
sidebar:
@@ -12,6 +10,8 @@ topic: docker
excerpt: |
Learn how to run containers on AWS Lambda and leverage the scalability and cost-saving benefits of serverless computing. This article explores the process of setting up a containerized application in AWS Lambda, including creating a TypeScript Lambda function, testing it locally, pushing the image to AWS Elastic Container Registry (ECR), and deploying it as a Lambda function. Discover how to harness the power of containers and serverless computing for your applications on AWS.
last_modified_at: 2023-07-11
+categories:
+ - Cloud
---
**This article explains AWS Lambda containers. Earthly streamlines the build process for AWS Lambda with container support. [Check it out](https://cloud.earthly.dev/login/).**
diff --git a/blog/_posts/2022-03-29-postgres-docker.md b/blog/_posts/2022-03-29-postgres-docker.md
index 7c58c5b18..dfca9ccb7 100644
--- a/blog/_posts/2022-03-29-postgres-docker.md
+++ b/blog/_posts/2022-03-29-postgres-docker.md
@@ -1,7 +1,5 @@
---
title: "Using Docker with Postgres: Tutorial and Best Practices"
-categories:
- - Tutorials
toc: true
author: Aveek Das
internal-links:
@@ -13,6 +11,8 @@ topic: docker
excerpt: |
Learn how to use Docker with Postgres to simplify data management and streamline the development process. This tutorial covers best practices for running PostgreSQL databases on Docker containers and includes step-by-step instructions for setting up and connecting to a PostgreSQL instance using Docker.
last_modified_at: 2023-07-11
+categories:
+ - Containers
---
**This article discusses PostgreSQL on Docker. Earthly simplifies your build process for scripting PostgreSQL Docker setups. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-04-05-write-for-us.md b/blog/_posts/2022-04-05-write-for-us.md
index 786046646..0001179d0 100644
--- a/blog/_posts/2022-04-05-write-for-us.md
+++ b/blog/_posts/2022-04-05-write-for-us.md
@@ -1,7 +1,5 @@
---
title: "Write For Us"
-categories:
- - Tutorials
author: Adam
internal-links:
- write for us
@@ -9,6 +7,8 @@ topcta: false
excerpt: |
Are you passionate about software development? Write for Earthly and reach a larger audience while getting paid. With tens of thousands of monthly visitors and a respected reputation, Earthly's blog is the perfect platform for your expertise. Apply now and start sharing your knowledge with the developer community.
last_modified_at: 2023-07-14
+categories:
+ - Writing
---
diff --git a/blog/_posts/2022-04-12-golang-streamers.md b/blog/_posts/2022-04-12-golang-streamers.md
index 01f417667..2b538c5a3 100644
--- a/blog/_posts/2022-04-12-golang-streamers.md
+++ b/blog/_posts/2022-04-12-golang-streamers.md
@@ -1,6 +1,7 @@
---
title: "Watch People Doing the Thing"
categories:
+ - Golang
- Articles
author: Adam
internal-links:
diff --git a/blog/_posts/2022-04-14-bash-conditionals.md b/blog/_posts/2022-04-14-bash-conditionals.md
index e9aa910b7..083a11c9e 100644
--- a/blog/_posts/2022-04-14-bash-conditionals.md
+++ b/blog/_posts/2022-04-14-bash-conditionals.md
@@ -1,7 +1,5 @@
---
title: "Using Conditionals in Bash"
-categories:
- - Tutorials
toc: true
author: Mdu Sibisi
sidebar:
@@ -13,6 +11,8 @@ internal-links:
excerpt: |
Learn how to use conditionals in Bash to improve your scripting skills and automate tasks. This comprehensive guide covers everything from test commands and operators to conditional statements and case statements. Whether you're a beginner or an experienced Bash user, this article will help you level up your Bash programming skills.
last_modified_at: 2023-07-14
+categories:
+ - cli
---
**Understand Bash conditionals with our new article. Earthly ensures consistent builds in different environments. [Learn more about Earthly](https://cloud.earthly.dev/login/).**
diff --git a/blog/_posts/2022-04-18-tui-app-with-go.md b/blog/_posts/2022-04-18-tui-app-with-go.md
index f469067f8..c1d1aa2e2 100644
--- a/blog/_posts/2022-04-18-tui-app-with-go.md
+++ b/blog/_posts/2022-04-18-tui-app-with-go.md
@@ -1,7 +1,5 @@
---
title: "Building A Terminal User Interface With Golang"
-categories:
- - Tutorials
toc: true
author: Josh
@@ -12,6 +10,8 @@ topic: go
excerpt: |
Learn how to build a terminal user interface (TUI) using Golang with the help of the Tview library. This tutorial covers the basics of creating a TUI, including widgets, forms, lists, and layouts, and provides a step-by-step guide to building a simple rolodex app.
last_modified_at: 2023-07-11
+categories:
+ - Golang
---
**This article explains how to create Text-based User Interfaces (TUIs) using Go. Earthly guarantees fast and dependable builds for your Go TUIs. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-04-21-docker-vs-vm.md b/blog/_posts/2022-04-21-docker-vs-vm.md
index 12c0d6879..bbb9f2f18 100644
--- a/blog/_posts/2022-04-21-docker-vs-vm.md
+++ b/blog/_posts/2022-04-21-docker-vs-vm.md
@@ -1,7 +1,5 @@
---
title: "Docker vs. Virtual Machine: What Are the Differences?"
-categories:
- - Tutorials
toc: true
author: Cameron Pavey
internal-links:
@@ -10,6 +8,8 @@ internal-links:
excerpt: |
Learn about the differences between Docker containers and virtual machines (VMs) in this article. Discover the strengths and limitations of each technology, including factors such as host machine utilization, simplicity, speed, security, and ease of replicability. Whether you're new to containerization or looking to optimize your virtualized deployments, this article provides valuable insights to help you make informed decisions.
last_modified_at: 2023-07-14
+categories:
+ - Containers
---
**This article compares Docker and virtual machines. Earthly significantly improves container build times with advanced caching. [Check it out](https://cloud.earthly.dev/login/).**
diff --git a/blog/_posts/2022-04-21-loops-in-bash.md b/blog/_posts/2022-04-21-loops-in-bash.md
index 188a0856c..b2e51312c 100644
--- a/blog/_posts/2022-04-21-loops-in-bash.md
+++ b/blog/_posts/2022-04-21-loops-in-bash.md
@@ -1,7 +1,5 @@
---
title: "Using Loops In Bash"
-categories:
- - Tutorials
toc: true
author: Aniket Bhattacharyea
@@ -16,6 +14,8 @@ internal-links:
excerpt: |
Learn how to use loops in Bash to control the flow of your programs. This article covers the different types of loops in Bash, including `while`, `until`, and `for`, and provides examples of how to use them in practical scenarios.
last_modified_at: 2023-07-14
+categories:
+ - cli
---
**This article explains how to use Bash loops. Earthly makes your build process more consistent and efficient. [Check it out](https://cloud.earthly.dev/login/).**
diff --git a/blog/_posts/2022-04-23-docker-alternatives.md b/blog/_posts/2022-04-23-docker-alternatives.md
index b85feea21..c18d226de 100644
--- a/blog/_posts/2022-04-23-docker-alternatives.md
+++ b/blog/_posts/2022-04-23-docker-alternatives.md
@@ -1,7 +1,5 @@
---
title: "Exploring Docker Alternatives"
-categories:
- - Tutorials
toc: true
author: James Konik
internal-links:
@@ -9,6 +7,8 @@ internal-links:
excerpt: |
Looking for alternatives to Docker? This article explores various container and non-container tools that can help you deploy software faster and more securely. From Podman to Kubernetes, discover the pros and cons of each option and find the right tool for your team.
last_modified_at: 2023-07-14
+categories:
+ - Containers
---
**This article discusses alternatives to Docker. Earthly's containerized builds extend Docker workflows without directly managing Dockerfiles. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-04-26-python-docker.md b/blog/_posts/2022-04-26-python-docker.md
index d39e666f1..8e7af7e2e 100644
--- a/blog/_posts/2022-04-26-python-docker.md
+++ b/blog/_posts/2022-04-26-python-docker.md
@@ -1,7 +1,5 @@
---
title: "Running Python on Docker"
-categories:
- - Tutorials
toc: true
author: Adedoyin Adeyemi
internal-links:
@@ -11,6 +9,8 @@ last_modified_at: 2023-04-17
excerpt: |
Learn how to run Python applications using Docker, a containerization tool that simplifies managing dependencies and allows for easy sharing of projects with other developers. This tutorial provides step-by-step instructions on setting up a Docker container, building a Python app, and running it within the container.
last_modified_at: 2023-07-24
+categories:
+ - Containers
---
**This article explains how to Dockerize Python applications. Earthly significantly speeds up CI pipelines for Python apps in Docker. [Learn how](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-04-27-sed-find-replace.md b/blog/_posts/2022-04-27-sed-find-replace.md
index 92b0ff636..bf4bdbecb 100644
--- a/blog/_posts/2022-04-27-sed-find-replace.md
+++ b/blog/_posts/2022-04-27-sed-find-replace.md
@@ -1,7 +1,5 @@
---
title: "Using sed for Find and Replace"
-categories:
- - Tutorials
toc: true
author: Zara Cooper
internal-links:
@@ -10,6 +8,8 @@ topic: cli
excerpt: |
Learn how to use the `sed` command in the command line to search and manipulate text. Discover the benefits of using `sed` and explore various commands and techniques for find and replace operations.
last_modified_at: 2023-07-11
+categories:
+ - cli
---
**This article explains how to use `sed` for text manipulation. Earthly integrates `sed` into its reproducible build processes. [Learn how](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-04-8-docker-vagrant.md b/blog/_posts/2022-04-8-docker-vagrant.md
index cf7b7a220..b1698c6de 100644
--- a/blog/_posts/2022-04-8-docker-vagrant.md
+++ b/blog/_posts/2022-04-8-docker-vagrant.md
@@ -1,7 +1,5 @@
---
title: "Vagrant vs. Docker: Are Virtual Machines Ever the Right Option Anymore?"
-categories:
- - Tutorials
toc: true
author: Gineesh Madapparambath
@@ -10,6 +8,8 @@ internal-links:
excerpt: |
Learn about the differences between Vagrant and Docker and how they help create consistent development environments. Discover the benefits and considerations of each technology to choose the right option for your projects.
last_modified_at: 2023-07-14
+categories:
+ - Containers
---
**The article compares Vagrant and Docker. Earthly improves Docker builds by enabling parallel execution. [Learn more about Earthly](https://cloud.earthly.dev/login/).**
diff --git a/blog/_posts/2022-05-04-aws-lambda-golang.md b/blog/_posts/2022-05-04-aws-lambda-golang.md
index 66bd84e02..5cda1df7c 100644
--- a/blog/_posts/2022-05-04-aws-lambda-golang.md
+++ b/blog/_posts/2022-05-04-aws-lambda-golang.md
@@ -1,7 +1,5 @@
---
title: "AWS Lambda Golang With S3"
-categories:
- - Tutorials
author: Adam
toc: false
sidebar:
@@ -12,6 +10,8 @@ internal-links:
excerpt: |
Learn how to build a Golang Lambda service in a container, hook it up to a REST API endpoint, and push and pull data from S3. This article covers the process of porting a Node.js lambda function to Golang, using OS dependencies in a container, and implementing caching with AWS S3.
last_modified_at: 2023-07-19
+categories:
+ - Golang
---
**The article details the process of transitioning from Node.js to Golang. Earthly facilitates efficient containerized builds optimized for AWS Lambda. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-05-04-ci-comparison.md b/blog/_posts/2022-05-04-ci-comparison.md
index e00c7e27b..965aacb13 100644
--- a/blog/_posts/2022-05-04-ci-comparison.md
+++ b/blog/_posts/2022-05-04-ci-comparison.md
@@ -1,7 +1,7 @@
---
title: "CI Free Tier Showdown"
categories:
- - Articles
+ - Build
toc: true
author: Josh
diff --git a/blog/_posts/2022-05-09-docker-and-makefiles.md b/blog/_posts/2022-05-09-docker-and-makefiles.md
index 08f19fcba..5115bb2da 100644
--- a/blog/_posts/2022-05-09-docker-and-makefiles.md
+++ b/blog/_posts/2022-05-09-docker-and-makefiles.md
@@ -1,7 +1,5 @@
---
title: "Docker and Makefiles: Building and Pushing Images with Make"
-categories:
- - Tutorials
toc: true
sidebar:
nav: "makefile"
@@ -12,6 +10,8 @@ topic: make
excerpt: |
Learn how to effectively use Docker and Makefiles together to simplify your deployment process. Discover the advantages of integrating Make into your Docker projects and see how it can streamline building, pushing, releasing, and versioning your Docker images.
last_modified_at: 2023-07-14
+categories:
+ - Make
---
**The article explains how to integrate Docker with Makefiles, enhancing the build process. Earthly streamlines Docker workflows, ensuring consistent and reproducible builds. [Learn how](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-05-10-earthly-podman.md b/blog/_posts/2022-05-10-earthly-podman.md
index 7abdad8a7..8985a75f1 100644
--- a/blog/_posts/2022-05-10-earthly-podman.md
+++ b/blog/_posts/2022-05-10-earthly-podman.md
@@ -1,7 +1,5 @@
---
title: "Earthly, Podman And Docker Compose"
-categories:
- - Tutorials
toc: true
author: David Szakallas
internal-links:
@@ -9,6 +7,8 @@ internal-links:
excerpt: |
Learn how to use Podman, Docker Compose, and Earthly to develop and manage containers on your Linux system. Discover how to install and configure these tools, and explore their features and functionalities.
last_modified_at: 2023-07-14
+categories:
+ - Containers
---
**This article explains how to install Podman 4. Earthly accelerates build automation with Podman. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-05-10-rails-with-docker.md b/blog/_posts/2022-05-10-rails-with-docker.md
index b8fa47b16..35cb35c55 100644
--- a/blog/_posts/2022-05-10-rails-with-docker.md
+++ b/blog/_posts/2022-05-10-rails-with-docker.md
@@ -1,7 +1,5 @@
---
title: "Docker and Rails: Running Ruby on Rails with Docker"
-categories:
- - Tutorials
toc: true
author: Utibeabasi Umanah
internal-links:
@@ -12,6 +10,8 @@ topic: docker
excerpt: |
Learn how to run a Ruby on Rails application inside a Docker container and discover best practices for building Docker images. This tutorial covers topics such as creating a Dockerfile, reducing image size with Alpine base images and multistage builds, and running multiple containers with Docker Compose.
last_modified_at: 2023-07-11
+categories:
+ - Containers
---
**This article explains how to Dockerize Ruby on Rails applications. Earthly improves the Dockerization process for Rails apps by enabling parallel builds and optimizing cache usage. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-05-11-kubernetes-config-maps.md b/blog/_posts/2022-05-11-kubernetes-config-maps.md
index 0035bb10b..b8ec185c8 100644
--- a/blog/_posts/2022-05-11-kubernetes-config-maps.md
+++ b/blog/_posts/2022-05-11-kubernetes-config-maps.md
@@ -1,7 +1,5 @@
---
title: "Kubernetes ConfigMaps and Configuration Best Practices"
-categories:
- - Tutorials
toc: true
author: James Walker
@@ -11,6 +9,8 @@ topic: kubernetes
excerpt: |
Learn how to use Kubernetes ConfigMaps to store and inject configuration parameters into your pods. This article covers the use cases for ConfigMaps, how to create them, and how to consume them in your Kubernetes deployments.
last_modified_at: 2023-07-14
+categories:
+ - Orchestration
---
**This article explains the use of Kubernetes ConfigMaps. Earthly ensures your builds are as reliable as your deployments. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-05-11-using-cmake.md b/blog/_posts/2022-05-11-using-cmake.md
index 0f92d2f9d..0736e2bf1 100644
--- a/blog/_posts/2022-05-11-using-cmake.md
+++ b/blog/_posts/2022-05-11-using-cmake.md
@@ -1,7 +1,5 @@
---
title: "Getting Started With CMake"
-categories:
- - Tutorials
toc: true
author: Kasper Siig
sidebar:
@@ -13,6 +11,8 @@ internal-links:
excerpt: |
Learn how to use CMake, a popular tool for building applications in the C++ community. This tutorial provides a step-by-step guide on using CMake to configure a build pipeline and compile a simple C++ application.
last_modified_at: 2023-07-14
+categories:
+ - Make
---
**This article explains how to use CMake in C++ projects. Earthly improves C++ builds with CMake integration. [Learn how](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-05-12-line-staff.md b/blog/_posts/2022-05-12-line-staff.md
index d952111d3..a8f7eb28a 100644
--- a/blog/_posts/2022-05-12-line-staff.md
+++ b/blog/_posts/2022-05-12-line-staff.md
@@ -1,7 +1,7 @@
---
title: "The Other Kind of Staff Software Engineer"
categories:
- - Tutorials
+ - Articles
toc: true
author: Adam
internal-links:
diff --git a/blog/_posts/2022-05-12-makefiles-on-windows.md b/blog/_posts/2022-05-12-makefiles-on-windows.md
index 0a43b8dd6..fbc8586ea 100644
--- a/blog/_posts/2022-05-12-makefiles-on-windows.md
+++ b/blog/_posts/2022-05-12-makefiles-on-windows.md
@@ -1,7 +1,5 @@
---
title: "How To Use Makefiles on Windows"
-categories:
- - Tutorials
toc: true
author: Kasper Siig
sidebar:
@@ -16,6 +14,8 @@ last_modified_at: 2023-04-17
excerpt: |
Learn how to run Makefiles on Windows with different options like Chocolatey, Cygwin, NMAKE, CMake, and Windows Subsystem for Linux. Discover the strengths and weaknesses of each approach and find the best solution for your needs.
last_modified_at: 2023-07-11
+categories:
+ - Make
---
**This article explores alternatives to Makefiles on Windows. Earthly provides a consistent, containerized build environment for Windows users. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-05-12-minikube.md b/blog/_posts/2022-05-12-minikube.md
index 0aefa9732..bdd6b5d6a 100644
--- a/blog/_posts/2022-05-12-minikube.md
+++ b/blog/_posts/2022-05-12-minikube.md
@@ -1,7 +1,5 @@
---
title: "How to Create Kubernetes Clusters Locally using Minikube"
-categories:
- - Tutorials
toc: true
author: Boemo Wame Mmopelwa
internal-links:
@@ -9,6 +7,8 @@ internal-links:
excerpt: |
Learn how to create Kubernetes clusters locally using Minikube, a convenient and low-cost way for beginners to experiment with Kubernetes. This tutorial covers the installation of Minikube, creating a cluster, securing the cluster with RBAC, and other essential concepts.
last_modified_at: 2023-07-19
+categories:
+ - Orchestration
---
**This guide provides step-by-step instructions for installing Minikube. Earthly enhances CI/CD with efficient caching mechanisms. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-05-16-kubescape.md b/blog/_posts/2022-05-16-kubescape.md
index 860ae8b20..ebacb2ecb 100644
--- a/blog/_posts/2022-05-16-kubescape.md
+++ b/blog/_posts/2022-05-16-kubescape.md
@@ -1,7 +1,5 @@
---
title: "Using Kubescape to Scan Kubernetes"
-categories:
- - Tutorials
toc: true
author: Boemo Wame Mmopelwa
internal-links:
@@ -9,6 +7,8 @@ internal-links:
excerpt: |
Learn how to improve the security of your Kubernetes cluster with Kubescape, a free tool that scans for non-compliant YAML files and image vulnerabilities. Find out how to install Kubescape on Windows, macOS, and Linux, and discover how to analyze the scan results to identify and fix security risks.
last_modified_at: 2023-07-19
+categories:
+ - Orchestration
---
**This article examines the Kubescape security tool's features. Earthly provides consistent and efficient build processes for developers securing Kubernetes with Kubescape. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-05-17-bash-read-files.md b/blog/_posts/2022-05-17-bash-read-files.md
index 822d5961c..9be19c6de 100644
--- a/blog/_posts/2022-05-17-bash-read-files.md
+++ b/blog/_posts/2022-05-17-bash-read-files.md
@@ -1,7 +1,5 @@
---
title: "Using Bash to Read Files"
-categories:
- - Tutorials
toc: true
author: Sundeep Teki
@@ -13,6 +11,8 @@ topic: cli
excerpt: |
Learn how to use Bash to read files line by line, use custom delimiters, assign variables, and more. This article provides step-by-step instructions and examples to help you efficiently search for keywords, process text, automate tasks, and more using Bash scripts.
last_modified_at: 2023-07-14
+categories:
+ - cli
---
**This article explains how to read files using Bash. Earthly's caching mechanisms significantly improve build script efficiency. [Learn how](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-05-17-lambda-grpc.md b/blog/_posts/2022-05-17-lambda-grpc.md
index 060807779..18835e5de 100644
--- a/blog/_posts/2022-05-17-lambda-grpc.md
+++ b/blog/_posts/2022-05-17-lambda-grpc.md
@@ -1,7 +1,5 @@
---
title: "Grpc, AWS Lambdas and GoLang"
-categories:
- - Tutorials
toc: true
author: Adam
sidebar:
@@ -11,6 +9,8 @@ internal-links:
excerpt: |
Learn how to combine GRPC, AWS Lambdas, and GoLang to create a powerful serverless architecture. Discover different approaches to proxying GRPC requests on Lambda and explore the limitations of running a GRPC service on an AWS Lambda.
last_modified_at: 2023-07-19
+categories:
+ - Golang
---
**This article discusses integrating GRPC with AWS Lambda. Earthly provides a reproducible build environment for this integration. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-05-18-kubernetes-persistent-volumes.md b/blog/_posts/2022-05-18-kubernetes-persistent-volumes.md
index 1e2ac4d5e..d660ee9ee 100644
--- a/blog/_posts/2022-05-18-kubernetes-persistent-volumes.md
+++ b/blog/_posts/2022-05-18-kubernetes-persistent-volumes.md
@@ -1,7 +1,5 @@
---
title: "Using Kubernetes Persistent Volumes"
-categories:
- - Tutorials
toc: true
author: James Walker
internal-links:
@@ -12,6 +10,8 @@ topic: kubernetes
excerpt: |
Learn how to use Kubernetes persistent volumes to store data for stateful applications in your Kubernetes cluster. This article explains what persistent volumes are, why they're important, and how to create and manage them using kubectl.
last_modified_at: 2023-07-19
+categories:
+ - Orchestration
---
**The article summarizes the complexities of managing Kubernetes storage. Earthly provides consistent and reproducible builds in any environment. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-05-19-kubernetes-terraform.md b/blog/_posts/2022-05-19-kubernetes-terraform.md
index a0f2785d5..51be34ae1 100644
--- a/blog/_posts/2022-05-19-kubernetes-terraform.md
+++ b/blog/_posts/2022-05-19-kubernetes-terraform.md
@@ -1,7 +1,5 @@
---
title: "Terraform and Kubernetes for Deploying Complex Applications"
-categories:
- - Tutorials
toc: true
author: James Konik
internal-links:
@@ -9,6 +7,8 @@ internal-links:
excerpt: |
Learn how to automate the deployment process and manage complex applications using Terraform and Kubernetes. Discover the benefits of scalability, portability, and workload support that these tools offer, and how they can complement each other to streamline your infrastructure management.
last_modified_at: 2023-07-19
+categories:
+ - IaC
---
**The article explains how Kubernetes and Terraform integration works. Earthly's caching mechanisms speed up builds for those using Kubernetes and Terraform. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-05-24-k8s-namespaces.md b/blog/_posts/2022-05-24-k8s-namespaces.md
index 2e950d1be..cd7080a0f 100644
--- a/blog/_posts/2022-05-24-k8s-namespaces.md
+++ b/blog/_posts/2022-05-24-k8s-namespaces.md
@@ -1,7 +1,5 @@
---
title: "How and When to Use Kubernetes Namespaces"
-categories:
- - Tutorials
toc: true
author: Kasper Siig
internal-links:
@@ -10,6 +8,8 @@ internal-links:
excerpt: |
Learn how and when to use Kubernetes namespaces to isolate workloads and manage resources more efficiently in your Kubernetes cluster. Discover the benefits of namespaces and how to create and manage them effectively.
last_modified_at: 2023-07-14
+categories:
+ - Orchestration
---
**The article explains how Kubernetes namespaces effectively manage resources. Earthly strengthens your CI/CD toolkit by ensuring builds are reproducible, which supports your Kubernetes approach. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-05-25-k8s-autoscaling.md b/blog/_posts/2022-05-25-k8s-autoscaling.md
index 66e83ecbd..db9e943d7 100644
--- a/blog/_posts/2022-05-25-k8s-autoscaling.md
+++ b/blog/_posts/2022-05-25-k8s-autoscaling.md
@@ -1,7 +1,5 @@
---
title: "How Kubernetes Autoscaling Works"
-categories:
- - Tutorials
toc: true
author: Kasper Siig
@@ -11,6 +9,8 @@ internal-links:
excerpt: |
last_modified_at: 2023-07-14
+categories:
+ - Orchestration
---
**This article examines Kubernetes autoscaling techniques. Earthly simplifies the build process for seamless Kubernetes deployments. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-05-26-k8s-networking.md b/blog/_posts/2022-05-26-k8s-networking.md
index 262ad51d4..e37478ee5 100644
--- a/blog/_posts/2022-05-26-k8s-networking.md
+++ b/blog/_posts/2022-05-26-k8s-networking.md
@@ -1,7 +1,5 @@
---
title: "Guide to Kubernetes Networking"
-categories:
- - Tutorials
toc: true
author: Eze Onukwube
@@ -11,6 +9,8 @@ internal-links:
excerpt: |
Learn about the ins and outs of Kubernetes networking, including IP address allocation, container network interfaces, services, DNS, and more. Whether you're a beginner or an experienced user, this guide will provide valuable insights into how networking works in the Kubernetes ecosystem.
last_modified_at: 2023-07-14
+categories:
+ - Orchestration
---
**This article explains Kubernetes networking basics. Earthly streamlines the continuous integration build phase and integrates smoothly with Kubernetes. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-06-13-aws-lambda-api-proxy.md b/blog/_posts/2022-06-13-aws-lambda-api-proxy.md
index df0b33ea1..017382ffc 100644
--- a/blog/_posts/2022-06-13-aws-lambda-api-proxy.md
+++ b/blog/_posts/2022-06-13-aws-lambda-api-proxy.md
@@ -1,7 +1,5 @@
---
title: "AWS Lambda Rest API Backend In Golang"
-categories:
- - Tutorials
toc: true
author: Adam
sidebar:
@@ -9,6 +7,8 @@ sidebar:
excerpt: |
Learn how to run a full REST HTTP API in a single AWS Lambda using Golang. Discover the advantages of this approach and how to handle routing and requests using the AWS Lambda Go API Proxy.
last_modified_at: 2024-04-13
+categories:
+ - Golang
---
**This article explains the creation of Lambda-based REST APIs. Earthly streamlines the CI pipeline for GoLang developers using AWS Lambda functions. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-06-14-yaml-validate-and-lint-cue-lang.md b/blog/_posts/2022-06-14-yaml-validate-and-lint-cue-lang.md
index 0f401bf22..2902a3d44 100644
--- a/blog/_posts/2022-06-14-yaml-validate-and-lint-cue-lang.md
+++ b/blog/_posts/2022-06-14-yaml-validate-and-lint-cue-lang.md
@@ -1,7 +1,5 @@
---
title: "Validate Your YAML (with CUE)"
-categories:
- - Tutorials
toc: true
author: Adam
internal-links:
@@ -11,6 +9,8 @@ internal-links:
excerpt: |
Learn how to use Cuelang, an extension of YAML, to validate your YAML configurations and prevent runtime errors. Discover how to define types, add constraints, and import packages to ensure your YAML files are structured correctly.
last_modified_at: 2023-07-14
+categories:
+ - cli
---
**This article explains how Cuelang configurations enhance CI pipelines. Earthly guarantees reproducible and efficient builds. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-06-21-k8s-dev-solutions.md b/blog/_posts/2022-06-21-k8s-dev-solutions.md
index b0797f779..928f03e0e 100644
--- a/blog/_posts/2022-06-21-k8s-dev-solutions.md
+++ b/blog/_posts/2022-06-21-k8s-dev-solutions.md
@@ -1,7 +1,5 @@
---
title: "Comparing Local Kubernetes Development Solutions"
-categories:
- - Tutorials
toc: true
author: Kasper Siig
internal-links:
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
Looking to develop applications locally using Kubernetes? Check out this article comparing the top local Kubernetes development solutions, including minikube, kind, K3s, kubeadm, Docker Desktop, and MicroK8s. Learn about their platform support, setup complexity, flexibility, and community support to help you choose the best option for your needs.
last_modified_at: 2023-10-09
+categories:
+ - Orchestration
---
**This article discusses tools for Kubernetes local development. Minikube streamlines Kubernetes on local machines, and Earthly consistently delivers reproducible builds. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-06-24-building-k8s-tekton.md b/blog/_posts/2022-06-24-building-k8s-tekton.md
index cd9feeb56..0105ec9cb 100644
--- a/blog/_posts/2022-06-24-building-k8s-tekton.md
+++ b/blog/_posts/2022-06-24-building-k8s-tekton.md
@@ -1,7 +1,5 @@
---
title: "Building in Kubernetes Using Tekton"
-categories:
- - Tutorials
toc: true
author: Joseph Eshiett
internal-links:
@@ -12,6 +10,8 @@ internal-links:
excerpt: |
Learn how to build applications in Kubernetes using Tekton, an open-source framework that helps optimize CI/CD practices. This tutorial guides you through creating a customizable CI/CD workflow with Tekton to deploy a sample application to your Kubernetes cluster.
last_modified_at: 2023-07-19
+categories:
+ - Deployment
---
**This article explores how Earthly enhances Tekton CI/CD workflows with reproducible builds. Earthly ensures consistent results for those using Tekton pipelines. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-06-28-multi-factor-auth.md b/blog/_posts/2022-06-28-multi-factor-auth.md
index e2f791778..8343d8255 100644
--- a/blog/_posts/2022-06-28-multi-factor-auth.md
+++ b/blog/_posts/2022-06-28-multi-factor-auth.md
@@ -1,8 +1,8 @@
---
title: "Programmatic Multi Factor Auth and Time Based One Time Passwords"
categories:
- - Tutorials
-toc: true
+ - cli
+toc: false
author: Adam
internal-links:
- mfa
diff --git a/blog/_posts/2022-07-02-introduction-pyscript.md b/blog/_posts/2022-07-02-introduction-pyscript.md
index 59b43c36d..cdd57aa72 100644
--- a/blog/_posts/2022-07-02-introduction-pyscript.md
+++ b/blog/_posts/2022-07-02-introduction-pyscript.md
@@ -1,7 +1,5 @@
---
title: "Introduction to Pyscript"
-categories:
- - Tutorials
toc: true
author: Ukeje Goodness
excerpt: |
@@ -13,6 +11,8 @@ internal-links:
- Pyodide
- Django
last_modified_at: 2023-07-19
+categories:
+ - Python
---
**The PyScript framework enables Python execution in web browsers. Earthly ensures your PyScript builds are reproducible. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-07-13-pulumi-vs-terraform.md b/blog/_posts/2022-07-13-pulumi-vs-terraform.md
index 298935a76..0576e370e 100644
--- a/blog/_posts/2022-07-13-pulumi-vs-terraform.md
+++ b/blog/_posts/2022-07-13-pulumi-vs-terraform.md
@@ -1,7 +1,5 @@
---
title: "Pulumi vs Terraform"
-categories:
- - Tutorials
toc: true
author: Alexander Yu
excerpt: |
@@ -12,6 +10,8 @@ internal-links:
- Terraform
- IaC tools
last_modified_at: 2023-07-19
+categories:
+ - IaC
---
**This article compares infrastructure as code (IaC) tools. Earthly's declarative syntax streamlines complex build steps. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-07-15-devcontainers.md b/blog/_posts/2022-07-15-devcontainers.md
index 0bdebcd79..7182c330c 100644
--- a/blog/_posts/2022-07-15-devcontainers.md
+++ b/blog/_posts/2022-07-15-devcontainers.md
@@ -1,7 +1,5 @@
---
title: "Code From Anywhere: Dev Containers and Github Codespaces"
-categories:
- - Tutorials
toc: true
author: Josh
@@ -12,6 +10,8 @@ internal-links:
excerpt: |
Learn how to use Dev Containers and Github Codespaces to simplify development and make it more portable. These tools allow you to define a development environment and run your project in a Docker container, either locally or in the cloud. With Dev Containers and Codespaces, you can code from anywhere and standardize development across your team.
last_modified_at: 2023-08-23
+categories:
+ - Containers
---
**The article explains how Jekyll Dev Containers enhance cloud development. Earthly streamlines continuous integration workflows in Codespaces. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-07-19-analyze-amzndata-pyth.md b/blog/_posts/2022-07-19-analyze-amzndata-pyth.md
index 438096002..7f2bca6e7 100644
--- a/blog/_posts/2022-07-19-analyze-amzndata-pyth.md
+++ b/blog/_posts/2022-07-19-analyze-amzndata-pyth.md
@@ -1,7 +1,5 @@
---
title: "Analyze Your Amazon Data with Python"
-categories:
- - Tutorials
toc: true
author: Mr. Unity Buddy
excerpt: |
@@ -12,6 +10,8 @@ internal-links:
- Pip
- Pandas
last_modified_at: 2023-07-19
+categories:
+ - Python
---
**This article explains how Python developers can analyze Amazon spending. Earthly precisely builds your data analysis toolchain. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-07-20-terraform-lambda.md b/blog/_posts/2022-07-20-terraform-lambda.md
index f1411cf28..0012d5ecb 100644
--- a/blog/_posts/2022-07-20-terraform-lambda.md
+++ b/blog/_posts/2022-07-20-terraform-lambda.md
@@ -1,7 +1,5 @@
---
title: "Terraform Import - Leaving Click Ops Behind"
-categories:
- - Tutorials
toc: true
sidebar:
nav: "lambdas"
@@ -12,6 +10,8 @@ internal-links:
excerpt: |
Learn how to import existing infrastructure into Terraform and manage it as code. Follow along as the author imports resources such as AWS Lambda, ECR, S3, and API Gateway, and tests the infrastructure by destroying and recreating it.
last_modified_at: 2023-07-14
+categories:
+ - Golang
---
**The article summarizes how to import infrastructure into Terraform. Earthly provides DevOps professionals with consistent build environments. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-07-21-terraform-state-bucket.md b/blog/_posts/2022-07-21-terraform-state-bucket.md
index 5bcff3215..240c4476f 100644
--- a/blog/_posts/2022-07-21-terraform-state-bucket.md
+++ b/blog/_posts/2022-07-21-terraform-state-bucket.md
@@ -1,7 +1,5 @@
---
title: "S3 Terraform Backend"
-categories:
- - Tutorials
author: Adam
sidebar:
nav: "lambdas"
@@ -11,6 +9,8 @@ bottomcta: false
excerpt: |
Learn how to store your Terraform state in an S3 bucket to avoid leaking sensitive information and manage changes made by multiple people.
last_modified_at: 2023-07-19
+categories:
+ - IaC
---
**The article simplifies the complexities of managing Terraform state. Earthly guarantees reproducible builds for Terraform projects in CI workflows. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-07-22-use-mongo-with-go.md b/blog/_posts/2022-07-22-use-mongo-with-go.md
index 792a1ec4b..2e248525e 100644
--- a/blog/_posts/2022-07-22-use-mongo-with-go.md
+++ b/blog/_posts/2022-07-22-use-mongo-with-go.md
@@ -1,7 +1,5 @@
---
title: "How to Use MongoDB with Go"
-categories:
- - Tutorials
toc: true
author: Ukeje Goodness
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
Learn how to use MongoDB with Go in this tutorial. Discover how to connect to a MongoDB Atlas cluster, perform CRUD operations, and query the database using the Go MongoDB driver.
last_modified_at: 2023-07-19
+categories:
+ - Golang
---
**This article explores the integration of MongoDB in Go applications. Earthly simplifies the build process for Go developers working with MongoDB. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-07-25-docker-slim.md b/blog/_posts/2022-07-25-docker-slim.md
index 76ea0b7a8..79bd5c4be 100644
--- a/blog/_posts/2022-07-25-docker-slim.md
+++ b/blog/_posts/2022-07-25-docker-slim.md
@@ -1,7 +1,5 @@
---
title: "Docker Slim"
-categories:
- - Tutorials
toc: true
author: Sooter Saalu
internal-links:
@@ -12,6 +10,8 @@ internal-links:
excerpt: |
Learn how to optimize your Docker images and containers with Docker Slim, a tool that can reduce image size up to thirty times without any manual optimization. Discover how Docker Slim performs static and dynamic analysis to generate smaller and more efficient Docker containers, and how it can help you analyze, compress, and secure your Docker resources.
last_modified_at: 2023-07-19
+categories:
+ - Containers
---
**The article focuses on optimizing Docker Slim. Earthly boosts Docker Slim, making CI builds more efficient. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-07-25-pongo.md b/blog/_posts/2022-07-25-pongo.md
index 8959bedd3..8eb5c5b36 100644
--- a/blog/_posts/2022-07-25-pongo.md
+++ b/blog/_posts/2022-07-25-pongo.md
@@ -1,7 +1,5 @@
---
title: "Building Pong in Your Terminal: Part One"
-categories:
- - Tutorials
toc: true
author: Josh
sidebar:
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
Learn how to build a Pong game in your terminal using Golang and the tcell package. This tutorial covers the basics of creating a game, including writing text to the terminal, making text move, and creating a ball that bounces when it reaches the edge of the screen. Get started on your game development journey with this fun and educational project!
last_modified_at: 2023-07-19
+categories:
+ - Golang
---
**This article explains how to create Pong using Golang. Earthly provides consistent builds for projects like this. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-08-01-using-aws-graviton.md b/blog/_posts/2022-08-01-using-aws-graviton.md
index 600e3d319..c8642320a 100644
--- a/blog/_posts/2022-08-01-using-aws-graviton.md
+++ b/blog/_posts/2022-08-01-using-aws-graviton.md
@@ -1,7 +1,7 @@
---
title: "Using AWS Graviton"
categories:
- - Tutorials
+ - Cloud
toc: true
author: Kealan Parr
diff --git a/blog/_posts/2022-08-02-terraform-route53.md b/blog/_posts/2022-08-02-terraform-route53.md
index 4d0be13f4..3e4486347 100644
--- a/blog/_posts/2022-08-02-terraform-route53.md
+++ b/blog/_posts/2022-08-02-terraform-route53.md
@@ -1,7 +1,7 @@
---
title: "Terraform Route53 And DNS Fun"
categories:
- - Tutorials
+ - IaC
author: Adam
internal-links:
- terraform route53
diff --git a/blog/_posts/2022-08-09-using-makefile-wildcards.md b/blog/_posts/2022-08-09-using-makefile-wildcards.md
index b389f17c4..79a57b5a2 100644
--- a/blog/_posts/2022-08-09-using-makefile-wildcards.md
+++ b/blog/_posts/2022-08-09-using-makefile-wildcards.md
@@ -1,7 +1,5 @@
---
title: "Using Makefile Wildcards"
-categories:
- - Tutorials
toc: true
author: Kasper Siig
sidebar:
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
Learn how to use wildcards in Makefiles to create flexible and automated build processes. This tutorial provides examples and explanations of common wildcard use, the wildcard function, and rules with wildcards. Whether you're new to Make or looking to enhance your Makefile skills, this article is a must-read.
last_modified_at: 2023-07-14
+categories:
+ - Make
---
**This article explains the use of wildcards in Make. Earthly simplifies build processes with reproducible and parallel builds. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-08-10-docker-vs-buildah-vs-kaniko.md b/blog/_posts/2022-08-10-docker-vs-buildah-vs-kaniko.md
index cf52479f9..f2a531814 100644
--- a/blog/_posts/2022-08-10-docker-vs-buildah-vs-kaniko.md
+++ b/blog/_posts/2022-08-10-docker-vs-buildah-vs-kaniko.md
@@ -1,7 +1,5 @@
---
title: "Container Image Build Tools: Docker vs. Buildah vs. kaniko"
-categories:
- - Tutorials
toc: true
author: Kasper Siig
@@ -14,6 +12,8 @@ topic: docker
excerpt: |
This article compares three popular container image build tools: Docker, Buildah, and kaniko. It explores their features, compatibility, and community support, helping readers make an informed decision about which tool is right for their needs. Whether you're new to containerization or looking for alternatives to Docker, this article provides valuable insights into the world of container image building.
last_modified_at: 2023-07-11
+categories:
+ - Containers
---
**This article explores container image tools. Earthly significantly speeds up builds with its advanced caching system while maintaining familiar container workflows. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-08-11-validate-&-clean-yaml.md b/blog/_posts/2022-08-11-validate-&-clean-yaml.md
index c1d3ac4b6..1b528d019 100644
--- a/blog/_posts/2022-08-11-validate-&-clean-yaml.md
+++ b/blog/_posts/2022-08-11-validate-&-clean-yaml.md
@@ -1,7 +1,5 @@
---
title: "How to validate and clean your YAML files using Kubeval and ValidKube"
-categories:
- - Tutorials
toc: true
author: Boemo Wame Mmopelwa
@@ -13,6 +11,8 @@ internal-links:
excerpt: |
Learn how to validate and clean your YAML files using Kubeval and ValidKube. These tools help you spot misconfigurations and remove clutter from your files, ensuring the security and health of your Kubernetes cluster.
last_modified_at: 2023-07-19
+categories:
+ - Orchestration
---
**The article focuses on Kubeval's importance in validating Kubernetes manifests. Earthly strengthens CI pipelines through reproducible builds, which complements Kubeval's functions. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-08-15-cryptography-encryption-in-go.md b/blog/_posts/2022-08-15-cryptography-encryption-in-go.md
index 2bdcb1627..1122f03f0 100644
--- a/blog/_posts/2022-08-15-cryptography-encryption-in-go.md
+++ b/blog/_posts/2022-08-15-cryptography-encryption-in-go.md
@@ -1,7 +1,5 @@
---
title: "Cryptography & Encryption in Go"
-categories:
- - Tutorials
toc: true
author: Ukeje Goodness
@@ -13,6 +11,8 @@ internal-links:
excerpt: |
Learn how to implement cryptography and encryption in Go with this tutorial. Discover how to use hashing functions, encrypt and decrypt text, and generate cryptographically secure random values in your Go programs.
last_modified_at: 2023-07-19
+categories:
+ - Golang
---
**The article summarizes Go cryptography techniques. Earthly streamlines and speeds up Go build pipelines. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-08-16-managing-k8s-with-k9s.md b/blog/_posts/2022-08-16-managing-k8s-with-k9s.md
index 796170b05..0f030ab32 100644
--- a/blog/_posts/2022-08-16-managing-k8s-with-k9s.md
+++ b/blog/_posts/2022-08-16-managing-k8s-with-k9s.md
@@ -1,7 +1,5 @@
---
title: "How to Manage Kubernetes Resources Using K9s"
-categories:
- - Tutorials
toc: true
author: Boemo Wame Mmopelwa
@@ -14,6 +12,8 @@ topic: kubernetes
excerpt: |
Learn how to manage your Kubernetes cluster more efficiently with K9s, a terminal UI tool that simplifies common `kubectl` commands and provides a faster and easier way to interact with your cluster. Install K9s on Linux, explore its features, and discover how it can help you fetch cluster metrics and manage your resources with ease.
last_modified_at: 2023-07-19
+categories:
+ - Orchestration
---
**K9s is a tool for exploring Kubernetes clusters. Earthly provides robust build automation that complements K9s. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-08-17-pong-part2.md b/blog/_posts/2022-08-17-pong-part2.md
index 789e8989d..a0a3a51d5 100644
--- a/blog/_posts/2022-08-17-pong-part2.md
+++ b/blog/_posts/2022-08-17-pong-part2.md
@@ -1,7 +1,7 @@
---
title: "Building Pong in Your Terminal: Part Two"
categories:
- - Tutorials
+ - Golang
toc: true
author: Josh
sidebar:
diff --git a/blog/_posts/2022-08-20-devetools-for-k8s.md b/blog/_posts/2022-08-20-devetools-for-k8s.md
index 8652ca6cc..8fbb7a63c 100644
--- a/blog/_posts/2022-08-20-devetools-for-k8s.md
+++ b/blog/_posts/2022-08-20-devetools-for-k8s.md
@@ -1,7 +1,5 @@
---
title: "Developer Tools for Kubernetes"
-categories:
- - Tutorials
toc: true
author: Kasper Siig
@@ -13,6 +11,8 @@ internal-links:
excerpt: |
Learn about the essential developer tools for Kubernetes that can help you become more efficient and productive in your workload. From integrated development environments to package managers and tools for faster development, this article covers a range of tools that can simplify your Kubernetes journey.
last_modified_at: 2023-07-14
+categories:
+ - Orchestration
---
**This article explores Kubernetes development tools and their Kustomize integration. Earthly simplifies and streamlines your CI pipeline with containerized build steps that are easy to maintain. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-08-26-kube-bench.md b/blog/_posts/2022-08-26-kube-bench.md
index a4ff2c62e..b44b3696b 100644
--- a/blog/_posts/2022-08-26-kube-bench.md
+++ b/blog/_posts/2022-08-26-kube-bench.md
@@ -1,7 +1,5 @@
---
title: "Kube-Bench"
-categories:
- - Tutorials
toc: true
author: Anurag Kumar
@@ -13,6 +11,8 @@ internal-links:
excerpt: |
Learn how to benchmark your Kubernetes cluster against CIS benchmarks using Kube-Bench. This tutorial provides step-by-step instructions on installing and configuring Kube-Bench, running benchmarks via CLI, fixing WARN and FAIL benchmarks, and automating the process using Kubernetes jobs and cronjobs.
last_modified_at: 2023-07-19
+categories:
+ - Orchestration
---
**This article discusses Kubernetes security benchmarking. Kube-bench secures Kubernetes clusters, while Earthly ensures robust and reliable CI pipeline builds. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-08-30-grafana-and-prometheus-k8s.md b/blog/_posts/2022-08-30-grafana-and-prometheus-k8s.md
index 147c0367f..03a1867f5 100644
--- a/blog/_posts/2022-08-30-grafana-and-prometheus-k8s.md
+++ b/blog/_posts/2022-08-30-grafana-and-prometheus-k8s.md
@@ -1,7 +1,5 @@
---
title: "Grafana & Prometheus Kubernetes Cluster Monitoring"
-categories:
- - Tutorials
toc: true
author: Saka-Aiyedun Segun
@@ -15,6 +13,8 @@ topic: kubernetes
excerpt: |
Learn how to monitor your Kubernetes cluster using Grafana and Prometheus. This tutorial will guide you through the process of setting up your own monitoring dashboard, visualizing internal state metrics, and accessing Grafana dashboards for resource monitoring.
last_modified_at: 2023-07-19
+categories:
+ - Cloud
---
**This article explains how to set up Kubernetes monitoring. Earthly provides a strong solution for Kubernetes operators to improve their build pipelines. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-09-02-ess-linux-term-cmd.md b/blog/_posts/2022-09-02-ess-linux-term-cmd.md
index 78b7e1ecf..b0cc5ee87 100644
--- a/blog/_posts/2022-09-02-ess-linux-term-cmd.md
+++ b/blog/_posts/2022-09-02-ess-linux-term-cmd.md
@@ -1,7 +1,5 @@
---
title: "15 Essential Linux Terminal Commands"
-categories:
- - Tutorials
toc: true
author: Hrittik Roy
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
Learn fifteen essential Linux terminal commands that will supercharge you as a Linux user. From searching for patterns in files to managing permissions and scheduling tasks, these commands will make your workflow optimized and efficient.
last_modified_at: 2023-07-14
+categories:
+ - cli
---
**This article explores essential Linux productivity commands. Earthly ensures your builds are reproducible with precision. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-09-07-python-classes-and-objects.md b/blog/_posts/2022-09-07-python-classes-and-objects.md
index c23dbb43c..1a4028af5 100644
--- a/blog/_posts/2022-09-07-python-classes-and-objects.md
+++ b/blog/_posts/2022-09-07-python-classes-and-objects.md
@@ -1,7 +1,5 @@
---
title: "How Classes and Objects Work in Python"
-categories:
- - Tutorials
toc: true
author: Bala Priya C
@@ -13,6 +11,8 @@ internal-links:
excerpt: |
Learn how to work with classes and objects in Python in this tutorial. Discover how to define attributes and methods, use class variables and methods, and create objects from tuples.
last_modified_at: 2023-07-19
+categories:
+ - cli
---
**This article explains the basics of Python OOP fundamentals. Earthly streamlines your continuous integration workflow for Python OOP projects. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-09-12-mng-dotfiles-with-git.md b/blog/_posts/2022-09-12-mng-dotfiles-with-git.md
index a667164e1..b1745bfc4 100644
--- a/blog/_posts/2022-09-12-mng-dotfiles-with-git.md
+++ b/blog/_posts/2022-09-12-mng-dotfiles-with-git.md
@@ -1,7 +1,5 @@
---
title: "Manage dotfiles from anywhere with Git"
-categories:
- - Tutorials
toc: true
author: Talha Khalid
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
Learn how to manage your dotfiles using Git and make your environment configuration easier to maintain and synchronize across multiple machines. Say goodbye to the hassle of manually reinstalling programs and customizing settings every time you switch computers.
last_modified_at: 2023-07-19
+categories:
+ - cli
---
**This article explains how to manage dotfiles using Git. Earthly provides consistent and efficient build processes for dotfile management. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-09-13-bazel-build.md b/blog/_posts/2022-09-13-bazel-build.md
index 71c15718e..434423428 100644
--- a/blog/_posts/2022-09-13-bazel-build.md
+++ b/blog/_posts/2022-09-13-bazel-build.md
@@ -1,7 +1,5 @@
---
title: "When to use Bazel?"
-categories:
- - Articles
toc: true
author: Adam
sidebar:
@@ -11,6 +9,8 @@ internal-links:
excerpt: |
Learn about the benefits and challenges of using Bazel, Google's open-source monorepo build system, from experts who have experience with it. Discover when to use Bazel, its history, case studies, migration tips, and the future of this powerful build tool.
last_modified_at: 2023-07-11
+categories:
+ - Bazel
---
**The article provides an in-depth analysis of the Bazel build system's complexities. Earthly streamlines the build process, presenting a straightforward alternative to Bazel's complex configuration. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-09-14-aws-networks.md b/blog/_posts/2022-09-14-aws-networks.md
index 1e570367c..3fe42348c 100644
--- a/blog/_posts/2022-09-14-aws-networks.md
+++ b/blog/_posts/2022-09-14-aws-networks.md
@@ -1,7 +1,5 @@
---
title: "Introduction to AWS Networking"
-categories:
- - Tutorials
toc: true
author: Josh
toc: false
@@ -15,6 +13,8 @@ internal-links:
excerpt: |
Learn the basics of AWS networking and how to set up your own virtual private cloud (VPC) from scratch. This tutorial covers regions, availability zones, subnets, internet gateways, and route tables, and includes step-by-step instructions for creating an EC2 instance and deploying a web server using Nginx.
last_modified_at: 2023-07-19
+categories:
+ - cli
---
**The article explains how to create a network in AWS. Earthly streamlines the build process for DevOps engineers working with AWS. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-09-16-automate-micsvcs-in-k8s.md b/blog/_posts/2022-09-16-automate-micsvcs-in-k8s.md
index 5643f03fd..234788f19 100644
--- a/blog/_posts/2022-09-16-automate-micsvcs-in-k8s.md
+++ b/blog/_posts/2022-09-16-automate-micsvcs-in-k8s.md
@@ -1,7 +1,5 @@
---
title: "How to automate a microservice setup in Kubernetes using Earthly"
-categories:
- - Tutorials
toc: true
author: Ayomide Akinola
@@ -12,6 +10,8 @@ funnel: 2
excerpt: |
Learn how to automate your microservice setup in Kubernetes using Earthly. This tutorial walks you through the process of creating a template, building and deploying your microservices, and automating the entire setup process.
last_modified_at: 2023-07-14
+categories:
+ - Orchestration
---
**The article discusses the automation of Kubernetes deployments. Earthly simplifies microservice build processes for Kubernetes. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-09-21-face-recog-sys-with-jupyter.md b/blog/_posts/2022-09-21-face-recog-sys-with-jupyter.md
index 673f166aa..5c0ee15a8 100644
--- a/blog/_posts/2022-09-21-face-recog-sys-with-jupyter.md
+++ b/blog/_posts/2022-09-21-face-recog-sys-with-jupyter.md
@@ -1,7 +1,7 @@
---
title: "Creating and Deploying a Facial Recognition System with Jupyter Notebooks and Anvil"
categories:
- - Tutorials
+ - Python
toc: true
author: Fortune Adekogbe
diff --git a/blog/_posts/2022-09-22-lima.md b/blog/_posts/2022-09-22-lima.md
index ecd19aac9..3d51cd7af 100644
--- a/blog/_posts/2022-09-22-lima.md
+++ b/blog/_posts/2022-09-22-lima.md
@@ -1,11 +1,11 @@
---
title: "Lima VM - Linux Virtual Machines On macOS"
-categories:
- - Tutorials
author: Adam
excerpt: |
Learn how to set up a Linux virtual machine on your macOS with Lima, a simple and efficient tool powered by QEMU. With Lima, you can have a Linux environment on your laptop, access all your files and ports, and even use it as an alternative to Docker Desktop.
last_modified_at: 2023-07-19
+categories:
+ - Containers
---
**This article examines the Lima virtualization tool's features. Earthly enables Lima users to streamline and parallelize their build processes on macOS. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-09-26-Flux-vs-Argo-CD.md b/blog/_posts/2022-09-26-Flux-vs-Argo-CD.md
index 4e21e4be4..2db5a11b6 100644
--- a/blog/_posts/2022-09-26-Flux-vs-Argo-CD.md
+++ b/blog/_posts/2022-09-26-Flux-vs-Argo-CD.md
@@ -1,7 +1,5 @@
---
title: "Comparison: Flux vs Argo CD"
-categories:
- - Tutorials
toc: true
author: David Szakallas
@@ -15,6 +13,8 @@ topic: ci
excerpt: |
In this article, the author compares two popular GitOps tools, Flux and Argo CD. They discuss various aspects such as reconciliation, source tracking, configuration, Helm support, scaling out, permissions and access control, and more. The article provides insights into the similarities and differences between the two tools, helping readers make an informed decision based on their specific needs.
last_modified_at: 2023-08-17
+categories:
+ - Deployment
---
**The article compares Flux and Argo CD. Earthly enhances CI/CD security with isolated build environments, unlike Argo CD. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-09-30-use-replicasets-in-k8s.md b/blog/_posts/2022-09-30-use-replicasets-in-k8s.md
index 54e3f7bb5..c7a996d76 100644
--- a/blog/_posts/2022-09-30-use-replicasets-in-k8s.md
+++ b/blog/_posts/2022-09-30-use-replicasets-in-k8s.md
@@ -1,7 +1,5 @@
---
title: "How to use ReplicaSets in Kubernetes and Why You Should Know About Them"
-categories:
- - Tutorials
toc: true
author: Vivek Kumar Singh
@@ -13,6 +11,8 @@ internal-links:
excerpt: |
Learn how to use ReplicaSets in Kubernetes to ensure fault tolerance and high availability for your applications. This tutorial explains what ReplicaSets are, how to create them using YAML, and how they work internally. If you want to build a fault-tolerant and scalable system with Kubernetes, understanding ReplicaSets is essential.
last_modified_at: 2023-07-19
+categories:
+ - Orchestration
---
**This article explains Kubernetes ReplicaSets. Earthly significantly reduces build times during Kubernetes scaling. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-10-04-build-real-time-comm-app.md b/blog/_posts/2022-10-04-build-real-time-comm-app.md
index 122b9daa9..2979229a0 100644
--- a/blog/_posts/2022-10-04-build-real-time-comm-app.md
+++ b/blog/_posts/2022-10-04-build-real-time-comm-app.md
@@ -1,7 +1,5 @@
---
title: "WebSocket Protocol with Django Channels"
-categories:
- - Tutorials
toc: true
author: Mustapha Ahmad Ayodeji
@@ -12,6 +10,8 @@ internal-links:
excerpt: |
Learn how to build a real-time communication application with Django Channels and the WebSocket Protocol. This tutorial will guide you through setting up the project, creating the necessary models and views, and handling WebSocket connections. Get ready to dive into the world of real-time communication!
last_modified_at: 2023-07-19
+categories:
+ - Python
---
**This article details how to construct chat applications with WebSockets. Earthly accelerates service builds, including for WebSockets. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-10-09-explore-portainer-as-tool.md b/blog/_posts/2022-10-09-explore-portainer-as-tool.md
index 257b24e0f..1a3b0496e 100644
--- a/blog/_posts/2022-10-09-explore-portainer-as-tool.md
+++ b/blog/_posts/2022-10-09-explore-portainer-as-tool.md
@@ -1,7 +1,5 @@
---
title: "Using Portainer with Docker and Kubernetes"
-categories:
- - Tutorials
toc: true
author: Mercy Bassey
@@ -13,6 +11,8 @@ internal-links:
excerpt: |
Learn how to use Portainer, an open-source container management tool, to easily deploy and manage Docker containers without the need for complex command-line interfaces. With Portainer's graphical user interface, you can view and administer your containerized applications with ease.
last_modified_at: 2023-07-19
+categories:
+ - Containers
---
**This article explores the capabilities of Portainer in managing containers. Earthly ensures the production of dependable build artifacts. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-10-17-set-up-postgresql-db.md b/blog/_posts/2022-10-17-set-up-postgresql-db.md
index 593e5c63c..b1e63c2d1 100644
--- a/blog/_posts/2022-10-17-set-up-postgresql-db.md
+++ b/blog/_posts/2022-10-17-set-up-postgresql-db.md
@@ -1,7 +1,5 @@
---
title: "Postgres Database Replication in Django"
-categories:
- - Tutorials
toc: true
author: Mustapha Ahmad Ayodeji
@@ -12,6 +10,8 @@ internal-links:
excerpt: |
Learn how to configure Postgres database replication in Django and connect it to a Django application. This tutorial covers the steps to set up a primary database and a hot standby database, create a Django database router, and route queries to the appropriate databases.
last_modified_at: 2023-07-19
+categories:
+ - Python
---
**This article is about PostgreSQL replication setup. DevOps professionals using 3-tier architectures will find Earthly's reproducible builds a game-changer. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-10-19-build-GraphQL-APIs-Go.md b/blog/_posts/2022-10-19-build-GraphQL-APIs-Go.md
index 5b201a37f..80d1fc086 100644
--- a/blog/_posts/2022-10-19-build-GraphQL-APIs-Go.md
+++ b/blog/_posts/2022-10-19-build-GraphQL-APIs-Go.md
@@ -1,7 +1,5 @@
---
title: "How to Build GraphQL APIs Using Go"
-categories:
- - Tutorials
toc: true
author: Rose Chege
@@ -13,6 +11,8 @@ internal-links:
excerpt: |
Learn how to build GraphQL APIs using Go and MySQL. This tutorial covers the basics of GraphQL, setting up a Go GraphQL server using gqlgen, connecting to a MySQL database, and implementing resolvers for mutations and queries. If you're interested in building efficient and type-safe APIs with Go, this article is for you.
last_modified_at: 2023-07-19
+categories:
+ - Golang
---
**This article discusses GraphQL with Go. Earthly simplifies the build process for Go developers working with GraphQL APIs. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-10-23-K3s-and-K8s.md b/blog/_posts/2022-10-23-K3s-and-K8s.md
index f80dd0234..2949ed990 100644
--- a/blog/_posts/2022-10-23-K3s-and-K8s.md
+++ b/blog/_posts/2022-10-23-K3s-and-K8s.md
@@ -1,7 +1,5 @@
---
title: "K3s vs K8s"
-categories:
- - Tutorials
toc: true
author: James Walker
@@ -13,6 +11,8 @@ internal-links:
excerpt: |
Learn about the differences between K3s and K8s, two popular container orchestration tools. Discover how K3s offers a lightweight and easy-to-deploy alternative to the more complex Kubernetes, making it ideal for resource-constrained environments and local development clusters.
last_modified_at: 2023-07-14
+categories:
+ - Orchestration
---
**This article compares K3s and K8s, highlighting their differences. Earthly provides K8s users with consistent and efficient container builds. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-10-26-concurrency-in-Go.md b/blog/_posts/2022-10-26-concurrency-in-Go.md
index 415611f18..148d91fcf 100644
--- a/blog/_posts/2022-10-26-concurrency-in-Go.md
+++ b/blog/_posts/2022-10-26-concurrency-in-Go.md
@@ -1,7 +1,5 @@
---
title: "Concurrency in Go"
-categories:
- - Tutorials
toc: true
author: Ifihanagbara Olusheye
@@ -12,6 +10,8 @@ internal-links:
excerpt: |
Learn how to use concurrency in Go to run multiple processes simultaneously, improve speed and performance, and communicate between goroutines using channels. Discover the benefits and challenges of concurrent programming in this informative article.
last_modified_at: 2023-07-19
+categories:
+ - Golang
---
**This article explains Go concurrency essentials. Earthly accelerates Go development with its cache for faster builds. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-10-29-python-subprocess.md b/blog/_posts/2022-10-29-python-subprocess.md
index 91de4cec6..258de8ccd 100644
--- a/blog/_posts/2022-10-29-python-subprocess.md
+++ b/blog/_posts/2022-10-29-python-subprocess.md
@@ -1,7 +1,5 @@
---
title: "How to Use Python's Subprocess Module"
-categories:
- - Tutorials
toc: true
author: Bala Priya C
internal-links:
@@ -12,6 +10,8 @@ last_modified_at: 2023-04-17
excerpt: |
Learn how to use Python's subprocess module to run external commands, capture and process outputs, redirect output to files, and more. This tutorial covers the basics of the subprocess module and provides examples on how to run commands, handle errors, redirect outputs, and change the environment of a subprocess. Whether you're a beginner or an experienced Python developer, this guide will help you enhance your scripting capabilities.
last_modified_at: 2023-07-11
+categories:
+ - Python
---
**This article explains Python's `subprocess` module. Earthly streamlines build automation for Python developers. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-10-31-how-to-use-docker-in-vscode.md b/blog/_posts/2022-10-31-how-to-use-docker-in-vscode.md
index 71f8c1745..fc27d9d75 100644
--- a/blog/_posts/2022-10-31-how-to-use-docker-in-vscode.md
+++ b/blog/_posts/2022-10-31-how-to-use-docker-in-vscode.md
@@ -1,7 +1,5 @@
---
title: "How to use Docker in VS Code"
-categories:
- - Tutorials
toc: true
author: Temitope Oyedele
@@ -12,6 +10,8 @@ internal-links:
excerpt: |
Learn how to use Docker in VS Code with the Docker extension. This article walks you through the process of building, managing, and deploying containerized applications without leaving your code editor, making Docker management easier and more efficient.
last_modified_at: 2023-07-19
+categories:
+ - Containers
---
**This article explains how to use Docker with VS Code. Earthly ensures consistent builds using containerization. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-11-03-deploy-DockerContainers-with-ECS.md b/blog/_posts/2022-11-03-deploy-DockerContainers-with-ECS.md
index ecbe04543..0b45b0f51 100644
--- a/blog/_posts/2022-11-03-deploy-DockerContainers-with-ECS.md
+++ b/blog/_posts/2022-11-03-deploy-DockerContainers-with-ECS.md
@@ -1,7 +1,5 @@
---
title: "Deploying Docker Containers with ECS"
-categories:
- - Tutorials
toc: true
author: Somtochukwu Uchegbu
@@ -13,6 +11,8 @@ internal-links:
excerpt: |
Learn how to deploy Docker containers with AWS ECS, a beginner-friendly and cost-effective container service. With auto-scaling and a serverless option, AWS ECS makes it easy to manage and run your container applications.
last_modified_at: 2023-07-19
+categories:
+ - Cloud
---
**The article details how to deploy Django applications on AWS ECS. Developers use Earthly for reliable Docker image construction. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-11-06-simplify-k8s-using-cr-cp.md b/blog/_posts/2022-11-06-simplify-k8s-using-cr-cp.md
index 191ccd50a..8fa4b0356 100644
--- a/blog/_posts/2022-11-06-simplify-k8s-using-cr-cp.md
+++ b/blog/_posts/2022-11-06-simplify-k8s-using-cr-cp.md
@@ -1,7 +1,5 @@
---
title: "How To Simplify Kubernetes Configuration Using Custom Resources And Controllers"
-categories:
- - Tutorials
toc: true
author: Ayomide Akinola
@@ -12,6 +10,8 @@ internal-links:
excerpt: |
Learn how to simplify your Kubernetes configuration management using custom resources and controllers. This article guides you through creating a configuration template for your microservice infrastructure and shows you how to use a custom controller to generate microservice configurations from the template.
last_modified_at: 2023-07-19
+categories:
+ - Orchestration
---
**The article provides an in-depth look at Kubernetes configuration templates. Earthly simplifies the continuous integration pipeline for microservices, benefiting those who use Kubernetes. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-11-07-go-workspaces.md b/blog/_posts/2022-11-07-go-workspaces.md
index 96ceeb5a6..f435aa627 100644
--- a/blog/_posts/2022-11-07-go-workspaces.md
+++ b/blog/_posts/2022-11-07-go-workspaces.md
@@ -1,7 +1,5 @@
---
title: "Golang Workspaces"
-categories:
- - Tutorials
toc: true
author: Ryan
author2: Josh
@@ -17,6 +15,8 @@ internal-links:
excerpt: |
Learn how to simplify your Go development process with Golang Workspaces. This article explores the concept of workspaces and how they can help you manage dependencies across multiple modules in your project, without the need for manual editing of `go.mod` files. Discover how to set up a workspace, make local changes to modules, and ensure that your changes are reflected across all dependent modules.
last_modified_at: 2023-07-19
+categories:
+ - Golang
---
**This article explains how to use Go workspaces effectively. Earthly simplifies the build process for multi-module Go projects. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-11-08-chroot.md b/blog/_posts/2022-11-08-chroot.md
index 1c6030d4a..4f0f86f6a 100644
--- a/blog/_posts/2022-11-08-chroot.md
+++ b/blog/_posts/2022-11-08-chroot.md
@@ -1,7 +1,5 @@
---
title: "Containers are chroot with a Marketing Budget"
-categories:
- - Articles
toc: true
author: Adam
bottomcta: false
@@ -10,6 +8,8 @@ internal-links:
excerpt: |
In this article, the author explores the concept of containers and how they are essentially chrooted processes. They walk through the process of building a container runtime using only the chroot system call, providing a deeper understanding of how containers work and demystifying their magic.
last_modified_at: 2023-07-19
+categories:
+ - Containers
---
**This article explains container technology basics. Earthly utilizes containers to improve build automation through process isolation. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-11-10-rancher-managing-k8s.md b/blog/_posts/2022-11-10-rancher-managing-k8s.md
index 0a6d53378..287c0eeab 100644
--- a/blog/_posts/2022-11-10-rancher-managing-k8s.md
+++ b/blog/_posts/2022-11-10-rancher-managing-k8s.md
@@ -1,7 +1,5 @@
---
title: "Can Rancher Help You Better Manage Kubernetes?"
-categories:
- - Tutorials
toc: true
author: Damaso Sanoja
editor: Bala Priya C
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
Learn how Rancher can help you better manage your Kubernetes clusters, regardless of where they're hosted. With features like deploying managed Kubernetes clusters, importing existing clusters, enforcing security, and providing a centralized interface for multi-cluster management, Rancher simplifies the management and monitoring of your Kubernetes deployments.
last_modified_at: 2023-07-14
+categories:
+ - Orchestration
---
**This article is about Rancher Kubernetes management. Earthly provides precise build automation to enhance your CI pipeline's consistency and speed. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-11-14-k8s-role-based-access-control.md b/blog/_posts/2022-11-14-k8s-role-based-access-control.md
index 30f99f7b0..e9d2c2ac3 100644
--- a/blog/_posts/2022-11-14-k8s-role-based-access-control.md
+++ b/blog/_posts/2022-11-14-k8s-role-based-access-control.md
@@ -1,7 +1,5 @@
---
title: "An Ultimate Guide to Kubernetes Role-Based Access Control"
-categories:
- - Tutorials
toc: true
author: Boemo Wame Mmopelwa
@@ -12,6 +10,8 @@ internal-links:
excerpt: |
Learn how to implement Role-Based Access Control (RBAC) in Kubernetes to secure resources and components from unauthorized access. This tutorial covers the creation of Roles and RoleBindings at both the cluster and namespace levels, as well as the differences between ClusterRoles and Roles.
last_modified_at: 2023-07-19
+categories:
+ - Orchestration
---
**This article examines the details of implementing Kubernetes RBAC. Earthly provides secure CI pipelines through isolated build environments. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-11-19-canary-deployment-in-k8s.md b/blog/_posts/2022-11-19-canary-deployment-in-k8s.md
index 82c4843ad..0e002c01f 100644
--- a/blog/_posts/2022-11-19-canary-deployment-in-k8s.md
+++ b/blog/_posts/2022-11-19-canary-deployment-in-k8s.md
@@ -1,7 +1,5 @@
---
title: "Using Canary Deployments in Kubernetes"
-categories:
- - Tutorials
toc: true
author: Sooter Saalu
editor: Bala Priya C
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
Learn how to use canary deployments in Kubernetes to mitigate the risks of application updates and ensure zero downtime for your users. This article explains the concept of canary deployments, how they work in Kubernetes, and how to implement them in your CI/CD pipeline.
last_modified_at: 2023-08-17
+categories:
+ - Deployment
---
**The article provides an in-depth look at Kubernetes canary deployments. Earthly streamlines the build process in canary deployment workflows for Kubernetes. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-11-23-helm-k8s-package-manager.md b/blog/_posts/2022-11-23-helm-k8s-package-manager.md
index 0a537ffde..3eb16112c 100644
--- a/blog/_posts/2022-11-23-helm-k8s-package-manager.md
+++ b/blog/_posts/2022-11-23-helm-k8s-package-manager.md
@@ -1,7 +1,5 @@
---
title: "Helm: The Kubernetes Package Manager"
-categories:
- - Tutorials
toc: true
author: Mercy Bassey
editor: Bala Priya C
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
Learn how to use Helm, the Kubernetes package manager, to deploy complex applications quickly and efficiently. With Helm charts, you can package and distribute collections of Kubernetes YAML files, making deployments more manageable and reusable. Dive into this tutorial to deploy a MongoDB database on Kubernetes using Helm and explore the benefits of using Helm for your application deployments.
last_modified_at: 2023-07-19
+categories:
+ - Orchestration
---
**This article examines how Helm integrates with MongoDB. Earthly provides consistent and reproducible builds for Helm users. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-11-26-portainer-for-docker-container-management.md b/blog/_posts/2022-11-26-portainer-for-docker-container-management.md
index 3e23d69b5..a28e82d2e 100644
--- a/blog/_posts/2022-11-26-portainer-for-docker-container-management.md
+++ b/blog/_posts/2022-11-26-portainer-for-docker-container-management.md
@@ -1,7 +1,5 @@
---
title: "Using Portainer with Docker and Docker Compose"
-categories:
- - Tutorials
toc: true
author: James Walker
editor: Bala Priya C
@@ -15,6 +13,8 @@ last_modified_at: 2023-04-17
excerpt: |
Learn how to use Portainer, a web-based Docker management system, to easily manage your containers, images, volumes, and more with a convenient graphical user interface. Discover the benefits of Portainer's features and how to deploy apps using built-in templates and your own Compose files.
last_modified_at: 2023-07-19
+categories:
+ - Containers
---
**The article provides a step-by-step guide for configuring Portainer. Earthly improves continuous integration pipelines by providing efficient caching and enabling parallel builds. Great for those using Portainer. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-11-29-structural-pattern-matching-python.md b/blog/_posts/2022-11-29-structural-pattern-matching-python.md
index da4f4d68e..6a1ab9865 100644
--- a/blog/_posts/2022-11-29-structural-pattern-matching-python.md
+++ b/blog/_posts/2022-11-29-structural-pattern-matching-python.md
@@ -1,7 +1,5 @@
---
title: "Structural Pattern Matching in Python"
-categories:
- - Tutorials
toc: true
author: Mustapha Ahmad Ayodeji
editor: Bala Priya C
@@ -13,6 +11,8 @@ internal-links:
excerpt: |
In this tutorial, you'll learn how structural pattern matching works in Python 3.10 and how to use different types of patterns to match and extract values from objects. You'll also explore real-world examples and see how this feature can be applied in various scenarios.
last_modified_at: 2023-07-19
+categories:
+ - Python
---
**This article explores Python's structural pattern matching. Earthly streamlines the build process for Python developers. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-12-01-dockercompose-vs-k8s.md b/blog/_posts/2022-12-01-dockercompose-vs-k8s.md
index 87592d6fd..00ff0160f 100644
--- a/blog/_posts/2022-12-01-dockercompose-vs-k8s.md
+++ b/blog/_posts/2022-12-01-dockercompose-vs-k8s.md
@@ -1,7 +1,5 @@
---
title: "When to Use Docker Compose vs. Kubernetes"
-categories:
- - Tutorials
toc: true
author: Roseline Bassey
editor: Bala Priya C
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
Learn about the differences between Docker Compose and Kubernetes, two popular container orchestration tools. Discover their features and use cases to determine which one is right for your needs.
last_modified_at: 2023-07-19
+categories:
+ - Orchestration
---
**The article compares Docker and Kubernetes in container orchestration. Earthly provides reproducible builds that enhance CI workflows for Kubernetes users. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-12-05-running-Grafana-in-Docker.md b/blog/_posts/2022-12-05-running-Grafana-in-Docker.md
index 8cacaba62..657606c09 100644
--- a/blog/_posts/2022-12-05-running-Grafana-in-Docker.md
+++ b/blog/_posts/2022-12-05-running-Grafana-in-Docker.md
@@ -1,7 +1,5 @@
---
title: "Make It Observable: Running Grafana in Docker"
-categories:
- - Tutorials
toc: true
author: Sooter Saalu
editor: Bala Priya C
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
Learn how to implement Grafana in Docker containers to add observability to your infrastructure, making debugging and performance optimization easier. Discover the benefits of using Grafana, its use cases, and how to create and configure Grafana containers with persistent storage.
last_modified_at: 2023-07-19
+categories:
+ - Containers
---
**This article discusses how to use Grafana within Docker containers. Earthly simplifies Docker container builds. Great for Grafana fans. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-12-09-managing-k8s-with-kubeadm.md b/blog/_posts/2022-12-09-managing-k8s-with-kubeadm.md
index d655e585d..7fe528194 100644
--- a/blog/_posts/2022-12-09-managing-k8s-with-kubeadm.md
+++ b/blog/_posts/2022-12-09-managing-k8s-with-kubeadm.md
@@ -1,7 +1,5 @@
---
title: "Building and Managing a Kubernetes Cluster Using Kubeadm"
-categories:
- - Tutorials
toc: true
author: Saka-Aiyedun Segun
editor: Bala Priya C
@@ -15,6 +13,8 @@ internal-links:
excerpt: |
Learn how to quickly bootstrap a Kubernetes cluster using kubeadm and upgrade the cluster without downtime. This tutorial provides step-by-step instructions and helpful tips for setting up and managing your Kubernetes cluster.
last_modified_at: 2023-07-19
+categories:
+ - Orchestration
---
**The article simplifies Kubernetes cluster management. Earthly enhances CI/CD with powerful build automation. A great Kubernetes companion [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-12-12-buildingrunning-NVIDIAcontainer.md b/blog/_posts/2022-12-12-buildingrunning-NVIDIAcontainer.md
index ae9ed8652..7a2cc6832 100644
--- a/blog/_posts/2022-12-12-buildingrunning-NVIDIAcontainer.md
+++ b/blog/_posts/2022-12-12-buildingrunning-NVIDIAcontainer.md
@@ -1,7 +1,5 @@
---
title: "Building and Running an NVIDIA Container"
-categories:
- - Tutorials
toc: true
author: James Walker
editor: Bala Priya C
@@ -13,6 +11,8 @@ internal-links:
excerpt: |
Learn how to build and run NVIDIA containers with GPU access using the NVIDIA Container Runtime. This tutorial explains the architecture of the runtime, installation steps, and how to configure GPU access in Docker containers.
last_modified_at: 2023-07-19
+categories:
+ - Containers
---
**This article examines the NVIDIA Container Runtime's features for AI and ML. Earthly simplifies the build process, whatever you build. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-12-15-cmake-vs-make-diff.md b/blog/_posts/2022-12-15-cmake-vs-make-diff.md
index f987ef483..99a94fb2c 100644
--- a/blog/_posts/2022-12-15-cmake-vs-make-diff.md
+++ b/blog/_posts/2022-12-15-cmake-vs-make-diff.md
@@ -1,7 +1,5 @@
---
title: "CMake vs. Make: What's the Difference?"
-categories:
- - Tutorials
toc: true
author: Ndafara Tsamba
editor: Bala Priya C
@@ -15,6 +13,8 @@ internal-links:
excerpt: |
Learn the key differences between CMake and Make, two popular build automation tools. Discover how CMake's cross-platform capabilities, GUI, and better dependency handling make it a preferred choice for software development.
last_modified_at: 2023-07-19
+categories:
+ - Make
---
**This article compares CMake and Make. Earthly adds reproducibility and efficient caching to either. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-12-19-app-routing-in-k8-cluster.md b/blog/_posts/2022-12-19-app-routing-in-k8-cluster.md
index 4040a24e4..287b41005 100644
--- a/blog/_posts/2022-12-19-app-routing-in-k8-cluster.md
+++ b/blog/_posts/2022-12-19-app-routing-in-k8-cluster.md
@@ -1,8 +1,6 @@
---
title: "Comprehensive guide to Defining Application Routing in Kubernetes Cluster
"
-categories:
- - Tutorials
toc: true
author: Muhammed Ali
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
Learn how to define application routing in a Kubernetes cluster with this comprehensive guide. Discover the key concepts of Ingress and Service, and how to use them effectively for routing. Plus, explore how to configure multiple paths and enable HTTPS forwarding for your applications.
last_modified_at: 2023-07-19
+categories:
+ - Orchestration
---
**This article explains how to configure Kubernetes Ingress. Earthly ensures reproducible builds for DevOps professionals who are using Kubernetes. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-12-22-yaml-in-python.md b/blog/_posts/2022-12-22-yaml-in-python.md
index 01b3aa41b..fadfeab16 100644
--- a/blog/_posts/2022-12-22-yaml-in-python.md
+++ b/blog/_posts/2022-12-22-yaml-in-python.md
@@ -1,7 +1,5 @@
---
title: "How to Work with YAML in Python"
-categories:
- - Tutorials
toc: true
author: Mercy Bassey
editor: Bala Priya C
@@ -13,6 +11,8 @@ internal-links:
excerpt: |
Learn how to work with YAML in Python, including creating, reading, modifying, and converting YAML files. This tutorial covers the basics of YAML, the PyYAML library, and how to perform various operations on YAML files using Python. Whether you're new to YAML or looking to expand your Python skills, this tutorial is a great resource.
last_modified_at: 2023-10-18
+categories:
+ - Python
---
**This article explains how to manage Python YAML with PyYAML. Earthly greatly improves continuous integration workflows involving Python. [Learn how](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-12-26-k8s-GitOps-with-FluxCD.md b/blog/_posts/2022-12-26-k8s-GitOps-with-FluxCD.md
index 4983583d3..bd8f306b2 100644
--- a/blog/_posts/2022-12-26-k8s-GitOps-with-FluxCD.md
+++ b/blog/_posts/2022-12-26-k8s-GitOps-with-FluxCD.md
@@ -1,7 +1,5 @@
---
title: "Kubernetes GitOps with FluxCD"
-categories:
- - Tutorials
toc: true
author: Saka-Aiyedun Segun
editor: Bala Priya C
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
Learn how to configure a continuous delivery pipeline with Flux for your Kubernetes cluster in this tutorial. Discover how GitOps can automate application delivery and deployment using a Git repository as the single source of truth.
last_modified_at: 2023-07-19
+categories:
+ - Orchestration
---
**This article explores how FluxCD automation can be enhanced by integrating Earthly, optimizing both build and deployment processes in Kubernetes. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-12-29-kubernetes-services.md b/blog/_posts/2022-12-29-kubernetes-services.md
index dfa47b36b..2b0a741e4 100644
--- a/blog/_posts/2022-12-29-kubernetes-services.md
+++ b/blog/_posts/2022-12-29-kubernetes-services.md
@@ -1,7 +1,5 @@
---
title: "A Developer's Guide to Kubernetes Services"
-categories:
- - Tutorials
toc: true
author: Vivek Kumar Singh
editor: Bala Priya C
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
Learn how to create and use services in Kubernetes to improve the communication and scalability of your containerized applications. This article covers the different types of services, such as ClusterIP, Headless, NodePort, and LoadBalancer, and provides step-by-step instructions on how to define and configure them using YAML files. Whether you're a beginner or an experienced developer, this guide will help you understand and leverage the power of services in Kubernetes.
last_modified_at: 2023-07-19
+categories:
+ - Orchestration
---
**This article sheds light on the complexities of Kubernetes services. Earthly streamlines the continuous integration (CI) build process for Kubernetes users. [Discover how](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2022-12-31-starting-with-pymongo.md b/blog/_posts/2022-12-31-starting-with-pymongo.md
index 9cb86baaa..4bcb9eefb 100644
--- a/blog/_posts/2022-12-31-starting-with-pymongo.md
+++ b/blog/_posts/2022-12-31-starting-with-pymongo.md
@@ -1,7 +1,5 @@
---
title: "How to get started with PyMongo"
-categories:
- - Tutorials
toc: true
author: Ashutosh Krishna
@@ -13,6 +11,8 @@ internal-links:
excerpt: |
Learn how to get started with PyMongo, the official MongoDB driver for Python. This tutorial covers setting up a remote MongoDB database using MongoDB Atlas, connecting to the database with PyMongo, and performing CRUD operations on the database.
last_modified_at: 2023-07-19
+categories:
+ - Python
---
**This article is about using MongoDB with Python. Earthly ensures consistent builds across environments. Great for PyMongo users. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-01-03-intro-to-Linux-capabilities.md b/blog/_posts/2023-01-03-intro-to-Linux-capabilities.md
index aa0c97ea1..8c3838271 100644
--- a/blog/_posts/2023-01-03-intro-to-Linux-capabilities.md
+++ b/blog/_posts/2023-01-03-intro-to-Linux-capabilities.md
@@ -1,7 +1,5 @@
---
title: "An Introduction to Linux Capabilities"
-categories:
- - Tutorials
toc: true
author: Anurag Kumar
editor: Bala Priya C
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
Learn about Linux capabilities and how they allow for fine-grained control over the privileges of running processes. Discover how to use capabilities in Docker containers and Kubernetes, and understand the importance of setting the right capabilities for your containerized workloads.
last_modified_at: 2023-07-19
+categories:
+ - cli
---
**This article explains Linux capabilities management. Earthly ensures consistent and efficient Docker image builds. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-01-05-installandrun-CMake-on-windows.md b/blog/_posts/2023-01-05-installandrun-CMake-on-windows.md
index 259af98f0..c67549e0e 100644
--- a/blog/_posts/2023-01-05-installandrun-CMake-on-windows.md
+++ b/blog/_posts/2023-01-05-installandrun-CMake-on-windows.md
@@ -1,7 +1,5 @@
---
title: "How to Install and Run CMake on Windows"
-categories:
- - Tutorials
toc: true
author: Sarah Lean
@@ -13,6 +11,8 @@ internal-links:
excerpt: |
Learn how to install and run CMake on Windows, a powerful tool for build automation, testing, packaging, and software installation. Discover the pros and cons of using CMake and how it can enhance your development workflow.
last_modified_at: 2023-07-19
+categories:
+ - Make
---
**This article explains how CMake handles complex build processes. Earthly provides robust caching mechanisms to improve on CMake's efficiency. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-01-09-k8s-cluster-security.md b/blog/_posts/2023-01-09-k8s-cluster-security.md
index 280bab3d6..f935e67d9 100644
--- a/blog/_posts/2023-01-09-k8s-cluster-security.md
+++ b/blog/_posts/2023-01-09-k8s-cluster-security.md
@@ -1,7 +1,5 @@
---
title: "Harden Kubernetes cluster with pod and container security contexts"
-categories:
- - Tutorials
toc: true
author: Muhammad Badawy
@@ -13,6 +11,8 @@ internal-links:
excerpt: |
Learn how to secure your Kubernetes cluster by applying security contexts to pods and containers. This article explains the concept of security contexts, their implementation in Kubernetes, and provides a step-by-step guide on how to apply them to enhance the overall security of your cluster.
last_modified_at: 2023-07-19
+categories:
+ - Orchestration
---
**This article provides a clear understanding of Kubernetes security contexts. Earthly strengthens CI pipelines with advanced caching. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-01-12-docker-init-rust.md b/blog/_posts/2023-01-12-docker-init-rust.md
index fdd91df2e..a37215445 100644
--- a/blog/_posts/2023-01-12-docker-init-rust.md
+++ b/blog/_posts/2023-01-12-docker-init-rust.md
@@ -1,7 +1,5 @@
---
title: "Using Docker Init in Rust"
-categories:
- - Tutorials
toc: true
author: Ikeh Akinyemi
@@ -13,6 +11,9 @@ internal-links:
- using rust with docker
excerpt: |
This tutorial explains how to use `docker init` in Rust projects to simplify the setup of Docker-related files. It automatically generates `Dockerfile`, `compose.yaml`, and `.dockerignore` files, making it easier to containerize Rust applications.
+categories:
+ - Containers
+ - Rust
---
**This article explains how to use `docker init` in Rust projects. Earthly provides a more efficient and reproducible build process for containerizing Rust. [Learn More](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-01-12-ninjabuild-for-faster-build.md b/blog/_posts/2023-01-12-ninjabuild-for-faster-build.md
index 646943224..1d74016fd 100644
--- a/blog/_posts/2023-01-12-ninjabuild-for-faster-build.md
+++ b/blog/_posts/2023-01-12-ninjabuild-for-faster-build.md
@@ -1,7 +1,5 @@
---
title: "Using Ninja Build to Build Projects Faster"
-categories:
- - Tutorials
toc: true
author: Antreas Antoniou
editor: Bala Priya C
@@ -13,6 +11,8 @@ internal-links:
excerpt: |
Learn how to use Ninja, a fast build system, to speed up the building of your software projects. Discover its advantages, limitations, and how to implement a Ninja build for your C++ projects.
last_modified_at: 2023-07-19
+categories:
+ - Make
---
**This article discusses the Ninja build tool. Earthly ensures consistent builds across team environments with its reproducibility features. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-01-15-k8s-distributed-tracing.md b/blog/_posts/2023-01-15-k8s-distributed-tracing.md
index 28453b65a..5f10ddcb8 100644
--- a/blog/_posts/2023-01-15-k8s-distributed-tracing.md
+++ b/blog/_posts/2023-01-15-k8s-distributed-tracing.md
@@ -1,7 +1,5 @@
---
title: "Distributed Tracing in Kubernetes With SigNoz"
-categories:
- - Tutorials
toc: true
author: Ayomide Akinola
@@ -13,6 +11,8 @@ internal-links:
excerpt: |
Learn how to set up distributed tracing in Kubernetes with SigNoz, an open-source Metrics, Tracing, and Logging tool for distributed systems. This article explains what distributed tracing is, how it works, and provides step-by-step instructions on how to configure and use SigNoz on your Kubernetes cluster.
last_modified_at: 2023-07-19
+categories:
+ - Orchestration
---
**This article explains the key elements of distributed tracing. Earthly maintains consistent CI for developers. Pair it with Signoz. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-01-18-makefile-variables.md b/blog/_posts/2023-01-18-makefile-variables.md
index 4d41ea06c..1e7ac3174 100644
--- a/blog/_posts/2023-01-18-makefile-variables.md
+++ b/blog/_posts/2023-01-18-makefile-variables.md
@@ -1,7 +1,5 @@
---
title: "Understanding and Using Makefile Variables"
-categories:
- - Tutorials
toc: true
author: Aniket Bhattacharyea
editor: Bala Priya C
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
Learn all about Makefile variables and how to use them to automate complex processes in your code. Find out how to set variables, append to them, and use special variables like automatic and implicit variables.
last_modified_at: 2023-07-19
+categories:
+ - Make
---
**The article explains the intricacies of Makefile variables. Earthly improves on Makefile performance by introducing sophisticated caching and concurrent execution. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-01-21-python-with-statement.md b/blog/_posts/2023-01-21-python-with-statement.md
index 9451e930c..b8bfece9c 100644
--- a/blog/_posts/2023-01-21-python-with-statement.md
+++ b/blog/_posts/2023-01-21-python-with-statement.md
@@ -1,7 +1,5 @@
---
title: "Introduction to Context Managers and the with Keyword in Python"
-categories:
- - Tutorials
toc: true
author: Ashutosh Krishna
@@ -12,6 +10,8 @@ internal-links:
excerpt: |
Learn how to use the `with` keyword in Python to handle exceptions and ensure proper resource management. This article explains the concept of context managers and provides examples of creating your own classes and functions that support the `with` statement. Whether you're working with files, locks, or other types of connections, understanding the `with` statement is essential for writing clean and efficient Python code.
last_modified_at: 2023-07-19
+categories:
+ - Python
---
**This article explains the `with` statement in Python. The `with` statement in Python streamlines exception handling. Earthly simplifies the build process in continuous integration. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-01-24-setup-typescript-monorepo.md b/blog/_posts/2023-01-24-setup-typescript-monorepo.md
index 2debe7522..86d026932 100644
--- a/blog/_posts/2023-01-24-setup-typescript-monorepo.md
+++ b/blog/_posts/2023-01-24-setup-typescript-monorepo.md
@@ -1,7 +1,5 @@
---
title: "How to Set Up a TypeScript Monorepo"
-categories:
- - Tutorials
toc: true
author: Antonello Zanini
editor: Bala Priya C
@@ -16,6 +14,8 @@ internal-links:
excerpt: |
Learn how to set up a TypeScript monorepo using npm workspaces. This tutorial covers the benefits of monorepos, how to define local packages, and how to use them within your monorepo.
last_modified_at: 2023-07-11
+categories:
+ - Build
---
**The article discusses the advantages of a monorepo approach. Earthly streamlines the build process and guarantees uniformity in builds across multiple projects. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-01-27-build-and-deploy-PyApp-with-bazel.md b/blog/_posts/2023-01-27-build-and-deploy-PyApp-with-bazel.md
index 8baa1fe8d..2da5a9b98 100644
--- a/blog/_posts/2023-01-27-build-and-deploy-PyApp-with-bazel.md
+++ b/blog/_posts/2023-01-27-build-and-deploy-PyApp-with-bazel.md
@@ -1,7 +1,5 @@
---
title: "Building and Deploying a Python App with Bazel"
-categories:
- - Tutorials
toc: true
author: Artem Oppermann
sidebar:
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
Learn how to build and deploy a Python app with Bazel, a build automation tool. This article provides a step-by-step guide on implementing Bazel for building Python apps and demonstrates how to create a Flask app using Bazel. If you're interested in simplifying your software builds and deployments, this article is a must-read.
last_modified_at: 2023-07-11
+categories:
+ - Bazel
---
**The article provides insights into the effectiveness of Bazel for build automation. Earthly guarantees reproducible builds, complementing Bazel's scalable architecture. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-01-31-deploy-dockcontainers-to-AWSECS-using-Terraform.md b/blog/_posts/2023-01-31-deploy-dockcontainers-to-AWSECS-using-Terraform.md
index 5764eb708..cfddaf361 100644
--- a/blog/_posts/2023-01-31-deploy-dockcontainers-to-AWSECS-using-Terraform.md
+++ b/blog/_posts/2023-01-31-deploy-dockcontainers-to-AWSECS-using-Terraform.md
@@ -1,7 +1,5 @@
---
title: "Deploying Docker Containers to AWS ECS Using Terraform"
-categories:
- - Tutorials
toc: true
author: Rose Chege
@@ -13,6 +11,9 @@ internal-links:
excerpt: |
Learn how to automate the process of deploying Docker containers to AWS ECS using Terraform. This tutorial provides step-by-step instructions and code examples to help you set up the necessary infrastructure and launch your containers on AWS.
last_modified_at: 2023-07-19
+categories:
+ - IaC
+ - Containers
---
**This article explains how to automate ECS deployment. Earthly simplifies the Docker container build process. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-02-01-vscode-git.md b/blog/_posts/2023-02-01-vscode-git.md
index c33a9343a..058b8a3e4 100644
--- a/blog/_posts/2023-02-01-vscode-git.md
+++ b/blog/_posts/2023-02-01-vscode-git.md
@@ -1,12 +1,12 @@
---
title: "Store VS Code `Settings.json` in Git"
-categories:
- - Tutorials
toc: true
author: Adam
excerpt: |
Learn how to store your VS Code settings in Git to easily manage and share your customizations. Keep all your settings in one place and avoid breaking anything when customizing your VS Code experience.
last_modified_at: 2023-07-19
+categories:
+ - Make
---
**This article explains how to sync your VS Code settings effortlessly. Earthly improves your CI builds. [Learn how](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-02-02-building-js-monorepo.md b/blog/_posts/2023-02-02-building-js-monorepo.md
index 88eeeae7f..9107a04cf 100644
--- a/blog/_posts/2023-02-02-building-js-monorepo.md
+++ b/blog/_posts/2023-02-02-building-js-monorepo.md
@@ -1,7 +1,5 @@
---
title: "Building Your JavaScript Monorepo"
-categories:
- - Tutorials
toc: true
author: Paul Ibeabuchi
sidebar:
@@ -15,6 +13,8 @@ internal-links:
excerpt: |
Learn about the different monorepo tools available for building JavaScript projects, including Bazel, Gradle, Lage, Lerna, and Rush. Discover their features, benefits, and drawbacks to determine which one is the best fit for your needs.
last_modified_at: 2023-07-11
+categories:
+ - Bazel
---
**This article compares tools for managing monorepos. Earthly ensures build consistency with a containerized approach that is simpler than Bazel's. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-02-06-openshift-vs-kubernetes.md b/blog/_posts/2023-02-06-openshift-vs-kubernetes.md
index 0bfbf65a4..b90376445 100644
--- a/blog/_posts/2023-02-06-openshift-vs-kubernetes.md
+++ b/blog/_posts/2023-02-06-openshift-vs-kubernetes.md
@@ -1,7 +1,5 @@
---
title: "OpenShift vs. Kubernetes: Understanding Container Orchestration Options"
-categories:
- - Tutorials
toc: true
author: Hrittik Roy
editor: Bala Priya C
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
Learn the key differences between OpenShift and Kubernetes, two popular container orchestration tools, and discover which one is the best fit for your cloud-native strategy. Find out how these platforms compare in terms of ease of use, deployment, continuous integration, security, installation, and updates.
last_modified_at: 2023-07-19
+categories:
+ - Orchestration
---
**The article compares Kubernetes and OpenShift. Earthly provides isolated build environments for enhanced security in CI/CD. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-02-09-practical-guide-to-linux-echo-cmd.md b/blog/_posts/2023-02-09-practical-guide-to-linux-echo-cmd.md
index 06a336df6..2aa74e216 100644
--- a/blog/_posts/2023-02-09-practical-guide-to-linux-echo-cmd.md
+++ b/blog/_posts/2023-02-09-practical-guide-to-linux-echo-cmd.md
@@ -1,7 +1,5 @@
---
title: "A Practical Guide To Linux Echo Command"
-categories:
- - Tutorials
toc: true
author: Ubaydah Abdulwasiu
editor: Bala Priya C
@@ -12,6 +10,8 @@ internal-links:
- Command
- Echo
last_modified_at: 2023-07-19
+categories:
+ - cli
---
**This article explains the Linux `echo` command in detail. Earthly improves continuous integration (CI) workflows by isolating shell scripts. [Learn how](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-02-12-build-nodejs-app-with-bazel.md b/blog/_posts/2023-02-12-build-nodejs-app-with-bazel.md
index 5c1eb3c17..8bc7b1013 100644
--- a/blog/_posts/2023-02-12-build-nodejs-app-with-bazel.md
+++ b/blog/_posts/2023-02-12-build-nodejs-app-with-bazel.md
@@ -1,7 +1,5 @@
---
title: "How to Build Node.js Application with Bazel"
-categories:
- - Tutorials
toc: true
author: Rose Chege
sidebar:
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
Learn how to build a Node.js application with Bazel, an open-source build tool that speeds up builds and tests. This tutorial guides you through setting up the Bazel environment, implementing and testing a simple calculator application, and exposing it on a web server.
last_modified_at: 2023-07-11
+categories:
+ - Bazel
---
**This article examines how Bazel and Node.js combine for better build automation. Earthly simplifies this approach with robust caching. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-02-16-psycopg2-postgres-python.md b/blog/_posts/2023-02-16-psycopg2-postgres-python.md
index d2a56f584..dab6d874d 100644
--- a/blog/_posts/2023-02-16-psycopg2-postgres-python.md
+++ b/blog/_posts/2023-02-16-psycopg2-postgres-python.md
@@ -1,7 +1,5 @@
---
title: "PostgreSQL in Python Using Psycopg2"
-categories:
- - Tutorials
toc: true
author: Bala Priya C
@@ -13,6 +11,8 @@ internal-links:
excerpt: |
Learn how to connect to PostgreSQL databases and run queries using the psycopg2 library in Python. This tutorial covers the basics of connecting to a database, running SQL queries, handling connection errors, and simplifying querying using context managers.
last_modified_at: 2023-07-19
+categories:
+ - Python
---
**This article provides a tutorial on psycopg2. Earthly enhances build consistency when using psycopg2, or any python lib. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-02-19-streamlit-python-dashboard.md b/blog/_posts/2023-02-19-streamlit-python-dashboard.md
index 90371a68e..a0369c9b1 100644
--- a/blog/_posts/2023-02-19-streamlit-python-dashboard.md
+++ b/blog/_posts/2023-02-19-streamlit-python-dashboard.md
@@ -1,7 +1,5 @@
---
title: "Build a Data Dashboard with Streamlit in Python"
-categories:
- - Tutorials
toc: true
author: Barine Sambaris
editor: Bala Priya C
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
Learn how to build a data dashboard with Streamlit in Python. This tutorial will teach you how to create interactive visualizations and deploy web apps for data analysis and machine learning models.
last_modified_at: 2023-07-19
+categories:
+ - Python
---
**The Streamlit dashboard tutorial teaches efficient data visualization project builds. Streamlit users will find Earthly streamlines app development. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-02-27-golang-gin-framework.md b/blog/_posts/2023-02-27-golang-gin-framework.md
index a21463255..d010b8217 100644
--- a/blog/_posts/2023-02-27-golang-gin-framework.md
+++ b/blog/_posts/2023-02-27-golang-gin-framework.md
@@ -1,7 +1,5 @@
---
title: "Go with the Gin Framework"
-categories:
- - Tutorials
toc: true
author: Ukeje Goodness
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
Learn how to build web applications in Go using the Gin framework. This tutorial will guide you through developing a CRUD API and using features like routing, JSON parsing, and database operations with GORM.
last_modified_at: 2023-07-19
+categories:
+ - Golang
---
**This article delves into Gin web development. Earthly simplifies the Go build process for developers. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-03-02-django-signals.md b/blog/_posts/2023-03-02-django-signals.md
index 7d2e74778..6bf4c9439 100644
--- a/blog/_posts/2023-03-02-django-signals.md
+++ b/blog/_posts/2023-03-02-django-signals.md
@@ -1,7 +1,5 @@
---
title: "Understanding Django Signals"
-categories:
- - Tutorials
toc: true
author: Arafat Olayiwola
editor: Bala Priya C
@@ -13,6 +11,8 @@ internal-links:
excerpt: |
Learn all about Django signals and how to use them in your project. This article covers the different types of signals, methods in the Django Signals module, and how to send, receive, and listen to signals. Plus, you'll see a practical application of signals in designing a Forgot Password endpoint.
last_modified_at: 2023-07-19
+categories:
+ - Python
---
**This article explains the use of Django signals. Earthly significantly accelerates your Django-based REST API's CI pipeline. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-03-05-pymongo-advanced.md b/blog/_posts/2023-03-05-pymongo-advanced.md
index dffed0cb0..9ff12d542 100644
--- a/blog/_posts/2023-03-05-pymongo-advanced.md
+++ b/blog/_posts/2023-03-05-pymongo-advanced.md
@@ -1,7 +1,5 @@
---
title: "Advanced MongoDB Features with PyMongo"
-categories:
- - Tutorials
toc: true
author: Ashutosh Krishna
editor: Mustapha Ahmad Ayodeji
@@ -15,6 +13,8 @@ internal-links:
excerpt: |
Learn how to use advanced features of MongoDB with PyMongo, including schema validation, data modeling patterns, and advanced queries. This tutorial will help you optimize your MongoDB database and improve the efficiency of your applications.
last_modified_at: 2023-07-19
+categories:
+ - Python
---
**This article explains the intricacies of working with MongoDB. Earthly simplifies the application build process, whether you use MongoDB or not. [Learn how](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-03-13-kubernetes-operators.md b/blog/_posts/2023-03-13-kubernetes-operators.md
index b84929248..e816edaeb 100644
--- a/blog/_posts/2023-03-13-kubernetes-operators.md
+++ b/blog/_posts/2023-03-13-kubernetes-operators.md
@@ -1,7 +1,5 @@
---
title: "Understanding Kubernetes Operators"
-categories:
- - Tutorials
toc: true
author: Saka-Aiyedun Segun
editor: Bala Priya C
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
Learn how Kubernetes operators can simplify the deployment and management of complex, stateful applications in a Kubernetes cluster. Discover the benefits of using operators, how they work, and explore real-world examples of popular Kubernetes operators.
last_modified_at: 2023-07-19
+categories:
+ - Orchestration
---
**This article explores Kubernetes operators. Earthly's containerized build automation complements this approach. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-03-17-kubernetes-secrets.md b/blog/_posts/2023-03-17-kubernetes-secrets.md
index f2d978269..6c02e444f 100644
--- a/blog/_posts/2023-03-17-kubernetes-secrets.md
+++ b/blog/_posts/2023-03-17-kubernetes-secrets.md
@@ -1,7 +1,5 @@
---
title: "An Introduction to Kubernetes Secrets"
-categories:
- - Tutorials
toc: true
author: Mercy Bassey
editor: Bala Priya C
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
Learn how to manage sensitive data in Kubernetes using secrets. This tutorial covers creating secrets, using them as environment variables or volume mounts, and pulling images from private Docker repositories using secrets.
last_modified_at: 2023-07-19
+categories:
+ - Orchestration
---
**This article discusses Kubernetes secrets management. Earthly enhances Kubernetes workflows with its containerized build automation. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-03-20-playwright-python-api-testing.md b/blog/_posts/2023-03-20-playwright-python-api-testing.md
index 5d27339b7..8f7a62879 100644
--- a/blog/_posts/2023-03-20-playwright-python-api-testing.md
+++ b/blog/_posts/2023-03-20-playwright-python-api-testing.md
@@ -1,7 +1,5 @@
---
title: "API Testing Using Playwright With Python"
-categories:
- - Tutorials
toc: true
author: Donald Le
editor: Bala Priya C
@@ -15,6 +13,8 @@ internal-links:
excerpt: |
Learn how to implement API testing using Playwright with Python and generate an allure report for your tests. Discover how to create, update, and delete GitHub repositories using Playwright's built-in methods, and see how to fix failing tests using the allure report.
last_modified_at: 2023-07-19
+categories:
+ - Python
---
**Playwright offers robust tools for API testing in Python. Earthly enhances the consistency of CI processes for API test builds and all builds. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-03-24-python-3.11-new-features.md b/blog/_posts/2023-03-24-python-3.11-new-features.md
index d5c8251db..27cde4dc0 100644
--- a/blog/_posts/2023-03-24-python-3.11-new-features.md
+++ b/blog/_posts/2023-03-24-python-3.11-new-features.md
@@ -1,7 +1,5 @@
---
title: "Introducing the New Features in Python 3.11"
-categories:
- - Tutorials
toc: true
author: Mustapha Ahmad Ayodeji
editor: Bala Priya C
@@ -13,6 +11,8 @@ internal-links:
excerpt: |
Learn about the new features in Python 3.11, including improved error handling, enhanced type annotation, a new library for working with TOML files, and performance enhancements. This article provides an overview of these features and includes code examples to help you understand how to use them.
last_modified_at: 2023-07-19
+categories:
+ - Python
---
**The new Python 3.11 update introduces several features. Earthly optimizes the build and test process for all Python versions. [Learn more](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-03-28-mutual-tls-kubernetes-nginx-ingress-controller.md b/blog/_posts/2023-03-28-mutual-tls-kubernetes-nginx-ingress-controller.md
index a5b65bfc7..0f872ad9e 100644
--- a/blog/_posts/2023-03-28-mutual-tls-kubernetes-nginx-ingress-controller.md
+++ b/blog/_posts/2023-03-28-mutual-tls-kubernetes-nginx-ingress-controller.md
@@ -1,7 +1,5 @@
---
title: "Apply Mutual TLS Over a Kubernetes Nginx Ingress Controller"
-categories:
- - Tutorials
toc: true
author: Muhammad Badawy
editor: Bala Priya C
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
Learn how to apply mutual TLS (Transport Layer Security) over a Kubernetes Nginx Ingress Controller to enhance the security of your communication sessions. This article explains the differences between TLS and mTLS, and provides a step-by-step guide on how to implement mutual TLS authentication in a Kubernetes environment.
last_modified_at: 2023-07-19
+categories:
+ - Orchestration
---
**The article explains how to implement mTLS with Kubernetes. Earthly simplifies the CI pipeline for DevOps professionals. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-03-30-aws-s3-backup-recovery-restic.md b/blog/_posts/2023-03-30-aws-s3-backup-recovery-restic.md
index ddbdbf3cf..c91e63e57 100644
--- a/blog/_posts/2023-03-30-aws-s3-backup-recovery-restic.md
+++ b/blog/_posts/2023-03-30-aws-s3-backup-recovery-restic.md
@@ -1,7 +1,5 @@
---
title: "AWS S3 Backup and Recovery With Restic"
-categories:
- - Tutorials
toc: true
author: Saka-Aiyedun Segun
editor: Bala Priya C
@@ -15,6 +13,8 @@ internal-links:
excerpt: |
Learn how to use Restic, an open-source backup software, to protect your valuable data from potential threats. This tutorial will guide you through the process of configuring Restic on your Unix machine, backing up data to an AWS S3 bucket, restoring data, and automating backups with cron jobs. Don't wait any longer, start securing your data today!
last_modified_at: 2023-07-19
+categories:
+ - Cloud
---
**This tutorial offers a step-by-step guide on using Restic for backups. For Restic users, Earthly streamlines the build process. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-04-03-javascript-monorepo-with-lerna.md b/blog/_posts/2023-04-03-javascript-monorepo-with-lerna.md
index a186441d2..4429c3d89 100644
--- a/blog/_posts/2023-04-03-javascript-monorepo-with-lerna.md
+++ b/blog/_posts/2023-04-03-javascript-monorepo-with-lerna.md
@@ -1,7 +1,5 @@
---
title: "A Guide to Setting Up Your Monorepo for JavaScript Projects with Lerna"
-categories:
- - Tutorials
toc: true
author: Cameron Pavey
editor: Mustapha Ahmad Ayodeji
@@ -18,6 +16,8 @@ internal-links:
excerpt: |
Learn how to set up a monorepo for JavaScript projects using Lerna. This tutorial covers the benefits of using Lerna, how to create packages, publish them to npm, and run CI workflows with GitHub Actions and Earthly.
last_modified_at: 2023-07-11
+categories:
+ - Build
---
**The article explains how to configure a Lerna monorepo. Earthly streamlines and accelerates monorepo build processes. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-04-04-python-earthly.md b/blog/_posts/2023-04-04-python-earthly.md
index 1c3e57012..360978327 100644
--- a/blog/_posts/2023-04-04-python-earthly.md
+++ b/blog/_posts/2023-04-04-python-earthly.md
@@ -1,7 +1,5 @@
---
title: "Better Dependency Management in Python"
-categories:
- - Tutorials
toc: true
author: Vlad
topic: python
@@ -10,6 +8,8 @@ topcta: false
excerpt: |
Learn how Earthly can simplify dependency management in Python projects, ensuring consistency across different environments and streamlining the build and deployment process. Say goodbye to the "it works on my machine" problem and focus on the core functionality of your application.
last_modified_at: 2023-07-11
+categories:
+ - Python
---
diff --git a/blog/_posts/2023-04-06-netlify-cloud-functions.md b/blog/_posts/2023-04-06-netlify-cloud-functions.md
index 1b0ede80b..1db662402 100644
--- a/blog/_posts/2023-04-06-netlify-cloud-functions.md
+++ b/blog/_posts/2023-04-06-netlify-cloud-functions.md
@@ -1,7 +1,5 @@
---
title: "Introduction to Netlify Cloud Functions"
-categories:
- - Tutorials
toc: true
author: El Achu
editor: Bala Priya C
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
Learn how to create powerful serverless applications with Netlify Functions. This tutorial covers the basics of Netlify Functions, different types of functions, and how they compare to AWS Lambda.
last_modified_at: 2023-07-19
+categories:
+ - Cloud
---
**The article provides a guide to Netlify Functions, focusing on optimization. Earthly streamlines the build process for Netlify Functions or whatever you are building. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-04-07-pants-build.md b/blog/_posts/2023-04-07-pants-build.md
index 2882a8225..3d1b6879f 100644
--- a/blog/_posts/2023-04-07-pants-build.md
+++ b/blog/_posts/2023-04-07-pants-build.md
@@ -1,7 +1,5 @@
---
title: "To Understand Pants, Understand Bazel's History"
-categories:
- - Tutorials
toc: true
sidebar:
nav: "bazel"
@@ -12,6 +10,8 @@ internal-links:
excerpt: |
This article explores the history of the build system Pants, from its early days at Google to its current version, Pants V2. It delves into the challenges faced by large tech organizations in managing builds and how Pants provides solutions for Python monorepos. If you're interested in understanding the background and development of build systems, this article is a must-read.
last_modified_at: 2023-07-11
+categories:
+ - Build
---
**This article summarizes the Pants build system. Earthly significantly enhances CI builds with its caching mechanisms. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-04-07-write-better-tutorials.md b/blog/_posts/2023-04-07-write-better-tutorials.md
index 1fc27b63c..2099bc51f 100644
--- a/blog/_posts/2023-04-07-write-better-tutorials.md
+++ b/blog/_posts/2023-04-07-write-better-tutorials.md
@@ -1,7 +1,5 @@
---
title: "How to Write a Tutorial About How to Read a CSV in Golang"
-categories:
- - Tutorials
toc: true
author: Josh
topcta: false
@@ -11,6 +9,8 @@ internal-links:
excerpt: |
Learn how to write effective technical tutorials by providing context, being patient, and running code. This article explores the common pitfalls of tutorial writing and offers advice on how to improve your tutorials.
last_modified_at: 2023-07-19
+categories:
+ - Writing
---
We've been running the Earthly blog for [over a year](/blog/write-for-us-anniversary) now, and in that time we've worked with dozens of talented writers on nearly a hundred programming tutorials.
@@ -274,7 +274,7 @@ If you run this code, and you're using the same dataset as me, your output will
[[Film Genre Lead Studio Audience score % Profitability Rotten Tomatoes % Worldwide Gross Year] [Youth in Revolt Comedy The Weinstein Company 52 1.09 68 $19.62 2010] [You Will Meet a Tall Dark Stranger Comedy Independent 35 1.211818182 43 $26.66 2010] [When in Rome Comedy Disney 44 0 15 $43.04 2010] [What Happens in Vegas Comedy Fox 72 6.267647029 28 $219.37 2008] ....
~~~
-Actually, there's way more, but for the sake of brevity, I've only included the first few lines. A couple of things to notice here. First, how is the data structured? When it was in the csv file, each row was separated by a new line and rows themselves were broken up into columns with commas. But now the data has been translated into Go and Go doesn't have a `csv` type, so it needs to convert the data into something it understands. In this case, a [slice] Actually, a slice of slices, where each slice in the larger slice represents a line in the csv.
+Actually, there's way more, but for the sake of brevity, I've only included the first few lines. A couple of things to notice here. First, how is the data structured? When it was in the csv file, each row was separated by a new line and rows themselves were broken up into columns with commas. But now the data has been translated into Go and Go doesn't have a `csv` type, so it needs to convert the data into something it understands. In this case, a [slice](https://go.dev/blog/slices-intro). Actually, a slice of slices, where each slice in the larger slice represents a line in the csv.
From here we can treat the data like any slice. For example, we can loop through it and print one line at a time to the console. Remember that each line is also a slice, so I've imported the `string` package so I can join each line of data into a simple string. This isn't necessary, I just thought it looked a little better when it printed to the console.
diff --git a/blog/_posts/2023-04-10-python-data-classes.md b/blog/_posts/2023-04-10-python-data-classes.md
index 7254f95fa..42487da7e 100644
--- a/blog/_posts/2023-04-10-python-data-classes.md
+++ b/blog/_posts/2023-04-10-python-data-classes.md
@@ -1,7 +1,5 @@
---
title: "What Are Python Data Classes?"
-categories:
- - Tutorials
toc: true
author: Bala Priya C
@@ -11,6 +9,8 @@ internal-links:
excerpt: |
In this tutorial, you'll learn about Python data classes and how they provide a convenient way to define and manage data-oriented classes. You'll explore the basics of data classes, their differences from regular classes, and how they support type hints, default values, immutability, and more. If you're interested in simplifying your data-oriented classes and improving your Python code, this tutorial is for you!
last_modified_at: 2023-07-19
+categories:
+ - Python
---
**This article explores Python data classes. Earthly streamlines the build process for Python developers, whether they are using data classes or not. [Learn more](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-04-13-customize-django-admin-site.md b/blog/_posts/2023-04-13-customize-django-admin-site.md
index a0f7d24e5..4e460def8 100644
--- a/blog/_posts/2023-04-13-customize-django-admin-site.md
+++ b/blog/_posts/2023-04-13-customize-django-admin-site.md
@@ -1,7 +1,5 @@
---
title: "Customizing the Django Admin"
-categories:
- - Tutorials
toc: true
author: Chepkirui Dorothy
editor: Mustapha Ahmad Ayodeji
@@ -13,6 +11,8 @@ internal-links:
excerpt: |
Learn how to customize the Django Admin site to enhance the user experience and increase efficiency in managing data within a Django project. This tutorial covers various customization options such as controlling field display, adding filters and thumbnails, linking related objects, and overriding templates and forms.
last_modified_at: 2023-07-19
+categories:
+ - Python
---
**This article explores the customization of the Django admin interface. Earthly significantly accelerates build workflow with its parallel build capabilities. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-04-17-django-template-filters.md b/blog/_posts/2023-04-17-django-template-filters.md
index 9ab41a006..b888da54a 100644
--- a/blog/_posts/2023-04-17-django-template-filters.md
+++ b/blog/_posts/2023-04-17-django-template-filters.md
@@ -1,7 +1,5 @@
---
title: "How to Use Django Template Filters"
-categories:
- - Tutorials
toc: true
author: Joseph Adediji
editor: Bala Priya C
@@ -15,6 +13,8 @@ internal-links:
excerpt: |
Learn how to use Django template filters to transform and modify variable data in your HTML templates. Discover the built-in filters provided by Django and how to create your own custom filters.
last_modified_at: 2023-07-19
+categories:
+ - Python
---
**The article explains the effectiveness of Django template filters. Earthly accelerates Django template builds with its caching mechanisms. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-04-19-securing-kubernetes-secrets.md b/blog/_posts/2023-04-19-securing-kubernetes-secrets.md
index 1e255a280..7b006dd7a 100644
--- a/blog/_posts/2023-04-19-securing-kubernetes-secrets.md
+++ b/blog/_posts/2023-04-19-securing-kubernetes-secrets.md
@@ -1,7 +1,5 @@
---
title: "Securing Kubernetes Secrets Effectively"
-categories:
- - Tutorials
toc: true
author: Mercy Bassey
editor: Bala Priya C
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
Learn how to secure your Kubernetes secrets effectively by enabling encryption at rest, implementing role-based access control, and securing the ETCD data store. Protect your sensitive information and keep your secrets safe from unauthorized access.
last_modified_at: 2023-07-19
+categories:
+ - Orchestration
---
**The article provides insights into securing Kubernetes secrets. Earthly ensures DevOps professionals have access to consistent and isolated build environments. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-04-20-more-on-python-data-classes.md b/blog/_posts/2023-04-20-more-on-python-data-classes.md
index 02faf5ab0..df996ec3f 100644
--- a/blog/_posts/2023-04-20-more-on-python-data-classes.md
+++ b/blog/_posts/2023-04-20-more-on-python-data-classes.md
@@ -1,7 +1,5 @@
---
title: "Let's Learn More About Python Data Classes"
-categories:
- - Tutorials
toc: true
author: Bala Priya C
@@ -11,6 +9,8 @@ internal-links:
excerpt: |
Learn more about Python data classes and their features in this tutorial. Discover how to set default values, exclude fields from the constructor, create fields post-initialization, and use slots for more efficient data classes.
last_modified_at: 2023-07-19
+categories:
+ - Python
---
**This article explores the benefits of Python data classes. Earthly maintains consistent and efficient Python builds in your CI pipeline. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-04-21-advanced-git-commands.md b/blog/_posts/2023-04-21-advanced-git-commands.md
index 1deddb77a..ab9077d87 100644
--- a/blog/_posts/2023-04-21-advanced-git-commands.md
+++ b/blog/_posts/2023-04-21-advanced-git-commands.md
@@ -1,7 +1,5 @@
---
title: "10 Advanced Git Commands"
-categories:
- - Tutorials
toc: true
author: Temitope Oyedele
editor: Bala Priya C
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
Learn ten advanced Git commands that every developer should know. These commands, such as Git Rebase, Git Grep, and Git Diff, can greatly improve your workflow and help you better manage your Git repositories.
last_modified_at: 2023-07-19
+categories:
+ - cli
---
**This article explores advanced Git commands. After reading it know that Earthly consistently builds your code the same way every time. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-04-24-caching-dependencies-github-actions.md b/blog/_posts/2023-04-24-caching-dependencies-github-actions.md
index 23e985b1b..4f02ab7d8 100644
--- a/blog/_posts/2023-04-24-caching-dependencies-github-actions.md
+++ b/blog/_posts/2023-04-24-caching-dependencies-github-actions.md
@@ -1,7 +1,7 @@
---
title: "Caching Dependencies on GitHub Actions"
categories:
- - Tutorials
+ - GitHubActions
toc: true
sidebar:
nav: github-actions
diff --git a/blog/_posts/2023-04-25-golang-zip-files.md b/blog/_posts/2023-04-25-golang-zip-files.md
index 031ddfa1a..8cd24ed34 100644
--- a/blog/_posts/2023-04-25-golang-zip-files.md
+++ b/blog/_posts/2023-04-25-golang-zip-files.md
@@ -1,7 +1,5 @@
---
title: "Working With Zip Files in Go"
-categories:
- - Tutorials
toc: true
author: Muhammed Ali
editor: Bala Priya C
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
Learn how to work with zip files in Go, including creating, extracting, and modifying zip archives. This tutorial covers the basics of using the `archive/zip` package and demonstrates how to compress files, list the contents of a zip file, add files to an existing zip, and extract files from a zip archive. If you're a Go developer looking to work with zip files, this tutorial is a must-read.
last_modified_at: 2023-07-19
+categories:
+ - Golang
---
**This article discusses optimizing Go build pipelines. Earthly streamlines this process. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-04-26-misaligned-incentives.md b/blog/_posts/2023-04-26-misaligned-incentives.md
index b914497ed..8a39944e7 100644
--- a/blog/_posts/2023-04-26-misaligned-incentives.md
+++ b/blog/_posts/2023-04-26-misaligned-incentives.md
@@ -1,7 +1,7 @@
---
title: "Misaligned Incentives in Dev Tool Businesses"
categories:
- - Tutorials
+ - Articles
toc: true
author: Adam
diff --git a/blog/_posts/2023-04-26-python-poetry.md b/blog/_posts/2023-04-26-python-poetry.md
index e7c7b8b3a..1fb3c561d 100644
--- a/blog/_posts/2023-04-26-python-poetry.md
+++ b/blog/_posts/2023-04-26-python-poetry.md
@@ -1,7 +1,5 @@
---
title: "Managing Dependencies Using Poetry in Python"
-categories:
- - Tutorials
toc: true
author: Ashutosh Krishna
editor: Bala Priya C
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
Learn how to manage dependencies in Python projects using Poetry, a package manager that simplifies the process. From creating virtual environments to adding and removing dependencies, this tutorial covers all the essentials. Plus, discover how to publish your Python project as a package on PyPI.
last_modified_at: 2023-10-18
+categories:
+ - Python
---
**The article discusses the benefits of using Poetry for package management. Earthly significantly enhances build speeds with its caching mechanisms. It works great with Poetry projects. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-04-27-learning-golang-common-mistakes-to-avoid.md b/blog/_posts/2023-04-27-learning-golang-common-mistakes-to-avoid.md
index e34ff6d59..d26811a3c 100644
--- a/blog/_posts/2023-04-27-learning-golang-common-mistakes-to-avoid.md
+++ b/blog/_posts/2023-04-27-learning-golang-common-mistakes-to-avoid.md
@@ -1,7 +1,5 @@
---
title: "Five Common Mistakes To Avoid When Learning Golang"
-categories:
- - Tutorials
toc: true
author: Ubaydah Abdulwasiu
editor: Mustapha Ahmad Ayodeji
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
In this article, we explore five common mistakes to avoid when learning Golang. From understanding pointers and interfaces to utilizing concurrency and third-party libraries effectively, we cover key concepts and best practices to help you become a more proficient Go developer. Don't miss out on these valuable insights to enhance your Golang skills!
last_modified_at: 2023-07-19
+categories:
+ - Golang
---
**The article provides insights into the common pitfalls encountered when programming in Golang and offers guidance on how to avoid them. Earthly excels at managing Go dependencies and optimizing build processes. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-04-28-pytest-fixtures.md b/blog/_posts/2023-04-28-pytest-fixtures.md
index 33adb36be..6b8694d35 100644
--- a/blog/_posts/2023-04-28-pytest-fixtures.md
+++ b/blog/_posts/2023-04-28-pytest-fixtures.md
@@ -1,7 +1,5 @@
---
title: "Getting Started With PyTest Fixtures"
-categories:
- - Tutorials
toc: true
author: Ashutosh Krishna
editor: Mustapha Ahmad Ayodeji
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
Learn how to use PyTest fixtures to simplify your test setup and improve your testing. Fixtures provide a way to manage test data and resources, making it easier to set up, tear down, and share data between test functions. Discover the advantages of using PyTest fixtures and explore advanced topics such as cleaning up test data, parameterizing fixtures, and using `autouse` fixtures.
last_modified_at: 2023-07-19
+categories:
+ - Python
---
**Explore the benefits of PyTest fixtures in this article. Earthly significantly accelerates PyTest-based test builds with its caching mechanisms. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-05-01-bazel-and-automated-tests.md b/blog/_posts/2023-05-01-bazel-and-automated-tests.md
index d702fbb39..b02580c63 100644
--- a/blog/_posts/2023-05-01-bazel-and-automated-tests.md
+++ b/blog/_posts/2023-05-01-bazel-and-automated-tests.md
@@ -1,7 +1,5 @@
---
title: "Using Bazel to Improve Your Automated Test Suite"
-categories:
- - Tutorials
toc: true
author: Ali Mannan Tirmizi
author2: Aniket Bhattacharyea
@@ -15,6 +13,8 @@ internal-links:
excerpt: |
Learn how to improve your automated test suite using Bazel, an open source software tool. Bazel can speed up the testing process, save time and computing resources, and ensure reliable and scalable deployments.
last_modified_at: 2023-07-11
+categories:
+ - Bazel
---
**This article explores the use of Bazel for testing. Earthly enhances Bazel by offering reproducible and parallel build features. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-05-02-load-testing-using-k6.md b/blog/_posts/2023-05-02-load-testing-using-k6.md
index ea3831442..599e1a964 100644
--- a/blog/_posts/2023-05-02-load-testing-using-k6.md
+++ b/blog/_posts/2023-05-02-load-testing-using-k6.md
@@ -1,7 +1,5 @@
---
title: "Load Testing Backend Services Using K6"
-categories:
- - Tutorials
toc: true
author: Donald Le
editor: Bala Priya C
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
Learn how to implement load testing for your backend services using k6, a powerful performance testing tool. Discover how to create test scenarios, run load tests, and visualize the test metrics using InfluxDB and Grafana.
last_modified_at: 2023-07-19
+categories:
+ - Orchestration
---
**K6 load testing significantly enhances performance tuning. Earthly provides stable build environments. Fan of k6 should check it out. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-05-03-eso-with-hashicorp-vault.md b/blog/_posts/2023-05-03-eso-with-hashicorp-vault.md
index 75f8861db..99f8e1df6 100644
--- a/blog/_posts/2023-05-03-eso-with-hashicorp-vault.md
+++ b/blog/_posts/2023-05-03-eso-with-hashicorp-vault.md
@@ -1,7 +1,5 @@
---
title: "External Secret Operators (ESO) with HashiCorp Vault"
-categories:
- - Tutorials
toc: true
author: Mercy Bassey
editor: Bala Priya C
@@ -15,6 +13,8 @@ internal-links:
excerpt: |
Learn how to enhance the security of your Kubernetes cluster by using external secret operators (ESOs) with HashiCorp Vault. This tutorial will guide you through the process of setting up and configuring ESOs, allowing you to store your secrets securely outside of the cluster while still making them accessible to your applications.
last_modified_at: 2023-07-19
+categories:
+ - Cloud
---
**The article provides insights into securing Kubernetes secrets. Earthly strengthens your DevOps toolchain with guaranteed build reproducibility, enhancing Vault's security for Kubernetes. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-05-04-aws-ecr-github-actions.md b/blog/_posts/2023-05-04-aws-ecr-github-actions.md
index d1603fd98..ca839888e 100644
--- a/blog/_posts/2023-05-04-aws-ecr-github-actions.md
+++ b/blog/_posts/2023-05-04-aws-ecr-github-actions.md
@@ -1,7 +1,5 @@
---
title: "Deploy Applications to AWS ECR with a GitHub Actions CI/CD Pipeline"
-categories:
- - Tutorials
toc: true
sidebar:
nav: github-actions
@@ -16,6 +14,8 @@ internal-links:
excerpt: |
Learn how to automate the testing, building, and deployment processes of your applications using GitHub Actions and Docker deployments with AWS ECR. This tutorial provides step-by-step instructions on setting up the necessary tools and configuring the workflow to seamlessly deploy your applications to AWS ECR.
last_modified_at: 2023-07-11
+categories:
+ - GitHubActions
---
**This article explores CI/CD with GitHub Actions. Earthly guarantees reproducible Docker builds in any CI/CD pipelines. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-05-05-github-actions-environment-variables-and-secrets.md b/blog/_posts/2023-05-05-github-actions-environment-variables-and-secrets.md
index fd84ee315..f4c741e8d 100644
--- a/blog/_posts/2023-05-05-github-actions-environment-variables-and-secrets.md
+++ b/blog/_posts/2023-05-05-github-actions-environment-variables-and-secrets.md
@@ -1,7 +1,5 @@
---
title: "Working with GitHub Actions Environment Variables and Secrets"
-categories:
- - Tutorials
toc: true
sidebar:
nav: github-actions
@@ -15,6 +13,8 @@ internal-links:
excerpt: |
Learn how to work with GitHub Actions environment variables and secrets in this tutorial. Discover when to use them, how to define them for different scopes, and even how to store sensitive information like certificates. Plus, find out how Earthly can simplify your GitHub Actions builds.
last_modified_at: 2023-07-11
+categories:
+ - GitHubActions
---
**This article discusses managing secrets in GitHub Actions. Earthly streamlines your GitHub Actions build process. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-05-08-error-handling-in-python.md b/blog/_posts/2023-05-08-error-handling-in-python.md
index bd7bb0c6f..b32665346 100644
--- a/blog/_posts/2023-05-08-error-handling-in-python.md
+++ b/blog/_posts/2023-05-08-error-handling-in-python.md
@@ -1,7 +1,7 @@
---
title: "Error Handling in Python"
categories:
- - Tutorials
+ - Python
toc: true
author: Daniel Boadzie
diff --git a/blog/_posts/2023-05-09-docker-image-storage-on-host.md b/blog/_posts/2023-05-09-docker-image-storage-on-host.md
index a8d472e41..cb9e3e5e4 100644
--- a/blog/_posts/2023-05-09-docker-image-storage-on-host.md
+++ b/blog/_posts/2023-05-09-docker-image-storage-on-host.md
@@ -1,7 +1,5 @@
---
title: "How the Docker Image Is Stored on the Host Machine"
-categories:
- - Tutorials
toc: true
author: Sriram Ramanujam
editor: Bala Priya C
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
Learn how Docker images are stored on the host machine and gain a deeper understanding of Docker image management. Discover the internals of Docker images, including layers, DiffIDs, and ChainIDs, and explore the storage drivers used by Docker.
last_modified_at: 2023-07-19
+categories:
+ - Containers
---
**This article explains how to create Docker images. Earthly optimizes the build process for Docker images, ensuring reproducibility and cache efficiency. Learn more about Earthly.**
diff --git a/blog/_posts/2023-05-10-logging-in-python.md b/blog/_posts/2023-05-10-logging-in-python.md
index 4ca23b75f..ce849cf6a 100644
--- a/blog/_posts/2023-05-10-logging-in-python.md
+++ b/blog/_posts/2023-05-10-logging-in-python.md
@@ -1,7 +1,5 @@
---
title: "Mastering the Art of Logging in Python: A Complete Guide"
-categories:
- - Tutorials
toc: true
author: Ashutosh Krishna
editor: Mustapha Ahmad Ayodeji
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
Learn how to effectively use the Python logging module to track and analyze events in your application. This comprehensive guide covers everything from basic logging to advanced techniques like rotating log files and structured JSON logging.
last_modified_at: 2023-07-19
+categories:
+ - Python
---
**Explore the fundamentals of Python logging. Earthly provides faster and more reliable containerized builds for Python developers. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-05-11-oauth-2-in-non-web-clients.md b/blog/_posts/2023-05-11-oauth-2-in-non-web-clients.md
index 9e1d71f28..42de545b3 100644
--- a/blog/_posts/2023-05-11-oauth-2-in-non-web-clients.md
+++ b/blog/_posts/2023-05-11-oauth-2-in-non-web-clients.md
@@ -1,7 +1,5 @@
---
title: "Implementing OAuth 2.0 Flow in Non-Web Clients"
-categories:
- - Tutorials
toc: true
author: Boluwatife Fayemi
editor: Bala Priya C
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
Learn how to implement OAuth 2.0 flow in non-web clients and create a seamless user experience with the Device Authorization Grant flow. Discover how to configure a Facebook app for device login and improve the security and usability of your non-web client applications.
last_modified_at: 2023-07-19
+categories:
+ - Python
---
**Our latest article provides insights into implementing OAuth for bots. Earthly significantly streamlines the build process for developers using OAuth for authentication. [Learn more](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-05-15-linux-text-processing-commands.md b/blog/_posts/2023-05-15-linux-text-processing-commands.md
index dcd822826..2cdc1baec 100644
--- a/blog/_posts/2023-05-15-linux-text-processing-commands.md
+++ b/blog/_posts/2023-05-15-linux-text-processing-commands.md
@@ -1,7 +1,5 @@
---
title: "Linux Text Processing Command"
-categories:
- - Tutorials
toc: true
author: Anurag Kumar
editor: Mustapha Ahmad Ayodeji
@@ -15,6 +13,8 @@ internal-links:
excerpt: |
Learn how to efficiently manipulate and process text data in Linux with a variety of powerful commands, including sed, grep, awk, tr, wc, cut, sort, tac, bat, fd, uniq, and xargs. These commands will help you search, filter, transform, and analyze text data, saving you time and effort in your daily workflow.
last_modified_at: 2023-07-14
+categories:
+ - cli
---
**This article explores Linux text commands. Earthly efficiently manages build process dependencies. Great for your text processing needs. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-05-16-terraform-with-github-actions.md b/blog/_posts/2023-05-16-terraform-with-github-actions.md
index 5e87f6fa3..556700ee4 100644
--- a/blog/_posts/2023-05-16-terraform-with-github-actions.md
+++ b/blog/_posts/2023-05-16-terraform-with-github-actions.md
@@ -1,7 +1,5 @@
---
title: "Using Terraform with GitHub Actions"
-categories:
- - Tutorials
toc: true
sidebar:
nav: github-actions
@@ -15,6 +13,8 @@ internal-links:
excerpt: |
Learn how to automate your Terraform pipelines using GitHub Actions, creating powerful and reliable workflows for managing infrastructure as code. This tutorial guides you through the process of setting up Terraform Cloud, configuring your GitHub repository, and running your GitHub Actions workflow to provision and maintain your infrastructure.
last_modified_at: 2023-07-11
+categories:
+ - IaC
---
**Discover how Terraform automates infrastructure in this article, using GitHub Actions. Earthly provides reproducible builds that improve on GitHub Actions. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-05-17-github-actions-and-docker.md b/blog/_posts/2023-05-17-github-actions-and-docker.md
index 43ce0d28f..14aec7887 100644
--- a/blog/_posts/2023-05-17-github-actions-and-docker.md
+++ b/blog/_posts/2023-05-17-github-actions-and-docker.md
@@ -1,7 +1,5 @@
---
title: "Using GitHub Actions to Run, Test, Build, and Deploy Docker Containers"
-categories:
- - Tutorials
toc: true
sidebar:
nav: github-actions
@@ -16,6 +14,8 @@ internal-links:
excerpt: |
Learn how to automate the process of developing, testing, building, and deploying Docker containers using GitHub Actions. This tutorial will guide you through the steps of creating a workflow, setting up a runner, running GitHub Actions locally, and setting up the build and test stages. Save time and improve the quality of your software with this powerful automation tool.
last_modified_at: 2023-07-11
+categories:
+ - GitHubActions
---
**This article explains how to automate Docker using GitHub Actions. Earthly's caching mechanisms speed up your GitHub Actions pipeline. [Learn how](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-05-18-cicd-build-github-action-dockerhub.md b/blog/_posts/2023-05-18-cicd-build-github-action-dockerhub.md
index bd46d68f0..20afa6117 100644
--- a/blog/_posts/2023-05-18-cicd-build-github-action-dockerhub.md
+++ b/blog/_posts/2023-05-18-cicd-build-github-action-dockerhub.md
@@ -1,7 +1,5 @@
---
title: "Create Automated CI/CD Builds Using GitHub Actions and DockerHub"
-categories:
- - Tutorials
toc: true
sidebar:
nav: github-actions
@@ -15,6 +13,8 @@ internal-links:
excerpt: |
In this tutorial, learn how to automate CI/CD builds using GitHub Actions and DockerHub. Discover how to create a GitHub Actions workflow that builds and deploys a Docker image to DockerHub, streamlining your development process and increasing productivity.
last_modified_at: 2023-07-11
+categories:
+ - GitHubActions
---
**This article explains how to automate Docker deployments in GitHub Actions. Earthly enhances GitHub Actions, streamlining Docker builds for quicker build cycles. [Learn more about Earthly's integration with GitHub Actions](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-05-19-grafana-loki-log-aggregation-k8s.md b/blog/_posts/2023-05-19-grafana-loki-log-aggregation-k8s.md
index c7282635b..2fc698255 100644
--- a/blog/_posts/2023-05-19-grafana-loki-log-aggregation-k8s.md
+++ b/blog/_posts/2023-05-19-grafana-loki-log-aggregation-k8s.md
@@ -1,7 +1,5 @@
---
title: "Log Aggregation with Grafana Loki on Kubernetes"
-categories:
- - Tutorials
toc: true
author: Saka-Aiyedun Segun
editor: Bala Priya C
@@ -15,6 +13,8 @@ internal-links:
excerpt: |
Learn how to use Grafana Loki, a powerful log aggregation tool, to collect, store, and analyze log data in Kubernetes. Discover the benefits of log aggregation and how Grafana Loki can help improve visibility, enhance security, meet compliance requirements, monitor performance, and respond to incidents more effectively.
last_modified_at: 2023-07-19
+categories:
+ - Cloud
---
**This article explores the effectiveness of Grafana Loki in managing logs. Earthly enhances and standardizes continuous integration (CI) build pipelines, and it complements Grafana Loki. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-05-22-aws-ecs-tutorial.md b/blog/_posts/2023-05-22-aws-ecs-tutorial.md
index 557c26eeb..90964ca43 100644
--- a/blog/_posts/2023-05-22-aws-ecs-tutorial.md
+++ b/blog/_posts/2023-05-22-aws-ecs-tutorial.md
@@ -1,7 +1,5 @@
---
title: "AWS ECS Tutorial: Running Your Containers on Amazon"
-categories:
- - Tutorials
toc: true
author: Ndafara Tsamba
editor: Bala Priya C
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
Learn how to run your containers on Amazon using AWS ECS. This tutorial will guide you through the process of creating an ECS cluster, deploying a containerized application, and accessing it using the public IP address.
last_modified_at: 2023-07-14
+categories:
+ - Cloud
---
**This article is about ECS container deployment. Earthly simplifies build automation for developers handling complex microservices. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-05-23-bazel-with-rust.md b/blog/_posts/2023-05-23-bazel-with-rust.md
index 867edcc8c..f0ee2d27e 100644
--- a/blog/_posts/2023-05-23-bazel-with-rust.md
+++ b/blog/_posts/2023-05-23-bazel-with-rust.md
@@ -1,7 +1,5 @@
---
title: "Using Bazel with Rust to Build and Deploy an Application"
-categories:
- - Tutorials
toc: true
author: Enoch Chejieh
editor: Bala Priya C
@@ -16,6 +14,8 @@ internal-links:
excerpt: |
Learn how to use Bazel with Rust to simplify the build and deployment process of your applications. This article provides a step-by-step guide on setting up Bazel, building a Rust application, and running tests, helping you streamline your development workflow and improve build efficiency.
last_modified_at: 2023-07-11
+categories:
+ - Bazel
---
**The article discusses integrating Bazel with Rust for improved build speeds. Earthly provides caching mechanisms that can accelerate build times for Rust developers. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-05-24-setup-reverse-proxy-kubernetes-nginx.md b/blog/_posts/2023-05-24-setup-reverse-proxy-kubernetes-nginx.md
index 66670aa36..9a060e8dd 100644
--- a/blog/_posts/2023-05-24-setup-reverse-proxy-kubernetes-nginx.md
+++ b/blog/_posts/2023-05-24-setup-reverse-proxy-kubernetes-nginx.md
@@ -1,7 +1,5 @@
---
title: "How to Set Up a Reverse Proxy in Kubernetes"
-categories:
- - Tutorials
toc: false
author: Somtochukwu Uchegbu
editor: Mustapha Ahmad Ayodeji
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
Learn how to set up a reverse proxy in Kubernetes with Nginx and improve the performance and reliability of your application. This tutorial covers configuring the Nginx server, creating a Kubernetes deployment, and setting up a service to expose the deployment to the outside world.
last_modified_at: 2023-07-19
+categories:
+ - Orchestration
---
**This article explains how to set up a Kubernetes Nginx reverse proxy. Earthly improves Docker image creation for Kubernetes by enhancing build performance. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-05-25-query-database-sqlalchemy-python.md b/blog/_posts/2023-05-25-query-database-sqlalchemy-python.md
index 5ad9eb1f0..3c4cd0e6d 100644
--- a/blog/_posts/2023-05-25-query-database-sqlalchemy-python.md
+++ b/blog/_posts/2023-05-25-query-database-sqlalchemy-python.md
@@ -1,7 +1,5 @@
---
title: "Querying Relational Databases With SQLAlchemy in Python"
-categories:
- - Tutorials
toc: true
author: Mercy Bassey
editor: Mustapha Ahmad Ayodeji
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
last_modified_at: 2023-07-19
+categories:
+ - Python
---
**This tutorial explains how to use SQLAlchemy's powerful features. Earthly efficiently manages complex builds in monorepos. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-05-26-ci-cd-security-challenges-best-practices.md b/blog/_posts/2023-05-26-ci-cd-security-challenges-best-practices.md
index 584196f78..69cb0846a 100644
--- a/blog/_posts/2023-05-26-ci-cd-security-challenges-best-practices.md
+++ b/blog/_posts/2023-05-26-ci-cd-security-challenges-best-practices.md
@@ -1,7 +1,5 @@
---
title: "CI/CD Security: Challenges and Best Practices"
-categories:
- - Tutorials
toc: true
author: David Chibueze Ndubuisi
editor: Bala Priya C
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
Learn about the challenges and best practices for securing your CI/CD pipeline in this informative article. Discover how to mitigate security risks and ensure the reliability and integrity of your software development and deployment process.
last_modified_at: 2023-07-19
+categories:
+ - Deployment
---
**This article outlines top CI/CD security practices. Earthly secures these practices with its containerized builds, adding an extra layer of protection for teams. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-05-29-data-pipelines-with-airflow.md b/blog/_posts/2023-05-29-data-pipelines-with-airflow.md
index 2e34ad8e4..6da2dc548 100644
--- a/blog/_posts/2023-05-29-data-pipelines-with-airflow.md
+++ b/blog/_posts/2023-05-29-data-pipelines-with-airflow.md
@@ -1,7 +1,5 @@
---
title: "Automating Data Pipelines and Workflows Using Apache Airflow"
-categories:
- - Tutorials
toc: false
author: Ansam Yousry
editor: Bala Priya C
@@ -15,6 +13,8 @@ internal-links:
excerpt: |
Learn how to automate your data pipelines and workflows using Apache Airflow. This powerful open-source platform simplifies task scheduling, monitoring, and collaboration, making it a must-have tool for data engineers.
last_modified_at: 2023-07-19
+categories:
+ - Python
---
**This article provides an overview of Apache Airflow. Earthly simplifies the build process for complex data processing tasks, benefiting Airflow users. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-05-30-push-docker-image-bazel.md b/blog/_posts/2023-05-30-push-docker-image-bazel.md
index 12adb8914..627a1b82f 100644
--- a/blog/_posts/2023-05-30-push-docker-image-bazel.md
+++ b/blog/_posts/2023-05-30-push-docker-image-bazel.md
@@ -1,7 +1,5 @@
---
title: "Using and Pushing Docker Images With Bazel"
-categories:
- - Tutorials
toc: true
author: Sooter Saalu
editor: Mustapha Ahmad Ayodeji
@@ -15,6 +13,8 @@ internal-links:
excerpt: |
Learn how to use Docker images with Bazel to enhance scalability and simplify the development process. This article explores the integration of Docker and Bazel, provides a step-by-step tutorial, and highlights the benefits of using these tools together.
last_modified_at: 2023-07-11
+categories:
+ - Bazel
---
**This article explains how to integrate Docker with Bazel. Earthly simplifies containerized builds. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-05-31-abstract-base-classes-python.md b/blog/_posts/2023-05-31-abstract-base-classes-python.md
index 360d7aef2..0468445e1 100644
--- a/blog/_posts/2023-05-31-abstract-base-classes-python.md
+++ b/blog/_posts/2023-05-31-abstract-base-classes-python.md
@@ -1,7 +1,5 @@
---
title: "Abstract Base Classes in Python"
-categories:
- - Tutorials
toc: true
author: Kabaki Antony
editor: Bala Priya C
@@ -15,6 +13,8 @@ internal-links:
excerpt: |
Learn how to create Abstract Base Classes (ABCs) in Python to enforce the implementation of certain methods or attributes in subclasses. ABCs promote code reuse, consistency, and modularity, and can be used for type checking at runtime. Discover the benefits of using ABCs and explore real-world use cases for this powerful feature in Python programming.
last_modified_at: 2023-07-19
+categories:
+ - Python
---
**This article explains the benefits of using Python ABCs to create consistent interfaces. Earthly provides a reliable build process that complements your dependable Python code. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-06-01-improve-django-performance-caching.md b/blog/_posts/2023-06-01-improve-django-performance-caching.md
index ab8b16ae3..f9883969a 100644
--- a/blog/_posts/2023-06-01-improve-django-performance-caching.md
+++ b/blog/_posts/2023-06-01-improve-django-performance-caching.md
@@ -1,7 +1,5 @@
---
title: "Improving Django Performance using Caching"
-categories:
- - Tutorials
toc: true
author: Vivek Kumar Singh
@@ -13,6 +11,8 @@ internal-links:
excerpt: |
Learn how to improve the performance of your Django web application using caching techniques. This article covers everything from the basics of caching to advanced strategies, helping you optimize your application and provide a better user experience.
last_modified_at: 2023-07-19
+categories:
+ - Python
---
**This article explores Django caching techniques. Earthly provides reproducible build environments that enhance CI pipelines. [Earthly ensures consistent builds](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-06-02-deploy-kubernetes-cri-o-container-runtime.md b/blog/_posts/2023-06-02-deploy-kubernetes-cri-o-container-runtime.md
index 6084d48dc..262574381 100644
--- a/blog/_posts/2023-06-02-deploy-kubernetes-cri-o-container-runtime.md
+++ b/blog/_posts/2023-06-02-deploy-kubernetes-cri-o-container-runtime.md
@@ -1,7 +1,5 @@
---
title: "How To Deploy a Kubernetes Cluster Using the CRI-O Container Runtime"
-categories:
- - Tutorials
toc: true
author: Mercy Bassey
editor: Mustapha Ahmad Ayodeji
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
Learn how to deploy a Kubernetes cluster using the CRI-O container runtime. This tutorial provides step-by-step instructions for setting up the necessary components, configuring the cluster, and deploying your first application.
last_modified_at: 2023-07-19
+categories:
+ - Orchestration
---
**This article explains how to deploy Kubernetes CRI-O. Earthly streamlines the build process for Kubernetes applications. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-06-05-build-golang-bazel-gazelle.md b/blog/_posts/2023-06-05-build-golang-bazel-gazelle.md
index 53844b2d2..62ede0013 100644
--- a/blog/_posts/2023-06-05-build-golang-bazel-gazelle.md
+++ b/blog/_posts/2023-06-05-build-golang-bazel-gazelle.md
@@ -1,7 +1,5 @@
---
title: "Building Golang With Bazel and Gazelle"
-categories:
- - Tutorials
toc: true
author: Amarachi Aso
editor: Mustapha Ahmad Ayodeji
@@ -15,6 +13,8 @@ internal-links:
excerpt: |
Learn how to build Go applications with Bazel and Gazelle, two powerful tools that automate the build process and significantly reduce build times. This tutorial covers the basics of setting up a workspace, running tests, and developing a basic application using Bazel and Gazelle.
last_modified_at: 2023-07-11
+categories:
+ - Bazel
---
**The article examines the combined strengths of Bazel and Gazelle. Earthly's caching mechanisms improve incremental builds and augment Bazel's performance. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-06-06-golang-csv-files.md b/blog/_posts/2023-06-06-golang-csv-files.md
index 00d17fa86..b87618028 100644
--- a/blog/_posts/2023-06-06-golang-csv-files.md
+++ b/blog/_posts/2023-06-06-golang-csv-files.md
@@ -1,7 +1,5 @@
---
title: "How To Work With CSV Files In Go"
-categories:
- - Tutorials
toc: true
author: Muhammed Ali
editor: Bala Priya C
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
Learn how to work with CSV files in Go using the encoding/csv package and the goCSV library. This tutorial covers topics such as reading and appending CSV files, converting between CSV and JSON file formats, and provides code examples to help you get started. If you're a Go developer looking to manage CSV files in your projects, this article is a must-read.
last_modified_at: 2023-07-19
+categories:
+ - Golang
---
**The article provides insight into the complexities of handling CSV files in Go. Earthly guarantees consistent build environments Go builds. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-06-07-kubernetes-network-policies.md b/blog/_posts/2023-06-07-kubernetes-network-policies.md
index 8550c0e36..2703175d4 100644
--- a/blog/_posts/2023-06-07-kubernetes-network-policies.md
+++ b/blog/_posts/2023-06-07-kubernetes-network-policies.md
@@ -1,7 +1,5 @@
---
title: "Securing Kubernetes With Network Policies"
-categories:
- - Tutorials
toc: true
author: Muhammad Badawy
editor: Bala Priya C
@@ -15,6 +13,8 @@ internal-links:
excerpt: |
Learn how to secure your Kubernetes cluster with network policies, which allow you to control and secure communication between pods and services. Discover the benefits of using network policies, such as improved security, compliance, resource optimization, and troubleshooting capabilities. Apply network policies in a demo to control traffic between namespaces and ensure the safety and integrity of your cluster.
last_modified_at: 2023-07-19
+categories:
+ - Orchestration
---
**This article discusses the role of Kubernetes network policies in managing and securing network traffic within Kubernetes clusters. It briefly explains how these policies enable selective traffic flow to enhance cluster security.**
diff --git a/blog/_posts/2023-06-09-optimize-golang-for-kubernetes.md b/blog/_posts/2023-06-09-optimize-golang-for-kubernetes.md
index bd079aee2..c53491b97 100644
--- a/blog/_posts/2023-06-09-optimize-golang-for-kubernetes.md
+++ b/blog/_posts/2023-06-09-optimize-golang-for-kubernetes.md
@@ -1,7 +1,5 @@
---
title: "Optimizing Golang Applications for Kubernetes: Best Practices for Reducing Server Load"
-categories:
- - Tutorials
toc: true
author: Ifedayo Adesiyan
editor: Mustapha Ahmad Ayodeji
@@ -15,6 +13,8 @@ internal-links:
excerpt: |
Learn how to optimize Golang applications for Kubernetes and reduce server load with best practices such as resource allocation, garbage collection optimization, connection pooling, and implementing health checks and readiness probes. Improve the performance and scalability of your Golang applications in a containerized environment and ensure efficient resource utilization and cost-efficiency.
last_modified_at: 2023-07-19
+categories:
+ - Cloud
---
**The article focuses on optimizing Golang applications for deployment on Kubernetes. Earthly significantly improves this process by enabling reproducible builds that can run in parallel. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-06-09-python-data-classes-vs-namedtuples.md b/blog/_posts/2023-06-09-python-data-classes-vs-namedtuples.md
index 693341cc1..93e842dbd 100644
--- a/blog/_posts/2023-06-09-python-data-classes-vs-namedtuples.md
+++ b/blog/_posts/2023-06-09-python-data-classes-vs-namedtuples.md
@@ -1,7 +1,5 @@
---
title: "Python Data Classes vs Named Tuples: Differences You Should Know"
-categories:
- - Tutorials
toc: true
author: Bala Priya C
@@ -10,6 +8,8 @@ internal-links:
excerpt: |
In this article, we explore the differences between Python data classes and named tuples. We discuss their features, such as immutability, default values, type hints, comparison, memory efficiency, and maintainability. Whether you're a beginner or an experienced Python developer, understanding these differences can help you make informed decisions when choosing between data classes and named tuples for your projects.
last_modified_at: 2023-07-19
+categories:
+ - Python
---
**This article explains Python data structures. Earthly enhances Python builds by combining the simplicity of docker with greater flexibility. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-06-12-using-bazel-with-typescript.md b/blog/_posts/2023-06-12-using-bazel-with-typescript.md
index b2e388d19..87276727d 100644
--- a/blog/_posts/2023-06-12-using-bazel-with-typescript.md
+++ b/blog/_posts/2023-06-12-using-bazel-with-typescript.md
@@ -1,7 +1,5 @@
---
title: "Using Bazel with TypeScript"
-categories:
- - Tutorials
toc: true
author: Adeyinka Adegbenro
editor: Mustapha Ahmad Ayodeji
@@ -16,6 +14,8 @@ internal-links:
excerpt: |
Learn how to use Bazel with TypeScript to build and test your projects faster and more efficiently. Discover the benefits of Bazel's advanced caching and parallelization features, and explore how to customize Bazel for your TypeScript project.
last_modified_at: 2023-07-11
+categories:
+ - Bazel
---
**This article examines how Bazel and TypeScript work together for reliable builds. Earthly guarantees consistent and reproducible builds for Bazel users in different environments. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-06-13-private-docker-registry.md b/blog/_posts/2023-06-13-private-docker-registry.md
index 05ca5a841..10cb3c33c 100644
--- a/blog/_posts/2023-06-13-private-docker-registry.md
+++ b/blog/_posts/2023-06-13-private-docker-registry.md
@@ -1,7 +1,5 @@
---
title: "How to Set Up a Private Docker Registry on Linux"
-categories:
- - Tutorials
toc: true
author: Hitesh Jethva
@@ -15,6 +13,8 @@ internal-links:
excerpt: |
Learn how to set up a private Docker registry on Linux and secure your Docker images in an enterprise environment. This step-by-step guide covers everything from installing Docker and Docker Compose to configuring NGINX and implementing authentication, allowing you to have full control over your Docker registry and ensure the security of your images.
last_modified_at: 2023-07-19
+categories:
+ - Cloud
---
**This article outlines the key steps to setting up a Docker registry. Earthly precisely optimizes Docker image build processes. [Learn how](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-06-14-kubernetes-jobs-cron-jobs.md b/blog/_posts/2023-06-14-kubernetes-jobs-cron-jobs.md
index 286b15791..4224f6868 100644
--- a/blog/_posts/2023-06-14-kubernetes-jobs-cron-jobs.md
+++ b/blog/_posts/2023-06-14-kubernetes-jobs-cron-jobs.md
@@ -1,7 +1,5 @@
---
title: "Jobs and Cron Jobs in Kubernetes"
-categories:
- - Tutorials
toc: true
author: Mercy Bassey
editor: Bala Priya C
@@ -15,6 +13,8 @@ internal-links:
excerpt: |
Learn how to manage jobs and scheduled tasks in Kubernetes with this tutorial on Jobs and CronJobs. Discover how to create, monitor, and customize these resources to improve the reliability and efficiency of your Kubernetes deployments.
last_modified_at: 2023-07-19
+categories:
+ - Orchestration
---
**This article discusses Kubernetes Jobs/CronJobs. Earthly ensures consistent builds, enhancing your Kubernetes job management experience. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-06-15-chown-permissions-chmod.md b/blog/_posts/2023-06-15-chown-permissions-chmod.md
index a418127d4..9548b5842 100644
--- a/blog/_posts/2023-06-15-chown-permissions-chmod.md
+++ b/blog/_posts/2023-06-15-chown-permissions-chmod.md
@@ -1,7 +1,5 @@
---
title: "chown: Changing File and Directory File in Linux"
-categories:
- - Tutorials
toc: true
author: Thinus Swart
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
Learn how to change file and directory ownership in Linux using the `chown` command. This article explains the importance of ownership in Linux, how permissions work, and provides examples of using `chown` to change ownership.
last_modified_at: 2023-07-19
+categories:
+ - cli
---
**This article explains the basics of managing ownership in Linux. Earthly provides advanced build automation for CI/CD pipelines. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-06-16-cmake-gcc-cross-compile.md b/blog/_posts/2023-06-16-cmake-gcc-cross-compile.md
index b0adee793..fdfaecd80 100644
--- a/blog/_posts/2023-06-16-cmake-gcc-cross-compile.md
+++ b/blog/_posts/2023-06-16-cmake-gcc-cross-compile.md
@@ -1,7 +1,5 @@
---
title: "Using CMake and GCC to Cross-Compile Binaries"
-categories:
- - Tutorials
toc: true
author: Rubaiat Hossain
editor: Bala Priya C
@@ -17,6 +15,8 @@ excerpt: |
Learn how to cross-compile binaries for different architectures using CMake and GCC in this tutorial. Discover the process of building a simple C++ program and then cross-compiling it for ARM64-based devices, along with troubleshooting tips for common issues.
last_modified_at: 2023-07-19
+categories:
+ - Make
---
**The article provides insights into cross-compiling for ARM64 architectures. Earthly simplifies the process of cross-compilation for those who use CMake. [Learn how](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-06-19-python-microservices-rabbitmq-docker.md b/blog/_posts/2023-06-19-python-microservices-rabbitmq-docker.md
index c84500b1f..0b5af8fe5 100644
--- a/blog/_posts/2023-06-19-python-microservices-rabbitmq-docker.md
+++ b/blog/_posts/2023-06-19-python-microservices-rabbitmq-docker.md
@@ -1,7 +1,5 @@
---
title: "Building Python Microservices with Docker and RabbitMQ"
-categories:
- - Tutorials
toc: true
author: Muhammed Ali
editor: Mustapha Ahmad Ayodeji
@@ -15,6 +13,8 @@ internal-links:
excerpt: |
Learn how to convert a monolith recipe API into microservices using Django and Flask. This article covers the usage of RabbitMQ for communication between microservices and provides a step-by-step guide on Dockerizing the microservices.
last_modified_at: 2023-07-19
+categories:
+ - Python
---
**This article explores the integration of microservices with Django. Earthly enhances the Docker Compose build process for containerized applications. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-06-20-bazel-query.md b/blog/_posts/2023-06-20-bazel-query.md
index 5d06d4bf7..dee6922ca 100644
--- a/blog/_posts/2023-06-20-bazel-query.md
+++ b/blog/_posts/2023-06-20-bazel-query.md
@@ -1,7 +1,5 @@
---
title: "Everything You Need to Know about Bazel Query"
-categories:
- - Tutorials
toc: true
author: Rose Chege
@@ -13,6 +11,8 @@ internal-links:
excerpt: |
Learn all you need to know about Bazel queries in this article. Discover how Bazel queries can help you analyze your project's build graph, optimize build performance, and debug builds.
last_modified_at: 2023-07-19
+categories:
+ - Bazel
---
**The article explains the advantages of using Bazel queries. Earthly enhances Bazel's dependency management with a simpler approach to build automation. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-06-21-cross-compiling-raspberry-pi.md b/blog/_posts/2023-06-21-cross-compiling-raspberry-pi.md
index f3cb81bad..1913412c4 100644
--- a/blog/_posts/2023-06-21-cross-compiling-raspberry-pi.md
+++ b/blog/_posts/2023-06-21-cross-compiling-raspberry-pi.md
@@ -1,7 +1,5 @@
---
title: "Cross-Compiling for Raspberry Pi: Getting Started and Troubleshooting"
-categories:
- - Tutorials
toc: true
author: Aniket Bhattacharyea
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
Learn how to cross-compile programs for Raspberry Pi using a more powerful PC with this step-by-step tutorial. Discover how to set up the development environment, write a C++ program, and debug it using GDB.
last_modified_at: 2023-07-19
+categories:
+ - Make
---
**This article discusses how to cross-compile for Raspberry Pi efficiently. Earthly simplifies the build process for cross-compilation. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-06-22-build-java-projects-with-bazel.md b/blog/_posts/2023-06-22-build-java-projects-with-bazel.md
index f0519b03b..ee0c9593a 100644
--- a/blog/_posts/2023-06-22-build-java-projects-with-bazel.md
+++ b/blog/_posts/2023-06-22-build-java-projects-with-bazel.md
@@ -1,7 +1,5 @@
---
title: "How to Build Java Projects with Bazel"
-categories:
- - Tutorials
toc: true
author: Mdu Sibisi
editor: Bala Priya C
@@ -15,6 +13,8 @@ internal-links:
excerpt: |
Learn how to build Java projects with Bazel, an open-source automatic build tool that offers extensibility, scalability, and flexibility. This tutorial walks you through the process of configuring your workspace, creating a build file, adding dependencies, and building your project with Bazel.
last_modified_at: 2023-07-19
+categories:
+ - Bazel
---
**This article examines the combination of Bazel and Java. Earthly directly integrates with Bazel for Java project CI pipelines. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-06-23-automate-tasks-shell-scripts.md b/blog/_posts/2023-06-23-automate-tasks-shell-scripts.md
index b3793265c..330966a25 100644
--- a/blog/_posts/2023-06-23-automate-tasks-shell-scripts.md
+++ b/blog/_posts/2023-06-23-automate-tasks-shell-scripts.md
@@ -1,7 +1,5 @@
---
title: "How to Automate Common Tasks with Shell Scripts"
-categories:
- - Tutorials
toc: true
author: Prince Onyeanuna
editor: Mustapha Ahmad Ayodeji
@@ -15,6 +13,8 @@ internal-links:
excerpt: |
Learn how to automate common tasks in software development using shell scripts. From file backups to log analysis and system maintenance, this article provides step-by-step guides and introduces key concepts like variables, loops, and regular expressions.
last_modified_at: 2023-07-19
+categories:
+ - cli
---
**The article provides an in-depth analysis of shell script automation. Earthly enhances your build process through containerization. [Learn how](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-06-26-linux-uniq-command.md b/blog/_posts/2023-06-26-linux-uniq-command.md
index 53950ea8f..929635368 100644
--- a/blog/_posts/2023-06-26-linux-uniq-command.md
+++ b/blog/_posts/2023-06-26-linux-uniq-command.md
@@ -1,7 +1,5 @@
---
title: "A Practical Guide to the Linux Uniq Command"
-categories:
- - Tutorials
toc: true
author: Thinus Swart
editor: Bala Priya C
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
Learn how to use the `uniq` command in Linux to find unique lines of text and eliminate duplicates. This practical guide covers the basic syntax of the `uniq` command, advanced techniques for counting duplicates, and alternatives like `awk` and `sort`. Whether you're a beginner or an experienced Linux user, this article will help you streamline your text-processing tasks.
last_modified_at: 2023-07-19
+categories:
+ - cli
---
**The article explains how to use the Linux `uniq` command to manipulate text. Earthly maintains consistent builds with complex Linux commands. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-06-27-bash-pushd-popd-commands.md b/blog/_posts/2023-06-27-bash-pushd-popd-commands.md
index 27ebd5907..f7df4a473 100644
--- a/blog/_posts/2023-06-27-bash-pushd-popd-commands.md
+++ b/blog/_posts/2023-06-27-bash-pushd-popd-commands.md
@@ -1,7 +1,7 @@
---
title: "Navigating Directories Like a Pro with Bash pushd and popd"
categories:
- - Tutorials
+ - cli
toc: false
author: Christoph Berger
editor: Bala Priya C
diff --git a/blog/_posts/2023-06-29-a-developer-guide-to-git-lfs.md b/blog/_posts/2023-06-29-a-developer-guide-to-git-lfs.md
index 69867cf49..1a83b8f7b 100644
--- a/blog/_posts/2023-06-29-a-developer-guide-to-git-lfs.md
+++ b/blog/_posts/2023-06-29-a-developer-guide-to-git-lfs.md
@@ -1,7 +1,5 @@
---
title: "A Developer's Guide to Git LFS"
-categories:
- - Tutorials
toc: true
author: Chepkirui Dorothy
editor: Mustapha Ahmad Ayodeji
@@ -15,6 +13,8 @@ internal-links:
excerpt: |
Learn how to use Git LFS to manage large files in your Git repository and optimize your workflow for smoother collaboration with team members. Git LFS replaces large files in a Git repository with text pointers stored in the repository, while the actual file contents are stored separately in a Git LFS server.
last_modified_at: 2023-07-19
+categories:
+ - cli
---
**This article explains how Git LFS manages large files. Earthly significantly speeds up build and test cycles with Git LFS. [Learn how](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-06-30-rust-macros.md b/blog/_posts/2023-06-30-rust-macros.md
index eac1fd4fb..cc6e99be2 100644
--- a/blog/_posts/2023-06-30-rust-macros.md
+++ b/blog/_posts/2023-06-30-rust-macros.md
@@ -1,7 +1,5 @@
---
title: "Rust Macros: Practical Examples and Best Practices"
-categories:
- - Tutorials
toc: true
author: Aniket Bhattacharyea
editor: Bala Priya C
@@ -15,6 +13,8 @@ internal-links:
excerpt: |
This article explores the power of macros in Rust, providing practical examples and best practices for using them effectively. Whether you're new to macros or looking to enhance your understanding, this article will help you harness the full potential of macros in your Rust projects.
last_modified_at: 2023-07-19
+categories:
+ - Rust
---
**This article delves into the power and versatility of Rust macros. Earthly guarantees a build process as robust as the macros you create. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-07-04-using-sleep.md b/blog/_posts/2023-07-04-using-sleep.md
index 64a5574f9..ecea1f91e 100644
--- a/blog/_posts/2023-07-04-using-sleep.md
+++ b/blog/_posts/2023-07-04-using-sleep.md
@@ -1,7 +1,7 @@
---
title: "Shell Scripting with sleep: Using Delays Strategically"
categories:
- - Tutorials
+ - cli
toc: true
author: James Konik
diff --git a/blog/_posts/2023-07-05-pulumi-with-eks-and-go.md b/blog/_posts/2023-07-05-pulumi-with-eks-and-go.md
index a37b13660..5e25f2f25 100644
--- a/blog/_posts/2023-07-05-pulumi-with-eks-and-go.md
+++ b/blog/_posts/2023-07-05-pulumi-with-eks-and-go.md
@@ -1,7 +1,5 @@
---
title: "Infrastructure as Code with Pulumi and AWS EKS for Go Developers"
-categories:
- - Tutorials
toc: true
author: Mercy Bassey
editor: Ubaydah Abdulwasiu
@@ -15,6 +13,8 @@ internal-links:
excerpt: |
Learn how to use Pulumi and AWS EKS to provision infrastructure as code for your GO applications. This tutorial covers creating an S3 bucket, setting up an EKS cluster, and deploying a Docker image to the cluster. Dive into the world of Infrastructure as Code with Pulumi and streamline your cloud infrastructure management.
last_modified_at: 2023-07-19
+categories:
+ - IaC
---
**The article examines how Pulumi and Go work together to set up AWS services. Earthly improves continuous integration workflows, whether you are using Pulumi or not. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-07-07-earthly-github-actions.md b/blog/_posts/2023-07-07-earthly-github-actions.md
index a3c723d03..76d1bb521 100644
--- a/blog/_posts/2023-07-07-earthly-github-actions.md
+++ b/blog/_posts/2023-07-07-earthly-github-actions.md
@@ -1,7 +1,7 @@
---
title: "Better Together - Earthly + Github Actions"
categories:
- - Articles
+ - GitHubActions
toc: false
author: Evan Pease
topic: earthly
diff --git a/blog/_posts/2023-07-07-k8s-log-compression-s3-upload.md b/blog/_posts/2023-07-07-k8s-log-compression-s3-upload.md
index 0254f1286..872538dd7 100644
--- a/blog/_posts/2023-07-07-k8s-log-compression-s3-upload.md
+++ b/blog/_posts/2023-07-07-k8s-log-compression-s3-upload.md
@@ -1,7 +1,5 @@
---
title: "Scheduling Periodic Log Compression and Upload to AWS S3 using Kubernetes CronJobs"
-categories:
- - Tutorials
toc: true
author: Mercy Bassey
editor: Muhammad Badawy
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
Learn how to compress Kubernetes logs and send them to AWS S3 periodically using Kubernetes CronJobs. This tutorial will guide you through the process of setting up the environment, scripting and Dockerizing the solution, and creating the CronJob in your Kubernetes cluster.
last_modified_at: 2023-07-19
+categories:
+ - Orchestration
---
**This article outlines the key strategies for automating Kubernetes log management. Earthly streamlines Docker build scripts to enhance your CI pipelines. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-07-10-terraform-init-plan-apply.md b/blog/_posts/2023-07-10-terraform-init-plan-apply.md
index d54c0eb00..1cc5eab92 100644
--- a/blog/_posts/2023-07-10-terraform-init-plan-apply.md
+++ b/blog/_posts/2023-07-10-terraform-init-plan-apply.md
@@ -1,7 +1,5 @@
---
title: "Creating and Managing Infrastructure with Terraform Init, Plan, and Apply"
-categories:
- - Tutorials
toc: true
author: Damaso Sanoja
@@ -13,6 +11,8 @@ internal-links:
excerpt: |
Learn how to create and manage infrastructure with Terraform using the `terraform init`, `terraform plan`, and `terraform apply` commands. This article covers the basics of Terraform installation, configuration syntax, and the workflow for deploying and updating infrastructure.
last_modified_at: 2023-07-19
+categories:
+ - IaC
---
**This article discusses managing Terraform infrastructure. Earthly ensures reproducible builds for DevOps professionals. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-07-11-monitoring-system-metrics-prometheus-grafana.md b/blog/_posts/2023-07-11-monitoring-system-metrics-prometheus-grafana.md
index 713b47e58..27f54759e 100644
--- a/blog/_posts/2023-07-11-monitoring-system-metrics-prometheus-grafana.md
+++ b/blog/_posts/2023-07-11-monitoring-system-metrics-prometheus-grafana.md
@@ -1,7 +1,5 @@
---
title: "Monitoring System Metrics With Grafana and Prometheus"
-categories:
- - Tutorials
toc: true
author: Saka-Aiyedun Segun
editor: Bala Priya C
@@ -15,6 +13,8 @@ internal-links:
excerpt: |
Learn how to set up a monitoring stack using Prometheus, Grafana, and Alertmanager to track system metrics and identify performance issues. This step-by-step tutorial will guide you through the process of configuring and starting the monitoring services, accessing the web UIs, and triggering alerts to test the system.
last_modified_at: 2023-07-19
+categories:
+ - Cloud
---
**This article outlines how to set up a monitoring stack. Earthly secures consistent builds, complementing system monitoring with Prometheus. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-07-12-terraform-variables-guide.md b/blog/_posts/2023-07-12-terraform-variables-guide.md
index 73fa2cbde..89afc2ca5 100644
--- a/blog/_posts/2023-07-12-terraform-variables-guide.md
+++ b/blog/_posts/2023-07-12-terraform-variables-guide.md
@@ -1,7 +1,5 @@
---
title: "Mastering Terraform Variables: A Comprehensive Guide for Defining and Utilizing Variable Types"
-categories:
- - Tutorials
toc: true
author: Mohammed Osman
editor: Muhammad Badawy
@@ -15,6 +13,8 @@ internal-links:
excerpt: |
Learn all about Terraform variables and how to use them in this comprehensive guide. Discover the different variable types, their usage, and workarounds for their limitations. Whether you're new to Terraform or looking to enhance your skills, this article has got you covered.
last_modified_at: 2023-08-24
+categories:
+ - IaC
---
**This article summarizes Terraform variables. Earthly improves your CI/CD pipeline. Improve your cloud infrastructure. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-07-13-grafana-https-nginx-certbot.md b/blog/_posts/2023-07-13-grafana-https-nginx-certbot.md
index 2d86524aa..0fa56ffff 100644
--- a/blog/_posts/2023-07-13-grafana-https-nginx-certbot.md
+++ b/blog/_posts/2023-07-13-grafana-https-nginx-certbot.md
@@ -1,7 +1,5 @@
---
title: "Securing Grafana with HTTPS using Nginx and Certbot"
-categories:
- - Tutorials
toc: true
author: Emediong Samuel
editor: Muhammad Badawy
@@ -16,6 +14,8 @@ internal-links:
excerpt: |
Learn how to secure your Grafana site with HTTPS using Nginx and Certbot in this comprehensive guide. Protect your sensitive data, establish trust, and enhance your website's reputation with HTTPS encryption and enhanced security.
last_modified_at: 2023-07-11
+categories:
+ - Cloud
---
**This article explains how to secure Grafana using HTTPS. Earthly strengthens security with consistent, containerized builds. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-07-14-build-news-classifier-nlp-newsapi-lr.md b/blog/_posts/2023-07-14-build-news-classifier-nlp-newsapi-lr.md
index f701c1f42..b8638ee54 100644
--- a/blog/_posts/2023-07-14-build-news-classifier-nlp-newsapi-lr.md
+++ b/blog/_posts/2023-07-14-build-news-classifier-nlp-newsapi-lr.md
@@ -1,7 +1,5 @@
---
title: "How to Build a News Categorization Classifier with NewsAPI, NLP, and Logistic Regression"
-categories:
- - Tutorials
toc: true
author: Barine Sambaris
editor: Mustapha Ahmad Ayodeji
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
Learn how to build a news categorization classifier using NewsAPI, NLP, and Logistic Regression. Discover the steps to preprocess text data, train and test a logistic regression model, and predict the category of news articles.
last_modified_at: 2023-07-11
+categories:
+ - Python
---
**This article discusses news categorization techniques. Devotees of machine learning pipelines find Earthly's reproducible builds invaluable. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-07-18-IaC-terraform-cdk.md b/blog/_posts/2023-07-18-IaC-terraform-cdk.md
index 7098edb4d..625905468 100644
--- a/blog/_posts/2023-07-18-IaC-terraform-cdk.md
+++ b/blog/_posts/2023-07-18-IaC-terraform-cdk.md
@@ -1,7 +1,5 @@
---
title: "Infrastructure as Code Made Easy: A Beginner's Guide to Terraform CDK"
-categories:
- - Tutorials
toc: true
author: Alexandre Couedelo
editor: Mustapha Ahmad Ayodeji
@@ -12,10 +10,11 @@ internal-links:
- IaC
- Guide
- CDK
- - Cloud Development
excerpt: |
This article introduces the Terraform CDKTF, a programmatic way to create infrastructure as code (IaC). It explains the basics of CDKTF, its core components, and how to deploy an AWS stack using TypeScript. The article also provides best practices for using CDKTF and highlights the benefits of incorporating testing and continuous integration into your infrastructure provisioning process.
last_modified_at: 2023-07-19
+categories:
+ - IaC
---
**This article introduces the basics of CDKTF. Earthly provides reproducible builds for cloud infrastructure and everything else. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-07-18-python-closures-decorators.md b/blog/_posts/2023-07-18-python-closures-decorators.md
index a96829f1e..8979227c9 100644
--- a/blog/_posts/2023-07-18-python-closures-decorators.md
+++ b/blog/_posts/2023-07-18-python-closures-decorators.md
@@ -1,7 +1,5 @@
---
title: "An Introduction To Closures and Decorators in Python"
-categories:
- - Tutorials
toc: true
author: Rahul K
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
Learn how to use closures and decorators in Python to hide variables, modify function behavior, and add functionality to existing functions or classes. This guide provides examples and explanations of closures and decorators, as well as their practical applications in Python programming.
last_modified_at: 2023-07-19
+categories:
+ - Python
---
**The article explains the concepts of Python closures and decorators for the reader. Earthly offers a reliable method to automate and containerize Python build processes. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-07-19-shell-functions-arguments.md b/blog/_posts/2023-07-19-shell-functions-arguments.md
index c7815e013..7cbe7c1e1 100644
--- a/blog/_posts/2023-07-19-shell-functions-arguments.md
+++ b/blog/_posts/2023-07-19-shell-functions-arguments.md
@@ -1,7 +1,5 @@
---
title: "Learning Shell Script Functions and Arguments: A Comprehensive Guide"
-categories:
- - Tutorials
toc: true
author: Aniket Bhattacharyea
editor: Ubaydah Abdulwasiu
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
Learn the fundamentals of shell scripting functions and arguments in this comprehensive guide. Discover how to create functions, pass arguments, use variables, and return values in Bash scripts, along with best practices for writing efficient and reusable code.
last_modified_at: 2023-07-19
+categories:
+ - cli
---
**This article explains Bash scripting functions. Earthly provides reproducible build capabilities that improve Bash scripting. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-07-20-rust-concurrency-patterns-parallel-programming.md b/blog/_posts/2023-07-20-rust-concurrency-patterns-parallel-programming.md
index e5ad75df1..9ab649c61 100644
--- a/blog/_posts/2023-07-20-rust-concurrency-patterns-parallel-programming.md
+++ b/blog/_posts/2023-07-20-rust-concurrency-patterns-parallel-programming.md
@@ -1,7 +1,5 @@
---
title: "Rust Concurrency Patterns for Parallel Programming"
-categories:
- - Tutorials
toc: true
author: Ikeh Akinyemi
editor: Mustapha Ahmad Ayodeji
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
This article explores Rust's concurrency features and provides an overview of basic concurrency primitives such as threads, shared ownership, and message passing. It also covers more advanced topics like error handling, performance optimization, testing, parallel programming with Rayon, and asynchronous programming with Tokio.
last_modified_at: 2023-08-28
+categories:
+ - Rust
---
**Rust concurrency presents challenges. This article covers some patterns to overcome them. Earthly reliably reproduces builds for Rust applications with complex dependencies. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-07-21-bazel-build-with-caching.md b/blog/_posts/2023-07-21-bazel-build-with-caching.md
index 6419d0861..f2707acf4 100644
--- a/blog/_posts/2023-07-21-bazel-build-with-caching.md
+++ b/blog/_posts/2023-07-21-bazel-build-with-caching.md
@@ -1,7 +1,5 @@
---
title: "Using a Cache to Improve Bazel Build Times"
-categories:
- - Tutorials
toc: true
author: Rose Chege
@@ -13,6 +11,8 @@ internal-links:
excerpt: |
Learn how to improve your Bazel build times by using a cache. This article explains the benefits of caching, the different types of caches, and how to set up a local or remote cache with Bazel.
last_modified_at: 2023-07-28
+categories:
+ - Bazel
---
**This article examines Bazel caching options. Earthly provides a powerful built-in caching system for your builds. It's a simpler take on the ideas of Bazel. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-07-24-rust-lifetimes-ownership-burrowing.md b/blog/_posts/2023-07-24-rust-lifetimes-ownership-burrowing.md
index 64e427384..6331b0f16 100644
--- a/blog/_posts/2023-07-24-rust-lifetimes-ownership-burrowing.md
+++ b/blog/_posts/2023-07-24-rust-lifetimes-ownership-burrowing.md
@@ -1,7 +1,5 @@
---
title: "Rust Lifetimes: A Complete Guide to Ownership and Borrowing"
-categories:
- - Tutorials
toc: true
author: Enoch Chejieh
editor: Mustapha Ahmad Ayodeji
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
This article provides a comprehensive guide to Rust lifetimes, explaining ownership and borrowing in the language. It covers the basics of lifetimes, borrowing and references, as well as advanced topics like lifetime subtyping and higher-ranked trait bounds.
last_modified_at: 2023-08-28
+categories:
+ - Rust
---
**This article is about Rust lifetimes. If you're grappling with Rust's compile-time guarantees, Earthly can streamline your build process. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-07-25-systemd.md b/blog/_posts/2023-07-25-systemd.md
index 60dcf6bc2..df3c5318a 100644
--- a/blog/_posts/2023-07-25-systemd.md
+++ b/blog/_posts/2023-07-25-systemd.md
@@ -1,7 +1,7 @@
---
title: "Let's Learn How Systemd Works"
categories:
- - Tutorials
+ - Golang
toc: true
author: Josh
internal-links:
diff --git a/blog/_posts/2023-07-25-using-gorm-go.md b/blog/_posts/2023-07-25-using-gorm-go.md
index 48c8e1a67..32f945358 100644
--- a/blog/_posts/2023-07-25-using-gorm-go.md
+++ b/blog/_posts/2023-07-25-using-gorm-go.md
@@ -1,7 +1,5 @@
---
title: "Database Operations in Go using GORM"
-categories:
- - Tutorials
toc: true
author: Mercy Bassey
editor: Ubaydah Abdulwasiu
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
In Go, one library stands out when simplifying database interactions. This library is called GORM. This article will dive deep into using the GORM library to perform database operations in Go.
last_modified_at: 2023-08-11
+categories:
+ - Golang
---
**This article provides practical tips for using GORM with Go. Earthly guarantees consistent and efficient GORM builds in Go through caching and parallel execution. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-07-27-cli-with-argparse.md b/blog/_posts/2023-07-27-cli-with-argparse.md
index f2c76d1b7..2661b12d9 100644
--- a/blog/_posts/2023-07-27-cli-with-argparse.md
+++ b/blog/_posts/2023-07-27-cli-with-argparse.md
@@ -1,7 +1,7 @@
---
title: "Building a CLI Application With Argparse"
categories:
- - Tutorials
+ - Python
toc: true
author: Kabaki Antony
editor: Ubaydah Abdulwasiu
diff --git a/blog/_posts/2023-07-28-software-design-go-interfaces.md b/blog/_posts/2023-07-28-software-design-go-interfaces.md
index 6daf89e19..9a0afa986 100644
--- a/blog/_posts/2023-07-28-software-design-go-interfaces.md
+++ b/blog/_posts/2023-07-28-software-design-go-interfaces.md
@@ -1,7 +1,5 @@
---
title: "Designing Extensible Software with Go Interfaces"
-categories:
- - Tutorials
toc: true
author: Ben Smitthimedhin
editor: Muhammad Badawy
@@ -15,6 +13,8 @@ internal-links:
excerpt: |
This article explains how to use interfaces in Go to design extensible and modular software. It covers the basics of interfaces, implementing interfaces, advanced interface techniques, and best practices for using interfaces.
last_modified_at: 2023-08-28
+categories:
+ - Golang
---
**The article clarifies the complexities of Go interfaces. Earthly streamlines the Go software build process, accommodating complex builds while keeping things simple. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-07-31-magic-methods-python.md b/blog/_posts/2023-07-31-magic-methods-python.md
index ad2d4d4ab..6d6cad9fa 100644
--- a/blog/_posts/2023-07-31-magic-methods-python.md
+++ b/blog/_posts/2023-07-31-magic-methods-python.md
@@ -1,7 +1,5 @@
---
title: "Exploring the Magic Methods in Python"
-categories:
- - Tutorials
toc: true
author: Ashutosh Krishna
editor: Ubaydah Abdulwasiu
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
This tutorial explores the concept of magic methods in Python, which are special methods that allow you to define and customize the behavior of classes. It covers topics such as object-oriented programming, operator overloading, and context managers, providing practical examples and explanations of commonly used magic methods.
last_modified_at: 2023-08-28
+categories:
+ - Python
---
**This article explains Python magic methods. After learning that, Earthly provides clean and efficient build automation for Python development. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-08-01-linux-network-commands.md b/blog/_posts/2023-08-01-linux-network-commands.md
index de66e7bdf..466fb3614 100644
--- a/blog/_posts/2023-08-01-linux-network-commands.md
+++ b/blog/_posts/2023-08-01-linux-network-commands.md
@@ -1,7 +1,5 @@
---
title: "Mastering Linux Networking Commands: A Comprehensive Guide"
-categories:
- - Tutorials
toc: true
author: Princewill Inyang
editor: Muhammad Badawy
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
This comprehensive guide explores various Linux networking commands that allow users to configure, monitor, and troubleshoot network connections. It covers essential commands like `ping`, `ifconfig`, `ip`, `netstat`, and advanced commands like `tcpdump`, `nmap`, and `iperf`, providing readers with the knowledge and skills to effectively manage and troubleshoot network issues in Linux systems.
last_modified_at: 2023-08-28
+categories:
+ - cli
---
**This article details key Linux networking commands. Earthly ensures developers achieve consistent and reproducible builds on Linux. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-08-02-dont-configure-control-flow.md b/blog/_posts/2023-08-02-dont-configure-control-flow.md
index 2557b46fe..e3256f1f8 100644
--- a/blog/_posts/2023-08-02-dont-configure-control-flow.md
+++ b/blog/_posts/2023-08-02-dont-configure-control-flow.md
@@ -1,7 +1,5 @@
---
title: "Don't Configure Control Flow"
-categories:
- - Tutorials
toc: true
author: Adam
bottomcta: false
@@ -10,6 +8,8 @@ internal-links:
excerpt: |
Learn why using YAML for control flow configuration can lead to complex and hard-to-understand code, and why it's better to use existing programming languages or write a parser instead. Discover the pitfalls of using YAML as a programming language and explore alternative tools like Makefile or Earthfile.
last_modified_at: 2023-08-02
+categories:
+ - cli
---
**The article examines the difficulties associated with using YAML in CI/CD pipelines. Earthly streamlines builds by addressing these challenges head on. [Learn how](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-08-03-streamline-container-ghcr.md b/blog/_posts/2023-08-03-streamline-container-ghcr.md
index 7457d6d05..980dcd927 100644
--- a/blog/_posts/2023-08-03-streamline-container-ghcr.md
+++ b/blog/_posts/2023-08-03-streamline-container-ghcr.md
@@ -1,7 +1,5 @@
---
title: "How to Streamline Your Container Workflow with GitHub Container Registry"
-categories:
- - Tutorials
toc: true
author: Mercy Bassey
editor: Ubaydah Abdulwasiu
@@ -16,6 +14,8 @@ internal-links:
excerpt: |
This article explores how to streamline your container workflow with the GitHub Container Registry. It covers configuring access, deploying Docker images, integrating with GitHub Actions, and integrating with Kubernetes.
last_modified_at: 2023-08-28
+categories:
+ - Cloud
---
**The article discusses the GitHub Container Registry. DevOps professionals using GHCR benefit from Earthly's approach to fast, reproducible builds. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-08-04-rust-generics.md b/blog/_posts/2023-08-04-rust-generics.md
index 847985537..f61323ca6 100644
--- a/blog/_posts/2023-08-04-rust-generics.md
+++ b/blog/_posts/2023-08-04-rust-generics.md
@@ -1,7 +1,5 @@
---
title: "An Introduction to Rust Generics"
-categories:
- - Tutorials
toc: true
author: Enoch Chejieh
editor: Ubaydah Abdulwasiu
@@ -15,6 +13,8 @@ internal-links:
excerpt: |
Rust's use of generics allows developers to write flexible and reusable code by defining functions, structs, and enums without specifying the type of data they will operate on. Generics provide better type safety, reduce errors, and can be used in advanced topics such as traits, generic lifetimes, phantom types, and type-level programming.
last_modified_at: 2023-08-28
+categories:
+ - Rust
---
**This article discusses Rust generics. If Rust CI times are slowing you down, Earthly speed up Rust build processes by caching cargo results in CI. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-08-08-aws-cloudwatch.md b/blog/_posts/2023-08-08-aws-cloudwatch.md
index bb3335f23..c8f959267 100644
--- a/blog/_posts/2023-08-08-aws-cloudwatch.md
+++ b/blog/_posts/2023-08-08-aws-cloudwatch.md
@@ -1,7 +1,5 @@
---
title: "Getting Started with AWS CloudWatch"
-categories:
- - Tutorials
toc: true
author: Alexander Yu
editor: Ubaydah Abdulwasiu
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
AWS CloudWatch is a comprehensive monitoring and observability service. This article will serve as a practical guide for those looking to familiarize themselves with CloudWatch and harness its powerful capabilities.
last_modified_at: 2023-08-15
+categories:
+ - Cloud
---
**This guide explains AWS CloudWatch. Fans of AWS CloudWatch might like Earthly. Earthly streamlines and speeds up CI builds. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-08-09-ripgrep-for-efficient-search.md b/blog/_posts/2023-08-09-ripgrep-for-efficient-search.md
index 7e4537a8b..3e57f44ae 100644
--- a/blog/_posts/2023-08-09-ripgrep-for-efficient-search.md
+++ b/blog/_posts/2023-08-09-ripgrep-for-efficient-search.md
@@ -1,7 +1,5 @@
---
title: "How to Use `ripgrep` to Improve Your Search Efficiency"
-categories:
- - Tutorials
toc: true
author: Sriram Ramanujam
editor: Mustapha Ahmad Ayodeji
@@ -16,6 +14,8 @@ excerpt: |
This article will cover what the ripgrep command-line tool does, what its key features are, how to install it, and how to use its basic and advanced options.
last_modified_at: 2023-08-15
+categories:
+ - cli
---
**Discover the speed of `ripgrep` in our latest article. Earthly provides parallel build capabilities that complement `ripgrep`'s speed and it works great with Rust. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-08-10-debugging-docker-containers.md b/blog/_posts/2023-08-10-debugging-docker-containers.md
index 595eb156b..527dc8d38 100644
--- a/blog/_posts/2023-08-10-debugging-docker-containers.md
+++ b/blog/_posts/2023-08-10-debugging-docker-containers.md
@@ -1,7 +1,5 @@
---
title: "A Beginner's Guide to Debugging Docker Containers"
-categories:
- - Tutorials
toc: true
author: Prince Onyeanuna
editor: Mustapha Ahmad Ayodeji
@@ -15,6 +13,8 @@ internal-links:
excerpt: |
Debugging Docker containers can be frustrating. Luckily, Docker provides several commands that make managing and troubleshooting containers easy. In this article, we'll walk you through several real world scenarios and show you some tips and techniques for debugging Docker containers.
last_modified_at: 2023-08-14
+categories:
+ - Containers
---
**This article provides essential Docker debugging commands. Take some time to learn about Earthly. Earthly streamlines the Docker build processes. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-08-11-deploying-iac-aws-cloud-formation.md b/blog/_posts/2023-08-11-deploying-iac-aws-cloud-formation.md
index 7bbf3ca76..b883435a2 100644
--- a/blog/_posts/2023-08-11-deploying-iac-aws-cloud-formation.md
+++ b/blog/_posts/2023-08-11-deploying-iac-aws-cloud-formation.md
@@ -1,7 +1,5 @@
---
title: "Deploying Infrastructure as Code with AWS CloudFormation"
-categories:
- - Tutorials
toc: true
author: Alexander Yu
editor: Mustapha Ahmad Ayodeji
@@ -14,6 +12,9 @@ internal-links:
excerpt: |
With AWS CloudFormation, you use a declarative approach to configuring and provisioning just about any resource out of Amazon Web Services' (AWS) massive 200+ service catalog.
last_modified_at: 2023-08-12
+categories:
+ - IaC
+ - Deployment
---
**This article provides a detailed guide on using AWS CloudFormation. Earthly significantly improves CI/CD pipelines. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-08-14-terraform-functions.md b/blog/_posts/2023-08-14-terraform-functions.md
index 5d7b172b8..50f3f98be 100644
--- a/blog/_posts/2023-08-14-terraform-functions.md
+++ b/blog/_posts/2023-08-14-terraform-functions.md
@@ -1,7 +1,5 @@
---
title: "Automating Infrastructure with Terraform Functions: Best Practices and Examples"
-categories:
- - Tutorials
toc: true
author: Vivek Kumar Singh
editor: Ubaydah Abdulwasiu
@@ -15,6 +13,8 @@ internal-links:
excerpt: |
One of Terraform's key features is its built-in functions that automate tasks in infrastructure management. These functions allow you to perform complex operations and calculations, making your code more flexible and reusable.
last_modified_at: 2023-08-17
+categories:
+ - IaC
---
**The article discusses Terraform functions. Users of Terraform find Earthly's declarative syntax both familiar and powerful. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-08-15-dx-three-ways.md b/blog/_posts/2023-08-15-dx-three-ways.md
index 081a44931..0beaabeca 100644
--- a/blog/_posts/2023-08-15-dx-three-ways.md
+++ b/blog/_posts/2023-08-15-dx-three-ways.md
@@ -1,7 +1,5 @@
---
title: "Three Ways to Do Developer Experience (DX)"
-categories:
- - Tutorials
toc: true
author: Adam
internal-links:
@@ -10,6 +8,8 @@ internal-links:
excerpt: |
Learn about the importance of Developer Experience (DX) and how it can impact different roles within an organization. Discover how Alice, Bob, and Carlos each prioritize DX in their respective roles as a Product Manager, Internal Tools Lead, and Director of Engineering, and how it has transformed their products, improved team collaboration, and accelerated development.
last_modified_at: 2023-08-15
+categories:
+ - Platform
---
**This article emphasizes the vital role of Developer Experience (DX) in boosting productivity and job satisfaction. Earthly improves DX with reliable and efficient build processes. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-08-16-create-manage-vpc-terraform.md b/blog/_posts/2023-08-16-create-manage-vpc-terraform.md
index 6a7124b7f..0e760874b 100644
--- a/blog/_posts/2023-08-16-create-manage-vpc-terraform.md
+++ b/blog/_posts/2023-08-16-create-manage-vpc-terraform.md
@@ -1,7 +1,5 @@
---
title: "Creating and Managing VPCs with Terraform: A Step-by-Step Guide"
-categories:
- - Tutorials
toc: true
author: Ndafara Tsamba
editor: Mustapha Ahmad Ayodeji
@@ -15,6 +13,8 @@ internal-links:
excerpt: |
This tutorial provides a step-by-step guide on how to create and manage an Amazon VPC using Terraform. It covers the configuration of VPC elements such as subnets, internet gateways, NAT gateways, security groups, and EC2 instances.
last_modified_at: 2023-08-28
+categories:
+ - IaC
---
**This article explains the basics of setting up a Virtual Private Cloud (VPC) with Terraform. Users of Terraform find Earthly's approach to CI build speed powerful. [Learn how](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-08-17-mail-server-API-goroutines-gmail.md b/blog/_posts/2023-08-17-mail-server-API-goroutines-gmail.md
index 876a8c4ff..61a5839c4 100644
--- a/blog/_posts/2023-08-17-mail-server-API-goroutines-gmail.md
+++ b/blog/_posts/2023-08-17-mail-server-API-goroutines-gmail.md
@@ -1,7 +1,5 @@
---
title: "Building a Concurrent Mail Server API with Goroutines and Gmail Integration"
-categories:
- - Tutorials
toc: true
author: Yusuf Akinleye
editor: Muhammad Badawy
@@ -15,6 +13,8 @@ internal-links:
excerpt: |
In this tutorial, we built a concurrent mail server API using Goroutines and integrated it with Gmail for email sending. We explored concurrency in Go, set up a MongoDB database, implemented handlers for handling HTTP requests, and created a user interface for submitting subscriber details and sending emails.
last_modified_at: 2023-08-28
+categories:
+ - Golang
---
**This article examines a Go mail server's concurrent capabilities. Earthly revolutionizes Go developers' build processes with a focus performance. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-08-18-AWS-IAM.md b/blog/_posts/2023-08-18-AWS-IAM.md
index 0ea341bd4..d5a1bfc63 100644
--- a/blog/_posts/2023-08-18-AWS-IAM.md
+++ b/blog/_posts/2023-08-18-AWS-IAM.md
@@ -1,7 +1,7 @@
---
title: "AWS IAM: Getting Started, Best Practices, and More"
categories:
- - Tutorials
+ - Cloud
toc: true
author: Ibukun Oyedeji
diff --git a/blog/_posts/2023-08-30-python-ast.md b/blog/_posts/2023-08-30-python-ast.md
index af3cc6f0f..f8ca14720 100644
--- a/blog/_posts/2023-08-30-python-ast.md
+++ b/blog/_posts/2023-08-30-python-ast.md
@@ -1,7 +1,5 @@
---
title: "Introduction to Abstract Syntax Trees in Python"
-categories:
- - Tutorials
toc: true
author: Daniel Boadzie
@@ -13,6 +11,8 @@ internal-links:
excerpt: |
This tutorial introduces the concept of Abstract Syntax Trees (AST) in Python and explains their importance in code analysis and transformation. It provides examples of how to generate and work with ASTs, including static code analysis and code transformation techniques.
last_modified_at: 2023-09-11
+categories:
+ - Python
---
**This article explores Python Abstract Syntax Trees (ASTs). Python developers like that Earthly provides consistent and fast build environments for running Python code. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-09-05-image-upload-api-cloudinary-golang.md b/blog/_posts/2023-09-05-image-upload-api-cloudinary-golang.md
index 1846c01a9..7a786e420 100644
--- a/blog/_posts/2023-09-05-image-upload-api-cloudinary-golang.md
+++ b/blog/_posts/2023-09-05-image-upload-api-cloudinary-golang.md
@@ -1,7 +1,5 @@
---
title: "Implementing an Image Upload System to Cloudinary in Golang"
-categories:
- - Tutorials
toc: true
author: Timilehin Omolana
editor: Muhammad Badawy
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
This tutorial explains how to implement an image upload system in a Golang web application using Cloudinary. It covers setting up access credentials, creating a Golang REST API with Gin, and integrating the Cloudinary Golang SDK for efficient image uploads.
last_modified_at: 2023-09-08
+categories:
+ - Golang
---
**Integrate Golang with Cloudinary for efficient image uploading in this article. Earthly provides reproducible builds that enhance reliability and efficiency. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-09-06-what-is-syslog.md b/blog/_posts/2023-09-06-what-is-syslog.md
index cc15a74c7..33ba3fa86 100644
--- a/blog/_posts/2023-09-06-what-is-syslog.md
+++ b/blog/_posts/2023-09-06-what-is-syslog.md
@@ -1,7 +1,5 @@
---
title: "A Comprehensive Introduction To Syslog"
-categories:
- - Tutorials
toc: true
author: Felix Kinaro
editor: Muhammad Badawy
@@ -13,6 +11,8 @@ internal-links:
excerpt: |
Syslog is a standard protocol used for sending log messages between systems or within the same host, providing comprehensive visibility into system health and performance. It has a client-server architecture, with clients sending log messages to the syslog daemon, which parses and stores them based on a configuration file.
last_modified_at: 2023-10-06
+categories:
+ - cli
---
**This article provides a detailed guide on configuring syslog. Earthly streamlines complex build processes and speeds them up. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-09-11-nx-monorepos-guide.md b/blog/_posts/2023-09-11-nx-monorepos-guide.md
index 74e448584..f0a21df11 100644
--- a/blog/_posts/2023-09-11-nx-monorepos-guide.md
+++ b/blog/_posts/2023-09-11-nx-monorepos-guide.md
@@ -1,7 +1,5 @@
---
title: "Getting Started with Nx Monorepos: A Beginner's Guide"
-categories:
- - Tutorials
toc: true
author: Aniket Bhattacharyea
editor: Ubaydah Abdulwasiu
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
This article introduces Nx, a powerful build tool for managing monorepos. It explains the benefits of using Nx, such as seamless code sharing, efficient task management, caching, and extensibility, and provides a step-by-step guide on how to create and manage a monorepo with Nx.
last_modified_at: 2023-10-06
+categories:
+ - Build
---
**This article explains how to manage monorepos using Nx. Earthly ensures reproducible builds for monorepo workflows, regardless of programming language. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-09-13-safely-using-bash-eval.md b/blog/_posts/2023-09-13-safely-using-bash-eval.md
index 8b7bff622..7f2495055 100644
--- a/blog/_posts/2023-09-13-safely-using-bash-eval.md
+++ b/blog/_posts/2023-09-13-safely-using-bash-eval.md
@@ -1,7 +1,5 @@
---
title: "Bash eval: Understanding and (Safely) Using the Power of Dynamic Code Evaluation"
-categories:
- - Tutorials
toc: true
author: Thinus Swart
editor: Mustapha Ahmad Ayodeji
@@ -15,6 +13,8 @@ internal-links:
excerpt: |
This article explains the Bash `eval` command, its usage, risks, and vulnerabilities. It provides guidance on how to safely use `eval` by sanitizing user input and following best practices.
last_modified_at: 2023-10-06
+categories:
+ - cli
---
**This article discusses the risks associated with using Bash eval. Advanced Bash users can use Earthly to simplify complex build tasks. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-09-19-static-and-dynamic-linking.md b/blog/_posts/2023-09-19-static-and-dynamic-linking.md
index a469c83d2..104808871 100644
--- a/blog/_posts/2023-09-19-static-and-dynamic-linking.md
+++ b/blog/_posts/2023-09-19-static-and-dynamic-linking.md
@@ -1,7 +1,5 @@
---
title: "Static and Dynamic Linking Explained"
-categories:
- - Tutorials
toc: true
author: Abhinav Upadhyay
editor: Mustapha Ahmad Ayodeji
@@ -15,6 +13,8 @@ internal-links:
excerpt: |
This article explains the concepts of static and dynamic linking in programming. It discusses the differences between the two methods, their advantages and disadvantages, and provides guidance on when to choose each approach.
last_modified_at: 2023-10-06
+categories:
+ - Make
---
**This article explains how to handle linking in programming. Earthly simplifies the process of building and integrating static and dynamic libraries for C and C++ developers. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-09-20-powerline10k.md b/blog/_posts/2023-09-20-powerline10k.md
index ad064fcf6..13f2e3d9f 100644
--- a/blog/_posts/2023-09-20-powerline10k.md
+++ b/blog/_posts/2023-09-20-powerline10k.md
@@ -1,7 +1,7 @@
---
title: "Powerlevel10k"
categories:
- - Tutorials
+ - cli
toc: true
author: Adam
excerpt: |
diff --git a/blog/_posts/2023-09-20-terraform-depends-on-argument.md b/blog/_posts/2023-09-20-terraform-depends-on-argument.md
index a2a875c32..a25e3ffb8 100644
--- a/blog/_posts/2023-09-20-terraform-depends-on-argument.md
+++ b/blog/_posts/2023-09-20-terraform-depends-on-argument.md
@@ -1,7 +1,5 @@
---
title: "Getting Started with Terraform `depends_on` to Specify Dependencies"
-categories:
- - Tutorials
toc: true
author: Ndafara Tsamba
editor: Muhammad Badawy
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
This tutorial explains how to use the `depends_on` attribute in Terraform to specify resource dependencies. It covers both explicit and implicit dependencies and provides best practices for managing dependencies in Terraform configurations.
last_modified_at: 2023-10-06
+categories:
+ - IaC
---
**This article walks through Terraform dependency management. Fans of Terraform find Earthly improves build times with its advanced caching. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-09-22-build-monorepo-with-turporepo.md b/blog/_posts/2023-09-22-build-monorepo-with-turporepo.md
index 2b87ffaa2..a644c112f 100644
--- a/blog/_posts/2023-09-22-build-monorepo-with-turporepo.md
+++ b/blog/_posts/2023-09-22-build-monorepo-with-turporepo.md
@@ -1,7 +1,5 @@
---
title: "Using Turborepo to Build Your First Monorepo"
-categories:
- - Tutorials
toc: true
author: Aniket Bhattacharyea
editor: Muhammad Badawy
@@ -15,6 +13,8 @@ internal-links:
excerpt: |
This tutorial introduces Turborepo, a fast and high-performance build system for JavaScript and TypeScript monorepos. It explains the benefits of using Turborepo, such as fast builds, remote caching, flexible task configuration, and integration with existing package managers, while also highlighting its limitations.
last_modified_at: 2023-10-06
+categories:
+ - Build
---
**This article discusses the advantages of using Turborepo for monorepos. Earthly enhances monorepo efficiency with its powerful parallel build capabilities. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-09-25-deprecation-error-github-action-command.md b/blog/_posts/2023-09-25-deprecation-error-github-action-command.md
index 7e4cef44c..ef299c0ca 100644
--- a/blog/_posts/2023-09-25-deprecation-error-github-action-command.md
+++ b/blog/_posts/2023-09-25-deprecation-error-github-action-command.md
@@ -1,7 +1,7 @@
---
title: "Resolving Deprecation Errors in GitHub Actions Due to the `set-output`, `save-state`, `add-path` and the `set-env` Workflow Commands"
categories:
- - Tutorials
+ - GitHubActions
toc: true
author: Mustapha Ahmad Ayodeji
diff --git a/blog/_posts/2023-09-26-curse-of-knowledge.md b/blog/_posts/2023-09-26-curse-of-knowledge.md
index b20031896..4ff0f34e5 100644
--- a/blog/_posts/2023-09-26-curse-of-knowledge.md
+++ b/blog/_posts/2023-09-26-curse-of-knowledge.md
@@ -1,7 +1,5 @@
---
title: "The Curse of Knowledge in Technical Writing"
-categories:
- - Tutorials
toc: true
author: Mustapha Ahmad Ayodeji
@@ -14,6 +12,8 @@ topcta: false
excerpt: |
The article discusses the phenomenon of the Curse of Knowledge in technical writing, where authors assume that their audience possesses prior knowledge, leading to ineffective communication. It explores the causes of the curse, its impact on readers, and provides strategies for writers to overcome it and create clear and engaging technical content.
last_modified_at: 2023-10-06
+categories:
+ - Writing
---
![The Professor]({{site.images}}{{page.slug}}/tFNsGfD.jpg)\
diff --git a/blog/_posts/2023-09-27-npm-workspaces-monorepo.md b/blog/_posts/2023-09-27-npm-workspaces-monorepo.md
index 1ec395731..fcac75379 100644
--- a/blog/_posts/2023-09-27-npm-workspaces-monorepo.md
+++ b/blog/_posts/2023-09-27-npm-workspaces-monorepo.md
@@ -1,7 +1,5 @@
---
title: "Using `npm` Workspaces for Monorepo Management"
-categories:
- - Tutorials
toc: true
author: Aniket Bhattacharyea
editor: Ubaydah Abdulwasiu
@@ -15,6 +13,8 @@ internal-links:
excerpt: |
This tutorial explores the use of `npm` workspaces for managing monorepos in software development. It covers the benefits and limitations of using `npm` workspaces and provides a step-by-step guide on setting up and implementing them.
last_modified_at: 2023-10-06
+categories:
+ - Build
---
**This article discusses npm workspaces. Earthly ensures build consistency for teams utilizing npm workspaces, monorepos and many programming languages. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-09-28-advanced-git-commands-2.md b/blog/_posts/2023-09-28-advanced-git-commands-2.md
index 32e34f9cb..51145e2ac 100644
--- a/blog/_posts/2023-09-28-advanced-git-commands-2.md
+++ b/blog/_posts/2023-09-28-advanced-git-commands-2.md
@@ -1,7 +1,5 @@
---
title: "10 Advanced Git Commands Part2"
-categories:
- - Tutorials
toc: true
author: Temitope Oyedele
editor: Ubaydah Abdulwasiu
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
This article discusses ten more advanced Git commands, including git remote, git bisect, git fetch, git checkout, git branch, git reset, git archive, and git help. These commands provide developers with powerful tools for managing remote repositories, finding specific commits, retrieving changes from remote repositories, navigating branches, manipulating commit history, creating archives, and accessing Git documentation.
last_modified_at: 2023-10-06
+categories:
+ - cli
---
**This article is about advanced Git commands. If you're a git power-user, you'll like how Earthly streamlines your build process. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-09-28-deployment-strategies-kubernetes.md b/blog/_posts/2023-09-28-deployment-strategies-kubernetes.md
index 0fb61d1c6..069a19963 100644
--- a/blog/_posts/2023-09-28-deployment-strategies-kubernetes.md
+++ b/blog/_posts/2023-09-28-deployment-strategies-kubernetes.md
@@ -1,7 +1,5 @@
---
title: "Deployment Strategies in Kubernetes"
-categories:
- - Tutorials
toc: true
author: Muhammad Badawy
@@ -13,6 +11,8 @@ internal-links:
excerpt: |
This article discusses different deployment strategies in Kubernetes, including rolling deployment, blue-green deployment, recreate deployment, and canary deployment. It explains how to implement each strategy and highlights their advantages and disadvantages.
last_modified_at: 2023-10-06
+categories:
+ - Orchestration
---
**This article explores the best Kubernetes deployment strategies to streamline your workflow. Earthly provides reproducible and efficient CI builds that enhance your Kubernetes environment. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-09-29-rust-api-rocket-diesel.md b/blog/_posts/2023-09-29-rust-api-rocket-diesel.md
index 340c91363..bc823024f 100644
--- a/blog/_posts/2023-09-29-rust-api-rocket-diesel.md
+++ b/blog/_posts/2023-09-29-rust-api-rocket-diesel.md
@@ -1,7 +1,5 @@
---
title: "Building APIs with Rust Rocket and Diesel"
-categories:
- - Tutorials
toc: true
author: Ukeje Goodness
editor: Muhammad Badawy
@@ -15,6 +13,8 @@ internal-links:
excerpt: |
This tutorial explores how to build a CRUD REST API using Rust's Rocket web framework and Diesel ORM. It covers setting up the database, handling POST, GET, PUT, and DELETE requests, and interacting with the database using Diesel.
last_modified_at: 2023-10-06
+categories:
+ - Rust
---
**This article provides a guide on creating APIs in Rust using the Rocket framework and Diesel ORM. It explains the setup, configuration, and implementation of CRUD operations in a Rust project, emphasizing practical application through examples.**
diff --git a/blog/_posts/2023-10-02-using-github-actions-locally.md b/blog/_posts/2023-10-02-using-github-actions-locally.md
index e3e8cdc49..4efd5aa33 100644
--- a/blog/_posts/2023-10-02-using-github-actions-locally.md
+++ b/blog/_posts/2023-10-02-using-github-actions-locally.md
@@ -1,7 +1,5 @@
---
title: "How to Test and Run GitHub Actions Locally"
-categories:
- - Tutorials
toc: true
author: Kumar Harsh
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
This tutorial explains how to test and run GitHub Actions locally using a tool called `act`. It covers the installation of `act`, exploring its features, and discusses the limitations of using `act` for local GitHub Actions development.
last_modified_at: 2023-10-06
+categories:
+ - GitHubActions
---
**The article explains how act can be used to run GitHub Actions locally. The limitations of that approach lead many towards Earthly. Earthly ensures consistent and reliable builds that run in GitHub Actions and locally. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-10-03-github-action-triggers.md b/blog/_posts/2023-10-03-github-action-triggers.md
index 8886c908b..176d04bd9 100644
--- a/blog/_posts/2023-10-03-github-action-triggers.md
+++ b/blog/_posts/2023-10-03-github-action-triggers.md
@@ -1,7 +1,5 @@
---
title: "Exploring GitHub Actions Triggers"
-categories:
- - Tutorials
toc: true
author: Ivan Kahl
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
GitHub Actions is a powerful CI/CD platform that allows you to automate various tasks in your GitHub repository. This article explores different triggers, such as `create`, `delete`, `deployment`, `issues`, `issue_comment`, `page_build`, `pull_request`, `pull_request_review`, `push`, `registry_package`, `release`, `schedule`, `workflow_call`, and `workflow_dispatch`, and provides examples of how to use them to create automated workflows.
last_modified_at: 2023-10-18
+categories:
+ - GitHubActions
---
**The article summarizes GitHub Actions triggers. Earthly ensures consistent and portable build environments for GitHub Actions users. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-10-04-azure-functions.md b/blog/_posts/2023-10-04-azure-functions.md
index c396606ba..3a58f41c1 100644
--- a/blog/_posts/2023-10-04-azure-functions.md
+++ b/blog/_posts/2023-10-04-azure-functions.md
@@ -1,7 +1,5 @@
---
title: "Using Azure Functions to Build Your First Serverless Application"
-categories:
- - Tutorials
toc: true
author: Osinachi Chukwujama
@@ -13,6 +11,8 @@ internal-links:
excerpt: |
This tutorial explains how to build a serverless application using Azure Functions. It covers setting up a serverless architecture deployment on Azure, creating different serverless functions, managing state with Azure Cosmos DB, monitoring with Azure Application Insights, and deploying the functions using CI/CD and GitHub.
last_modified_at: 2023-10-06
+categories:
+ - Cloud
---
**This tutorial explains how to build a serverless application using Azure Functions. After reading it take a look at Earthly. Earthly provides indispensable build tools for your next project. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-10-05-github-action-artifacts.md b/blog/_posts/2023-10-05-github-action-artifacts.md
index b2587729a..dbc60686b 100644
--- a/blog/_posts/2023-10-05-github-action-artifacts.md
+++ b/blog/_posts/2023-10-05-github-action-artifacts.md
@@ -1,7 +1,5 @@
---
title: "Uploading and Downloading Artifacts with GitHub Actions"
-categories:
- - Tutorials
toc: true
author: Kumar Harsh
@@ -13,6 +11,8 @@ internal-links:
excerpt: |
This tutorial explains how to use artifacts with GitHub Actions to upload and download files. It covers the process of capturing data from workflows, uploading artifacts, and downloading them for further use.
last_modified_at: 2023-10-06
+categories:
+ - GitHubActions
---
**This article explains how to use GitHub Actions artifacts. Earthly significantly cuts GitHub Action build times with its parallel build capabilities that work right in GitHub Actions. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-10-06-cronjobs-for-github-actions.md b/blog/_posts/2023-10-06-cronjobs-for-github-actions.md
index cc43b3a3a..6f55d8ddf 100644
--- a/blog/_posts/2023-10-06-cronjobs-for-github-actions.md
+++ b/blog/_posts/2023-10-06-cronjobs-for-github-actions.md
@@ -1,7 +1,5 @@
---
title: "Using Cron Jobs to Run GitHub Actions on a Timer"
-categories:
- - Tutorials
toc: true
author: Kumar Harsh
@@ -13,6 +11,8 @@ internal-links:
excerpt: |
This tutorial explains how to use cron jobs to schedule and run GitHub Actions workflows on a timer. It covers setting up the cron expressions, creating the workflows, and considerations for using cron in GitHub Actions.
last_modified_at: 2023-10-06
+categories:
+ - GitHubActions
---
**The article discusses GitHub Actions scheduling. Earthly ensures consistent and cache-optimized builds for your GitHub Actions workflows. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-10-06-macOS-native-containers.md b/blog/_posts/2023-10-06-macOS-native-containers.md
index 955b9ee1c..baec663dc 100644
--- a/blog/_posts/2023-10-06-macOS-native-containers.md
+++ b/blog/_posts/2023-10-06-macOS-native-containers.md
@@ -1,12 +1,12 @@
---
title: "macOS Containers - The Rise of Native Containerization"
-categories:
- - Articles
toc: true
author: Adam
excerpt: |
macOS traditionally did not support native containers, but a community initiative has started to develop containerized macOS, which could be useful for CI XCode builds and local macOS development. While still in the early stages, macOS containers show promise for improving performance and eliminating the need for a Linux VM on macOS.
last_modified_at: 2023-10-04
+categories:
+ - Containers
---
**The article discusses the macOS container initiative. Earthly streamlines CI processes for macOS developers with efficient containerized builds. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-10-09-fish-shell.md b/blog/_posts/2023-10-09-fish-shell.md
index a1662c9e6..148bb2790 100644
--- a/blog/_posts/2023-10-09-fish-shell.md
+++ b/blog/_posts/2023-10-09-fish-shell.md
@@ -1,7 +1,5 @@
---
title: "Fish Shell"
-categories:
- - Tutorials
toc: true
author: Anurag Kumar
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
Fish Shell is a user-friendly and interactive shell that can be used for daily tasks and scripting. It offers features like auto suggestions, tab-based completion, syntax highlighting, setting aliases and abbreviations, customization options, and the ability to write custom functions.
last_modified_at: 2023-10-06
+categories:
+ - cli
---
**This article introduces the Fish shell. Fish shell is pretty sweet. Guess what else is? Earthly. Earthly is a powerful tool to optimize your CI pipeline. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-10-10-npm-vs-npx-vs-pnmp.md b/blog/_posts/2023-10-10-npm-vs-npx-vs-pnmp.md
index 3b8091491..be0d9fef9 100644
--- a/blog/_posts/2023-10-10-npm-vs-npx-vs-pnmp.md
+++ b/blog/_posts/2023-10-10-npm-vs-npx-vs-pnmp.md
@@ -1,7 +1,7 @@
---
title: "npx vs. npm vs. pnpm: A Comparison for JavaScript Projects"
categories:
- - Tutorials
+ - Build
toc: true
author: Kumar Harsh
diff --git a/blog/_posts/2023-10-11-npm-vs-yarn.md b/blog/_posts/2023-10-11-npm-vs-yarn.md
index bcb3aa870..5b6cd2244 100644
--- a/blog/_posts/2023-10-11-npm-vs-yarn.md
+++ b/blog/_posts/2023-10-11-npm-vs-yarn.md
@@ -1,7 +1,7 @@
---
title: "npm vs. Yarn: Unraveling the Knots of Package Management"
categories:
- - Tutorials
+ - Build
toc: true
author: Kumar Harsh
diff --git a/blog/_posts/2023-10-12-linux-security-modules.md b/blog/_posts/2023-10-12-linux-security-modules.md
index 269aefb06..845c9875e 100644
--- a/blog/_posts/2023-10-12-linux-security-modules.md
+++ b/blog/_posts/2023-10-12-linux-security-modules.md
@@ -1,7 +1,5 @@
---
title: "Linux Security Modules"
-categories:
- - Tutorials
toc: true
author: Anurag Kumar
editor: Mustapha Ahmad Ayodeji
@@ -13,6 +11,8 @@ internal-links:
excerpt: |
This blog post discusses Linux Security Modules (LSMs) and how they can be used to enhance the security of Linux systems. It specifically focuses on AppArmor, one of the popular LSMs, and provides examples of creating profiles to restrict file and network access.
last_modified_at: 2023-10-06
+categories:
+ - cli
---
**This article provides a detailed examination of AppArmor security profiles. Earthly guarantees reproducible builds for improved security within CI pipelines. [Learn more](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-10-13-datastreaming-kafka-asyncio.md b/blog/_posts/2023-10-13-datastreaming-kafka-asyncio.md
index bc9a848eb..c677eea42 100644
--- a/blog/_posts/2023-10-13-datastreaming-kafka-asyncio.md
+++ b/blog/_posts/2023-10-13-datastreaming-kafka-asyncio.md
@@ -1,7 +1,5 @@
---
title: "Building Real-Time Data Streaming Applications with Kafka and Asyncio"
-categories:
- - Tutorials
toc: true
author: Wamaitha Nyamu
editor: Mustapha Ahmad Ayodeji
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
This tutorial explores how to build real-time data streaming applications using Kafka and Asyncio. It covers setting up a Kafka cluster, fetching data from the Reddit API, processing the data asynchronously, and sending it to a Kafka topic for downstream processing.
last_modified_at: 2023-10-06
+categories:
+ - Python
---
**Discover the integration of Kafka and Asyncio for efficient streaming in this article. Earthly accelerates data-driven projects with its parallel build capabilities. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-10-16-optimize-sql-queries-golang.md b/blog/_posts/2023-10-16-optimize-sql-queries-golang.md
index cd0338d7d..c2d839360 100644
--- a/blog/_posts/2023-10-16-optimize-sql-queries-golang.md
+++ b/blog/_posts/2023-10-16-optimize-sql-queries-golang.md
@@ -1,7 +1,5 @@
---
title: "Optimizing SQL Queries With Code Examples In Go"
-categories:
- - Tutorials
toc: true
author: Ukeje Goodness
editor: Mustapha Ahmad Ayodeji
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
This tutorial explores various techniques for optimizing SQL queries in Go applications using GORM and Postgres. It covers topics such as indexing, query simplification, caching, and connection pooling to improve query performance and scalability.
last_modified_at: 2023-10-17
+categories:
+ - Golang
---
**This article explores SQL optimization techniques. Earthly provides Go developers with reproducible build environments for enhanced performance. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-10-17-composite-actions-github.md b/blog/_posts/2023-10-17-composite-actions-github.md
index 5606ddcc1..01a560be8 100644
--- a/blog/_posts/2023-10-17-composite-actions-github.md
+++ b/blog/_posts/2023-10-17-composite-actions-github.md
@@ -1,7 +1,5 @@
---
title: "Understanding and Using Composite Actions in GitHub"
-categories:
- - Tutorials
toc: true
author: Ikeh Akinyemi
@@ -13,6 +11,8 @@ internal-links:
excerpt: |
GitHub Actions offers composite actions, which allow you to bundle multiple workflow steps into a single, reusable entity, enhancing modularity and efficiency. This tutorial provides a comprehensive overview of composite actions, including how to implement them, publish them, and incorporate them into workflows.
last_modified_at: 2023-10-17
+categories:
+ - GitHubActions
---
**The article explains the benefits of GitHub composite actions. Earthly provides consistent and reproducible builds for your GitHub Actions workflows. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-10-18-nomad-vs-kubernetes.md b/blog/_posts/2023-10-18-nomad-vs-kubernetes.md
index f43f72d12..38f193f85 100644
--- a/blog/_posts/2023-10-18-nomad-vs-kubernetes.md
+++ b/blog/_posts/2023-10-18-nomad-vs-kubernetes.md
@@ -1,7 +1,5 @@
---
title: "Nomad vs. Kubernetes: Is Simpler Ever Better?"
-categories:
- - Tutorials
toc: true
author: James Konik
@@ -13,6 +11,8 @@ internal-links:
excerpt: |
This article compares the container orchestration tools Nomad and Kubernetes. Nomad is simpler and easier to use, while Kubernetes offers a broader set of features and is better suited for large-scale deployments.
last_modified_at: 2023-10-20
+categories:
+ - Orchestration
---
**This article compares Kubernetes and Nomad in orchestration. Earthly provides a consistent build environment that complements both Kubernetes and Nomad. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-10-19-concurrency-in-github-actions.md b/blog/_posts/2023-10-19-concurrency-in-github-actions.md
index bdbb07dde..109799452 100644
--- a/blog/_posts/2023-10-19-concurrency-in-github-actions.md
+++ b/blog/_posts/2023-10-19-concurrency-in-github-actions.md
@@ -1,7 +1,5 @@
---
title: "Making the Most of Concurrency in GitHub Actions"
-categories:
- - Tutorials
toc: true
author: Mdu Sibisi
@@ -12,6 +10,8 @@ internal-links:
excerpt: |
This tutorial explains how to control and optimize concurrency in GitHub Actions by utilizing features such as the `concurrency` keyword, workflow triggers, job matrixes, and caching. It also highlights the benefits of a well-implemented concurrency strategy and provides tips for avoiding common pitfalls.
last_modified_at: 2023-10-17
+categories:
+ - GitHubActions
---
**This article explains GitHub Actions concurrency. Earthly provides robust parallel build capabilities for GitHub Actions. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-10-20-software-dependency-management.md b/blog/_posts/2023-10-20-software-dependency-management.md
index c65c12fd2..f86eecf31 100644
--- a/blog/_posts/2023-10-20-software-dependency-management.md
+++ b/blog/_posts/2023-10-20-software-dependency-management.md
@@ -1,7 +1,7 @@
---
title: "Understanding Software Dependency Management"
categories:
- - Tutorials
+ - Articles
toc: true
author: Rexford A. Nyarko
diff --git a/blog/_posts/2023-10-23-pants-python-monorepo.md b/blog/_posts/2023-10-23-pants-python-monorepo.md
index 5445e9ae5..9b48679ec 100644
--- a/blog/_posts/2023-10-23-pants-python-monorepo.md
+++ b/blog/_posts/2023-10-23-pants-python-monorepo.md
@@ -1,7 +1,5 @@
---
title: "Using Pants to Manage a Python Monorepo"
-categories:
- - Tutorials
toc: true
author: Aykut Bulgu
editor: Muhammad Badawy
@@ -14,6 +12,8 @@ internal-links:
excerpt: |
This tutorial explains how to use Pants, a monorepo tool, to build, configure, and manage a Python monorepo. It covers setting up the project, defining the backend and creating the necessary BUILD files, running tests, linting and formatting the code, and packaging and running the application.
last_modified_at: 2023-10-17
+categories:
+ - Build
---
**This article explains the Pants build system for managing Python monorepos. Earthly streamlines build processes using its declarative Earthfile syntax. It works great with Python and excels at building monorepos. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-10-24-golang-chi.md b/blog/_posts/2023-10-24-golang-chi.md
index 388342a47..37344837a 100644
--- a/blog/_posts/2023-10-24-golang-chi.md
+++ b/blog/_posts/2023-10-24-golang-chi.md
@@ -1,7 +1,5 @@
---
title: "Building Your First Application with Go and Chi"
-categories:
- - Tutorials
toc: true
author: Milap Neupane
editor: Mustapha Ahmad Ayodeji
@@ -14,6 +12,8 @@ internal-links:
last_modified_at: 2023-10-20
excerpt: |
This tutorial explains how to build a REST API application using Go and the Chi router. It covers topics such as setting up the environment, creating routes for different HTTP methods, handling CRUD operations, and testing the application.
+categories:
+ - Golang
---
**This article discusses Go REST API development. Earthly significantly reduces testing time with its parallel build capabilities. Try it for your next Go project. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-10-25-go-modules.md b/blog/_posts/2023-10-25-go-modules.md
index 713c81940..b4cb5c3bf 100644
--- a/blog/_posts/2023-10-25-go-modules.md
+++ b/blog/_posts/2023-10-25-go-modules.md
@@ -1,7 +1,5 @@
---
title: "Understanding Go Package Management and Modules"
-categories:
- - Tutorials
toc: true
author: Israel Ulelu
@@ -13,6 +11,8 @@ internal-links:
last_modified_at: 2023-10-20
excerpt: |
This article provides a comprehensive guide to Go package management and modules. It explains the benefits of using Go modules, introduces essential commands and workflows, and offers tips and best practices for efficient package management.
+categories:
+ - Golang
---
**This article explains Go package management. Earthly ensures reproducible and efficient parallel execution for Go builds. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-10-26-github-actions-reusable-workflows.md b/blog/_posts/2023-10-26-github-actions-reusable-workflows.md
index 78ec8fde7..ed9792f04 100644
--- a/blog/_posts/2023-10-26-github-actions-reusable-workflows.md
+++ b/blog/_posts/2023-10-26-github-actions-reusable-workflows.md
@@ -1,7 +1,5 @@
---
title: "Best Practices for Reusable Workflows in GitHub Actions"
-categories:
- - Tutorials
toc: true
author: Kumar Harsh
@@ -13,6 +11,8 @@ internal-links:
last_modified_at: 2023-10-20
excerpt: |
Reusable workflows in GitHub Actions are predefined templates that allow developers to quickly scaffold processes and accelerate software delivery. Best practices for using reusable workflows include parameterizing workflows, documenting them, using composite actions, considering a dedicated workflows repository, versioning workflows, testing them, following naming conventions, considering platform compatibility, and continuously improving and refining workflows based on user feedback.
+categories:
+ - GitHubActions
---
**This article examines the benefits of GitHub's reusable workflows. Earthly enhances GitHub Actions with its reproducible and parallel builds. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-10-27-kafka-vs-rabbitmq.md b/blog/_posts/2023-10-27-kafka-vs-rabbitmq.md
index bfe00d2bd..d84d267c9 100644
--- a/blog/_posts/2023-10-27-kafka-vs-rabbitmq.md
+++ b/blog/_posts/2023-10-27-kafka-vs-rabbitmq.md
@@ -1,7 +1,7 @@
---
title: "Kafka vs RabbitMQ: What Are the Differences?"
categories:
- - Tutorials
+ - Cloud
toc: true
author: Zubair Idris Aweda
editor: Mustapha Ahmad Ayodeji
diff --git a/blog/_posts/2023-11-07-create-python-package.md b/blog/_posts/2023-11-07-create-python-package.md
index c2b72827d..503ee266f 100644
--- a/blog/_posts/2023-11-07-create-python-package.md
+++ b/blog/_posts/2023-11-07-create-python-package.md
@@ -1,7 +1,5 @@
---
title: "Create a Python Package using Setup.py"
-categories:
- - Tutorials
toc: true
author: Adam
sidebar:
@@ -9,6 +7,8 @@ sidebar:
topcta: false
excerpt: |
This tutorial series explains how to package and publish Python code on PyPI using setuptools and twine. It covers topics such as choosing a package name, creating distributions, testing the package locally, and publishing it to PyPI.
+categories:
+ - Python
---
Python has a vibrant open source ecosystem and that has been one of the keys to its popularity. As a Python developer, you can create reusable tools and code and easily share them with others. Packaging and publishing your Python code properly enables other developers to easily install and use your code in their own projects. This allows you to contribute back to the community while also building your reputation.
diff --git a/blog/_posts/2023-11-07-poetry-publish.md b/blog/_posts/2023-11-07-poetry-publish.md
index 78ce4cd77..59bd133b5 100644
--- a/blog/_posts/2023-11-07-poetry-publish.md
+++ b/blog/_posts/2023-11-07-poetry-publish.md
@@ -1,7 +1,5 @@
---
title: "Poetry Build and Publish"
-categories:
- - Tutorials
toc: true
author: Adam
sidebar:
@@ -9,6 +7,8 @@ sidebar:
topcta: false
excerpt: |
This tutorial explains how to use the Poetry dependency manager and build system to package and publish Python projects. It covers the process of building distributions, testing the package locally, and publishing to TestPyPI and PyPI.
+categories:
+ - Python
---
[Last time](/blog/create-python-package), I walked through packaging a simple Python module using setuptools and setup.py to generate distributions and publish them to PyPI.
diff --git a/blog/_posts/2023-11-07-python-c-extension.md b/blog/_posts/2023-11-07-python-c-extension.md
index 102293ec4..abde23248 100644
--- a/blog/_posts/2023-11-07-python-c-extension.md
+++ b/blog/_posts/2023-11-07-python-c-extension.md
@@ -1,7 +1,5 @@
---
title: "Python C Extension pypi Package"
-categories:
- - Tutorials
toc: true
author: Adam
sidebar:
@@ -9,6 +7,8 @@ sidebar:
topcta: false
excerpt: |
This tutorial series demonstrates how to package and distribute a Python C extension using setuptools and a setup.py file. It covers the process of integrating a C extension into Python, building the extension with setuptools, and distributing the package on PyPI.
+categories:
+ - Python
---
In Article 1 of this series, I showed you how to [package and distribute pure Python code using setuptools and a setup.py file](/blog/create-python-package/). Then in Article 2, we looked at how the [Poetry tool simplifies this process](/blog/poetry-publish/) for pure Python packages. In this final article, we'll tackle distributing a Python package containing a C extension, which adds some extra complexity.
diff --git a/blog/_posts/2023-12-04-merge-queues.md b/blog/_posts/2023-12-04-merge-queues.md
index 050eaace1..8456a8570 100644
--- a/blog/_posts/2023-12-04-merge-queues.md
+++ b/blog/_posts/2023-12-04-merge-queues.md
@@ -1,7 +1,7 @@
---
title: "Merge Queues: What You Need to Know"
categories:
- - Tutorials
+ - Build
toc: true
author: Carlos Inocencio
diff --git a/blog/_posts/2023-12-05-incremental-rust-builds.md b/blog/_posts/2023-12-05-incremental-rust-builds.md
index 858bd4256..ee48fdc7b 100644
--- a/blog/_posts/2023-12-05-incremental-rust-builds.md
+++ b/blog/_posts/2023-12-05-incremental-rust-builds.md
@@ -1,7 +1,5 @@
---
title: "Incremental Rust builds in CI"
-categories:
- - Tutorials
toc: true
author: Ignacio del Valle Alles
@@ -12,6 +10,8 @@ internal-links:
topcta: false
excerpt: |
This post introduces the `lib/rust` library, an open-source Earthly library that helps optimize Rust builds in continuous integration (CI) by leveraging caching features and persistent build runners. By using `lib/rust`, ExpressVPN was able to significantly reduce Cargo build times from 22.5 minutes to 2.5 minutes with a warm cache.
+categories:
+ - Rust
---
In this post, we present [lib/rust](https://github.com/earthly/lib/tree/main/rust), an open-source [Earthly](https://earthly.dev/) library created in collaboration with the [ExpressVPN](https://github.com/expressvpn) core team, that will help you get maximum performance on Rust builds in CI when used in combination with persistent build runners.
diff --git a/blog/_posts/2023-12-05-nerdctl.md b/blog/_posts/2023-12-05-nerdctl.md
index 34eb3146c..9edf05e08 100644
--- a/blog/_posts/2023-12-05-nerdctl.md
+++ b/blog/_posts/2023-12-05-nerdctl.md
@@ -1,7 +1,5 @@
---
title: "Getting Started with nerdctl"
-categories:
- - Tutorials
toc: true
author: Damaso Sanoja
@@ -12,6 +10,8 @@ internal-links:
- nerdctl with kubernetes
excerpt: |
nerdctl is an open source command line tool for containerd that offers powerful features like rootless mode, lazy pulling, image encryption, and P2P image distribution. It provides a user-friendly and efficient way to manage containers, making it a valuable tool for container orchestration.
+categories:
+ - Containers
---
**The article examines nerdctl's container management features. Earthly provides reproducible and parallel build capabilities for your container builds. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-12-06-docker-scout.md b/blog/_posts/2023-12-06-docker-scout.md
index 7800dee0d..5fca360f8 100644
--- a/blog/_posts/2023-12-06-docker-scout.md
+++ b/blog/_posts/2023-12-06-docker-scout.md
@@ -1,7 +1,5 @@
---
title: "What Is Docker Scout and How to Use It"
-categories:
- - Tutorials
toc: true
author: Damaso Sanoja
@@ -12,6 +10,8 @@ internal-links:
- securing docker images with scout
excerpt: |
Docker Scout is a tool that simplifies securing Docker images by analyzing their contents and generating a detailed report of any vulnerabilities detected. It offers features such as inspecting for common vulnerabilities, providing security recommendations, and seamless integration with CI/CD workflows.
+categories:
+ - Containers
---
**The article summarizes how Docker Scout enhances security in continuous integration (CI). Earthly provides reproducible builds that complement Docker Scout's vulnerability analysis. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-12-07-docker-sbom.md b/blog/_posts/2023-12-07-docker-sbom.md
index e783bddd9..0586d3ee5 100644
--- a/blog/_posts/2023-12-07-docker-sbom.md
+++ b/blog/_posts/2023-12-07-docker-sbom.md
@@ -1,7 +1,5 @@
---
title: "How to Generate Your SBOM from Docker Images"
-categories:
- - Tutorials
toc: true
author: James Walker
@@ -13,6 +11,8 @@ internal-links:
- software bill of materials
excerpt: |
This tutorial explains how to generate a Software Bill of Materials (SBOM) for Docker images using the `docker sbom` command. SBOMs provide visibility into the dependencies and components included in containerized applications, allowing for better software supply chain security.
+categories:
+ - Containers
---
**This article explains how generating a Software Bill of Materials (SBOM) for Docker can secure your images. Earthly improves the SBOM generation process, providing stronger security for Docker. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-12-11-containerd-docker.md b/blog/_posts/2023-12-11-containerd-docker.md
index b01170a29..9754c45cb 100644
--- a/blog/_posts/2023-12-11-containerd-docker.md
+++ b/blog/_posts/2023-12-11-containerd-docker.md
@@ -1,7 +1,5 @@
---
title: "Getting Started with containerd in Docker"
-categories:
- - Tutorials
toc: true
author: James Walker
@@ -11,6 +9,8 @@ internal-links:
- how to use containerd in docker
excerpt: |
This tutorial explains how to use `containerd`, a container runtime, with Docker. It covers the benefits of using `containerd` as the default container runtime and how to enable and use the `containerd` image store in Docker.
+categories:
+ - Containers
---
**The article discusses Docker's `containerd` tool. Earthly ensures consistent and reproducible builds for developers using `containerd`. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-12-18-docker-init-in-go.md b/blog/_posts/2023-12-18-docker-init-in-go.md
index 7ab504b80..1967a287c 100644
--- a/blog/_posts/2023-12-18-docker-init-in-go.md
+++ b/blog/_posts/2023-12-18-docker-init-in-go.md
@@ -1,7 +1,5 @@
---
title: "Using Docker Init in Go"
-categories:
- - Tutorials
toc: true
author: Christoph Berger
@@ -12,6 +10,9 @@ internal-links:
- how to use docker init in go
excerpt: |
This tutorial explores the use of Docker Init in Go to simplify the process of creating Dockerfiles and Docker Compose configurations. Docker Init is a language-aware generator that automatically determines suitable default settings based on your project, saving time and providing a stable container configuration.
+categories:
+ - Containers
+ - Golang
---
**The article explains how to use Docker Init. Earthly simplifies build workflows for Docker Compose users. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-12-27-docker-init-quickly.md b/blog/_posts/2023-12-27-docker-init-quickly.md
index 63bf86cec..90cc099be 100644
--- a/blog/_posts/2023-12-27-docker-init-quickly.md
+++ b/blog/_posts/2023-12-27-docker-init-quickly.md
@@ -1,7 +1,5 @@
---
title: "Getting Started (Quickly) with Docker Init"
-categories:
- - Tutorials
toc: true
author: Rajkumar Venkatasamy
@@ -13,6 +11,8 @@ internal-links:
- using docker init quickly
excerpt: |
This tutorial explores the `docker init` command in Docker Desktop 4.18, which simplifies the setup of new Docker projects by generating Docker assets. It provides step-by-step instructions on how to use `docker init` with a Python Flask application.
+categories:
+ - Containers
---
**This article delves into Docker Init's application with Python Flask. [Learn how Earthly can enhance this process.](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-12-28-docker-buildx.md b/blog/_posts/2023-12-28-docker-buildx.md
index d48eb1346..a928ae475 100644
--- a/blog/_posts/2023-12-28-docker-buildx.md
+++ b/blog/_posts/2023-12-28-docker-buildx.md
@@ -1,7 +1,5 @@
---
title: "Introducing Docker Buildx"
-categories:
- - Tutorials
toc: true
author: Cameron Pavey
@@ -12,6 +10,8 @@ internal-links:
- what is buildx
excerpt: |
This article introduces Docker's Buildx plugin, which combines BuildKit's capabilities with the classic Docker build syntax. Buildx allows you to create multiplatform images compatible with various CPU architectures, providing greater flexibility and efficiency across devices.
+categories:
+ - Containers
---
**This article delves into Docker's Buildx plugin functionalities. Earthly significantly boosts your build process efficiency with its container-focused build automation. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2023-12-29-generating-sbom.md b/blog/_posts/2023-12-29-generating-sbom.md
index 70e0c56bc..9f5cdc97a 100644
--- a/blog/_posts/2023-12-29-generating-sbom.md
+++ b/blog/_posts/2023-12-29-generating-sbom.md
@@ -1,7 +1,5 @@
---
title: "Top 5 Tools for Generating Your SBOM"
-categories:
- - Tutorials
toc: true
author: James Walker
@@ -12,6 +10,8 @@ internal-links:
- generate your sbom
excerpt: |
This article discusses the importance of generating a software bill of materials (SBOM) and provides an overview of five popular tools for generating SBOMs, including Syft, Tern, Kubernetes bom, SPDX SBOM Generator, and CycloneDX Generator. These tools support various formats and offer different features, making it easier for developers to generate SBOMs and understand their software supply chain.
+categories:
+ - Containers
---
**This article delves into SBOM generation tools. Earthly is a potent build tool highly valued by Docker enthusiasts. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2024-01-01-understanding-monorepos.md b/blog/_posts/2024-01-01-understanding-monorepos.md
index 4046bde33..ab3aa05db 100644
--- a/blog/_posts/2024-01-01-understanding-monorepos.md
+++ b/blog/_posts/2024-01-01-understanding-monorepos.md
@@ -1,7 +1,5 @@
---
title: "Understanding Monorepos and High-Performance Build Systems"
-categories:
- - Tutorials
toc: true
author: Siddhant Varma
@@ -13,6 +11,8 @@ internal-links:
excerpt: |
This article explores the benefits of monorepos and discusses high-performance build systems like Nx and Turborepo that can help improve the scalability and efficiency of monorepos. These build systems create a dependency tree, utilize caching, and enable parallel job execution to optimize the build process and reduce build times.
last_modified_at: 2023-08-28
+categories:
+ - Build
---
**This article identifies top tools for optimizing monorepos. Earthly simplifies and standardizes developer builds. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2024-01-07-docker-init-in-python.md b/blog/_posts/2024-01-07-docker-init-in-python.md
index 4010f7c63..f3c0f7566 100644
--- a/blog/_posts/2024-01-07-docker-init-in-python.md
+++ b/blog/_posts/2024-01-07-docker-init-in-python.md
@@ -1,7 +1,5 @@
---
title: "Using Docker Init in Python"
-categories:
- - Tutorials
toc: true
author: Vivek Kumar Singh
@@ -12,6 +10,9 @@ internal-links:
- how to use docker init in python
excerpt: |
This tutorial explains how to use Docker Init with Python to simplify the creation of Docker configuration files like `Dockerfile`, `compose.yaml`, and `.dockerignore`. Docker Init is a user-friendly tool that generates these files based on project-specific needs, making it easier for developers to containerize their Python applications.
+categories:
+ - Containers
+ - Python
---
**This tutorial explains Docker Init. Earthly optimizes Docker configurations. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2024-01-09-docker-init-nodejs.md b/blog/_posts/2024-01-09-docker-init-nodejs.md
index 9418fab6f..3e0f79b6f 100644
--- a/blog/_posts/2024-01-09-docker-init-nodejs.md
+++ b/blog/_posts/2024-01-09-docker-init-nodejs.md
@@ -1,7 +1,5 @@
---
title: "Using Docker Init in Node.js"
-categories:
- - Tutorials
toc: true
author: Samuel Umoren
@@ -13,6 +11,8 @@ internal-links:
- nodejs with docker init
excerpt: |
This article explores the use of `docker init` in Node.js development, which automates the setup of Dockerizing a Node.js application by generating essential files like Dockerfile and docker-compose.yaml. It discusses the benefits of using `docker init` and provides a step-by-step guide on how to use it with a sample Node.js project.
+categories:
+ - Containers
---
**This article focuses on using `docker init` in Node.js development. Earthly, a build automation tool, simplifies container building in Node.js development. [Learn more](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2024-01-10-buildkit-secrets.md b/blog/_posts/2024-01-10-buildkit-secrets.md
index 21459a3bb..5b17c749e 100644
--- a/blog/_posts/2024-01-10-buildkit-secrets.md
+++ b/blog/_posts/2024-01-10-buildkit-secrets.md
@@ -1,7 +1,5 @@
---
title: "How to Handle Secrets with BuildKit"
-categories:
- - Tutorials
toc: true
author: Rajkumar Venkatasamy
@@ -13,6 +11,8 @@ internal-links:
- how to use buildkit to handle secrets
excerpt: |
This tutorial explores how to handle secrets securely during the Docker image build process using BuildKit. It covers the steps to enable Docker BuildKit secrets, securely pass secrets to the Docker image, and ensure that the secrets remain hidden from the Dockerfile, build cache, and final image.
+categories:
+ - Containers
---
**This article explores the use of BuildKit for secure Docker image building. Earthly enhances your build automation capabilities by leveraging BuildKit. You can find more information about Earthly at [this link](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2024-01-11-rust-monorepo.md b/blog/_posts/2024-01-11-rust-monorepo.md
index 20d17fb18..fb8af9e3d 100644
--- a/blog/_posts/2024-01-11-rust-monorepo.md
+++ b/blog/_posts/2024-01-11-rust-monorepo.md
@@ -1,7 +1,5 @@
---
title: "Building a Monorepo with Rust"
-categories:
- - Tutorials
toc: true
author: Kumar Harsh
@@ -13,6 +11,9 @@ internal-links:
- build your monorepo with rust
excerpt: |
This article explores the benefits of using monorepos in Rust projects, including simplified dependency management, consistent versioning, enhanced code reuse, facilitated cross-project testing, and improved collaboration. It also provides a step-by-step guide on how to set up a monorepo using Cargo, Rust's package manager, and introduces Earthly as a build tool for containerization and testing.
+categories:
+ - Rust
+ - Build
---
**This article is all about managing monorepos in Rust projects. Earthly is a tool that can make your build process as a Rust developer much simpler. [See how it works](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2024-01-22-konfig.md b/blog/_posts/2024-01-22-konfig.md
index 87be49595..f1a2b96c1 100644
--- a/blog/_posts/2024-01-22-konfig.md
+++ b/blog/_posts/2024-01-22-konfig.md
@@ -1,7 +1,5 @@
---
title: "How Earthly Solved Our CI Problem"
-categories:
- - Tutorials
toc: true
author: Eddie Chayes
@@ -12,6 +10,8 @@ internal-links:
- earthly the problem solver
excerpt: |
In this guest post, the Konfig team discusses how they solved their complex Continuous Integration challenges with Earthly, sharing insights valuable for any software development team.
+categories:
+ - Containers
---
![*In this guest post, the [Konfig](https://konfigthis.com/) team discusses how they solved their complex Continuous Integration challenges with Earthly, sharing insights valuable for any software development team.*]({{site.images}}{{page.slug}}/img3.png)
diff --git a/blog/_posts/2024-01-23-build-buildkit-cache.md b/blog/_posts/2024-01-23-build-buildkit-cache.md
index a733dcc97..64bbd1d84 100644
--- a/blog/_posts/2024-01-23-build-buildkit-cache.md
+++ b/blog/_posts/2024-01-23-build-buildkit-cache.md
@@ -1,7 +1,7 @@
---
title: "How to Speed Up Your Docker Build with BuildKit Cache"
categories:
- - Tutorials
+ - Containers
toc: true
author: Rubaiat Hossain
diff --git a/blog/_posts/2024-01-24-python-monorepo.md b/blog/_posts/2024-01-24-python-monorepo.md
index 55fc2e482..ed8995ef7 100644
--- a/blog/_posts/2024-01-24-python-monorepo.md
+++ b/blog/_posts/2024-01-24-python-monorepo.md
@@ -1,7 +1,5 @@
---
title: "Building a Monorepo with Python"
-categories:
- - Tutorials
toc: true
author: Furqan Butt
@@ -13,6 +11,8 @@ internal-links:
- using python to build a monorepo
excerpt: |
This article explains the benefits of using a monorepo setup in software development and provides a tutorial on how to build a monorepo with Python using build tools like Pants and Earthly. It covers topics such as project structure, setting up build files, running tests, fixing linting and formatting issues, and containerizing the project.
+categories:
+ - Build
---
**This article explains how to set up a monorepo in Python. Earthly efficiently orchestrates complex builds in monorepos. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2024-02-06-rust-sccache.md b/blog/_posts/2024-02-06-rust-sccache.md
index b1ccf2254..d191b8842 100644
--- a/blog/_posts/2024-02-06-rust-sccache.md
+++ b/blog/_posts/2024-02-06-rust-sccache.md
@@ -1,7 +1,5 @@
---
title: "Optimizing Rust Build Speed with sccache"
-categories:
- - Tutorials
toc: true
author: Ryan Peden
@@ -9,6 +7,8 @@ internal-links:
- sccache
excerpt: |
This tutorial explains how to use sccache, a tool that can speed up Rust compilation by caching the output of compilation and reusing it for subsequent builds. It covers installing and configuring sccache, integrating it with Cargo, measuring and optimizing build performance, and using caching in continuous integration (CI) environments.
+categories:
+ - Rust
---
**This article discusses how to optimize Rust builds. Earthly significantly speeds up Rust build times. [Learn more](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2024-02-08-yarn-vite-monorepo.md b/blog/_posts/2024-02-08-yarn-vite-monorepo.md
index d41ca9e38..5bd07e10b 100644
--- a/blog/_posts/2024-02-08-yarn-vite-monorepo.md
+++ b/blog/_posts/2024-02-08-yarn-vite-monorepo.md
@@ -1,7 +1,7 @@
---
title: "Building a Monorepo with Yarn and Vite"
categories:
- - Tutorials
+ - Build
toc: true
author: Aniket Bhattacharyea
diff --git a/blog/_posts/2024-02-10-gradle-monorepo.md b/blog/_posts/2024-02-10-gradle-monorepo.md
index b16745c12..4a31dfa90 100644
--- a/blog/_posts/2024-02-10-gradle-monorepo.md
+++ b/blog/_posts/2024-02-10-gradle-monorepo.md
@@ -1,7 +1,5 @@
---
title: "Building a Monorepo with Gradle"
-categories:
- - Tutorials
toc: true
author: Rajkumar Venkatasamy
@@ -12,6 +10,8 @@ internal-links:
- how to build a monorepo with gradle
excerpt: |
This tutorial explains how to build a monorepo using Gradle, a powerful build tool. It covers creating subprojects, managing dependencies, and running the application.
+categories:
+ - Build
---
**This article discusses the management of Gradle monorepos. If monorepos are your thing, Earthly might be worth a look. Earthly significantly enhances build efficiency in monorepos. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2024-02-14-cargo-workspace-crates.md b/blog/_posts/2024-02-14-cargo-workspace-crates.md
index b509d4fd6..04a530076 100644
--- a/blog/_posts/2024-02-14-cargo-workspace-crates.md
+++ b/blog/_posts/2024-02-14-cargo-workspace-crates.md
@@ -1,7 +1,5 @@
---
title: "Monorepos with Cargo Workspace and Crates"
-categories:
- - Tutorials
toc: true
author: Kumar Harsh
@@ -13,6 +11,8 @@ internal-links:
- building monorepos with cargo workspace and crates
excerpt: |
Monorepos with Cargo Workspace and Crates is a tutorial that explains how to use Cargo workspaces and crates in Rust development to organize code, manage dependencies, and improve collaboration. It provides step-by-step instructions on setting up a Cargo workspace, creating and publishing crates, and best practices for managing monorepos.
+categories:
+ - Rust
---
**The article provides insights on managing Rust monorepos using Cargo workspaces. Earthly simplifies the build process for Rust monorepo projects. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2024-02-15-cargo-chef.md b/blog/_posts/2024-02-15-cargo-chef.md
index 785341a5a..51066bade 100644
--- a/blog/_posts/2024-02-15-cargo-chef.md
+++ b/blog/_posts/2024-02-15-cargo-chef.md
@@ -1,7 +1,7 @@
---
title: "Making Your Docker Builds Faster with cargo-chef"
categories:
- - Tutorials
+ - Rust
toc: true
author: Utibeabasi Umanah
diff --git a/blog/_posts/2024-03-04-namespaces-and-cgroups-docker.md b/blog/_posts/2024-03-04-namespaces-and-cgroups-docker.md
index cef095465..2f4785d8d 100644
--- a/blog/_posts/2024-03-04-namespaces-and-cgroups-docker.md
+++ b/blog/_posts/2024-03-04-namespaces-and-cgroups-docker.md
@@ -1,7 +1,5 @@
---
title: "How to Use Linux Namespaces and cgroups to Control Docker Performance"
-categories:
- - Tutorials
toc: true
author: Avi Singh
@@ -13,6 +11,8 @@ internal-links:
- how to use linux namespaces and cgroups
excerpt: |
Linux namespaces and cgroups are powerful tools that can be used to control Docker performance by providing fine-grained resource allocation and ensuring optimal performance for each container. Namespaces isolate system resources, while cgroups enable the management and partitioning of system resources for a collection of processes.
+categories:
+ - Containers
---
**This article discusses how docker uses Linux namespaces. Earthly uses namespaces to make your build reproducible. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2024-03-05-developer-platforms.md b/blog/_posts/2024-03-05-developer-platforms.md
index 1792639fa..dc893025e 100644
--- a/blog/_posts/2024-03-05-developer-platforms.md
+++ b/blog/_posts/2024-03-05-developer-platforms.md
@@ -1,7 +1,5 @@
---
title: "Popular Developer Platforms Compared"
-categories:
- - Tutorials
toc: false
author: Damaso Sanoja
@@ -10,6 +8,8 @@ internal-links:
- top developer platforms
- top developer platforms to work
- comparing popular developer platforms
+categories:
+ - Platform
---
A developer platform is a framework or set of tools that simplifies and supports the process of building, testing, and deploying software applications, ultimately streamlining development pipelines. These platforms promote both teamwork and the standardization of service deployment, help speed up release cycles, and save costs by fostering a self-service model. All in all, these platforms serve as the backbone of a productive development ecosystem by melding tools into a unified workflow. With all these benefits, it's obvious why so many organizations are on the hunt for the right developer platform for their use case, but choosing the right one requires careful consideration of various factors.
diff --git a/blog/_posts/2024-03-05-developer-portals-backstage.md b/blog/_posts/2024-03-05-developer-portals-backstage.md
index 65ac9272c..41739e5f1 100644
--- a/blog/_posts/2024-03-05-developer-portals-backstage.md
+++ b/blog/_posts/2024-03-05-developer-portals-backstage.md
@@ -1,7 +1,5 @@
---
title: "Building Developer Portals with Backstage"
-categories:
- - Tutorials
toc: true
author: Aniket Bhattacharyea
@@ -11,6 +9,8 @@ internal-links:
- using backstage with developer portals
excerpt: |
Backstage is an open source project that helps companies create developer portals to manage and consolidate all their services, configurations, and secrets in one place. It comes with features like a Software Catalog, TechDocs, and Templates, and allows for customization and integration with third-party services.
+categories:
+ - Containers
---
**This article provides a step-by-step process for setting up Backstage. Earthly guarantees reproducible builds. A great tool to pair with Backstage. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2024-03-06-why-developer-platform.md b/blog/_posts/2024-03-06-why-developer-platform.md
index 60ab3900b..bcceb888f 100644
--- a/blog/_posts/2024-03-06-why-developer-platform.md
+++ b/blog/_posts/2024-03-06-why-developer-platform.md
@@ -1,7 +1,5 @@
---
title: "Why You Need a Developer Platform"
-categories:
- - Tutorials
toc: true
author: James Walker
@@ -11,6 +9,8 @@ internal-links:
- needing a developer platform
excerpt: |
Developer platforms centralize internal tools and processes for software development, improving DevOps outcomes by automating tasks and reducing friction. They offer benefits such as accelerated software development, improved developer productivity, enhanced collaboration and communication, and reduced costs and risks.
+categories:
+ - Platform
---
**The article discusses the significant influence of internal developer platforms. Earthly streamlines and speeds up builds. A great consideration for your developer experience play. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2024-03-13-namespaces-and-containers-in-depth.md b/blog/_posts/2024-03-13-namespaces-and-containers-in-depth.md
index 6370bd57d..0b32d816f 100644
--- a/blog/_posts/2024-03-13-namespaces-and-containers-in-depth.md
+++ b/blog/_posts/2024-03-13-namespaces-and-containers-in-depth.md
@@ -1,7 +1,5 @@
---
title: "How to Use Docker Namespaces to Isolate Containers"
-categories:
- - Tutorials
toc: true
author: Christoph Berger
@@ -13,6 +11,8 @@ internal-links:
- using docker namespaces
excerpt: |
Docker uses Linux namespaces to isolate containers and provide them with well-defined, replicable, and isolated environments. Namespaces divide system resources into distinct compartments, such as process IDs, network interfaces, and file mounts, to prevent conflicts and improve security.
+categories:
+ - Containers
---
**The article examines how Docker utilizes Linux namespaces for container isolation. Earthly simplifies the container build process for Docker users. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2024-03-14-docker-build-cloud.md b/blog/_posts/2024-03-14-docker-build-cloud.md
index f0b60abde..0ae33dd97 100644
--- a/blog/_posts/2024-03-14-docker-build-cloud.md
+++ b/blog/_posts/2024-03-14-docker-build-cloud.md
@@ -1,7 +1,5 @@
---
title: "Saving an Hour a Day with Docker Build Cloud"
-categories:
- - Tutorials
toc: false
author: Damaso Sanoja
@@ -12,6 +10,8 @@ internal-links:
- work efficiently with docker build cloud
excerpt: |
Docker Build Cloud is a service that speeds up Docker builds by up to 39 times compared to local builds, allowing software developers to save valuable time and enhance productivity. It leverages on-demand cloud resources and team-wide caching to reduce build times and supports building images for different platforms.
+categories:
+ - Containers
---
**The article examines Docker Build Cloud's features. Earthly Satellites is an improvement upon this idea which can shrink your image build time. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2024-03-15-arm-containers-github-actions.md b/blog/_posts/2024-03-15-arm-containers-github-actions.md
index 2b856f952..aaeda3764 100644
--- a/blog/_posts/2024-03-15-arm-containers-github-actions.md
+++ b/blog/_posts/2024-03-15-arm-containers-github-actions.md
@@ -1,7 +1,5 @@
---
title: "Building an ARM-Based Docker Image Using GitHub Actions"
-categories:
- - Tutorials
toc: true
author: Rahul Rai
@@ -12,6 +10,8 @@ internal-links:
- build arm-based docker image using github actions
excerpt: |
This tutorial explains how to automate the creation and deployment of Docker images specifically designed for ARM architecture using GitHub Actions. It covers the process of building and running a Docker image on an ARM device, as well as building an ARM-based Docker image on a non-ARM device.
+categories:
+ - GitHubActions
---
**Automating ARM Docker images with GitHub Actions can significantly streamline the development process. Earthly Satellites can produce ARM even faster. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2024-03-18-data-engineering-analysis.md b/blog/_posts/2024-03-18-data-engineering-analysis.md
index 5a8146bfc..fed681b62 100644
--- a/blog/_posts/2024-03-18-data-engineering-analysis.md
+++ b/blog/_posts/2024-03-18-data-engineering-analysis.md
@@ -1,7 +1,5 @@
---
title: "My Adventure in Data Engineering"
-categories:
- - Tutorials
toc: true
author: Ido
@@ -11,6 +9,8 @@ internal-links:
- implementing data engineering
excerpt: |
An engineer at Earthly shares his journey and tips for implementing self-sign-up and analyzing user behavior using tools like Funnel Story and Hex to improve the onboarding process and make data-driven decisions. By tracking user behavior and making strategic product decisions based on the data, Earthly was able to attract more users and convert them into paying customers.
+categories:
+ - Articles
---
**Ido - an engineer at Earthly - recently put on a data analytics hat and dove deep into instrumentation and visualization so he could understand how users are using Earthly. In this article, he shares his journey and tips for others.**
diff --git a/blog/_posts/2024-04-02-platform-engineering-tools.md b/blog/_posts/2024-04-02-platform-engineering-tools.md
index aa2098faf..bbc474ecb 100644
--- a/blog/_posts/2024-04-02-platform-engineering-tools.md
+++ b/blog/_posts/2024-04-02-platform-engineering-tools.md
@@ -1,7 +1,5 @@
---
title: "Top 7 Platform Engineering Tools"
-categories:
- - Tutorials
toc: true
author: Alexandre Couëdelo
@@ -12,6 +10,8 @@ internal-links:
- best platform engineering tools
excerpt: |
Platform engineering focuses on improving developer productivity through standardized tooling, automation, and best practices. This article highlights seven popular platform engineering tools, including Backstage for building developer portals, Terraform for infrastructure provisioning, and Kubernetes for container orchestration.
+categories:
+ - Platform
---
**This article lists key platform engineering tools for developers. Earthly guarantees consistent builds in any environment. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2024-04-04-cosine_similarity_text_embeddings.md b/blog/_posts/2024-04-04-cosine_similarity_text_embeddings.md
index 87212c75d..410a9ddeb 100644
--- a/blog/_posts/2024-04-04-cosine_similarity_text_embeddings.md
+++ b/blog/_posts/2024-04-04-cosine_similarity_text_embeddings.md
@@ -1,9 +1,9 @@
---
title: "Cosine Similarity and Text Embeddings In Python with OpenAI"
-categories:
- - Tutorials
toc: true
author: Adam
+categories:
+ - Python
---
Okay, so I wanted to add related items to the sidebar on the Earthly Blog. Since we are approaching 500 blog posts, building this related list for each post manually wasn't going to work.
diff --git a/blog/_posts/2024-04-08-platform-teams.md b/blog/_posts/2024-04-08-platform-teams.md
index 343772c24..71b1c6cc2 100644
--- a/blog/_posts/2024-04-08-platform-teams.md
+++ b/blog/_posts/2024-04-08-platform-teams.md
@@ -1,7 +1,5 @@
---
title: "How a Platform Team Helps Your Developers"
-categories:
- - Tutorials
toc: true
author: James Walker
@@ -10,6 +8,8 @@ internal-links:
- platform team helping your developers
- platform team useful for developers
- developers being helped by platform team
+categories:
+ - Platform
---
Platform teams support the work of development teams by building internal tools and platforms that automate processes, unify operations, and enable self-service developer access to infrastructure resources.
diff --git a/blog/_posts/2024-04-09-what-is-platform-engineering.md b/blog/_posts/2024-04-09-what-is-platform-engineering.md
index 2b24b9cab..dfa4f6eb1 100644
--- a/blog/_posts/2024-04-09-what-is-platform-engineering.md
+++ b/blog/_posts/2024-04-09-what-is-platform-engineering.md
@@ -1,7 +1,5 @@
---
title: "What Is Platform Engineering?"
-categories:
- - Tutorials
toc: true
author: James Walker
@@ -12,6 +10,8 @@ internal-links:
- is platform engineering usefull
excerpt: |
Platform engineering is a discipline that improves developer productivity by providing automated tools and processes that accelerate the software delivery lifecycle. It focuses on centralization, consistency, and self-service developer access. Platform engineering involves creating internal developer platforms that act as one-stop shops for developers, simplifying their day-to-day tasks and improving consistency and control for team leaders.
+categories:
+ - Platform
---
**The article focuses on the transformative impact of platform engineering. Earthly's reproducible builds significantly enhance consistency and efficiency for platform engineers. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2024-04-10-monorepo-java.md b/blog/_posts/2024-04-10-monorepo-java.md
index 1e9da0891..dc877f6eb 100644
--- a/blog/_posts/2024-04-10-monorepo-java.md
+++ b/blog/_posts/2024-04-10-monorepo-java.md
@@ -1,7 +1,5 @@
---
title: "Building a Monorepo with Java"
-categories:
- - Tutorials
toc: true
author: Mdu Sibisi
@@ -12,6 +10,8 @@ internal-links:
- building monorepo
excerpt: |
This tutorial explains how to build a monorepo in Java, including the basic structure of a Java monorepo and the best tools to use for implementation. It also provides step-by-step instructions on building a monorepo with IntelliJ IDEA and Maven, as well as optimizing monorepo builds using Earthly.
+categories:
+ - Build
---
**This article explains how to streamline Java monorepos. Earthly simplifies and stabilizes Java monorepo builds. [Check it out](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2024-04-18-golang-dlv.md b/blog/_posts/2024-04-18-golang-dlv.md
index 0d6960195..b92c85024 100644
--- a/blog/_posts/2024-04-18-golang-dlv.md
+++ b/blog/_posts/2024-04-18-golang-dlv.md
@@ -1,12 +1,12 @@
---
title: "go delve - The Golang Debugger "
-categories:
- - Tutorials
toc: true
author: Adam
internal-links:
- just an example
+categories:
+ - Golang
---
Delve (`dlv`) is a CLI-based debugger for Go, tailored to the language's concurrency model and runtime. It allows you to set breakpoints, inspect goroutines, and evaluate and manipulate variables in real-time. Delve supports remote debugging and seamlessly integrates with major IDEs, including Visual Studio Code. Let me walk you through using it, but first, some background.
diff --git a/blog/_posts/2024-04-26-python-web-scraping.md b/blog/_posts/2024-04-26-python-web-scraping.md
index 7c03b4905..45a7c368c 100644
--- a/blog/_posts/2024-04-26-python-web-scraping.md
+++ b/blog/_posts/2024-04-26-python-web-scraping.md
@@ -1,7 +1,5 @@
---
title: "Python Web Scraping with Beautiful Soup and Selenium"
-categories:
- - Tutorials
toc: true
author: Vivek Singh
@@ -13,6 +11,8 @@ internal-links:
- web scraping
excerpt: |
This tutorial explains how to scrape website content using Beautiful Soup and Selenium in Python, allowing you to gather data for fine-tuning large language models (LLMs) and improving their accuracy. Beautiful Soup is used for extracting data from static pages, while Selenium is used for scraping dynamic content rendered with JavaScript.
+categories:
+ - Python
---
**This article surveys web scraping techniques. Earthly ensures reproducible builds, helping keep your data scraping projects on track. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2024-04-27-python-frameworks.md b/blog/_posts/2024-04-27-python-frameworks.md
index 2f8ae659a..77ef43891 100644
--- a/blog/_posts/2024-04-27-python-frameworks.md
+++ b/blog/_posts/2024-04-27-python-frameworks.md
@@ -1,7 +1,5 @@
---
title: "Top Python Frameworks for 2024"
-categories:
- - Tutorials
toc: true
author: Jura Gorohovsky
@@ -12,6 +10,8 @@ internal-links:
- python frameworks to look at
excerpt: |
This article provides an overview of the top Python web frameworks for 2024, including Django, Flask, and FastAPI. It discusses the features and use cases of each framework, as well as factors to consider when choosing a framework for your project.
+categories:
+ - Python
---
**The article provides an overview of Python web frameworks. Earthly improves the efficiency of CI builds within your development lifecycle. [Learn more about Earthly](https://cloud.earthly.dev/login).**
diff --git a/blog/_posts/2024-04-30-python-libraries.md b/blog/_posts/2024-04-30-python-libraries.md
index 1b1fec431..ab039fcca 100644
--- a/blog/_posts/2024-04-30-python-libraries.md
+++ b/blog/_posts/2024-04-30-python-libraries.md
@@ -1,7 +1,5 @@
---
title: "Top 10 Python Libraries for Data Science"
-categories:
- - Tutorials
toc: true
author: Alen Kalac
@@ -13,6 +11,8 @@ internal-links:
- top 10 python libraries for data science
-excerpt: |
This article provides an overview of the top Python Libraries for data science. These include Beautiful Soup, Keras, TensorFlow, Matplotlib and some other interesting libraries.
+categories:
+ - Python
---
One of the main reasons why Python is the go-to programming language for data science is its [vast ecosystem](https://learnpython.com/blog/python-modules-packages-libraries-frameworks/) of libraries, packages, and frameworks, many of which are geared toward data science.
diff --git a/blog/_posts/2024-05-21-pyinstaller.md b/blog/_posts/2024-05-21-pyinstaller.md
index 249308124..9602df813 100644
--- a/blog/_posts/2024-05-21-pyinstaller.md
+++ b/blog/_posts/2024-05-21-pyinstaller.md
@@ -1,7 +1,5 @@
---
title: "How to use PyInstaller"
-categories:
- - Tutorials
toc: true
author: Vivek Kumar Maskara
@@ -12,6 +10,8 @@ internal-links:
- creating a virtual environment with pyinstaller
excerpt: |
This tutorial explains how to create a Python virtual environment using PyInstaller, a packaging tool for Python applications, and distribute them across different operating systems. PyInstaller analyzes dependencies, bundles the application and its dependencies into a single package, and generates an executable file that can be easily shared and run without installing Python separately.
+categories:
+ - Python
---
If your Python application depends on specific packages, these dependencies must be installed before running the application. However, managing dependencies within a Python application can quickly become complicated, necessitating compatibility checks across various Python versions, resolution of dependency conflicts, and negotiation of platform-specific requirements.
diff --git a/blog/_posts/2024-05-21-python-hatch.md b/blog/_posts/2024-05-21-python-hatch.md
index de5d03ca8..70dc1ab64 100644
--- a/blog/_posts/2024-05-21-python-hatch.md
+++ b/blog/_posts/2024-05-21-python-hatch.md
@@ -1,7 +1,5 @@
---
title: "Python Environment Management with Hatch"
-categories:
- - Tutorials
toc: true
author: Gourav Singh Bais
@@ -9,6 +7,8 @@ internal-links:
- just an example
excerpt: |
Hatch is a Python project manager that allows you to manage multiple virtual environments for a single Python application, making it easier to handle varying dependency requirements and different sets of dependencies for development, testing, and documentation. However, Hatch has limitations when it comes to managing system-level dependencies and is not suitable for developing Python extension modules.
+categories:
+ - Python
---
[Hatch](https://github.com/pypa/hatch) is a modern, extensible Python project manager that's known for its ability to seamlessly manage multiple environments for a single Python application.
diff --git a/blog/_posts/2029-01-01-checklist.md b/blog/_posts/2029-01-01-checklist.md
index ad0f53a28..f46c877dd 100644
--- a/blog/_posts/2029-01-01-checklist.md
+++ b/blog/_posts/2029-01-01-checklist.md
@@ -1,12 +1,12 @@
---
title: "Put Your Best Title Here"
-categories:
- - Tutorials
toc: true
author: Adam
published: false
internal-links:
- just an example
+categories:
+ - Tutorials
---
### Writing Article Checklist
diff --git a/poetry.lock b/poetry.lock
index 998ee8516..aa5f0efc8 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -732,6 +732,24 @@ files = [
[package.extras]
cli = ["click (>=5.0)"]
+[[package]]
+name = "python-frontmatter"
+version = "1.1.0"
+description = "Parse and manage posts with YAML (or other) frontmatter"
+optional = false
+python-versions = "*"
+files = [
+ {file = "python-frontmatter-1.1.0.tar.gz", hash = "sha256:7118d2bd56af9149625745c58c9b51fb67e8d1294a0c76796dafdc72c36e5f6d"},
+ {file = "python_frontmatter-1.1.0-py3-none-any.whl", hash = "sha256:335465556358d9d0e6c98bbeb69b1c969f2a4a21360587b9873bfc3b213407c1"},
+]
+
+[package.dependencies]
+PyYAML = "*"
+
+[package.extras]
+docs = ["sphinx"]
+test = ["mypy", "pyaml", "pytest", "toml", "types-PyYAML", "types-toml"]
+
[[package]]
name = "pywin32"
version = "306"
@@ -1248,4 +1266,4 @@ files = [
[metadata]
lock-version = "2.0"
python-versions = "^3.11"
-content-hash = "da63ef79a41ff2825fd0b65ba0677a29d9727486b50a33d8782a8d5d5adf24c8"
+content-hash = "931299beb677d6bc2a36c9cc9233e83af0f6a576c94bc71602b7521482183c88"
diff --git a/pyproject.toml b/pyproject.toml
index 9d308948a..bb2752a35 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -8,6 +8,7 @@ authors = ["Adam Gordon Bell "]
python = "^3.11"
psupport = {path = "util/psupport", develop = true}
vulture = "^2.10"
+python-frontmatter = "^1.1.0"
[build-system]
requires = ["poetry-core"]
diff --git a/util/psupport/poetry.lock b/util/psupport/poetry.lock
index bbe42d910..e420fe083 100644
--- a/util/psupport/poetry.lock
+++ b/util/psupport/poetry.lock
@@ -710,6 +710,24 @@ files = [
[package.extras]
cli = ["click (>=5.0)"]
+[[package]]
+name = "python-frontmatter"
+version = "1.1.0"
+description = "Parse and manage posts with YAML (or other) frontmatter"
+optional = false
+python-versions = "*"
+files = [
+ {file = "python-frontmatter-1.1.0.tar.gz", hash = "sha256:7118d2bd56af9149625745c58c9b51fb67e8d1294a0c76796dafdc72c36e5f6d"},
+ {file = "python_frontmatter-1.1.0-py3-none-any.whl", hash = "sha256:335465556358d9d0e6c98bbeb69b1c969f2a4a21360587b9873bfc3b213407c1"},
+]
+
+[package.dependencies]
+PyYAML = "*"
+
+[package.extras]
+docs = ["sphinx"]
+test = ["mypy", "pyaml", "pytest", "toml", "types-PyYAML", "types-toml"]
+
[[package]]
name = "pywin32"
version = "306"
@@ -1215,4 +1233,4 @@ standard = ["colorama (>=0.4)", "httptools (>=0.5.0)", "python-dotenv (>=0.13)",
[metadata]
lock-version = "2.0"
python-versions = "^3.11"
-content-hash = "a66559eda99c3047bfd4c4548dc07726f0489731a3e333979d1a09801e7f1caa"
+content-hash = "9ec82462a1738d17e4b86ed95a2e2b308fbab87c5b2a3732360fc7fb46be383a"
diff --git a/util/psupport/psupport/scripts/cluster.py b/util/psupport/psupport/scripts/cluster.py
index f34699ddb..3cc3ab227 100755
--- a/util/psupport/psupport/scripts/cluster.py
+++ b/util/psupport/psupport/scripts/cluster.py
@@ -1,49 +1,75 @@
import os
import pickle
+from textwrap import dedent
from typing import List, Tuple
+import guidance
import numpy as np
+from guidance import assistant, gen, system, user
from openai import APIError, OpenAI
from sklearn.cluster import KMeans
+from sklearn.neighbors import LocalOutlierFactor
client = OpenAI(api_key=os.environ.get('OPENAI_API_KEY'))
CACHE_FILE = "./blog/_data/embeddings_cache.pkl"
-
-def load_cache() -> dict:
- if os.path.exists(CACHE_FILE):
- with open(CACHE_FILE, 'rb') as f:
+CLUSTER_TITLE_FILE = "./blog/_data/cluster_title_cache.pkl"
+
+# Initialize blacklist and whitelist
+# BLACKLIST : List[str] = ["- News", "- Articles"]
+BLACKLIST : List[str] = ["- News"]
+# BLACKLIST : List[str] = []
+WHITELIST : List[str] = ["- cli"]
+# WHITELIST : List[str] = []
+
+def load_cache(cache_file: str) -> dict:
+ if os.path.exists(cache_file):
+ with open(cache_file, 'rb') as f:
return pickle.load(f)
return {}
-cache = load_cache()
+cache = load_cache(CACHE_FILE)
+cluster_title_cache = load_cache(CLUSTER_TITLE_FILE)
-def save_cache(cache: dict) -> None:
- with open(CACHE_FILE, 'wb') as f:
+def save_cache(cache: dict, cache_file: str) -> None:
+ with open(cache_file, 'wb') as f:
pickle.dump(cache, f)
-# 1. Load the Markdown Files
+def extract_slug(filename: str) -> str:
+ parts = filename.split('-')
+ if len(parts) > 3:
+ slug = '-'.join(parts[3:])
+ slug = slug.rsplit('.', 1)[0]
+ return slug
+ return filename
+
def load_markdown_files(folder_path: str) -> Tuple[List[str], List[str]]:
all_files = [f for f in os.listdir(folder_path) if os.path.isfile(os.path.join(folder_path, f))]
- all_files = all_files[:100]
markdown_texts = []
+ filtered_files = []
for file in all_files:
- print(file)
with open(os.path.join(folder_path, file), 'r', encoding='utf-8') as f:
- markdown_texts.append(f.read())
-
- return all_files, markdown_texts
-
-def get_embedding(text: str, filename : str, model : str ="text-embedding-3-small" ) -> List[float]:
+ content = f.read()
+ # Check blacklist
+ if any(blacklist_item in content for blacklist_item in BLACKLIST):
+ continue
+ # Check whitelist
+ if WHITELIST and not all(whitelist_item in content for whitelist_item in WHITELIST):
+ continue
+ markdown_texts.append(content)
+ filtered_files.append(file)
+
+ return filtered_files, markdown_texts
+
+def get_embedding(text: str, filename: str, model: str = "text-embedding-3-small") -> List[float]:
if filename in cache:
return cache[filename]
- print(f"get embedding:{filename}")
+ print(f"get embedding: {filename}")
while True:
try:
- # text = text.replace("\n", " ")
- embedding = client.embeddings.create(input = text, model=model).data[0].embedding
+ embedding = client.embeddings.create(input=text, model=model).data[0].embedding
cache[filename] = embedding
return embedding
except APIError as e:
@@ -59,11 +85,10 @@ def get_embedding(text: str, filename : str, model : str ="text-embedding-3-smal
else:
raise e
-def generate_embeddings(markdown_texts: List[str], filenames: List[str]) -> List[List[float]]:
+def generate_embeddings(markdown_texts: List[str], filenames: List[str]) -> List[List[float]]:
embeddings = [get_embedding(text, filename) for text, filename in zip(markdown_texts, filenames)]
return embeddings
-
def handle_nan_in_embeddings(embeddings: List[List[float]]) -> List[List[float]]:
cleaned_embeddings = []
for embedding in embeddings:
@@ -79,28 +104,87 @@ def cluster_embeddings(embeddings: List[List[float]], n_clusters: int) -> List[i
kmeans = KMeans(n_clusters=n_clusters, random_state=0).fit(embeddings)
return kmeans.labels_
+
+def cluster_embeddings_with_outlier_removal(embeddings: List[List[float]], n_clusters: int, all_files : List[str], contamination: float = 0.1, n_neighbors: int = 20) -> Tuple[List[int], List[int]]:
+ # Detect outliers using LOF
+ lof = LocalOutlierFactor(n_neighbors=n_neighbors, contamination=contamination)
+ labels = lof.fit_predict(embeddings)
+
+ # Filter out outliers
+ inliers = [index for index, label in enumerate(labels) if label != -1]
+ outliers = [index for index, label in enumerate(labels) if label == -1]
+
+ print(f"Number of outliers detected: {len(outliers)}")
+ outlier_files = [all_files[index] for index in outliers]
+ outlier_list = "\n".join(outlier_files)
+ print(f"Removing the following outliers:\n{outlier_list}")
+
+ filtered_embeddings = [embeddings[i] for i in inliers]
+
+ # Apply KMeans clustering on the filtered embeddings
+ kmeans = KMeans(n_clusters=n_clusters, random_state=0).fit(filtered_embeddings)
+ cluster_labels = kmeans.labels_
+
+ # Map back to original indices, using -1 for outliers
+ final_labels = [-1] * len(embeddings)
+ for i, label in zip(inliers, cluster_labels):
+ final_labels[i] = label
+
+ return final_labels, inliers
+
+
+def generate_cluster_name(slugs: List[str]) -> str:
+ if str(slugs) in cluster_title_cache:
+ return cluster_title_cache[str(slugs)]
+
+ lm = guidance.models.OpenAI("gpt-3.5-turbo-16k")
+ with system():
+ lm += dedent("""
+ You are an assistant that generates a concise name for a cluster of related articles.
+ Given a list of article slugs, return a concise and relevant name for the cluster.""")
+ with user():
+ lm += dedent("""
+ - python-frameworks
+ - python-libraries
+ - python-web-scraping
+ """)
+ with assistant():
+ lm += dedent("Python")
+ with user():
+ lm += dedent("\n - ".join(slugs))
+ with assistant():
+ lm += gen('summary', max_tokens=100)
+ cluster_name = lm['summary'].strip()
+ cluster_title_cache[str(slugs)] = cluster_name
+ return cluster_name
+
# 4. Display the Clusters
def display_clusters(clusters: List[List[str]]) -> None:
- for i, cluster in enumerate(clusters):
+ for cluster in clusters:
if len(cluster) < 3:
continue
- print(f"Cluster {i + 1}:")
- for file_path in cluster:
- print(f" - {file_path}")
+ slugs = [extract_slug(file_path) for file_path in cluster]
+ cluster_name = generate_cluster_name(slugs)
+ print(f"{cluster_name}:")
+ for slug in slugs:
+ print(f" - {slug}")
def main() -> None:
try:
folder_path = "./blog/_posts"
- n_clusters = 50 # Adjust as necessary
+ n_clusters = 10 # Adjust as necessary
+ contamination = 0.001 # Adjust as necessary to control the proportion of outliers
+ n_neighbors = 4 # Adjust as necessary for the sensitivity of LOF
all_files, markdown_texts = load_markdown_files(folder_path)
embeddings = generate_embeddings(markdown_texts, all_files)
embeddings = handle_nan_in_embeddings(embeddings)
- labels = cluster_embeddings(embeddings, n_clusters)
+ labels, inliers = cluster_embeddings_with_outlier_removal(embeddings, n_clusters, all_files, contamination, n_neighbors)
- clusters : List[List] = [[] for _ in range(n_clusters)]
+ clusters: List[List] = [[] for _ in range(n_clusters)]
for idx, label in enumerate(labels):
- clusters[label].append(all_files[idx])
+ if label != -1:
+ clusters[label].append(all_files[idx])
display_clusters(clusters)
@@ -108,8 +192,8 @@ def main() -> None:
print(f"An error occurred: {e}")
finally:
# Save the updated cache
- save_cache(cache)
-
+ save_cache(cache, CACHE_FILE)
+ save_cache(cluster_title_cache, CLUSTER_TITLE_FILE)
if __name__ == "__main__":
main()
diff --git a/util/psupport/psupport/scripts/set_category.py b/util/psupport/psupport/scripts/set_category.py
index fc0332534..5d0493db7 100644
--- a/util/psupport/psupport/scripts/set_category.py
+++ b/util/psupport/psupport/scripts/set_category.py
@@ -1,6 +1,8 @@
import argparse
-import os
from pathlib import Path
+import yaml
+from collections import defaultdict
+import frontmatter
def remove_existing_categories(lines):
"""Remove existing categories from the front matter."""
@@ -37,14 +39,14 @@ def add_new_category(lines, new_category):
category_inserted = False
for line in lines:
- if line.strip() == "---":
- if in_front_matter and not category_inserted:
- # Insert category just before closing the front matter
- new_lines.append(f"categories:\n - {new_category}\n")
- category_inserted = True
- in_front_matter = not in_front_matter
-
new_lines.append(line)
+ if line.strip() == "---" and not in_front_matter:
+ in_front_matter = True
+ continue
+ if in_front_matter and line.strip() == "---" and not category_inserted:
+ new_lines.insert(-1, f"categories:\n - {new_category}\n")
+ category_inserted = True
+ in_front_matter = False
return new_lines
@@ -61,11 +63,46 @@ def update_category_in_md_file(filename: str, new_category: str, dryrun: bool) -
else:
print(f"Dry run: would update categories in {filename} to [{new_category}]")
+def process_files_in_directory(directory: str, category: str, slugs: list, dryrun: bool) -> None:
+ for slug in slugs:
+ matching_files = list(Path(directory).rglob(f"*{slug}.md"))
+ for file in matching_files:
+ update_category_in_md_file(file, category, dryrun)
+
+def count_categories_in_file(filename: str) -> defaultdict:
+ categories_count = defaultdict(int)
+
+ with open(filename, 'r') as f:
+ post = frontmatter.load(f)
+ categories = post.get('categories', [])
+ if isinstance(categories, list):
+ for category in categories:
+ categories_count[category] += 1
+
+ return categories_count
+
+def count_categories_in_directory(directory: str) -> defaultdict:
+ categories_count = defaultdict(int)
+ for file in Path(directory).rglob("*.md"):
+ file_categories = count_categories_in_file(file)
+ for category, count in file_categories.items():
+ categories_count[category] += count
+ return categories_count
+
+def print_sorted_categories(categories_count: defaultdict):
+ sorted_categories = sorted(categories_count.items(), key=lambda item: item[1], reverse=True)
+ total_count = sum(categories_count.values())
+
+ for category, count in sorted_categories:
+ print(f"{category} {count}")
+
+ print(f"Total {total_count}")
+
def main() -> None:
- parser = argparse.ArgumentParser(description='Set a new category in a markdown file.')
+ parser = argparse.ArgumentParser(description='Set a new category in markdown files based on slugs or count categories.')
parser.add_argument('--dir', help='The directory containing the markdown files.')
parser.add_argument('--file', help='The path to a single markdown file.')
- parser.add_argument('--category', help='The new category to set.', required=True)
+ parser.add_argument('--category', help='The new category to set.')
parser.add_argument('--dryrun', help='Dry run it.', action='store_true')
args = parser.parse_args()
@@ -73,17 +110,35 @@ def main() -> None:
if args.dryrun:
print("Dry run mode activated. No changes will be made.")
- if args.dir:
- for root, _, files in os.walk(args.dir):
- for file in files:
- if file.endswith('.md'):
- path = os.path.join(root, file)
- update_category_in_md_file(path, args.category, args.dryrun)
- elif args.file:
- update_category_in_md_file(args.file, args.category, args.dryrun)
+ if args.category:
+ config_file = "blog/_data/categories1.yml" # Path to the YAML configuration file
+
+ with open(config_file, 'r') as f:
+ config = yaml.safe_load(f)
+
+ slugs = config.get(args.category, [])
+
+ if not slugs:
+ print(f"No slugs found for category '{args.category}' in the configuration file.")
+ exit(1)
+
+ if args.dir:
+ process_files_in_directory(args.dir, args.category, slugs, args.dryrun)
+ elif args.file:
+ update_category_in_md_file(args.file, args.category, args.dryrun)
+ else:
+ print("Please provide either --dir or --file.")
+ exit(1)
else:
- print("Please provide either --dir or --file.")
- exit(1)
+ if args.dir:
+ categories_count = count_categories_in_directory(args.dir)
+ print_sorted_categories(categories_count)
+ elif args.file:
+ categories_count = count_categories_in_file(args.file)
+ print_sorted_categories(categories_count)
+ else:
+ print("Please provide either --dir or --file.")
+ exit(1)
if __name__ == '__main__':
main()
diff --git a/util/psupport/psupport/scripts/suggested_posts.py b/util/psupport/psupport/scripts/suggested_posts.py
index 35ecc01f4..53e0e8a24 100755
--- a/util/psupport/psupport/scripts/suggested_posts.py
+++ b/util/psupport/psupport/scripts/suggested_posts.py
@@ -1,11 +1,11 @@
+import argparse
import datetime
import os
import pickle
-import argparse
from typing import Dict, List, Tuple
-import yaml
import numpy as np
+import yaml
from openai import APIError, OpenAI
from sklearn.metrics.pairwise import cosine_similarity
@@ -149,7 +149,7 @@ def main() -> None:
folder_path = "./blog/_posts"
popular_slugs = load_popular_slugs("./blog/_data/popular.yml")
markdown_files = load_markdown_files(folder_path)
-
+
if args.popular:
popular_files = load_popular_markdown_files(folder_path, popular_slugs)
related_posts = find_related_posts(markdown_files, popular_files, max_related=3, min_similarity=0.50)
@@ -157,7 +157,7 @@ def main() -> None:
popular_files = load_popular_markdown_files(folder_path, popular_slugs)
non_popular_files = [file for file in markdown_files if file[0] not in [f[0] for f in popular_files]]
related_posts = find_related_posts(markdown_files, non_popular_files, max_related=10, min_similarity=0.50)
-
+
print_related_posts(related_posts)
except Exception as e:
print(f"An error occurred: {e}")
diff --git a/util/psupport/pyproject.toml b/util/psupport/pyproject.toml
index 856e94bd8..a61cbbdd8 100644
--- a/util/psupport/pyproject.toml
+++ b/util/psupport/pyproject.toml
@@ -13,6 +13,7 @@ guidance = "^0.1.10"
portalocker = "^2.8.2"
pyyaml = "^6.0.1"
scikit-learn = "^1.4.1.post1"
+python-frontmatter = "^1.1.0"
[build-system]
requires = ["poetry-core"]