WPMu Development for Education

Making WPMU work in education, one hack at a time

Archive for the 'PHP' Category

NetBeans for PHP development

Posted by Randy on 27th October 2009

I am finding the open source NetBeans development tool really great for my PHP programming work.  It really saves time by catching the simple typo and syntax mistakes I commonly make.  Please to code suggestions and other elements are helpful too.  Part of what makes it so great is the connection that the project developers have with the programming community — as an example of that read this post. It is exactly this type of close connection to a user community that makes open source so powerful.

NetBeans for PHP : weblog

I spent talking about PHP development in NetBeans almost whole session. After the session there was a long discussion (more than 1 hour) and some people complained about formatting…As a result I have decided to look at this and to try to fix as many bugs as possible. Because there is not much time for NetBeans 6.8, I would like to ask you for help.

NetBeans 6.8 Beta Coming; Does Oracle Care? | NetBeans Zone

PHP
* PHP 5.3 support including syntax highlighting, code completion, code folding, and navigator
* Symfony Framework support
* FTP/SFTP improvements

Post to Twitter

Related Posts

Posted in Open Source, PHP, PLE, Technology, Web, blog, project | Comments Off

PHP frameworks – CodeIgniter

Posted by Randy on 14th October 2009

Making a commitment to a PHP framework is like committing to exercise everyday — you know you should do it, but tomorrow always seems like a good time to start — and of course tomorrow never comes.  I’ve been debating between CodeIgniter and Symphony for a couple of months.  And not making up your mind is another good way to put off actually doing something.  I attended the PHP CodeWorks conference last week and the CodeIgniter session was pretty good.  The first point Ed Finkler made was that it really doesn’t matter what you pick — get whatever works for you.  CodeIgniter does have a successful commercial company, EllisLab (makers of expression engine CMS) behind it, plus an active developer community.  I believe the upcoming new version of ExpressionEngine is also being built on top of CodeIgniter.

To help push me over the edge, Packt Publishing has a CodeIgniter book out.  I know I’m old fashioned, but I find the structured presentation contained in a well laid out book very helpful when learning something new.  And so far this book is well laid out.  It isn’t super code heavy, which I find can slow things down.  If the book provides pages of code examples, which you need to re-create in order to really understand the examples, and things don’t work out well due to typos or operator error, you can get lost easily.  The book has short, simple examples to illustrate the points — perfect for testing and experimenting.  And short enough to find an error when they come up.  So I’m working my way through the book.  This time I’m really going to start!

So after all this, why use a framework?  In the CodeIgniter book, the author keeps making the point that you write less code.  But that assumes you don’t do anything to speed development of a web site (like use include files for page headers) which I expect most developers already do.  One real advantage is for a team of programmers, as the framework helps structure a standard way of building your web applications.  And CodeIgniter is nice in that it has a structure, but isn’t so restrictive as to force a whole new way of working — making it easier to adapt this to existing database structures or web projects.  And even as an individual it helps enforce a best practices approach — i.e.  escaping user input, using object orientated techniques and  keeping presentation, application and database layers separate.

CodeIgniter for Rapid PHP Application Development

This book explains how to work with CodeIgniter in a clear logical way. It is not a detailed guide to the syntax of CodeIgniter, but makes an ideal complement to the existing online CodeIgniter user guide, helping you grasp the bigger picture and bringing together many ideas to get your application development started as smoothly as possible.

CodeWorks 2009 — Touring PHP conference San Francisco, Los Angeles, Dallas, Atlanta, Miami, Washingon/Baltimore, New York

Welcome! CodeWorks 2009 is a series of two-day conferences for PHP developers and IT managers organized and run by the publishers of php|architect Magazine.

Related Posts

Posted in PHP, PLE, Technology, Web, application, cms, conference | Comments Off

What role for social media in higher ed?

Posted by Randy on 12th October 2009

OK, so we’re all trying to figure out what, if anything, social media is useful for — other than having fun and wasting time with friends and family.   The New Media Consortium has put together a site reviewing what they’ve been experimenting with.  We have a group here that is viewing a webinar on October 27 on Effective Use of Social Media for Student recruitment ( if you’re in New Haven and want to join us just let me know.)  I’ve had some success with Twitter in advancing business interests, but nothing I’m ready to wrap an official company strategy around.  I really like LinkedIn (especially for helping students/alumni with career networking), but it seems like Facebook gets all the attention.  And don’t forget blogs — not quite as sexy as Twitter or Facebook perhaps, but still finding a place in college communication efforts.  Talking with peers, experimenting, and exploring — that’s a type of progress, right?

