Rake aborted! Unknown database

(This is a boring technical post, but useful if anyone else Googles the same issue)

While trying out an upgrade of Talks.cam to Rails 2.2, I happened to perform a RAILS_ENV=test rake db:drop

I was a little concerned, then, that every rake task, including RAILS_ENV=test rake db:create then complained Rake aborted! Unknown database talks2_testing.

It turns out that the issue is that within config/environments/test.rb, there is the following setting: config.cache_classes = true.  This causes rake to attempt to load all the classes (which involves inspecting the database), even if the task it is performing is creating the tables it needs to inspect.  So, the solution is to turn off class caching during database creation. 

Successful transitions

Allow me to introduce myself. I'm William Billingsley, a computing and HCI researcher and engineer, and I am one of the developers who has temporarily taken over development of Talks.cam, at least over the next couple of months. However, rather than just say "hello world", I thought it would be worth saying something about the transitioning process.

Many famous open source projects are centered around a charismatic individual, be it Linus Torvalds for Linux or Martin Dougiamas for Moodle. Rod Johnson, "the father of the Spring framework", even has his own action figure. For Talks.cam, of course, our charismatic original developer (Tom Counsell) moved on from Cambridge some time ago. So, we have to think carefully about how to ensure the vision, motivation, and technical development of the project survives each transition of development staff. We can't just rely on the drive and fame of a benevolent dictator to bind us together.

We have a very good starting point, in that we have a steering group that includes many people who have been attached to the project from the beginning, just not in development. And from a financial perspective, we have JISC's support in the EGRET project to improve and transform the system. However, there are also subtler factors we need to bear in mind. Each time someone new takes over lead development for the project, there is a learning overhead. Not just what the project is about and the language it is written in, but also fiddlier details such as how the system differs from other Ruby on Rails applications. For instance, since Talks.cam was written, the Rails platform has moved on a few versions, and newer versions of Rails do by default some things that had to be coded into Talks.cam by hand. For a single developer, there is very little point stripping out working code just in order to "be more standard", but for transitioning developers it can help to reduce the learning burden. The further from the norm Talks gets, the harder it would be for a new developer to learn -- and that's true even if its "the norm" that has been moving!

No doubt there will be other issues we need to deal with, and I'll probably mention them here as they come up. We want to ensure that, like Taggart or Doctor Who, while the faces may change, the show will go on.

that's August gone!

The last few weeks have been full of EGRET-related activity, although it has not all occurred under an EGRET banner. We've brainstormed social applications for academia (some of which are potential EGRET-related ideas) in a couple of forums. I somewhat belatedly sent off all the project planning documentation. I've also had some useful conversations about ways to incentivise adoption of social applications, and how to get over the usual initial barriers when there are only a handful of users to network with.

With Talks.cam helpdesk and jira bug-tracking set up, and Talks.cam hosted on our institutional servers here at CARET, we are making progress with the EGRET plan. We've had Talks.cam helpdesk tickets coming in, and it's been interesting to start to figure out both how to handle these in the short term and how to extend our helpdesk offering through the project.

Next week, we have one of the original Talks.cam authors coming in to train the team up on the codebase and architecture. We are all looking forward to learning new things, both about the code, and how to support users. Talks.cam is written in Ruby and this will be a new language for most of us here; I foresee O'Reilly Ruby and Rails books in our futures!

It's been hard to schedule sessions to learn about the existing system, as the original people have moved on to new things and have less time; this is one point I'll be bearing in mind for the institutionalisation study.

So, as usual for these early days, a lot of ideas-generation, some actual progress, but not many concrete outputs yet.

Summer days, drifting away

So, what's been happening on EGRET lately?

Many people involved with the project have been on summer holidays.

I've gathered (already!) a lot of fascinating examples of issues relating to institutionalisation of software, particularly with reference to CamTools, which is further along the path than Talks.cam. CamTools relaunched in a new version at the end of July, and we are now brainstorming ideas for next generation CamTools next year. One aspect of Camtools09, or CamToolsWow, or whatever we decide to call it, will be Talks.cam integration, and there will also be new social applications.

We'll be having a big team brainstorm about ideas for social applications within the university this afternoon. There are a lot of different angles for this, from academic apps to purely social ones, as well as many different user groups (students, researchers, administrators). I hope some of the ideas will be relevant to EGRET as well as our other projects which will have social aspects this year.

Do comment below if you have any suggestions for great apps we should think about!

BarCamb2

I was at BarCamb2 last Friday - a day of interesting talks and demos, held at the Sanger Centre near Cambridge.

Last year I'd given a presentation about AlertMe.com, but this time I just gave a short talk on Talks.cam (and by extension, EGRET). This was well-received, and it was fascinating to get feedback from audience members, who were a cross section of Talks users, people who used Talks but hadn't really realised they did, and those for whom it was new (many of whom had a go with the website on the day).



There was a lot of interest in syndication, unsurprisingly for a techie audience generally familiar with Ruby, RSS and iCal, and a wide range of ideas about how social features could tie in with Talks.cam, as well as some concerns. Some users felt the documentation was lacking and couldn't figure out how to get started with the site - definitely something which we'll be looking at, and an important consideration as projects get bigger, and users become less expert (or get less individual help to get them started). EGRET will definitely be looking into this issue. Others said they thought some kinds of social network functionality would be great (such as Amazon-style recommendations) but that "just having a facebook app" would be rather pointless; a range of interesting points, which will feed into our work on scoping out social networking.

Thanks to Matt Wood for organising another great event!

Highlights from the JISC Innovation Forum

Other than the opportunity to meet the other projects funded by the e-Administration programme, the Innovation Forum two weeks ago was a chance for me to learn more about the JISC and the kinds of people and projects working with it.

Interesting links:

Interesting topics:
  • The challenges, or perhaps near-impossibility (?) of having a system of open data whilst still having a sustainable business model
  • Tricky copyright issues and domains and contracts - such as when blog posts are assembled into a book, with a publishing contract stating content cannot be placed online
  • The "golden age" - a decade of generous funding for the JISC and other HE technology projects - coming to an abrupt end with today's economic challenges (this from HEFCE)
  • Open source is not the answer to sustainability of projects past their funding period. Remember: open source is "free" as in "free puppy" - you need to clean up after it, it's a lifetime cost of vet bills and food, and lots of owners abandon theirs. A "community" is not always the answer either - they need to be motivated and have the ability to help out on the tasks that need doing.
  • Remember innovation is a socio-technical system - the people aspects are if anything the most important

Talks.cam / EGRET kick off meeting

Last week, to coincide with the launch of the latest version of Cambridge's VLE/VRE (CamTools), CARET hosted an initial meeting between EGRET people and the "owners" of Talks.cam. Out of the group of owners/managers listed here, Alan, David and Duncan were present.

We discussed a wide range of future features and business models for Talks, as well as the draft plan for EGRET work on Talks. The next step is a technical meeting to handover the next level of technological know-how to CARET, and then to get started with the EGRET work (both development and support training).

Welcome

EGRET is a JISC-funded project at the University of Cambridge. It is being carried out at CARET.

There's a lovely video clip of me talking about the project at the JISC Innovation Forum here.

Hopefully, more information coming soon!