Posts in "Wordpress"

A Web Diet: Converting WordPress Sites Over to Static Sites

Over the years, my main course web project, PR Pubs, has became one sprawling beast. For the most part, people know prpubs.us as the homepage for the course, but I haven’t actively used that space for a few semesters. Thus, in May I made it one of my summer goals to rework prpubs.us in such a way that both narrates and preserves the history of the course and the space. The story of Pubs is an epic one with many twists and turns. Once upon a time, it started as a blog feed, morphed into a full open course, vacationed for a summer on the Jekyll CMS, and is now more integrated with Canvas, our LMS. Nothing really captures this story well and for good reason: I’ve tried counting and I believe it’s existed in eight separate places since 2014. In fact, out of all the spaces, my own personal blog is probably the best representation of the evolution:

I got interested in archiving a bit more while visiting Middlebury College last Fall where they’ve started a project out of their library to preserve student web work at the request of students. I should also mention that Kin Lane has been a major inspiration in helping me see the benefit of static sites. The point being that I’ve known good and well that no CMS is in for the long term. I’m a data pack rat so I’m always thinking about the long term.

At the heart of every course site has been the blog feed powered by the FeedWordPress plugin. Students are writing between 250-500 total blog posts per class per semester. I’ve systematized the process of preparing for the next batch of PR Pubsters. Every semester, I clone a clean version of my syndication hub which is already preloaded with theme, plugins, and custom code that I need to make it work. Over the past couple years, I’ve probably done this a dozen or so times across various courses and thus end up with a ton of WordPress instances.

Eventually, the semester ends and these 250-500mb spaces of content become dormant. There are tasks that I’ve done in the past to close a course site which basically involves unsubscribing to student feeds. But recently I’ve decided that for better preservation purposes, I would rather have a fully static HTML version of each course site. In a lot of ways, it feels like I’m putting it sites on a diet. “Why consume all of those data-dense databases?! Stick your macronutrients: HTML, CSS, and JS! Get rid of your addiction to Cigawordpress!”

What are the upsides to doing this?

  1. You know no longer need WordPress or any other CMS to be the engine of the site. The biggest benefit is that you are less vulnerable to becoming infected through an out-of-date theme or plugin. If you aren’t actively updating the site, you are making yourself susceptible to a lot of mean people on the web.
  2. You can host it on any type of web server.
  3. You can even just keep it locally on your computer and access it via your web browser.
  4. Because of it’s portability, it’s much easier to share a static site as an open education resource (OER). You could even host them on Github allowing people to create forks of the site if they so choose.

Jim Groom turned me on to a tool called SiteSucker a few months back because that guy is always thinking a step ahead of me… SiteSucker does exactly what I laid out earlier. And Jim lays out a strong argument:

I don’t pay for that many applications, but this is one that was very much worth the $5 for me. I can see more than a few uses for my own sites, not to mention the many others I help support. And to reinforce that point, right after I finished sucking this site, a faculty member submitted a support ticket asking the best way to archive a specific moment of a site so that they could compare it with future iterations. One option is cloning a site in Installatron on Reclaim Hosting, but that requires a dynamic database for a static copy, why not just suck that site? And while cloning a site using Installatron is cheaper and easier given it’s built into Reclaim offerings, it’s not all that sustainable for us or them. All those database driven sites need to be updated, maintained, and protected from hackers and spam.

Side note: Isn’t it always a let down when you are trying to write a blog post and you realize that someone has already made your argument and in a much more succinct fashion I might add? That Groom! But, nevertheless, I’ll continue on in hopes of imparting a little bit more wisdom…

Sitesucker grabs your site contents and converts it into HTML, CSS, and JS. You can also set how many links deep you want to pull content. For me, I wanted to grab all my students blog posts, but I didn’t necessarily want the links they were referencing in their blog posts, so I went three levels deep (front page, pages, blog posts).

