Difference between revisions of "Computing"

From URY Wiki
Jump to navigation Jump to search
m (Fixed Jamie's time from '-present' to '-2023' in →‎Heads of Teams)
 
(18 intermediate revisions by 9 users not shown)
Line 18: Line 18:
 
=== Website ===
 
=== 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.
+
We look after the URY website 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'''.
+
The main public website is written in Go, and our website runs on the '''Nginx''' web server.
 
 
Our website runs on the '''Nginx''' web server, with some of our backend systems using bits of '''Apache'''.
 
  
 
=== Servers ===
 
=== Servers ===
Line 33: Line 31:
  
 
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.
 
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 ===
 
=== Software ===
Line 42: Line 39:
 
[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 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 is our 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 runned 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).
Line 51: Line 48:
 
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.
 
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).
+
It is a computing team joke about people starting BAPS3. Various people have tried this, and the current try is a server called BAPSicle using the WebStudio interface. Let's see if it works.
  
 
==== If No Show, I Do an Instantly Organised, Unending Show - Totally Outrageous Non-stop Entertainment System (insidious Tones (iTones)) ====
 
==== If No Show, I Do an Instantly Organised, Unending Show - Totally Outrageous Non-stop Entertainment System (insidious Tones (iTones)) ====
 
[https://ury.org.uk/ceedox/computing:software:in-house:insidioustones Ceedox Documentation]
 
[https://ury.org.uk/ceedox/computing:software:in-house:insidioustones 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.
+
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 to define a range of pre-defined playlist schedules and some automated playlist generation. Its scheduler is part of the MyRadio framework and integrates with the telnet interface of 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. There's also a lot of shouting and arguing with it too. Its a range of emotions.
  
 
==== MyRadio ====
 
==== MyRadio ====
Line 81: Line 78:
 
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]!
 
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 ====
+
==== WebStudio ====
 +
 
 +
2020 happened. Pandemic happened. WebStudio got made, to allow people to present from home. Written in TypeScript, React and Redux, with the server side in Python.
 +
 
 +
==== Show Planner (this is pretty much dead now, this is here for the history) ====
 
[https://ury.org.uk/ceedox/computing:software:in-house:myury:nipsweb Ceedox Documentation]
 
[https://ury.org.uk/ceedox/computing:software:in-house:myury:nipsweb 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.
+
Built upon the MyRadio 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.
 +
 
 +
During initial development, it went through several names - BAPSWeb 2, BAPS Planner and NIPSWeb, before eventually being named the more simple Show Planner. It replaced BAPSWeb, a single several-thousand line PHP file and a Comic-Sans interface which were developed around the same time as BAPS itself.
 +
 
 +
Version 1 was featured as part of our Less Black and More  Graphics entry in the Student Radio Awards 2012, but was replaced by the MyRadio integrated version over the next year.
 +
 
 +
Version 2 of this little gizmo won us a Silver Best Technical Achievement at the Student Radio Awards 2013.
  
This little gizmo won us a Silver Best Technical Achievement at the Student Radio Awards 2013.
+
Version 3 is current near-completion, the client-side complete rewritten as part of MyRadio's move to Bootstrap.
  
 
=== Fun ===
 
=== Fun ===
Line 96: Line 103:
 
* BAPS, URY's very own custom playout system (Matt Fortune, 20??/??)
 
* BAPS, URY's very own custom playout system (Matt Fortune, 20??/??)
 
* The studio clock system (Lloyd Wallis, 2011/12)
 
* The studio clock system (Lloyd Wallis, 2011/12)
 +
 +
We also spend a lot of time in the studios just tinkering around, and helping engineering team with Outside Broadcasts.
  
 
== Prospective members ==
 
== Prospective members ==
Line 101: Line 110:
 
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)!
 
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.
+
URY membership is £7 if you make a regular habit of poking our systems, but anyone is free to come and have a go. The team often has meetings at on Wednesdays in VBar around 7pm.
  
 
=== What we use ===
 
=== 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:
+
As Computing Team's goals involve education and development just as much as professionalism and dependability, there is no requirement for prior knowledge. We use all of these things, and you'll learn so much more too!
  
 
* Administration of Unix-style systems, especially Debian GNU/Linux and FreeBSD
 
* Administration of Unix-style systems, especially Debian GNU/Linux and FreeBSD
 
* Administration of Windows client systems, Active Directory and Windows Server
 
* Administration of Windows client systems, Active Directory and Windows Server
* Python 2, especially Django
+
* Python
 +
* PHP
 +
* Go
 
* SQL, especially PostgreSQL
 
* SQL, especially PostgreSQL
* PHP
 
 
* Network administration (hardware and software)
 
* Network administration (hardware and software)
 
* Continuous integration - Jenkins/Hudson, Travis
 
* Continuous integration - Jenkins/Hudson, Travis
 
* Shell scripting
 
* Shell scripting
 
* Systems programming - C, Go, etc.
 
* 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 ==
 
== History ==
Line 132: Line 135:
  
 
=== Heads of Teams ===
 
=== Heads of Teams ===
 
+
* ''2023-Present'': [[James Pursglove]]
* ''2011-present'': [[Matt Windsor]]
+
* ''2023-2023'': [[Jamie Parker-East]]
 +
* ''Uknown-2023'': [[Joseph Sisson]]
 +
* ''2021-Unknown'': [[Isaac Lowe]]
 +
* ''2020-2021'': [[Marks Polakovs]]
 +
* ''2019-2020'': [[Laura Silaja]]
 +
* ''2018-2019'': [[Jordan Cameron]]
 +
* ''2017-2018'': [[Matthew Stratford]]
 +
* ''2017-2017'': [[Charles Pigott]]
 +
* ''2016-2017'': [[Chris Taylor]]
 +
* ''2014-2016'': [[Anthony Williams]]
 +
* ''2011-2014'': [[Matt Windsor]]
 
* ''2010-2011'': [[Gareth Andrew Lloyd]]
 
* ''2010-2011'': [[Gareth Andrew Lloyd]]
 
* ''2009-2010'': [[Alex Williams]]
 
* ''2009-2010'': [[Alex Williams]]
Line 142: Line 155:
  
 
In a rough reverse chronological order.
 
In a rough reverse chronological order.
 
+
* [[Connor Sanders]]
 +
* [[Ben Allen]]
 +
* [[Michael Grace]]
 +
* [[Brooke Hatton]]
 +
* [[Sophie Kinley]]
 +
* [[Qumarth Jash]]
 +
* [[Charles Pigott]]
 +
* [[Sam Willcocks]]
 
* [[Adam Taylor]]
 
* [[Adam Taylor]]
 
* [[Andrei-Costin Zisu]]
 
* [[Andrei-Costin Zisu]]
Line 150: Line 170:
 
* [[Danny Bell]]
 
* [[Danny Bell]]
 
* [[Donal Cahill]]
 
* [[Donal Cahill]]
* [[Lloyd Wallis]]
+
* [[Lloyd Wallis]] (2011-2014, still an active alumnus)
 
* [[Andy Durant]] (as a "computerneer")
 
* [[Andy Durant]] (as a "computerneer")
 
* (Expand this list!)
 
* (Expand this list!)
 
  
 
== Big Updates ==
 
== Big Updates ==
Line 161: Line 180:
 
* [[Computing Updates: Summer 2013]]
 
* [[Computing Updates: Summer 2013]]
 
* [[Computing Updates: Easter 2013]]
 
* [[Computing Updates: Easter 2013]]
 +
* Spring 2021: We're still here, and realising the wiki is very out of date.

Latest revision as of 01:49, 7 December 2023

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 and make sure that other teams are able to keep it full of content.

The main public website is written in Go, and our website runs on the Nginx web server.

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 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 runned 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.

It is a computing team joke about people starting BAPS3. Various people have tried this, and the current try is a server called BAPSicle using the WebStudio interface. Let's see if it works.

If No Show, I Do an Instantly Organised, Unending Show - Totally Outrageous Non-stop Entertainment System (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 to define a range of pre-defined playlist schedules and some automated playlist generation. Its scheduler is part of the MyRadio framework and integrates with the telnet interface of 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. There's also a lot of shouting and arguing with it too. Its a range of emotions.

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]!

WebStudio

2020 happened. Pandemic happened. WebStudio got made, to allow people to present from home. Written in TypeScript, React and Redux, with the server side in Python.

Show Planner (this is pretty much dead now, this is here for the history)

Ceedox Documentation

Built upon the MyRadio 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.

During initial development, it went through several names - BAPSWeb 2, BAPS Planner and NIPSWeb, before eventually being named the more simple Show Planner. It replaced BAPSWeb, a single several-thousand line PHP file and a Comic-Sans interface which were developed around the same time as BAPS itself.

Version 1 was featured as part of our Less Black and More Graphics entry in the Student Radio Awards 2012, but was replaced by the MyRadio integrated version over the next year.

Version 2 of this little gizmo won us a Silver Best Technical Achievement at the Student Radio Awards 2013.

Version 3 is current near-completion, the client-side complete rewritten as part of MyRadio's move to Bootstrap.

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)

We also spend a lot of time in the studios just tinkering around, and helping engineering team with Outside Broadcasts.

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)!

URY membership is £7 if you make a regular habit of poking our systems, but anyone is free to come and have a go. The team often has meetings at on Wednesdays in VBar around 7pm.

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. We use all of these things, and you'll learn so much more too!

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

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.
  • URY's longest ever serving servers (heh) were the First Generation Computing Loggers, in production for 14 years and with 10 years of HDD runtime hours each.

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.