# JD Porterfield | Articles

Articles written by JD Porterfield

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Weiss Schwarz Locations

DevFeed: [Weiss Schwarz Locations](<https://devfeed.tech/articles/weiss-schwarz-locations-27440.md>)

Original publisher: [Read original article](<https://jdvp.me/articles/WS-Locations>)

Author: JD Porterfield (jd.porterfield@alumni.rice.edu)

Published: 2024-03-25T00:00:00Z

Content type: article

Language: en

Sources: [JD Porterfield | Articles](<https://devfeed.tech/sources/jd-porterfield-articles.md>)

Topics: [Google Apps Script](<https://devfeed.tech/topics/google-apps-script.md>), [Google](<https://devfeed.tech/topics/google.md>), [data](<https://devfeed.tech/topics/data.md>)

Tags: [google](<https://devfeed.tech/tags/google.md>), [mapping](<https://devfeed.tech/tags/mapping.md>), [script](<https://devfeed.tech/tags/script.md>), [weiss-schwarz](<https://devfeed.tech/tags/weiss-schwarz.md>)

### AI overview

The article describes a Google Apps Script that collects Weiss Schwarz shop locations into a Google Sheet and imports the data into Google My Maps. It also explains map updates, user submissions, and cautions that some locations may be inaccurate or outdated.

### Source excerpt

It was a bit hard to refer to the official Weiss Schwarz shops list and keep looking up addresses to see how close they were. As such, I wrote a Google Apps Script to collect the data into a Google Sheet and then imported that into Google My Maps. I've embedded the result of that below.

## Why I Don't Recommend Aspect-Oriented Programming in Android in 2023

DevFeed: [Why I Don't Recommend Aspect-Oriented Programming in Android in 2023](<https://devfeed.tech/articles/why-i-don-t-recommend-aspect-oriented-programming-in-android-in-2023-27432.md>)

Original publisher: [Read original article](<https://jdvp.me/articles/AOP-in-Android-2023>)

Author: JD Porterfield (jd.porterfield@alumni.rice.edu)

Published: 2023-03-18T00:00:00Z

Content type: opinion

Language: en

Sources: [JD Porterfield | Articles](<https://devfeed.tech/sources/jd-porterfield-articles.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [android-development](<https://devfeed.tech/topics/android-development.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [maintenance](<https://devfeed.tech/topics/maintenance.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-development](<https://devfeed.tech/tags/android-development.md>), [aspect-oriented-programming](<https://devfeed.tech/tags/aspect-oriented-programming.md>), [maintenance](<https://devfeed.tech/tags/maintenance.md>), [programming](<https://devfeed.tech/tags/programming.md>)

### AI overview

The author explains why they do not recommend Aspect-Oriented Programming in Android in 2023. The concerns focus on substantial tooling hurdles, siloed knowledge, and maintenance difficulties, while acknowledging that some use cases may still justify AOP.

### Source excerpt

I don't recommend leveraging AOP in Android in 2023 for a variety of reasons. Find out why you likely shouldn't be using AOP and alternative approaches you may be able to use instead

## The Importance of Validating the Gradle Wrapper

DevFeed: [The Importance of Validating the Gradle Wrapper](<https://devfeed.tech/articles/the-importance-of-validating-the-gradle-wrapper-27434.md>)

Original publisher: [Read original article](<https://jdvp.me/articles/Gradle-Wrapper-Validation>)

Author: JD Porterfield (jd.porterfield@alumni.rice.edu)

Published: 2022-04-24T00:00:00Z

Content type: tutorial

Language: en

Sources: [JD Porterfield | Articles](<https://devfeed.tech/sources/jd-porterfield-articles.md>)

Topics: [Gradle](<https://devfeed.tech/topics/gradle.md>), [Android Gradle Plugin](<https://devfeed.tech/topics/android-gradle-plugin.md>), [Android Studio](<https://devfeed.tech/topics/android-studio.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>), [Batch file](<https://devfeed.tech/topics/batch-file.md>), [Shell](<https://devfeed.tech/topics/shell.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-gradle-plugin](<https://devfeed.tech/tags/android-gradle-plugin.md>), [android-studio](<https://devfeed.tech/tags/android-studio.md>), [apk](<https://devfeed.tech/tags/apk.md>), [article](<https://devfeed.tech/tags/article.md>), [batch](<https://devfeed.tech/tags/batch.md>), [ci-cd](<https://devfeed.tech/tags/ci-cd.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [shell](<https://devfeed.tech/tags/shell.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

This tutorial explains how the Gradle Wrapper standardizes Gradle versions across Android projects and CI/CD environments, then focuses on validating wrapper files to reduce the risk of malicious tooling attacks.

### Source excerpt

Protecting your projects from malicious gradle wrappers can be straight-forward, find out how in this article!

## Using Google Forms for Jekyll Comments, Revisited

DevFeed: [Using Google Forms for Jekyll Comments, Revisited](<https://devfeed.tech/articles/using-google-forms-for-jekyll-comments-revisited-27433.md>)

Original publisher: [Read original article](<https://jdvp.me/articles/Google-Forms-Jekyll-Comments-Revisited>)

Author: JD Porterfield (jd.porterfield@alumni.rice.edu)

Published: 2021-09-25T00:00:00Z

Content type: tutorial

Language: en

Sources: [JD Porterfield | Articles](<https://devfeed.tech/sources/jd-porterfield-articles.md>)

Topics: [Jekyll](<https://devfeed.tech/topics/jekyll.md>), [Forms](<https://devfeed.tech/topics/forms.md>), [implementation](<https://devfeed.tech/topics/implementation.md>), [Code](<https://devfeed.tech/topics/code.md>), [GitHub](<https://devfeed.tech/topics/github.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [code](<https://devfeed.tech/tags/code.md>), [forms](<https://devfeed.tech/tags/forms.md>), [free](<https://devfeed.tech/tags/free.md>), [github](<https://devfeed.tech/tags/github.md>), [guide](<https://devfeed.tech/tags/guide.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [jekyll](<https://devfeed.tech/tags/jekyll.md>), [update](<https://devfeed.tech/tags/update.md>)

### AI overview

An updated guide to using Google Forms for comments on Jekyll sites. It describes changes to the original implementation, provides upgrade guidance, and introduces a dedicated GitHub project with labeled releases for maintaining the code.

### Source excerpt

Displaying comments on your blog for free using Google Forms is now even easier!

## Testing Code Tabs

DevFeed: [Testing Code Tabs](<https://devfeed.tech/articles/testing-code-tabs-27439.md>)

Original publisher: [Read original article](<https://jdvp.me/articles/Testing-Code-Tabs>)

Author: JD Porterfield (jd.porterfield@alumni.rice.edu)

Published: 2021-09-12T00:00:00Z

Content type: tutorial

Language: en

Sources: [JD Porterfield | Articles](<https://devfeed.tech/sources/jd-porterfield-articles.md>)

Topics: [Jekyll](<https://devfeed.tech/topics/jekyll.md>), [Markdown](<https://devfeed.tech/topics/markdown.md>), [CSS](<https://devfeed.tech/topics/css.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [css](<https://devfeed.tech/tags/css.md>), [jekyll](<https://devfeed.tech/tags/jekyll.md>), [markdown](<https://devfeed.tech/tags/markdown.md>), [plugin](<https://devfeed.tech/tags/plugin.md>)

### AI overview

This article demonstrates the jdvp-codetabs-commonmark Jekyll plugin, which adds tabbed code blocks for showing multiple language snippets. It also describes optional code-copying controls and light/dark mode switching within code blocks.

### Source excerpt

Testing the jdvp-codetabs-commonmark plugin's functionality

## Android Library UI Tests & Firebase Test Lab

DevFeed: [Android Library UI Tests & Firebase Test Lab](<https://devfeed.tech/articles/android-library-ui-tests-firebase-test-lab-27438.md>)

Original publisher: [Read original article](<https://jdvp.me/articles/Test-Lab-For-Android-Libraries>)

Author: JD Porterfield (jd.porterfield@alumni.rice.edu)

Published: 2021-09-06T00:00:00Z

Content type: tutorial

Language: en

Sources: [JD Porterfield | Articles](<https://devfeed.tech/sources/jd-porterfield-articles.md>)

Topics: [Firebase](<https://devfeed.tech/topics/firebase.md>), [Android Library](<https://devfeed.tech/topics/android-library.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [ui-testing](<https://devfeed.tech/topics/ui-testing.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-library](<https://devfeed.tech/tags/android-library.md>), [apk](<https://devfeed.tech/tags/apk.md>), [ci-cd](<https://devfeed.tech/tags/ci-cd.md>), [command-line](<https://devfeed.tech/tags/command-line.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [test-lab](<https://devfeed.tech/tags/test-lab.md>), [testing](<https://devfeed.tech/tags/testing.md>), [ui](<https://devfeed.tech/tags/ui.md>)

### AI overview

This tutorial explains how to run Android library module UI tests with Firebase Test Lab. Because Test Lab requires separate test and application APKs with different package names, it presents a method for building the androidTest APK twice with different package names.

### Source excerpt

Firebase Test Lab generally requires 2 .apk files for testing, how can we test library module UI tests in Test Lab?

## Switching AspectJ Plugins in Android

DevFeed: [Switching AspectJ Plugins in Android](<https://devfeed.tech/articles/switching-aspectj-plugins-in-android-27437.md>)

Original publisher: [Read original article](<https://jdvp.me/articles/Switching-AspectJ-Plugins-Android>)

Author: JD Porterfield (jd.porterfield@alumni.rice.edu)

Published: 2021-01-18T00:00:00Z

Content type: article

Language: en

Sources: [JD Porterfield | Articles](<https://devfeed.tech/sources/jd-porterfield-articles.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [Android Gradle Plugin](<https://devfeed.tech/topics/android-gradle-plugin.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-gradle-plugin](<https://devfeed.tech/tags/android-gradle-plugin.md>), [aspect-oriented-programming](<https://devfeed.tech/tags/aspect-oriented-programming.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [maintainability](<https://devfeed.tech/tags/maintainability.md>), [maintainers](<https://devfeed.tech/tags/maintainers.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [plugins](<https://devfeed.tech/tags/plugins.md>), [switching](<https://devfeed.tech/tags/switching.md>)

### AI overview

This article explains why the author replaced the android-gradle-aspectj plugin while updating an Android sample project. Frequent breakage across Android Gradle Plugin releases and recurring regressions made the plugin difficult to maintain. The author evaluates alternative AspectJ plugins and focuses on compatibility through the shared aspectjrt library.

### Source excerpt

The previous AOP Plugins I have used in Android have had various issues with maintainability. Discover why I switched and which plugin I switched to

## Jekyll & GitHub Actions

DevFeed: [Jekyll & GitHub Actions](<https://devfeed.tech/articles/jekyll-github-actions-27435.md>)

Original publisher: [Read original article](<https://jdvp.me/articles/Jekyll-with-GitHub-Actions>)

Author: JD Porterfield (jd.porterfield@alumni.rice.edu)

Published: 2020-11-07T00:00:00Z

Content type: tutorial

Language: en

Sources: [JD Porterfield | Articles](<https://devfeed.tech/sources/jd-porterfield-articles.md>)

Topics: [GitHub Pages](<https://devfeed.tech/topics/github-pages.md>), [Jekyll](<https://devfeed.tech/topics/jekyll.md>), [GitHub Actions](<https://devfeed.tech/topics/github-actions.md>), [GitHub](<https://devfeed.tech/topics/github.md>)

Tags: [github](<https://devfeed.tech/tags/github.md>), [github-actions](<https://devfeed.tech/tags/github-actions.md>), [github-pages](<https://devfeed.tech/tags/github-pages.md>), [jekyll](<https://devfeed.tech/tags/jekyll.md>)

### AI overview

This tutorial explains the limitations of deploying Jekyll sites directly through GitHub Pages, including its restricted support for Jekyll plugins and gem versions. It presents GitHub Actions as a way to build the site automatically on commits and publish the generated content.

### Source excerpt

The standard GitHub Pages process imposes limitations on which Jekyll plugins we can use. Let's avoid this issue using GitHub Actions instead.