Making Nucleus Easier

As part of the Orbital project we’re interacting a lot with our Nucleus data store, and we decided that it would be good fun to build a decent library which we could include in all of our projects which need it. Here’s how we now talk to Nucleus:

Nucleus

We didn’t see much point in keeping this to ourselves though, so for those of you who interact with Nucleus on a regular basis, use PHP and just can’t be bothered building your own CURL requests and mucking about with complex error handling you can just use our handy Composer library. The whole thing is open source, so please feel free to have a look and make changes.

On Bad Websites

Those with the (mis)fortune to have worked with me in the past will know that I have a fairly low tolerance for what I consider to be stupid decisions. This normally comes across as me being arrogant – something which is entirely understandable – and often causes people to think I’m sticking my nose in to bits of the business which don’t concern me or which I’m not an expert in – also entirely understandable.

However, recently I’ve been exposed to the products of some decisions which fall well within the realms of my expertise, specifically those regarding the procurement of new web-based services for the University. As somebody who works in this field all day every day, I’m not impressed.

At Lincoln we have not one but two teams of people (Online Services in ICT, and LNCD in CERD) who are paid for their expertise in web application development, usability, accessibility, optimisation, deployment and support. Yet there are departments (who will remain nameless) who still insist on buying websites which do very simple things – most likely at a significant expense – without bothering to ask either of these teams. A recent example (which will also remain nameless) completely ignored the Blogs platform, which would have addressed 90% of the site functionality without spending a single penny, and the other 10% with a simple plugin which would have been done in a week. Other instances have totally ignored the fact that we have a unified web design for things, which has been the product of over a year of constant tweaking and improvement. Some things don’t bother to use any of the University’s authentication options, instead choosing to ask people to register again, or worse to email somebody asking for an account.

The fix is simple. All that needs to happen is for somebody wanting a website to call somebody in OST or LNCD and ask advice before paperwork is signed or the process has gone too far down the path.

The Toolchain: First Pass

Today I’ve been kicking around the ICT office with Alex, figuring out how to make Jenkins (our wonderful CI server) build and publish the latest version of the CWD with all the bells and whistles like compilation of CSS using LESS, minification, validation of code and so-on. As part of this we managed to fix a couple of bits and pieces which had been bugging me for a while, namely the fact that GitHub commit notifications weren’t working properly (fixed by changing the repository URI in the configuration) and the fact that Campfire integration wasn’t working (fixed by hitting it repeatedly with a hammer).

This brought me to thinking about how our various things tie in together, so I set about charting a few of them up. After a while I realised the chart had basically expanded into a complete flowchart of the various tools and processes that hang together to keep the code flowing in a steady stream from my brain – via my fingers – into an actual deployment on the development server. Since it may be of interest to some of you, here’s a pretty picture:

This is (approximately) the toolchain I currently use for Orbital, including rough details of what is being passed around

The beauty of this is that the vast majority of the lines happen completely by themselves — I get to spend my days living in the small bubble of my local development server and dipping in and out of Pivotal Tracker to update stories. The rest is magically happening as I work, and the constant feedback through all our monitoring and planning systems (take a look at SplendidBacon for an epic high-level overview) means that the rest of the project team and any project clients can see what’s going on at any time.

Dev8D is here again…

Hello all,

The ever popular JISC sponsored Dev8D event is just 1 month away now. Dev8D is the largest event of its kind in the UK and it is your only opportunity this year to get 3 days of free training in essential skills and emerging technologies. This year the event is packed with great opportunities for learning new tech skills, discovering new technologies and collaborating on technical challenges with experts in the sector. At past events attendees have learnt new programming languages, experimented with new software platforms and established lasting communities. As always tickets for the event are free but availability is limited so book soon to avoid disappointment.

This year more than ever the goal of Dev8D is to tool up attendees with skills in essential and emerging technologies for the coming year in away that is practical and fun. There will be sessions for:

  • HTML 5
  • Programming in Python
  • Git version control and source code management
  • Understanding and using Linked Data
  • Using Redis
  • JavaScript and JQuery
  • Writing effective Moodle plug-ins
  • Making your web applications accessibility friendly
  • Coffee Script
  • too many more to name…

Attendees will also get to interact with cool technologies like 3D printers and multi-touch tables and form their own sessions in our larger than ever unconference sessions. Bring your technical problems along and work them through with experts in the sector.

This years event runs from the February the 14th-16th and will be in University of London student union. Remember tickets are free but they are limited so sign up before you miss the opportunity.

You can see more details and register for the event on the Dev8D website at: http://dev8d.org/

Hope to see you there!