What are the downsides?

  1. Because it is a static site, it can no longer make dynamic calls. Dynamic calls are when pieces of the web resource are being constructed when the URL is first called. This includes comments, searches, and other organization features like categories and tags that are native to WordPress. Now SiteSucker will generate a copy of these dynamic calls and turn them into static, but after that they will cease to function. None of the content disappears but it can’t be regenerated, so no new comments. This isn’t a big deal for me considering the sites are completely dormant, but it does sting a bit to lose search functionality.
  2. You need to understand basic HTML and CSS to make any significant edits to the site after it’s in it’s static state. Remember, you longer have access to the nifty WordPress WYSIWIG editor. This is where the OER argument gets tricky. Yes, it’s more portable, but potentially less editable depending on the user’s knowledge.

John Stewart was kind enough to test it for me with prpubs.us and it worked like a charm. I then went and grabbed static versions of the other course sites followed by hitting that scary “delete” button in Installatron which made the WordPress instances go away.

Last, I redesigned the prpubs.us front page to better tell the historical narrative of the course. There you can find images of past versions, full information on the technologies that powered each, and links to the archived versions.

Hopefully this is a much more helpful resource for visitors and student alike. Either way, I feel like the state of the health PR Pubs is at an all-time high. Here’s to surviving.

DiscPress – A Vinyl WordPress Plugin

In March, I had mentioned wanting to sync my Discogs record collection with my domain. Then Tom Woodward built a WordPress plugin that essentially did that. Because he is Tom Woodward.

The plugin Tom built pulled the metadata of each record into the record collection into a Google Spreadsheet and then the plugin pulled the information from the sheet into a custom post type. For more, read Tom’s post on the technicalities.

This was a big leap though it had some reasonable limitations. For instance, you had to manually pull the records through a Google Script. Also Wordpress didn’t quite know what records already existed and which were new, so it was a bit messy when you tried to update your collection, usually syncing records two or three times.

Then today I got a blog comment from Andrea Facheris says that Discogs WordPress plugin, called DiscPress, has been released to work directly with the Discogs API.

Screen Shot 2016-10-20 at 1.09.17 PM.png

From the looks of it, it appears that the plugin went live a couple of weeks ago as someone recently posted the release on the Discogs forum:

Screen Shot 2016-10-20 at 1.13.41 PM.png

I fired up a new site to test it out and you can see it at http://vinyl.adamcroom.com/new.

The first thing I noticed about the plugin is that, functionally, what is does is HIGHLY similar to Tom’s version without the Google Script/Spreadsheet middle man. It, too, creates a custom post type called “Records” and then pulls in the record meta data as a custom field. As a visual, I’m posting what the meta data for Sam Means’ 10 Songs record looks like on both versions of the plugin:

Tom’s plugin

Screen Shot 2016-10-20 at 1.16.46 PM.png

Discpress plugin

Screen Shot 2016-10-20 at 1.17.25 PM.png

Nearly the same data is being pulled except Tom’s pulls the year release (which I really like) and the Discpress pulls the release ID and the album artwork thumbnail. I’m not 100% certain, but you have to think that the work Tom did was highly influencial on this product. So great to see how someone  (again, I think) took the foundation he laid, built it out, and got it in the WordPress Plugin Directory.

The thumbnail is a really nice touch and something I really like (I had to manually pull them in on Tom’s version) but 150x150px just aren’t just high quality enough to display very well on the site, at least for my taste.

Screen Shot 2016-10-20 at 1.24.24 PM.png

The other major is that while it creates the custom post type, the permalink creates a 404 error and so you can’t visually see the details in any way that’s publicly consumable, which makes the plugin virtually unusable in it’s current state. (This has been fixed. Thanks Andrea for your recommendation here.)

But, I will say, I really LOVE how you can directly interact with the API from within WordPress and sync everything up automatically. This is a big improvement to the original project.

 

options-general

I’ll say that, for now, I’ll stick with Tom’s version but I’m excited to see if this one develops any further. But, beyond my neediness, these are the types of projects I’m really interested in. I now have a local copy of all the data that I’ve inserted into the Discogs community. I get to own and display that data in a highly flexible manner. We live in a world where these type of communities sprout up and then shut down all the time, so a tool like this, or Martin Hawksey’s Twitter Archive on Github Pages tool, make it easier for me to grab my data and secure it somewhere as my own personal historical record; some that means a lot to me. Tack on the domain as a piece of infrastructure to unify one’s sprawling personal data collection, and you can quickly see how I would get excited.

