Work This Week – Week 1

Since I’ve been falling off on my weekly photo posts, I figure I’ll start a weekly work series. While that doesn’t seem to make sense . . . it does. I am really bad about keeping track of the good things, the progress, the little bits that add up. I am very good at looking at large, looming disasters. I’m hoping that documenting progress will help convince me that I am making progress, that I am doing small things to help people do a bit more.


VCU Qatar – Online Art History/Museology Courses

This is part of three online courses being created to help teach art history and two other arts/museology related courses for VCU Qatar. My role in this is more of a consultant (web design is being done externally by CHIPS NYC1) but I’ve built a few things to help get us past (or into) some sticking points.

I used one of the HTML5up templates to make this super quick example. I’m not thrilled to have a white guy doing the video but it was the highest production value I found after a quick search (that might be shaped by having to use English). The text is from one of the professors although I chopped it up a bit. There’s the ugly start to a Timeline JS project in there.2

Instagram Shortcode

After getting frustrated with the requirements for the Instagram API stuff, I made a plugin that uses the PHP scraper so I can grab a certain number of images by user or tag without having to authenticate. It’s an evolution of the page template version I made a while back. It’s one of those moves from a one-off item to something that’s more flexible in a variety of scenarios. I need to figure a better way to show that kind of progression of time/energy/tools.

Random Post

Dan wanted a random post from his Sports Law Spotting site. Facet WP made it easy for me to do that without doing any custom work. Just make a new template. In this case, it’s getting posts that are in the question category and the “orderby” => “rand” gets us the random post. Now we can stick it wherever via shortcode. Nothing fancy but far handier than creating a whole child theme . . .

return array(
  "post_type" => "post",
  "post_status" => "publish",
  "orderby" => "rand",
  "order" => "DESC",
  "posts_per_page" => 1,
  "tax_query" => array(
      "taxonomy" => "category",
      "field" => "slug",
      "terms" => "question"

H5P – Empty Library

Michael mentioned that after creating content using the H5P plugin his library remained empty. I hadn’t noticed that but it proved to be the case for me as well on another site in our install. On my local development install things worked correctly. I’m still trying to figure out why it’s not finding content (I suspect either our divided database or maybe NGINX) but in the meantime, I went to create a new H5P element and took note of the URL. Even with an empty library we can navigate through the content using the URLs. gets us to the edit page for our 3rd item. Not a solution but a temporary way to limp along and proof the items are saving, they just don’t show up on the library page for some reason.

Flux Tower & Other Rice Center Data

I had a meeting with the VCU Rice Center group and will be working with them around constructing some explorable explanation options for the data they’re capturing around all sorts of environmental variables. Some of this is driven by the installation of a Flux Tower but there’s also just a ton of data they gather that will be fun to figure out. There is much, much data. I’m looking at options like Crossfilter to deal with both scale and getting some of the interaction done without tons of custom work.

Digital Humanities History Syllabus

I’m co-teaching a digital humanities history course next semester with Dr. Ryan Smith. We’re working on the syllabus now. It’s going to be an interesting experience as it’s a new course for VCU. I was a history major as an undergrad but it’s been a good while for me. Just thinking about some general skill/disposition/tool relationships has been a bit intimidating. There is a lot to consider. I threw some notes on one of the readings Ryan suggested as a bit of practicing what I preach and trying to get a better handle on how digital humanities thinks about itself. It’s kind of weird in that I think about this stuff all the time but not really through the same lenses/words. At times “digital humanities” feels a bit confining.


I’m reading Maria Montessori’s works from Project Gutenburg. I may re-read some Papert and, if I can take the depression, Illich.

Sports, Social Media, and Freedom of Speech

I did a guest spot in Dan’s Sports Law class to talk about issues involving student-athletes and social media restrictions. Once upon a time I played football in college and then went on to be an academic coordinator for student-athletes for a few years. That gives me a bit of credibility beyond the social media stuff. I did a little research getting ready and was really impressed by this article (and a bit dismayed by the comment). The presentation is embedded below. Click on it once and then you can navigate with your sideways arrow keys.

Sites in Progress

I’m working on Footsteps on the James and revising the Text Set site I did about 3 years ago. It’s always crazy to look back at how bad I was at things. I did all sorts of crazy stuff to make this particular site work and I won’t be able to easily undo them.

The one semi-interesting thing that I did to improve things was to deal with associating books with particular units. Originally, I’d sort of made this work by filling in a Gravity Form field via a URL parameter. So when you make a Unit that has many books associated with it, you’d end up with a URL that would fill in the right tag for the book. That works fine until you navigate away and come back to the naked URL (no ?tag=item777).

With a bit of javascript I am now able to set that field no matter what.

Luckily, I have the tag written in the body of the post (although this could be better and it could be in a specific div with an id).

So with some jQuery . . . I can get the item and then set the field.

jQuery(document).ready(function($) {
	if (jQuery(".items").find("strong").html()){
	var unique = jQuery(".items").find("strong").html(); //get item
	document.getElementById('input_1_18').value=unique; //set field


Odds & Ends

I presented a one hour workshop on Rampages/WordPress. Not sure how effective that is with low attendance (~6 people). At some point it seems you’re so small there’s no size benefit and you just lose out on individualizing the conversation. I think targeting by discipline or something might make more sense. It also feels like any sessions ought to getting increasingly specific – move from a survey to more particular items with increasing specificity/sophistication.

Also sat through any number of meetings. Some beneficial. I continue to assure people that ALT Lab (my department) still exists and will continue to exist.

1 Who do seem pretty awesome. Their work is really nice and I love thinking about this move from a FileMaker Pro/AppleScript solution into WordPress.

2 I’ve had issues with that site loading very slowly in Chrome Canary so I’ve been linking to the version I keep on GitHub to increase speed.