M.I.T. Taking Student Blogs to Nth Degree

Dozens of colleges — including Amherst, Bates, Carleton, Colby, Vassar, Wellesley and Yale — are embracing student blogs on their Web sites, seeing them as a powerful marketing tool for high school students

NMC and Social Media | nmc

n our research work for the Horizon Report, the NMC has been tracking Social Networking/Social Computing since 2005 and we have made extensive use of social bookmarking, photosharing, and Web 2.0 networking tools for our events.

NMC 2009 Summer Conference Social Media Recap | nmc

However I wanted to record, primarily for my own sake, while fresh in my mind a recap of the social media tools we used (and other related factors) for our conference.

Listen and Watch Closely: The Effective Use of Social Media for Student Recruitment WEBCAST « New York Times Knowledge Network

Educational institutions are looking for the best formula to effectively deal with the plethora of social media available. In fact, no one has drawn a bead on this moving target– and new platforms constantly crowd into the space.

Related Posts

Posted in Learn, LinkedIn, PHP, PLE, Twitter, Web, Web 2.0, conference, education, facebook, new media, photo, social networking, student, students | Comments Off

Google Wave sweeping out course-management systems?

Posted by Randy on 12th October 2009

If Google Wave lives up to even half of the hype surrounding its closed beta release it still will be an awesome product.  Some are raising the notion that is could bring a number of web 2.0 concepts together and become a new tool for personal learning systems — and replacing the traditional course management system.  But then again moving things to the Google cloud is not without its concerns, as recent outages highlight.  And it may be that Wave doesn’t live up to its hype — time will tell.

The Wired Campus – Could Google Wave Replace Course-Management Systems? – The Chronicle of Higher Education

Google argues that its new Google Wave system could replace e-mail by blending instant messaging, wikis, and image and document sharing into one seamless communication interface. But some college professors and administrators are more excited about Wave’s potential to be a course-management-system killer.

Amazon Web Services Gets DDoS Attack and the Client Waits – ReadWriteEnterprise

An apparent DDoS attack on Amazon Web Services (AWS) over the weekend left a web-hosting code service down for about 20 hours before the problem became resolved.

Geeks Try Google Wave, Have Mixed Feelings

Google Wave is one of the most-hyped new product launches in recent memory, but now that thousands of lucky people are getting to try it out – early reactions are mixed. If the hard-core geeks aren’t sure if they like it, that could spell serious trouble for mainstream adoption.

First impressions of Google Wave ~ Stephen’s Web ~ by Stephen Downes

So, for now, it’s just a glorified content editing tool – and as that, not a very good one. Hoping for better down the line. This, meanwhile, is Liam Green-Hughes’s response: “Hype aside, as this is often no more than a distraction, my first impression is that this potentially is a very useful tool. I am looking forward to the system being opened up so anybody can register on it and use it, then being able to try it out on an actual project with many other people.”

Related Posts

Posted in Learn, PHP, PLE, Web, Web 2.0, blog, campus, education, higher education, management, systems | Comments Off

Dramatic new Bates College Website — powered by WordPress

Posted by Randy on 7th October 2009

I have been following the Bates Online Media blog for about a year.  They have been blogging as they’ve worked through a pretty dramatic redesign of the college web site.  The fact that is built on WordPress is probably the least important feature (but the WordPress geek in me does thrill just a bit at the news.)  With my eldest now a freshman at Springfield college, we all spent a lot of time as consumers on college sites — and from the user perspective the Bates site is very smartly laid out, and is easy to use.  Nice to see such a great end-result after a careful and productive planning process.

Bates College goes beyond the usual homepage redesign with Home 4 running on WordPress | collegewebeditor.com

We have been managing the site in WordPress since the beginning, first as a proof-of-concept with student assistants at WordPress.com, then as a working prototype with WP 2.8 software on an external hosting service, and now hosted on a campus Web server…The slideshows are handled with NextGenGallery, with the overlays via Thickbox and jquery. We’re using a number of plugins to enable shortcodes for editors along with WP-Table Reloaded for organization of tabular data originating in DabbleDB. We had over 30,000 views on launch day — about double the load of an average day — all served by WP-SuperCache.

