Recent Updates RSS Toggle Comment Threads | Keyboard Shortcuts

  • Alex Bilbie 6:33 pm on March 7, 2010 Permalink | Reply  

    Looking… Good? 

    We’re entering the last mile of developing CWD 2.0, possibly the biggest change to the design of the University’s online services since ever. We thought we’d share a few of the ideas we’ve been bouncing around so that you can see how the CWD will look in multiple locations. As you’ll be able to see, the CWD allows for each site to be clearly branded (for easy identification) whilst still remaining firmly within the unified design.

    Blogs

    Self explanatory – this will become the new default theme for all University of Lincoln blogs. Each blog will be able to change the banner independently.

    Library & Learning Resources

    A new design for the Library and Learning Resources provisions wherever we can get in to customise the design.

    My Lincoln

    A mythical new system for unifying preferences and settings around the University, My Lincoln comes in four flavours which a user can switch between depending on their home campus.

    Network Access

    A cleaner, more stylish way of logging in to the University’s network from Student Village and Riseholme Park accommodation.

    Printing

    Abstract splotches and swirls of colour tie together the University’s print services Pay For Print and Print From My PC, along with any new services developed in the future.

    Posters

    One of the new sites to archive the myriad of posters around the University, the banner image on this one is actually generated on-the-fly using old posters.

     
  • Alex Bilbie 2:43 pm on February 10, 2010 Permalink | Reply  

    My (late) 2010 New Years Resolutions 

    After a lot of thinking I think I’ve decided on the three things that I want  to focus on this year.

    1) Un-complicate my life

    Since last summer I’ve been involved with a number of projects, both within the University and outside it. As a result I’ve been very busy, to a certain extent been quite stressed and without a formal work office I’ve found it difficult to “let go”. I really feel that I need to make some changes to basically calm down. I’ve decided that I’m going to take a lot less on, especially now I’m working for Online Services I’ve got an office and a desk and I can leave my work there and forget about it at home. I still want to continue with my work with Joss on JISCPress and I’ve agreed to work with a number of departments on their websites however I really feel that is enough. I also may put to bed a number of my personal projects and perhaps focus on learning Python and continuing with my random API mashups (I’ve got a new one coming soon that makes use of the new Spotify API).

    As a result of slowing down my working life I want to increase my social activities a bit more and enjoy being a student.

    2) Put a bit more effort into my education

    I’ll admit that as a result of much of what I’ve discussed above I’ve kind of put my education second, not intentionally, but more just because my other work excites me more. So hopefully with less on I can better focus my attention on my upcoming exams and final assignments.

    3) Exercise more

    Cliche? Maybe. Even so, an advantage of working for the University is that I get free gym membership and I full intend to make use of it.

     
  • Alex Bilbie 10:32 pm on February 4, 2010 Permalink | Reply  

    Core dot Lincoln 

    So yesterday afternoon, Nick and I found ourselves talking about the data available for us to mash, mungle and meddle with here at Lincoln. Both of us have been working on our own pet projects utilising what data we can lay our paws (read: code) on, however there really isn’t much we can play with.

    Therefore, armed with borrowed marker pens we headed to the “bean bag room” (MB 1009) to see if we could lay out a University data flow diagram, highlighting the core stores that we believe are needed to provide a functional base from which to build almost any possible service.

    After much discussion we decided that the following seven core data stores are needed:

    Core Data Stores - Location, People, Messages, Me, Groups, Events, and Auth

    Core Data Stores - Location, People, Messages, Me, Groups, Events, and Auth

    Location – This is a store listing campuses, buildings on a campus, rooms in a building (and other objects such as corridors, stairs, lifts, etc) and a list of links between different building objects (for use in routing). Buildings have geolocation meta  (i.e. latitude and longitude) and building objects have XY meta so that routes can be made between objects (more on this in another post).

    People – This store is basically an interface to the University’s LDAP servers that provide basic personal information on staff and students (such as names, email addresses, phone numbers, etc) and extended meta such as which year group students are in or which departments staff work for.

    Both Location and People are considered “static” stores (hence the different colour) because the data inside will rarely change.

    Me - This store contains custom meta for individual users, e.g. which student societies they are members of, how they’d like to be contacted (e.g. SMS, email, Twitter, snail mail) and what preferences they have to communications (e.g. an interest in computing related news but not sport).

    Groups – Groups are collections of users who are associated in the same way, e.g. all level 2 students, all students in the computing faculty or all students in the drama society. This data is drawn from both People and Me.

    Events – This store holds information concerning the availability of locations. These events could be academic lessons or seminars, room bookings for staff meetings, or events that the student union are putting on however this information is not stored at this level, Events merely stores the fact that a location is (un)available at a specific date and time.

    Messages - Messages is a global notifications system for pushing content out to individuals or groups according to their individual contact preferences (defined in Me). For example, a timetabling application can push a message out to students if a lecture is cancelled and they’ll be informed of it however they elected, be it email or Twitter.

    Auth – Auth is a store containing data concerning session data for signed in users, application API keys and application authentication states (e.g. OAuth tokens).

    Using these core data stores applications can then be built on top, all using the same authentication methods, and all making use of the available services meaning users get very fine control over their computing experience and applications are able to access very rich datasets.

    We’re looking into exposing personal user data (from People and Me) using OAuth, which gives both users and the University control as to how personal data can be used. Obviously some internal services such as timetabling can’t be opted out of, however other applications such as those used by student societies can be granted or revoked access (much like Facebook Connect or Twitter’s OAuth implementation) as needed.

    When working on the white board we tried to identify the flow of data between services and this is what we came up with (click for larger image):

    Our white board data flow diagram

    Here is the cleaned up version (click for larger image):

    University of Lincoln's data flow between services

    I’m not going to go over all of the points on this chart as some are internal projects which we’ll talk about later and others are just self explanatory, however I will cover a few:

    Find a Free Room – a frequent complaint by both staff and students is that it can be difficult to find a free room at a moments notice. This could be for an impromptu meeting or a student society looking to find a room for a session. Staff can currently access a number of timetables via Portal including their own timetable, and room timetables however going through every room just to find a free one isn’t a quick task (and then, as Nick and I found yesterday when we were trying to find a room with a whiteboard, it doesn’t mean a room is free just because there isn’t a timetabled event). Therefore, a “find a free room” application would make use of the Events store to return a list of rooms that are currently available (which can be further limited to specific rooms/buildings and at certain dates/times). All staff and students would have to go through this application to make bookings in order for this to work.

    Calendar – the calendar service would provide data drawn from the Events and Me service. For students this would show their academic timetable, as well as any events for any affiliations they’re involved with (e.g. student societies or research groups) or custom events they’ve created themselves (such as assignment deadlines). For staff this could show academic timetables (for teaching staff), meetings and personal events.

    Hopefully implementing some (or even better, all) of these services will result in us able to truly implement the Strategic Plan Overview that describes the experience of the 2012 student, and hopefully Nick’s rewrite too.

     
    • Nick Jackson 11:48 pm on February 4, 2010 Permalink

      Minor point, they’re not data stores. They’re services which expose the data within them through RESTful API methods.

    • Christopher Gutteridge 11:24 am on February 5, 2010 Permalink

      We did some work on this a few years back: http://id.ecs.soton.ac.uk/docs/ which may give you some ideas. I am really happy with the URI scheme we used, and the URI/URL system works well. I am less happy with the RDF and if I had it over we’d use common schema, but there wasn’t much around back then.

      Note we have both rdf.ecs.soton.ac.uk and intra.rdf.ecs.soton.ac.uk — Intranet (IP restricted) data makes lots of sense. Our students can play with it, but it’s not visible on the external web. It contains things like peoples informal interests (as oppose to professional interests) and their locations (building/room) which we don’t place on the public pages.

      One thing I think is missing from your diagram: “Articles” or “Resources”. Things like your publications, press releases and so forth.

  • Alex Bilbie 8:55 pm on January 24, 2010 Permalink | Reply  

    Oh hi there 

    staff search

    Alex Bilbie, computing officer for Online Services

     
  • Alex Bilbie 10:01 pm on January 22, 2010 Permalink | Reply  

    How to map your own domain name to blogs.lincoln.ac.uk 

    So today http://blogs.lincoln.ac.uk/ moved over to their shiny new server and along with that comes the ability to map your own domain name to your University blog.

    This tutorial shows how to do it. Please note that whilst the theory is the same for all domains, in practise doing this for yourself will be slightly different. I personally buy my domains either from my hosting provider Dreamhost however there many others out there such as 1and1, GoDaddy, etc, etc and so I’m going to show you how this works for me.

    The first step, alter the A record (or create a CNAME) for your domain’s DNS

    Yes this sounds scary, technical and  beyond the realms of possibility however it’s dead easy. Basically the idea is that you set up hosting for the domain, and then you alter the domain’s A record, which is the special designation that is linked to the domain name which tells you which server the domain points to (in this instance you want it to point to the blog’s server). If on the other hand you’re wanting to have a subdomain (e.g. blog.alexbilbie.com) redirect to your blog, you need to create a CNAME on the root domain.

    To do this with Dreamhost:

    1. Log into your panel at https://panel.dreamhost.com/
    2. Go to manage domains
    3. If you haven’t already, add the domain (just set it up with basic hosting)
    4. When the domain has been added, click DNS under the domain you want to edit
    5. Where it says “Add a custom DNS record to [your domain name]“, leave the name field blank, in the type select “A” (which is the default), and in the value field type 195.195.10.15
    6. Click  “Add Record Now”
    7. Alternatively if you want to use a subdomain for your blog (e.g. blog.alexbilbie.com), in the “Add a custom DNS record…” section leave the name field blank, in the type field select “CNAME”, and in the value field type your blog url (e.g. alexbilbie.blogs.lincoln.ac.uk)

    Next you want to alter your blogs links

    1. Log into your blog at http://blogs.lincoln.ac.uk/wp-admin
    2. When your inside the WordPress dashboard, open the Settings menu along the left handside and select “Domain Mapping”
    3. Under “Add a new domain” type your domain name and then select “Primary domain for this blog”.

    Until your domain’s DNS has propagated (which can take up to (but rarely ever does) 48 hours) you won’t be able to access your blog from your new domain yet, however once it does you’ll be able to access it at both http://your blog name].lincoln.ac.uk/ and http://your-domain/.

    Magic.

     
  • Alex Bilbie 6:02 pm on November 24, 2009 Permalink | Reply  

    Very fast file caching library for CodeIgniter 

    I’ve written a file caching library for CodeIgniter. It’s blazing fast, can cache anything, for any length of time, and supports cache tagging which means you can delete whole groups of cache files at once. It’s completely self cleaning and also has a method that can be called in a cron job to keep the file-system tidy.

    It is intended to be used alongside CodeIgniter’s own caching library.

    The code is here http://alexbilbie.com/code/Cache.phps (remember to rename the extension to .php)

    Usage

    Add something to the cache (returns TRUE if successful)
    $this->cache->set( (string)$id, (mixed)$data, (array)$tags, (int)$lifetime );

    Get something from the cache (returns FALSE if fail)
    $this->cache->get( (string)$id );

    Delete an item
    $this->cache->delete( (string)$id );

    Delete an item by tag (accepts either one tag or an array of tags)
    $this->cache->delete_by_tag( (string|array)$tags );

    Delete all (this will only delete cache files created by this library, not CodeIgniter’s own caches)
    $this->cache->delete_all();

    Cleanup (intended for use in a scheduled/cron job)
    $this->cache->cleanup();

    I hope people find it useful!

     
  • Alex Bilbie 4:57 pm on November 2, 2009 Permalink | Reply  

    Student Timetables 

    Back in September I was quite bored one night and (as you do when you’re bored) hacked our student timetables so I could subscribe to it in Google Calendar (or iCal or Outlook or any other calendaring app that supports .ics format).

    Joss Winn was quite impressed and offered to host it for my on the Learning Lab server, he even wrote a blog post which boosted my ego for about twenty minutes.

    Anyhow a few weeks on I’m really pleased to say that a lot of my fellow computing students are using it and I’ve been approached by the online services team (whom Nick works for) about turning my hack into “an official hack”. Not only that but I think I’ve worked out a way of tracking changes to your calendar and you being notified by @ul_timetables on Twitter AND if you send a direct message to the account you’ll also be able to add new events to your personal calendar (such as assessments and exams).

    I’ve not actually written the code yet because I’m a bit stretched for time at the moment however as soon as it’s ready I’ll announce it here and on Twitter.

     
  • Alex Bilbie 4:36 pm on November 2, 2009 Permalink | Reply  

    Hello, World (the obligatory introduction post) 

    Hello, I’m Alex Bilbie. I’m a second year computer science student working towards a MComp degree.

    Over the summer of 2009 I became involved with a number of project the University of Lincoln’s Centre for Education Research and Development were undertaking such as JISCPress and Learning Landscapes. I’ve since been very interested in working towards the concept that my friend and colleague Nick Jackson calls a ‘Joined-Up Campus’ and is something that Joss Winn, Paul Stainthorp and a number of other University figures are passionate about.

    I’m a big PHP fan and I’m currently toying with either learning Python or Ruby or putting the web to one side and playing with Objective-C so I can create that $$$ iPhone app. Hmm we’ll see.

    I’m not sure what I’m going to use this blog for to be honest; I’ve tried blogging before but never committed properly to it, however I do tweet an awful lot and some times I feel like that 140 characters is not enough to get my point across so perhaps this will just become an extension to my thoughts which would I’d normally post elsewhere.

     
c
compose new post
j
next post/next comment
k
previous post/previous comment
r
reply
e
edit
o
show/hide comments
t
go to top
l
go to login
h
show/hide help
esc
cancel