At some point, I’ll write more on this, but it does have me thinking again about edtech, student data, and how we build ways in which students can keep the data of their work they do while in school. If anyone has any examples, I’d love to see what tools are out there that allow students to tap into the applications API and extract that data into a usable form. My educated guess is that there are few.

OU Create WordPress Installs Now Shipping with Hypothes.is

Jeremy Dean and I have chatted a couple times now about the product he’s been involved with for some time called Hypothes.is. Several of us within CTE (Mark, John, Keegan) have been playing around the tool and are quite impressed with it’s ability to bring discussion to virtually any piece of text via annotation and threaded replies. So much so even that we have decided to include it as a pre-installed plugin on OU Create Wordpress sites.

What is Hypothes.is?

Hypothes.is is an open platform built for annotating the web. The fastest way of accessing it is to add via.hypothes.is/ to the beginning of any web address. For example, I added the proxy to the beginning of Gardner Campbell‘s most recent Educause article:

SfCMROFH1J

What was once an article that only allow comments at the bottom, now allows character-by-character highlighting and annotation. These annotation notes can then be made public or private by the user and are saved to your personal hypothes.is profile, which can be called via the Hypothes.is API, reminiscent of the early Twitter days. Further, you can also see other peoples public comments as well, allowing for a community to form/discuss a particular text.

I liked how Maha Bali recently articulated Hypothes.is on a Chronicle ProfHacker blog post:

This means that my colleagues (and if I try this in class, my students) have a choice to do these readings in isolation, or they can read them in asynchronous collaboration with others who had read and annotated them beforehand; they can learn from what others have been saying about those readings

How is Hypothes.is Thinking About Education?

One thing that Jeremy and I have bonded over is that we are educators firsts. He’s a former a school teacher himself. Hypothes.is has recently launched is a coalition around scholarship:

Scholars are natural annotators, as the process of creating new knowledge requires building on what’s come before. So, in order to bring this capability to the areas where new knowledge is created and published, we sought out some of the world’s most essential scholarly publishers and knowledge platforms.

Our goal is that within three years, annotation can be deployed across much of scholarship.

Additionally, the hypothes.is blog is all chalk-full of ways in which it can be deployed in classrooms from annotating the State of the Union to online textbooks.

How is Hypothes.is Integrated with OU Create?

Every new install of WordPress on OU Create will now include the Hypothes.is plugin by default (Note that this will have no affect on any current WordPress installations. Only future). To use it, users will need to first enable plugin. Once activated, head over to Settings > Hypothesis. This will allow you to specify exactly where you want Hypothes.is to be automatically enabled.

Screen Shot 2016-01-20 at 9.33.36 AM
Voilà! Now you’ve got annotation enabled on your site!

rii8hyN0fA

About a year ago, I was pretty interested in attempting to “Medium-ify” my blog. And, by that, I mean 1.) getting a clean theme that read incredibly well on a mobile device 2.) adding annotations. I’d argue that the reason Medium has gained popularity is 1.) a slick authoring experience 2.) great reading experience and 3.) social community focused around annotation, favoriting, and replying. I’ve managed to become satisfied with the way my site reads but have still been unable to capture the annotation I’ve desired. Mostly because the WordPress Plugins that are built for it (such as Inline Comments) only function well on very specific WordPress Themes. Wanting a little bit more flexibility, I’ve abandoned trying to integrate annotation myself (for now at least! ;-)).

Hypothes.is seems like a much better option for multiple reasons. It is unobtrusive first of all. But, second of all, it allows the commenter to retain a copy of the annotations which I think is much more valuable in the long run, a larger reason why we are so supportive of domains in general. We should let students do work in environments where they can retain their work.

