Forget Writing Code.
Start Building Software.

Get weekly inspiration to kickstart your building journey and transform your ideas into digital reality.

Top Gradle 7 features & improvements

Gradle 7.0 was released on 9th April 2021, and includes some important new features and improvements. Discover what’s new, and what the benefits could be for your Gradle project. New features/improvements in Gradle 7 Java toolchain support What is it? Gradle’s new Java toolchain allows you to use different versions of Java for different parts of your build. By default, Gradle uses the same Java version to compile and run your application as the version you’re using to run Gradle itself....

Published 16 Apr 2021 · 7 min read · Tom Gregory

SonarQube branch analysis

SonarQube helps us improve code quality using static analysis techniques. You can even add quality gates to fail your CI pipeline if the master branch doesn’t meet your requirements. Why not also apply the same technique to feature branches? In this article you’ll learn how to setup SonarQube branch analysis to check the quality of both master and feature branches, finding potential issues even earlier in the development lifecycle. SonarQube branch analysis version compatibility SonarQube branch analysis is only available for specific editions of SonarQube....

Published 5 Apr 2021 · 6 min read · Tom Gregory

View the Gradle Dependency Tree

In Gradle dependencies are libraries required to build your code. Each of these libraries may have their own dependencies, adding transitive dependencies to your project. This structure is called the Gradle dependency tree, with its own rules on dependency conflict resolution and more. In this article you’ll learn how to view the dependency tree, so you can understand fully how you project is built and resolve common issues. Dependencies and dependency configurations To be able to properly navigate the Gradle dependency tree, it’s important to understand how dependencies can be configured within different configurations....

Published 29 Mar 2021 · 7 min read · Tom Gregory

All about the Gradle task graph

A powerful feature of the Gradle build tool is its ability to setup dependencies between tasks, creating a task graph or tree. The task graph means you only need to run the task you care about, and any other required tasks get run automatically. In this article, you’ll learn all about the Gradle task graph, how to add tasks to it, and how to print it out. Tasks and task dependencies A Gradle task is a unit of work which needs to get done in your build....

Published 22 Mar 2021 · 7 min read · Tom Gregory

3 surprising facts about AWS SQS FIFO queues

The first-in-first-out (FIFO) queue is the type of AWS SQS queue that guarantees order and provides exactly once delivery of messages. That sounds great, but there are some other important features to understand to avoid unexpected queue behaviour. In this article you’ll discover the 3 most important caveats with SQS FIFO queues. 1) If a message fails to be processed, it may block other messages When you send a message to a FIFO queue a message group id must be provided....

Published 8 Mar 2021 · 8 min read · Tom Gregory

Running Jenkins slave agents in another VPC using VPC endpoints

Discover how to use VPC endpoints to enable a Jenkins agent in one VPC to communicate with a Jenkins master in another.

Published 27 Feb 2021 · 8 min read · Tom Gregory

3 options for cross-account VPC access in AWS

Using separate AWS accounts provides strong separation of resources, which is great until the point you need cross-account access from a VPC in one account to another. In this article you’ll learn 3 ways to setup a secure connection across accounts, with full working examples you can try out yourself. Why do we need cross-account VPC access? A Virtual Private Cloud (VPC) is a private network which you create in the AWS cloud....

Published 15 Feb 2021 · 16 min read · Tom Gregory

gradle vs. gradlew - what's the difference?

One of the most common questions for anyone using Gradle is what’s the difference between gradle vs. gradlew. Each is a Gradle command with a particular use case in mind. Here you’ll learn what each command does, and when to use one over the other. Quick summary If you’re working in a project that has a gradlew script, always use it. If it doesn’t, use the gradle command to generate it....

Published 6 Feb 2021 · 4 min read · Tom Gregory

How and when to use a Prometheus gauge

A Prometheus gauge is a specific type of metric used for measurements. That means your service always returns to Prometheus the current value of whatever it is you’re measuring. Prometheus is regularly scraping your service for metrics though, and when your gauge’s current value is returned Prometheus stores this against the current time. You’ll then be able to run queries against Prometheus to see what’s happening to your gauge over time....

Published 5 Feb 2021 · 5 min read · Tom Gregory