Blog
My intention is to create a more general blog here on my personal website covering whatever topics I feel like blogging about. For now, I have been writing blog posts on DEV, a community-focused platform for software development. Check out my profile on DEV for a full list of my posts. My posts on DEV cover various open source tools that I've authored and maintain, including functionality, and example usage. This includes posts about GitHub Actions I've implemented. GitHub Actions is GitHub's CI/CD framework. Other posts concern my research software libraries (well, I plan to write such posts). In other cases, I've posted tips and tricks related to using various open source tools, etc.
Selection of Posts in Chronological Order
Here is a selection of my posts on DEV in reverse chronological order, along with very brief summaries of the post contents and topic.
gnu-on-alpine and alpine-plus-plus: Two Lightweight Containers for Implementing GitHub Container Actions with Shell Scripting, posted on DEV on February 21, 2023.
This post covers the motivation, purpose, and functionality of gnu-on-alpine and alpine-plus-plus, which are two Docker containers built atop Alpine Linux, and include a variety of shell scripting tools.
pyaction: Over 1 million pulls from the GitHub Container Registry, posted on DEV on February 16, 2023.
A post celebrating a milestone of 1 million downloads of pyaction from the GitHub Container Registry.
Who likes stickers more? Software developers/computing professionals or five-year-olds? And why?, posted on DEV on February 2, 2023.
Random musings are developers obsession with laptop stickers.
About the #showdev tag from one of the #showdev moderators, posted on DEV on January 24, 2023.
This post explains DEV's showdev tag, including its purpose, as well as links to a few good example posts.
Automate Updating Major Release Tag on New Releases of a GitHub Action, posted on DEV on January 11, 2023.
This is a short tutorial post on maintaining major release tags for GitHub Actions.
pyaction: A Docker container with Python, git, and the GitHub CLI, posted on DEV on December 28, 2022.
This post provides an overview of the pyaction Docker container, designed to simplify implementing GitHub Actions with Python, but also more generally applicable wherever you need Python and the GitHub CLI within a Docker container.
How to Write to Workflow Job Summary from a GitHub Action, posted on DEV on December 21, 2022.
This is a brief tutorial on writing to a GitHub workflow job summary from a GitHub Action implemented in Python, as well as how to do so from any step of a workflow.
Bonus Tip: How to Use GitHub Actions to Test a GitHub Action Whose Output Must be Visually Inspected, posted on DEV on December 14, 2022.
This post explains how to use workflow artifacts to extend my previous testing procedure to handle the case where you are testing a GitHub Action whose output requires visual inspection for complete validation.
How to Test a GitHub Action with GitHub Actions, posted on DEV on December 7, 2022.
This post details how to test a GitHub Action using the GitHub Actions framework itself, including unit testing and integration testing, along with using your workflow as a required pull request check. The examples assume that you are testing an Action implemented in Python, but approach can be easily adapted to other languages.
Deploy a Documentation Website for a Java Library Using GitHub Actions, posted on DEV on November 30, 2022.
This post explains how to use GitHub Actions to automate deployment of a documentation website for a Java library whenever a new release is available. This workflow builds the javadocs of the library, post-processes them to insert things like a referrer policy, the website's favicon, etc, updates an XML sitemap, and finally deploys to GitHub Pages.
Generate an XML Sitemap for a Static Website in GitHub Actions, posted on DEV on November 23, 2022.
This post explains the functionality and usage of the generate-sitemap GitHub Action that I've developed and maintain, and which is used to generate an XML sitemap for GitHub Pages sites entirely within GitHub Actions.
Post-Process Javadoc-Generated Documentation in GitHub Actions Before Deploying to the Web, posted on DEV on November 16, 2022.
This post introduces how to use javadoc-cleanup, a GitHub Action that post-processes javadoc-generated documentation to improve it in various ways prior to deployment.
Using GitHub Actions to Build a Java Project With Pull Request Coverage Commenting and Coverage Badges, posted on DEV on November 9, 2022.
This post is a tutorial on how to use GitHub Actions for a CI/CD pipeline to build a Java project, validate tests during pull requests, generate a coverage report, including commenting coverage on pull requests and generating coverage badges.
Deploying Java Artifacts to Multiple Maven Repositories with GitHub Actions, posted on DEV on November 2, 2022.
This post is a tutorial on how to use GitHub Actions and GitHub Releases to automate deploying Java artifacts to multiple Maven repositories.
How to Patch the Deprecated set-output in GitHub Workflows and in Container Actions, posted on DEV on October 26, 2022.
There is a new way for GitHub Container Actions, as well as workflow steps to produce outputs. This post explains how to patch container actions, including example Python functions, while maintaining backwards compatibility for non-upgraded self-hosted runners. Post also explains the new approach to workflow step outputs, using a workflow for a Java library deployment as an example.
How to Use Maven Profiles to Selectively Activate Plugins and Other Configuration from the Command Line, posted on DEV on October 19, 2022.
This post is part of a series covering various tips and tricks for using Apache Maven. This post specifically deals with how to use Maven profiles.
Hacktoberfest Progress Update: Translation Contributions Still Welcome, posted on DEV on October 12, 2022.
This is an update on Hacktoberfest 2022 progress on adding more language translations to the user-statistician GitHub Action.
How to Use the Maven Shade Plugin if Your Project Uses Java Platform Module System, posted on DEV on October 5, 2022.
This post is a tutorial on using the Maven Shade Plugin for Java projects that use the Java Platform Module System.
Hacktoberfest Language Translation Contributors Wanted for the user-statistician GitHub Action, posted on DEV on September 30, 2022.
Post seeking Hacktoberfest 2022 contributors for language translations for the user-statistician GitHub Action.
Halloween Themes for the user-statistician GitHub Action, posted on DEV on September 28, 2022.
This post introduces new Halloween themes available for the user-statistician GitHub Action.
Add Metadata to a PDF Using pdfLaTeX, posted on DEV on September 21, 2022.
This post explains a trick that uses pdfLaTeX to add metadata to a pdf, or to change the existing metadata in the pdf, regardless of how the original pdf was created.
Combine Multiple PDF Files Into One Using pdfLaTeX, posted on DEV on September 14, 2022.
This post explains a trick that uses pdfLaTeX to combine multiple pdfs into a single pdf, regardless of how the individual pdfs were originally created.
How Programming and Classic Television are Alike, posted on DEV on September 7, 2022.
What does programming have to do with Mr T, Cheers, the Golden Girls, the Brady Bunch, Full House, Quantum Leap, Gilligan's Island, Oscar the Grouch, Family Matters, Home Improvement, and Night Court? Probably nothing. But none-the-less this post connects programming to classic American television shows, personalities, and characters.
Configuring GitHub's Linguist to Improve Repository Language Reporting, posted on DEV on August 31, 2022.
This blog post is a how to for configuring GitHub's Linguist in a GitHub repository, such as for the purpose of correcting errors in the detected languages, or directing Linguist to report languages that are excluded by default, within the context of tools such as the user-statistician GitHub Action that I developed and maintain, which generates a chart summarizing the language usage in all of your public repositories, as well as for the language charts built into every GitHub repository.
The user-statistician GitHub Action mentioned in Awesome-README, posted on DEV on August 25, 2022.
In this blog post, I provide an update on the user-statistician GitHub Action's functionality that I maintain, which was recently mentioned in Awesome README (an Awesome List), along with detailed steps for configuring a GitHub workflow within your own GitHub profile repository.
On JitPack's use of git repository name as Maven
artifactId
, posted on DEV on August 18, 2022.In this blog post, I continue my series of tips and tricks on JitPack usage, explaining a limitation of JitPack related to JitPack defining the
artifactId
of a library to be its git repository name. I use one of my libraries, JavaPermutationTools, as an example of this limitation. And offer a tip that may help overcome the limitation in some cases.Ahead-of-time JitPack Builds with Custom GroupId via GitHub Actions, posted on DEV on August 11, 2022.
In this blog post, I provide detailed examples utilizing one of my libraries, Chips-n-Salsa, of: (a) how to configure JitPack with your reverse domain as the groupId, rather than JitPack's git repository based groupId; and (b) how to automated ahead-of-time JitPack builds with such a customized groupId. Post includes example GitHub Action workflows for integrating the technique into CI/CD workflows.
How to Configure JitPack for Recent JDK Versions, posted on DEV on August 4, 2022.
In this blog post, I discuss how and why to publish Java library artifacts via JitPack, even if you already release libraries via Maven Central. I provide detailed examples utilizing one of my libraries, Chips-n-Salsa, of how to use JitPack to import SNAPSHOTs of dependencies via commit hash, tag, and pull-request number. Additionally, I provide detailed examples of how to configure JitPack to build with more recent versions of the Java JDK, such as 17.
How to Enable DEV Post Embeds for Pages From Your Website, posted on DEV on July 29, 2022.
Detailed examples on how to use Open Graph tags on pages to enable embedding pages from personal websites and project websites within posts on DEV.to. The post uses examples from my project pages.
Your Citation Metrics in an SVG for Your Website, posted on DEV on July 22, 2022.
This blog post introduced an open source command-line tool that I authored, bibliometrics, which enables a researcher to generate an SVG summarizing bibliometrics for their research articles, and which is installable from PyPI.
For embeds, does DEV use Open Graph tags? And what is the minimum set of OG tags required by DEV for an embed to work?, posted on DEV on July 22, 2022.
A simple request to the DEV community for information on a DEV.to feature.
Badges - TL;DR for your repository's README, posted on DEV on July 15, 2022.
This post discusses the purpose of dynamic status badges in the README files of open source repositories, along with services that provide them, and tips for how to use them well.
Post comment explaining difference among GitHub repositories with no license, MIT license, and Apache license, posted on DEV on July 15, 2022.
This one is a comment (rather than a post) that was awarded the Beloved Comment badge
based on reactions from the DEV.to community. It was a comment on someone else's post in response to a question they posed to the DEV community. My comment explained the difference among GitHub repositories with no license, MIT license, and Apache license.
The jacoco-badge-generator GitHub Action is now also available as a CLI tool from PyPI, posted on DEV on July 8, 2022.
This post introduces an update to the jacoco-badge-generator that includes the ability to use as a command line tool, rather than strictly as a GitHub Action. Several examples of how to use the new functionality is covered, including how to install from PyPI.
JaCoCo coverage badges, PR coverage checks, and PR coverage comments, from GitHub Actions, posted on DEV on November 29, 2021.
This post introduces an update to the jacoco-badge-generator, which includes pull-request coverage checks. Additionally, it provides an example workflow demonstrating how to use it in combination with the GitHub CLI to automate commenting on pull requests with the test coverage. This workflow was a submission to the DEV/GitHub Actions Hackathon.
Progress and Lessons Learned Internationalizing the user-statistician GitHub Action, posted on DEV on October 13, 2021.
This post serves a dual purpose: (a) providing a midway progress report on Hacktoberfest 2021, and (b) providing insights learned related to the internationalization effort for the user-statistician GitHub Action.
Hacktoberfest Participants Help Us Internationalize the user-statistician GitHub Action, posted on DEV on September 29, 2021.
I decided to participate in Hacktoberfest as a project maintainer for October 2021. I used Hacktoberfest as an opportunity to Internationalize the user-statistician GitHub Action, with Hacktoberfest contributors providing translations to various languages.
Generate a GitHub stats SVG for your GitHub Profile README in GitHub Actions, posted on DEV on July 29, 2021.
This post introduced a GitHub Action that I implemented, called the user-statistician, which is designed to query the GitHub GraphQL API and generate an SVG image summarizing your activity on GitHub.