Bates College

Bates Views is a site of thoughtful text, images, audio and video. Click a category below to expand

One Bates. Many Journeys. « Bates Online Media

I’m sharing the current draft of a vision paper on ways such an education might be expanded through online collaboration.

It’s 12-pages long, so here is a PDF version (2.1 MB download). It’s an evolving draft, so please send comments and suggestions for improvements.

Related Posts

Posted in Data, Design, PHP, PLE, Web, WordPress, audio, blog, blogging, campus, education, planning, plugin, plugins, student, video | Comments Off

Jailbreaking WordPress with Web hooks

Posted by Joss Winn on 6th October 2009

As is often the case, I struggle at first glance to see the full implications of a new development in technology, which is why I so often rely on others to kick me up the arse before I get it.1

Where I ramble about WordPress as a learning tool for the web…

I first read about web hooks while looking at WordPress, XMPP and FriendFeed’s SUP and then again when writing about PubSubHubbub. Since then, Dave Winer’s RSSCloud has come along, too, so there’s now plenty of healthy competition in the world of real time web and WordPress is, predictably, a mainstream testing ground for all of it. Before I go on to clarify my understanding of the implications of web hooks+WordPress, I should note that my main interest here is not web hooks nor specifically the real time web, which is interesting but realistically, not something I’m going to pursue with fervour. My main interest is that WordPress is an interesting and opportunistic technology platform for users, administrators and developers, alike. Whoever you are, if you want to understand how the web works and how innovations become mainstream, WordPress provides a decent space for exercising that interest. I find it increasingly irritating to explain WordPress in terms of ‘blogging’. I’ve very little interest in WordPress as a blog. I tend to treat WordPress as I did Linux, ten years ago. Learning about GNU/Linux is a fascinating, addictive and engaging way to learn about Operating Systems and the role of server technology in the world we live in. Similarly, I have found that learning about WordPress and, perhaps more significantly, the ecosystem of plugins and themes2 is instructive in learning about the technologies of the web. I encourage anyone with an interest, to sign up to a cheap shared host such as Dreamhost, and use their one-click WordPress offering to set up your playground for learning about the web. The cost of a domain name and self-hosting WordPress need not exceed $9 or £7/month.3

… and back to web hooks

Within about 15 minutes of Tony tweeting about HookPress, I had watched the video, installed the plugin and sent a realtime tweet using web hooks from WordPress.

It’s pretty easy to get to grips with and if a repository of web hook scripts develops, even the non-programmers like me could make greater use of what web hooks offer.

Web hooks are user-defined callbacks over HTTP. They’re intended to, in a sense, “jailbreak” our web applications to become more extensible, customizable, and ultimately more useful. Conceptually, web applications only have a request-based “input” mechanism: web APIs. They lack an event-based output mechanism, and this is the role of web hooks. People talk about Unix pipes for the web, but they forget: pipes are based on standard input and standard output. Feeds are not a sufficient form of output for this, which is partly why Yahoo Pipes was not the game changer some people expected. Instead, we need adoption of a simple, real-time, event-driven mechanism, and web hooks seem to be the answer. Web hooks are bringing a new level of event-based programming to the web.

I think the use of the term ‘jailbreak’ is useful in understanding what HookPress brings to the WordPress ecosystem. WordPress is an application written in PHP and if you wish to develop a plugin or theme for WordPress you are required to use the PHP programming language. No bad thing but the HookPress plugin ‘jailbreaks’ the requirement to work with WordPress in PHP by turning WordPress’ hooks (‘actions’ and ‘filters’) into web hooks.

WordPress actions and filters, are basically inbuilt features that allow developers to ‘hook’ into WordPress with their plugins and themes. Here’s the official definition:

Hooks are provided by WordPress to allow your plugin to ‘hook into’ the rest of WordPress; that is, to call functions in your plugin at specific times, and thereby set your plugin in motion. There are two kinds of hooks:

  1. Actions: Actions are the hooks that the WordPress core launches at specific points during execution, or when specific events occur. Your plugin can specify that one or more of its PHP functions are executed at these points, using the Action API.
  2. Filters: Filters are the hooks that WordPress launches to modify text of various types before adding it to the database or sending it to the browser screen. Your plugin can specify that one or more of its PHP functions is executed to modify specific types of text at these times, using the Filter API.

