Have you ever installed a package by using go install and wondered how to uninstall it? Go is really great in that respect. Go packages are a single binary and they’re installed based on how your Go tooling is set up. Provided we have ...
Overview This is the 3rd article in a series of posts about working with Open API to create generated API clients and documentation websites. In the 1st post we went over what we can do with Open API spec files, e.g. generate API clients and documen...
Overview This article is the 2nd in a series of blog posts that discuss using Open API to help with API documentation and API client code generation. In the previous article, we went over how we can generate documentation and API clients using existi...
Overview This article starts a series of Open API-related blog posts. OpenAPI, previously known as Swagger (a name still in use today for many of its tools), is a suite of tools that generate documentation and networking clients for various programmi...
You've probably already seen the scary alert (that's possibly why you're here), but in case you haven't, it looks something like this: NewAppIJustDownloaded pasted from your clipboard Sometimes it h
ImageMagick is an awesome command line tool for working with images. Convert PDF to PNG files with magick Convert a multi-page PDF file to PDFs with ImageMagick using the following command: magick density -300 input.pdf -resize 30% outdir/output.png ...
In this post I will describe a simple event bus pattern in Android that is implemented using coroutines and flows. Thanks to Kotlin, coroutines, and flows, this is a simple approach that requires very little code. What is an Event Bus? Event bus is a...
Close to the beginning of the pandemic, I made a React app that displayed COVID-19 data per country. This is the Android version. Built in native Android with Kotlin, I developed it as an opportunity to build something with some newer Android API's ...
I recently got a Steelseries keyboard. Other than that this keyboard was one of the only RGB keyboards I could find that was supported on Mac, it had an extra draw, which was that it was programmable. Steelseries offers their GameSense SDK which has...
As of Android 10, file access permissions have changed. In a previous blog post Migrating from getExternalStoragePublicDirectory in Android 10 & 11, I moved from the legacy storage to a simpler intent-based approach that opened the native share sheet...
Android 11 introduces breaking changes to working with files on Android. One of these breaking changes includes the deprecation of the following method: Environment .getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) The Canned Rep...
Plop is a handy tool for code generation. It uses Handlebars under the hood alongside some provided Handlebars helper functions. By using a code generation tool like plop, you can avoid writing tedious boilerplate code and be productive right away. ...
BEM CSS stands for Block Element Modifier, which is a CSS methodology to help you write maintainable CSS. Here's BEM's official website but keep reading for a brief overview. BEM Basics BEM takes a component-based approach to CSS development. It has ...
In this post, I will go through the process of building a feature in a macOS desktop application that uses Electron. This feature will implement the native macOS Touch Bar API's. Feature we need to build I have a desktop application called TextDiffer...
A step-by-step guide for migrating a blog from WordPress to Hashnode. Why did I switch from WordPress to Hashnode? Currently, my portfolio website and blog are on WordPress. It's been really great for search engine optimization, and the experience wi...
An ImageMagick cheatsheet with some helpful commands for working with ImageMagick on the command line. This is a work in progress that will be periodically updated and is by no means a complete list. Resizing images Resize a single image: convert inp...
If you see the error that BuildConfig.DEBUG always returns false in Android Studio, this is likely because you've imported another package's BuildConfig instead of your own. Follow the instructions below to fix it. About BuildConfig BuildConfig is a ...
In this simple Gulp plugin tutorial, I will be going through a plugin I wrote. The plugin is simple and transforms an input JSON file. Though Gulp was a great tool I fully leveraged for bundling front-end apps at its inception, I do not currently rec...
When the world gives you COVID-19, use the community-driven APIs it provides for COVID-19 data by country to make a tool to show data better? COVID-19 Today shows daily stats for the coronavirus. It's a web app built in React that displays COVID-19 d...