Blog Post Archives

Blog Posts for for all years

Cover

A look at my favorite features of Svelte, comparisons to React and other frameworks, and what makes it a joy to use.

Cover

What are bash heredocs (Here Documents), and why they are so fun and useful to have. Covers both the basics and advanced usage and tricks.

Cover

How to write or paste Markdown into Slack messages and have it formatted correctly, while still keeping the format toolbar, by using HTML pasting.

Cover

Why we should all care more about higher-level documentation, a way to view documentation as a funnel, and an explanation of how things have changed.

Cover

A list of things I wish I had known sooner about using pytest and some general tips on usage and productivity with it.

How to delete all last.fm scrobbles of a specific track or album, with Tidal Advertisements as an example.

Cover

How to bypass the network connectivity error when trying to factory reset a Nook Simple Touch ereader from Barnes & Noble.

Cover

How to determine point intersection or collision detection with Canvas paths, with or without tolerances / buffers / padding.

Cover

An introductory guide to the different parts of Google Lighthouse, how to use it via CLI and NodeJS, and strategies for customizing its configuration.

Cover

How to use WebViewClient with Android WebView to hook into network requests, intercept them, and block or modify them if they match certain rules.

Approaches for using CSURF for CSRF protection, but only on certain routes, and some with the ability to extract the generated token from the request.

Cover

Resources and information about the WaveShare line of NFC-Powered Passive E-Ink / E-Paper modules, complete with teardown pictures and some development tips.

How to use WebViewAssetLoader and WebViewClient, with Kotlin code and syntax, to load local HTML files from asset folders into a WebView component.

Cover

How to use TypeScript with WordPress Blocks and the Gutenberg environment. Covers config changes, necessary dependencies, and some possible issues.

Cover

How to use the Arc Canvas Web API method to draw partial filled circle segments, including quarter circles, and even with added rotation.

Cover

Reasons why every developer should care about documentation. Personal, business, and practical reasons why writing documentation is worth it.

Cover

How to use TypeScript, or JSDoc-powered JavaScript, with Service Workers, as well as some important caveats for current issues.

How to split a string into individual characters in Google Sheets, using a pure formula approach. Even handles line breaks and special characters.

Cover

A guide on using SVG files with Svelte, and how to embed, inline-directly, or reference them, with or without rollup plugins.

Cover

A step-by-step guide on how to deploy a Preact app from a nested subdirectory, with instructions on updating Webpack, preact-router, and more.

Cover

Options for getting data feeds out of Google Sheets, avoiding slow-to-update published CSV feed URLs, and custom scripting with Google Apps Scripts.

Cover

An effort to collect, categorize, and summarize some of the common CSS custom properties that are being used to maintain colors in modern theming approaches.

Want a clear visual indicator in your app or documentation so you know *exactly* which commit was pushed and successfully deployed? Then this post is for you.

Cover

Various ways to investigate stalled content attached to a MediaSource instance, and different causes that can be evaluated and tested.

Cover

Exploring different ways to append videos to a MediaSource instance with SourceBuffers and appendBuffer calls. Includes fully functional examples and tips.

Cover

The easy way to migrate from one subdomain to another, for the same site and primary domain, using Netlify Redirect settings and Custom Domain Aliases.

Cover

A comprehensive write-up on different ways to convert and use binary data in front-end JavaScript code, web browser APIs, and even your local filesystem.

Cover

An evaluation of different ways to backup and export Firefox Bookmarks, both manually and via automated scripts and tools.

Cover

A short guide on how to get and use local binary paths for packages installed through NPM or Yarn, under node_modules, for multiple OSes.

Cover

How to launch a shell with NodeJS, keep it open, and pipe commands in while capturing output. Also, a discussion on how this impacts performance.

A reusable method for adding arbitrary extra HTML attributes to enqueued styles and scripts in WordPress, using add_data and filters.

Cover

Researching and summarizing offline database options for modern web applications, including low-level APIs, helpful wrapper libraries, SDKs, and more.

Cover