Useful numbers on our wall!

After a lengthy run-up, our Panic-inspired status boards are partially here! We have two Samsung 460MX-3 displays (one for each of our two offices), kitted out with the Network module which gives them an embedded system we can control remotely.

We’re currently viewing a custom web page – one for each office – displaying some key stats from our ticketing system. This is only a first step though, we’ll be developing the status boards to tell people what they need to know, be that how servers are performing, how many tickets they’ve got open or how much traffic is flowing through a given website.

And now, photos!

Things I did on my lunch break.

Today on my lunch break I enjoyed a creamy chicken and broccoli bake from the Atrium, and then decided to muck about with code and see what I could come up with.

Turning to the power of Nucleus, our one-stop-shop for data, tying it together with the Sphinx search engine we’ve used previously in Jerome, and wrapping it all up in the CWD I was able to come up with a glossy version of our existing Staff Directory.

Give it a whirl at http://phone.labs.lncn.eu.

Staff Directory v2, complete with Bakelite rotary dial phone.

Why We Don’t Do IE6

One thing we frequently wrestle with in Online Services is browser compatibility, and making sure that our latest and most awesome web apps (just wait until you see Total ReCal) behave properly. Predictably, as web developers, we face a daily battle to make things work in Internet Explorer when it decides that “14 pixels” actually means “8 pixels, in blue, flashing and dancing the bolero”.

In the past we’ve been told to make things work in Internet Explorer to the extent that compatibility with other browsers has been an optional extra. I still find corporate websites which break in Firefox (with it’s Gecko renderer) and the WebKit-toting Safari and Chrome, but with the recent addition of awesome analytics tools to most of our key web services we can now prove that ‘alternative’ browsers are actually the mainstream. In fact, Internet Explorer only makes up 56% of visitors to University sites and once we remove the bias of corporate desktop machines it drops to 43%. Internet Explorer is no longer the sole target of our HTML and CSS massaging affections.

However, we’re still tasked with supporting Internet Explorer 6 and 7 because apparently these old versions (IE6 is actually a decade since release) are still absolutely perfect in the eyes of certain bits of Her Majesty’s Government, and certain suppliers of software the University uses. This is a complete falsehood, and using IE6 to browse the modern internet is roughly equivalent to navigating down the Colorado River in a shoe. It’s slow, lacks support for modern standards, is monumentally insecure and costs absolutely nothing to update to a newer version.

What we’re doing now is taking a step forwards along with a few other small names such as Google, Facebook, Yahoo!, Microsoft and others in saying that IE6 support is no longer an option, and any new services we create or services which we update will no longer have support for IE6. They may work, but it’s not through design. If you’re still using IE6, for the love of all things upgrade. If you can’t upgrade because you’re using a corporate system, write a daily email to your IT team demanding they either update or install an alternative browser.

On the matter of uptime and performance…

Recently as we’ve been looking at some stats (for the first time ever) it turns out that people are actually walloping the bejesus out of a few of our systems. Things like the CWD are standing up to a huge flood of requests and although the service is working mostly as designed, it’s still not quite as perfect as we want it to be. Some requests are running a bit slow, and recently our primary server failed to come back up following a power outage (much to our annoyance).

This clearly needs to be fixed, so in preparation for CWD 2.4 – which is awesome and optimised for just about everything anyway – we’ve been looking at moving to a serious cloud based CDN. This means that aside from uptime in excess of 99.99% (just under 4 minutes and 23 seconds of downtime a month) we also gain local delivery from servers around the world, so websites load even faster no matter where you are.

It’s the little things that count.

Just Blog

Today in the daily staff alerts I spotted an update about the new Engineering Hub. This is the University’s newest new building (the newest building is the refurbed Business and Law building in the old Echo offices), and will be the only new engineering school in the country for many years. However, this blog post isn’t about that.

Instead I’m wondering why news about this building (and indeed any building project) is limited to very infrequent updates on the staff mailing list (but not students, I checked). Students and staff alike are interested in what’s going on; they want to know about how new buildings are coming on, what kinds of work are being done, and why that door at the west end of the MAB is never working properly. University building projects already have a blog, last updated well over a year ago. It takes all of 5 minutes to throw together an update, or perhaps 15 minutes to do a roll-up (with photos) of what’s been happening over the last week.

Anyway, for those who are interested the building is on schedule, with piled foundations, ground beams and some ground floor slabs done. The steel frame of the building is starting to go up next week. Oh, and you’ll be pleased to hear that “method statements for the safe steel erection have been developed in conjunction with the contractor, Estates Infrastructure team and the university’s own construction health and safety team”.