There is still a lot of development left to be done on Hypothes.is. For instance, they’ve just rolled out groups, but groups still need a profile page. How great will it be once you can create a group for your class, see who is in the group, and then browse their annotations? Similarly, the personal profile isn’t currently nothing to write home about. Jeremy and I also discussed the potentially to integrate some of IndieWebCamp’s POSSE mentality into the product. Sure, it’s nice that your notes can be pulled via API but there needs to be a more integrated approached to syndicated your notes to your own site.

That said, I’m excited to see how Hypothes.is can be leveraged on our campus and how we can support a team like this. Hypothes.is fits really well in the characteristics articulated for Indie EdTech, and I’m always excited for how I can support local development.

shyYtty.png

Three Flavors of Networked Blogging with WordPress

I’ve been helping with the launch of MiddCreate, a domains project at Middlebury, led by Amy Collier. One of their faculty members was interested in a multisite setup for her class, and while that’s a great approach, I wanted to offer the Middlebury folks a broader look at options for networked blogging with a particular focus on different models that WordPress affords.

Networked, distributed sites

This is the approach that I use for my PR Pubs course, which was popularized by Alan Levine / DS106. Essentially, faculty set up a course site and utilized it’s blog function to syndicate student work. This is arguably the broadest approach and lends itself well to student agency. This is because the model depends on student’s sites to have RSS feeds to process the syndication, so, technically, students are able to use any platform that produces an RSS feed. That said, it is also more arduous to manage at both a student and faculty level (though I would argue this may be a good thing depending on your objectives). If you are taking a portfolio building approach to your class, I highly recommend this model.

The how: If you are at an institution that has a Domain of One’s Own initiative (we have OU Create) and gives students access to tools like CPanel and Installatron, students have multiple applications that they can choose from (such as WordPress and Known). I have setup a WordPress instance to run the course site and installed FeedWordPress which is the real engine of the tool. I won’t go into this method too in-depth because Alan wrote a series in 2014 which is arguably the most comprehensive tutorial of the plugin (HIGHLY recommended). But for those new to the game, FeedWordPress allows you to subscribe to any of the Atom and RSS feeds that a site generates. If the student is using WordPress (as well as Blogger), you will see multiple options for RSS feeds pop up. That’s because there are feeds for the blogs as well as the comments (which can be beneficial if you want to track comments as well).

Screen Shot 2015-12-14 at 1.40.41 PM

Once you have subscribed to the RSS, you can look under the “Feeds & Updates” menu item and you can decide whether you want the course site to manually check for updates (known as a cron job) or automatically check for updates. I have mine set to check for updates automatically once an hour. One other feature that you might want to take a look at is where the permalinks point. You can either have it point to your local copy or to the students website. I prefer to point to the students site to really promote the idea of these networked, distributed sites, but occasionally a student site disappears and I appreciate the ability to point to the local copy.

There is also an Feedwordpress Advanced Filters plugin that can be handy. I use it to locally store the images that syndicate. That way, in the event that the student site goes down, I have a local copy cached.

Screen Shot 2015-12-14 at 1.44.12 PM

When you’ve finally subscribed to all of the student sites, your FeedWordPress dashboard will look something like this, showing the feeds, their address, and the last time the site was scanned for new posts:

Screen Shot 2015-12-14 at 1.37.18 PM

WordPress Multi-Site

So this is a new approach that I’m playing with. Tim Owens wrote a great series on WordPress multi-site and the advantages it brings. Multi-site is pretty self explanatory: One WordPress user is a super admin to multi sites. Most campus-wide blog solutions are, indeed, simply one installation of a WordPress multi-site. Users can sign up to create a WordPress website but do not manage the installation or its features. This means that all updates to WordPress, themes, and plugins happen at a Super Admin level.

What I wanted to look at was can you use WordPress Multi-Site to replicate the same functionality as distributed site syndication, but lowering the bar to entry for creating and maintaining the site itself. For some, becoming a full sysadmin of their own domain might not be desired and they are looking for an approach that mirrors a hosted solution (such as WordPress.com or Blogger). What would this look like?

I setup http:/prpubs.us/sites and installed WordPress Multi-Site. The next thing you need to do is go to your Network settings and enable registration for both sites and user accounts.

settings.php