So, if I understand all this correctly, what HookPress does is turn WordPress hooks into web hooks which post the output of the executed actions or filters to scripts written in other languages such as Python, Perl, Ruby and Javascript (they can be written in PHP, too) hosted elsewhere on the web.   In the example given in the HookPress video, the WordPress output of the action, ‘publish_post‘, along with two variables ‘post_title’ and ‘post_url’, was posted to a script hosted on scriptlets.org,  which performs the event of sending a tweet which includes the title and URL of the WordPress post that has just been published. All this happens as fast as the component parts of the web allows, i.e. in ‘real time’.

In other words, what is happening is that WordPress is posting data to a URL, where lies a script, which takes that data and creates an event which notifies another application. Because the scripts can be hosted elsewhere, on large cloud platforms such as Google’s AppEngine, the burden of processing events can be passed off to somewhere else. I see now, why web hooks are likened to Unix pipes, in that the “output of each process feeds directly as input to the next one” and so on. In the case of HookPress, the output of the ‘publish_post’ hook feeds directly as input to the scriptlet and the output of that feeds directly as input to the Twitter API which outputs to the twitter client.

Besides creating notifications from WordPress actions, the other thing that HookPress does (still with me on this ‘learning journey’ ??? I’ve been reading, writing and revising this blog post for hours now…), is extend the functionality of WordPress through the use of WordPress filters. Remember that filters in WordPress, modify text before sending it to the database and/or displaying it on your computer screen. The example in the video, shows the web hook simply reversing the text before it is rendered on the screen. ‘This is a test’ becomes ‘tset a si sihT’.

The output of the ‘the_content‘ filter has been posted to the web hook, which has reversed the order of the blog post content and returned it back to WordPress which renders the modified blog post.

Whereas the action web hooks are about providing event-driven notifications, the filter web hooks allow developers to extend the functionality of WordPress itself in PHP and other scripting languages.  In both cases, web hooks ‘jailbreak’ WordPress by turning it into a single process in a series of piped processes where web hooks create, modify and distribute data.

Finally, I’ll leave you with this presentation, which is all about web hooks.

In the presentation, there are two quotes which I found useful. One from Wikipedia which kind of summarises what HookPress is doing to WordPress:

“In computer programming, hooking is a technique used to alter or augment the behaviour of [a programme], often without having access to its source code.”

and another from Marc Prensky, which relates back to my point about using WordPress as a way to learn about web technologies in a broader sense. WordPress+HookPress is where programming for WordPress leaves the back room:

As programming becomes more important, it will leave the back room and become a key skill and attribute of our top intellectual and social classes, just as reading and writing did in the past.

  1. I am not ashamed to admit that I’m finding that my career is increasingly influenced by following the observations of Tony Hirst. Some people are so-called ‘thought-leaders’. I am not one of them and that is fine by me. I was talking to Richard Davis about this recently and, in mutual agreement, he quoted Mario Vargas Llosa, who wrote: “There are men whose only mission is to serve as intermediaries to others; one crosses them like bridges, and one goes further.” That’ll do me.
  2. Note that themes are not necessarily a superficial makeover of a WordPress site. Like plugins, they have access to a rich and extensible set of functions.
  3. I am thinking of taking the idea of WordPress as a window on web technology further and am tentatively planning on designing such a course with online journalism lecturer, Bernie Russell. It would be a boot camp for professional journalists wanting (needing…?) to understand the web as a public space and we would start with and keep returning to WordPress as a mainstream expression of various web technologies and standards.

Related posts

Posted in API, Akismet, AppEngine, Bernie Russell, Blog software, Dave Winer, Fun, GNU/Linux, HTTP, Jeff Lindsay, Marc Prensky, Mario Vargas Llosa, Open Source, PHP, Perl, Python, Richard Davis, Ruby, Software, Standards & Specs, Technology_Internet, Twitter, Unix, Web, Web Hooks View, Web hooks, Web technologies, WordPress, Yahoo!, content management systems, google, javascript, linux, operating systems, real time web, server technology, tony hirst, web applications, wpmudev | Comments Off

Fixing WPMU 2.8.4 and the ignored Banned Email Domains option

Posted by dnorman on 30th September 2009

wpmufunctions_iconI’ve been having a heck of a time battling sploggers at UCalgaryBlogs.ca – roaches that create accounts and blogs so they can foist their spam links to game Google (thanks for providing spammers with such a powerful incentive, Google).

