Tag Archives: THATCamp

Yes! We have no THATCamp

I work extensively with universities, but I don’t really think of myself as of universities anymore. One of the things that has most stubbornly kept me connected to the academic world has been the yearly pilgrimage to RRCHNM for THATCamp. Since leaving grad school, it’s been one of my last remaining interfaces with academia where I don’t feel like a service provider, but like an equal participant (kinda the point of THATCamp).

This year, there’ll be no THATCamp at CHNM. Until today, it hadn’t dawned on me that not only am I missing my usual summer kick-off, but I’m also missing my annual reminder that I used to be a geek-leaning academic rather than an academic-leaning geek.

On that note, an only slightly irrelevant clip:

New WP plugin: WP DPLA

Last week, I attended THATCamp CHNM, and I entered (and somehow managed to win) the Maker Challenge with a WP plugin that pulls related items from the DPLA API and displays them on your posts. I’ve just added the plugin to the wordpress.org repository: http://wordpress.org/plugins/wp-dpla.

Read more about the plugin at my THATCamp post: http://chnm2013.thatcamp.org/06/08/maker-challenge-wordpress-plugin-for-displaying-related-items-from-the-dpla/

Introducing Participad: Realtime collaboration for WordPress

Today I’m releasing the first public beta of a new WordPress plugin: Participad. Participad integrates an Etherpad Lite install into your WordPress installation, enabling realtime collaboration on the WordPress Dashboard or the front end of your WP site. If you’d like to download Participad, learn more about its features, or play with a demo site, check out participad.org. In the rest of this post, I’ll give some of the technical background about Participad, and some explanation of why it was built.

Participad was developed as part of some work I’m doing for thatcamp.org. If you’ve even been to a THATCamp unconference, you know that the first thing that generally happens in a session is that someone starts a Google Doc for collaborative notes, and tweets the link to the #thatcamp Twitter stream. In one sense, this is great – it’s very much in the spirit of THATCamp to have shared, crowdsourced, online notes for each session. But Google Docs, for all its coolness, is not the ideal tool for the job. For one thing, Google Docs are tied to a user’s account, making it very difficult to assemble a persistent, searchable archive of all THATCamp notes. There’s also the concern of storing user-generated THATCamp content on Google, which is alternatively benificent and malevolent, depending on the swings of the market.

Etherpad provides an ideal solution to the Google Docs conundrum. It’s a free software project that can be locally hosted, giving organizations and admins full control over the software and the data within. Etherpad has recently been rewritten as Etherpad Lite, an implementation in Node.js that is far more lightweight and easy to install than the original Etherpad, and, notably, has a rich REST API for integration with external software. This is what makes Participad possible: Participad uses iframes to display the Etherpad interface inside of WordPress, and then uses the EPL API to sync content between Etherpad Lite pads and the associated WordPress posts.

Participad is shipping today with three “modules”, each of which is a separate implementation of Etherpad Lite in your WP installation:

  • Notepads are the solution to the THATCamp/Google Docs problem described above. Notepads are a WordPress custom post type that can be created and edited from the front end of the blog by any logged-in user. Participad comes with a widget and a shortcode for displaying the Create A Notepad interface. And Participad redirects the Edit link seen on the front end of WP blog posts, so that it leads to a front-end editing interface. Content is synced back to the WP database every two minutes, or whenever a user clicks away from the Edit interface. In the spirit of THATCamp, Notepads can be “linked” to WordPress posts and pages, and a Participad widget can be placed in a sidebar that will display a list of a post’s Notepads. And because Notepads are just a species of WordPress posts, you can access lists of Notepads via an archive page.
  • Frontend is the Participad module that allows you to enable front-end, Etherpad editing for *any* WordPress content type. Turn it on, and the Edit link for any post will lead to an Etherpad interface, embedded in your theme where your static content would normally appear. Participad has a permissions schema that works with your WordPress installation, ensuring that only the users with the proper rights to edit a given piece of content through WP are able to edit that content through Participad as well.
  • Dashboard enables Etherpad editing throughout the Dashboard of your WP installation. All Edit screens – posts, pages, and other posts types – will have their WP editors (the Visual and HTML tabs) swapped out with a Participad tab. Autosave works just like it does in WP, and content is synced back to the WordPress database when you click Publish or Update.

