Blog

Creating Headless WordPress Apps with Vue

Over the past several years, I've been prying more and more at the limits of the WordPress REST API as they apply to creating ['headless' sites and applications](https://www.smashingmagazine.com/2018/

Read More

Using Emoji in Google Sheets Formulas

I'm working on a project right now that allows people to send images to the Google Cloud Vision API for analysis using a Google Sheet and Google Apps Script. As part of that project, we talked about h

Read More

ES6 Features for Google Apps Script: Arrow Functions

In the second part of this series, we're going to take a look at arrow functions, how they are used, and how they can be helpful in the context of Google Apps Script. In part one, we looked at [ES6 te

Read More

Debugging in Google Apps Script

Most of the comments I get on this site have to do with someone trying something I've written about that isn't working for them. In most cases, error messages can be your friends since they can point

Read More

String Interpolation in PHP

Most of what I write about on the site exists to save someone else from having to learn the painful lessons I've spent time, energy, or emotion solving. This is one of those times where I'm sharing so

Read More

Adding Custom Routes to WordPress REST API

Over the last several years I've had the opportunity to do a lot more work within the WordPress ecosystem here at VCU. Writing themes and plugins for WordPress was what really got me started in web de

Read More

Parsing HTML/XML with NodeJS and cheerio

Eventually, this post will be a small part of a long post-mortem describing a ton of unexpected challenges I've faced recently trying to wrangle some historical geospatial data. However, this post is

Read More

Match Multiple Patterns with GREP And

We've been dealing with some decently complex system-level issues for awhile on Rampages. In an effort to track them down to the source, I've been digging through lots of log files. While we still don

Read More

Using the Right Tools: Indexing in MySQL

As I'm sure this is with most people, my deepest learning moments come from random walks down different avenues. In preparation for a GIS focused project I might get to work on, I spent a few minutes

Read More

Load Testing WordPress Multisite

Over the last few weeks, we've been dealing with some heavy fallout from a recent server migration on our large WordPress MU installation. While moving everything from Linode to Digital Ocean should g

Read More

Recursive Recursion with Vue

We've been working on a project with some of the folks from the medical campus since I've been at VCU. They are developing a large OER site for Histology, which is the study of cells, but we're approa

Read More

Aggregating Data Hypotheses with Firebase

