Home > Uncategorized > Web Workflows and Public Embarrassment

Web Workflows and Public Embarrassment

January 5th, 2010

As I’ve mentioned before, I’m one of the organizers of a set of undergraduate cross-country open source capstone projects, in which students from several universities work together in distributed teams for a term for course credit. Here’s what I presently have to do for each student:

  1. Ask her to create a WordPress ID and send it to me (along with the email address it’s registered to).
  2. Add her as an author on the UCOSP blog. (This has to be done by email address, rather than by user ID.)
  3. Invite her to join our Google Group. About 10-15% of invitations are eaten by spam filters and/or trip over a registration problem that seems to be related to GMail cookies.
  4. Update the Google Map showing where everyone’s from.
  5. Update the spreadsheet I use to keep track of her personal information. (Before you ask, no, this can’t be a Google Doc because of privacy concerns.)
  6. Update the HTML table showing the cross-product of schools and projects.
  7. Once she post a short bio to the UCOSP blog, link her name to that.
  8. Introduce her to her project’s mentor by email.

Time per student: 5-10 minutes, if nothing goes wrong, and if I don’t forget any steps and have to backtrack. (The worst case is if I update the spreadsheet on one machine, forget to check it in, update it with another students’ info on another, do check it in, and then have to merge. Bleah.)

Of course, I do have options here. I could probably, with some work, write a Python script that would use web APIs, COM integration, and screen scraping to do all or most of this for me. Or I could build my own mini-Melange on top of some content management system. Or I could try one of the current generation of browser-friendly record-and-playback tools. However, my gut instinct is that all of those will actually eat more time than continuing to do things by hand.

What I really want, of course, is something that makes this kind of thing as easy to set up and run as “record macro” and “run macro” in [name of text editor goes here]. It would have to understand AJAX (at least as much AJAX as Google Maps uses, which is a fair bit), and also be able to talk to other desktop apps (not just drive a browser). I’m sure that one day it’ll exist as an Elisp package; until then, I’ll just keep switching tabs in my browser.

Uncategorized

  1. Stephen van Egmond
    January 5th, 2010 at 22:39 | #1

    Have a look at the web application testing framework named Selenium. You can teach it by example how to carry out your task. These “tests” can be converted into Python, and of course parametrized $email, $course_name, etc.

    When you run the Python script, firefox fires up, and blows through your process as quick as can go. So, all the Ajaxy stuff works.

  2. Joe
    January 6th, 2010 at 13:33 | #2

    You can create a Google form which sends the new student’s name, WordPress ID, email, location, and school to a Google spreadsheet they cannot see. You can have spreadsheet setup to email you when it changes. If you combine that with a cron job that uses the Google spread sheet API to watch for changes you should able to automate steps 1,4,5, and 6. Maybe even 7 if you parse the RSS feed from UCOSP blog in the same cron job mentioned above.

    From the manual standpoint you would have to add the student to the google group (you can skip the invite and just add directly), then add the student to the UCOSP blog and link her up with her mentor. I searched but didn’t find any clean way to automate WordPress or Google groups admin tasks.

Comments are closed.