I have a feeling that these three modules will cover most of the potential uses of Etherpad in WP, but if you have an unusual need, Participad is designed to be extensible. Build your own module by extending the Participad_Module class, in your own WordPress plugin.

Full instructions on setting up Participad can be found at http://participad.org/faqs/. Please note that Participad requires a separate Etherpad Lite installation, and for the moment, that installation must be accesible on the same domain as your WP install.

If you’d like to follow development, contribute fixes or improvements, or suggest future features, please visit Participad’s development home at github.com/boonebgorges/participad.

2011

A bunch of stuff happened in 2011.

Like 2010, 2011 was a year of transitions for me: in my relationship with academia, in the way I earn a living, in the way I present myself as a citizen-builder of the internet. Being a parent is the biggest transition of all, forcing me to put into perspective the ways I spend my energy and the ways in which I define myself and what has value to me. (This transition has been overwhelmingly a Good Thing.) Continuing to strive for the right balance in these areas will, I’m sure, be a hallmark of my 2012. (Thankfully, I have no plans to have a child or get married in 2012. A man needs a year off from major life events!)

Happy new year!

Dude ranchin’ at THATCamp

This year I attended my third THATCamp (at CHNM, anyway – I’ve been to a few others around the country). The first time I went, in 2009, I’d just started working with Matt Gold on the CUNY Academic Commons. I didn’t know many people in the digital humanities community. I was a graduate student in philosophy, accustomed to conferences that were philosophy-ish and graduate-student-esque. THATCamp stood in stark contrast to this background, and as a result was very new and exciting. An event where academics would get together to talk about things that were actually interesting, independently motivated, and new – the very idea of it! I couldn’t help but feel intoxicated by it all.

Fast forward two years. I’m no longer a graduate student. I’m no longer a full-time employee of a university. I’m no longer a stranger to digital humanities and the DH community. And I’m no longer a n00b. Unsurprisingly, this perspective changes the way I experience THATCamp.

For one thing, the “more hack, less yak” theme which prevails at THATCamp does not have revelatory ring it once had. I build stuff for a living. All I ever do is hack. As a result, I actually look forward to the occasional yak. I recognize that the “less yak” mantra arises out of frustration about the futility of “mere” talk, and represents a railing against the tendency of academic activity to consist of little more than such talk. In this sense, I should probably be grateful that I’m no longer in a career where I feel trapped under a pile of words. And, in fact, I do feel pretty happy about it, especially after all these years. But my recent career changes do mean that I don’t get the same gee-whiz-I’m-so-excited-we’re-actually-doing-something rush out of THATCamp that many others (justifiably) do.

On a related note, I’m less excited about geekery these days than I was before I was a professional geek. (I’m being intentionally narrow in my use of the word ‘geek’ to mean ‘someone who codes’. The word isn’t particularly important; swap it out for ‘coder’ if you want.) THATCamp can be like a dude ranch. The city slickers come to the country for the weekend, ride a horse, throw a lasso, eat some beans-n-bacon, and say “Gee, isn’t the country life great?” What the dudes don’t realize is that being a rancher means doing stuff like shoveling a lot of cow shit. In the same way, coming to THATCamp and learning a bit about Greasemonkey scripts or the Google Maps API or WordPress themes can be a rush – after all, those things are all really cool. But it’s also a kind of cartoonish picture of what it’s like to write code all day long, which is really more about shoveling the cow shit of bug tickets than about whizbang jQuery effects and singing campfire tunes.

Of course, I’m under no illusion that THATCamp sessions are meant to be introductions to the Real Cowboy Life, and I’m certain that the attendees of such sessions aren’t under any such illusions either. And I should be clear that I don’t want to be a spoilsport. For the most part, I think it’s genuinely good for people to learn how to write code (where writing code should be understood as standing in for a whole bunch of related phenomena). For one thing, it’s undoubtably good for people to engage critically with the tools that mediate so much of our lives. Moreover, people like Patrick Murray-John have been making some interesting, if tentative, arguments for the ways in which the modes of thinking exemplified by coding might interesect with, and augment, the modes typified by traditional academic work. Plus, learning to code is just plain fun. So it’s great that people who wouldn’t otherwise have the chance to learn something about code have THATCamp as an outlet. I’m just no longer one of those people, I guess.

