The cacher in the rye

Last Friday I “accidentally” upgraded the instance of Mediawiki on the server used by the design for learning site… And true to form things broke. The database needed an update, the custom skins were no longer working, the LDAP authentication broke and loads of stuff just was not happy. The last couple of days have involved quite a lot of time playing “whack a mole” trying to make these problems go away, re-building the skin, double checking the logins etc. A round of emails with an end user led to my also discovering that it was now using a server-side thing called memcached and that this was stopping mw delivering pages beyond the navigation bars. Clearly this is not how it ought to be – I’m sure memcached is a perfectly good bit of kit, but rather than spend yet more time working out quite what was wrong with it I went for simply disabling it. All _seems_ to be working now and the users content.

The silver lining to this cloud is that it brings the dfl installation more in line with the other cetis and intrawiki instances – and the even gooder news is that those instances were not affected at all. It may also be worth having a little re-jig of the mediawiki instances on the server to make the whole business of running a farm a little more resilient. But that is one for some other time.

ePortfolio 2006: Plugfest

Walking along the River Thames this morning to the ePortfolio 2006 Plugfest in the middle of a serious thunderstorm was perhaps not the smartest of plans – but it didn’t take too long to dry out. I attended the plugfest last year and it was excellent, the day was packed with demos and slinging around of data between a variety of eportfolio solutions and this year it was just as interesting.

ePortfolio Systems Integration

This session follows on from the previous year where there was a lot of focus on using xml (mainly IMS-ePortfolio and IMS-LIP) to move portfolio data from one system to another. Only this time the collection of standards has expanded to cover HR-XML and Europass initiatives.

We started off with ePet and EPICS projects – the projects are based in the north-east of England and in use at Newcastle University as well as several other HE and FE institutions in the region. They have been using IMS-LIP for data transfer – which was demonstrated last year, but have now added Europass XML to the list of capabilities – for both import and export of data.

KiteCV is a plugin to add eportfolio creation and export capabilities to several other systems; wordpress, elgg and dotclear. I had a good go with this particular tool (compiling it on my Mac with the developers looking over my shoulder) and indeed it successfully created a europass conformant CV from within WordPress. Using it as a plugin though feels slightly odd – yes it lets youembedd a CV within a blog entry but I’m just not sure why you might wish to do that!

Selwyn from Phosphorix showed iomorph, a generic transformation engine for they have added europass – hr-xml to their list of available formats (the officially supported list is IMS-Lip, UKLEAP, and XCRI – but the toolkit is also capable of supporting custom xslt transforms and CSV data). For the demo they took the newcastle data in hr-xml format into their icebox system – merrily generating nicely formatted CVs.

Giunti Labs stepped up with exact Portfolio – trying to import and export IMS eportfolio. This wasn’t so successful however they assured us that it did work and that they are working on creating plugins and transforms to get the data in and out of other formats too.

Pebblepad (and their lovely flash-based interfaces) showed their export cv functionality. A user chooses one of their many cvs (they can of course generate them for different purposes) and dumps it out in some exchangable format. Their focus is on making all the technicalities as invisible to users as possible – so importing a webfolio from an external site is just a matter of pasting in the url and the software does the rest.

This got me thinking – how do you expose and discover an eportfolio on a public website – could it not be done in the same way as RSS feeds are exposed on via link-rel tags? Perhaps one to develop for next year.

Sarah Davies from JISC asked a sensible question as to what happens if the concepts don’t map? If one system does actionplans and someone else does goalplanners – the fields encoded in the xml _should_ map sensibly even if the semantic meaning is slightly different – but the general consensus was that your milage may vary.

Sample xml files from this part of the plugfest are all available on the eifel website.

iCalendar Gotchas

Another development in progress here on the CETIS site is a calendaring and event-registration system. We’ve built a database – and various members of staff have provided some events to put in it… For our next trick we need to get the data out again.

The main player in interchange formats for calendaring is the iCalendar spec (aka rfc2445. The format neatly imports into iCal on the mac or Google Calendar or most other modern calendaring systems…

HOWEVER when cranking the information from the database into iCalendar format I came across several important gotchas which I may otherwise not have noticed.

1) The calendars must be encoded as LATIN 1 with Windows-style CR,LF line breaks. Not doing this causes iCal to barf on the file.
2) You need to watch out for carriage returns generally. For example an event description spread over several lines can cause problems – or missing one out between fields for that matter.

With these issues more-or-less sorted we now have a (hopefully) working cetis-events ical feed.

http://jisc.cetis.org.uk/events/detail.php?format=ical

Fitting LDAP to WordPress-mu

One of the major bits of infrastructure for the new CETIS websites is a WordPress-mu based blog server. The point of this being that everyone in the organisation gets to have their own blogs and thereby feed the general production of cetis news through what they write in said blogs. Look I’m doing it now! Enough with the meta-blogging though. The serious technical challenge was to integrate WordPress-mu with our LDAP directory so as to give staff rights to sign on using their standard password and create as many blogs as they each fancy. WordPress of course doesn’t quite do this out of the box but I’m not the first person to try this.