There’s an option in WordPress Multiuser to ban email domains – provide the domains, one per line, into a text box, and it will reject any roaches trying to create accounts from those domains.

The biggest offenders have been myspace.info and myspacee.info – and although they’ve been in my Banned Email Domains list for months, they just keep getting through. I figured there was some exploit they were using, but couldn’t find a thing.

So, today, I took a look through the code of WPMU 2.8.4, to see if I could find what was going on. Turns out, it’s a really simple fix. There’s a function in wp-includes/wpmu-functions.php, called is_email_address_unsafe() – it’s supposed to check the contents of the Banned Email Domains option field, and reject addresses from the flagged domains.

Except it wasn’t. Rejecting, I mean. It was letting everyone through, because of a simple bug in the code. It was written to treat the value of the option as an array and to directly walk through each item of the array. But, the option is stored as a string, so it needs to be converted to an array first. Easy peasy. Here’s my updated is_email_address_unsafe() function, which goes around line 880 of wpmu-functions.php:

function is_email_address_unsafe( $user_email ) {
    $banned_names_text = get_site_option( "banned_email_domains" ); // grab the string first
    $banned_names = explode("\n", $banned_names_text); // convert the raw text string to an array with an item per line
    if ( is_array( $banned_names ) && empty( $banned_names ) == false ) {
        $email_domain = strtolower( substr( $user_email, 1 + strpos( $user_email, '@' ) ) );
        foreach( (array) $banned_names as $banned_domain ) {
            if( $banned_domain == '' )
                continue;
            if (
                strstr( $email_domain, $banned_domain ) ||
                (
                    strstr( $banned_domain, '/' ) &&
                    preg_match( $banned_domain, $email_domain )
                )
            )
            return true;
        }
    }
    return false;
}

The fix is in the first 2 lines of the function – getting the value of the string, and then exploding that into the array which is then used by the rest of the function. I’ve tested the updated function out on UCalgaryBlogs.ca and it seems to work just fine. Hopefully the fix will get pulled into the next update of WPMU so everyone with Banned Email Domains can breathe a bit more easily.

Posted in PHP, WordPress, bug, code, general, wpmu | Comments Off

Internet Explorer 8 excuses — not a solution

Posted by Reverend on 30th September 2009

Do you maintain a web-based application, with a recent rise in end-user issues.  Does it feel like thay are all running Internet Explorer 8?  I’m not the most virtuous or precise programmer, but in a couple of recent situations I’ve made the extra effort to get IE8 working.  And in each case the problem was mine — helped along by a forgiving Firefox browser.  Here are a couple of solutions I’ve found helpful.  

As far as WordPress is concerned I’ve had no troubles, although one of our departments is currently struggling with a WordPress MU editor quirk — they can’t publish a new post, but can re-open it and publish it on the 2nd try.  They are working pretty hard to try to identify what is causing the problem (and any ideas will be most welcome!).  But in another case, with another web app, in another department, one of our users was recently told “oh yes, IE8 doesn’t work properly — can’t you use Firfox instead?”  Isn’t that a cop-out?  An excuse for some bit of bad coding that has been lurking in the background?  Yes, it is a pain, but I don’t think it is really fair to blame Microsoft for everything that goes wrong. 

Using the IE8 X-UA Compatibility Meta Tag Properly « Martin Ivanov

1. Add the following meta-tag in the head section of your webpage above any linked files (i.e, above … and tags)  If the tag is below link or script tags, the fix will not work.

AJAX with IE8 – returns error c00ce56e

Although I’ve been having this problem for a while I always end up solving the problem right after I post the problem.
edit /etc/php/php.ini and change – default_charset = “UTF-8″ – IE seemed to be very picky about it. works with FF too.

Google said it created Chrome Frame because Internet Explorer, especially in its older versions which are still common on millions of PCs, are not suited to running complex Web applications like Google Wave. Google’s plan is that developers of complex apps, including itself, will add a line of code to those programs telling users that they need the Chrome Frame plug-in to run them, thereby making an end run around Internet Explorer.

Posted in PHP, Technology, Web, WordPress | Comments Off

WordPress Memory Usage

Posted by Syndicated User on 18th June 2009

WP Engineer has great post on WordPress and memory usage. Many users load up every plugin under the sun and do not understand that all though these plugins seem to be lightweight they can easily consume all of your PHP memory if your PHP max_memory settings are too low (which they often are with webhosts).mem_usage

