Difference between revisions of "Computing"

From URY Wiki
Jump to navigation Jump to search
Line 18: Line 18:
 
=== Website ===
 
=== Website ===
  
We look after the URY website, revamp or replace it when it gets old, and make sure that other teams are able to keep it full of content.
+
We look after the URY website, revamp or replace it when it gets old (about twice a year), and make sure that other teams are able to keep it full of content.
  
The website is written in Django, which is a '''Python''' web framework.  Coincidentally, computer science students at time of writing now learn Python as an introductory programming language.  We also have some Web systems written in '''PHP'''.
+
The website is written in Pyramid, which is a '''Python''' web framework.  Coincidentally, computer science students at time of writing now learn Python as an introductory programming language.  We also have some Web systems written in '''PHP''' and '''Ruby'''.
  
Our website runs on the '''Apache''' web server.
+
Our website runs on the '''Apache''' web server, with some of our backend systems using bits of '''Nginx'''.
  
 
=== Servers ===
 
=== Servers ===
  
We run our own physical servers, which involves a lot of nipping into our server shed to turn things on and off, swap cables around and shout at power supplies.  If you like pulling things out of racks, staring at them, sticking RAM in them and putting them back in racks, then we offer one of the finest physical server admin experiences available to York students.
+
We run our own physical servers, which involves a lot of nipping into our server shed to turn things off and on, swap cables around and shout at power supplies.  If you like pulling things out of racks, staring at them, sticking RAM in them and putting them back in racks, then we offer one of the finest physical server admin experiences available to York students.
  
 
Of course, it isn't all about the hardware.  We also do a lot of system administration on the software side, making sure that all the processes that keep URY running stay up and don't tie themselves in knots.  We run '''FreeBSD''' and '''Debian GNU/Linux''', with a '''Windows Server''' domain controller for the desktop systems.
 
Of course, it isn't all about the hardware.  We also do a lot of system administration on the software side, making sure that all the processes that keep URY running stay up and don't tie themselves in knots.  We run '''FreeBSD''' and '''Debian GNU/Linux''', with a '''Windows Server''' domain controller for the desktop systems.
Line 37: Line 37:
 
=== Software ===
 
=== Software ===
  
Compteam develop and maintain a most of our software in-house, a fact that we are very proud of - know of any other society at the university that can say that? Know of any other student radio station that can say that? We don't. We've listed some of our things below, and linked to our ''Ceedox'' wiki which keeps all our technical documentation and secrets. You have to have a URY account to see those pages, I'm afraid.
+
Compteam develop and maintain most of our software in-house, a fact that we are very proud of - know of any other society at the university that can say that? Know of any other student radio station that can say that? We don't. We've listed some of our things below, and linked to our ''Ceedox'' wiki which keeps all our technical documentation and secrets. You have to have a URY account to see those pages, I'm afraid, but York students can get one instantly by going to [https://ury.org.uk/getinvolved].
  
 
==== LoggerNG ====
 
==== LoggerNG ====
 