Then install both FeedWordPress and Inpsyde Multisite Feed (make sure to Network Activate FWP). Multisite Feed is a great little plugin that I found which allows you to create one RSS feed for posts across the entire the network, which means you are no longer managing the RSS feed of all students, but, rather, one MEGA feed.

Screen Shot 2015-12-14 at 3.45.01 PM

Next you’ll leave the Network admin site and go into the Dashboard of whichever site you want to use as your course hub and then add the feed to FeedWordPress. The feed is simply %siteurl%/multifeed (this URL is also customizable in the Multisite Feed settings).

Screen Shot 2015-12-14 at 3.46.49 PM

And, voila, I now have a syndication hub where students can just signup for a WordPress instance and will automatically be syndicating. I can even add a link to “Create a Site” by adding %site-url%/wp-signup.php to the menu.

Screen Shot 2015-12-14 at 3.56.43 PM

Now to just sit back and relax:

relax-gif

As students signup for an individual site, you’ll receive email notifications as well as find them on your Network Admin Dashboard under Sites:

Screen Shot 2015-12-14 at 4.36.49 PM

So when is this model appropriate? If students are producing a lot of course-specific work but is not necessarily towards a portfolio, you might take this approach. For example, say I’m teaching a U.S. Media History course, and I make an assignment that requires students to build sites in groups. My class has 24 students and I break them up into groups six groups of four. I then assign them decades (1910s, 1920s, 1930s, 1940s, 1950s, and 1960s) and tell them that I want them to build a resource site for each decade. And suppose I want a consistent look and feel. And let’s make one last assumption that future classes will either do past or future decades OR revise previous students work. Rather than having to manage several installation instances, you can allow students to fire it up themselves, and then you can manage all the updating and maintenance and you’ll still have a syndication hub of all student work.

It’s important to note that students are still technically admins meaning they can export content and then import it into their specific portfolio website if they want.

Group Blog

So the last model I want to look at is the good ol’, tried and true group blog. I have to admit, group blog has never been my bag. I’ve always found it a little suppressing when there’s not a huge barrier to having students create their own site. But this semester I actually had a use case where it came in really handy so I wanted to show how I set it up. We have a faculty member who liked the idea of blogging but teaches a large lecture class called “Architecture for Non-Majors” which is a general education course generally taken during freshman year and hovers around 100 students. He didn’t want to (or felt capable of) teaching domains at that scale. That said, he wanted a public facing space where students could write about and comment on various posts about architecture.

Enter the group blog.

The challenge for this was 1.) making it easy for students to sign up and 2.) making it easy for the faculty member to manage. This gave me an opportunity to play with BuddyPress for the first time in-depth. After installing WordPress, you want to install the BuddyPress plugin, one of the most popular WP plugins out there, which focuses on creating a social network on your site. BuddyPress has several popular features that you can enable including Activity Streams and Notifications:

Screen Shot 2015-12-14 at 4.05.46 PM

Additionally, it generates several custom pages which you can activate very quickly such as Register. This makes it very easy for students to register for the site’s main page.

Screen Shot 2015-12-14 at 4.06.05 PM

You’ll also want to make sure you’ve enabled registration within your WordPress settings under Settings > General. You’ll also want to make sure you’ve set new users to be “Authors.”

Screen Shot 2015-12-14 at 4.08.43 PM

One thing I really appreciate about BuddyPress is user management. You can easily see how many users you have as well as who has not completed signup, and by that I mean they haven’t clicked the verification link from their email. This can happen for a number of reasons including Spam filters. But, anyways, it allows you at an administrator level to resend the verification email (even in bulk!).

Screen Shot 2015-12-14 at 4.14.25 PM copy

So which model is right for you? Well, of course, that really depends on what you are trying to do and I’d suggest looking at several factors: your objective, disk space capacity, class literacy, personal vs collaborative, etc. While one could argue the merit or purity of a specific method, it’s hard to deny the flexibility of the mighty little WordPress.

 

Calypso, Sandstorm, and Cyberinfrastructure

This week, WordPress announced a new WordPress.com and desktop-based version of WordPress, codenamed Calypso, which allows you to locally manage multiple self-hosted and WordPress.com hosted websites. Essentially, it brings the streamlined WordPress.com interface to all. In fact, this is my first post written entirely on Calypso.