This project builds off of some work that Tom and Matt did over last summer for an [eco techniques course](https://rampages.us/ecotechniques/data-visualization/) focused on open science, data visualiz

Read More

Storytelling with Scrolling Map Background

For a recent project, we were helping a group from the Environmental Sciences department translate some of their academic research on a particular type of bird into a more general narrative targeted t

Read More

Simple is Always Better

One of the hardest things to do as a developer is to resist the urge to add additional complexity where it does not add value to the overall solution. As technologists, we tend to think this stuff is

Read More

Reflections on Data Visualization in Observable

Continuing my exploration of data visualization tools, I circled back to where it all started for me: D3. For those of you involved in developing data-driven apps for the web, you most likely have a l

Read More

Digging into the Gutenberg Editor

After a decent amount of foot shuffling, I finally decided to step up and dig into the Gutenberg editor that will ship with WordPress 5.0, whenever that is ready. There has been a lot of chatter in th

Read More

Using AWS for Data Analysis

I'm not really sure when this happened, but over the last several years, I've started to spend a lot of my personal and professional time working on building out data visualization tools and workflows

Read More

Web GIS with Leaflet and Wordpress

Over the last several years, it seems like I've worked on a lot of different map-based applications for a variety of purposes. Some of them have been focused on the digital humanities, like the [Moton

Read More

WordPress JavaScript Snippets

This post is really just a placeholder for some new JavaScript tricks I've learned for WordPress over some of my latest projects. I'm sure these won't be groundbreaking, but it's worth it to document

Read More

Making a Chatbot with Amazon LEX

What follows here is an exploration of an evolving project I'm working on to provide some additional touch points for current and prospective students in online courses at VCU. ![example chatbot conve

Read More

Resetting Triggers in Google Apps Script

Occasionally, when you are running a Google Script attached to a spreadsheet or document, the triggers that run those scripts can sometimes start to malfunction. Over the last five years, I haven't be

Read More

Extending WP REST API Index Route Response

This should be a fairly quick blog post, but it should help some folks out if they are looking to extend the WP Rest API index route to include some additional fields. First, let's clear up what I mea

Read More

Using AmCharts with Vue and Webpack

I finally swallowed the Webpack pill, mostly because I wanted to get the most out of single file Vue components for some new projects I'm working on, and Webpack is along for the ride. ![vue and webpa

Read More

Analyzing and Visualizing Networks

One of the [current projects I'm working on](https://rampages.us/davinci-events/) involves building out some analytical tools that sit on top of an application that lets students track attendance at e

Read More

Automate Deployments with GitHub Webhooks

This post is the second post in my new fangled Weekly Workflows section. I took a few requests on Twitter as to what people would like to see here, and [Paul Williams](https://twitter.com/cyclopslabs)

Read More

Debugging WordPress PHP with VS Code and MAMP

This is the blog post I wish existed a few weeks ago when I started trying to configure Visual Studio Code to debug PHP and WordPress interactively. Although this setup might not work for everyone dep

Read More

Software Development is Hard

I'm writing this post at the end of a particularly odd week in terms of things going wrong. And this is the type of post that you write with fingers crossed, praying that you don't have to come back l

Read More

Audiographics: Annotating Sound

Over the last several weeks, I've been working on several prototypes to help facilitate different types of annotations. Most educators are already pretty familiar with the typical textual annotation,

Read More

Creating a CRUD Web App with Google Sheets

Google Sheets tends to be my go to whenever I need to build a really lightweight application that has a limited life span. Usually, these things typically involve a short turnaround or some type of ve

Read More

Shadow Metrics: Tracking the Gateway

For those of you who've read the blog for any amount of time, you're likely already aware of my tendency to skew towards data and data-driven solutions to problems. Thus, I tend to talk with people ab

Read More

Visualizing Geographic Data with D3

I'm not sure the power of visualizing data can be understated in the modern world. After all, we have more data than we've every had before, and we at least seem to understand the world we live in les

Read More

Adding Custom Fields to WordPress JSON API

I'm working on building out some cool annotations tools for different types of audio, mostly music, which you can see [an example of here](http://audiovideo.jeffreyeverhart.com/audio-annotation/peaks.

Read More

The Future of JavaScript and the Browser

I've been doing a deep dive into Vanilla JavaScript lately, partly as a pretty overt reaction to the proliferation of client-side MV\* frameworks. My thought process is that the time spent learning fr

Read More

Command Line: Download Files with cURL Command

I'm not sure how I didn't know about this command sooner since I use cURL for a few other tasks. I've been using WGET to download remote files, but I recently stumbled across this new little shortcut

Read More

Convert Images to Data URIs for Faster Page Loads

For anyone looking for faster page loads, converting images to data URIs can provide a speed boost in certain instances. In modern web development, page load time is extremely important, not just beca

Read More

How to build an HTTP file server with Node.js

Over the last year or so, I've been working more and more with Node.js for a variety of projects. I started by building a few command line apps, progressed to some simple Node/Express sites, and more

Read More

Teens, Technology & Social Media | Infographic

Continuing my infographic kick, here is an infographic explaining some of the key points from a [Pew Research project on Teens, Social Media and Technology](http://www.pewinternet.org/2015/04/09/teens

Read More

Flipped Vs. Hybrid Pedagogy | Infographic

Having worked with instructional technology for awhile, I'm often surprised by how frequently people conflate hybrid pedagogy with flipped pedagogy. At SXSWedu, I bought a bunch of really good books o

Read More

Building A Simple Heat Map with D3

Heat maps are a great way to analyze frequency in a data set. Beautiful and creative things happen when you are stuck in an airport for four hours. I've been wanting to explore heat map visualizations

Read More

SXSWedu Days 2 & 3: Reflections and Round-up

A lot has been going on over the last two days, and Austin is such a fun city, that I'm combining my reflections into one super blog post. There is a lot to talk about, so stay tuned, but I'm not goin

Read More

SXSWedu Day 1: Reflections and Round-up

I want to document my experiences at SXSWedu for anyone interested in the conference or for my educator friends in the blogosphere or on twitter. First off, Austin is a super fun city, with a motto of

Read More

Debugging Node.js Processes | Error events.js 141

Debugging Node.js processes on the server can be kind of painful depending on what tools you have available to help you make sense of error messages. After scouring the web, it seems that a lot of peo

Read More

The ABC's of the Canvas REST API

This is a post to collect all of the presentation resources for my presentation at the Mid-Atlantic Group Instructing with Canvas (MAGIC) Conference. To get the most out of this experience, try instal

Read More

How to Use the Google Fonts API in Your Website

The Google Fonts API makes it easy to load great fonts into your site for free. Beautiful typography can mean the difference between a good website and a great website. Instead of jumping through hoop

Read More

Google Forms Confirmation Email with Attachments

Google Forms is a great tool to use to make quick and easy sign-up forms, but sometimes you need it to do something else a bit more complex. In this short tutorial we'll talk about how to extend a bas

Read More

ALA Conference 2014 Handout

## ‘The simple, compact, well join’d scheme’: Creating Multimodal Experiences for Students of Early American Literature Using Web-based Resources

Read More

The Global Importance of Openness to Education

\[caption id="attachment\_727" align="alignright" width="300"\][![This image displays a man opening a door with light behind it](http://ec2-34-198-113-124.compute-1.amazonaws.com/wp-content/uploads/20

Read More

5 Easy Tips for Creating a Professional Podcast

In this post we will look at five easy tips that will make your podcast sound professional. In the age of information overload, it is simple for your audience to tune out or find another source. The b

Read More

The Possibilities of Human Networks

[![This image display a series of networks that resemble molecular bonds](/media/networking-1-1.png "Networks")](/media/networking-1-1.png)

Read More

How to send a confirmation email with Google Forms

In this short tech tip, we are going to look at how to make a Google Forms send a confirmation email to the user each time they submit a form. This is just a basic template for how to make this happen

Read More

Tech Tip: Randomizing Data in Microsoft Excel

Excel is a powerful data analysis tool. In this blog post, we will look at how to use the =RAND() function in Microsoft Excel to randomize a column of data. Randomizing data in Microsoft Excel could b

Read More

Year of Debt Destruction: Q1

[![person enslaved by debt](http://ec2-34-198-113-124.compute-1.amazonaws.com/wp-content/uploads/2014/01/shutterstock_161113745-1-300x149.jpg)](http://ec2-34-198-113-124.compute-1.amazonaws.com/wp-con

Read More

How to Create Awareness for Your Cause

People do amazing things everyday. The problem is that most people never see them or hear about them. Creating a buzz is essential to gaining active followers and supporters. Here are just a few tips

Read More

Leaders Let People Do, Not Follow

![](/media/images) No one wants to be a back seat driver forever. That is a fact. There are many kinds of leaders with differing opinions on this simple fact: Those who gain their authority from the s

Read More

The Challenge of Making It New

![](/media/images) Most of the ideas that people have are not new. They may be new to that person, or new to the situation, but so often they are reproductions of other ideas, other situations, other

Read More

Increasing Productivity with the Power of Observation

Over the last several centuries or so, humankind has undergone a radical shift that has redefined which biological traits determine success. For tens of thousands of years, success, both biological an

Read More

Weekly Wordpress Challenge 3: ITC

Good Morning ITCs, I hope everyone had a nice, abbreviated week because of fall break. Wordpress Challenge 3: Add widgets to your Wordpress page and then write a post about which widgets you selected

Read More

Weekly WordPress Challenge 2: ITC

Hey Guys, Thanks to all of those who followed me last week for our first weekly WordPress challenge. Your challenge for week 2 is as follows: Add content to your "about" or "bio" page and include an a

Read More

Online Education Spreads to High Schools

Although many Advanced Placement courses and grade level courses have been offered through online or distance models since the early 2000’s, Virginia has recently made a [push to increase the number](

Read More

Project Based Learning

I've been thinking a lot about project based learning, both how it can be applied in the public education setting and how I can use this type of method to organize learning experiences for the undergr

Read More

Applications of the E-portfolio

Many universities are implementing e-portfolios in some capacity. The purposes of e-portfolios fall into roughly one of three main categories. The first type of e-portfolio involves using the space to

Read More

A New Look at Reading and Writing Assignments

While communication technology has changed rapidly over the last thirty years, our modes of teaching students to be communicative have changed very little. The essay still seems to be the time-tested

Read More

Using Cloud Computing for Collaborative Research Projects

The use of cloud computing in a collaborative research setting provides both student and teacher a more ready means of written communication. Students are able to collaborate together more effectively

Read More

Hello world!

Welcome to WordPress. This is your first post. Edit or delete it, then start blogging!

Read More

Conceptualizing the ELL Experience

I had a long discussion with a young man this afternoon. His words were to me far more poingent than he must have intended. He is not a native Of the U.S., and many of us would judge him for the way t

Read More

Teaching Grammar Using Manipulative Devices

I have always struggled with finding interesting ways to teach grammar to less than enthusiastic students. For many American kids, even the first syllable of the word grammar is enough to make them lo

Read More

Soccer = Most Intense Workout Ever/ Screw P90X

During my childhood, I played about every sport imaginable for at least a few years except one: soccer, or as my amigos hispan0hablantes call it, futbol, or football for you linguistically challenged

Read More

Summer 2011

I have been enjoying spending more time outdoors this summer. Being surrounded by nature though certainly helps, as does having an Australian Shepard that requires frequent walks. I feel a bit like Th

Read More

Hello!

Welcome to my portfolio. Please navigate to the About page to get a better understanding of why this site exists and how it is set up.

Read More