Web development with symfony

Enough of this wordy marketing/writing-for-the-web stuff that Steven is writing about – we all know that everyone just wants to know about programming! Okay… maybe not everyone wants to know about code but I thought some people might be interested to know a little bit more about how we’re developing web apps here at Edge Hill. I mentioned previously how we’re developing sites using symfony, a web development framework and I’ll go into what this offers us and some pointers to further information.

Symfony is a framework, written in PHP which assists developers in creating rich web applications. It provides a wide range of features that previously the developer has to write themselves or manually integrate several third party systems such as object models, MVC separation, caching, scaffolding, Ajax interactions and much more. By taking away overhead it leaves the developer able to concentrate on the functionality of the system and should lead to better applications.

Symfony takes influence from Ruby on Rails and other frameworks in its design and actively promotes well written, reusable code. The MVC separation allows you to maintain database (model), templates (view) and logic (controller) separately meaning parts of the site can be written by several members of the team. ORM means that writing SQL is a rarity. Adding Ajax to produce slicker user interactions is easy and done in a way that maintains standards compliant and accessible HTML.

Currently two major sites have been developed using symfony – Education Partnership and Hi – there’s a couple more smaller applications using it and a few bigger ones in development at the moment. For these sites symfony has allowed pretty rapid development – under a month in the case of Hi – of complex websites. Tools for handling technologies like RSS are integrated with symfony in the form of plugins which has allowed us to produce a couple of different feeds plus seamlessly merge the forum and blog tools with the rest of the Hi site.

One of the best features of symfony is the admin generator. This allows us to quickly create interfaces to allow other people to update websites. This is being used for a couple of questionnaires and much more complex systems too – if you work or study at Edge Hill the chances are you’ll come across the admin generator in action very soon without even realising it.

If you’re interested in finding out more about symfony then there’s a brand new tutorial available on SitePoint which gives a great introduction. The symfony community is really good too with an ever growing selection of plugins (including a couple released as a result of work done here at Edge Hill) and a supportive forum and mailing list.

Those Weren’t the Days

Browsing the new undergraduate prospectus for 2008, it’s interesting comparing the content to that within the ‘Prospective Students’ area of the corporate website. A few years ago, the two were almost identical in terms of structure and text, but the content appearing online today is independent, written specifically for the web rather than merely ‘borrowed’ from elsewhere.

The most obvious difference between the Edge Hill site ‘now’ and ‘then’ is the amount of text – Jakob Nielsen’s research on writing for the web reveals how few people read word-for-word on the web – but presenting information to prospective students online isn’t just about reducing the word count from conventional writing.

Bulleted lists (describing the application process, for example), tables (displaying fee information) and strong visuals (department tours) help present information in an attractive, user-friendly format but the interactivity of the website is probably where the greatest change has taken place. Podcasts, streaming videos, virtual tours, forums and blogs are now all integral parts of Edge Hill’s online communication and allow current and prospective students to interact in a way which has previously not been possible.

Thankfully the days of getting 30 pages of text in my inbox to ‘go on the website’ seem to have gone!

Overcoming Information Overload

I imagine that most people who’ve been using the internet for a while have at some point suffered from “Information Overload”. Andrew Sackville, at his inaugural lecture mentioned wilfing – surfing the web without any real purpose – and that can be a problem too. In fact I spent most of my time at University in one of these two states. Visiting the BBC News website every twenty minutes is a sure sign that you’re suffering. I’m here to tell you that there is a way to escape getting trapped by the internet like this and the answer is RSS.

RSS lets websites, bloggers and content producers provide a constantly updated feed of information for interested parties to subscribe to. It’s been around for years but it’s really starting to gain momentum and with Firefox or Internet Explorer 7 it’s built right into the browser – just look for the little orange feed icon in the address bar or elsewhere on the page. Most large websites and virtually all blogs provide feeds and over the coming weeks and months more and more services offered by Edge Hill will have RSS feeds available.