Mike Caulfield wrote an excellent post yesterday titled Calypso is the Future of Personal Cyberinfrastructure and, while don’t think that Calypso is the exact, specific answer (or believe that was necessarily his point), he brings up several points that I do completely agree with and wanted to take time to address.

To sum up Caulfield’s thoughts that he has articulated both yesterday as well as 18 months ago, there is too large of a barrier to entry to owning your own data.

If I want to own my data, I have to run the admin interface and presentation layer on my own server. This means dealing with updates, hackers, spam, denial of service attacks, etc. It sucks, and only a sliver of the population will ever do it, no matter how nice you make cPanel.

His answer is that there needs to be a service in which you can still own your own data but you can also pay for services that streamline the taxing nature of server administration, which he has termed “Storage-Neutral Apps.”

So let’s talk about what Calypso is and what’s intriguing about it and how at OU we’ve sort of been using it since this summer.

My CTE colleage, Keegan Long-Wheeler, is a mobile enthusiast and is constantly thinking deeply about what mobile learning looks like in the classroom. Us techies who like our command line driven desktops tend to poo-poo tablet-only users but it becomes increasingly hard to ignore it’s presence when Walmart has 20+ tablets on sale for under $50 for Black Friday. I don’t think I’m going out on a limb when I say that tablets are an incredible gateway to connectivity and should not be ignored.

Last May, we had been comfortably running OU Create for about nine months when Keegan came up with a Faculty Learning Community idea called Mobile Blogging and Scholarship. Faculty who joined would be given an iPad and would spend time working through curriculum based around digital workflow, scholarship, engagement, and collaboration. Faculty would also be blogging their experience along the way. Side note: Keegan has built out the entire curriculum as well as public aggregation of the faculty blogs. Check it out.

As I was helping Keegan think through the structure for the Faculty Learning Community, we kept getting hung up on how much effort would go into setting up their site via OU Create. Do we have to spend one out of six meetings just getting setup? To get a group of around 10 faculty usually takes Keegan and I roughly an hour and half, meaning it would be a full session. Login. Pick a domain name. Introduce CPanel. Install WordPress. Create new login credentials. Explain how these are different and disconnected from your OU Create login. THEN setup up the iPad app to run self-hosted WordPress site with said credentials. For this specific faculty learning community focused around tablet app-based tools (WordPress, Canva, YouTube), owning your own space wasn’t an objective, and thus this process felt taxing at best.

So I made a suggestion for Keegan. Let’s nix OU Create for just this once and have them simply sign up for wordpress.com. In the event someone wants a full domain, we’ll be glad to show them how to migrate to OU Create so they can have the opportunity to setup multiple WordPress sites. But, for this purpose, the subject is blogging, not sites or portfolios or online presence anyhow.

And if you’ve played with the WordPress iPad app, Calypso will feel very familiar. In fact, minus a little bit more control over themes, it’s nearly identical to the end user.

So what’s the big deal with Calypso? I would say it lies more in what WordPress is saying about where they are headed rather than the product itself since we’ve had some form of Calypso for awhile. In some respects, it’s a compromise. First, it’s javascript based. I’m going to get a little bit technical so apologies. The recent history of web coders goes something like this: Everybody used to really get along. PHP worked well on servers and JS played well with the browser. The two needed each other. Until some smart kid comes around and figures out you can use JS on the server side (Node.js) and all the sudden you don’t need PHP to build server stacks. Thus, the Montagues begin to fight with the Capulets and the war between each other continues to happen to this day.

To some degree it’s like the old Microsoft versus Apple computers. It can be argued that one is newer and hipper, but it can also be argued that one is the stable workhorse. Nevertheless, folks are predicting that more and more web developers will continue to move over to the Node.js framework.

So here’s my theory. Ok, so let’s assume PHP is on its way out and you’re WordPress. Do you get rid of PHP and go with JS? Of course not. Why? Well, your application powers 25% of the web and it’s mostly running on LAMP based servers (The P stands for PHP). While it’s not impossible to running something like Node.js on a LAMP server stack, it’s certainly neither easy nor out-of-the-box to most folks on shared hosting. And WordPress is about ease of use as much as anything else.