It being a small world, Alistair Young from UHI made this plugin for WordPress 1.5 Pat Cavit took it onward somewhat and then William Gray did some some more work taking it to 1.5.2. Of course this is all single-user WordPress, a year-old (WordPress is up to version 2 now) – and inevitably mu is slightly different again….

These efforts now seem to have coalesced into a single WPMU plugin – available at:
http://wpmudev.org/project/WPMU-LDAP-Authentication-Plug-in
I’s suggest that people start with that stuff.

So I took some code – I think it was Pat Cavit’s and started working. As with many system integration projects I started out being hopeful that it would just work. It didn’t. Then I thought perhaps there was a nice clean way it could be hooked in. I couldn’t see one. Then I thought I’ll just step myself through the code and hack it into place. This approach paid off and we now have a working installation.

And it works a treat. CETIS staff can now go to blogs.cetis.org.uk and sign themselves up. A user entry is created in the wordpress database – used for keeping profile information and so that the rest of the tables have a user id number to key to – but the password is always queried from the directory. With this done, the user can create as many blogs as they jolly well like. Pretty good if you ask me.

The modified files are:
wp-signup.php
wp-includes/wpmu-functions.php
wp-includes/functions.php
wp-includes/registration.php
wp-content/mu-plugins/pluggable.php
wp-admin/menu.php

And some new files added:
wp-content/mu-plugins/ldap.php
wp-content/mu-plugins/ldap/……

Once the dust has settled on on the servers and everything here at CETIS is properly behaving I’ll spend some time re-factoring and trying to get my work in line with the likes of Alistair, Pat et al. for both WP2 and WPmu.

MEANWHILE due to popular demand here is a zip file of the work I have done so far:
LDAP_MOD.zip

From a wider point of view having this kind of plugin available should be a boon to system administrators of organisations large and small looking for a nice reliable blogging solution which they can roll out to a whole bunch of users without having to create yet another authentication nightmare. Great!

Another dead server moment

Our Fedora Core 5 server (arwen) got rather stuck today after a hard restart and failing to reboot. It kept getting stuck on Starting System Message Bus. A bit of googling later and it seemed that the problem originated from the server’s authentication settings.

Several days ago I had been fiddling with the server’s authentication settings (via the gui interface) hoping that it might be able to authenticate against its own ldap directory and had just left the settings sitting there when nothing seemed to be happening. Clearly it was a very bad idea and I should have left it alone.

As per the various posts on FedoraForum I used the following procedure.

Persuade the server to boot into runlevel 1:
push e when grub comes up, then e the 2nd line, add a 1 to the end of the line

Edit /etc/nsswitch.conf
Removing the references to ldap so;
passwd: files ldap
becomes
passwd: files

Edit /etc/sysconfig/authconfig
Changing USELDAP=yes to USELDAP=no.

With this done the system booted properly – however the story was not over as the instance of OpenLDAP itself complained about the database being corrupted.

This was fixed very swiftly using a recipe from Harold’s technotes:

# /usr/sbin/slapd_db_recover -v -h /var/lib/ldap
# service start ldap

With that done the whole thing was behaving properly again. Phew.

Bolton server switcharound

Yesterdays work on the Bolton firewalls and routers resulted in the “arwen” server (tencompetence and designforlearning) disappearing from the internet for much of the day.

There were several colliding issues:

1) The Bolton VPN system had been taken out by the changes so I couldn’t get in remotely to figure out what was going on (I was at the CAA conference in Loughborough). Once informed, the Bolton networks team made it a priority to get it working again.

2) The subnet configuration of the server needed re-applying – Mark Power performed valiantly and got the necessary settings changed from the office in Bolton. This was fixed around lunch-time. The server was now working but only within the Bolton network.

3) The final issue was that Mark Williamson had overlooked the arwen server when configuring the new firewall rules – the other cetis servers were fine though. Once discovered the firewall rules were corrected and the server became publicly visible again at around 5pm.

It was a shame that the tencompetence site went down for the second time in as many weeks, but all in all I think this was pretty much unavoidable given the complexity of the changes, new infrastructure, and I think that both Marks deserve a big thankyou for tackling the matter swiftly and seriously.

CAA Conference

The main event of my week was the CAA Conference in Loughborough. I’m rather amazed that in all my years of being involved with assessment from the days of Canvas onwards I’ve never managed to go to this conference before. There was not only some interesting stuff going in terms of content on but the entertainment laid on by the organisers (and bankrolled by Questionmark) made it really quite special. They took us on a steam train from Loughborough up to somewhere near Leicester, with dinner and a murder-mystery along the way.

My conference highlights included:
* A chap from Macedonia who is creating a SOA-based assessment system
* A demo of BTL Content Producer (which is being used by the SQA)
* A demo of EXAM-4, a tool for performing high stakes exams on unsecured laptops
* Question Buddy
* A long chat with a chap from Wolverhampton about open-source student record systems, and the evils of SITS…

Then I noticed that the servers were down again – and spent much of wednesday morning frantically skypeing MarkP to try and get them working again. See full explanation in entry to follow.

I stood up during the JISC session on day 2 to do a very terse overview of the e-framework, the toolkits, how wonderful FREMA is for the assessment end of it, and a general plug for CETIS and the SIGs and what we do. This seemed to go down fine.