Difference between revisions of "Bricodash/Future"

From Hack Manhattan Wiki
Jump to: navigation, search
(Current Tasks Outstanding)
(Current Tasks Outstanding)
Line 5: Line 5:
  
 
<onlyinclude>
 
<onlyinclude>
* door cam feed
+
 
** frame drops / stream stalls
+
=== BindSight 2020 ===
*** relay: slideshow frame system service (in Elixir)
+
 
**** networking
+
{{BindSight}}
***** run test against ipv6-only camera device to confirm can now handle scenario
+
 
**** basic
+
=== Webhook Notifications ===
***** validate incoming path as /:camera/:action -- differentiate camera from action
+
 
***** rudimentary server home page
+
Javascript client-side triggers to deliver messages to our Slack channels to provide alerts when the camera feed or client devices stall.
***** reimplement using GenStage
+
 
***** consumer-producer to check for bad frames
+
* migrate sleep macro to general purpose library
***** terminate consumer-producer and producer when no subscribers
+
* migrate from webhooks integration to webhooks feature of bricodash app (and update notice)
***** implement stream as snapshot flipshow
+
* server-side webhook on stall of any given device
***** reimplement stream to consume source stream
+
* when wonkiness addressed: downthrottle chromecast reboots to 1x per day; stream swap-in to never
***** ensure recovery when source stream fails
+
 
**** advanced
+
=== Server ===
***** provide for throwing timeouts
+
 
***** implement greytoss checking
+
Standardize Web server setup and fully integrate BindSight.
***** configure to launch as daemon
+
 
***** bootstrap to obtain dependencies and compile cold
+
* migrate to standard web port (now that relayd installed on router)
***** swap out both PHP and CGI touchpoints
+
* configure X-Forwarded-For logging in apache
*** investigate periodic multi-hit events:  server severing connections prematurely? badly behaved client device?
+
* enable SSL for camera feeds (requested for full conversion to new sous veil system)
*** investigate specific issue of pishop launch causing multi-hit failures on all other clients
+
* enable SSL directly via daemon's listening port (i.e., elixir rather than apache)
** webhook notifications
+
* transfer slackbot snapshots to bricolage gateway
*** migrate sleep macro to general purpose library
+
 
*** migrate from webhooks integration to webhooks feature of bricodash app (and update notice)
+
=== Documentation ===
*** server-side webhook on stall of any given device
+
 
*** when wonkiness addressed: downthrottle chromecast reboots to 1x per day; stream swap-in to never
+
Flesh out project documentation&mdash;after fixing existing problems with our Mediawiki server.
* server
+
 