So the next best thing you can do is compromise and build a JS based app that can run as an extension of the PHP server side application. Enter Calypso. See that wasn’t so hard to explain was it?

One of the main benefits of Node.js is speed, and I can attest that Calypso runs faster on the Desktop than WordPress.com (this should be no surprise though considering there is no brower). A second major benefit is JSON. Calypso communicates with WordPress entirely through REST API. Calypso has also been open sourced. Meaning, theorhetically, developers could write multiple desktop applications for managing multiple WordPress sites in the similar fashion that several folks have built apps like HootSuite and TweetDeck to manage Twitter locally through Twitter’s API.

So here’s where I might agree with the premise but not the assumption that Calypso is the answer to everything. Obviously, Calypso is for one application which can run on your server (WordPress). What I would rather see than a bunch of Calypsos is a better workflow to application installation. If we want folks to assume authority of their data, I agree with Caulfield that we have to push towards making it easier to do so.

At OpenEd, Grant Potter gave me an invite to Sandstorm.io, which is a new open source platform for servers that recently raised $50k+ via IndieGoGo. What I love about Sandstorm is that it throws out this whole PHP vs JS business and says “install whatever you want” but also takes a similar one-click install approach to applications, much like Installatron. This means in the same way I can easy install applications on my iPhone, I can install WordPress, Ghost, Mediawiki, Rocket Chat (an open source Slack-like tool) Wekan (an open source clone of Trell0), etc. and the applications language need not matter. Finally! An easy approach to accessing modern web apps. Sandstorm, similar to Docker, is focused on getting as many applications available to the end user, but is laser-focused on making it process of install applications easy to everyone:

With Sandstorm, the person deciding what software to deploy is not necessarily a developer or system administrator.

Source

Here’s a video I put together to show how quickly you can install these applications:

Sandstorm.io is still in Beta, but as Jim Groom told me, it doesn’t play very easily with domain mapping, so they would have to solve that issue. But the approach is unbelievabley smart. My criticism of open-source has been that, while we may have thousands of different tools to play with, most with the newest fastest slickest approach to design, no one has done the best job with making enough of them accessible to those who have no desire to use a command line interface.

Before going for breadth of apps, which can be overwhelming in something like Installatron or Docker, let’s make it really easy for the user to access these apps first.

 

Featured Image: A flickr photo shared by Kitty Terwolbeck under a Creative Commons ( BY ) license

OU Create: The (My)SQL

A couple months ago, my good friend Chris Kobza and I grabbed coffee. He is the manager of the Learning Spaces team in OU IT and can do all the stuff I wish I can. He works on his truck, fishes, and  oversees the outfitting all the classroom technology. I say this because he’s a total man’s man and I just noodle around on computers. I’m jealous, ok?!

that-escalated-quickly-anchorman-gif

But I disgress. We were having coffee and Chris tells me that he has been tapped to teach a class called “Computer-Based Info Systems,” which is out of our MIS department and a class taken by any student in the Price College of Business. Historically, this class has built databases on Microsoft Access as a class project. This led to us having a discussion about what is a meaningful project to students which is something I’m constantly thinking about in my own class. Above anything else, I want students to have enough autonomy over a project where they can make it relevant to themselves. So I started telling Chris that if I was to make a relevant database to my life, I would probably do it over something that is seemingly mundane unless you were me. Like, for instance, I’ve always wanted a campus database of where restrooms are located. While this may be a little personal, I spend a lot of time across campus and… would love to know the most effective way to optimize taking advantage of our facilities. :smiley:

Somehow this idea latched on with Chris and he ran with it. He crafted an assignment where students had to come up with three verbs in which they wanted to build databases for (Eat, Energize, Workout, Print, etc.). I showed him OU Create and he mentioned that the students could us phpMyAdmin to actually build MySQL databases. After a few days of work, he had produced this:

Screen Shot 2015-10-28 at 1.13.58 PM

