Custom Fitted WordPress

flickr photo shared by Internet Archive Book Images with no copyright restriction (Flickr Commons) I’ve been doing a whole lot of WordPress customization lately for really widely varying purposes/people. It has been a lot of fun and it’s an option that I’m not sure has been conveyed well to our faculty. Many times, faculty are looking for a process for students (or one another) that is semi-structured. The students have options but they need help remembering to do certain things (include at least one image, consider these three topics, add a link, etc.) or they need a bit of guidance to help create uniformity of some sort. If you’ve ever asked more than ten people to answer three questions in an email then you know that virtually all the humans fail to follow directions when given the chance.1 You’ll also see the width and depth of human imagination if you ask someone to fill in a text field answering a question you really thought was straight forward.2 There are also concerns about the complexity of WordPress that we can address through custom post types and custom user roles while still allowing for a good deal of flexibility within our established constraints. This interplay of custom fields, custom post types, and usually a custom theme to display the former is probably […]

Grabbing JSON

flickr photo shared by Library Company of Philadelphia with no copyright restriction (Flickr Commons) What I wanted to do was grab data from the WordPress API and use that to provision chunks of my new portfolio site. The portfolio is hosted on GitHub and GitHub is HTTPS. At the moment my bionicteaching site is not HTTPS.1 That causes problems as secure and insecure are not friends. I wanted a quick and easy solution so I could continue until I do the HTTPS switch. The following is how I wandered towards a solution. A number of the things worked but don’t quite work for what I wanted. So they’re worth remembering/documenting for later and it’s kind of fun to see a mix of javascript, php, url manipulation, Google API, and the WordPress V2 API all in one little bit of wandering. My first thought was to grab the JSON via a Google Script and store it in Google Drive. I can do that but can’t seem to make it available for use the way I want. I tried messing with various URL parameters but it wasn’t flowing and I only started there because I thought it would be easy. I did eventually get the file accessible in DropBox (the only other place I could think of immediately for https file storage) […]

Many Paths in Programming

flickr photo shared by San Diego Air & Space Museum Archives with no copyright restriction (Flickr Commons) Minor Thoughts on Computational Thinking Probably obvious stuff but I’m trying to jot things down for my own reference. The first thing one ought to know about computational thinking/programming is that there are many correct paths (although some are better1 than others). This is true for just about anything but I think people think technology will be much more . . . binary. Searching for cleaner paths can be kind of fun. Computational thinking is powered by vocabulary. Vocabulary, like in language, is closely tied to concepts (maybe analogies). Having never heard of the range function, it didn’t occur to me that it existed . . . let alone that I should use it. To make it work properly I need grammar but just knowing the word exists and means something starts to change things for me. It brings to mind setting up programming challenges much more like Dan Meyer’s 3 Act math lessons . . . with the scenario really begging for the addition of a particular concept but letting students struggle with it rather than providing it ahead of time. A Path This is a little bit of real-life progression which demonstrates how one thing can be done in a variety […]

Insta Snoop

A while back I was messing with getting Instagram data without bothering with their API because I think their most recent API changes are really annoying. I’m also a bit fascinated with the scale of numbers in social media right now. I opted to look at Snoop Dogg’s Instagram followers and plot their change very 10 minutes. Click here or on the image to see the live chart. Get the Instagram Data w/o the API & Put it in the Database It turns out that each Instagram page has an embedded JSON file with the data I wanted. You can see it if you view the source of any page. This Stackoverflow post was kind enough to point it out and you see regex rearing it’s head again. I started out with my standard process of using Google Sheets as the database but decided I’d try MySQL because I wanted to try getting the JSON ought more cleanly. The chunk below grabs the data and puts it in the database. So that gets us the stuff we want in a nice little box on the Internet. I did try to do some fancy mysql stuff to avoid entering the change in followers as an additional field but I failed in enough ways that I just opted to proceed with the […]


YouTube Scraping, XPath, and Google Sheets