I also would probably enjoy THATCamp more if I broke outside of my own comfort zone. During this year’s event, I skipped a couple sessions to write Anthologize code with a few members of the One Week | One Tool gang. It was a blast, and a great way to spend time with some friends who are otherwise scattered throughout the country. Yet, I might have gotten more out of the event if I’d attended more sessions, especially sessions whose subjects were a bit outside of my normal area of specialization. But at an event like THATCamp Prime, which has the usual round-up of DH A-listers talking about tried-and-true topics, it becomes increasingly difficult to find those truly new conversations.

I don’t really mean these observations to be wholesale critiques of the THATCamp setup. Many of the reactions that I saw to this year’s event – blog posts, tweets, personal conversations, and the excited looks on people’s faces – suggested that the newcomers felt the same sense of giddiness that characterized my own first THATCamp experience. But I do think it’s interesting how my giddiness (or lack thereof) is so hugely shaped by changes in my own standing over the years. Maybe next year I’ll make more of a concentrated effort to carve out a spot at THATCamp for folks with my particular set of interests and strengths.

Dropout

I’m a grad school dropout.

A little over a year ago, I left my full-time instructional technolgy gig at Queens College. At the time, I cited my languishing thesis as one of my reasons for leaving. Through the summer and fall of 2010, I put in an honest effort toward my dissertation. It was certainly my most sustained and serious effort since finishing coursework a couple years earier. But I couldn’t figure out a way to enjoy it. I found myself far more productive in other areas of my life, which had the dual effect of taking the joy out of my academic work, and also demonstrating that I no longer had any career-related reasons to finish the PhD.

So, a few months ago, I counted my losses and withdrew from the program. I use the word ‘losses’ with some trepidation, as I don’t feel like I lost much, if anything. In the philosophy program, I learned a lot about philosophy, got some nice teaching experience, and met some good friends. And being in graduate school had a huge number of indirect professional and personal benefits for me. Except for the academic work, I enjoyed being a grad student. If, in quitting, I’m losing anything, I’m losing face. But, to be perfectly honest, if there’s anyone who thinks less of me because I didn’t finish my PhD, that person is more than welcome to kiss my ass.

What excites me most about formally giving up on the PhD is leaving behind the guilt associated with the unfinished dissertation. Many times in the past couple of years (and increasingly so, as time has gone on) I’ve been approached with an offer or an idea about some new project – writing, coding, eating, etc. Time and time again, I have turned down these kinds of projects, because I’d end up feeling overwhelmed by the guilt of working on something other than my dissertation. To tell the truth, I had even stopped reading books for pleasure, because I felt so bad about it. I’m looking forward to feeling more freedom in this respect. (Also, the baby’s coming soon!)

I’m not writing this post because I’m looking for any validation of the decision; I feel good about it already. I’m also not really interested in starting a large discussion about the value of graduate school or a graduate degree; my decisions are specific to my situation. I mainly just want to get it off my chest, so that I don’t have to have the inevitably awkward conversations about it. To wit: I was chatting with some academic friends at THATCamp and I told the group that I’d dropped out, which they took as a cue to rationalize and support my decision. It was, of course, very well-intentioned. But from a certain point of view it suggested pity, which I neither need nor want. I may be a grad school dropout, but I’m a happy one!

A distributed, multi-client courseware

At yesterday’s THATCamp I attended a session, facilitated by Steve Ramsay, entitled “All Courseware Sucks”. You can read the blog post that served as the inspiration for the session at the THATCamp blog. Steve started the session by framing the issue in a way that ended up being quite helpful: he had us list the features of courseware that we’d used, and then to talk about whether they were all crucial. The problem is that almost all of them were crucial to at least someone in the room. Moreover, some of the items that certain individuals found the most useful (say, a gradebook where students could track their progress) seemed the most expendable to others. Listening to that discussion, I thought to myself: This must be what happens in Blackboard focus groups. Gödel’s Second Theorem of LMSes: Any learning management system with a vocabulary rich enough to do interesting work can be shown to be bloatware.

If it’s not the functionality of courseware that we dislike, then, what is it? Well, the basic complaint seems to be that the interface is terrible. And not just terrible in an aesthetic way, though certainly most courseware is absolutely devoid of whimsy. The deeper problem is that software design decisions about how courseware conceives of a course – its hierarchy, its ontology, the vocabulary used to describe its objects, its workflow, its presentation – constrain the instructional design decisions that the professor can make about how the course will be taught.

