WordPress Plugins for the Personal Web

The first thing I looked for after successfully migrating my old blog content to WordPress was some new plugins. The plugin ecosystem for WordPress has always impressed me with it’s diversity and range. The first two plugins I installed have actually changed the way I think a little bit about what it means to have a personal identity on the Web.

My first task was to find a plugin to embed my “Friend of a Friend” (FOAF) profile into my blog pages. FOAF is a Semantic Web standard for describing personal information and social networking links in a way that is open and distributed.

Facebook is a fine system, but they’ve made it clear that the information you post about yourself and your friends is their intellectual property. I don’t begrudge them this – they’ve spent millions of dollars building a system that (for the most part) just works. But the real pain comes when Yet Another Social Networking Site comes on the scene. You sign up to join in on the fun, and immediately start building your social network up again in a different silo, a different walled garden.

The designers of the FOAF standard aimed to provide an open way of defining your social network using the tools of the Semantic Web: URIs and RDF. I hope that some future Facebook or Twitter will import and export a social network graph in this form. In the mean time, we can still build our own individual applications using the FOAF vocabulary. Addmittedly a stupid name, but a very powerful idea.

The wp-rdfa plugin adds support for FOAF to WordPress. It generates a very basic FOAF profile for the blog owner based on your already-defined user profile. This is the case where the Semantic Web shines. RDF and OWL are not going to replace (X)HTML over night – they’re too complex and arcane to be readily adopted by Web designers and developers who code by hand. But Content Management Systems, for example, can be modified to generate Semantic Web representations of the data it manages. Drupal 7 is a great example of this – they implemented RDFa as a standard part of the system.

With a bit of hacking to the plugin, I now include a reference to my (rudimentary) FOAF profile in the pages of this blog. It’s nothing fancy, but I can add additional information as I go, eventually building up a description of my interests, projects, friends, etc. that is independent of Facebook and LinkedIn, and is wholly mine. As more blogging packages add support for FOAF, we can begin to build a semantic distributed social network, with blog posts and comments replacing Newsfeeds and Wall posts.

I’m working on some modifications to the wp-rdfa plugin to make it a little more flexible. The first mod makes linking to an external FOAF file possible. I wanted to be able to put any sort of information into the FOAF file that it allowed without being limited to the profile boxes in WordPress. The second mod will make sure all additional FOAF data generated by the plugin (such as comments on posts) link back to the appropriate parts of the FOAF file.

Want to be FOAF? Use the FOAF-a-matic profile generator and follow the instructions shown on how to link this profile into your blog theme – it’s no more difficult than linking in a stylesheet or JavaScript library.

Towards an Open Rubric – Part Two

In part one, I related the shambling development project to build an online generalized rubric builder/application tool, codename:”Rubricator”, at the IST Solutions Institute at Penn State from 2007-2008. The official project met an untimely demise as a result of a college reorganization. While this certainly wasn’t the first technology project to be offed by a surprise reorg, we had a more troubling problem – we had promised the tool to a colleague to help execute her research!

Carol McQuiggan, a friend of teammate Stevie Rocco is a member of Penn State’s instructional design community. Carol had provided the first rubric we marked up and used for early testing and development – a self-assessment rubric to help faculty members measure their own preparedness for online teaching. We had signed Carol on as the first pilot user of the rubric system, and she been accepted to the upcoming Sloan-C International Conference on Online Learning to present on her research.

Stevie had since moved on to a new position with Penn State Online, and I was in charge of building the new Extreme Events Lab at Penn State. Stevie and I resolved not to hang Carol out to dry. Through some long evenings, work sessions at the local Panera and the assistance of the local Adobe Flex Study Group, we managed to finish a limited version of the rubric tool. This version was enough for Carol to complete her research and presentation. Stevie and I were also able to parlay our experiences into a presentation at OpenEd 2009.

Stevie was also able to find a permanent home for the rubric tool as the Faculty Self-Assessment: Preparing for Online Teaching with Penn State Online.

