RSSAmplifier

Blog

Andrew Shay's Blog and Digital Garden

andrewshay.meRSS feed ↗14 posts

Latest posts

Note Taking

My Note Taking System There are many note taking systems and information organization tools and tips out there. I'm frequently changing my methods for what is most productive for me. I've also come across great ideas from other folks that I've tweaked and integrated into my work flow. Some I keep, and some I've dropped. The Starting Points Johnny Decimal & PARA & Never Ending…

BoxDiff: New project for detecting changes on Windows

I created, BoxDiff , a simple Python script for detecting changes on Windows. It shows you what was added, removed, or changed. There are no dependencies, and it's also extendable with a single Python module. A small subset of the data that is collected Devices Services Installed Programs Startup Programs Users Tasks Certificates Download from GitHub

Vendor Base64 Project for Rust

What is Vendor Base64 rust_vendor_base64 is my implementation of base64, in rust, that is meant to be vendored in rust projects. It is not available on crates.io to be installed. I created it because it's something so simple that I think it should be included in the rust stdlib. And when the base64 crate broke their API, I decided I should implement it and have a module that others could…

Auto Magor: Python Program for Generating Print Magazines

What is Auto Magor Auto Magor is a simple Python program that I created that can generate 3 column print magazines from text files and images. The user just has to create simple text files with the article body, metadata about it, and an article image. That is then turned into a 3 column magazine, as a pdf, that can be printed at home. I created it because I have been trying to use my phone less…

Making Transmitic Faster...By Doing Less!

What is Transmitic & The Prototype Phase Transmitic is an encrypted, p2p, file transfer and sharing program. I created it because, while there are many file transfer programs out there, there was nothing quite like Transmitic. The main difference is in the UI. You add users you want to share with and which files and folders each user can download from you. Then users can download those files…

Transmitic: Encrypted p2p file transfer and sharing. Built with Rust.

I created, Transmitic , desktop software for encrypted, peer to peer, file transfer and sharing. It's built with Rust and the GUI is created with sciter . I'm working to make it as easy as possible to use. It automatically generates an x25519 public signing key. Users must then exchange their public keys and IPs out of band. They can choose files and folders on their computer to share,…

Python How to Replace Multiple Regexes Without Overlaps

When I was building a new blog generator for this site, I did not want to use any third party packages, therefore I needed some simple markdown like parsing. I need to convert markdown in a line, to html. Problem: Overlapping Regex Replacements I started with multiple regexes using re.search() , and doing a simple replacement on the each line. However, I was running each regex on the line, one…

Rust Convert u32 to bytes. Convert bytes to u32.

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); } /*…

TDD vs BDD. Does TDD test implementation or behavior?

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…

Find Most Common Color in an Image with Python

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…

How to create a gauge / speedometer graphic with Python

This article discusses how to easily create a speedometer / gauge image in Python with only the Pillow library. View source code and images on GitHub: python-gauge I needed to create a gauge graphic in Python but I found many libraries did not have the graphic I needed or required that the gauge be rendered in a browser since the underlying library used was JavaScript. This script only requires…

Device Checker: New project for detecting changes on Windows

I recently wanted software to notify me when services, installed programs, and startup programs were added, removed, or changed. I found some wmic commands to give me that information, as well as much more information. I created a program to simply gather information about a Windows system and then notify the user when it has changed, and view the differences. It is currently released in beta.…

How to get the data from msinfo32 with wmic commands

I was recently looking to gather the same data that msinfo32 reports and I found a couple wmic commands that provided me with what I needed. The first is a basic wmic command eg wmic service get /format:list . This will output the services on Windows. Run wmic /? to see a list of other information you can gather. Other formatting options /format:table and /format:csv The second wmic command uses…

Apache disable TLS_RSA_WITH_3DES_EDE_CBC_SHA after LetsEncrypt

This guide is for Apache but might be similar for other web servers If you've just installed Let's Encrypt certificates with Certbot on your web server and ran SSL Server Test , you might have warning saying your server supports TLS_RSA_WITH_3DES_EDE_CBC_SHA . To drop support for this protocol you must Open /etc/letsencrypt/options-ssl-apache.conf Delete :DES-CBC3-SHA from the…