How VSCode Snippets can be used to add support for a customizable Emoji-Log picker, with just a few lines of code you can paste into settings.

How to use various tools to extract the word count from a markdown file, or even the summed count across multiple nested markdown files.

How to disable Chrome's default stdout log messages that come through Selenium Webdriver on NodeJS, such as the "DevTools listening on ws..." message.

How to fix JSX TypeScript errors due to incompatible types between Preact and imported React component libraries, especially for JSX.Element.

How to get a list of all files in a project or directory, with inclusion and exclusion rules applied based on a .gitignore file.

Cover

How to fix Android's default Messages app having no notification sound for incoming text messages, even with ringer volume set to maximum.

How and why to use OS temporary directories to create files outside your source code directory for scripted tests.

Cover

Details on how default create-react-app projects will stall and fail to start on Glitch, and how to fix this issue with just a simple edit.

Instructions on how to delete multiple files based on a pattern, even when nested, with SHX and ShellJS. Extra tips on using with NPM packages!

Cover

How to use Google Forms for quick user feedback collection, bug reporting, and the pros and cons of this approach.

Cover

How to find a webcam solution in 2020, during the shortage, that is affordable and usable for Zoom, Teams, and other video conferencing.

Cover

Different options for exporting profiles and connections from LinkedIn, and importing on other platforms, including VCard exports and integrations.

Cover

How to extend VR cables without experiencing tracking issues and glitches, and what solutions are available, such as USB extenders.

Cover

How to easily enable VSCode Intellisense and autocomplete within Webpack config JS or JSON files.

Cover

How to generate the perfectly sized cover images, with any input image, using Cloudinary's URL based transformations, overlays, and effects.

Cover

Using TP-Link Kasa, Google Apps Script, Android, and Automagic to automate my morning wake up alarm and turn on the lights.

Overriding the default behavior of keyboard key presses in browsers with JavaScript, to get ALT and arrow key combinations working with a SPA.

Cover

Documenting my search for the right software to use for remote elementary school tutoring sessions.

Cover

A reminder of the emphasis on opinions in Prettier's guiding principles, and how this can conflict with ESLint.

Cover

Why is mapping remote mouse controls, particularly click-and-drag, so complex and often left out of major mobile applications? I cover the options and answers.

Cover

How to setup NodeJS based tasks in Windows Task Scheduler, with details for both Yarn and NPM entries. Also explores comparison with CRON and alternatives.

An adventure in trying to write a Gatsby remark plugin to wrap specific markdown blocks (aka MD AST nodes) in custom classed div HTML elements.

Cover

5 powerful features that are built-in to Visual Studio Code and do not require any extensions or special toolchains to start using. Improve your dev workflow!

Cover

Details on using a Google Cloud Platform Function and NodeJS to maintain a fixed URL that forwards to a dynamic Ngrok host and can be easily redeployed.

Simple example showing how to use http-proxy-middleware with a NodeJS powered Google Cloud Function.

How to use .env files that are in a different directory than a docker-compose YML file, with variable substitution and relative paths. Options and workarounds.

How to test that an array does not include any members of another array with Chai JS and Mocha framework. Explains workaround and why certain tests don't work.

Information about public Reddit APIs, building post preview embeds, parsing Reddit JSON data, and an example of a custom Reddit embed generator.

Tips and tricks on sharing global variable values, inject values, capturing variables, and general NodeJS workarounds for if you can't edit a file.

Cover

Figuring out why stat is returning blank birthtimes on Unix/Linux and how NodeJS got around this with an update to fs.stat through its libuv dependency.

Cover

Solutions and tips on how to use "created" and "last updated" date and timestamps with Gatsby and Git, including a fully automated approach with git hooks.

Cover

A beginner attempt at creating automatic folder directory listing index pages within Gatsby, using createPages, GraphQL, MarkdownRemark and allDirectory.

Cover