[https://ury.org.uk/ceedox/computing:software:in-house:loggerng Ceedox Documentation]
 
[https://ury.org.uk/ceedox/computing:software:in-house:loggerng Ceedox Documentation]
  
LoggerNG is our new-for-2013 output logging system. Our Ofcom licence means we have to have a log of 42 days of output at all time - if we aren't recording, we aren't broadcasting. The old logger system runs on some vintage desktop hardware from around 2001, so we needed something new.
+
LoggerNG is our new-for-2013 output logging system. Our Ofcom licence means we have to have a log of 42 days of output at all times - if we aren't recording, we aren't broadcasting. The old logger system runs on some vintage desktop hardware from around 2001, so we needed something new.
  
 
LoggerNG includes two dedicated servers, a ''sox''-based recording program, 65 days of FLAC files and a HTML5 download interface on a third server. It's a big thing, and needs to work 100% of the time, all the time (well, term time).
 
LoggerNG includes two dedicated servers, a ''sox''-based recording program, 65 days of FLAC files and a HTML5 download interface on a third server. It's a big thing, and needs to work 100% of the time, all the time (well, term time).
  
 
==== Broadcasting and Presenting Suite (BAPS) ====
 
==== Broadcasting and Presenting Suite (BAPS) ====
 +
This is another one of our older systems. Written around 2003 in Managed C++, at the time it was seen as everything a presenter would need to do a show - on a computer. Of course, the original designers did not plan for a decade in the future, where social media, HTML5 and APIs are the way of the future, so it is now starting to seem somewhat dated.
 +
 +
The server side of the system manages the ability to play out different audio to different sound cards. It lacks lots of functionality, but is in fact very very good at what it does.
 +
 +
Our 2013/14 roadmap is all about keeping this stable background service (also known as the Streaming Library of URY Tracks), but refresh the way users can interact with it, using BAPS Ruby Abstraction (BRA) and extending the existing capabilities of our Show Planner (HTML5/JS).
  
 
==== If no show, I something something something Never-Ending Show (insidious Tones (iTones)) ====
 
==== If no show, I something something something Never-Ending Show (insidious Tones (iTones)) ====
Line 53: Line 58:
 
Publically known as URY's Campus Jukebox, this is the system that plays songs when there's not a presenter on air. It's another of our mission critical things as we can't broadcast silence, but it also has lots of neat tricks in the form of a web interface which is marked to soon become part of the MyURY framework. It uses PHP, telnet and a little-known thing called Liquidsoap (a Savonet project). Trust us when we say it is very powerful and a lot of fun to play with.
 
Publically known as URY's Campus Jukebox, this is the system that plays songs when there's not a presenter on air. It's another of our mission critical things as we can't broadcast silence, but it also has lots of neat tricks in the form of a web interface which is marked to soon become part of the MyURY framework. It uses PHP, telnet and a little-known thing called Liquidsoap (a Savonet project). Trust us when we say it is very powerful and a lot of fun to play with.
  
==== MyURY ====
+
==== MyRadio ====
 +
This magical little thing is designed to be the glue for URY's services. Written in PHP, Twig and HTML5, this is essentially our intranet. Here's some of the things it pulls together:
 +
 
 +
* Presenter Training
 +
* Show Scheduling
 +
* URYPlayer Podcasts
 +
* Show Resources (beds, jingles etc.)
 +
* Show Planning
 +
* In-Studio Information (live messages, news & stats)
 +
* Chart & Playlists
 +
* Central Music Library
 +
* iTones
 +
* Mailing Lists
 +
* Webcams (and archives)
 +
* Show Monitoring
 +
* Statistics
 +
 
 +
All of this is also exposed using an API [https://ury.org.uk/api/] which provides us with easy control and remote access to all of the above as well as Users, Committees, Images, Tracklists and our Studio Selector.
 +
 
 +
This API is then in turn used by a range of our resources, including our RadioPlayer page, E-mail service, MixCloud uploader, Presenter website pages, IRC bot and more. Put simply, this bundle of PHP holds our station together.
 +
 
 +
Oh, did I mention we're trying to generalise it so other stations can learn what we do under the hood? It's open sourced at [https://github.com/UniversityRadioYork/MyRadio]!
  
 
==== Show Planner ====
 
==== Show Planner ====
Line 59: Line 85:
  
 
Built upon the MyURY framework, Show Planner is a HTML5 version of the in-studio BAPS client, but in a web browser. It allows anyone to plan shows, upload files and do lots of other neat stuff. If you like lots of pretty client side stuff, with a multi-user editable backend, then you'll love this.
 
Built upon the MyURY framework, Show Planner is a HTML5 version of the in-studio BAPS client, but in a web browser. It allows anyone to plan shows, upload files and do lots of other neat stuff. If you like lots of pretty client side stuff, with a multi-user editable backend, then you'll love this.
 +
 +
This little gizmo won us a Silver Best Technical Achievement at the Student Radio Awards 2013.
  
 
=== Fun ===
 
=== Fun ===
Line 75: Line 103:
 
You will need to be a member of URY (and thus pay URY membership dues) in order to run for a position or gain elevated access on URY systems.  However, we allow non-members to "shadow" the team, attend team meetings and contribute to our public code repositories, so you can certainly try us out or get involved with no obligation to pay up-front.
 
You will need to be a member of URY (and thus pay URY membership dues) in order to run for a position or gain elevated access on URY systems.  However, we allow non-members to "shadow" the team, attend team meetings and contribute to our public code repositories, so you can certainly try us out or get involved with no obligation to pay up-front.
  
=== What we like to see ===
+
=== What we use ===
  
As Computing Team's goals involve education and development just as much as professionalism and dependability, there is no requirement for prior knowledge as long as you're willing to learn on the job.  That being said, some knowledge of any of the following would be a great start:
+
As Computing Team's goals involve education and development just as much as professionalism and dependability, there is no requirement for prior knowledge.  That being said, some knowledge of any of the following would be a great start:
  
 
* Administration of Unix-style systems, especially Debian GNU/Linux and FreeBSD
 
* Administration of Unix-style systems, especially Debian GNU/Linux and FreeBSD
Line 119: Line 147:
 
* [[Sam Gamble]] (2011-12)
 
* [[Sam Gamble]] (2011-12)
 
* [[Anthony Williams]]
 
* [[Anthony Williams]]
* [[Lloyd Wallis]]
 
 
* [[Danny Bell]]
 
* [[Danny Bell]]
 
* [[Donal Cahill]]
 
* [[Donal Cahill]]
 +
* [[Lloyd Wallis]]
 
* [[Andy Durant]] (as a "computerneer")
 
* [[Andy Durant]] (as a "computerneer")
 
* (Expand this list!)
 
* (Expand this list!)

Revision as of 22:39, 20 December 2013

Computing Team
Ctlogo.png
Maintains URY's computer systems, both hardware and software. Keeps the URY streams and website running.
Constitution
Created ???
Defined Here
Roles Head of Computing
Assistant Head of Computing
Webmaster
Computing Officer (multiple)
Contacts
General Enquiries computing@ury.org.uk
Get Involved computing@ury.org.uk
Head of Team head.of.computing@ury.org.uk

Computing Team is the URY team responsible for maintaining URY's computer ordinance, both hardware and software.

What do we do?

We like to think of ourselves as the everything team, because while we're limited to poking anything that involves computers, we actually do an incredible amount of stuff:

Website

We look after the URY website, revamp or replace it when it gets old (about twice a year), and make sure that other teams are able to keep it full of content.

The website is written in Pyramid, which is a Python web framework. Coincidentally, computer science students at time of writing now learn Python as an introductory programming language. We also have some Web systems written in PHP and Ruby.

Our website runs on the Apache web server, with some of our backend systems using bits of Nginx.

Servers

We run our own physical servers, which involves a lot of nipping into our server shed to turn things off and on, swap cables around and shout at power supplies. If you like pulling things out of racks, staring at them, sticking RAM in them and putting them back in racks, then we offer one of the finest physical server admin experiences available to York students.

Of course, it isn't all about the hardware. We also do a lot of system administration on the software side, making sure that all the processes that keep URY running stay up and don't tie themselves in knots. We run FreeBSD and Debian GNU/Linux, with a Windows Server domain controller for the desktop systems.

Desktops

Each studio has a few computers, typically running Windows, that are used by presenters for playing out sound, connecting to the Internet, and using our Studio Information Service. These have to be maintained, of course, and it's us that rise to the challenge.


Software

Compteam develop and maintain most of our software in-house, a fact that we are very proud of - know of any other society at the university that can say that? Know of any other student radio station that can say that? We don't. We've listed some of our things below, and linked to our Ceedox wiki which keeps all our technical documentation and secrets. You have to have a URY account to see those pages, I'm afraid, but York students can get one instantly by going to [1].

LoggerNG

Ceedox Documentation

LoggerNG is our new-for-2013 output logging system. Our Ofcom licence means we have to have a log of 42 days of output at all times - if we aren't recording, we aren't broadcasting. The old logger system runs on some vintage desktop hardware from around 2001, so we needed something new.

LoggerNG includes two dedicated servers, a sox-based recording program, 65 days of FLAC files and a HTML5 download interface on a third server. It's a big thing, and needs to work 100% of the time, all the time (well, term time).

Broadcasting and Presenting Suite (BAPS)

This is another one of our older systems. Written around 2003 in Managed C++, at the time it was seen as everything a presenter would need to do a show - on a computer. Of course, the original designers did not plan for a decade in the future, where social media, HTML5 and APIs are the way of the future, so it is now starting to seem somewhat dated.

The server side of the system manages the ability to play out different audio to different sound cards. It lacks lots of functionality, but is in fact very very good at what it does.

Our 2013/14 roadmap is all about keeping this stable background service (also known as the Streaming Library of URY Tracks), but refresh the way users can interact with it, using BAPS Ruby Abstraction (BRA) and extending the existing capabilities of our Show Planner (HTML5/JS).

If no show, I something something something Never-Ending Show (insidious Tones (iTones))

Ceedox Documentation

Publically known as URY's Campus Jukebox, this is the system that plays songs when there's not a presenter on air. It's another of our mission critical things as we can't broadcast silence, but it also has lots of neat tricks in the form of a web interface which is marked to soon become part of the MyURY framework. It uses PHP, telnet and a little-known thing called Liquidsoap (a Savonet project). Trust us when we say it is very powerful and a lot of fun to play with.

MyRadio

This magical little thing is designed to be the glue for URY's services. Written in PHP, Twig and HTML5, this is essentially our intranet. Here's some of the things it pulls together:

* Presenter Training
* Show Scheduling
* URYPlayer Podcasts
* Show Resources (beds, jingles etc.)
* Show Planning
* In-Studio Information (live messages, news & stats)
* Chart & Playlists
* Central Music Library
* iTones
* Mailing Lists
* Webcams (and archives)
* Show Monitoring
* Statistics

All of this is also exposed using an API [2] which provides us with easy control and remote access to all of the above as well as Users, Committees, Images, Tracklists and our Studio Selector.

This API is then in turn used by a range of our resources, including our RadioPlayer page, E-mail service, MixCloud uploader, Presenter website pages, IRC bot and more. Put simply, this bundle of PHP holds our station together.

Oh, did I mention we're trying to generalise it so other stations can learn what we do under the hood? It's open sourced at [3]!

Show Planner

Ceedox Documentation

Built upon the MyURY framework, Show Planner is a HTML5 version of the in-studio BAPS client, but in a web browser. It allows anyone to plan shows, upload files and do lots of other neat stuff. If you like lots of pretty client side stuff, with a multi-user editable backend, then you'll love this.

This little gizmo won us a Silver Best Technical Achievement at the Student Radio Awards 2013.

Fun

Though Compteam have the burden of a lot of responsibility for critical systems most of the time, really most of us are here to have fun.

Being in and around a student radio station gives people who want to play around with new ideas in an existing context a real jumpstart, and as a consequence whenever we're not fixing stuff we're often in URY working on making new things. Here are a few examples:

  • BAPS, URY's very own custom playout system (Matt Fortune, 20??/??)
  • The studio clock system (Lloyd Wallis, 2011/12)

Prospective members

Computing Team is always looking for new members, so if you're interested by what we do, send us an email (see the infobox on the right hand side)!

You will need to be a member of URY (and thus pay URY membership dues) in order to run for a position or gain elevated access on URY systems. However, we allow non-members to "shadow" the team, attend team meetings and contribute to our public code repositories, so you can certainly try us out or get involved with no obligation to pay up-front.

What we use

As Computing Team's goals involve education and development just as much as professionalism and dependability, there is no requirement for prior knowledge. That being said, some knowledge of any of the following would be a great start:

  • Administration of Unix-style systems, especially Debian GNU/Linux and FreeBSD
  • Administration of Windows client systems, Active Directory and Windows Server
  • Python 2, especially Django
  • SQL, especially PostgreSQL
  • PHP
  • Network administration (hardware and software)
  • Continuous integration - Jenkins/Hudson, Travis
  • Shell scripting
  • Systems programming - C, Go, etc.

It'd be great if you're:

  • Ready to learn and develop "on the job"
  • Able to work both independently and as a team member
  • Willing to investigate the way things are done and experiment with new ideas
  • Willing to ask questions in order to get a better understanding
  • Able to balance course and URY work, and not overly prioritise the latter over the former

History

Computing Team was formed by separation from the Technical Team as URY's dependency on computer systems increased during the late 90s and early 2000s.

Members (past and present)

Heads of Teams

Other Members

In a rough reverse chronological order.


Big Updates

During breaks between terms, CompTeam will often update or upgrade a large number of services. We like to post a list of changes toward the end of the break.