How do you design a courseware interface that jibes with the aesthetic and instructional predilictions of instructors from math, biology, French Lit, and everywhere between? Answer: You don’t. There are dozens and dozens of well-developed, general purpose content management systems out there. Each has an interface that its users are comfortable with. Why not take advantage of this fact? If students sometimes prefer Blackboard because at least with Bb they know what they’re getting into, why not just let them use whatever they’re already comfortable with?

The idea in a nutshell: Abstract the content from the platform, so that individual students and professors can use whatever platform they’d like as an interface. Existing CMSes like Blackboard, Moodle, WordPress, Drupal, Joomla, and so forth become clients that sync with a central data repository hosted by the school or by a third party.

There are about a trillion details that need to be filled in to make this viable. But here’s a very rough-n-ready explanation of how it might work in a particular case. Let’s imagine that Jack is the professor, using Drupal as client software, and Sally is the student, using WordPress as her preferred client. Jack is going to assign a blog post, and Sally’s going to complete it.

  1. Jack logs into his Drupal installation. This could be on his own server or on a centralized installation hosted by his school. On this installation there will be a module that creates a number of new content types in addition to the default Story and Page. Let’s imagine the content type is called Assignment, which contains fields for content, subject, due date, and whatever other metadata you might like.
  2. Jack writes the assignment and saves it. It saves to the Drupal database as a native Drupal item.
  3. After the save, a hook is triggered by a Bridge module. Bridges are client-specific translators that send and fetch information to and from the central repository. The Bridge module translates the Drupal content type into an XML or JSON document that is formatted according to the agreed-upon standard data format for Assignments.
  4. The Bridge module sends the document to the central Server. The Server can be connected to the student information and registrar systems in much the way that Blackboard is. The Server recognizes Jack’s signature on the document, and furthermore knows that the file is associated with Jack’s particular course. The document is translated into a Server database object and saved, keyed by Jack’s user id, the course id, etc. The Server could be set up to send out email notifications to students at this time, alerting them of a new assignment.
  5. The next time Sally logs into her WordPress installation, her WP Bridge plugin (another piece of translating software, this one WP-specific) pings the Server. The Server knows that Sally is in Jack’s class, so it looks through the database to see if any new assignments have been posted in that class since Sally last logged in. It finds the blog assignment that Jack posted, translates it to a JSON or XML doc, and sends it to Sally’s WordPress installation. The Bridge then parses the document and saves it as a WordPress-native item in the database of Sally’s WordPress installation, perhaps as an instance of a custom post type or something like that.
  6. Sally visits the course page in her WP installation. This could be an admin panel on the Dashboard, or a front-end page. It shows the new assignment, to write a new blog post.
  7. Sally writes a new blog post using the native blog functionality of WP (different content types that aren’t so WP-friendly would need a bit of interface or theme work. Discussion forums, for instance, could easily be stored as custom post types and skinned to look like a traditional forum thread). She might indicate, using a certain tag or category or postmeta checkbox, that this blog post belongs to a particular class, or is a response to a particular assignment. The post is saved to the WP database, and, as above, the Bridge plugin then kicks in, translates the post, and sends it back to the Server, where the process will repeat the next time that Jack logs into his installation.

As I’m writing this, I realize that it seems really simple and obvious, and I’m sure that there are a hundred reasons why something like this would be hard to actually implement. But it’s worth exploration, as this model enjoys the huge advantage of letting the user choose whichever of a number of interfaces suits their fancy.

A few complications to mull over, off the top of my head:

  • Certain content is likely not to translate very well between platforms, especially content whose visual presentation is central to its effect. In those instances, the content could be rendered using the client software of the author and linked to in addition to/instead of being transcoded.
  • File storage. Where do you store images, zip files, etc? On the author’s client installation, on the Server, or both?
  • Security. How do you ensure that only Jack is able to download assignments for his course? What prot

Digital Literacy Across the Curriculum: Is it desirable? Is it possible?

I’ll be attending THATCamp Columbus next month. A few days ago I blogged my session topic on the THATCamp site. I’ve reproduced it below for posterity’s sake.