<!-- WP HTML export, not converted to MD --> <p>I recently wanted to force WordPress to make all my &lt;script&gt; and stylesheet (&lt;link&gt;) tags load relative URLs instead of absolute URLs, and ended up learning a bit about the internals of WordPress (pr...

Cover

So many options for building a theme switcher or customization - CSS, React, Vue, Sass, etc. Let's break these down into examples and simple descriptions!

Cover

An exercise in modifying the script and style tag HTML output by WordPress from enqueue, in order to add async, defer, and lazy loading attributes to resources.

Cover

How to get Github's language statistics breakdown bar to properly show Markdown stats for a repository, using Linguist and gitattributes.

Cover

A guide on mixing Sass-syntax and SCSS-syntax within a single Vue project, and how it can conflict with vendor Sass files, such as Vuetify.

Cover

Tips, tricks, and gotchas, for building a Google Data Studio Community Connector on Google Apps Script. Covers some common issues and recommended approaches.

Cover

How to get the UTF-8 Character Code (aka codepoint) for a given character in Google Sheets. Custom formula converts from UTF-16 decimal to UTF-8.

Cover

How to embed your Google Apps Script in an iframe when a user needs to authenticate it first before it can work. Solutions uses JSONP to inform parent page.

Cover

How to look at the basics of a Chrome crash report on Windows, using WinDbg to view the minidump file, and how to enable logging on startup.

Cover

Information on using TypeScript with Google Apps Script and Google Ads, both with and without Clasp. Also discusses how Apps Script treats hoisting.

Cover

A breakdown of different ways to embed static and dynamic content into iframes, and dynamically generate iframe embeds on both the client-side and server-side.

Cover

Some random notes on using the Power BI Embedded Javascript APIs, such as resetting slicer visuals.

Some tips on using Fabric.js as a dependency in your project, without requiring that other devs have Cairo installed in order to build.

Some random tips and tricks I've been collecting as I work on developing my first VSCode extension.

Cover

Getting a JSON source for the AMP-List carousel element working in AMP for Email Playground - resolving CORs header issues through HTACCESS.

Cover

A practical guide to GTM triggers, how they work, and Javascript alternatives if you can't use Google Tag Manager. Meant for both non-developers and developers.

Using lambda expressions with QT's newer connect syntax to receive the finished event of a QNetworkRequest / reply without using QObject.

Exploring cross-platform coding library options for window manipulation, active window details, keypress emulation, and more.

Cover

A guide on implementing internal traffic filtering in analytics, as well as blocking tracking and ads for internal employees using IP addresses and/or cookies.

Cover

Some simple ways to execute NodeJS code through the command line interface, as well as pipe output in and out.

Cover

A post on trying to get QT Creator to be able to, at the very least, build and run an example project for Android and see it on an emulator.

Cover

An ELI5 type post on how opacity inheritance works with nested components or elements in QML or CSS. Covers the easiest solutions for both QT's QML and CSS.

My experience as a brand new QT beginner while trying to use Font Awesome with QML / QT, dealing with relative import paths, and importing outside the source directory.

Some code examples on how to force wow.js (aka WOW) to trigger on content that suddenly becomes visible, and/or force it to reanimate on ANY element.

Some ideas and instructions on how one might go about setting up a system for remotely checking if their house has lost power or if it has been restored.

As a quick way to create typewriter effect videos, you can throw text in PowerPoint, apply an animation, and screen capture the presentation to GIF, MP4, etc.

Cover

I went overboard in trying to use Base64 encoding in Google Sheets and ended up coming up with a "pure formula" for generating Base64 from a text string, which does not require the use of custom scripting. This post covers that formula, how I came up with it, and scripting alternatives.

Cover

How to overlay solid shapes onto an image with Cloudinary, with demos and explanations. Useful for creating dynamic overlays, watermarks, and more!

Cover

A random list of issues encountered with Postman in 2019

Revisiting Chrome extension development after a while and outlining some things that have helped me with development and distribution.

Getting the Cloudinary JQuery SDK to allow an overlay transformation to overlay a remote fetched image - a painful lesson in reference materials.

Cover

How I setup an Android Automagic flow that will start, stop, or resume a Toggl timer when a Flic bluetooth button is pressed. Full Automagic export, plus demo.