All Articles
View the 599 articles on this site in reverse chronological order.
Welcome to the Internet Home of John M. Wargo; I created this site back in 2009 so I could post articles about things that interested me. Herein you’ll find articles on a lot of different topic areas: Mobile development, Web development, Internet of Things (IoT), and a lot more. Every time I learn some new technology or complete some cool or interesting development or IoT project I publish an article here.
You’ll also find information about my books, source code projects on GitHub, and articles published in or on other sites or magazines, even videos of my many conference presentations or project demonstrations. I’m also especially fond of the series of Stupid Developer Tricks posts.
You can view all articles in reverse chronological order, or you can find articles by category. Of course, if you can’t find what you need in those views, use Search to find anything anywhere on the site.
Note: An AI Generated pill displayed in the list below indicates that the post description displayed on the page was generated from the post content using Generative AI (GenAI). The post content itself was written by a human (me).
While I sat around the house waiting for Winter Storm Fern to hit us, I decided to spend some time finishing a simple Windows application I started a while back; a simple Password Generator for Windows.
AI Generated The article discusses how the Eleventy Fetch plugin can be used to cache API requests in al 11ty site. By making a few changes to the code, the plugin handles data processing automatically. This simplifies the code and reduces the need for manual data conversion. Additionally, the plugin supports custom headers and options for more complex API calls. Overall, implementing the Eleventy Fetch plugin can improve performance and reduce the risk of rate limiting when making repeated API requests on a website.
AI Generated I recently published a new Eleventy plugin that generates a list of links from the current page. However, when I tried to implement it on my site, which was still running on Eleventy 2.x, I ran into module problems. After upgrading to Eleventy 3.x, I still encountered errors. It wasn't until I sought help from the Eleventy Discord community that I realized I had missed fixing `require` statements within my site's modules and global data files.
AI Generated I created a plugin called Eleventy Plugin Markdown Post Links that adds a list of links to the top of my posts. The plugin has options for different types of lists and can generate links based on a minimum number specified. I implemented it on my site with a collapsible link list feature. You can find the source code on GitHub and a demo site showcasing the plugin's capabilities.
Received a simple phishing email today; this one's interesting because the scammers sending this email avoided many sophisticated ways to make this email look legitimate and simply pushed me to call a number where they'll supposedly help me resolve the issue.
I checked out my Goodreads Reading Challenge statistics for 2025 and I did quite well against my goal this year. I've been working through all of my old books I've had lying around and trying to minimize new book purchases (with little success). If I read in 2026 like I did in 2025 (and previous years), I should be able to get through most of them next year.
I received a lot of new spam and phishing messages lately; I have some analysis articles queued up to write. For this post, I'm writing about a very professional looking phishing email that appears to be from Marriott. I'll prove here that the message is not from Marriott and they're not giving customers free pillows.
Last night, I started playing around with a new Firebase project; deploying a hosted web app with some functions. I decided to use the HTML Boilerplate template for the web app and want to run a build before deploying the web app to Firebase. Looking around at the documentation, I struggled to find an easy way to do this.
When you order packages online, a lot of vendors provide you with a tracking number instead of a tracking URL for your package. Or, when you get a tracking URL from UPS, the URL has a bunch of extra junk in it that isn't needed to actually track the package. In frustration, I built a little Windows app (in Delphi, of course) that takes a UPS tracking number and converts it into a tracking URL you can use to, you know, track the package.
Back in the middle of 2019, I published my last book: Learning Progressive Web Apps. It was probably my most mainstream book, a book about web development rather than my highly focused books on mobile development for PhoneGap and BlackBerry. I was really proud of that book, it was just the right length and the publisher printed it in color which made the content more interesting.
View the 599 articles on this site in reverse chronological order.
View a list of the 31 categories in this site; from there you can drill down into all articles by category in reverse chronological order.
View details regarding the books I authored.
View a list of all of the articles I published in other publications (besides here).
View some of my projects that span multiple posts on this site or multiple GitHub repositories.
You can find me on more places than this site; the Sightings page lists the other places where you can find stuff I created.
View the source code projects in my public GitHub account.
Public packages I published on npm.
View a list of all of my upcoming events (conference presentations, product demos, etc.).
View a list of the Internet sites I maintain.