I spent a few years as a graduate fellow in a Writing Across the Curriculum program, and in my current full-time position as an instructional technologist I continue to collaborate frequently with WAC. In the time I’ve spent in close contact with the WAC program, I’ve come to find great value in some of the principles that lie at its core:

  1. The ability to write is of central importance to nearly all fields of study
  2. The various kinds of writing that are valuable in different disciplines can only be taught by practitioners of those diciplines
  3. There is a close connection between the way one writes and the way one thinks, such that explicit focus on writing techniques can result in increased academic clarity in general
  4. These considerations demonstrate that the position of writing is too integral to academic study for the teaching of writing to be the responsibility of composition programs and English departments alone

WAC programs are then organized in such a way as to provide tangible support for the teaching of writing, in the form of lesson plans, faculty development, pedagogical resources, and so on. And WAC’s mission is explicitly pan-departmental: one of the central tenets of the WAC philosophy is that students will only really learn to write if writing is meaningfully integrated throughout the entire curriculum.

I want to take seriously the idea that the WAC point of view can and should be applied, more or less wholesale, to the teaching of digital literacy.

There are a lot of problems to be worked out. First, I’d like to explore the extent to which the argument behind WAC can be adapted for digital literacy. Different disciplines require different kinds of engagement with the written word; likewise, we should be prepared to enumerate the different ways that the disciplines will require digital fluency (ranging from software know-how to programming skills to content filtering to multimedia composition to comfort with networks). I’d also like to flesh out the kinds of concrete support systems that would be required to make a digital analog to WAC function, be it faculty development or technology-intensive sections or whatever. And there will be the problem of politics: how do you argue to reluctant faculty and administrators that digital literacy education is as important as writing education? Here too I hope that we can look to WAC for strategies.

Empowering through openness – my application for the OpenEd 2009 travel scholarship

This blog post is my application for one of the travel scholarships to OpenEd 2009. Here’s how the prompt goes:

  1. What you would “bring” to the conference? What can you contribute, be it a willingness to volunteer to moderate a session, some special expertise or project, an already accepted proposal…
  2. What you see as the most critical issue facing you in your efforts around Open Education, and how you think the conference can help you address it?

I approach the subject of Open Education from two different angles. The first angle is a humanist one. I’m trained as an academic: I’m doing my doctoral studies in philosophy at the CUNY Graduate Center. This academic training fuels an interest in education, and especially the way that education might (or must) move toward openness as time passes. The second angle is a technical one. I’m (in the process of becoming) a coder and developer of web applications. Working primarily with open source applications like Wordpress, Mediawiki and Drupal, I’m developing an increasing sense of the user-empowering potential of open source software. These two angles on openness converge in my career in various ways, both in my day job as an instructional technologist at Queens College and as a developer for the CUNY Academic Commons.

As such, I think I could bring to OpenEd 2009 an interesting perspective on the nature of openness. As a user of – and contributor to – open source products, I can speak confidently to the community benefits that emerge when powerful tools are developed in an open way. And, more specifically, as someone who has used these tools toward both educational purposes (for example, in support of blogging initiatives both in my classes and in the classes of others) as well as in more broadly scholarly contexts (like the community of collaborative research that the CUNY Academic Commons is designed to foster), I have a concrete sense of the way in which openness in one realm – the realm of software – can foster and feed another kind of openness in the educational realm.

In service of these (somewhat abstract!) goals, I’m willing to participate in as many concrete ways as possible at the conference. I’m an active and energetic Twitter backchannel user (see, for example, the Twitter conversations I took part in at this year’s THATCamp, as well as my previous musings on the role of Twitter at conferences). In discussions both on and off Twitter, I can offer up experience both theoretical (I am a philosopher, after all) and practical (I’m also a geek). I’d also be happy to moderate a panel, if I were asked to do so.

As for what the conference will do for me, I envision that my attendance at OpenEd 2009 would help me to further bridge the gap between the practical and the technical that characterizes so many of the things I do in my career. As an instructional technologist, I think it can be easy to think of yourself as a purveyor and teacher of tools, tools that merely replicate the kinds of learning that have always happened in classrooms. This, after all, is often the path of least resistance. The challenge, I believe, is empower faculty members (and, ultimately, the students themselves) not only to use technology but to understand the extent to which it shapes the world and, by extension, ourselves; only by appreciating this can an individual engage with the technology in such a way that it expands (rather than controls) his or her humanity. Openness is the linchpin: students cannot make the connection between what happens in a class and what happens in the rest of their lives unless the window between the two is open. So I guess my goal is to see what kinds of practical approaches are being taken by people in positions similar to mine, in order to help faculty and students understand how they can empower themselves by embracing openness.