phpMyAdmin, which is available to everyone through their OU Create CPanel, looks like this:

index.php#PMAURL-2-db_structure.php

As you can see, Chris has created a brand new database which has five tables: bench, eat, fish, location, and netflix. Let’s drill down into a table:

Screen Shot 2015-10-28 at 1.18.15 PM

Here’s a database table with four columns: bench_ID, bench_name, location, and shadeYN. These serve has various qualifiers for each bench in the database. Where is it located? What’s it’s name? Does it include shade? You can imagine someone querying this type of database if they were looked for a shaded park bench in the North Oval of the OU Campus.

Now the creativity comes in when we want to think about how one can easily build a front-end that actually calls the database (and is something that can be replicated by 60 students with non-technical backgrounds). Since WordPress is naturally somewhat intuitive, Chris looked for a solution native to WP. He found a plugin called ABASE for Accessing MySQL Databases, which allows you to query a MySQL database without having to code PHP using WP shortcodes. Settings look like this:

Screen Shot 2015-10-28 at 1.30.31 PM

Students then create pages for each “verb.” The bench page for instance uses HTML to generate a form and then the shortcode for querying.

And, just like that, students are creating fully fledged searchable databases with WordPress.

GO8UjiBmyD

How did it go? I watched fifteen (!) groups present websites with OU centric database calls. From shopping to studying to tutoring to printing to lodging, students tackled a great deal of areas, collected the information, and publicly disseminated their results in an interesting way.

What particularly interests me about this project is that it takes a creative approach on domains. Several OU Create projects focus around portfolios and blogging, which is great in my mind, but doesn’t necessary apply to every course. Students in Chris’ course, with varying backgrounds and majors, get a low barrier of entry into building a database. This project isn’t just all about learning how to code though. This is our community expressing themselves first as students situated in a physical place that isn’t always intuitive. To quote one student groups about page:

Our mission is to help freshmen navigate the seemingly overwhelming campus that our university calls home.

OU Create gave students an opportunity to design solution that was public facing (and didn’t require a Microsoft product). As we continue to talk to more folks across campus, I’m constantly reminded of how much domains can achieve across a wide range of disciplines to build meaningful projects.

 

Digital Learning Team Drops a WordPress Plugin

Last Friday, John Stewart, one of my team members on the CTE Digital Learning team, wrote a post which chronicled the “release” of his first WordPress plugin. The plugin ties together an instance of WordPress BadgeOS and Slack, a tool that we use frequently for internal communication.

I’ve written a little bit previously about digital badges in higher education (update: still trying to understand them…) but the best way for us to try to understand it has been to use ourselves as a badge test bed. In short, we give each other badges almost ironically for engaging in an activity we all support.

 

CTE Badge Rules

Of course, no one wants to go check a website every day to see the leaderboard, so John put his skills to work and built a way in which everyone would be notified when a badge was awarded.

On a larger, more universal scale though, I proved (for myself at least) that someone with old, rusty programming skills and a vague mission could write useful code by forking already existing projects.

What’s awesome about this from a historical perspective is that John actually registered his domain (johnastewart.org) the very first day we opened create.ou.edu. We were lucky enough to convince a few grad students and faculty to be our guinea pigs while Jim Groom and Tim Owens from Reclaim Hosting who were on campus helping us get the OU Create system up and running. Fast forward 13 months later, and the guy is one Iron Man suit away being named the Tony Stark of WordPress Skillz.

ironman

Yes, domains can be practical tools in which we can leverage to think about digital identity. They can also be tools in which we can use for development purposes to think about how we can connect the digital world around us in the fashion in which is best suited for us through language. John has created the language in which WordPress talks to Slack. How cool is that?!

What’s as equally awesome is that this gave us a reason to put up a repo in our very first Github organization. John built the plugin by forking a bbPress to Slack plugin and changing out the parts to get BadgeOS to Slack. It seemed fitting to also share his version of the plugin on our organization page, which can either be forked or downloaded as a zip file. John, this Github drinks for you!

githubdrink

Featured image is a flickr photo shared by yoppy under a Creative Commons ( BY ) license