In our rush to finish the “rubricator”, we unfortunately had to compromise on our initial design in a few severe ways. We were still no closer to an open model for rubrics, one independent of the application that displays them. In fact, we were left even without a clear path to release what we created as open source – it remains property of Penn State due to institutional intellectual property policies. Perhaps someone still at PSU will take up the charge.

Next: Part Three – Liberating the Rubric

IT Leaders can learn a lot from McDonald’s

While I’m sure a few IT professionals wound up working in Food Service after the dotcom bubble burst, that is not really what this post will be about. Instead, I want to share a perspective on job rotation and how it makes better leaders, and how the IT world could take a lesson from the Golden Arches.

One of the hallmarks of the McDonald’s training and staff development program is job rotation. Basically, one cannot manage a store until they know how to do all of the jobs at the facility. In discussing this with a colleague, I’ve learned that the Marine Corps does something very similar in developing command personnel.

I think this job rotation method of staff development does three very powerful things:

  1. Cross training of employees. Team members learn what everyone else does. This can be difficult with knowledge workers, who rely so heavily on conceptual skills, but some experience is invaluable in knowing what goes on in a role. This enables others to pitch in during times of stress or decreased capacity.
  2. Organizational perspective. If you don’t know what part of your organization does, you don’t know a) how they can help you succeed, or b) what you can do to help them succeed for the betterment the organization.
  3. Developing talent for succession planning. It takes a special kind of person to do each of the main IT roles: user support, system administration, and development. People usually enjoy one of these roles, but rarely all of them, depending on their personality tendencies and other internal factors.

    Most often, the entry level position in an IT organization is that of customer support or helpdesk. These positions tend of have really high turnover, as new people come in and get chewed up by the constantly-ringing phone or endless stream of support tickets. (you’re probably saying to yourself: “tell us how you really feel!”). By doing job rotation within an IT organization, you give people a break from the front lines, and can see if their talents or temperment is better suited for another part of the organization.

Finding what excites you is the difference between job satisfaction and misery, but that’s really another post in itself.

A day of software best practices

Dating back to my days as a consultant in the waning hours of the dotcom era, there were two truths I came to view as fundamental:

1) Once you get to a certain point in your development as a programmer, the actual functioning of software ceases to be a mystery. The only mystery that remains is what to do next. You can pretty much build anything you can imagine, but how do you choose *what* to build next?

2) You can only do so much as an individual developer. To create something really meaningful, you need to work with a team. The whole is *truly* greater than the some of its parts.

These two beliefs fuel my interest in the software development process – tools, methodologies, processes and practices – particularly those that deal with development teams and collaboration. I’m always on the lookout for ideas that will help me choose my next project, and help me go about building it through collaboration and teamwork with my colleagues.

To that end, when I heard about the Software Best Practices Conference, I was intrigued. The title is actually a bit misleading… it’s more of a roadshow, with different speakers scheduled to be at different cities on different days.

I went ahead and registered for the Pittsburgh conference, which takes place tomorrow. I’m going to try to summarize some of the more interesting ideas here throughout the day.

If the conference lives up to my imagination, I may see about attending some of the dates in other cities… several of the upcoming conference dates are in cities within a reasonable driving distance.

Fun with Twitter

Stevie told me about Twitter sometime last week, but things have been so hectic I haven’t had a chance to try it until tonight. It’s pretty entertaining so far.

Twitter is sort of an RSSoCS – Really Simple Stream of Consciousness Syndication. It’s basically an SMS/IM aware blog or diary, written one line at a time. I’m sending messages to my Twitter diary with a slick little Mac app called Twitterific.

I’m not sure anyone will actually care to know my innermost, Tourettesiest thoughts, but hey, you’re reading this blog aren’t you?


Adobe Flex Derby

Adobe just announced the winners of their Flex Developer Derby. There are some great entries, so check em out!

Flex has the potential to out-do Ajax as a platform for building expressive Web apps. I’ve been working pretty heavily on a Flex project for the last few weeks, and I like what I’ve seen. The entries in the Derby used the latest version of Flex (2.0), which has even better features than the previous version I’ve been working with.