Rust Convert u32 to bytes. Convert bytes to u32.

written by Andrew Shay on 2020-05-25

Here is how to convert u32 to bytes and then back again in Rust.

fn main() {
    let original_u32: u32 = 1048572;
    println!("{}", original_u32);

    let u32_as_bytes: [u8; 4] = original_u32.to_be_bytes();
    println!("{:?}", u32_as_bytes);

    let back_to_u32: u32 = u32::from_be_bytes(u32_as_bytes);
    println!("{}", back_to_u32);


On GitHub

Find Most Common Color in an Image with Python

written by Andrew Shay on 2019-04-25

A while ago I wanted my Philips Hue light bulbs to change colors based on the most common color on my monitor.
I thought this would be cool when playing video games, which it is!

In this article I will explain a simple way for detecting the most common color in an image using Python.

Note: This article describes my method that I came up with for fun. It is not "the right way" to do this, the fastest, or most efficient. But it is simple!

Read Full Post

Enterprise Test Automation: The Foundation

written by Andrew Shay on 2019-02-17

During my professional career as a Software Engineer I have worked in Enterprise Test Automation (ETA).
In my short time in ETA I have seen absolutely awful automation, and highly effective automation with a strong strategy.

In this article I will layout the foundation for strong ETA that will lead to success.

Audience for this article: Anyone who is new to Enterprise Test Automation or preparing to setup an automation team or plan. If you are experienced with ETA, then you won't get much from this.

Read Full Post

TDD vs BDD. Does TDD test implementation or behavior?

written by Andrew Shay on 2019-01-09

About a year ago I wanted to learn more about good testing habits and specifically Test Driven Development (TDD) because I had heard about it so much. While reading about these topics I came across Behavior Driven Development (BDD). I came to the conclusion that there is confusion around TDD and especially when compared to BDD, however TDD is simple and a highly effective development strategy when understood correctly.

Read Full Post

Quickly setup a minimal Python CI system using Jenkins and GitHub

written by Andrew Shay on 2018-09-27

This article discusses how to quickly and easily setup a Python CI system using GitHub and Jenkins.

This is useful for anyone who does not have a dedicated CI tool (Travis CI, TeamCity etc.) and just want to get something up and running with minimal effort.

When a GitHub Pull Request is "Opened", "Reopened", or a commit is made, a webhook will be sent to the Jenkins job. The Jenkins job will create a virtual environment, install several tools for running tests and linters, then run those tools against the code base. The output of the tools will be gathered and posted as a comment to the Pull Request via the GitHub API.

This was created to offer Python projects a simple and easy CI system without having to install and maintain dedicated CI software.

Requirements: Jenkins with Python 3.6, GitHub

Read Full Post