** migrate to standard web port (now that relayd installed on router)
+
* recent edits monitor to trigger cache purge on transcluded Bricodash documentation updates
** configure X-Forwarded-For logging in apache
+
* help get mediawiki server 504 issues resolved (currently an obstacle to '''Bricodash''' documentation)
** enable SSL for camera feeds (requested for full conversion to new sous veil system)
+
* redraft lists in [[Bricodash#Event_Calendars|calendar sections]] as tables
** enable SSL directly via daemon's listening port (i.e., elixir rather than apache)
+
* flesh out [[:Bricodash/Future|Bricodash Future Ideas]], explaining known requirements for each
** transfer slackbot snapshots to bricolage gateway
+
 
* documentation
+
=== Cloud Log ===
** recent edits monitor to trigger cache purge on transcluded Bricodash documentation updates
+
 
** help get mediawiki server 504 issues resolved (currently an obstacle to '''Bricodash''' documentation)
+
Incorporate remaining sources into rolling update log shown in lower left-hand corner.
** redraft lists in [[Bricodash#Event_Calendars|calendar sections]] as tables
+
 
** flesh out [[:Bricodash/Future|Bricodash Future Ideas]], explaining known requirements for each
+
* add boxrs-based git repositories to Cloud Log panel
* cloud log
+
* add remaining sources to [[Bricodash#HM_Cloud_Log|HM Cloud Log]] panel
** add boxrs-based git repositories to Cloud Log panel
+
 
** add remaining sources to [[Bricodash#HM_Cloud_Log|HM Cloud Log]] panel
+
=== Calendars ===
* calendars
+
 
** calculation
+
Incorporate additional calculated and externally sourced calendar events.
*** correctly calculate dates of International Astronomy Day (email out to Astronomical League for better calculation rules)
+
 
*** calculate dates of Manhattanhenge (email out to library of American Museum of Natural History for formula)
+
==== Calculation ====
*** add eclipses and other significant astronomical events to holidays
+
* correctly calculate dates of International Astronomy Day (email out to Astronomical League for better calculation rules)
*** finish fleshing out remainder of movable feasts for [[Bricodash#Community_Calendar|Community Calendar]] (June forward)
+
* calculate dates of Manhattanhenge (email out to library of American Museum of Natural History for formula)
** integration
+
* add eclipses and other significant astronomical events to holidays
*** investigate why Offside Tavern events have fallen out of building calendar
+
* finish fleshing out remainder of movable feasts for [[Bricodash#Community_Calendar|Community Calendar]] (June forward)
*** refactor brite search by location routine to common library
+
 
*** add nyc mesh, nyc resistor, fat cat fab lab, makerbar, nyc makerspace to [[Bricodash#Community_Calendar|Community Calendar]]  
+
==== Integration ====
*** concise calendar response for interactive slackbot
+
* investigate why Offside Tavern events have fallen out of building calendar
*** enable toggling between Welcome header and holiday greetings [[Bricodash#Community_Calendar|^]]
+
* refactor brite search by location routine to common library
*** automation/streamlining tools for cross-posting HM Meetup events to Spingo
+
* add nyc mesh, nyc resistor, fat cat fab lab, makerbar, nyc makerspace to [[Bricodash#Community_Calendar|Community Calendar]]  
* cleanup
+
* concise calendar response for interactive slackbot
** integrate citymapper API for local subway stations
+
* enable toggling between Welcome header and holiday greetings [[Bricodash#Community_Calendar|^]]
** refactor source files from initial launch
+
* automation/streamlining tools for cross-posting HM Meetup events to Spingo
** squish and push fork to upstream
+
 
* upgrades
+
=== Cleanup ===
** reimplement camera gateway as system service
+
 
** migrate from bricolage to less power-hungry hardware
+
Remaining features and code maintenance before calling it a major release.
** combined community slack calendar to wiki page (requires privacy policy under brite license)
+
 
** reimplement bricolage to run as embedded system under elixir/scenic/nerves</onlyinclude>
+
* integrate citymapper API for local subway stations
 +
* refactor source files from initial launch
 +
* find owners to adopt data sourcing projects that require more than passive API calls (see sections below)
 +
* squish and push fork to upstream
 +
 
 +
=== Upgrades ===
 +
 
 +
Once built, streamline and rewrite as a truly beautiful application.
 +
 
 +
* migrate from bricolage to less power-hungry hardware
 +
* combined community slack calendar to wiki page (requires privacy policy under brite license)
 +
* reimplement bricolage to run as embedded system under elixir/scenic/nerves</onlyinclude>
  
 
== Instagram Integration ==
 
== Instagram Integration ==

Revision as of 11:56, 1 August 2019

See: Bricodash for project details

Current Tasks Outstanding

BindSight 2020

Template:BindSight

Webhook Notifications

Javascript client-side triggers to deliver messages to our Slack channels to provide alerts when the camera feed or client devices stall.

  • migrate sleep macro to general purpose library
  • migrate from webhooks integration to webhooks feature of bricodash app (and update notice)
  • server-side webhook on stall of any given device
  • when wonkiness addressed: downthrottle chromecast reboots to 1x per day; stream swap-in to never

Server

Standardize Web server setup and fully integrate BindSight.

  • migrate to standard web port (now that relayd installed on router)
  • configure X-Forwarded-For logging in apache
  • enable SSL for camera feeds (requested for full conversion to new sous veil system)
  • enable SSL directly via daemon's listening port (i.e., elixir rather than apache)
  • transfer slackbot snapshots to bricolage gateway

Documentation

Flesh out project documentation—after fixing existing problems with our Mediawiki server.

  • recent edits monitor to trigger cache purge on transcluded Bricodash documentation updates
  • help get mediawiki server 504 issues resolved (currently an obstacle to Bricodash documentation)
  • redraft lists in calendar sections as tables
  • flesh out Bricodash Future Ideas, explaining known requirements for each

Cloud Log

Incorporate remaining sources into rolling update log shown in lower left-hand corner.

  • add boxrs-based git repositories to Cloud Log panel
  • add remaining sources to HM Cloud Log panel

Calendars

Incorporate additional calculated and externally sourced calendar events.

Calculation

  • correctly calculate dates of International Astronomy Day (email out to Astronomical League for better calculation rules)
  • calculate dates of Manhattanhenge (email out to library of American Museum of Natural History for formula)
  • add eclipses and other significant astronomical events to holidays
  • finish fleshing out remainder of movable feasts for Community Calendar (June forward)

Integration

  • investigate why Offside Tavern events have fallen out of building calendar
  • refactor brite search by location routine to common library
  • add nyc mesh, nyc resistor, fat cat fab lab, makerbar, nyc makerspace to Community Calendar
  • concise calendar response for interactive slackbot
  • enable toggling between Welcome header and holiday greetings ^
  • automation/streamlining tools for cross-posting HM Meetup events to Spingo

Cleanup

Remaining features and code maintenance before calling it a major release.

  • integrate citymapper API for local subway stations
  • refactor source files from initial launch
  • find owners to adopt data sourcing projects that require more than passive API calls (see sections below)
  • squish and push fork to upstream

Upgrades

Once built, streamline and rewrite as a truly beautiful application.

  • migrate from bricolage to less power-hungry hardware
  • combined community slack calendar to wiki page (requires privacy policy under brite license)
  • reimplement bricolage to run as embedded system under elixir/scenic/nerves

Instagram Integration

  • add Instagram to Weird Photos and HM Cloud Log — this requires creating pages on Facebook under the new Graph API

Twitter Integration

  • add Twitter to Weird Photos and HM Cloud Log — this requires emailing to get a dev account, then honoring Twitter's Display Requirements

Slack Calendar Response Bot

  • interactive bot response to "What's happening?"

MJPEG Gateway Server

At some point, the gateway should be migrated to a system service running on its own port.

  • rewrite MJPG gateway as a dedicated server on own port

Draft a Privacy Policy

  • draft privacy policy (per API reqs for public sites)

Buzzer-Activated IR Remote

Additionally, there are plans to tie a ceiling-mounted IR remote into the intercom buzzer to toggle inputs on the TV. The idea would be that when the buzzer sounds, the remote would switch from the dashboard (on Chromecast) to a dedicated full screen camera input. After a delay the input would be toggled back to the Chromecast-hosted dashboard. Such an arrangement would free up the dashboard screen real-estate currently devoted to an around-the-clock camera feed—as, realistically, the only time one needs a camera feed is when a visitor is buzzing to be let in.

Alternatively, the buzzer-activated full-screen display of the door camera might be implemented by conveying the door buzzer signal to the back-end server on bricolage, which could then trigger the full-screen effect on the dashboard. However, the potential latency of such a configuration, coupled with processing power limitations of the Chromecast, make this a less attractive option. Well, that, and why do with software what you can do by cannibalizing an old remote control?

  • integrate with custom buzzer-activated IR remote hack