APIs can give you much more power but they are often overkill for what people are trying to around here- lightweight social media Here’s a lightweight example of how you can use Google Sheets and the IMPORTXML function to grab quite a bit of data from various video pages with no API or technical skills. Straight off, we’re going to want the URL of the video. We’ll put that in column A and we’ll use it as a variable in all our other formulas. Getting the Paths to the Data =IMPORTXML(A2,”(//*[contains(@class, ‘watch-title’)])[1]”) So how’d that come to be? A2 is just asking what URL we want to go to. The XPATH stuff gets a little more interesting. It’s going to look for any class that is named watch-title. I found out the title was in that div by right clicking on the title and choosing inspect in Chrome. The appended [1] will only give us the first item that meets those qualifications. Otherwise the title shows up twice. The rest of the formulas are pretty much variations on that theme. =IMPORTXML(A2,”//*[contains(@class, ‘watch-view-count’)]”) – View count =IMPORTXML(A2,”(//*[contains(@class, ‘like-button-renderer-like-button’)])[1]”) – Likes count =IMPORTXML(A2,”(//*[contains(@class, ‘like-button-renderer-dislike-button’)])[1]”) – Dislikes count =IMPORTXML(A2,”(//*[contains(@class, ‘yt-user-info’)])[1]”) – User name Throw in a video of your own if you’d like.

Juxtaposing Woodcuts

I was fortunate to meet Claire Bourne from VCU’s English Department yesterday. In addition to all sorts of fun conversations around her upcoming course on Marlowe (and the WordPress site) and the FileMaker database she built to see more deeply into her research,1 Claire mentioned she was on Twitter (roaringgirle) which opened the door to yet another interesting world of people on Twitter. One of Claire’s tweets comparing two different, but very similar, woodcuts did catch my eye as an interesting target for Juxtapose. woodcut on this 18c TITUS ballad = copy of one on TP of 1 IRON AGE (1632) | Misc 289783, Huntington via @EBBA_Ballads — claire m. l. bourne (@roaringgirle) August 13, 2015 It took a few minutes to cut/paste into PhotoShop. I then resized them so they were roughly the same size. Despite their aspect ratios being a bit off, I think it turned out well. I also opted to do the vertical scrolling option as I felt it made it easier to see the differences than the horizontal option. Nothing fancy but a solid way we can look at media in a way that helps drive understanding. 1 How awesome is that? I also had fun reminiscing FileMaker was something I spent a lot of time with back in the day.

Gravity Forms: Exploring a Design Pattern

creative commons licensed ( BY-NC-ND ) flickr photo shared by clement127 One of the things we use a lot is what I’ll call templated submissions using Gravity Forms. It’s a solid performer across a variety of activities, disciplines, and instructor technology comfort levels. Costs/Benefits The content is guided/scaffolded so you get consistently constructed products (core elements are there and presented in a consistent manner) in a way that never quite works out with free form entries.1 Want to make sure students apply four lenses of analysis to a website review and end up with consistent titles and formatting? This is the type of construction where forms really help. Often this pattern is used as a way to get the advantage of creating web content without having to give students their own usernames/blogs/etc.2 It does reduce that overhead and makes good sense in situations where a full blog or authoring rights to a common blog may be overkill. One of the main advantages of this type of pattern is ending up with a visible, interactive, and useful aggregation of content. Make that matter. When these assignments have a larger purpose and audience things get far more interesting. A Few Examples These are live classes so please don’t submit entries at these sites. PSY 323< - focused on student submission of video/presentations […]

Private Comments via XMLIMPORT

Making shareable (Sharing with a single person or specific group but not with the world.) comments on public writing is a fairly awkward spaaaaaace right now. There are things like AnnotateIt and Awesome Screenshot and the annotations in Diigo. So I’m looking around for other free options and brain storming odd ideas and not find a whole lot and I came up with the following . . . Note: I’m not saying this is a good idea, it may even be a bad idea but it might inspire someone to do something more interesting down the line.1 I at least found it mildly amusing. Here’s how you might pull an author feed from WordPress into Google Spreadsheets with separate cells each paragraph (for paragraph level commenting). The idea being that you can share the Google document with just that student and do the commenting via the GSS commenting feature. Google spreadsheets will import lots of things (xml, atom, rss). WordPress provides lots of specific feeds (author, tag, categories, combinations thereof). So step one is to get the author feed – for example You can then use the IMPORTXML formula in GSS to import that XML and do some XPATH parsing of the pieces. In this case I used =IMPORTXML(“”,”//p”) to pull out the paragraphs. I can then share the […]

3D Passenger Pigeon Bones

I’ve been working with Bernard Means who runs VCU’s Virtual Curation Laboratory1. We spoke briefly a while back about building a site to allow for interactive views and downloads of 3D STL files his team has made of passenger pigeon bones. One of the goals was to allow mobile devices to interact with the site in an “app-like” fashion. This is more than a desire for the PR boost that seems to come with creating an “app”2 What we’re working toward is the ability to cache this stuff and enable archaeologists in the field to interact with the virtual shapes on mobile devices or download the shapefiles, print them out, and carry the replicas into the field (next up is a consideration of points). We wanted to get the passenger pigeon bones out in time for the anniversary of the extinction of the species which was 100 years ago today. Due to the excitement and drama that is the new school year, I didn’t end up getting the bones or focusing on this until Thursday. This was the first website I’ve made by hand (non-cms) in a while. I figured it’d be good for me and I thought it’d help remove complications. I don’t know if that ended up being true but it was a decent idea. It was a […]

Sociological Theorists WordPress Site

Our Sociology Department Chair, Jennifer Johnson, is out there leading the way for the Sociology Department at VCU. She’s not only thinking through how syndication will impact the design of their entire program and curriculum (online and off), she’s also teaching a course on Sociological Theory in a way that shows how student work can interweave in interesting ways. There is a real focus on interaction between undergraduate and graduate students and the idea that the student work will be centered around the theorists themselves. The site reflects a number of those choices and it’s going to be fun to watch it grow. They’ve already got upwards of 90 posts and we haven’t even finished the second full week of classes. The site is a basic mother blog setup with a few tweaks. You’ll notice the landing page is a basic grid layout with the theorists images linking to the categories. So the Max image links to Most themes don’t really encourage this particular layout. There are plugins that will allow you to give categories “Featured Images” like posts have. In this case that felt like more trouble than it was worth as I’d also have to do some extra work to make the categories display the way I wanted. I figured someone smart had done a decent grid […]