There’s many ways of subscribing to a feed – if you have Firefox or IE7 just click on the feed icon to get started. Subscribed feeds show up like bookmarks that update themselves. The LTD blog mentioned an add-on for Groupwise which integrates RSS and ways to add RSS to WebCT. You can also get standalone software that installs on your PC and sits in the background checking for updates.

I prefer to keep track of my feeds online using Google Reader (other web-based feed readers are available). The major advantage of online services such as this is that it follows you to whichever PC you’re logged in on – you can even read your feeds through a mobile phone. Google Reader lists your subscribed feeds down the left and shows the content of them on the right. You can “star” interesting articles so you know to come back to them later or share them with other people (either through a web page or, predictably, via RSS!). Google Reader has allowed me to spend less time wilfing and more time reading articles that are actually interesting.

If you’re wanting to give a news reader a try and want some feeds to test then check out some of the feeds related to Edge Hill:

As I said, even more services will provide RSS feeds in the near future – one of the first will be the Edge Hill jobs website – and RSS will be used behind the scenes for many sites so there’s no getting away from it!

Technology terminology is stupid. RSS (which may or may not stand for “Really Simple Syndication” depending on who you speak to) is just one name for this idea. You may also hear them referred to as Atom, news feeds, feeds, XML feeds and probably many other names. In most cases, it’s not worth worrying – news readers are generally compatible with all formats and most websites and web browsers have standardised on the orange feed icon – that’s the one we’ll be putting on our websites!

Release Early, Release Often!

“Release early, release often” has been the mantra of the open source community for years and refers to the idea of getting something out to users quickly so that they can feedback, help find bugs (yeah, like my code has bugs!) and shape future development of the software, and it seems to work. Mature open source software is generally stable and secure, taking advantage of many iterations of the development cycle. New software often has features not found in established packages because they’re able to adapt quicker.

So what can we as web developers learn from this model? There’s sometimes the tendency to hold off launching until everything is perfect but do we need to do that? Sometimes yes – incorrect information or security problems are show stoppers and there’s no excuse for releasing bad software but does it matter if a few features from the “desirable” list are missing? Probably not, and the benefits of getting the system out there and used outweigh that.

So that’s “release early” sorted out, but that on it’s own isn’t enough. We must be prepared and able to back that up by “release often” and we’ve got plans here too. On the software side of things, developments of certain applications has moved to PHP running on the symfony framework allowing for faster application development. We’re starting to use some code management tools such as subversion and Trac to keep track of bugs and feature requests and more easily allow several people to work on the same project. The department are investing in new server infrastructure which will allow better testing prior to roll out of changes as well as faster and more reliable access to the sites. Finally, we’re committed to pushing the kinds of services we offer; adopting new technologies early when there is a benefit to our users and not being afraid of the odd bug if it means we’re doing something good.

If you follow blogs in the web/HE community then yes, I did borrow the title from OSS Watch’s recent post, but I was thinking about it before they posted!

A blogging community

We’re frequently asked about our stance on blogs for Edge Hill staff and students and if we have plans to do roll these out site wide in the near future. The answer is yes but we have some work to do before than happens.

At present we’re looking at the whole web infrastructure and we plan to make some significant changes to the way in which we manage our servers and services by the summer. Once this is in place we’ll look to roll out a more robust blogging platform that can support a blogging community at Edge Hill. In the meantime we’ve set up blogs.edgehill.ac.uk and we’ve got a number of bloggers already using the service. We’re particularly keen to set up blogs for our research active academics so if you’re interested please get in touch with us.

Remember the milk!

I’m currently playing around with a new site called Remember the milk which is a task management site I first heard about through the BBC. It’s really easy to set up and I’m finding it really useful so far as it emails me all those little things I need to remember to do each morning… which normally end up in a pile on my desk! I’d be interested to know if anyone has any experiences of this or similar sites?

About time too…

As we’ve spent the last couple of years talking about blogs, showing people how to use them and advocating their usefulness we thought it was about time we started our own!

We’ll use this to keep people informed on our developments, our thoughts on technologies and how we can (and do) contribute to the effectiveness of recruitment, retention and PR for the University.

At present our key priorities and projects include:

If you have any questions or queries for us post a comment.

Alison Wildish, Head of Web Services