TV: Difference between revisions

From Leeds Hackspace Wiki
Jump to navigation Jump to search
m (do not want to imply we watch broadcast television on the screen)
(→‎Status page: More info on how the IRC client and mailing list feeds are configured)
Line 22: Line 22:
* Camera feed
* Camera feed


Currently it's fetched from [https://sphere.chronosempire.org.uk/~HEx/kiosk/ https://sphere.chronosempire.org.uk/~HEx/kiosk/].
The code is stored on [https://github.com/hexwab/lhs-status GitHub] and is checked out locally to <code>/srv/lhs-status</code> on Sauron, which is then served by Apache.  


Code is on [https://github.com/hexwab/lhs-status github].
=== Mailing list feed ===
 
The list of topics on the mailing list is served as an RSS feed by Google Groups, but due to [https://en.wikipedia.org/wiki/Cross-origin_resource_sharing CORS] restrictions it cannot be accessed using an AJAX request directly from the status page. As a workaround, Apache is configured to reverse-proxy requests to <code>topics.xml</code> in the main lhs-status directory to the actual Google Groups [https://groups.google.com/forum/feed/leeds-hack-space/msgs/rss.xml?num=15 RSS URL].
 
=== IRC client ===
 
The IRC client embedded within the status page is a [https://github.com/ultrafez/shout fork] of the [https://github.com/erming/shout Shout] Node JS-based web IRC client. The fork includes Hackspace-specific additions such as a theme that hides all UI elements apart from the main chat messages window, in addition to having several pull requests on the main Shout repository merged ([https://github.com/erming/shout/pull/414 automatically joining the channel on load], and [https://github.com/erming/shout/pull/320 adding a framework for client plugins]).
 
The client runs as a node process (managed by <code>supervisord</code>), which listens for HTTP connections on port 3000. The status page then embeds the client in an <code>iframe</code> pointing at <code>http://localhost:3000</code>.

Revision as of 15:37, 19 May 2015

A plasma screen is affixed to the wall. It displays status information about the space.

The Screen

It's a Hitachi 42PD5000. Native resolution is 1024x1024, but it does not accept digital input at this resolution, or any sane resolution. The screen itself is 16:9, but all the advertised EDID modes are 4:3. The manual suggests that it should be capable of more, but these are specific to which inputs are used (DVI accepts different resolutions to VGA).

After much experimentation, I (HEx) settled on 1024x768 over VGA, software scaled to 1366x768.

Sauron

Driving the screen is an Athlon 64 box named sauron (172.31.26.150). It runs debian jessie.

User "kiosk" is logged in on boot, running Chromium in kiosk mode.

Status page

The status page displays:

  • General status from the API (open or closed, who's here, current temperature).
  • Twitter feed
  • Mailing list feed
  • IRC
  • Camera feed

The code is stored on GitHub and is checked out locally to /srv/lhs-status on Sauron, which is then served by Apache.

Mailing list feed

The list of topics on the mailing list is served as an RSS feed by Google Groups, but due to CORS restrictions it cannot be accessed using an AJAX request directly from the status page. As a workaround, Apache is configured to reverse-proxy requests to topics.xml in the main lhs-status directory to the actual Google Groups RSS URL.

IRC client

The IRC client embedded within the status page is a fork of the Shout Node JS-based web IRC client. The fork includes Hackspace-specific additions such as a theme that hides all UI elements apart from the main chat messages window, in addition to having several pull requests on the main Shout repository merged (automatically joining the channel on load, and adding a framework for client plugins).

The client runs as a node process (managed by supervisord), which listens for HTTP connections on port 3000. The status page then embeds the client in an iframe pointing at http://localhost:3000.