The two plugins mentioned in the WP-Memory-Usage by Alex Rabe and the even more detailed WP-System-Health by Heiko Rabe. Both work checking out to see if your blogs are getting close to maxing out on the php memory limits.

Posted in PHP, Web Development, WordPress, performance | Comments Off

Pimping your ride on the semantic web

Posted by Joss Winn on 21st April 2009

Yesterday, I wrote about how I’d marked up my home page to create a semantic profile of myself that is both auto-discoverable and portable. A place where my identity on the web can be aggregated; not a hole I’ve dug for myself, but an identity that reaches out across the web but always leads back home.

While I enjoy polishing my text editor regularly and hand-crafting beautifully formed, structured data, we all know it’s a fool’s game and that the semantic web is about machines doing all the work for us. So here’s a quick and dirty run down of how to pimp your ride on the semantic web with WordPress and a few plugins.

You’ll need a self-hosted WordPress site that allows you to install plugins. I’ve got one on Dreamhost that costs me $6 a month. Next, you’ll want to install some plugins. I’ll explain what they do afterwards. One thing to note here is that I’m using plugins from the official plugin repository whenever possible. It means that you can install them from the WordPress Dashboard and you’ll get automatic updates (and they’re all GPL compatible). In no particular order…

I think that’s quite enough. All but the SIOC plugin are available from the official WordPress plugin repository. Here’s what they provide:

APML: Attention Profile Markup Language

APML (Attention Profiling Mark-up Language) is an XML-based format for capturing a person’s interests and dislikes. APML allows people to share their own personal attention profile in much the same way that OPML allows the exchange of reading lists between news readers.

The plugin creates an XML file like this one that marks up and weighs your WordPress tags as a measure of your interests. It also lists your blogroll/links and any embedded feeds.

Extended Profile

This plugin adds additional fields in your user profile which is encoded with hCard semantic microformat markup and can then be displayed in a page or as a sidebar widget. You can import hCard data, too. There might also be another use for this, too. (see below)

Micro Anywhere

Provides a couple of additional editor functions that allow you to create an hCard or hCalendar events page. Here’s an example.

OpenID

This plugin allows users to login to their local WordPress account using an OpenID, as well as enabling commenters to leave authenticated comments with OpenID. The plugin also includes an OpenID provider, enabling users to login to OpenID-enabled sites using their own personal WordPress account. XRDS-Simple is required for the OpenID Provider and some features of the OpenID Consumer.

This is key to your identity. You can use your blog URL as your OpenID or delegate a third-party service, such as MyOpenID or ClaimID. In fact, you’ve almost certainly got an OpenID already if you have a Yahoo!, Google, MySpace or AIM account. It’s up to you which one you choose to use as your persistent ID. Read more about OpenID here. It’s important and so are the issues it addresses.

XRDS-Simple

This is required to add further functionality to the OpenID plugin. It adds Attribute Exchange (AX) to your OpenID which basically means that certain profile information can be passed to third-party services (less form filling for you!) Like a lot of these plugins, install it and forget about it.

SIOC

Provides auto-discoverable SIOC metadata. “A SIOC profile describes the structure and contents of a weblog in a machine readable form.”

wp-RDFa

Provides an auto-discoverable FOAF (Friend of a Friend) profile, based on the members of your blog. I’ve been in touch with the author of this plugin and suggested that the extended profile information could also be pulled into the FOAF profile. This is largely dependent on the FOAF specification being finalised, but expect this plugin to do more as FOAF develops.

OAI-ORE Map

Provides an auto-discoverable OAI-ORE resource map of your blog. It conforms to version 0.9 of the specification, which recently made it to v1.0, so I imagine it will be updated in the near future. OAI-ORE metadata describes aggregated resources, so instead of seeing your blog post permalink as the single identifier for, say, a collection of text and multimedia, it creates a map of those resources and links them.

LinkedIn hResume

LinkedIn hResume for WordPress grabs the hResume microformat block from your LinkedIn public profile page allowing you to add it to any WordPress page and apply your own styles to it.

I like this plugin because you benefit from all the features of LinkedIn, but can bring your profile home. Ideal for students or anyone who wants to create a portfolio of work and offer their resume/CV on a single site. Depending on the theme you use, it does require some additional styling.

Get_OPML

