GitHub Actions: A brief good/bad analysis

May 1, 2021

GitHub Actions was GitHub’s take at CI/CD providers and also a very rational response to competitor GitLab’s CI/CD. The fact that your CI/CD lives right next to your SCM is absolutely amazing and is one of the selling points for GitHub Actions for many. The good part(s) There are several things that make GitHub Actions very appealing; a few of these are: It’s right next to your code; like literally an ‘Actions’ tab lying close to your ‘Code’ tab It is free…

Read more ⟶

Goodbye Jekyll; Hello, Hugo!

Apr 29, 2021

That’s right. Goodbye Jekyll; thank you for your faithful years of service, but I’ve got to move on! But don’t get me wrong — Jekyll is an amazing tool that can be used for building blogs, sites and what not; but, I’ve come to the point where I’m drawn away from Jekyll to Hugo. Here’s why. #1: Speed Hugo is written in the compiled language Go while Jekyll is written in the interpreted language Ruby. No matter how hard you optimize…

Read more ⟶

Introducing all_asserts 2.1.0

Jun 25, 2020

The crate all_asserts has just reached a new release 🎉. It introduces a new macro assert_range! which enables you to find out if a value (which implements the PartialOrd trait), is within a certain range. You can view the source code for this crate here. First add this to your Cargo.toml (if you haven’t already): all_asserts = "2.1.0" Let us go through a few trivial examples: use all_asserts::assert_range; fn main() { assert_range!((10..20), 20); } This outputs something like:

Read more ⟶

Benchmarking operations in Rust

Jun 12, 2020

We programmers, are always busy writing code. The choice of the technologies and tools we use are often governed by how well they perform and most importantly, how well they’re known to perform. This is when benchmarking becomes vital. So here’s a guide on benchmarking code in Rust. A little spoiler here: I’m the author of the devtimer crate, so I may be a little biased here ;) You can see the source code here on GitHub ↗

Read more ⟶