This is a nice way to create an OPML file of your sidebar links. If, like on my personal blog, your links point to resources related to you, you can easily create an OPML file like this one. There’s a couple of things to note about this plugin though. The instructions mention a Technorati API key. I didn’t bother with this. When you create your links, just scroll down the page to the ‘advanced’ section and add the RSS feed there. Secondly, the plugin author has, for some stupid reason, hard-coded the feed to their own site into the plugin. Assuming you don’t want this spamming your personal OPML file, download a modified version from here or comment out line 101 in get-opml.php. I guess the plugin author thinks that you’ll be using this to import the OPML into a feed reader and from there, you can delete his feed. That’s no good to us though. Finally, you’ll want to make your OPML file auto-discoverable. You can do this by adding a line of html in your header, using the Header-Footer plugin below.

Header-Footer

This simply allows you to add code to the header and footer of your blog. In our case, you can use it to add an auto-discovery link to the header of every page of your blog.


<link rel="outline" type="text/xml+opml" title="ADD YOUR TITLE HERE" href="http://YOUR_BLOG_ADDRESS/opml.xml" />

WP Calais * + tagaroo

These three plugins use the OpenCalais API to examine your blog posts and return a bunch of semantic tags. I’ve written about this in more detail here (towards the end).

The Calais Web Service automatically creates rich semantic metadata for the content you submit – in well under a second. Using natural language processing, machine learning and other methods, Calais analyzes your document and finds the entities within it. But, Calais goes well beyond classic entity identification and returns the facts and events hidden within your text as well.

It’s an easy way to add relevant tags to your content and broadcast your content for indexing by OpenCalais. They place an additional link in your header that lists the tags for web crawlers and, I guess, improves the SEO for your site.

Extra Feed Links

I’ve written about this plugin previously, too. It adds additional autodiscovery links to your blog for author, category and tag feeds. WordPress feed functionality is very powerful and this plugin makes it especially easy to make those feeds visible.

Lifestream

This isn’t a semantic web plugin, but is a powerful way of aggregating all of your activity across the web into a single activity stream. See my example, here. It also produces a single RSS feed from your aggregated activity. Nice ;-)

Wrapping things up

If you set all of this up, you’ll have a WordPress site that can act as your primary identity across the web, aggregates much of your activity on the web into a single site and also offers multiple ways for people to discover and read your site. You also get a ‘well-formed’ portfolio that is enriched with semantic markup and links you to the wider online community in a way that you control.

Bear in mind that some of these plugins might not appear to do anything at all. The semantic web is about machines being able to read and link data, right? If you look closely in the source of your home page, you’ll see a few lines that speak volumes about you in machine talk.


<link rel="meta" href="./wp-content/plugins/wp-rdfa/foaf.php"type="application/rdf+xml" title="FOAF"/>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
<link rel="meta" type="text/xml" title="APML" href="http://blog.josswinn.org/apml/" />
<link rel="alternate" type="application/rss+xml" title="NoteStream RSS Feed" href="http://blog.josswinn.org/feed/" />
<link rel="resourcemap" type="application/atom+xml" href="http://blog.josswinn.org/wp-content/plugins/oai-ore/rem.php"/>

If you do want a way to view the data, I recommend the following Firefox add-ons

Operator: Auto-discovers any embedded microformats and provides useful ways to search for similar data via third-party services elsewhere on the web.

OPML Reader: Auto-discovers an OPML file if you have one linked in your header. Allows you to either download the file or read it on Grazr.

Semantic Radar: Auto-discovers embedded RDF data. Displays custom icons to indicate the presence of FOAF, SIOC, DOAP and RDFa formats.

The Tabulator Extension: Auto-discovers and provides a table-based display for RDF data on the Semantic Web. Makes RDF data readable to the average person and shows how data are linked together across different sites.

As always, please let me know how this overview could be improved or if you know of other ways to add semantic functionality to your WordPress blog. Thanks.

Related posts

Posted in API, APML, FOAF, Fun, Identity, MozOpenEd, OAI-OER, OpenCalais, OpenID, PHP, SIOC, Social networks, Standards & Specs, Tips, Web, Web Service, XML, Yahoo!, author, auto-discovery, category and tag feeds, course site, distinct online identity, google, hCard, hResume, html, lifestream, machine learning, microformats, natural language processing, plugin, portfolio, rdf, semantic technology, semantic web, text editor, university web publishers, web publishing, web resources, wpmudev | Comments Off