<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.hackmanhattan.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Beadsland</id>
	<title>Hack Manhattan Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.hackmanhattan.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Beadsland"/>
	<link rel="alternate" type="text/html" href="https://wiki.hackmanhattan.com/Special:Contributions/Beadsland"/>
	<updated>2026-05-17T23:06:04Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.40.1</generator>
	<entry>
		<id>https://wiki.hackmanhattan.com/index.php?title=Bricodash/Extra:Calendar&amp;diff=7458</id>
		<title>Bricodash/Extra:Calendar</title>
		<link rel="alternate" type="text/html" href="https://wiki.hackmanhattan.com/index.php?title=Bricodash/Extra:Calendar&amp;diff=7458"/>
		<updated>2020-02-07T07:28:32Z</updated>

		<summary type="html">&lt;p&gt;Beadsland: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''See also:'' [[Bricodash/Extra:Repos]]&lt;br /&gt;
&lt;br /&gt;
= What is This? =&lt;br /&gt;
&lt;br /&gt;
Items entered below will be parsed for inclusion in the [[Bricodash#Community_Calendar|Bricodash Community Calendar]].&lt;br /&gt;
&lt;br /&gt;
Events listings follow the following syntax: &amp;lt;code&amp;gt;* &amp;amp;lt;Human-Readable Date/Time&amp;amp;gt; :: &amp;amp;lt;Event Title&amp;amp;gt; :: &amp;amp;lt;Emoji&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The final field is optional, and may either be a small number of emoji to appear at the end of the event listing, or else the relative path to an image already pre-loaded on the Bricodash server.&lt;br /&gt;
&lt;br /&gt;
Optionally, the first field may begin with a &amp;quot;#&amp;quot;, in which case the entire event line is treated as a comment&amp;amp;mdash;and thus ignored. This can be used to leave reminders for recurring events that have a different date each year, such as annual conventions where dates are only announced in the lead-up to the event.&lt;br /&gt;
&lt;br /&gt;
=Extra Community Calendar Items=&lt;br /&gt;
&lt;br /&gt;
* #Jan 5 at 10 am :: LES E.C. E-Waste Recycling Event (Union Square&amp;amp;mdash;E 17th) :: ☠🖥🔋☣️&lt;br /&gt;
&lt;br /&gt;
* Feb 2 :: Registrations for Great Saunter Due to Open :: 🗽🚶🏼‍♀️🚶🏿‍♂️🚶🏻‍♀️&lt;br /&gt;
&lt;br /&gt;
* Feb 12 at 6:30 pm :: Out in Tech NY | Tech-nically Dating (555 W 18th&amp;amp;mdash;Lobby) :: 🌈💕📱&lt;br /&gt;
&lt;br /&gt;
* Jul 31 :: First Day of HOPE 2020 (St. John's Uni):: ⌨️🌎&lt;br /&gt;
* Aug 2 :: Last Day of HOPE 2020 (St. John's Uni) :: ⌨️🌎&lt;br /&gt;
&lt;br /&gt;
* #Oct 6 at 1 pm :: Just for Fun / October Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* #Nov 2 at 9:30 am :: Just for Fun / November Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* #Dec 8 at 1 pm :: Just for Fun / December Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* Jan 11 at 9:30 am :: Just for Fun / January Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* Feb 9 at 1 pm :: Just for Fun / January Crafts Day (Penn South) :: 🎨&lt;br /&gt;
&lt;br /&gt;
* #Sep 14 at 10 am :: Penn South Flea Market (W 26 btw 8th &amp;amp; 9th) :: 🏷️🛍️&lt;br /&gt;
* #Sep 22 at 10 am :: SAFE Disposal Event (Union Square&amp;amp;mdash;North Plaza) :: ☠🖥🔋☣️&lt;br /&gt;
* #Oct 3 :: First Day of NY Comic Con &amp;lt;img class=&amp;quot;logo&amp;quot; src=&amp;quot;img/flickr_nalends_super_pop.png&amp;quot;&amp;gt; / Anime Expo (Javits Center)&lt;br /&gt;
* #Oct 6 :: Last Day of NY Comic Con &amp;lt;img class=&amp;quot;logo&amp;quot; src=&amp;quot;img/flickr_nalends_super_pop.png&amp;quot;&amp;gt; / Anime Expo (Javits Center)&lt;br /&gt;
* #Oct 4 at 8 am :: PyGotham (Pennsylvania Hotel)&lt;br /&gt;
* #Oct 5 at 8 am :: PyGotham (Pennsylvania Hotel)&lt;br /&gt;
* #Oct 19 at 12 pm :: Gowanus Open Studios 2019 at NYC Resistor&lt;br /&gt;
* #Oct 20 at 12 pm :: Gowanus Open Studios 2019 at NYC Resistor&lt;br /&gt;
* #Nov 2 at 8 pm :: NYC Resistor Halloween Party 2019 :: 🎃🎉&lt;br /&gt;
* #Jan 1 :: Doctor Who - New Series Premiers :: img/tardis.png&lt;br /&gt;
* #Jan 2 :: First Day of Super MAGFest (National Harbor, MD) :: 🕹️🎮&lt;br /&gt;
* # Jan 5 :: Last Day of Super MAGFest (National Harbor, MD) :: 🕹️🎮&lt;/div&gt;</summary>
		<author><name>Beadsland</name></author>
	</entry>
	<entry>
		<id>https://wiki.hackmanhattan.com/index.php?title=Bricodash/Extra:Calendar&amp;diff=7450</id>
		<title>Bricodash/Extra:Calendar</title>
		<link rel="alternate" type="text/html" href="https://wiki.hackmanhattan.com/index.php?title=Bricodash/Extra:Calendar&amp;diff=7450"/>
		<updated>2020-01-21T13:26:01Z</updated>

		<summary type="html">&lt;p&gt;Beadsland: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''See also:'' [[Bricodash/Extra:Repos]]&lt;br /&gt;
&lt;br /&gt;
= What is This? =&lt;br /&gt;
&lt;br /&gt;
Items entered below will be parsed for inclusion in the [[Bricodash#Community_Calendar|Bricodash Community Calendar]].&lt;br /&gt;
&lt;br /&gt;
Events listings follow the following syntax: &amp;lt;code&amp;gt;* &amp;amp;lt;Human-Readable Date/Time&amp;amp;gt; :: &amp;amp;lt;Event Title&amp;amp;gt; :: &amp;amp;lt;Emoji&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The final field is optional, and may either be a small number of emoji to appear at the end of the event listing, or else the relative path to an image already pre-loaded on the Bricodash server.&lt;br /&gt;
&lt;br /&gt;
Optionally, the first field may begin with a &amp;quot;#&amp;quot;, in which case the entire event line is treated as a comment&amp;amp;mdash;and thus ignored. This can be used to leave reminders for recurring events that have a different date each year, such as annual conventions where dates are only announced in the lead-up to the event.&lt;br /&gt;
&lt;br /&gt;
=Extra Community Calendar Items=&lt;br /&gt;
&lt;br /&gt;
* #Jan 5 at 10 am :: LES E.C. E-Waste Recycling Event (Union Square&amp;amp;mdash;E 17th) :: ☠🖥🔋☣️&lt;br /&gt;
&lt;br /&gt;
* Feb 2 :: Registrations for Great Saunter Due to Open :: 🗽🚶🏼‍♀️🚶🏿‍♂️🚶🏻‍♀️&lt;br /&gt;
&lt;br /&gt;
* Feb 12 at 6:30 pm :: Out in Tech NY | Tech-nically Dating (555 W 18th&amp;amp;mdash;Lobby) :: 🌈💕📱&lt;br /&gt;
&lt;br /&gt;
* Jul 31 :: First Day of HOPE 2020 (St. John's Uni):: ⌨️🌎&lt;br /&gt;
* Aug 2 :: Last Day of HOPE 2020 (St. John's Uni) :: ⌨️🌎&lt;br /&gt;
&lt;br /&gt;
* #Oct 6 at 1 pm :: Just for Fun / October Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* #Nov 2 at 9:30 am :: Just for Fun / November Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* #Dec 8 at 1 pm :: Just for Fun / December Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* Jan 11 at 9:30 am :: Just for Fun / January Crafts Day (Penn South) :: 🎨&lt;br /&gt;
&lt;br /&gt;
* #Sep 14 at 10 am :: Penn South Flea Market (W 26 btw 8th &amp;amp; 9th) :: 🏷️🛍️&lt;br /&gt;
* #Sep 22 at 10 am :: SAFE Disposal Event (Union Square&amp;amp;mdash;North Plaza) :: ☠🖥🔋☣️&lt;br /&gt;
* #Oct 3 :: First Day of NY Comic Con &amp;lt;img class=&amp;quot;logo&amp;quot; src=&amp;quot;img/flickr_nalends_super_pop.png&amp;quot;&amp;gt; / Anime Expo (Javits Center)&lt;br /&gt;
* #Oct 6 :: Last Day of NY Comic Con &amp;lt;img class=&amp;quot;logo&amp;quot; src=&amp;quot;img/flickr_nalends_super_pop.png&amp;quot;&amp;gt; / Anime Expo (Javits Center)&lt;br /&gt;
* #Oct 4 at 8 am :: PyGotham (Pennsylvania Hotel)&lt;br /&gt;
* #Oct 5 at 8 am :: PyGotham (Pennsylvania Hotel)&lt;br /&gt;
* #Oct 19 at 12 pm :: Gowanus Open Studios 2019 at NYC Resistor&lt;br /&gt;
* #Oct 20 at 12 pm :: Gowanus Open Studios 2019 at NYC Resistor&lt;br /&gt;
* #Nov 2 at 8 pm :: NYC Resistor Halloween Party 2019 :: 🎃🎉&lt;br /&gt;
* #Jan 1 :: Doctor Who - New Series Premiers :: img/tardis.png&lt;br /&gt;
* #Jan 2 :: First Day of Super MAGFest (National Harbor, MD) :: 🕹️🎮&lt;br /&gt;
* # Jan 5 :: Last Day of Super MAGFest (National Harbor, MD) :: 🕹️🎮&lt;/div&gt;</summary>
		<author><name>Beadsland</name></author>
	</entry>
	<entry>
		<id>https://wiki.hackmanhattan.com/index.php?title=Bricodash/Extra:Calendar&amp;diff=7449</id>
		<title>Bricodash/Extra:Calendar</title>
		<link rel="alternate" type="text/html" href="https://wiki.hackmanhattan.com/index.php?title=Bricodash/Extra:Calendar&amp;diff=7449"/>
		<updated>2020-01-11T04:41:01Z</updated>

		<summary type="html">&lt;p&gt;Beadsland: /* Extra Community Calendar Items */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''See also:'' [[Bricodash/Extra:Repos]]&lt;br /&gt;
&lt;br /&gt;
= What is This? =&lt;br /&gt;
&lt;br /&gt;
Items entered below will be parsed for inclusion in the [[Bricodash#Community_Calendar|Bricodash Community Calendar]].&lt;br /&gt;
&lt;br /&gt;
Events listings follow the following syntax: &amp;lt;code&amp;gt;* &amp;amp;lt;Human-Readable Date/Time&amp;amp;gt; :: &amp;amp;lt;Event Title&amp;amp;gt; :: &amp;amp;lt;Emoji&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The final field is optional, and may either be a small number of emoji to appear at the end of the event listing, or else the relative path to an image already pre-loaded on the Bricodash server.&lt;br /&gt;
&lt;br /&gt;
Optionally, the first field may begin with a &amp;quot;#&amp;quot;, in which case the entire event line is treated as a comment&amp;amp;mdash;and thus ignored. This can be used to leave reminders for recurring events that have a different date each year, such as annual conventions where dates are only announced in the lead-up to the event.&lt;br /&gt;
&lt;br /&gt;
=Extra Community Calendar Items=&lt;br /&gt;
&lt;br /&gt;
#* Jan 5 at 10 am :: LES E.C. E-Waste Recycling Event (Union Square&amp;amp;mdash;E 17th) :: ☠🖥🔋☣️&lt;br /&gt;
&lt;br /&gt;
* Jan 25 :: Have Registrations for Great Saunter Opened?? :: 🗽🚶🏼‍♀️🚶🏿‍♂️🚶🏻‍♀️&lt;br /&gt;
&lt;br /&gt;
* Jul 31 :: First Day of HOPE 2020 (St. John's Uni):: ⌨️🌎&lt;br /&gt;
* Aug 2 :: Last Day of HOPE 2020 (St. John's Uni) :: ⌨️🌎&lt;br /&gt;
&lt;br /&gt;
* #Oct 6 at 1 pm :: Just for Fun / October Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* #Nov 2 at 9:30 am :: Just for Fun / November Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* #Dec 8 at 1 pm :: Just for Fun / December Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* Jan 11 at 9:30 am :: Just for Fun / January Crafts Day (Penn South) :: 🎨&lt;br /&gt;
&lt;br /&gt;
* #Sep 14 at 10 am :: Penn South Flea Market (W 26 btw 8th &amp;amp; 9th) :: 🏷️🛍️&lt;br /&gt;
* #Sep 22 at 10 am :: SAFE Disposal Event (Union Square&amp;amp;mdash;North Plaza) :: ☠🖥🔋☣️&lt;br /&gt;
* #Oct 3 :: First Day of NY Comic Con &amp;lt;img class=&amp;quot;logo&amp;quot; src=&amp;quot;img/flickr_nalends_super_pop.png&amp;quot;&amp;gt; / Anime Expo (Javits Center)&lt;br /&gt;
* #Oct 6 :: Last Day of NY Comic Con &amp;lt;img class=&amp;quot;logo&amp;quot; src=&amp;quot;img/flickr_nalends_super_pop.png&amp;quot;&amp;gt; / Anime Expo (Javits Center)&lt;br /&gt;
* #Oct 4 at 8 am :: PyGotham (Pennsylvania Hotel)&lt;br /&gt;
* #Oct 5 at 8 am :: PyGotham (Pennsylvania Hotel)&lt;br /&gt;
* #Oct 19 at 12 pm :: Gowanus Open Studios 2019 at NYC Resistor&lt;br /&gt;
* #Oct 20 at 12 pm :: Gowanus Open Studios 2019 at NYC Resistor&lt;br /&gt;
* #Nov 2 at 8 pm :: NYC Resistor Halloween Party 2019 :: 🎃🎉&lt;br /&gt;
* #Jan 1 :: Doctor Who - New Series Premiers :: img/tardis.png&lt;br /&gt;
* #Jan 2 :: First Day of Super MAGFest (National Harbor, MD) :: 🕹️🎮&lt;br /&gt;
* # Jan 5 :: Last Day of Super MAGFest (National Harbor, MD) :: 🕹️🎮&lt;/div&gt;</summary>
		<author><name>Beadsland</name></author>
	</entry>
	<entry>
		<id>https://wiki.hackmanhattan.com/index.php?title=Bricodash/Extra:Calendar&amp;diff=7448</id>
		<title>Bricodash/Extra:Calendar</title>
		<link rel="alternate" type="text/html" href="https://wiki.hackmanhattan.com/index.php?title=Bricodash/Extra:Calendar&amp;diff=7448"/>
		<updated>2020-01-10T05:58:12Z</updated>

		<summary type="html">&lt;p&gt;Beadsland: /* Extra Community Calendar Items */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''See also:'' [[Bricodash/Extra:Repos]]&lt;br /&gt;
&lt;br /&gt;
= What is This? =&lt;br /&gt;
&lt;br /&gt;
Items entered below will be parsed for inclusion in the [[Bricodash#Community_Calendar|Bricodash Community Calendar]].&lt;br /&gt;
&lt;br /&gt;
Events listings follow the following syntax: &amp;lt;code&amp;gt;* &amp;amp;lt;Human-Readable Date/Time&amp;amp;gt; :: &amp;amp;lt;Event Title&amp;amp;gt; :: &amp;amp;lt;Emoji&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The final field is optional, and may either be a small number of emoji to appear at the end of the event listing, or else the relative path to an image already pre-loaded on the Bricodash server.&lt;br /&gt;
&lt;br /&gt;
Optionally, the first field may begin with a &amp;quot;#&amp;quot;, in which case the entire event line is treated as a comment&amp;amp;mdash;and thus ignored. This can be used to leave reminders for recurring events that have a different date each year, such as annual conventions where dates are only announced in the lead-up to the event.&lt;br /&gt;
&lt;br /&gt;
=Extra Community Calendar Items=&lt;br /&gt;
&lt;br /&gt;
* #Oct 19 at 12 pm :: Gowanus Open Studios 2019 at NYC Resistor&lt;br /&gt;
* #Oct 20 at 12 pm :: Gowanus Open Studios 2019 at NYC Resistor&lt;br /&gt;
* Nov 2 at 8 pm :: NYC Resistor Halloween Party 2019 :: 🎃🎉&lt;br /&gt;
&lt;br /&gt;
* Oct 6 at 1 pm :: Just for Fun / October Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* Nov 2 at 9:30 am :: Just for Fun / November Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* Dec 8 at 1 pm :: Just for Fun / December Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* Jan 11 at 9:30 am :: Just for Fun / January Crafts Day (Penn South) :: 🎨&lt;br /&gt;
&lt;br /&gt;
#* Jan 1 :: Doctor Who - New Series Premiers :: img/tardis.png&lt;br /&gt;
#* Jan 2 :: First Day of Super MAGFest (National Harbor, MD) :: 🕹️🎮&lt;br /&gt;
#* Jan 5 :: Last Day of Super MAGFest (National Harbor, MD) :: 🕹️🎮&lt;br /&gt;
* Jan 25 :: Have Registrations for Great Saunter Opened?? :: 🗽🚶🏼‍♀️🚶🏿‍♂️🚶🏻‍♀️&lt;br /&gt;
&lt;br /&gt;
* #Sep 14 at 10 am :: Penn South Flea Market (W 26 btw 8th &amp;amp; 9th) :: 🏷️🛍️&lt;br /&gt;
* #Sep 22 at 10 am :: SAFE Disposal Event (Union Square&amp;amp;mdash;North Plaza) :: ☠🖥🔋☣️&lt;br /&gt;
* Jan 5 at 10 am :: LES E.C. E-Waste Recycling Event (Union Square&amp;amp;mdash;E 17th) :: ☠🖥🔋☣️&lt;br /&gt;
&lt;br /&gt;
* #Oct 3 :: First Day of NY Comic Con &amp;lt;img class=&amp;quot;logo&amp;quot; src=&amp;quot;img/flickr_nalends_super_pop.png&amp;quot;&amp;gt; / Anime Expo (Javits Center)&lt;br /&gt;
* #Oct 6 :: Last Day of NY Comic Con &amp;lt;img class=&amp;quot;logo&amp;quot; src=&amp;quot;img/flickr_nalends_super_pop.png&amp;quot;&amp;gt; / Anime Expo (Javits Center)&lt;br /&gt;
&lt;br /&gt;
* #Oct 4 at 8 am :: PyGotham (Pennsylvania Hotel)&lt;br /&gt;
* #Oct 5 at 8 am :: PyGotham (Pennsylvania Hotel)&lt;br /&gt;
&lt;br /&gt;
* #Oct 9 at 7 pm :: &amp;quot;Off the Hook&amp;quot; Live (Brooklyn Commons) :: 📻🎙️&lt;/div&gt;</summary>
		<author><name>Beadsland</name></author>
	</entry>
	<entry>
		<id>https://wiki.hackmanhattan.com/index.php?title=User:Beadsland&amp;diff=7442</id>
		<title>User:Beadsland</title>
		<link rel="alternate" type="text/html" href="https://wiki.hackmanhattan.com/index.php?title=User:Beadsland&amp;diff=7442"/>
		<updated>2020-01-05T10:27:04Z</updated>

		<summary type="html">&lt;p&gt;Beadsland: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Beads Land-Trujillo.jpg|right|thumb||Beads Land-Trujillo]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height: 2em&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;white-space: nowrap&amp;quot;&amp;gt;[[File:Slack icon.png|frameless|25px]][https://hackmanhattan.slack.com/team/U7PCGNK5Y @beadsland@hackmanhattan.slack.com]&amp;lt;/span&amp;gt; ([https://join.slack.com/t/hackmanhattan/shared_invite/enQtMzYzNzc3NTc1NTIwLTBjMWNkMTBmNjIzODg3NzM3N2ZkYjNhNWRiYzQwOGQyMjljZmM3Yzc2ZDFkMmVkYjkxYjljN2I4Zjg1ZWM4ZDI join our slack]) |&lt;br /&gt;
&amp;lt;span style=&amp;quot;white-space: nowrap&amp;quot;&amp;gt;[[File:Mastodon_icon.gif||frameless|20px]]&amp;amp;thinsp;[https://mastodon.social/@beadsland @beadsland@mastodon.social]&amp;lt;/span&amp;gt; | &lt;br /&gt;
&amp;lt;span style=&amp;quot;white-space: nowrap&amp;quot;&amp;gt;[[File:Twitter dead icon.png||frameless|25px]][https://twitter.com/beadsland @beadsland@twitter.com]&amp;lt;/span&amp;gt; |&lt;br /&gt;
&amp;lt;span style=&amp;quot;white-space: nowrap&amp;quot;&amp;gt;[[File:OkC icon.png||frameless|20px]]&amp;amp;thinsp;[https://www.okcupid.com/profile/DIYStandingDesk @DIYStandingDesk@okcupid.com]&amp;lt;/span&amp;gt; |&lt;br /&gt;
&amp;lt;span style=&amp;quot;white-space: nowrap&amp;quot;&amp;gt;[[File:Github_icon.jpg|25px]][https://github.com/beadsland?tab=repositories @beadsland@github.com]&amp;lt;/span&amp;gt; |&lt;br /&gt;
&amp;lt;span style=&amp;quot;white-space: nowrap&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size: 20px&amp;quot;&amp;gt;🌩&amp;lt;/span&amp;gt;[https://drive.google.com/file/d/1HcvpPte_lQ39byGDrdPHM6ddGYsVsZkB/view?usp=sharing Applied Evolutionary Phenomenology]&amp;lt;/span&amp;gt; |&lt;br /&gt;
&amp;lt;span style=&amp;quot;white-space: nowrap&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size: 20px&amp;quot;&amp;gt;🐔&amp;lt;/span&amp;gt; [https://drive.google.com/file/d/1OSg2Vq7ppfyVjBM-G0DVkrbnywnHh0gF/view?usp=sharing A Monster Lives Under My Bed]&amp;lt;/span&amp;gt; |&lt;br /&gt;
&amp;lt;span style=&amp;quot;white-space: nowrap&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size: 20px&amp;quot;&amp;gt;🎨&amp;lt;/span&amp;gt; [[User:Beadsland/Ode|&amp;quot;Ode of a Romantic Poem&amp;quot;]]&amp;lt;/span&amp;gt; |&lt;br /&gt;
&amp;lt;span style=&amp;quot;white-space: nowrap&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size: 20px&amp;quot;&amp;gt;📢&amp;lt;/span&amp;gt; [[User:Beadsland/Manifesto|&amp;quot;A Maker Manifesto&amp;quot;]]&amp;lt;/span&amp;gt; |&lt;br /&gt;
&amp;lt;span style=&amp;quot;white-space: nowrap&amp;quot;&amp;gt;[[File:Hack Manhattan Gear Logo.png|23px]] Projects: [[Bricodash]], [[BindSight]], [https://github.com/beadsland/fixTracks fixTracks]&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Motto:''' &amp;quot;Never do things others can do and will do if there are things others cannot do or will not do.&amp;quot; ~&amp;amp;nbsp;Amelia&amp;amp;nbsp;Earhart&lt;br /&gt;
&lt;br /&gt;
Programmer since childhood and advocate of learning an 8-bit machine language (6502 is my preference) as the phonics of higher level languages.  One-time dial-up MUD wizard using ed, now equally disenchanted with both vi and emacs. Did my stint as a Web developer during the dot com bubble; now do my own things. Favorite languages: Elixir/Erlang, Lua, PostScript, LPC. Perl is my old standby, but Python is growing on me.&lt;br /&gt;
&lt;br /&gt;
Academic background in psychology and anthropology. Philosophically, think [http://nymag.com/vindicated/2016/11/the-most-important-female-coder-youve-never-heard-of.html Grace&amp;amp;nbsp;Hopper] meets [https://www.newyorker.com/magazine/2016/09/26/jane-jacobs-street-smarts Jane&amp;amp;nbsp;Jacobs] meets [http://www.uva.nl/profiel/m/o/a.mol/a.mol.html Annemarie&amp;amp;nbsp;Mol]. Or, to crib from Ambrose Bierce: &amp;quot;''Cogito cogito ergo cogito sum'' &amp;amp;mdash; 'I think that I think, therefore I think that I am;' as close an approach to certainty as any philosopher has yet made.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Co-host a monthly community crafts event for my housing co-op. Full of ideas, and love a good brainstorming session. Enjoy sharing a space where creative folk are doing creative things. I tend to go incommunicado to hibernate 🐻💤 when the days are short, only to pull frequent all-nighters 🌇🌆🌃🏙️ working on projects at the space throughout the rest of the year.&lt;br /&gt;
&lt;br /&gt;
Ƹ̵̡Ӝ̵̨̄Ʒ&lt;br /&gt;
&lt;br /&gt;
= TOC =&lt;br /&gt;
''Collapsed by default.''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Projects =&lt;br /&gt;
&lt;br /&gt;
Working on projects in three different general categories, described below, with projects listed roughly in order of priority within each category. Too many balls, not enough air.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;table-layout: fixed&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width: 31%; padding: 10px; vertical-align: text-top&amp;quot; | {{User:Beadsland/Nesting}}&lt;br /&gt;
| style=&amp;quot;width: 1%; background-color: grey&amp;quot;| &lt;br /&gt;
| style=&amp;quot;width: 31%; padding: 10px; vertical-align: text-top&amp;quot; | {{User:Beadsland/Writing}}&lt;br /&gt;
| style=&amp;quot;width: 1%; background-color: grey&amp;quot;| &lt;br /&gt;
| style=&amp;quot;width: 31%; padding: 10px; vertical-align: text-top&amp;quot; | {{User:Beadsland/Fabricating}}&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Beadsland</name></author>
	</entry>
	<entry>
		<id>https://wiki.hackmanhattan.com/index.php?title=Bricodash/Extra:Calendar&amp;diff=7439</id>
		<title>Bricodash/Extra:Calendar</title>
		<link rel="alternate" type="text/html" href="https://wiki.hackmanhattan.com/index.php?title=Bricodash/Extra:Calendar&amp;diff=7439"/>
		<updated>2020-01-03T19:34:06Z</updated>

		<summary type="html">&lt;p&gt;Beadsland: /* Extra Community Calendar Items */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''See also:'' [[Bricodash/Extra:Repos]]&lt;br /&gt;
&lt;br /&gt;
= What is This? =&lt;br /&gt;
&lt;br /&gt;
Items entered below will be parsed for inclusion in the [[Bricodash#Community_Calendar|Bricodash Community Calendar]].&lt;br /&gt;
&lt;br /&gt;
Events listings follow the following syntax: &amp;lt;code&amp;gt;* &amp;amp;lt;Human-Readable Date/Time&amp;amp;gt; :: &amp;amp;lt;Event Title&amp;amp;gt; :: &amp;amp;lt;Emoji&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The final field is optional, and may either be a small number of emoji to appear at the end of the event listing, or else the relative path to an image already pre-loaded on the Bricodash server.&lt;br /&gt;
&lt;br /&gt;
Optionally, the first field may begin with a &amp;quot;#&amp;quot;, in which case the entire event line is treated as a comment&amp;amp;mdash;and thus ignored. This can be used to leave reminders for recurring events that have a different date each year, such as annual conventions where dates are only announced in the lead-up to the event.&lt;br /&gt;
&lt;br /&gt;
=Extra Community Calendar Items=&lt;br /&gt;
&lt;br /&gt;
* #Oct 19 at 12 pm :: Gowanus Open Studios 2019 at NYC Resistor&lt;br /&gt;
* #Oct 20 at 12 pm :: Gowanus Open Studios 2019 at NYC Resistor&lt;br /&gt;
* Nov 2 at 8 pm :: NYC Resistor Halloween Party 2019 :: 🎃🎉&lt;br /&gt;
&lt;br /&gt;
* Oct 6 at 1 pm :: Just for Fun / October Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* Nov 2 at 9:30 am :: Just for Fun / November Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* Dec 8 at 1 pm :: Just for Fun / December Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* Jan 11 at 9:30 am :: Just for Fun / January Crafts Day (Penn South) :: 🎨&lt;br /&gt;
&lt;br /&gt;
* Jan 1 :: Doctor Who - New Series Premiers :: img/tardis.png&lt;br /&gt;
* Jan 2 :: First Day of Super MAGFest (National Harbor, MD) :: 🕹️🎮&lt;br /&gt;
* Jan 5 :: Last Day of Super MAGFest (National Harbor, MD) :: 🕹️🎮&lt;br /&gt;
* Jan 15 :: Have Registrations for Great Saunter Opened?? :: 🚶🏼‍♀️🚶🏿‍♂️🚶🏻‍♀️&lt;br /&gt;
&lt;br /&gt;
* #Sep 14 at 10 am :: Penn South Flea Market (W 26 btw 8th &amp;amp; 9th) :: 🏷️🛍️&lt;br /&gt;
* #Sep 22 at 10 am :: SAFE Disposal Event (Union Square&amp;amp;mdash;North Plaza) :: ☠🖥🔋☣️&lt;br /&gt;
* Jan 5 at 10 am :: LES E.C. E-Waste Recycling Event (Union Square&amp;amp;mdash;E 17th) :: ☠🖥🔋☣️&lt;br /&gt;
&lt;br /&gt;
* #Oct 3 :: First Day of NY Comic Con &amp;lt;img class=&amp;quot;logo&amp;quot; src=&amp;quot;img/flickr_nalends_super_pop.png&amp;quot;&amp;gt; / Anime Expo (Javits Center)&lt;br /&gt;
* #Oct 6 :: Last Day of NY Comic Con &amp;lt;img class=&amp;quot;logo&amp;quot; src=&amp;quot;img/flickr_nalends_super_pop.png&amp;quot;&amp;gt; / Anime Expo (Javits Center)&lt;br /&gt;
&lt;br /&gt;
* #Oct 4 at 8 am :: PyGotham (Pennsylvania Hotel)&lt;br /&gt;
* #Oct 5 at 8 am :: PyGotham (Pennsylvania Hotel)&lt;br /&gt;
&lt;br /&gt;
* #Oct 9 at 7 pm :: &amp;quot;Off the Hook&amp;quot; Live (Brooklyn Commons) :: 📻🎙️&lt;/div&gt;</summary>
		<author><name>Beadsland</name></author>
	</entry>
	<entry>
		<id>https://wiki.hackmanhattan.com/index.php?title=Bricodash/Extra:Calendar&amp;diff=7438</id>
		<title>Bricodash/Extra:Calendar</title>
		<link rel="alternate" type="text/html" href="https://wiki.hackmanhattan.com/index.php?title=Bricodash/Extra:Calendar&amp;diff=7438"/>
		<updated>2020-01-03T19:21:31Z</updated>

		<summary type="html">&lt;p&gt;Beadsland: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''See also:'' [[Bricodash/Extra:Repos]]&lt;br /&gt;
&lt;br /&gt;
= What is This? =&lt;br /&gt;
&lt;br /&gt;
Items entered below will be parsed for inclusion in the [[Bricodash#Community_Calendar|Bricodash Community Calendar]].&lt;br /&gt;
&lt;br /&gt;
Events listings follow the following syntax: &amp;lt;code&amp;gt;* &amp;amp;lt;Human-Readable Date/Time&amp;amp;gt; :: &amp;amp;lt;Event Title&amp;amp;gt; :: &amp;amp;lt;Emoji&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The final field is optional, and may either be a small number of emoji to appear at the end of the event listing, or else the relative path to an image already pre-loaded on the Bricodash server.&lt;br /&gt;
&lt;br /&gt;
Optionally, the first field may begin with a &amp;quot;#&amp;quot;, in which case the entire event line is treated as a comment&amp;amp;mdash;and thus ignored. This can be used to leave reminders for recurring events that have a different date each year, such as annual conventions where dates are only announced in the lead-up to the event.&lt;br /&gt;
&lt;br /&gt;
=Extra Community Calendar Items=&lt;br /&gt;
&lt;br /&gt;
* #Oct 19 at 12 pm :: Gowanus Open Studios 2019 at NYC Resistor&lt;br /&gt;
* #Oct 20 at 12 pm :: Gowanus Open Studios 2019 at NYC Resistor&lt;br /&gt;
* Nov 2 at 8 pm :: NYC Resistor Halloween Party 2019 :: 🎃🎉&lt;br /&gt;
&lt;br /&gt;
* Oct 6 at 1 pm :: Just for Fun / October Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* Nov 2 at 9:30 am :: Just for Fun / November Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* Dec 8 at 1 pm :: Just for Fun / December Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* Jan 11 at 9:30 am :: Just for Fun / January Crafts Day (Penn South) :: 🎨&lt;br /&gt;
&lt;br /&gt;
* Jan 1 :: Doctor Who - New Series Premiers :: img/tardis.png&lt;br /&gt;
* Jan 2 :: First Day of Super MAGFest (National Harbor, MD) :: 🕹️🎮&lt;br /&gt;
* Jan 5 :: Last Day of Super MAGFest (National Harbor, MD) :: 🕹️🎮&lt;br /&gt;
* Jan 15 :: Have Registrations for Great Saunter Opened?? :: 🚶🏼‍♀️🚶🏿‍♂️🚶🏻‍♀️&lt;br /&gt;
&lt;br /&gt;
* #Sep 14 at 10 am :: Penn South Flea Market (W 26 btw 8th &amp;amp; 9th) :: 🏷️🛍️&lt;br /&gt;
* #Sep 22 at 10 am :: SAFE Disposal Event (Union Square&amp;amp;mdash;North Plaza) :: ☠🖥🔋☣️&lt;br /&gt;
* Jan 5 at 10 am :: LES E.C. E-Waste Recycling Event (Union Square) :: ☠🖥🔋☣️&lt;br /&gt;
&lt;br /&gt;
* #Oct 3 :: First Day of NY Comic Con &amp;lt;img class=&amp;quot;logo&amp;quot; src=&amp;quot;img/flickr_nalends_super_pop.png&amp;quot;&amp;gt; / Anime Expo (Javits Center)&lt;br /&gt;
* #Oct 6 :: Last Day of NY Comic Con &amp;lt;img class=&amp;quot;logo&amp;quot; src=&amp;quot;img/flickr_nalends_super_pop.png&amp;quot;&amp;gt; / Anime Expo (Javits Center)&lt;br /&gt;
&lt;br /&gt;
* #Oct 4 at 8 am :: PyGotham (Pennsylvania Hotel)&lt;br /&gt;
* #Oct 5 at 8 am :: PyGotham (Pennsylvania Hotel)&lt;br /&gt;
&lt;br /&gt;
* #Oct 9 at 7 pm :: &amp;quot;Off the Hook&amp;quot; Live (Brooklyn Commons) :: 📻🎙️&lt;/div&gt;</summary>
		<author><name>Beadsland</name></author>
	</entry>
	<entry>
		<id>https://wiki.hackmanhattan.com/index.php?title=Bricodash/Extra:Calendar&amp;diff=7437</id>
		<title>Bricodash/Extra:Calendar</title>
		<link rel="alternate" type="text/html" href="https://wiki.hackmanhattan.com/index.php?title=Bricodash/Extra:Calendar&amp;diff=7437"/>
		<updated>2020-01-03T19:07:38Z</updated>

		<summary type="html">&lt;p&gt;Beadsland: /* Extra Community Calendar Items */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''See also:'' [[Bricodash/Extra:Repos]]&lt;br /&gt;
&lt;br /&gt;
= What is This? =&lt;br /&gt;
&lt;br /&gt;
Items entered below will be parsed for inclusion in the [[Bricodash#Community_Calendar|Bricodash Community Calendar]].&lt;br /&gt;
&lt;br /&gt;
Events listings follow the following syntax: &amp;lt;code&amp;gt;* &amp;amp;lt;Human-Readable Date/Time&amp;amp;gt; :: &amp;amp;lt;Event Title&amp;amp;gt; :: &amp;amp;lt;Emoji&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The final field is optional, and may either be a small number of emoji to appear at the end of the event listing, or else the relative path to an image already pre-loaded on the Bricodash server.&lt;br /&gt;
&lt;br /&gt;
Optionally, the first field may begin with a &amp;quot;#&amp;quot;, in which case the entire event line is treated as a comment&amp;amp;mdash;and thus ignored. This can be used to leave reminders for recurring events that have a different date each year, such as annual conventions where dates are only announced in the lead-up to the event.&lt;br /&gt;
&lt;br /&gt;
=Extra Community Calendar Items=&lt;br /&gt;
&lt;br /&gt;
* #Oct 19 at 12 pm :: Gowanus Open Studios 2019 at NYC Resistor&lt;br /&gt;
* #Oct 20 at 12 pm :: Gowanus Open Studios 2019 at NYC Resistor&lt;br /&gt;
* Nov 2 at 8 pm :: NYC Resistor Halloween Party 2019 :: 🎃🎉&lt;br /&gt;
&lt;br /&gt;
* Oct 6 at 1 pm :: Just for Fun / October Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* Nov 2 at 9:30 am :: Just for Fun / November Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* Dec 8 at 1 pm :: Just for Fun / December Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* Jan 11 at 9:30 am :: Just for Fun / January Crafts Day (Penn South) :: 🎨&lt;br /&gt;
&lt;br /&gt;
* Jan 1 :: Doctor Who - New Series Premiers :: img/tardis.png&lt;br /&gt;
* Jan 2 :: First Day of Super MAGFest (National Harbor, MD) :: 🕹️🎮&lt;br /&gt;
* Jan 5 :: Last Day of Super MAGFest (National Harbor, MD) :: 🕹️🎮&lt;br /&gt;
* Jan 15 :: Have Registrations for Great Saunter Opened?? :: 🚶🏼‍♀️🚶🏿‍♂️🚶🏻‍♀️&lt;br /&gt;
&lt;br /&gt;
* #Sep 14 at 10 am :: Penn South Flea Market (W 26 btw 8th &amp;amp; 9th) :: 🏷️🛍️&lt;br /&gt;
* #Sep 22 at 10 am :: SAFE Disposal Event (Union Square&amp;amp;mdash;North Plaza) :: ☠🖥🔋☣️&lt;br /&gt;
* Jan 5 at 10 am :: LES E-Waste Recycling Event (Union Square) :: ☠🖥🔋☣️&lt;br /&gt;
&lt;br /&gt;
* #Oct 3 :: First Day of NY Comic Con &amp;lt;img class=&amp;quot;logo&amp;quot; src=&amp;quot;img/flickr_nalends_super_pop.png&amp;quot;&amp;gt; / Anime Expo (Javits Center)&lt;br /&gt;
* #Oct 6 :: Last Day of NY Comic Con &amp;lt;img class=&amp;quot;logo&amp;quot; src=&amp;quot;img/flickr_nalends_super_pop.png&amp;quot;&amp;gt; / Anime Expo (Javits Center)&lt;br /&gt;
&lt;br /&gt;
* #Oct 4 at 8 am :: PyGotham (Pennsylvania Hotel)&lt;br /&gt;
* #Oct 5 at 8 am :: PyGotham (Pennsylvania Hotel)&lt;br /&gt;
&lt;br /&gt;
* #Oct 9 at 7 pm :: &amp;quot;Off the Hook&amp;quot; Live (Brooklyn Commons) :: 📻🎙️&lt;/div&gt;</summary>
		<author><name>Beadsland</name></author>
	</entry>
	<entry>
		<id>https://wiki.hackmanhattan.com/index.php?title=Bricodash/Extra:Calendar&amp;diff=7432</id>
		<title>Bricodash/Extra:Calendar</title>
		<link rel="alternate" type="text/html" href="https://wiki.hackmanhattan.com/index.php?title=Bricodash/Extra:Calendar&amp;diff=7432"/>
		<updated>2020-01-02T12:05:19Z</updated>

		<summary type="html">&lt;p&gt;Beadsland: /* Extra Community Calendar Items */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''See also:'' [[Bricodash/Extra:Repos]]&lt;br /&gt;
&lt;br /&gt;
= What is This? =&lt;br /&gt;
&lt;br /&gt;
Items entered below will be parsed for inclusion in the [[Bricodash#Community_Calendar|Bricodash Community Calendar]].&lt;br /&gt;
&lt;br /&gt;
Events listings follow the following syntax: &amp;lt;code&amp;gt;* &amp;amp;lt;Human-Readable Date/Time&amp;amp;gt; :: &amp;amp;lt;Event Title&amp;amp;gt; :: &amp;amp;lt;Emoji&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The final field is optional, and may either be a small number of emoji to appear at the end of the event listing, or else the relative path to an image already pre-loaded on the Bricodash server.&lt;br /&gt;
&lt;br /&gt;
Optionally, the first field may begin with a &amp;quot;#&amp;quot;, in which case the entire event line is treated as a comment&amp;amp;mdash;and thus ignored. This can be used to leave reminders for recurring events that have a different date each year, such as annual conventions where dates are only announced in the lead-up to the event.&lt;br /&gt;
&lt;br /&gt;
=Extra Community Calendar Items=&lt;br /&gt;
&lt;br /&gt;
* #Oct 19 at 12 pm :: Gowanus Open Studios 2019 at NYC Resistor&lt;br /&gt;
* #Oct 20 at 12 pm :: Gowanus Open Studios 2019 at NYC Resistor&lt;br /&gt;
* Nov 2 at 8 pm :: NYC Resistor Halloween Party 2019 :: 🎃🎉&lt;br /&gt;
&lt;br /&gt;
* Oct 6 at 1 pm :: Just for Fun / October Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* Nov 2 at 9:30 am :: Just for Fun / November Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* Dec 8 at 1 pm :: Just for Fun / December Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* Jan 11 at 9:30 am :: Just for Fun / January Crafts Day (Penn South) :: 🎨&lt;br /&gt;
&lt;br /&gt;
* Jan 1 :: Doctor Who - New Series Premiers :: img/tardis.png&lt;br /&gt;
* Jan 2 :: First Day of Super MAGFest (National Harbor, MD) :: 🕹️🎮&lt;br /&gt;
* Jan 5 :: Last Day of Super MAGFest (National Harbor, MD) :: 🕹️🎮&lt;br /&gt;
* Jan 15 :: Have Registrations for Great Saunter Opened?? :: 🚶🏼‍♀️🚶🏿‍♂️🚶🏻‍♀️&lt;br /&gt;
&lt;br /&gt;
* #Sep 14 at 10 am :: Penn South Flea Market (W 26 btw 8th &amp;amp; 9th) :: 🏷️🛍️&lt;br /&gt;
* #Sep 22 at 10 am :: SAFE Disposal Event (Union Square&amp;amp;mdash;North Plaza) :: ☠🖥🔋☣️&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* #Oct 3 :: First Day of NY Comic Con &amp;lt;img class=&amp;quot;logo&amp;quot; src=&amp;quot;img/flickr_nalends_super_pop.png&amp;quot;&amp;gt; / Anime Expo (Javits Center)&lt;br /&gt;
* #Oct 6 :: Last Day of NY Comic Con &amp;lt;img class=&amp;quot;logo&amp;quot; src=&amp;quot;img/flickr_nalends_super_pop.png&amp;quot;&amp;gt; / Anime Expo (Javits Center)&lt;br /&gt;
&lt;br /&gt;
* #Oct 4 at 8 am :: PyGotham (Pennsylvania Hotel)&lt;br /&gt;
* #Oct 5 at 8 am :: PyGotham (Pennsylvania Hotel)&lt;br /&gt;
&lt;br /&gt;
* #Oct 9 at 7 pm :: &amp;quot;Off the Hook&amp;quot; Live (Brooklyn Commons) :: 📻🎙️&lt;/div&gt;</summary>
		<author><name>Beadsland</name></author>
	</entry>
	<entry>
		<id>https://wiki.hackmanhattan.com/index.php?title=User_talk:Borealis&amp;diff=7430</id>
		<title>User talk:Borealis</title>
		<link rel="alternate" type="text/html" href="https://wiki.hackmanhattan.com/index.php?title=User_talk:Borealis&amp;diff=7430"/>
		<updated>2019-12-25T00:59:08Z</updated>

		<summary type="html">&lt;p&gt;Beadsland: Welcome!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Welcome to ''Hack Manhattan Wiki''!'''&lt;br /&gt;
We hope you will contribute much and well.&lt;br /&gt;
You will probably want to read the [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents help pages].&lt;br /&gt;
Again, welcome and have fun! [[User:Beadsland|Beadsland]] ([[User talk:Beadsland|talk]]) 00:59, 25 December 2019 (UTC)&lt;/div&gt;</summary>
		<author><name>Beadsland</name></author>
	</entry>
	<entry>
		<id>https://wiki.hackmanhattan.com/index.php?title=User:Borealis&amp;diff=7429</id>
		<title>User:Borealis</title>
		<link rel="alternate" type="text/html" href="https://wiki.hackmanhattan.com/index.php?title=User:Borealis&amp;diff=7429"/>
		<updated>2019-12-25T00:57:00Z</updated>

		<summary type="html">&lt;p&gt;Beadsland: Creating user page for new user.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Computer Systems Engineering student and NYC native. I do lots of stuff with dance music visuals/lighting, including make my own controllers with Arduino and 3D printing. I fly my Phantom drone in the increasingly rare places where it's legal. Finally escaped the Apple ecosystem on August 2019.&lt;br /&gt;
&lt;br /&gt;
THINGS I DO: Tinker with Arduino in MIDI controllers | CAD and 3D print my own controllers and things | Vinyl Cut my own stickers and things&lt;br /&gt;
&lt;br /&gt;
THINGS I WANT TO DO: Become a member | Learn CNC router | make drone attachments&lt;/div&gt;</summary>
		<author><name>Beadsland</name></author>
	</entry>
	<entry>
		<id>https://wiki.hackmanhattan.com/index.php?title=Bricodash/Future&amp;diff=7428</id>
		<title>Bricodash/Future</title>
		<link rel="alternate" type="text/html" href="https://wiki.hackmanhattan.com/index.php?title=Bricodash/Future&amp;diff=7428"/>
		<updated>2019-12-25T00:12:42Z</updated>

		<summary type="html">&lt;p&gt;Beadsland: /* Integration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
''See:'' &amp;lt;span style=&amp;quot;white-space: nowrap&amp;quot;&amp;gt;[[File:Bricodash_screenshot.png|35px]] [[Bricodash]] &amp;lt;/span&amp;gt; for project details&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table width=&amp;quot;100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;48%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current Tasks Outstanding ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
=== Performance and Maintenance ===&lt;br /&gt;
&lt;br /&gt;
==== Fixes ====&lt;br /&gt;
* fix early voting -- comma not second plus sign&lt;br /&gt;
* resolve v3/events/search failure (email reply from Eventbrite API team 22 Oct: solution being explored)&lt;br /&gt;
* explore having bricodash spawn in new tab then close old tab -- to force GC of JS code snippets&lt;br /&gt;
&lt;br /&gt;
==== Repository ====&lt;br /&gt;
* recreate repository as non-fork&lt;br /&gt;
* readme link to defaultcast&lt;br /&gt;
* research and select a code of conduct&lt;br /&gt;
* flesh out issues linking to project plan&lt;br /&gt;
&lt;br /&gt;
=== Long Overdue Calendarical Overhaul ===&lt;br /&gt;
&lt;br /&gt;
==== Reverse Engineer FCNA/ECFR Calculations ====&lt;br /&gt;
* relearn trigonometry&lt;br /&gt;
* refactor astronomical month calculations to new repository&lt;br /&gt;
* see if we can solve sunrise (sunset) equation for pair(?) of latitudes on a given meridian (at a given datetime)&lt;br /&gt;
* see if any altitude delta patterns are apparent with coarse (non-continuous) iteration over enlongation-bounded datetime range&lt;br /&gt;
* work out if we can iteratively narrow down latitude pairs to solve for altitude deltas within intersecting sunsets&lt;br /&gt;
* determine how elevation complicates all of this (i.e., intersecting sunset clusters rather than intersecting sunsets)&lt;br /&gt;
* examine if there's a solution for westward obstructions (e.g. mountain ranges) in determining sunsets&lt;br /&gt;
* explore performance gains of reimplementing search traversal via elixir calls to python calculations&lt;br /&gt;
&lt;br /&gt;
==== Islamic Calendar ====&lt;br /&gt;
* refactor islamic calendarical library to new repository&lt;br /&gt;
* incorporate for astronomical calculation as used by some in North America&lt;br /&gt;
* confirm safe astimezone use (not erroneously masking local time as UTC)&lt;br /&gt;
* refactor to combine observational and astronomical date sets&lt;br /&gt;
* add Eid al-Adha to calendar&lt;br /&gt;
&lt;br /&gt;
==== Hindu Calendar ====&lt;br /&gt;
* refactor hindu calendrical library to new repository&lt;br /&gt;
* new module to calculate enumerations of tithi for a given month&lt;br /&gt;
* new module to calculate enumerations of months for a given year (rather than lisp ordinal month)&lt;br /&gt;
* reimplement lisp functions for hindu calendar in python3&lt;br /&gt;
&lt;br /&gt;
==== Calendrical Umbrella ====&lt;br /&gt;
* spin off jewish calendarical library as dedicated project&lt;br /&gt;
* spin off master festivals project for drawing together specific calendars&lt;br /&gt;
&lt;br /&gt;
=== BindSight :2020 ===&lt;br /&gt;
&lt;br /&gt;
''See also:'' [[BindSight]] project page&lt;br /&gt;
&lt;br /&gt;
{{:BindSight}}&lt;br /&gt;
&lt;br /&gt;
=== Webhook Notifications ===&lt;br /&gt;
&lt;br /&gt;
Javascript client-side triggers to deliver messages to our Slack channels to provide alerts when the camera feed or client devices stall.&lt;br /&gt;
&lt;br /&gt;
* migrate sleep macro to general purpose library&lt;br /&gt;
* migrate from webhooks integration to webhooks feature of bricodash app (and update notice)&lt;br /&gt;
* server-side webhook on stall of any given device&lt;br /&gt;
* when wonkiness addressed: downthrottle chromecast reboots to 1x per day; stream swap-in to never&lt;br /&gt;
&lt;br /&gt;
=== Server ===&lt;br /&gt;
&lt;br /&gt;
Standardize Web server setup and fully integrate BindSight.&lt;br /&gt;
&lt;br /&gt;
* migrate to standard web port (now that relayd installed on router)&lt;br /&gt;
* configure X-Forwarded-For logging in apache&lt;br /&gt;
* enable SSL for camera feeds (requested for full conversion to new sous veil system)&lt;br /&gt;
* enable SSL directly via daemon's listening port (i.e., elixir rather than apache)&lt;br /&gt;
* transfer slackbot snapshots to bricolage gateway&lt;br /&gt;
&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
&lt;br /&gt;
Flesh out project documentation&amp;amp;mdash;after fixing existing problems with our Mediawiki server.&lt;br /&gt;
&lt;br /&gt;
* recent edits monitor to trigger cache purge on transcluded Bricodash documentation updates&lt;br /&gt;
* help get mediawiki server 504 issues resolved (currently an obstacle to '''Bricodash''' documentation)&lt;br /&gt;
* broach discussion of absent Copyrights page on Wiki -- do we want to adopt a license??&lt;br /&gt;
* redraft lists in [[Bricodash#Event_Calendars|calendar sections]] as tables&lt;br /&gt;
* flesh out [[:Bricodash/Future|Bricodash Future Ideas]], explaining known requirements for each&lt;br /&gt;
&lt;br /&gt;
=== Cloud Log ===&lt;br /&gt;
&lt;br /&gt;
Incorporate remaining sources into rolling update log shown in lower left-hand corner.&lt;br /&gt;
&lt;br /&gt;
==== User Repositories ====&lt;br /&gt;
* refactor cloud/github to abstract away github/gitlab/etc&lt;br /&gt;
* allow more than most recent pushed repository to be shown&lt;br /&gt;
* add boxrs-based git repositories to Cloud Log panel&lt;br /&gt;
&lt;br /&gt;
==== Other Cloud Services ====&lt;br /&gt;
* Mediawiki &amp;amp;mdash; pending new account requests&lt;br /&gt;
* Zendesk — count of unread/open inquiries&lt;br /&gt;
* Status updates on donations: Patreon, Paypal, Amazon Smile...&lt;br /&gt;
* write up requirements for [[Bricodash/Future#Instagram_Integration|Instagram Integration]]&lt;br /&gt;
* write up requirements for [[Bricodash/Future#Twitter_Integration|Twitter Integration]]&lt;br /&gt;
&lt;br /&gt;
==== Retire IFFF Wiki Updates ====&lt;br /&gt;
* bot to post daily cloud log update to #general on our slack&lt;br /&gt;
&lt;br /&gt;
=== Calendars ===&lt;br /&gt;
&lt;br /&gt;
Incorporate additional calculated and externally sourced calendar events.&lt;br /&gt;
&lt;br /&gt;
==== Fixes ====&lt;br /&gt;
* almanac alt for almanac events&lt;br /&gt;
* add enum of event sources for sorting priority (when same start time)&lt;br /&gt;
* move HM anniversary dates to special .cal that takes precedence on HM calendar (and also appears on NYC)&lt;br /&gt;
* swap out icalendar (buggy repetition exception handling) in favor of true API&lt;br /&gt;
&lt;br /&gt;
==== Calculation ====&lt;br /&gt;
* new module to calculate hindu lunar tithi =&amp;gt; closing muhurat =&amp;gt; solar day&lt;br /&gt;
* revise diwali/deepawali calculation using tithi rather than lisp library approximations&lt;br /&gt;
* correctly calculate dates of International Astronomy Day (email out to Astronomical League for better calculation rules)&lt;br /&gt;
* calculate dates of Manhattanhenge (email out to library of American Museum of Natural History for formula)&lt;br /&gt;
* add eclipses and other significant astronomical events to holidays&lt;br /&gt;
* finish fleshing out remainder of movable feasts for [[Bricodash#Community_Calendar|Community Calendar]] (June 2019 forward)&lt;br /&gt;
&lt;br /&gt;
==== Integration ====&lt;br /&gt;
* use google search to find Offside Tavern Meetup events&lt;br /&gt;
* add placeholder events for non-Meetup Offside Tavern events&lt;br /&gt;
* refactor brite search by location routine to common library&lt;br /&gt;
* add nyc mesh, nyc resistor, fat cat fab lab, makerbar, makerspace nyc (SI), futureworks (BK/SI), genspace to [[Bricodash#Community_Calendar|Community Calendar]] &lt;br /&gt;
* also add grow with google (if still in NYC), 2600, Off the Hook (if still broadcasting), blick, michaels, local library branches, makerish meetup events, NYC street fairs&lt;br /&gt;
* bot to post RSVPs for upcoming events to Slack&lt;br /&gt;
&lt;br /&gt;
==== Advanced ====&lt;br /&gt;
* revise #thehaps formatting to provide headers per day&lt;br /&gt;
* embed hotlinks in #thehaps channel event listings&lt;br /&gt;
* concise calendar response for interactive slackbot&lt;br /&gt;
* auto-capture of #thehaps posted events to [[Bricodash/Extra:Calendar]]&lt;br /&gt;
* automation/streamlining tools for cross-posting HM Meetup events to Spingo&lt;br /&gt;
* enable toggling between Welcome header and holiday greetings [[Bricodash#Community_Calendar|^]]&lt;br /&gt;
&lt;br /&gt;
=== Cleanup ===&lt;br /&gt;
&lt;br /&gt;
Remaining features and code maintenance before calling it a major release.&lt;br /&gt;
&lt;br /&gt;
* integrate citymapper API for local subway stations&lt;br /&gt;
* refactor source files from initial launch&lt;br /&gt;
* find owners to adopt data sourcing projects that require more than passive API calls (see sections below)&lt;br /&gt;
* squish and push fork to upstream&lt;br /&gt;
&lt;br /&gt;
=== Upgrades ===&lt;br /&gt;
&lt;br /&gt;
Once built, streamline and rewrite as a truly beautiful application.&lt;br /&gt;
&lt;br /&gt;
* migrate from bricolage to less power-hungry hardware&lt;br /&gt;
* combined community slack calendar to wiki page (requires privacy policy under brite license)&lt;br /&gt;
* reimplement bricolage to run as embedded system under elixir/scenic/nerves&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
* import python directly using beamparticle&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot; style=&amp;quot;border-right:solid 1px #a7d7f9;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; padding-left: 20px; padding-bottom: 10px&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sub-Projects Needing Owners ==&lt;br /&gt;
&lt;br /&gt;
The projects below require an investment of time&amp;amp;mdash;such as active coordination with an API's owners&amp;amp;mdash;to be implemented, but would provide meaningful improvements to the overall feature-set of Bricodash if completed. &lt;br /&gt;
&lt;br /&gt;
At some point the description for each will be fleshed out to provide a full functional specification, together with an exploration of the requirements to move forward. For now, capsule bullet points serve as place holders. For more information, touch base with [[User:Beadsland]].&lt;br /&gt;
&lt;br /&gt;
=== Instagram Integration ===&lt;br /&gt;
&lt;br /&gt;
* add Instagram to Weird Photos and HM Cloud Log &amp;amp;mdash; this requires creating pages on Facebook under the new Graph API&lt;br /&gt;
&lt;br /&gt;
=== Twitter Integration ===&lt;br /&gt;
&lt;br /&gt;
* add Twitter to Weird Photos and HM Cloud Log &amp;amp;mdash; this requires emailing to get a dev account, then honoring Twitter's [https://developer.twitter.com/en/developer-terms/display-requirements.html Display Requirements]&lt;br /&gt;
&lt;br /&gt;
=== Slack Calendar Response Bot ===&lt;br /&gt;
&lt;br /&gt;
* interactive bot response to &amp;quot;What's happening?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Draft a Privacy Policy ===&lt;br /&gt;
&lt;br /&gt;
* draft privacy policy (per API reqs for public sites)&lt;br /&gt;
&lt;br /&gt;
=== Buzzer-Activated IR Remote ===&lt;br /&gt;
&lt;br /&gt;
Additionally, there are plans to tie a ceiling-mounted IR remote into the intercom buzzer to toggle inputs on the TV. &lt;br /&gt;
The idea would be that when the buzzer sounds, the remote would switch from the dashboard (on Chromecast) to a dedicated &lt;br /&gt;
full screen camera input.  After a delay the input would be toggled back to the Chromecast-hosted dashboard.  Such an&lt;br /&gt;
arrangement would free up the dashboard screen real-estate currently devoted to an around-the-clock camera feed&amp;amp;mdash;as, realistically, the only time one needs a camera feed is when a visitor is buzzing to be let in.&lt;br /&gt;
&lt;br /&gt;
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?&lt;br /&gt;
&lt;br /&gt;
* integrate with custom buzzer-activated IR remote hack&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Beadsland</name></author>
	</entry>
	<entry>
		<id>https://wiki.hackmanhattan.com/index.php?title=Bricodash/Extra:Calendar&amp;diff=7427</id>
		<title>Bricodash/Extra:Calendar</title>
		<link rel="alternate" type="text/html" href="https://wiki.hackmanhattan.com/index.php?title=Bricodash/Extra:Calendar&amp;diff=7427"/>
		<updated>2019-12-07T20:19:05Z</updated>

		<summary type="html">&lt;p&gt;Beadsland: /* Extra Community Calendar Items */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''See also:'' [[Bricodash/Extra:Repos]]&lt;br /&gt;
&lt;br /&gt;
= What is This? =&lt;br /&gt;
&lt;br /&gt;
Items entered below will be parsed for inclusion in the [[Bricodash#Community_Calendar|Bricodash Community Calendar]].&lt;br /&gt;
&lt;br /&gt;
Events listings follow the following syntax: &amp;lt;code&amp;gt;* &amp;amp;lt;Human-Readable Date/Time&amp;amp;gt; :: &amp;amp;lt;Event Title&amp;amp;gt; :: &amp;amp;lt;Emoji&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The final field is optional, and may either be a small number of emoji to appear at the end of the event listing, or else the relative path to an image already pre-loaded on the Bricodash server.&lt;br /&gt;
&lt;br /&gt;
Optionally, the first field may begin with a &amp;quot;#&amp;quot;, in which case the entire event line is treated as a comment&amp;amp;mdash;and thus ignored. This can be used to leave reminders for recurring events that have a different date each year, such as annual conventions where dates are only announced in the lead-up to the event.&lt;br /&gt;
&lt;br /&gt;
=Extra Community Calendar Items=&lt;br /&gt;
&lt;br /&gt;
* #Oct 19 at 12 pm :: Gowanus Open Studios 2019 at NYC Resistor&lt;br /&gt;
* #Oct 20 at 12 pm :: Gowanus Open Studios 2019 at NYC Resistor&lt;br /&gt;
* Nov 2 at 8 pm :: NYC Resistor Halloween Party 2019 :: 🎃🎉&lt;br /&gt;
&lt;br /&gt;
* Oct 6 at 1 pm :: Just for Fun / October Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* Nov 2 at 9:30 am :: Just for Fun / November Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* Dec 8 at 1 pm :: Just for Fun / December Crafts Day (Penn South) :: 🎨&lt;br /&gt;
&lt;br /&gt;
* Jan 1 :: Doctor Who - New Series Premiers :: img/tardis.png&lt;br /&gt;
* Jan 2 :: First Day of Super MAGFest (National Harbor, MD) :: 🕹️🎮&lt;br /&gt;
* Jan 5 :: First Day of Super MAGFest (National Harbor, MD) :: 🕹️🎮&lt;br /&gt;
* Jan 15 :: Have Registrations for Great Saunter Opened?? :: 🚶🏼‍♀️🚶🏿‍♂️🚶🏻‍♀️&lt;br /&gt;
&lt;br /&gt;
* #Sep 14 at 10 am :: Penn South Flea Market (W 26 btw 8th &amp;amp; 9th) :: 🏷️🛍️&lt;br /&gt;
* #Sep 22 at 10 am :: SAFE Disposal Event (Union Square&amp;amp;mdash;North Plaza) :: ☠🖥🔋☣️&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* #Oct 3 :: First Day of NY Comic Con &amp;lt;img class=&amp;quot;logo&amp;quot; src=&amp;quot;img/flickr_nalends_super_pop.png&amp;quot;&amp;gt; / Anime Expo (Javits Center)&lt;br /&gt;
* #Oct 6 :: Last Day of NY Comic Con &amp;lt;img class=&amp;quot;logo&amp;quot; src=&amp;quot;img/flickr_nalends_super_pop.png&amp;quot;&amp;gt; / Anime Expo (Javits Center)&lt;br /&gt;
&lt;br /&gt;
* #Oct 4 at 8 am :: PyGotham (Pennsylvania Hotel)&lt;br /&gt;
* #Oct 5 at 8 am :: PyGotham (Pennsylvania Hotel)&lt;br /&gt;
&lt;br /&gt;
* #Oct 9 at 7 pm :: &amp;quot;Off the Hook&amp;quot; Live (Brooklyn Commons) :: 📻🎙️&lt;/div&gt;</summary>
		<author><name>Beadsland</name></author>
	</entry>
	<entry>
		<id>https://wiki.hackmanhattan.com/index.php?title=BindSight&amp;diff=7426</id>
		<title>BindSight</title>
		<link rel="alternate" type="text/html" href="https://wiki.hackmanhattan.com/index.php?title=BindSight&amp;diff=7426"/>
		<updated>2019-12-06T04:08:13Z</updated>

		<summary type="html">&lt;p&gt;Beadsland: /* Fault Tolerance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span style=&amp;quot;white-space: nowrap&amp;quot;&amp;gt;[[File:Github_icon.jpg|25px]] [https://github.com/beadsland/bindsight Github Repository]&amp;lt;/span&amp;gt; |&lt;br /&gt;
&amp;lt;span style=&amp;quot;white-space: nowrap&amp;quot;&amp;gt;[[File:Bricodash_screenshot.png|35px]] A [[Bricodash]] Sub-Project&amp;lt;/span&amp;gt; |&lt;br /&gt;
&amp;lt;span style=&amp;quot;white-space: nowrap&amp;quot;&amp;gt;[[File:Beads Land-Trujillo.jpg|20px]] A [[User:beadsland|Beadsland]] Creation&amp;lt;/span&amp;gt; __NOTOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table width=&amp;quot;100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;58%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;''Concurrent, extensible, frame-scrubbing webcam gateway.''&lt;br /&gt;
&lt;br /&gt;
Web API service to stream doorcam and spacecam to Bricodash and public gateway, respectively, while tracking activity and performance of these and other webcams at the space. Will be more efficient and reliable than spawning PHP and Python processes on an as-they-come basis. &lt;br /&gt;
&lt;br /&gt;
Written in Elixir, will be taking advantage of various new features of the language, building on the strengths of Erlang/OTP, including &amp;lt;code&amp;gt;[https://elixir-lang.org/blog/2019/02/25/mint-a-new-http-library-for-elixir/ Mint]&amp;lt;/code&amp;gt; (web client), &amp;lt;code&amp;gt;[https://elixir-lang.org/blog/2016/07/14/announcing-genstage/ GenStage]&amp;lt;/code&amp;gt; (backpressure event pipelines) and ultimately &amp;lt;code&amp;gt;[https://hexdocs.pm/mix/Mix.Tasks.Release.html mix release]&amp;lt;/code&amp;gt; (build-time deployment packaging).&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
Presently, webcam-related features of Bricodash are provided on a two-prong basis.&lt;br /&gt;
&lt;br /&gt;
=== Spacecam ===&lt;br /&gt;
&lt;br /&gt;
The public-facing [[Camera]] showing current activity in the space is presently relayed via a PHP script. This script is configured to relay various HM cameras, including those for the exterior door, the CR-10 and (when online) the hydroponics lab. In the case of the spacecam, all relayed requests are tracked to feed the ''sous veil'' [[Bricodash#Creepy_Eyeball|Creepy Eyeball]]: snapshot requests touch a file identifying the requesting pid; stream requests trigger touch two files, one on initiation of the relay, one at process termination. The Creepy Eyeball feature uses the modification times on all such files to transition the opacity of the eyeball animated gif that indicates observers are viewing the camera feed.&lt;br /&gt;
&lt;br /&gt;
The Apache server hosting the Bricodash back-end imposes a cap on the number of executing PHP processes, returning a 504 Gateway Timeout error when this cap is exceeded. Under normal usage, this isn't an issue, but PHP scripts are meant to assemble dynamic content and deliver it, not to provide a data stream as a continuously running process of indeterminate duration. The current setup is thus not ideal.&lt;br /&gt;
&lt;br /&gt;
A legacy gateway for the same [[Camera]] remains on [[Bo.x0.rs]]. When users of our Slack type &amp;quot;Who's at the space?&amp;quot;, the snapshot that our resident slackbot posts in response is drawn from the Bo.x0.rs gateway. Bo.x0.rs also tracks camera access, exposing it via the ''sousveillance'' Chrome notification mechanism. However, the ''sous veil'' Creepy Eyeball and the ''sousveillance'' Chrome notifications system do not, at present, interact or share information.&lt;br /&gt;
&lt;br /&gt;
=== Doorcam ===&lt;br /&gt;
&lt;br /&gt;
Bricodash displays a feed of the exterior door camera. Rather than the PHP script, the doorcam display is drawn from a Python3 CGI script.&lt;br /&gt;
&lt;br /&gt;
Our current setup for the door camera feed is prone to stalling and data corruption. The CGI script inspects individual frames, discarding those that are revealed to be invalid JPG format or, while valid, have corruption that renders as a grey field on the lower half of the image. A Slack webhook regime has also been explored for tracking stalling of the feed. However, even after dropping corrupt frames between the webcam and the server, additional frame corruption has appeared between server and client. Thus client-side Javascript has also been implemented to drop bad frames and trigger webhooks on stalls. Performance of the feed was such that the webhooks proved too noisy and so it is currently disabled.&lt;br /&gt;
&lt;br /&gt;
Due to hardware limitation of both Bricodash clients, the standard webcam MJPEG push stream proved too much of a firehose to accept without risk of the client lagging or freezing entirely. For this reason, the camera feed on both clients is implemented not as a stream but a throttled frames-per-second snapshot flipbook. Initially, this was managed by the CGI script. However, with the introduction of Javascript-invoked Slack webhooks to detect stalls and corruption client-side, the feed is now an entirely pull-based snapshot flipbook. &lt;br /&gt;
&lt;br /&gt;
These flipbooks are executed as upward to 10 snapshot requests per second, from each client, all of which are relayed directly to the webcam. It is possible that this has lead to greater instability on the external door camera that could be resolved by extracting frames from a single stream rather than pounding the server with near two dozen requests per second.&lt;br /&gt;
&lt;br /&gt;
The CGI script also tracks delays on flipbook snapshot requests from the Bricodash clients, reading such delays as evidence of a stalled client. This triggers a restart of the Bricodash client on the Chromecast, and would trigger a webhook alert for the pishop client (if webhooks were not currently disabled). This trigger does not distinguish between delays in flipbook snapshot requests due to stalls of the client and delays due to timeouts on the client while waiting for a stalled doorcam feed. Which means that stalls on the webcam can presently result is a restart of the Chromecast that is not, itself, stalled.&lt;br /&gt;
&lt;br /&gt;
== Functional Specification ==&lt;br /&gt;
&lt;br /&gt;
BindSight will replace both the PHP and Python gateways, and will be designed to allow for integration between the ''sous veil'' Creepy Eyeball observer-tracking system and the Bo.x0.rs ''sousveillance'' view-tracking and Chrome notifications system.&lt;br /&gt;
&lt;br /&gt;
Features will include:&lt;br /&gt;
* a GenStage pipeline to broadcast from a single stream from each camera source&lt;br /&gt;
* concurrent frame corruption checking to minimize latency&lt;br /&gt;
* high performance under stream and flipbook stress testing&lt;br /&gt;
* plug-in architecture for performance monitoring and notifications&lt;br /&gt;
* running as an independent system service (daemon)&lt;br /&gt;
* configurable support for using domain-specific SSL cert&lt;br /&gt;
* distributed plug-in for integration with Bo.x0.rs&lt;br /&gt;
&lt;br /&gt;
BindSight will leverage Elixir's [https://hexdocs.pm/gen_stage/GenStage.html GenStage] behavior to convert a single MJPEG stream into a series of frames that will then be served as any number of snapshots or reconstituted MJPEG streams on demand. This will be implemented as two half-pipelines, or ''spigots''. For each webcam, as ''slurpspigot'' will consume an MJPEG stream, releasing it as individual frames, initiate frame corruption checking, track camera performance, and broadcast to sinks. For each client request, a ''spewspigot'' will subscribe to the appropriate slurpspigot, scrub out corrupt frames, watermark the last available image in the event of a camera timeout, and serve the resulting snapshot or stream via HTTPS.&lt;br /&gt;
&lt;br /&gt;
Custom plug-ins (including several local plug-ins) will be installable per camera (slurpspigot) or per client/request (spewspigot). These will operate out-of-band as GenStage processes running concurrently with the throughput of the main pipeline. Likewise, frame corruption checks will run asynchronously, allowing frames to be passed down the pipeline independent of JPEG decompression and pixel inspection. Concurrency is the core strength of the Erlang virtual machine ([https://blog.stenmans.org/theBeamBook/#CH-BEAM BEAM]), which is designed to obtain exceptional performance by spinning up large numbers of lightweight threads.&lt;br /&gt;
&lt;br /&gt;
Erlang, and thus Elixir, is also designed for distributed systems. We will take advantage of this for integration with Bo.x0.rs, relying on Erlang's native node-discovery to manage message passing between ''souseveillance'' and ''sous veil'', despite these systems running on different hardware.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot; style=&amp;quot;border-right:solid 1px #a7d7f9;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;40%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; padding-left: 20px; padding-bottom: 10px&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current Project Plan ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Fault Tolerance ====&lt;br /&gt;
* refactor spigot as behaviour&lt;br /&gt;
* insert exit monitor into children&lt;br /&gt;
* exit monitor crashes on exit received; supervisor strategy of rest_on_one&lt;br /&gt;
* webapi exit monitor reconnects to new spew and keeps running&lt;br /&gt;
&lt;br /&gt;
==== Refactoring ====&lt;br /&gt;
* no reason to split on doubledash&lt;br /&gt;
* reconfigure profile to run when profile_seconds &amp;gt; 0&lt;br /&gt;
* refactor adhere/hold to own Adhere genstage&lt;br /&gt;
* rebalance chunk load to other genstages&lt;br /&gt;
* digest: refactor handle_events/3 case statement to function clauses&lt;br /&gt;
* digest: drop EOL determination&lt;br /&gt;
* digest: refactor further if possible&lt;br /&gt;
&lt;br /&gt;
==== Error Recovery ====&lt;br /&gt;
* deferred spigot spinup in event camera offline at startlink&lt;br /&gt;
* fix EOL check to verify in case of dropped bytes&lt;br /&gt;
* test logging on down camera&lt;br /&gt;
* don't nag when connection down (periodic warn)&lt;br /&gt;
* ensure recovery when source stream fails&lt;br /&gt;
&lt;br /&gt;
==== Validation ====&lt;br /&gt;
* review whether batch requires task&lt;br /&gt;
* consumer-producer in spew to filter out :corrupt/:greytoss/fail messages&lt;br /&gt;
* retool Validate stage to send tuple {:ok, binary} or {_status, binary}&lt;br /&gt;
* retool Digest stage to sent tuple {:ok, binary} or {:fail, error}&lt;br /&gt;
* retool polling functions to send tuple {:fail, error} when such occur&lt;br /&gt;
* consumer-producer in slurp to introduce :corrupt/:greytoss on :test stream&lt;br /&gt;
&lt;br /&gt;
==== Deep Validation ====&lt;br /&gt;
* implement greytoss checking&lt;br /&gt;
* replace async batching with task/agent batching, for JIT evaluation&lt;br /&gt;
* watermark with source timestamp&lt;br /&gt;
* configurable agpl watermark&lt;br /&gt;
* provide for timeout watermarking&lt;br /&gt;
&lt;br /&gt;
==== Advanced ====&lt;br /&gt;
* review supervision tree for batch tasks &amp;amp; agents&lt;br /&gt;
* review memory usage to mitigate ProcBin leaks&lt;br /&gt;
* integrate certificate used by Apache&lt;br /&gt;
* configure to launch as daemon&lt;br /&gt;
* bootstrap to obtain dependencies and compile cold&lt;br /&gt;
&lt;br /&gt;
==== Robustness ====&lt;br /&gt;
* type guards on get_env&lt;br /&gt;
* @impl on all OTP callbacks&lt;br /&gt;
* type guards all public functions&lt;br /&gt;
* type checks on unstructured opts&lt;br /&gt;
* typespecs and dialyze throughout&lt;br /&gt;
&lt;br /&gt;
==== Subsystem Integration ====&lt;br /&gt;
* slurp snoop to track performance on each camera&lt;br /&gt;
* slurp snoop to webhook on corruption/timeouts&lt;br /&gt;
* spew snoop to swap out CGI for upt/chk touch points&lt;br /&gt;
* spew snoop to track client fps performance&lt;br /&gt;
&lt;br /&gt;
==== Sousveillance Integration ====&lt;br /&gt;
* spew snoop to swap out PHP for sous veil touch points&lt;br /&gt;
* distributed sous veil client for cross-platform data exchange&lt;br /&gt;
* integration with sousveillance watch-back system&lt;br /&gt;
&lt;br /&gt;
==== Wrap-up ====&lt;br /&gt;
* add robots.txt route&lt;br /&gt;
* configure public ipcam as :test&lt;br /&gt;
* flesh out documentation&lt;br /&gt;
* investigate periodic multi-hit events:  server severing connections prematurely? badly behaved client device?&lt;br /&gt;
* investigate specific issue of pishop launch causing multi-hit failures on all other clients&lt;br /&gt;
* stress test&lt;br /&gt;
* explore sobelow security checking&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Beadsland</name></author>
	</entry>
	<entry>
		<id>https://wiki.hackmanhattan.com/index.php?title=BindSight&amp;diff=7425</id>
		<title>BindSight</title>
		<link rel="alternate" type="text/html" href="https://wiki.hackmanhattan.com/index.php?title=BindSight&amp;diff=7425"/>
		<updated>2019-12-06T01:22:22Z</updated>

		<summary type="html">&lt;p&gt;Beadsland: /* Refactoring */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span style=&amp;quot;white-space: nowrap&amp;quot;&amp;gt;[[File:Github_icon.jpg|25px]] [https://github.com/beadsland/bindsight Github Repository]&amp;lt;/span&amp;gt; |&lt;br /&gt;
&amp;lt;span style=&amp;quot;white-space: nowrap&amp;quot;&amp;gt;[[File:Bricodash_screenshot.png|35px]] A [[Bricodash]] Sub-Project&amp;lt;/span&amp;gt; |&lt;br /&gt;
&amp;lt;span style=&amp;quot;white-space: nowrap&amp;quot;&amp;gt;[[File:Beads Land-Trujillo.jpg|20px]] A [[User:beadsland|Beadsland]] Creation&amp;lt;/span&amp;gt; __NOTOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table width=&amp;quot;100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;58%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;''Concurrent, extensible, frame-scrubbing webcam gateway.''&lt;br /&gt;
&lt;br /&gt;
Web API service to stream doorcam and spacecam to Bricodash and public gateway, respectively, while tracking activity and performance of these and other webcams at the space. Will be more efficient and reliable than spawning PHP and Python processes on an as-they-come basis. &lt;br /&gt;
&lt;br /&gt;
Written in Elixir, will be taking advantage of various new features of the language, building on the strengths of Erlang/OTP, including &amp;lt;code&amp;gt;[https://elixir-lang.org/blog/2019/02/25/mint-a-new-http-library-for-elixir/ Mint]&amp;lt;/code&amp;gt; (web client), &amp;lt;code&amp;gt;[https://elixir-lang.org/blog/2016/07/14/announcing-genstage/ GenStage]&amp;lt;/code&amp;gt; (backpressure event pipelines) and ultimately &amp;lt;code&amp;gt;[https://hexdocs.pm/mix/Mix.Tasks.Release.html mix release]&amp;lt;/code&amp;gt; (build-time deployment packaging).&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
Presently, webcam-related features of Bricodash are provided on a two-prong basis.&lt;br /&gt;
&lt;br /&gt;
=== Spacecam ===&lt;br /&gt;
&lt;br /&gt;
The public-facing [[Camera]] showing current activity in the space is presently relayed via a PHP script. This script is configured to relay various HM cameras, including those for the exterior door, the CR-10 and (when online) the hydroponics lab. In the case of the spacecam, all relayed requests are tracked to feed the ''sous veil'' [[Bricodash#Creepy_Eyeball|Creepy Eyeball]]: snapshot requests touch a file identifying the requesting pid; stream requests trigger touch two files, one on initiation of the relay, one at process termination. The Creepy Eyeball feature uses the modification times on all such files to transition the opacity of the eyeball animated gif that indicates observers are viewing the camera feed.&lt;br /&gt;
&lt;br /&gt;
The Apache server hosting the Bricodash back-end imposes a cap on the number of executing PHP processes, returning a 504 Gateway Timeout error when this cap is exceeded. Under normal usage, this isn't an issue, but PHP scripts are meant to assemble dynamic content and deliver it, not to provide a data stream as a continuously running process of indeterminate duration. The current setup is thus not ideal.&lt;br /&gt;
&lt;br /&gt;
A legacy gateway for the same [[Camera]] remains on [[Bo.x0.rs]]. When users of our Slack type &amp;quot;Who's at the space?&amp;quot;, the snapshot that our resident slackbot posts in response is drawn from the Bo.x0.rs gateway. Bo.x0.rs also tracks camera access, exposing it via the ''sousveillance'' Chrome notification mechanism. However, the ''sous veil'' Creepy Eyeball and the ''sousveillance'' Chrome notifications system do not, at present, interact or share information.&lt;br /&gt;
&lt;br /&gt;
=== Doorcam ===&lt;br /&gt;
&lt;br /&gt;
Bricodash displays a feed of the exterior door camera. Rather than the PHP script, the doorcam display is drawn from a Python3 CGI script.&lt;br /&gt;
&lt;br /&gt;
Our current setup for the door camera feed is prone to stalling and data corruption. The CGI script inspects individual frames, discarding those that are revealed to be invalid JPG format or, while valid, have corruption that renders as a grey field on the lower half of the image. A Slack webhook regime has also been explored for tracking stalling of the feed. However, even after dropping corrupt frames between the webcam and the server, additional frame corruption has appeared between server and client. Thus client-side Javascript has also been implemented to drop bad frames and trigger webhooks on stalls. Performance of the feed was such that the webhooks proved too noisy and so it is currently disabled.&lt;br /&gt;
&lt;br /&gt;
Due to hardware limitation of both Bricodash clients, the standard webcam MJPEG push stream proved too much of a firehose to accept without risk of the client lagging or freezing entirely. For this reason, the camera feed on both clients is implemented not as a stream but a throttled frames-per-second snapshot flipbook. Initially, this was managed by the CGI script. However, with the introduction of Javascript-invoked Slack webhooks to detect stalls and corruption client-side, the feed is now an entirely pull-based snapshot flipbook. &lt;br /&gt;
&lt;br /&gt;
These flipbooks are executed as upward to 10 snapshot requests per second, from each client, all of which are relayed directly to the webcam. It is possible that this has lead to greater instability on the external door camera that could be resolved by extracting frames from a single stream rather than pounding the server with near two dozen requests per second.&lt;br /&gt;
&lt;br /&gt;
The CGI script also tracks delays on flipbook snapshot requests from the Bricodash clients, reading such delays as evidence of a stalled client. This triggers a restart of the Bricodash client on the Chromecast, and would trigger a webhook alert for the pishop client (if webhooks were not currently disabled). This trigger does not distinguish between delays in flipbook snapshot requests due to stalls of the client and delays due to timeouts on the client while waiting for a stalled doorcam feed. Which means that stalls on the webcam can presently result is a restart of the Chromecast that is not, itself, stalled.&lt;br /&gt;
&lt;br /&gt;
== Functional Specification ==&lt;br /&gt;
&lt;br /&gt;
BindSight will replace both the PHP and Python gateways, and will be designed to allow for integration between the ''sous veil'' Creepy Eyeball observer-tracking system and the Bo.x0.rs ''sousveillance'' view-tracking and Chrome notifications system.&lt;br /&gt;
&lt;br /&gt;
Features will include:&lt;br /&gt;
* a GenStage pipeline to broadcast from a single stream from each camera source&lt;br /&gt;
* concurrent frame corruption checking to minimize latency&lt;br /&gt;
* high performance under stream and flipbook stress testing&lt;br /&gt;
* plug-in architecture for performance monitoring and notifications&lt;br /&gt;
* running as an independent system service (daemon)&lt;br /&gt;
* configurable support for using domain-specific SSL cert&lt;br /&gt;
* distributed plug-in for integration with Bo.x0.rs&lt;br /&gt;
&lt;br /&gt;
BindSight will leverage Elixir's [https://hexdocs.pm/gen_stage/GenStage.html GenStage] behavior to convert a single MJPEG stream into a series of frames that will then be served as any number of snapshots or reconstituted MJPEG streams on demand. This will be implemented as two half-pipelines, or ''spigots''. For each webcam, as ''slurpspigot'' will consume an MJPEG stream, releasing it as individual frames, initiate frame corruption checking, track camera performance, and broadcast to sinks. For each client request, a ''spewspigot'' will subscribe to the appropriate slurpspigot, scrub out corrupt frames, watermark the last available image in the event of a camera timeout, and serve the resulting snapshot or stream via HTTPS.&lt;br /&gt;
&lt;br /&gt;
Custom plug-ins (including several local plug-ins) will be installable per camera (slurpspigot) or per client/request (spewspigot). These will operate out-of-band as GenStage processes running concurrently with the throughput of the main pipeline. Likewise, frame corruption checks will run asynchronously, allowing frames to be passed down the pipeline independent of JPEG decompression and pixel inspection. Concurrency is the core strength of the Erlang virtual machine ([https://blog.stenmans.org/theBeamBook/#CH-BEAM BEAM]), which is designed to obtain exceptional performance by spinning up large numbers of lightweight threads.&lt;br /&gt;
&lt;br /&gt;
Erlang, and thus Elixir, is also designed for distributed systems. We will take advantage of this for integration with Bo.x0.rs, relying on Erlang's native node-discovery to manage message passing between ''souseveillance'' and ''sous veil'', despite these systems running on different hardware.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot; style=&amp;quot;border-right:solid 1px #a7d7f9;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;40%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; padding-left: 20px; padding-bottom: 10px&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current Project Plan ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Fault Tolerance ====&lt;br /&gt;
* dependencies between spigots to ensure processes pick up stream after restart&lt;br /&gt;
&lt;br /&gt;
==== Refactoring ====&lt;br /&gt;
* no reason to split on doubledash&lt;br /&gt;
* reconfigure profile to run when profile_seconds &amp;gt; 0&lt;br /&gt;
* refactor adhere/hold to own Adhere genstage&lt;br /&gt;
* rebalance chunk load to other genstages&lt;br /&gt;
* digest: refactor handle_events/3 case statement to function clauses&lt;br /&gt;
* digest: drop EOL determination&lt;br /&gt;
* digest: refactor further if possible&lt;br /&gt;
&lt;br /&gt;
==== Error Recovery ====&lt;br /&gt;
* deferred spigot spinup in event camera offline at startlink&lt;br /&gt;
* fix EOL check to verify in case of dropped bytes&lt;br /&gt;
* test logging on down camera&lt;br /&gt;
* don't nag when connection down (periodic warn)&lt;br /&gt;
* ensure recovery when source stream fails&lt;br /&gt;
&lt;br /&gt;
==== Validation ====&lt;br /&gt;
* review whether batch requires task&lt;br /&gt;
* consumer-producer in spew to filter out :corrupt/:greytoss/fail messages&lt;br /&gt;
* retool Validate stage to send tuple {:ok, binary} or {_status, binary}&lt;br /&gt;
* retool Digest stage to sent tuple {:ok, binary} or {:fail, error}&lt;br /&gt;
* retool polling functions to send tuple {:fail, error} when such occur&lt;br /&gt;
* consumer-producer in slurp to introduce :corrupt/:greytoss on :test stream&lt;br /&gt;
&lt;br /&gt;
==== Deep Validation ====&lt;br /&gt;
* implement greytoss checking&lt;br /&gt;
* replace async batching with task/agent batching, for JIT evaluation&lt;br /&gt;
* watermark with source timestamp&lt;br /&gt;
* configurable agpl watermark&lt;br /&gt;
* provide for timeout watermarking&lt;br /&gt;
&lt;br /&gt;
==== Advanced ====&lt;br /&gt;
* review supervision tree for batch tasks &amp;amp; agents&lt;br /&gt;
* review memory usage to mitigate ProcBin leaks&lt;br /&gt;
* integrate certificate used by Apache&lt;br /&gt;
* configure to launch as daemon&lt;br /&gt;
* bootstrap to obtain dependencies and compile cold&lt;br /&gt;
&lt;br /&gt;
==== Robustness ====&lt;br /&gt;
* type guards on get_env&lt;br /&gt;
* @impl on all OTP callbacks&lt;br /&gt;
* type guards all public functions&lt;br /&gt;
* type checks on unstructured opts&lt;br /&gt;
* typespecs and dialyze throughout&lt;br /&gt;
&lt;br /&gt;
==== Subsystem Integration ====&lt;br /&gt;
* slurp snoop to track performance on each camera&lt;br /&gt;
* slurp snoop to webhook on corruption/timeouts&lt;br /&gt;
* spew snoop to swap out CGI for upt/chk touch points&lt;br /&gt;
* spew snoop to track client fps performance&lt;br /&gt;
&lt;br /&gt;
==== Sousveillance Integration ====&lt;br /&gt;
* spew snoop to swap out PHP for sous veil touch points&lt;br /&gt;
* distributed sous veil client for cross-platform data exchange&lt;br /&gt;
* integration with sousveillance watch-back system&lt;br /&gt;
&lt;br /&gt;
==== Wrap-up ====&lt;br /&gt;
* add robots.txt route&lt;br /&gt;
* configure public ipcam as :test&lt;br /&gt;
* flesh out documentation&lt;br /&gt;
* investigate periodic multi-hit events:  server severing connections prematurely? badly behaved client device?&lt;br /&gt;
* investigate specific issue of pishop launch causing multi-hit failures on all other clients&lt;br /&gt;
* stress test&lt;br /&gt;
* explore sobelow security checking&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Beadsland</name></author>
	</entry>
	<entry>
		<id>https://wiki.hackmanhattan.com/index.php?title=Bricodash/Future&amp;diff=7396</id>
		<title>Bricodash/Future</title>
		<link rel="alternate" type="text/html" href="https://wiki.hackmanhattan.com/index.php?title=Bricodash/Future&amp;diff=7396"/>
		<updated>2019-11-22T07:50:36Z</updated>

		<summary type="html">&lt;p&gt;Beadsland: /* Integration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
''See:'' &amp;lt;span style=&amp;quot;white-space: nowrap&amp;quot;&amp;gt;[[File:Bricodash_screenshot.png|35px]] [[Bricodash]] &amp;lt;/span&amp;gt; for project details&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table width=&amp;quot;100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;48%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current Tasks Outstanding ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
=== Performance and Maintenance ===&lt;br /&gt;
&lt;br /&gt;
==== Fixes ====&lt;br /&gt;
* fix early voting -- comma not second plus sign&lt;br /&gt;
* resolve v3/events/search failure (email reply from Eventbrite API team 22 Oct: solution being explored)&lt;br /&gt;
* explore having bricodash spawn in new tab then close old tab -- to force GC of JS code snippets&lt;br /&gt;
&lt;br /&gt;
==== Repository ====&lt;br /&gt;
* recreate repository as non-fork&lt;br /&gt;
* readme link to defaultcast&lt;br /&gt;
* research and select a code of conduct&lt;br /&gt;
* flesh out issues linking to project plan&lt;br /&gt;
&lt;br /&gt;
=== Long Overdue Calendarical Overhaul ===&lt;br /&gt;
&lt;br /&gt;
==== Reverse Engineer FCNA/ECFR Calculations ====&lt;br /&gt;
* relearn trigonometry&lt;br /&gt;
* refactor astronomical month calculations to new repository&lt;br /&gt;
* see if we can solve sunrise (sunset) equation for pair(?) of latitudes on a given meridian (at a given datetime)&lt;br /&gt;
* see if any altitude delta patterns are apparent with coarse (non-continuous) iteration over enlongation-bounded datetime range&lt;br /&gt;
* work out if we can iteratively narrow down latitude pairs to solve for altitude deltas within intersecting sunsets&lt;br /&gt;
* determine how elevation complicates all of this (i.e., intersecting sunset clusters rather than intersecting sunsets)&lt;br /&gt;
* examine if there's a solution for westward obstructions (e.g. mountain ranges) in determining sunsets&lt;br /&gt;
* explore performance gains of reimplementing search traversal via elixir calls to python calculations&lt;br /&gt;
&lt;br /&gt;
==== Islamic Calendar ====&lt;br /&gt;
* refactor islamic calendarical library to new repository&lt;br /&gt;
* incorporate for astronomical calculation as used by some in North America&lt;br /&gt;
* confirm safe astimezone use (not erroneously masking local time as UTC)&lt;br /&gt;
* refactor to combine observational and astronomical date sets&lt;br /&gt;
* add Eid al-Adha to calendar&lt;br /&gt;
&lt;br /&gt;
==== Hindu Calendar ====&lt;br /&gt;
* refactor hindu calendrical library to new repository&lt;br /&gt;
* new module to calculate enumerations of tithi for a given month&lt;br /&gt;
* new module to calculate enumerations of months for a given year (rather than lisp ordinal month)&lt;br /&gt;
* reimplement lisp functions for hindu calendar in python3&lt;br /&gt;
&lt;br /&gt;
==== Calendrical Umbrella ====&lt;br /&gt;
* spin off jewish calendarical library as dedicated project&lt;br /&gt;
* spin off master festivals project for drawing together specific calendars&lt;br /&gt;
&lt;br /&gt;
=== BindSight :2020 ===&lt;br /&gt;
&lt;br /&gt;
''See also:'' [[BindSight]] project page&lt;br /&gt;
&lt;br /&gt;
{{:BindSight}}&lt;br /&gt;
&lt;br /&gt;
=== Webhook Notifications ===&lt;br /&gt;
&lt;br /&gt;
Javascript client-side triggers to deliver messages to our Slack channels to provide alerts when the camera feed or client devices stall.&lt;br /&gt;
&lt;br /&gt;
* migrate sleep macro to general purpose library&lt;br /&gt;
* migrate from webhooks integration to webhooks feature of bricodash app (and update notice)&lt;br /&gt;
* server-side webhook on stall of any given device&lt;br /&gt;
* when wonkiness addressed: downthrottle chromecast reboots to 1x per day; stream swap-in to never&lt;br /&gt;
&lt;br /&gt;
=== Server ===&lt;br /&gt;
&lt;br /&gt;
Standardize Web server setup and fully integrate BindSight.&lt;br /&gt;
&lt;br /&gt;
* migrate to standard web port (now that relayd installed on router)&lt;br /&gt;
* configure X-Forwarded-For logging in apache&lt;br /&gt;
* enable SSL for camera feeds (requested for full conversion to new sous veil system)&lt;br /&gt;
* enable SSL directly via daemon's listening port (i.e., elixir rather than apache)&lt;br /&gt;
* transfer slackbot snapshots to bricolage gateway&lt;br /&gt;
&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
&lt;br /&gt;
Flesh out project documentation&amp;amp;mdash;after fixing existing problems with our Mediawiki server.&lt;br /&gt;
&lt;br /&gt;
* recent edits monitor to trigger cache purge on transcluded Bricodash documentation updates&lt;br /&gt;
* help get mediawiki server 504 issues resolved (currently an obstacle to '''Bricodash''' documentation)&lt;br /&gt;
* broach discussion of absent Copyrights page on Wiki -- do we want to adopt a license??&lt;br /&gt;
* redraft lists in [[Bricodash#Event_Calendars|calendar sections]] as tables&lt;br /&gt;
* flesh out [[:Bricodash/Future|Bricodash Future Ideas]], explaining known requirements for each&lt;br /&gt;
&lt;br /&gt;
=== Cloud Log ===&lt;br /&gt;
&lt;br /&gt;
Incorporate remaining sources into rolling update log shown in lower left-hand corner.&lt;br /&gt;
&lt;br /&gt;
==== User Repositories ====&lt;br /&gt;
* refactor cloud/github to abstract away github/gitlab/etc&lt;br /&gt;
* allow more than most recent pushed repository to be shown&lt;br /&gt;
* add boxrs-based git repositories to Cloud Log panel&lt;br /&gt;
&lt;br /&gt;
==== Other Cloud Services ====&lt;br /&gt;
* Mediawiki &amp;amp;mdash; pending new account requests&lt;br /&gt;
* Zendesk — count of unread/open inquiries&lt;br /&gt;
* Status updates on donations: Patreon, Paypal, Amazon Smile...&lt;br /&gt;
* write up requirements for [[Bricodash/Future#Instagram_Integration|Instagram Integration]]&lt;br /&gt;
* write up requirements for [[Bricodash/Future#Twitter_Integration|Twitter Integration]]&lt;br /&gt;
&lt;br /&gt;
==== Retire IFFF Wiki Updates ====&lt;br /&gt;
* bot to post daily cloud log update to #general on our slack&lt;br /&gt;
&lt;br /&gt;
=== Calendars ===&lt;br /&gt;
&lt;br /&gt;
Incorporate additional calculated and externally sourced calendar events.&lt;br /&gt;
&lt;br /&gt;
==== Fixes ====&lt;br /&gt;
* almanac alt for almanac events&lt;br /&gt;
* add enum of event sources for sorting priority (when same start time)&lt;br /&gt;
* move HM anniversary dates to special .cal that takes precedence on HM calendar (and also appears on NYC)&lt;br /&gt;
* swap out icalendar (buggy repetition exception handling) in favor of true API&lt;br /&gt;
&lt;br /&gt;
==== Calculation ====&lt;br /&gt;
* new module to calculate hindu lunar tithi =&amp;gt; closing muhurat =&amp;gt; solar day&lt;br /&gt;
* revise diwali/deepawali calculation using tithi rather than lisp library approximations&lt;br /&gt;
* correctly calculate dates of International Astronomy Day (email out to Astronomical League for better calculation rules)&lt;br /&gt;
* calculate dates of Manhattanhenge (email out to library of American Museum of Natural History for formula)&lt;br /&gt;
* add eclipses and other significant astronomical events to holidays&lt;br /&gt;
* finish fleshing out remainder of movable feasts for [[Bricodash#Community_Calendar|Community Calendar]] (June 2019 forward)&lt;br /&gt;
&lt;br /&gt;
==== Integration ====&lt;br /&gt;
* use google search to find Offside Tavern Meetup events&lt;br /&gt;
* add placeholder events for non-Meetup Offside Tavern events&lt;br /&gt;
* refactor brite search by location routine to common library&lt;br /&gt;
* add nyc mesh, nyc resistor, fat cat fab lab, makerbar, makerspace nyc (SI), futureworks (BK/SI), genspace to [[Bricodash#Community_Calendar|Community Calendar]] &lt;br /&gt;
* also add grow with google (if still in NYC), 2600, Off the Hook (if still broadcasting), blick, michaels, local library branches, makerish meetup events, NYC street fairs&lt;br /&gt;
&lt;br /&gt;
==== Advanced ====&lt;br /&gt;
* revise #thehaps formatting to provide headers per day&lt;br /&gt;
* embed hotlinks in #thehaps channel event listings&lt;br /&gt;
* concise calendar response for interactive slackbot&lt;br /&gt;
* auto-capture of #thehaps posted events to [[Bricodash/Extra:Calendar]]&lt;br /&gt;
* automation/streamlining tools for cross-posting HM Meetup events to Spingo&lt;br /&gt;
* enable toggling between Welcome header and holiday greetings [[Bricodash#Community_Calendar|^]]&lt;br /&gt;
&lt;br /&gt;
=== Cleanup ===&lt;br /&gt;
&lt;br /&gt;
Remaining features and code maintenance before calling it a major release.&lt;br /&gt;
&lt;br /&gt;
* integrate citymapper API for local subway stations&lt;br /&gt;
* refactor source files from initial launch&lt;br /&gt;
* find owners to adopt data sourcing projects that require more than passive API calls (see sections below)&lt;br /&gt;
* squish and push fork to upstream&lt;br /&gt;
&lt;br /&gt;
=== Upgrades ===&lt;br /&gt;
&lt;br /&gt;
Once built, streamline and rewrite as a truly beautiful application.&lt;br /&gt;
&lt;br /&gt;
* migrate from bricolage to less power-hungry hardware&lt;br /&gt;
* combined community slack calendar to wiki page (requires privacy policy under brite license)&lt;br /&gt;
* reimplement bricolage to run as embedded system under elixir/scenic/nerves&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
* import python directly using beamparticle&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot; style=&amp;quot;border-right:solid 1px #a7d7f9;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; padding-left: 20px; padding-bottom: 10px&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sub-Projects Needing Owners ==&lt;br /&gt;
&lt;br /&gt;
The projects below require an investment of time&amp;amp;mdash;such as active coordination with an API's owners&amp;amp;mdash;to be implemented, but would provide meaningful improvements to the overall feature-set of Bricodash if completed. &lt;br /&gt;
&lt;br /&gt;
At some point the description for each will be fleshed out to provide a full functional specification, together with an exploration of the requirements to move forward. For now, capsule bullet points serve as place holders. For more information, touch base with [[User:Beadsland]].&lt;br /&gt;
&lt;br /&gt;
=== Instagram Integration ===&lt;br /&gt;
&lt;br /&gt;
* add Instagram to Weird Photos and HM Cloud Log &amp;amp;mdash; this requires creating pages on Facebook under the new Graph API&lt;br /&gt;
&lt;br /&gt;
=== Twitter Integration ===&lt;br /&gt;
&lt;br /&gt;
* add Twitter to Weird Photos and HM Cloud Log &amp;amp;mdash; this requires emailing to get a dev account, then honoring Twitter's [https://developer.twitter.com/en/developer-terms/display-requirements.html Display Requirements]&lt;br /&gt;
&lt;br /&gt;
=== Slack Calendar Response Bot ===&lt;br /&gt;
&lt;br /&gt;
* interactive bot response to &amp;quot;What's happening?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Draft a Privacy Policy ===&lt;br /&gt;
&lt;br /&gt;
* draft privacy policy (per API reqs for public sites)&lt;br /&gt;
&lt;br /&gt;
=== Buzzer-Activated IR Remote ===&lt;br /&gt;
&lt;br /&gt;
Additionally, there are plans to tie a ceiling-mounted IR remote into the intercom buzzer to toggle inputs on the TV. &lt;br /&gt;
The idea would be that when the buzzer sounds, the remote would switch from the dashboard (on Chromecast) to a dedicated &lt;br /&gt;
full screen camera input.  After a delay the input would be toggled back to the Chromecast-hosted dashboard.  Such an&lt;br /&gt;
arrangement would free up the dashboard screen real-estate currently devoted to an around-the-clock camera feed&amp;amp;mdash;as, realistically, the only time one needs a camera feed is when a visitor is buzzing to be let in.&lt;br /&gt;
&lt;br /&gt;
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?&lt;br /&gt;
&lt;br /&gt;
* integrate with custom buzzer-activated IR remote hack&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Beadsland</name></author>
	</entry>
	<entry>
		<id>https://wiki.hackmanhattan.com/index.php?title=Main_Page&amp;diff=7388</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.hackmanhattan.com/index.php?title=Main_Page&amp;diff=7388"/>
		<updated>2019-10-30T15:35:38Z</updated>

		<summary type="html">&lt;p&gt;Beadsland: /* Monthly Business Meetings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:HMpano2.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Hack Manhattan! =&lt;br /&gt;
&lt;br /&gt;
Hack Manhattan is a nonprofit cooperative space in Manhattan dedicated to technology, science, and the arts. We're the only public hackerspace in Manhattan. Get involved. Bring your curiosity, intellect, and imagination. Visit [http://hackmanhattan.com our website].&lt;br /&gt;
&lt;br /&gt;
'''NOTE: ''' This wiki is public, but only approved users may edit. All Hack Manhattan members should have an account. Non-members -- to contribute, please sign up for an account and we'll respond ASAP.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table width=&amp;quot;100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;48%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Location ==&lt;br /&gt;
&lt;br /&gt;
We're centrally located near the L/F/M/1/2/3/A/C/E/PATH trains and 2.5 blocks west of Union Sq (4/5/6/N/Q/R trains).&lt;br /&gt;
&lt;br /&gt;
[http://maps.google.com/maps?q=137+West+14th+st+ny+ny 137 W 14th Street, Studio 201, New York, NY 10011-7308]&lt;br /&gt;
&lt;br /&gt;
== [[MembershipInfo|Membership]] ==&lt;br /&gt;
&lt;br /&gt;
Hack Manhattan is accepting new members. See [[MembershipInfo]] for more details.&lt;br /&gt;
&lt;br /&gt;
== Meetings &amp;amp; Events ==&lt;br /&gt;
&lt;br /&gt;
=== [[Calendars|Events]] ===&lt;br /&gt;
&lt;br /&gt;
* [http://hackmanhattan.com/calendar/ Calendar]&lt;br /&gt;
* [http://www.meetup.com/hackmanhattan/ Meetup]&lt;br /&gt;
&lt;br /&gt;
=== Monthly Business [[Meetings]] === &lt;br /&gt;
Monthly meetings are held at 7:30PM on the last Tuesday of each month and are conducted in accordance with [[MIBS Rules]]. You can read the [[Meetings|minutes of previous meetings]] or the next one:&lt;br /&gt;
&lt;br /&gt;
* [[Meeting 2019-11-26]]&lt;br /&gt;
&lt;br /&gt;
== About the space and building==&lt;br /&gt;
&lt;br /&gt;
* [[Rat Park]] (the building)&lt;br /&gt;
* [[Facilities]]&lt;br /&gt;
* [[Wish_List | Gear wishlist]]&lt;br /&gt;
&amp;lt;!-- * [[Space_wishlist | Facilities wishlist]]&lt;br /&gt;
* [[Donated_or_Loaned_Gear | Donated or Loaned Gear]] --&amp;gt;&lt;br /&gt;
* [[Tools and Equipment]]&lt;br /&gt;
&amp;lt;!-- * [[New_space_checklist | Requirements and notes about the &amp;quot;new space&amp;quot;]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
* [[Administration]]&lt;br /&gt;
* [[Building]]&lt;br /&gt;
* [[Bylaws | HackManhattan! By-laws]] and [[MIBS Rules | Meeting Procedure (SRC3)]]&lt;br /&gt;
* [http://list.hackmanhattan.com/mailman/listinfo/blabber Mailing list] ([http://www.mail-archive.com/blabber@list.hackmanhattan.com/ archives])&lt;br /&gt;
* IRC: #hackmanhattan @ irc.freenode.net [[http://webchat.freenode.net/?channels=hackmanhattan Web Chat]]&lt;br /&gt;
* [http://www.reddit.com/r/hackmanhattan/ /r/hackmanhattan]&lt;br /&gt;
* [[Suppliers | Suppliers, Vendors, Sources of stuff!]]&lt;br /&gt;
* [[FundRaising | Fund-raising ideas, links, projects]]&lt;br /&gt;
* [[Meeting_2013-03-26#Space_use_policy|Space Use Policy]]&lt;br /&gt;
* [[Cool Links | Cool Links to Hackerspaces, Blogs, Etc.]]&lt;br /&gt;
* [[Local Resources]] Places of interest close to HackManhattan!&lt;br /&gt;
* [[Bad Jokes Related to Hacking]] Like the name says it....&lt;br /&gt;
* [[Logos and Files]]&lt;br /&gt;
* [[3D Printing Resources]]&lt;br /&gt;
* [[Welding Resources]]&lt;br /&gt;
* [[Affiliate]]&lt;br /&gt;
* [[Operations]]&lt;br /&gt;
* [[Electronics]]&lt;br /&gt;
* [[Hackerspaces]]&lt;br /&gt;
* [[Gigs]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;1%&amp;quot; style=&amp;quot;&lt;br /&gt;
border-right:solid 1px #a7d7f9;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;1%&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;48%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[Projects|Projects / Interest Groups]] ==&lt;br /&gt;
&lt;br /&gt;
{{:Projects}}&lt;br /&gt;
&lt;br /&gt;
== [[Individual Pages]] ==&lt;br /&gt;
&lt;br /&gt;
{{:Individual Pages}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Beadsland</name></author>
	</entry>
	<entry>
		<id>https://wiki.hackmanhattan.com/index.php?title=Bricodash/Extra:Calendar&amp;diff=7387</id>
		<title>Bricodash/Extra:Calendar</title>
		<link rel="alternate" type="text/html" href="https://wiki.hackmanhattan.com/index.php?title=Bricodash/Extra:Calendar&amp;diff=7387"/>
		<updated>2019-10-30T10:28:35Z</updated>

		<summary type="html">&lt;p&gt;Beadsland: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''See also:'' [[Bricodash/Extra:Repos]]&lt;br /&gt;
&lt;br /&gt;
= What is This? =&lt;br /&gt;
&lt;br /&gt;
Items entered below will be parsed for inclusion in the [[Bricodash#Community_Calendar|Bricodash Community Calendar]].&lt;br /&gt;
&lt;br /&gt;
Events listings follow the following syntax: &amp;lt;code&amp;gt;* &amp;amp;lt;Human-Readable Date/Time&amp;amp;gt; :: &amp;amp;lt;Event Title&amp;amp;gt; :: &amp;amp;lt;Emoji&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The final field is optional, and may either be a small number of emoji to appear at the end of the event listing, or else the relative path to an image already pre-loaded on the Bricodash server.&lt;br /&gt;
&lt;br /&gt;
Optionally, the first field may begin with a &amp;quot;#&amp;quot;, in which case the entire event line is treated as a comment&amp;amp;mdash;and thus ignored. This can be used to leave reminders for recurring events that have a different date each year, such as annual conventions where dates are only announced in the lead-up to the event.&lt;br /&gt;
&lt;br /&gt;
=Extra Community Calendar Items=&lt;br /&gt;
&lt;br /&gt;
* #Oct 19 at 12 pm :: Gowanus Open Studios 2019 at NYC Resistor&lt;br /&gt;
* #Oct 20 at 12 pm :: Gowanus Open Studios 2019 at NYC Resistor&lt;br /&gt;
* Nov 2 at 8 pm :: NYC Resistor Halloween Party 2019 :: 🎃🎉&lt;br /&gt;
&lt;br /&gt;
* Oct 6 at 1 pm :: Just for Fun / October Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* Nov 2 at 9:30 am :: Just for Fun / November Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* Dec 8 at 1 pm :: Just for Fun / December Crafts Day (Penn South) :: 🎨&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* #Sep 14 at 10 am :: Penn South Flea Market (W 26 btw 8th &amp;amp; 9th) :: 🏷️🛍️&lt;br /&gt;
* #Sep 22 at 10 am :: SAFE Disposal Event (Union Square&amp;amp;mdash;North Plaza) :: ☠🖥🔋☣️&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* #Oct 3 :: First Day of NY Comic Con &amp;lt;img class=&amp;quot;logo&amp;quot; src=&amp;quot;img/flickr_nalends_super_pop.png&amp;quot;&amp;gt; / Anime Expo (Javits Center)&lt;br /&gt;
* #Oct 6 :: Last Day of NY Comic Con &amp;lt;img class=&amp;quot;logo&amp;quot; src=&amp;quot;img/flickr_nalends_super_pop.png&amp;quot;&amp;gt; / Anime Expo (Javits Center)&lt;br /&gt;
&lt;br /&gt;
* #Oct 4 at 8 am :: PyGotham (Pennsylvania Hotel)&lt;br /&gt;
* #Oct 5 at 8 am :: PyGotham (Pennsylvania Hotel)&lt;br /&gt;
&lt;br /&gt;
* #Oct 9 at 7 pm :: &amp;quot;Off the Hook&amp;quot; Live (Brooklyn Commons) :: 📻🎙️&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Jan 2 :: First Day of Super MAGFest (National Harbor, MD) :: 🕹️🎮&lt;br /&gt;
* Jan 5 :: First Day of Super MAGFest (National Harbor, MD) :: 🕹️🎮&lt;/div&gt;</summary>
		<author><name>Beadsland</name></author>
	</entry>
	<entry>
		<id>https://wiki.hackmanhattan.com/index.php?title=Bricodash/Future&amp;diff=7385</id>
		<title>Bricodash/Future</title>
		<link rel="alternate" type="text/html" href="https://wiki.hackmanhattan.com/index.php?title=Bricodash/Future&amp;diff=7385"/>
		<updated>2019-10-25T07:18:44Z</updated>

		<summary type="html">&lt;p&gt;Beadsland: /* Performance and Maintenance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
''See:'' &amp;lt;span style=&amp;quot;white-space: nowrap&amp;quot;&amp;gt;[[File:Bricodash_screenshot.png|35px]] [[Bricodash]] &amp;lt;/span&amp;gt; for project details&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table width=&amp;quot;100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;48%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current Tasks Outstanding ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
=== Performance and Maintenance ===&lt;br /&gt;
&lt;br /&gt;
==== Fixes ====&lt;br /&gt;
* fix early voting -- comma not second plus sign&lt;br /&gt;
* resolve v3/events/search failure (email reply from Eventbrite API team 22 Oct: solution being explored)&lt;br /&gt;
* explore having bricodash spawn in new tab then close old tab -- to force GC of JS code snippets&lt;br /&gt;
&lt;br /&gt;
==== Repository ====&lt;br /&gt;
* recreate repository as non-fork&lt;br /&gt;
* readme link to defaultcast&lt;br /&gt;
* research and select a code of conduct&lt;br /&gt;
* flesh out issues linking to project plan&lt;br /&gt;
&lt;br /&gt;
=== Long Overdue Calendarical Overhaul ===&lt;br /&gt;
&lt;br /&gt;
==== Reverse Engineer FCNA/ECFR Calculations ====&lt;br /&gt;
* relearn trigonometry&lt;br /&gt;
* refactor astronomical month calculations to new repository&lt;br /&gt;
* see if we can solve sunrise (sunset) equation for pair(?) of latitudes on a given meridian (at a given datetime)&lt;br /&gt;
* see if any altitude delta patterns are apparent with coarse (non-continuous) iteration over enlongation-bounded datetime range&lt;br /&gt;
* work out if we can iteratively narrow down latitude pairs to solve for altitude deltas within intersecting sunsets&lt;br /&gt;
* determine how elevation complicates all of this (i.e., intersecting sunset clusters rather than intersecting sunsets)&lt;br /&gt;
* examine if there's a solution for westward obstructions (e.g. mountain ranges) in determining sunsets&lt;br /&gt;
* explore performance gains of reimplementing search traversal via elixir calls to python calculations&lt;br /&gt;
&lt;br /&gt;
==== Islamic Calendar ====&lt;br /&gt;
* refactor islamic calendarical library to new repository&lt;br /&gt;
* incorporate for astronomical calculation as used by some in North America&lt;br /&gt;
* confirm safe astimezone use (not erroneously masking local time as UTC)&lt;br /&gt;
* refactor to combine observational and astronomical date sets&lt;br /&gt;
* add Eid al-Adha to calendar&lt;br /&gt;
&lt;br /&gt;
==== Hindu Calendar ====&lt;br /&gt;
* refactor hindu calendrical library to new repository&lt;br /&gt;
* new module to calculate enumerations of tithi for a given month&lt;br /&gt;
* new module to calculate enumerations of months for a given year (rather than lisp ordinal month)&lt;br /&gt;
* reimplement lisp functions for hindu calendar in python3&lt;br /&gt;
&lt;br /&gt;
==== Calendrical Umbrella ====&lt;br /&gt;
* spin off jewish calendarical library as dedicated project&lt;br /&gt;
* spin off master festivals project for drawing together specific calendars&lt;br /&gt;
&lt;br /&gt;
=== BindSight :2020 ===&lt;br /&gt;
&lt;br /&gt;
''See also:'' [[BindSight]] project page&lt;br /&gt;
&lt;br /&gt;
{{:BindSight}}&lt;br /&gt;
&lt;br /&gt;
=== Webhook Notifications ===&lt;br /&gt;
&lt;br /&gt;
Javascript client-side triggers to deliver messages to our Slack channels to provide alerts when the camera feed or client devices stall.&lt;br /&gt;
&lt;br /&gt;
* migrate sleep macro to general purpose library&lt;br /&gt;
* migrate from webhooks integration to webhooks feature of bricodash app (and update notice)&lt;br /&gt;
* server-side webhook on stall of any given device&lt;br /&gt;
* when wonkiness addressed: downthrottle chromecast reboots to 1x per day; stream swap-in to never&lt;br /&gt;
&lt;br /&gt;
=== Server ===&lt;br /&gt;
&lt;br /&gt;
Standardize Web server setup and fully integrate BindSight.&lt;br /&gt;
&lt;br /&gt;
* migrate to standard web port (now that relayd installed on router)&lt;br /&gt;
* configure X-Forwarded-For logging in apache&lt;br /&gt;
* enable SSL for camera feeds (requested for full conversion to new sous veil system)&lt;br /&gt;
* enable SSL directly via daemon's listening port (i.e., elixir rather than apache)&lt;br /&gt;
* transfer slackbot snapshots to bricolage gateway&lt;br /&gt;
&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
&lt;br /&gt;
Flesh out project documentation&amp;amp;mdash;after fixing existing problems with our Mediawiki server.&lt;br /&gt;
&lt;br /&gt;
* recent edits monitor to trigger cache purge on transcluded Bricodash documentation updates&lt;br /&gt;
* help get mediawiki server 504 issues resolved (currently an obstacle to '''Bricodash''' documentation)&lt;br /&gt;
* broach discussion of absent Copyrights page on Wiki -- do we want to adopt a license??&lt;br /&gt;
* redraft lists in [[Bricodash#Event_Calendars|calendar sections]] as tables&lt;br /&gt;
* flesh out [[:Bricodash/Future|Bricodash Future Ideas]], explaining known requirements for each&lt;br /&gt;
&lt;br /&gt;
=== Cloud Log ===&lt;br /&gt;
&lt;br /&gt;
Incorporate remaining sources into rolling update log shown in lower left-hand corner.&lt;br /&gt;
&lt;br /&gt;
==== User Repositories ====&lt;br /&gt;
* refactor cloud/github to abstract away github/gitlab/etc&lt;br /&gt;
* allow more than most recent pushed repository to be shown&lt;br /&gt;
* add boxrs-based git repositories to Cloud Log panel&lt;br /&gt;
&lt;br /&gt;
==== Other Cloud Services ====&lt;br /&gt;
* Mediawiki &amp;amp;mdash; pending new account requests&lt;br /&gt;
* Zendesk — count of unread/open inquiries&lt;br /&gt;
* Status updates on donations: Patreon, Paypal, Amazon Smile...&lt;br /&gt;
* write up requirements for [[Bricodash/Future#Instagram_Integration|Instagram Integration]]&lt;br /&gt;
* write up requirements for [[Bricodash/Future#Twitter_Integration|Twitter Integration]]&lt;br /&gt;
&lt;br /&gt;
==== Retire IFFF Wiki Updates ====&lt;br /&gt;
* bot to post daily cloud log update to #general on our slack&lt;br /&gt;
&lt;br /&gt;
=== Calendars ===&lt;br /&gt;
&lt;br /&gt;
Incorporate additional calculated and externally sourced calendar events.&lt;br /&gt;
&lt;br /&gt;
==== Fixes ====&lt;br /&gt;
* almanac alt for almanac events&lt;br /&gt;
* add enum of event sources for sorting priority (when same start time)&lt;br /&gt;
* move HM anniversary dates to special .cal that takes precedence on HM calendar (and also appears on NYC)&lt;br /&gt;
* swap out icalendar (buggy repetition exception handling) in favor of true API&lt;br /&gt;
&lt;br /&gt;
==== Calculation ====&lt;br /&gt;
* new module to calculate hindu lunar tithi =&amp;gt; closing muhurat =&amp;gt; solar day&lt;br /&gt;
* revise diwali/deepawali calculation using tithi rather than lisp library approximations&lt;br /&gt;
* correctly calculate dates of International Astronomy Day (email out to Astronomical League for better calculation rules)&lt;br /&gt;
* calculate dates of Manhattanhenge (email out to library of American Museum of Natural History for formula)&lt;br /&gt;
* add eclipses and other significant astronomical events to holidays&lt;br /&gt;
* finish fleshing out remainder of movable feasts for [[Bricodash#Community_Calendar|Community Calendar]] (June 2019 forward)&lt;br /&gt;
&lt;br /&gt;
==== Integration ====&lt;br /&gt;
* use google search to find Offside Tavern Meetup events&lt;br /&gt;
* add placeholder events for non-Meetup Offside Tavern events&lt;br /&gt;
* refactor brite search by location routine to common library&lt;br /&gt;
* add nyc mesh, nyc resistor, fat cat fab lab, makerbar, makerspace nyc (SI), futureworks (BK/SI) to [[Bricodash#Community_Calendar|Community Calendar]] &lt;br /&gt;
* also add grow with google (if still in NYC), 2600, Off the Hook (if still broadcasting), blick, michaels, local library branches, makerish meetup events, NYC street fairs&lt;br /&gt;
&lt;br /&gt;
==== Advanced ====&lt;br /&gt;
* revise #thehaps formatting to provide headers per day&lt;br /&gt;
* embed hotlinks in #thehaps channel event listings&lt;br /&gt;
* concise calendar response for interactive slackbot&lt;br /&gt;
* auto-capture of #thehaps posted events to [[Bricodash/Extra:Calendar]]&lt;br /&gt;
* automation/streamlining tools for cross-posting HM Meetup events to Spingo&lt;br /&gt;
* enable toggling between Welcome header and holiday greetings [[Bricodash#Community_Calendar|^]]&lt;br /&gt;
&lt;br /&gt;
=== Cleanup ===&lt;br /&gt;
&lt;br /&gt;
Remaining features and code maintenance before calling it a major release.&lt;br /&gt;
&lt;br /&gt;
* integrate citymapper API for local subway stations&lt;br /&gt;
* refactor source files from initial launch&lt;br /&gt;
* find owners to adopt data sourcing projects that require more than passive API calls (see sections below)&lt;br /&gt;
* squish and push fork to upstream&lt;br /&gt;
&lt;br /&gt;
=== Upgrades ===&lt;br /&gt;
&lt;br /&gt;
Once built, streamline and rewrite as a truly beautiful application.&lt;br /&gt;
&lt;br /&gt;
* migrate from bricolage to less power-hungry hardware&lt;br /&gt;
* combined community slack calendar to wiki page (requires privacy policy under brite license)&lt;br /&gt;
* reimplement bricolage to run as embedded system under elixir/scenic/nerves&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
* import python directly using beamparticle&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot; style=&amp;quot;border-right:solid 1px #a7d7f9;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; padding-left: 20px; padding-bottom: 10px&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sub-Projects Needing Owners ==&lt;br /&gt;
&lt;br /&gt;
The projects below require an investment of time&amp;amp;mdash;such as active coordination with an API's owners&amp;amp;mdash;to be implemented, but would provide meaningful improvements to the overall feature-set of Bricodash if completed. &lt;br /&gt;
&lt;br /&gt;
At some point the description for each will be fleshed out to provide a full functional specification, together with an exploration of the requirements to move forward. For now, capsule bullet points serve as place holders. For more information, touch base with [[User:Beadsland]].&lt;br /&gt;
&lt;br /&gt;
=== Instagram Integration ===&lt;br /&gt;
&lt;br /&gt;
* add Instagram to Weird Photos and HM Cloud Log &amp;amp;mdash; this requires creating pages on Facebook under the new Graph API&lt;br /&gt;
&lt;br /&gt;
=== Twitter Integration ===&lt;br /&gt;
&lt;br /&gt;
* add Twitter to Weird Photos and HM Cloud Log &amp;amp;mdash; this requires emailing to get a dev account, then honoring Twitter's [https://developer.twitter.com/en/developer-terms/display-requirements.html Display Requirements]&lt;br /&gt;
&lt;br /&gt;
=== Slack Calendar Response Bot ===&lt;br /&gt;
&lt;br /&gt;
* interactive bot response to &amp;quot;What's happening?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Draft a Privacy Policy ===&lt;br /&gt;
&lt;br /&gt;
* draft privacy policy (per API reqs for public sites)&lt;br /&gt;
&lt;br /&gt;
=== Buzzer-Activated IR Remote ===&lt;br /&gt;
&lt;br /&gt;
Additionally, there are plans to tie a ceiling-mounted IR remote into the intercom buzzer to toggle inputs on the TV. &lt;br /&gt;
The idea would be that when the buzzer sounds, the remote would switch from the dashboard (on Chromecast) to a dedicated &lt;br /&gt;
full screen camera input.  After a delay the input would be toggled back to the Chromecast-hosted dashboard.  Such an&lt;br /&gt;
arrangement would free up the dashboard screen real-estate currently devoted to an around-the-clock camera feed&amp;amp;mdash;as, realistically, the only time one needs a camera feed is when a visitor is buzzing to be let in.&lt;br /&gt;
&lt;br /&gt;
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?&lt;br /&gt;
&lt;br /&gt;
* integrate with custom buzzer-activated IR remote hack&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Beadsland</name></author>
	</entry>
	<entry>
		<id>https://wiki.hackmanhattan.com/index.php?title=Bricodash/Extra:Calendar&amp;diff=7384</id>
		<title>Bricodash/Extra:Calendar</title>
		<link rel="alternate" type="text/html" href="https://wiki.hackmanhattan.com/index.php?title=Bricodash/Extra:Calendar&amp;diff=7384"/>
		<updated>2019-10-24T17:26:13Z</updated>

		<summary type="html">&lt;p&gt;Beadsland: /* Extra Community Calendar Items */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''See also:'' [[Bricodash/Extra:Repos]]&lt;br /&gt;
&lt;br /&gt;
= What is This? =&lt;br /&gt;
&lt;br /&gt;
Items entered below will be parsed for inclusion in the [[Bricodash#Community_Calendar|Bricodash Community Calendar]].&lt;br /&gt;
&lt;br /&gt;
Events listings follow the following syntax: &amp;lt;code&amp;gt;* &amp;amp;lt;Human-Readable Date/Time&amp;amp;gt; :: &amp;amp;lt;Event Title&amp;amp;gt; :: &amp;amp;lt;Emoji&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The final field is optional, and may either be a small number of emoji to appear at the end of the event listing, or else the relative path to an image already pre-loaded on the Bricodash server.&lt;br /&gt;
&lt;br /&gt;
Optionally, the first field may begin with a &amp;quot;#&amp;quot;, in which case the entire event line is treated as a comment&amp;amp;mdash;and thus ignored. This can be used to leave reminders for recurring events that have a different date each year, such as annual conventions where dates are only announced in the lead-up to the event.&lt;br /&gt;
&lt;br /&gt;
=Extra Community Calendar Items=&lt;br /&gt;
&lt;br /&gt;
* May 4 at 9:30 am :: Just For Fun / May Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* Jun 9 at 1 pm :: Just for Fun / June Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* Jul 13 at 9:30 am :: Just for Fun / July Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* Aug 4 at 1 pm :: Just for Fun / August Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* Sep 7 at 9:30 am :: Just for Fun / September Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* Oct 6 at 1 pm :: Just for Fun / October Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* Nov 2 at 9:30 am :: Just for Fun / November Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* Dec 8 at 1 pm :: Just for Fun / December Crafts Day (Penn South) :: 🎨&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* #Sep 14 at 10 am :: Penn South Flea Market (W 26 btw 8th &amp;amp; 9th) :: 🏷️🛍️&lt;br /&gt;
* #Sep 22 at 10 am :: SAFE Disposal Event (Union Square&amp;amp;mdash;North Plaza) :: ☠🖥🔋☣️&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* #Oct 3 :: First Day of NY Comic Con &amp;lt;img class=&amp;quot;logo&amp;quot; src=&amp;quot;img/flickr_nalends_super_pop.png&amp;quot;&amp;gt; / Anime Expo (Javits Center)&lt;br /&gt;
* #Oct 6 :: Last Day of NY Comic Con &amp;lt;img class=&amp;quot;logo&amp;quot; src=&amp;quot;img/flickr_nalends_super_pop.png&amp;quot;&amp;gt; / Anime Expo (Javits Center)&lt;br /&gt;
&lt;br /&gt;
* #Oct 4 at 8 am :: PyGotham (Pennsylvania Hotel)&lt;br /&gt;
* #Oct 5 at 8 am :: PyGotham (Pennsylvania Hotel)&lt;br /&gt;
&lt;br /&gt;
* #Oct 9 at 7 pm :: &amp;quot;Off the Hook&amp;quot; Live (Brooklyn Commons) :: 📻🎙️&lt;br /&gt;
&lt;br /&gt;
* #Oct 19 at 12 pm :: Gowanus Open Studios 2019 at NYC Resistor&lt;br /&gt;
* #Oct 20 at 12 pm :: Gowanus Open Studios 2019 at NYC Resistor&lt;br /&gt;
&lt;br /&gt;
* Jan 2 :: First Day of Super MAGFest (National Harbor, MD) :: 🕹️🎮&lt;br /&gt;
* Jan 5 :: First Day of Super MAGFest (National Harbor, MD) :: 🕹️🎮&lt;/div&gt;</summary>
		<author><name>Beadsland</name></author>
	</entry>
	<entry>
		<id>https://wiki.hackmanhattan.com/index.php?title=Bricodash/Extra:Calendar&amp;diff=7383</id>
		<title>Bricodash/Extra:Calendar</title>
		<link rel="alternate" type="text/html" href="https://wiki.hackmanhattan.com/index.php?title=Bricodash/Extra:Calendar&amp;diff=7383"/>
		<updated>2019-10-24T17:22:36Z</updated>

		<summary type="html">&lt;p&gt;Beadsland: /* Extra Community Calendar Items */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''See also:'' [[Bricodash/Extra:Repos]]&lt;br /&gt;
&lt;br /&gt;
= What is This? =&lt;br /&gt;
&lt;br /&gt;
Items entered below will be parsed for inclusion in the [[Bricodash#Community_Calendar|Bricodash Community Calendar]].&lt;br /&gt;
&lt;br /&gt;
Events listings follow the following syntax: &amp;lt;code&amp;gt;* &amp;amp;lt;Human-Readable Date/Time&amp;amp;gt; :: &amp;amp;lt;Event Title&amp;amp;gt; :: &amp;amp;lt;Emoji&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The final field is optional, and may either be a small number of emoji to appear at the end of the event listing, or else the relative path to an image already pre-loaded on the Bricodash server.&lt;br /&gt;
&lt;br /&gt;
Optionally, the first field may begin with a &amp;quot;#&amp;quot;, in which case the entire event line is treated as a comment&amp;amp;mdash;and thus ignored. This can be used to leave reminders for recurring events that have a different date each year, such as annual conventions where dates are only announced in the lead-up to the event.&lt;br /&gt;
&lt;br /&gt;
=Extra Community Calendar Items=&lt;br /&gt;
&lt;br /&gt;
* May 4 at 9:30 am :: Just For Fun / May Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* Jun 9 at 1 pm :: Just for Fun / June Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* Jul 13 at 9:30 am :: Just for Fun / July Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* Aug 4 at 1 pm :: Just for Fun / August Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* Sep 7 at 9:30 am :: Just for Fun / September Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* Oct 6 at 1 pm :: Just for Fun / October Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* Nov 2 at 9:30 am :: Just for Fun / November Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* Dec 6 at 1 pm :: Just for Fun / December Crafts Day (Penn South) :: 🎨&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#* Sep 14 at 10 am :: Penn South Flea Market (W 26 btw 8th &amp;amp; 9th) :: 🏷️🛍️&lt;br /&gt;
#* Sep 22 at 10 am :: SAFE Disposal Event (Union Square&amp;amp;mdash;North Plaza) :: ☠🖥🔋☣️&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#* Oct 3 :: First Day of NY Comic Con &amp;lt;img class=&amp;quot;logo&amp;quot; src=&amp;quot;img/flickr_nalends_super_pop.png&amp;quot;&amp;gt; / Anime Expo (Javits Center)&lt;br /&gt;
#* Oct 6 :: Last Day of NY Comic Con &amp;lt;img class=&amp;quot;logo&amp;quot; src=&amp;quot;img/flickr_nalends_super_pop.png&amp;quot;&amp;gt; / Anime Expo (Javits Center)&lt;br /&gt;
&lt;br /&gt;
#* Oct 4 at 8 am :: PyGotham (Pennsylvania Hotel)&lt;br /&gt;
#* Oct 5 at 8 am :: PyGotham (Pennsylvania Hotel)&lt;br /&gt;
&lt;br /&gt;
#* Oct 9 at 7 pm :: &amp;quot;Off the Hook&amp;quot; Live (Brooklyn Commons) :: 📻🎙️&lt;br /&gt;
&lt;br /&gt;
#* Oct 19 at 12 pm :: Gowanus Open Studios 2019 at NYC Resistor&lt;br /&gt;
#* Oct 20 at 12 pm :: Gowanus Open Studios 2019 at NYC Resistor&lt;br /&gt;
&lt;br /&gt;
* Jan 2 :: First Day of Super MAGFest (National Harbor, MD) :: 🕹️🎮&lt;br /&gt;
* Jan 5 :: First Day of Super MAGFest (National Harbor, MD) :: 🕹️🎮&lt;/div&gt;</summary>
		<author><name>Beadsland</name></author>
	</entry>
	<entry>
		<id>https://wiki.hackmanhattan.com/index.php?title=Bricodash/Future&amp;diff=7382</id>
		<title>Bricodash/Future</title>
		<link rel="alternate" type="text/html" href="https://wiki.hackmanhattan.com/index.php?title=Bricodash/Future&amp;diff=7382"/>
		<updated>2019-10-24T12:37:31Z</updated>

		<summary type="html">&lt;p&gt;Beadsland: /* Calendrical */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
''See:'' &amp;lt;span style=&amp;quot;white-space: nowrap&amp;quot;&amp;gt;[[File:Bricodash_screenshot.png|35px]] [[Bricodash]] &amp;lt;/span&amp;gt; for project details&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table width=&amp;quot;100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;48%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current Tasks Outstanding ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
=== Performance and Maintenance ===&lt;br /&gt;
&lt;br /&gt;
==== Fixes ====&lt;br /&gt;
* resolve v3/events/search failure (email reply from Eventbrite API team 22 Oct: solution being explored)&lt;br /&gt;
* explore having bricodash spawn in new tab then close old tab -- to force GC of JS code snippets&lt;br /&gt;
&lt;br /&gt;
==== Repository ====&lt;br /&gt;
* recreate repository as non-fork&lt;br /&gt;
* readme link to defaultcast&lt;br /&gt;
* research and select a code of conduct&lt;br /&gt;
* flesh out issues linking to project plan&lt;br /&gt;
&lt;br /&gt;
=== Long Overdue Calendarical Overhaul ===&lt;br /&gt;
&lt;br /&gt;
==== Reverse Engineer FCNA/ECFR Calculations ====&lt;br /&gt;
* relearn trigonometry&lt;br /&gt;
* refactor astronomical month calculations to new repository&lt;br /&gt;
* see if we can solve sunrise (sunset) equation for pair(?) of latitudes on a given meridian (at a given datetime)&lt;br /&gt;
* see if any altitude delta patterns are apparent with coarse (non-continuous) iteration over enlongation-bounded datetime range&lt;br /&gt;
* work out if we can iteratively narrow down latitude pairs to solve for altitude deltas within intersecting sunsets&lt;br /&gt;
* determine how elevation complicates all of this (i.e., intersecting sunset clusters rather than intersecting sunsets)&lt;br /&gt;
* examine if there's a solution for westward obstructions (e.g. mountain ranges) in determining sunsets&lt;br /&gt;
* explore performance gains of reimplementing search traversal via elixir calls to python calculations&lt;br /&gt;
&lt;br /&gt;
==== Islamic Calendar ====&lt;br /&gt;
* refactor islamic calendarical library to new repository&lt;br /&gt;
* incorporate for astronomical calculation as used by some in North America&lt;br /&gt;
* confirm safe astimezone use (not erroneously masking local time as UTC)&lt;br /&gt;
* refactor to combine observational and astronomical date sets&lt;br /&gt;
* add Eid al-Adha to calendar&lt;br /&gt;
&lt;br /&gt;
==== Hindu Calendar ====&lt;br /&gt;
* refactor hindu calendrical library to new repository&lt;br /&gt;
* new module to calculate enumerations of tithi for a given month&lt;br /&gt;
* new module to calculate enumerations of months for a given year (rather than lisp ordinal month)&lt;br /&gt;
* reimplement lisp functions for hindu calendar in python3&lt;br /&gt;
&lt;br /&gt;
==== Calendrical Umbrella ====&lt;br /&gt;
* spin off jewish calendarical library as dedicated project&lt;br /&gt;
* spin off master festivals project for drawing together specific calendars&lt;br /&gt;
&lt;br /&gt;
=== BindSight :2020 ===&lt;br /&gt;
&lt;br /&gt;
''See also:'' [[BindSight]] project page&lt;br /&gt;
&lt;br /&gt;
{{:BindSight}}&lt;br /&gt;
&lt;br /&gt;
=== Webhook Notifications ===&lt;br /&gt;
&lt;br /&gt;
Javascript client-side triggers to deliver messages to our Slack channels to provide alerts when the camera feed or client devices stall.&lt;br /&gt;
&lt;br /&gt;
* migrate sleep macro to general purpose library&lt;br /&gt;
* migrate from webhooks integration to webhooks feature of bricodash app (and update notice)&lt;br /&gt;
* server-side webhook on stall of any given device&lt;br /&gt;
* when wonkiness addressed: downthrottle chromecast reboots to 1x per day; stream swap-in to never&lt;br /&gt;
&lt;br /&gt;
=== Server ===&lt;br /&gt;
&lt;br /&gt;
Standardize Web server setup and fully integrate BindSight.&lt;br /&gt;
&lt;br /&gt;
* migrate to standard web port (now that relayd installed on router)&lt;br /&gt;
* configure X-Forwarded-For logging in apache&lt;br /&gt;
* enable SSL for camera feeds (requested for full conversion to new sous veil system)&lt;br /&gt;
* enable SSL directly via daemon's listening port (i.e., elixir rather than apache)&lt;br /&gt;
* transfer slackbot snapshots to bricolage gateway&lt;br /&gt;
&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
&lt;br /&gt;
Flesh out project documentation&amp;amp;mdash;after fixing existing problems with our Mediawiki server.&lt;br /&gt;
&lt;br /&gt;
* recent edits monitor to trigger cache purge on transcluded Bricodash documentation updates&lt;br /&gt;
* help get mediawiki server 504 issues resolved (currently an obstacle to '''Bricodash''' documentation)&lt;br /&gt;
* broach discussion of absent Copyrights page on Wiki -- do we want to adopt a license??&lt;br /&gt;
* redraft lists in [[Bricodash#Event_Calendars|calendar sections]] as tables&lt;br /&gt;
* flesh out [[:Bricodash/Future|Bricodash Future Ideas]], explaining known requirements for each&lt;br /&gt;
&lt;br /&gt;
=== Cloud Log ===&lt;br /&gt;
&lt;br /&gt;
Incorporate remaining sources into rolling update log shown in lower left-hand corner.&lt;br /&gt;
&lt;br /&gt;
==== User Repositories ====&lt;br /&gt;
* refactor cloud/github to abstract away github/gitlab/etc&lt;br /&gt;
* allow more than most recent pushed repository to be shown&lt;br /&gt;
* add boxrs-based git repositories to Cloud Log panel&lt;br /&gt;
&lt;br /&gt;
==== Other Cloud Services ====&lt;br /&gt;
* Mediawiki &amp;amp;mdash; pending new account requests&lt;br /&gt;
* Zendesk — count of unread/open inquiries&lt;br /&gt;
* Status updates on donations: Patreon, Paypal, Amazon Smile...&lt;br /&gt;
* write up requirements for [[Bricodash/Future#Instagram_Integration|Instagram Integration]]&lt;br /&gt;
* write up requirements for [[Bricodash/Future#Twitter_Integration|Twitter Integration]]&lt;br /&gt;
&lt;br /&gt;
==== Retire IFFF Wiki Updates ====&lt;br /&gt;
* bot to post daily cloud log update to #general on our slack&lt;br /&gt;
&lt;br /&gt;
=== Calendars ===&lt;br /&gt;
&lt;br /&gt;
Incorporate additional calculated and externally sourced calendar events.&lt;br /&gt;
&lt;br /&gt;
==== Fixes ====&lt;br /&gt;
* almanac alt for almanac events&lt;br /&gt;
* add enum of event sources for sorting priority (when same start time)&lt;br /&gt;
* move HM anniversary dates to special .cal that takes precedence on HM calendar (and also appears on NYC)&lt;br /&gt;
* swap out icalendar (buggy repetition exception handling) in favor of true API&lt;br /&gt;
&lt;br /&gt;
==== Calculation ====&lt;br /&gt;
* new module to calculate hindu lunar tithi =&amp;gt; closing muhurat =&amp;gt; solar day&lt;br /&gt;
* revise diwali/deepawali calculation using tithi rather than lisp library approximations&lt;br /&gt;
* correctly calculate dates of International Astronomy Day (email out to Astronomical League for better calculation rules)&lt;br /&gt;
* calculate dates of Manhattanhenge (email out to library of American Museum of Natural History for formula)&lt;br /&gt;
* add eclipses and other significant astronomical events to holidays&lt;br /&gt;
* finish fleshing out remainder of movable feasts for [[Bricodash#Community_Calendar|Community Calendar]] (June 2019 forward)&lt;br /&gt;
&lt;br /&gt;
==== Integration ====&lt;br /&gt;
* use google search to find Offside Tavern Meetup events&lt;br /&gt;
* add placeholder events for non-Meetup Offside Tavern events&lt;br /&gt;
* refactor brite search by location routine to common library&lt;br /&gt;
* add nyc mesh, nyc resistor, fat cat fab lab, makerbar, makerspace nyc (SI), futureworks (BK/SI) to [[Bricodash#Community_Calendar|Community Calendar]] &lt;br /&gt;
* also add grow with google (if still in NYC), 2600, Off the Hook (if still broadcasting), blick, michaels, local library branches, makerish meetup events, NYC street fairs&lt;br /&gt;
&lt;br /&gt;
==== Advanced ====&lt;br /&gt;
* revise #thehaps formatting to provide headers per day&lt;br /&gt;
* embed hotlinks in #thehaps channel event listings&lt;br /&gt;
* concise calendar response for interactive slackbot&lt;br /&gt;
* auto-capture of #thehaps posted events to [[Bricodash/Extra:Calendar]]&lt;br /&gt;
* automation/streamlining tools for cross-posting HM Meetup events to Spingo&lt;br /&gt;
* enable toggling between Welcome header and holiday greetings [[Bricodash#Community_Calendar|^]]&lt;br /&gt;
&lt;br /&gt;
=== Cleanup ===&lt;br /&gt;
&lt;br /&gt;
Remaining features and code maintenance before calling it a major release.&lt;br /&gt;
&lt;br /&gt;
* integrate citymapper API for local subway stations&lt;br /&gt;
* refactor source files from initial launch&lt;br /&gt;
* find owners to adopt data sourcing projects that require more than passive API calls (see sections below)&lt;br /&gt;
* squish and push fork to upstream&lt;br /&gt;
&lt;br /&gt;
=== Upgrades ===&lt;br /&gt;
&lt;br /&gt;
Once built, streamline and rewrite as a truly beautiful application.&lt;br /&gt;
&lt;br /&gt;
* migrate from bricolage to less power-hungry hardware&lt;br /&gt;
* combined community slack calendar to wiki page (requires privacy policy under brite license)&lt;br /&gt;
* reimplement bricolage to run as embedded system under elixir/scenic/nerves&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
* import python directly using beamparticle&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot; style=&amp;quot;border-right:solid 1px #a7d7f9;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; padding-left: 20px; padding-bottom: 10px&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sub-Projects Needing Owners ==&lt;br /&gt;
&lt;br /&gt;
The projects below require an investment of time&amp;amp;mdash;such as active coordination with an API's owners&amp;amp;mdash;to be implemented, but would provide meaningful improvements to the overall feature-set of Bricodash if completed. &lt;br /&gt;
&lt;br /&gt;
At some point the description for each will be fleshed out to provide a full functional specification, together with an exploration of the requirements to move forward. For now, capsule bullet points serve as place holders. For more information, touch base with [[User:Beadsland]].&lt;br /&gt;
&lt;br /&gt;
=== Instagram Integration ===&lt;br /&gt;
&lt;br /&gt;
* add Instagram to Weird Photos and HM Cloud Log &amp;amp;mdash; this requires creating pages on Facebook under the new Graph API&lt;br /&gt;
&lt;br /&gt;
=== Twitter Integration ===&lt;br /&gt;
&lt;br /&gt;
* add Twitter to Weird Photos and HM Cloud Log &amp;amp;mdash; this requires emailing to get a dev account, then honoring Twitter's [https://developer.twitter.com/en/developer-terms/display-requirements.html Display Requirements]&lt;br /&gt;
&lt;br /&gt;
=== Slack Calendar Response Bot ===&lt;br /&gt;
&lt;br /&gt;
* interactive bot response to &amp;quot;What's happening?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Draft a Privacy Policy ===&lt;br /&gt;
&lt;br /&gt;
* draft privacy policy (per API reqs for public sites)&lt;br /&gt;
&lt;br /&gt;
=== Buzzer-Activated IR Remote ===&lt;br /&gt;
&lt;br /&gt;
Additionally, there are plans to tie a ceiling-mounted IR remote into the intercom buzzer to toggle inputs on the TV. &lt;br /&gt;
The idea would be that when the buzzer sounds, the remote would switch from the dashboard (on Chromecast) to a dedicated &lt;br /&gt;
full screen camera input.  After a delay the input would be toggled back to the Chromecast-hosted dashboard.  Such an&lt;br /&gt;
arrangement would free up the dashboard screen real-estate currently devoted to an around-the-clock camera feed&amp;amp;mdash;as, realistically, the only time one needs a camera feed is when a visitor is buzzing to be let in.&lt;br /&gt;
&lt;br /&gt;
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?&lt;br /&gt;
&lt;br /&gt;
* integrate with custom buzzer-activated IR remote hack&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Beadsland</name></author>
	</entry>
	<entry>
		<id>https://wiki.hackmanhattan.com/index.php?title=Bricodash/Future&amp;diff=7381</id>
		<title>Bricodash/Future</title>
		<link rel="alternate" type="text/html" href="https://wiki.hackmanhattan.com/index.php?title=Bricodash/Future&amp;diff=7381"/>
		<updated>2019-10-24T12:34:32Z</updated>

		<summary type="html">&lt;p&gt;Beadsland: /* Integration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
''See:'' &amp;lt;span style=&amp;quot;white-space: nowrap&amp;quot;&amp;gt;[[File:Bricodash_screenshot.png|35px]] [[Bricodash]] &amp;lt;/span&amp;gt; for project details&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table width=&amp;quot;100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;48%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current Tasks Outstanding ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
=== Performance and Maintenance ===&lt;br /&gt;
&lt;br /&gt;
==== Fixes ====&lt;br /&gt;
* resolve v3/events/search failure (email reply from Eventbrite API team 22 Oct: solution being explored)&lt;br /&gt;
* explore having bricodash spawn in new tab then close old tab -- to force GC of JS code snippets&lt;br /&gt;
&lt;br /&gt;
==== Repository ====&lt;br /&gt;
* recreate repository as non-fork&lt;br /&gt;
* readme link to defaultcast&lt;br /&gt;
* research and select a code of conduct&lt;br /&gt;
* flesh out issues linking to project plan&lt;br /&gt;
&lt;br /&gt;
=== Long Overdue Calendarical Overhaul ===&lt;br /&gt;
&lt;br /&gt;
==== Reverse Engineer FCNA/ECFR Calculations ====&lt;br /&gt;
* relearn trigonometry&lt;br /&gt;
* refactor astronomical month calculations to new repository&lt;br /&gt;
* see if we can solve sunrise (sunset) equation for pair(?) of latitudes on a given meridian (at a given datetime)&lt;br /&gt;
* see if any altitude delta patterns are apparent with coarse (non-continuous) iteration over enlongation-bounded datetime range&lt;br /&gt;
* work out if we can iteratively narrow down latitude pairs to solve for altitude deltas within intersecting sunsets&lt;br /&gt;
* determine how elevation complicates all of this (i.e., intersecting sunset clusters rather than intersecting sunsets)&lt;br /&gt;
* examine if there's a solution for westward obstructions (e.g. mountain ranges) in determining sunsets&lt;br /&gt;
* explore performance gains of reimplementing search traversal via elixir calls to python calculations&lt;br /&gt;
&lt;br /&gt;
==== Islamic Calendar ====&lt;br /&gt;
* refactor islamic calendarical library to new repository&lt;br /&gt;
* incorporate for astronomical calculation as used by some in North America&lt;br /&gt;
* confirm safe astimezone use (not erroneously masking local time as UTC)&lt;br /&gt;
* refactor to combine observational and astronomical date sets&lt;br /&gt;
* add Eid al-Adha to calendar&lt;br /&gt;
&lt;br /&gt;
==== Hindu Calendar ====&lt;br /&gt;
* refactor hindu calendrical library to new repository&lt;br /&gt;
* new module to calculate enumerations of tithi for a given month&lt;br /&gt;
* new module to calculate enumerations of months for a given year (rather than lisp ordinal month)&lt;br /&gt;
* reimplement lisp functions for hindu calendar in python3&lt;br /&gt;
&lt;br /&gt;
==== Calendrical ====&lt;br /&gt;
* spin off jewish calendarical library as dedicated project&lt;br /&gt;
* spin off master project for drawing together specific calendars&lt;br /&gt;
&lt;br /&gt;
=== BindSight :2020 ===&lt;br /&gt;
&lt;br /&gt;
''See also:'' [[BindSight]] project page&lt;br /&gt;
&lt;br /&gt;
{{:BindSight}}&lt;br /&gt;
&lt;br /&gt;
=== Webhook Notifications ===&lt;br /&gt;
&lt;br /&gt;
Javascript client-side triggers to deliver messages to our Slack channels to provide alerts when the camera feed or client devices stall.&lt;br /&gt;
&lt;br /&gt;
* migrate sleep macro to general purpose library&lt;br /&gt;
* migrate from webhooks integration to webhooks feature of bricodash app (and update notice)&lt;br /&gt;
* server-side webhook on stall of any given device&lt;br /&gt;
* when wonkiness addressed: downthrottle chromecast reboots to 1x per day; stream swap-in to never&lt;br /&gt;
&lt;br /&gt;
=== Server ===&lt;br /&gt;
&lt;br /&gt;
Standardize Web server setup and fully integrate BindSight.&lt;br /&gt;
&lt;br /&gt;
* migrate to standard web port (now that relayd installed on router)&lt;br /&gt;
* configure X-Forwarded-For logging in apache&lt;br /&gt;
* enable SSL for camera feeds (requested for full conversion to new sous veil system)&lt;br /&gt;
* enable SSL directly via daemon's listening port (i.e., elixir rather than apache)&lt;br /&gt;
* transfer slackbot snapshots to bricolage gateway&lt;br /&gt;
&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
&lt;br /&gt;
Flesh out project documentation&amp;amp;mdash;after fixing existing problems with our Mediawiki server.&lt;br /&gt;
&lt;br /&gt;
* recent edits monitor to trigger cache purge on transcluded Bricodash documentation updates&lt;br /&gt;
* help get mediawiki server 504 issues resolved (currently an obstacle to '''Bricodash''' documentation)&lt;br /&gt;
* broach discussion of absent Copyrights page on Wiki -- do we want to adopt a license??&lt;br /&gt;
* redraft lists in [[Bricodash#Event_Calendars|calendar sections]] as tables&lt;br /&gt;
* flesh out [[:Bricodash/Future|Bricodash Future Ideas]], explaining known requirements for each&lt;br /&gt;
&lt;br /&gt;
=== Cloud Log ===&lt;br /&gt;
&lt;br /&gt;
Incorporate remaining sources into rolling update log shown in lower left-hand corner.&lt;br /&gt;
&lt;br /&gt;
==== User Repositories ====&lt;br /&gt;
* refactor cloud/github to abstract away github/gitlab/etc&lt;br /&gt;
* allow more than most recent pushed repository to be shown&lt;br /&gt;
* add boxrs-based git repositories to Cloud Log panel&lt;br /&gt;
&lt;br /&gt;
==== Other Cloud Services ====&lt;br /&gt;
* Mediawiki &amp;amp;mdash; pending new account requests&lt;br /&gt;
* Zendesk — count of unread/open inquiries&lt;br /&gt;
* Status updates on donations: Patreon, Paypal, Amazon Smile...&lt;br /&gt;
* write up requirements for [[Bricodash/Future#Instagram_Integration|Instagram Integration]]&lt;br /&gt;
* write up requirements for [[Bricodash/Future#Twitter_Integration|Twitter Integration]]&lt;br /&gt;
&lt;br /&gt;
==== Retire IFFF Wiki Updates ====&lt;br /&gt;
* bot to post daily cloud log update to #general on our slack&lt;br /&gt;
&lt;br /&gt;
=== Calendars ===&lt;br /&gt;
&lt;br /&gt;
Incorporate additional calculated and externally sourced calendar events.&lt;br /&gt;
&lt;br /&gt;
==== Fixes ====&lt;br /&gt;
* almanac alt for almanac events&lt;br /&gt;
* add enum of event sources for sorting priority (when same start time)&lt;br /&gt;
* move HM anniversary dates to special .cal that takes precedence on HM calendar (and also appears on NYC)&lt;br /&gt;
* swap out icalendar (buggy repetition exception handling) in favor of true API&lt;br /&gt;
&lt;br /&gt;
==== Calculation ====&lt;br /&gt;
* new module to calculate hindu lunar tithi =&amp;gt; closing muhurat =&amp;gt; solar day&lt;br /&gt;
* revise diwali/deepawali calculation using tithi rather than lisp library approximations&lt;br /&gt;
* correctly calculate dates of International Astronomy Day (email out to Astronomical League for better calculation rules)&lt;br /&gt;
* calculate dates of Manhattanhenge (email out to library of American Museum of Natural History for formula)&lt;br /&gt;
* add eclipses and other significant astronomical events to holidays&lt;br /&gt;
* finish fleshing out remainder of movable feasts for [[Bricodash#Community_Calendar|Community Calendar]] (June 2019 forward)&lt;br /&gt;
&lt;br /&gt;
==== Integration ====&lt;br /&gt;
* use google search to find Offside Tavern Meetup events&lt;br /&gt;
* add placeholder events for non-Meetup Offside Tavern events&lt;br /&gt;
* refactor brite search by location routine to common library&lt;br /&gt;
* add nyc mesh, nyc resistor, fat cat fab lab, makerbar, makerspace nyc (SI), futureworks (BK/SI) to [[Bricodash#Community_Calendar|Community Calendar]] &lt;br /&gt;
* also add grow with google (if still in NYC), 2600, Off the Hook (if still broadcasting), blick, michaels, local library branches, makerish meetup events, NYC street fairs&lt;br /&gt;
&lt;br /&gt;
==== Advanced ====&lt;br /&gt;
* revise #thehaps formatting to provide headers per day&lt;br /&gt;
* embed hotlinks in #thehaps channel event listings&lt;br /&gt;
* concise calendar response for interactive slackbot&lt;br /&gt;
* auto-capture of #thehaps posted events to [[Bricodash/Extra:Calendar]]&lt;br /&gt;
* automation/streamlining tools for cross-posting HM Meetup events to Spingo&lt;br /&gt;
* enable toggling between Welcome header and holiday greetings [[Bricodash#Community_Calendar|^]]&lt;br /&gt;
&lt;br /&gt;
=== Cleanup ===&lt;br /&gt;
&lt;br /&gt;
Remaining features and code maintenance before calling it a major release.&lt;br /&gt;
&lt;br /&gt;
* integrate citymapper API for local subway stations&lt;br /&gt;
* refactor source files from initial launch&lt;br /&gt;
* find owners to adopt data sourcing projects that require more than passive API calls (see sections below)&lt;br /&gt;
* squish and push fork to upstream&lt;br /&gt;
&lt;br /&gt;
=== Upgrades ===&lt;br /&gt;
&lt;br /&gt;
Once built, streamline and rewrite as a truly beautiful application.&lt;br /&gt;
&lt;br /&gt;
* migrate from bricolage to less power-hungry hardware&lt;br /&gt;
* combined community slack calendar to wiki page (requires privacy policy under brite license)&lt;br /&gt;
* reimplement bricolage to run as embedded system under elixir/scenic/nerves&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
* import python directly using beamparticle&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot; style=&amp;quot;border-right:solid 1px #a7d7f9;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; padding-left: 20px; padding-bottom: 10px&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sub-Projects Needing Owners ==&lt;br /&gt;
&lt;br /&gt;
The projects below require an investment of time&amp;amp;mdash;such as active coordination with an API's owners&amp;amp;mdash;to be implemented, but would provide meaningful improvements to the overall feature-set of Bricodash if completed. &lt;br /&gt;
&lt;br /&gt;
At some point the description for each will be fleshed out to provide a full functional specification, together with an exploration of the requirements to move forward. For now, capsule bullet points serve as place holders. For more information, touch base with [[User:Beadsland]].&lt;br /&gt;
&lt;br /&gt;
=== Instagram Integration ===&lt;br /&gt;
&lt;br /&gt;
* add Instagram to Weird Photos and HM Cloud Log &amp;amp;mdash; this requires creating pages on Facebook under the new Graph API&lt;br /&gt;
&lt;br /&gt;
=== Twitter Integration ===&lt;br /&gt;
&lt;br /&gt;
* add Twitter to Weird Photos and HM Cloud Log &amp;amp;mdash; this requires emailing to get a dev account, then honoring Twitter's [https://developer.twitter.com/en/developer-terms/display-requirements.html Display Requirements]&lt;br /&gt;
&lt;br /&gt;
=== Slack Calendar Response Bot ===&lt;br /&gt;
&lt;br /&gt;
* interactive bot response to &amp;quot;What's happening?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Draft a Privacy Policy ===&lt;br /&gt;
&lt;br /&gt;
* draft privacy policy (per API reqs for public sites)&lt;br /&gt;
&lt;br /&gt;
=== Buzzer-Activated IR Remote ===&lt;br /&gt;
&lt;br /&gt;
Additionally, there are plans to tie a ceiling-mounted IR remote into the intercom buzzer to toggle inputs on the TV. &lt;br /&gt;
The idea would be that when the buzzer sounds, the remote would switch from the dashboard (on Chromecast) to a dedicated &lt;br /&gt;
full screen camera input.  After a delay the input would be toggled back to the Chromecast-hosted dashboard.  Such an&lt;br /&gt;
arrangement would free up the dashboard screen real-estate currently devoted to an around-the-clock camera feed&amp;amp;mdash;as, realistically, the only time one needs a camera feed is when a visitor is buzzing to be let in.&lt;br /&gt;
&lt;br /&gt;
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?&lt;br /&gt;
&lt;br /&gt;
* integrate with custom buzzer-activated IR remote hack&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Beadsland</name></author>
	</entry>
	<entry>
		<id>https://wiki.hackmanhattan.com/index.php?title=Bricodash/Future&amp;diff=7380</id>
		<title>Bricodash/Future</title>
		<link rel="alternate" type="text/html" href="https://wiki.hackmanhattan.com/index.php?title=Bricodash/Future&amp;diff=7380"/>
		<updated>2019-10-24T11:33:47Z</updated>

		<summary type="html">&lt;p&gt;Beadsland: /* Performance and Maintenance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
''See:'' &amp;lt;span style=&amp;quot;white-space: nowrap&amp;quot;&amp;gt;[[File:Bricodash_screenshot.png|35px]] [[Bricodash]] &amp;lt;/span&amp;gt; for project details&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table width=&amp;quot;100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;48%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current Tasks Outstanding ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
=== Performance and Maintenance ===&lt;br /&gt;
&lt;br /&gt;
==== Fixes ====&lt;br /&gt;
* resolve v3/events/search failure (email reply from Eventbrite API team 22 Oct: solution being explored)&lt;br /&gt;
* explore having bricodash spawn in new tab then close old tab -- to force GC of JS code snippets&lt;br /&gt;
&lt;br /&gt;
==== Repository ====&lt;br /&gt;
* recreate repository as non-fork&lt;br /&gt;
* readme link to defaultcast&lt;br /&gt;
* research and select a code of conduct&lt;br /&gt;
* flesh out issues linking to project plan&lt;br /&gt;
&lt;br /&gt;
=== Long Overdue Calendarical Overhaul ===&lt;br /&gt;
&lt;br /&gt;
==== Reverse Engineer FCNA/ECFR Calculations ====&lt;br /&gt;
* relearn trigonometry&lt;br /&gt;
* refactor astronomical month calculations to new repository&lt;br /&gt;
* see if we can solve sunrise (sunset) equation for pair(?) of latitudes on a given meridian (at a given datetime)&lt;br /&gt;
* see if any altitude delta patterns are apparent with coarse (non-continuous) iteration over enlongation-bounded datetime range&lt;br /&gt;
* work out if we can iteratively narrow down latitude pairs to solve for altitude deltas within intersecting sunsets&lt;br /&gt;
* determine how elevation complicates all of this (i.e., intersecting sunset clusters rather than intersecting sunsets)&lt;br /&gt;
* examine if there's a solution for westward obstructions (e.g. mountain ranges) in determining sunsets&lt;br /&gt;
* explore performance gains of reimplementing search traversal via elixir calls to python calculations&lt;br /&gt;
&lt;br /&gt;
==== Islamic Calendar ====&lt;br /&gt;
* refactor islamic calendarical library to new repository&lt;br /&gt;
* incorporate for astronomical calculation as used by some in North America&lt;br /&gt;
* confirm safe astimezone use (not erroneously masking local time as UTC)&lt;br /&gt;
* refactor to combine observational and astronomical date sets&lt;br /&gt;
* add Eid al-Adha to calendar&lt;br /&gt;
&lt;br /&gt;
==== Hindu Calendar ====&lt;br /&gt;
* refactor hindu calendrical library to new repository&lt;br /&gt;
* new module to calculate enumerations of tithi for a given month&lt;br /&gt;
* new module to calculate enumerations of months for a given year (rather than lisp ordinal month)&lt;br /&gt;
* reimplement lisp functions for hindu calendar in python3&lt;br /&gt;
&lt;br /&gt;
==== Calendrical ====&lt;br /&gt;
* spin off jewish calendarical library as dedicated project&lt;br /&gt;
* spin off master project for drawing together specific calendars&lt;br /&gt;
&lt;br /&gt;
=== BindSight :2020 ===&lt;br /&gt;
&lt;br /&gt;
''See also:'' [[BindSight]] project page&lt;br /&gt;
&lt;br /&gt;
{{:BindSight}}&lt;br /&gt;
&lt;br /&gt;
=== Webhook Notifications ===&lt;br /&gt;
&lt;br /&gt;
Javascript client-side triggers to deliver messages to our Slack channels to provide alerts when the camera feed or client devices stall.&lt;br /&gt;
&lt;br /&gt;
* migrate sleep macro to general purpose library&lt;br /&gt;
* migrate from webhooks integration to webhooks feature of bricodash app (and update notice)&lt;br /&gt;
* server-side webhook on stall of any given device&lt;br /&gt;
* when wonkiness addressed: downthrottle chromecast reboots to 1x per day; stream swap-in to never&lt;br /&gt;
&lt;br /&gt;
=== Server ===&lt;br /&gt;
&lt;br /&gt;
Standardize Web server setup and fully integrate BindSight.&lt;br /&gt;
&lt;br /&gt;
* migrate to standard web port (now that relayd installed on router)&lt;br /&gt;
* configure X-Forwarded-For logging in apache&lt;br /&gt;
* enable SSL for camera feeds (requested for full conversion to new sous veil system)&lt;br /&gt;
* enable SSL directly via daemon's listening port (i.e., elixir rather than apache)&lt;br /&gt;
* transfer slackbot snapshots to bricolage gateway&lt;br /&gt;
&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
&lt;br /&gt;
Flesh out project documentation&amp;amp;mdash;after fixing existing problems with our Mediawiki server.&lt;br /&gt;
&lt;br /&gt;
* recent edits monitor to trigger cache purge on transcluded Bricodash documentation updates&lt;br /&gt;
* help get mediawiki server 504 issues resolved (currently an obstacle to '''Bricodash''' documentation)&lt;br /&gt;
* broach discussion of absent Copyrights page on Wiki -- do we want to adopt a license??&lt;br /&gt;
* redraft lists in [[Bricodash#Event_Calendars|calendar sections]] as tables&lt;br /&gt;
* flesh out [[:Bricodash/Future|Bricodash Future Ideas]], explaining known requirements for each&lt;br /&gt;
&lt;br /&gt;
=== Cloud Log ===&lt;br /&gt;
&lt;br /&gt;
Incorporate remaining sources into rolling update log shown in lower left-hand corner.&lt;br /&gt;
&lt;br /&gt;
==== User Repositories ====&lt;br /&gt;
* refactor cloud/github to abstract away github/gitlab/etc&lt;br /&gt;
* allow more than most recent pushed repository to be shown&lt;br /&gt;
* add boxrs-based git repositories to Cloud Log panel&lt;br /&gt;
&lt;br /&gt;
==== Other Cloud Services ====&lt;br /&gt;
* Mediawiki &amp;amp;mdash; pending new account requests&lt;br /&gt;
* Zendesk — count of unread/open inquiries&lt;br /&gt;
* Status updates on donations: Patreon, Paypal, Amazon Smile...&lt;br /&gt;
* write up requirements for [[Bricodash/Future#Instagram_Integration|Instagram Integration]]&lt;br /&gt;
* write up requirements for [[Bricodash/Future#Twitter_Integration|Twitter Integration]]&lt;br /&gt;
&lt;br /&gt;
==== Retire IFFF Wiki Updates ====&lt;br /&gt;
* bot to post daily cloud log update to #general on our slack&lt;br /&gt;
&lt;br /&gt;
=== Calendars ===&lt;br /&gt;
&lt;br /&gt;
Incorporate additional calculated and externally sourced calendar events.&lt;br /&gt;
&lt;br /&gt;
==== Fixes ====&lt;br /&gt;
* almanac alt for almanac events&lt;br /&gt;
* add enum of event sources for sorting priority (when same start time)&lt;br /&gt;
* move HM anniversary dates to special .cal that takes precedence on HM calendar (and also appears on NYC)&lt;br /&gt;
* swap out icalendar (buggy repetition exception handling) in favor of true API&lt;br /&gt;
&lt;br /&gt;
==== Calculation ====&lt;br /&gt;
* new module to calculate hindu lunar tithi =&amp;gt; closing muhurat =&amp;gt; solar day&lt;br /&gt;
* revise diwali/deepawali calculation using tithi rather than lisp library approximations&lt;br /&gt;
* correctly calculate dates of International Astronomy Day (email out to Astronomical League for better calculation rules)&lt;br /&gt;
* calculate dates of Manhattanhenge (email out to library of American Museum of Natural History for formula)&lt;br /&gt;
* add eclipses and other significant astronomical events to holidays&lt;br /&gt;
* finish fleshing out remainder of movable feasts for [[Bricodash#Community_Calendar|Community Calendar]] (June 2019 forward)&lt;br /&gt;
&lt;br /&gt;
==== Integration ====&lt;br /&gt;
* use google search to find Offside Tavern Meetup events&lt;br /&gt;
* add placeholder events for non-Meetup Offside Tavern events&lt;br /&gt;
* refactor brite search by location routine to common library&lt;br /&gt;
* add nyc mesh, nyc resistor, fat cat fab lab, makerbar, makerspace nyc (SI), futureworks (BK/SI) to [[Bricodash#Community_Calendar|Community Calendar]] &lt;br /&gt;
* also add grow with google (if still in NYC), 2600, Off the Hook (if still broadcasting), blick, michaels, local library branches, makerish meetup events&lt;br /&gt;
&lt;br /&gt;
==== Advanced ====&lt;br /&gt;
* revise #thehaps formatting to provide headers per day&lt;br /&gt;
* embed hotlinks in #thehaps channel event listings&lt;br /&gt;
* concise calendar response for interactive slackbot&lt;br /&gt;
* auto-capture of #thehaps posted events to [[Bricodash/Extra:Calendar]]&lt;br /&gt;
* automation/streamlining tools for cross-posting HM Meetup events to Spingo&lt;br /&gt;
* enable toggling between Welcome header and holiday greetings [[Bricodash#Community_Calendar|^]]&lt;br /&gt;
&lt;br /&gt;
=== Cleanup ===&lt;br /&gt;
&lt;br /&gt;
Remaining features and code maintenance before calling it a major release.&lt;br /&gt;
&lt;br /&gt;
* integrate citymapper API for local subway stations&lt;br /&gt;
* refactor source files from initial launch&lt;br /&gt;
* find owners to adopt data sourcing projects that require more than passive API calls (see sections below)&lt;br /&gt;
* squish and push fork to upstream&lt;br /&gt;
&lt;br /&gt;
=== Upgrades ===&lt;br /&gt;
&lt;br /&gt;
Once built, streamline and rewrite as a truly beautiful application.&lt;br /&gt;
&lt;br /&gt;
* migrate from bricolage to less power-hungry hardware&lt;br /&gt;
* combined community slack calendar to wiki page (requires privacy policy under brite license)&lt;br /&gt;
* reimplement bricolage to run as embedded system under elixir/scenic/nerves&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
* import python directly using beamparticle&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot; style=&amp;quot;border-right:solid 1px #a7d7f9;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; padding-left: 20px; padding-bottom: 10px&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sub-Projects Needing Owners ==&lt;br /&gt;
&lt;br /&gt;
The projects below require an investment of time&amp;amp;mdash;such as active coordination with an API's owners&amp;amp;mdash;to be implemented, but would provide meaningful improvements to the overall feature-set of Bricodash if completed. &lt;br /&gt;
&lt;br /&gt;
At some point the description for each will be fleshed out to provide a full functional specification, together with an exploration of the requirements to move forward. For now, capsule bullet points serve as place holders. For more information, touch base with [[User:Beadsland]].&lt;br /&gt;
&lt;br /&gt;
=== Instagram Integration ===&lt;br /&gt;
&lt;br /&gt;
* add Instagram to Weird Photos and HM Cloud Log &amp;amp;mdash; this requires creating pages on Facebook under the new Graph API&lt;br /&gt;
&lt;br /&gt;
=== Twitter Integration ===&lt;br /&gt;
&lt;br /&gt;
* add Twitter to Weird Photos and HM Cloud Log &amp;amp;mdash; this requires emailing to get a dev account, then honoring Twitter's [https://developer.twitter.com/en/developer-terms/display-requirements.html Display Requirements]&lt;br /&gt;
&lt;br /&gt;
=== Slack Calendar Response Bot ===&lt;br /&gt;
&lt;br /&gt;
* interactive bot response to &amp;quot;What's happening?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Draft a Privacy Policy ===&lt;br /&gt;
&lt;br /&gt;
* draft privacy policy (per API reqs for public sites)&lt;br /&gt;
&lt;br /&gt;
=== Buzzer-Activated IR Remote ===&lt;br /&gt;
&lt;br /&gt;
Additionally, there are plans to tie a ceiling-mounted IR remote into the intercom buzzer to toggle inputs on the TV. &lt;br /&gt;
The idea would be that when the buzzer sounds, the remote would switch from the dashboard (on Chromecast) to a dedicated &lt;br /&gt;
full screen camera input.  After a delay the input would be toggled back to the Chromecast-hosted dashboard.  Such an&lt;br /&gt;
arrangement would free up the dashboard screen real-estate currently devoted to an around-the-clock camera feed&amp;amp;mdash;as, realistically, the only time one needs a camera feed is when a visitor is buzzing to be let in.&lt;br /&gt;
&lt;br /&gt;
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?&lt;br /&gt;
&lt;br /&gt;
* integrate with custom buzzer-activated IR remote hack&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Beadsland</name></author>
	</entry>
	<entry>
		<id>https://wiki.hackmanhattan.com/index.php?title=Bricodash/Future&amp;diff=7379</id>
		<title>Bricodash/Future</title>
		<link rel="alternate" type="text/html" href="https://wiki.hackmanhattan.com/index.php?title=Bricodash/Future&amp;diff=7379"/>
		<updated>2019-10-24T11:27:35Z</updated>

		<summary type="html">&lt;p&gt;Beadsland: /* Notifications */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
''See:'' &amp;lt;span style=&amp;quot;white-space: nowrap&amp;quot;&amp;gt;[[File:Bricodash_screenshot.png|35px]] [[Bricodash]] &amp;lt;/span&amp;gt; for project details&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table width=&amp;quot;100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;48%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current Tasks Outstanding ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
=== Performance and Maintenance ===&lt;br /&gt;
&lt;br /&gt;
==== Fixes ====&lt;br /&gt;
* clear old brite items&lt;br /&gt;
* resolve v3/events/search failure (email sent to Eventbrite API team morning of 21 October)&lt;br /&gt;
* brute force diwali dates for 2019, as our calendar isn't up to the task&lt;br /&gt;
* render bold and italic in slack messages (via asterick and underline notation)&lt;br /&gt;
&lt;br /&gt;
==== Repository ====&lt;br /&gt;
* recreate repository as non-fork&lt;br /&gt;
* readme link to defaultcast&lt;br /&gt;
* research and select a code of conduct&lt;br /&gt;
* flesh out issues linking to project plan&lt;br /&gt;
&lt;br /&gt;
==== Performance ====&lt;br /&gt;
* explore having bricodash spawn in new tab then close old tab -- to force GC of JS code snippets&lt;br /&gt;
&lt;br /&gt;
=== Long Overdue Calendarical Overhaul ===&lt;br /&gt;
&lt;br /&gt;
==== Reverse Engineer FCNA/ECFR Calculations ====&lt;br /&gt;
* relearn trigonometry&lt;br /&gt;
* refactor astronomical month calculations to new repository&lt;br /&gt;
* see if we can solve sunrise (sunset) equation for pair(?) of latitudes on a given meridian (at a given datetime)&lt;br /&gt;
* see if any altitude delta patterns are apparent with coarse (non-continuous) iteration over enlongation-bounded datetime range&lt;br /&gt;
* work out if we can iteratively narrow down latitude pairs to solve for altitude deltas within intersecting sunsets&lt;br /&gt;
* determine how elevation complicates all of this (i.e., intersecting sunset clusters rather than intersecting sunsets)&lt;br /&gt;
* examine if there's a solution for westward obstructions (e.g. mountain ranges) in determining sunsets&lt;br /&gt;
* explore performance gains of reimplementing search traversal via elixir calls to python calculations&lt;br /&gt;
&lt;br /&gt;
==== Islamic Calendar ====&lt;br /&gt;
* refactor islamic calendarical library to new repository&lt;br /&gt;
* incorporate for astronomical calculation as used by some in North America&lt;br /&gt;
* confirm safe astimezone use (not erroneously masking local time as UTC)&lt;br /&gt;
* refactor to combine observational and astronomical date sets&lt;br /&gt;
* add Eid al-Adha to calendar&lt;br /&gt;
&lt;br /&gt;
==== Hindu Calendar ====&lt;br /&gt;
* refactor hindu calendrical library to new repository&lt;br /&gt;
* new module to calculate enumerations of tithi for a given month&lt;br /&gt;
* new module to calculate enumerations of months for a given year (rather than lisp ordinal month)&lt;br /&gt;
* reimplement lisp functions for hindu calendar in python3&lt;br /&gt;
&lt;br /&gt;
==== Calendrical ====&lt;br /&gt;
* spin off jewish calendarical library as dedicated project&lt;br /&gt;
* spin off master project for drawing together specific calendars&lt;br /&gt;
&lt;br /&gt;
=== BindSight :2020 ===&lt;br /&gt;
&lt;br /&gt;
''See also:'' [[BindSight]] project page&lt;br /&gt;
&lt;br /&gt;
{{:BindSight}}&lt;br /&gt;
&lt;br /&gt;
=== Webhook Notifications ===&lt;br /&gt;
&lt;br /&gt;
Javascript client-side triggers to deliver messages to our Slack channels to provide alerts when the camera feed or client devices stall.&lt;br /&gt;
&lt;br /&gt;
* migrate sleep macro to general purpose library&lt;br /&gt;
* migrate from webhooks integration to webhooks feature of bricodash app (and update notice)&lt;br /&gt;
* server-side webhook on stall of any given device&lt;br /&gt;
* when wonkiness addressed: downthrottle chromecast reboots to 1x per day; stream swap-in to never&lt;br /&gt;
&lt;br /&gt;
=== Server ===&lt;br /&gt;
&lt;br /&gt;
Standardize Web server setup and fully integrate BindSight.&lt;br /&gt;
&lt;br /&gt;
* migrate to standard web port (now that relayd installed on router)&lt;br /&gt;
* configure X-Forwarded-For logging in apache&lt;br /&gt;
* enable SSL for camera feeds (requested for full conversion to new sous veil system)&lt;br /&gt;
* enable SSL directly via daemon's listening port (i.e., elixir rather than apache)&lt;br /&gt;
* transfer slackbot snapshots to bricolage gateway&lt;br /&gt;
&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
&lt;br /&gt;
Flesh out project documentation&amp;amp;mdash;after fixing existing problems with our Mediawiki server.&lt;br /&gt;
&lt;br /&gt;
* recent edits monitor to trigger cache purge on transcluded Bricodash documentation updates&lt;br /&gt;
* help get mediawiki server 504 issues resolved (currently an obstacle to '''Bricodash''' documentation)&lt;br /&gt;
* broach discussion of absent Copyrights page on Wiki -- do we want to adopt a license??&lt;br /&gt;
* redraft lists in [[Bricodash#Event_Calendars|calendar sections]] as tables&lt;br /&gt;
* flesh out [[:Bricodash/Future|Bricodash Future Ideas]], explaining known requirements for each&lt;br /&gt;
&lt;br /&gt;
=== Cloud Log ===&lt;br /&gt;
&lt;br /&gt;
Incorporate remaining sources into rolling update log shown in lower left-hand corner.&lt;br /&gt;
&lt;br /&gt;
==== User Repositories ====&lt;br /&gt;
* refactor cloud/github to abstract away github/gitlab/etc&lt;br /&gt;
* allow more than most recent pushed repository to be shown&lt;br /&gt;
* add boxrs-based git repositories to Cloud Log panel&lt;br /&gt;
&lt;br /&gt;
==== Other Cloud Services ====&lt;br /&gt;
* Mediawiki &amp;amp;mdash; pending new account requests&lt;br /&gt;
* Zendesk — count of unread/open inquiries&lt;br /&gt;
* Status updates on donations: Patreon, Paypal, Amazon Smile...&lt;br /&gt;
* write up requirements for [[Bricodash/Future#Instagram_Integration|Instagram Integration]]&lt;br /&gt;
* write up requirements for [[Bricodash/Future#Twitter_Integration|Twitter Integration]]&lt;br /&gt;
&lt;br /&gt;
==== Retire IFFF Wiki Updates ====&lt;br /&gt;
* bot to post daily cloud log update to #general on our slack&lt;br /&gt;
&lt;br /&gt;
=== Calendars ===&lt;br /&gt;
&lt;br /&gt;
Incorporate additional calculated and externally sourced calendar events.&lt;br /&gt;
&lt;br /&gt;
==== Fixes ====&lt;br /&gt;
* almanac alt for almanac events&lt;br /&gt;
* add enum of event sources for sorting priority (when same start time)&lt;br /&gt;
* move HM anniversary dates to special .cal that takes precedence on HM calendar (and also appears on NYC)&lt;br /&gt;
* swap out icalendar (buggy repetition exception handling) in favor of true API&lt;br /&gt;
&lt;br /&gt;
==== Calculation ====&lt;br /&gt;
* new module to calculate hindu lunar tithi =&amp;gt; closing muhurat =&amp;gt; solar day&lt;br /&gt;
* revise diwali/deepawali calculation using tithi rather than lisp library approximations&lt;br /&gt;
* correctly calculate dates of International Astronomy Day (email out to Astronomical League for better calculation rules)&lt;br /&gt;
* calculate dates of Manhattanhenge (email out to library of American Museum of Natural History for formula)&lt;br /&gt;
* add eclipses and other significant astronomical events to holidays&lt;br /&gt;
* finish fleshing out remainder of movable feasts for [[Bricodash#Community_Calendar|Community Calendar]] (June 2019 forward)&lt;br /&gt;
&lt;br /&gt;
==== Integration ====&lt;br /&gt;
* use google search to find Offside Tavern Meetup events&lt;br /&gt;
* add placeholder events for non-Meetup Offside Tavern events&lt;br /&gt;
* refactor brite search by location routine to common library&lt;br /&gt;
* add nyc mesh, nyc resistor, fat cat fab lab, makerbar, makerspace nyc (SI), futureworks (BK/SI) to [[Bricodash#Community_Calendar|Community Calendar]] &lt;br /&gt;
* also add grow with google (if still in NYC), 2600, Off the Hook (if still broadcasting), blick, michaels, local library branches, makerish meetup events&lt;br /&gt;
&lt;br /&gt;
==== Advanced ====&lt;br /&gt;
* revise #thehaps formatting to provide headers per day&lt;br /&gt;
* embed hotlinks in #thehaps channel event listings&lt;br /&gt;
* concise calendar response for interactive slackbot&lt;br /&gt;
* auto-capture of #thehaps posted events to [[Bricodash/Extra:Calendar]]&lt;br /&gt;
* automation/streamlining tools for cross-posting HM Meetup events to Spingo&lt;br /&gt;
* enable toggling between Welcome header and holiday greetings [[Bricodash#Community_Calendar|^]]&lt;br /&gt;
&lt;br /&gt;
=== Cleanup ===&lt;br /&gt;
&lt;br /&gt;
Remaining features and code maintenance before calling it a major release.&lt;br /&gt;
&lt;br /&gt;
* integrate citymapper API for local subway stations&lt;br /&gt;
* refactor source files from initial launch&lt;br /&gt;
* find owners to adopt data sourcing projects that require more than passive API calls (see sections below)&lt;br /&gt;
* squish and push fork to upstream&lt;br /&gt;
&lt;br /&gt;
=== Upgrades ===&lt;br /&gt;
&lt;br /&gt;
Once built, streamline and rewrite as a truly beautiful application.&lt;br /&gt;
&lt;br /&gt;
* migrate from bricolage to less power-hungry hardware&lt;br /&gt;
* combined community slack calendar to wiki page (requires privacy policy under brite license)&lt;br /&gt;
* reimplement bricolage to run as embedded system under elixir/scenic/nerves&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
* import python directly using beamparticle&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot; style=&amp;quot;border-right:solid 1px #a7d7f9;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; padding-left: 20px; padding-bottom: 10px&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sub-Projects Needing Owners ==&lt;br /&gt;
&lt;br /&gt;
The projects below require an investment of time&amp;amp;mdash;such as active coordination with an API's owners&amp;amp;mdash;to be implemented, but would provide meaningful improvements to the overall feature-set of Bricodash if completed. &lt;br /&gt;
&lt;br /&gt;
At some point the description for each will be fleshed out to provide a full functional specification, together with an exploration of the requirements to move forward. For now, capsule bullet points serve as place holders. For more information, touch base with [[User:Beadsland]].&lt;br /&gt;
&lt;br /&gt;
=== Instagram Integration ===&lt;br /&gt;
&lt;br /&gt;
* add Instagram to Weird Photos and HM Cloud Log &amp;amp;mdash; this requires creating pages on Facebook under the new Graph API&lt;br /&gt;
&lt;br /&gt;
=== Twitter Integration ===&lt;br /&gt;
&lt;br /&gt;
* add Twitter to Weird Photos and HM Cloud Log &amp;amp;mdash; this requires emailing to get a dev account, then honoring Twitter's [https://developer.twitter.com/en/developer-terms/display-requirements.html Display Requirements]&lt;br /&gt;
&lt;br /&gt;
=== Slack Calendar Response Bot ===&lt;br /&gt;
&lt;br /&gt;
* interactive bot response to &amp;quot;What's happening?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Draft a Privacy Policy ===&lt;br /&gt;
&lt;br /&gt;
* draft privacy policy (per API reqs for public sites)&lt;br /&gt;
&lt;br /&gt;
=== Buzzer-Activated IR Remote ===&lt;br /&gt;
&lt;br /&gt;
Additionally, there are plans to tie a ceiling-mounted IR remote into the intercom buzzer to toggle inputs on the TV. &lt;br /&gt;
The idea would be that when the buzzer sounds, the remote would switch from the dashboard (on Chromecast) to a dedicated &lt;br /&gt;
full screen camera input.  After a delay the input would be toggled back to the Chromecast-hosted dashboard.  Such an&lt;br /&gt;
arrangement would free up the dashboard screen real-estate currently devoted to an around-the-clock camera feed&amp;amp;mdash;as, realistically, the only time one needs a camera feed is when a visitor is buzzing to be let in.&lt;br /&gt;
&lt;br /&gt;
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?&lt;br /&gt;
&lt;br /&gt;
* integrate with custom buzzer-activated IR remote hack&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Beadsland</name></author>
	</entry>
	<entry>
		<id>https://wiki.hackmanhattan.com/index.php?title=Bricodash/Future&amp;diff=7378</id>
		<title>Bricodash/Future</title>
		<link rel="alternate" type="text/html" href="https://wiki.hackmanhattan.com/index.php?title=Bricodash/Future&amp;diff=7378"/>
		<updated>2019-10-24T08:06:30Z</updated>

		<summary type="html">&lt;p&gt;Beadsland: /* Performance and Maintenance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
''See:'' &amp;lt;span style=&amp;quot;white-space: nowrap&amp;quot;&amp;gt;[[File:Bricodash_screenshot.png|35px]] [[Bricodash]] &amp;lt;/span&amp;gt; for project details&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table width=&amp;quot;100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;48%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current Tasks Outstanding ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
=== Performance and Maintenance ===&lt;br /&gt;
&lt;br /&gt;
==== Fixes ====&lt;br /&gt;
* clear old brite items&lt;br /&gt;
* resolve v3/events/search failure (email sent to Eventbrite API team morning of 21 October)&lt;br /&gt;
* brute force diwali dates for 2019, as our calendar isn't up to the task&lt;br /&gt;
* render bold and italic in slack messages (via asterick and underline notation)&lt;br /&gt;
&lt;br /&gt;
==== Repository ====&lt;br /&gt;
* recreate repository as non-fork&lt;br /&gt;
* readme link to defaultcast&lt;br /&gt;
* research and select a code of conduct&lt;br /&gt;
* flesh out issues linking to project plan&lt;br /&gt;
&lt;br /&gt;
==== Notifications ====&lt;br /&gt;
* don't notify when &amp;quot;unspecified&amp;quot; dashboards stop polling&lt;br /&gt;
* investigate double notification of polling stop state&lt;br /&gt;
* don't notify pishop down during cron reboot cycle&lt;br /&gt;
&lt;br /&gt;
==== Performance ====&lt;br /&gt;
* explore having bricodash spawn in new tab then close old tab -- to force GC of JS code snippets&lt;br /&gt;
&lt;br /&gt;
=== Long Overdue Calendarical Overhaul ===&lt;br /&gt;
&lt;br /&gt;
==== Reverse Engineer FCNA/ECFR Calculations ====&lt;br /&gt;
* relearn trigonometry&lt;br /&gt;
* refactor astronomical month calculations to new repository&lt;br /&gt;
* see if we can solve sunrise (sunset) equation for pair(?) of latitudes on a given meridian (at a given datetime)&lt;br /&gt;
* see if any altitude delta patterns are apparent with coarse (non-continuous) iteration over enlongation-bounded datetime range&lt;br /&gt;
* work out if we can iteratively narrow down latitude pairs to solve for altitude deltas within intersecting sunsets&lt;br /&gt;
* determine how elevation complicates all of this (i.e., intersecting sunset clusters rather than intersecting sunsets)&lt;br /&gt;
* examine if there's a solution for westward obstructions (e.g. mountain ranges) in determining sunsets&lt;br /&gt;
* explore performance gains of reimplementing search traversal via elixir calls to python calculations&lt;br /&gt;
&lt;br /&gt;
==== Islamic Calendar ====&lt;br /&gt;
* refactor islamic calendarical library to new repository&lt;br /&gt;
* incorporate for astronomical calculation as used by some in North America&lt;br /&gt;
* confirm safe astimezone use (not erroneously masking local time as UTC)&lt;br /&gt;
* refactor to combine observational and astronomical date sets&lt;br /&gt;
* add Eid al-Adha to calendar&lt;br /&gt;
&lt;br /&gt;
==== Hindu Calendar ====&lt;br /&gt;
* refactor hindu calendrical library to new repository&lt;br /&gt;
* new module to calculate enumerations of tithi for a given month&lt;br /&gt;
* new module to calculate enumerations of months for a given year (rather than lisp ordinal month)&lt;br /&gt;
* reimplement lisp functions for hindu calendar in python3&lt;br /&gt;
&lt;br /&gt;
==== Calendrical ====&lt;br /&gt;
* spin off jewish calendarical library as dedicated project&lt;br /&gt;
* spin off master project for drawing together specific calendars&lt;br /&gt;
&lt;br /&gt;
=== BindSight :2020 ===&lt;br /&gt;
&lt;br /&gt;
''See also:'' [[BindSight]] project page&lt;br /&gt;
&lt;br /&gt;
{{:BindSight}}&lt;br /&gt;
&lt;br /&gt;
=== Webhook Notifications ===&lt;br /&gt;
&lt;br /&gt;
Javascript client-side triggers to deliver messages to our Slack channels to provide alerts when the camera feed or client devices stall.&lt;br /&gt;
&lt;br /&gt;
* migrate sleep macro to general purpose library&lt;br /&gt;
* migrate from webhooks integration to webhooks feature of bricodash app (and update notice)&lt;br /&gt;
* server-side webhook on stall of any given device&lt;br /&gt;
* when wonkiness addressed: downthrottle chromecast reboots to 1x per day; stream swap-in to never&lt;br /&gt;
&lt;br /&gt;
=== Server ===&lt;br /&gt;
&lt;br /&gt;
Standardize Web server setup and fully integrate BindSight.&lt;br /&gt;
&lt;br /&gt;
* migrate to standard web port (now that relayd installed on router)&lt;br /&gt;
* configure X-Forwarded-For logging in apache&lt;br /&gt;
* enable SSL for camera feeds (requested for full conversion to new sous veil system)&lt;br /&gt;
* enable SSL directly via daemon's listening port (i.e., elixir rather than apache)&lt;br /&gt;
* transfer slackbot snapshots to bricolage gateway&lt;br /&gt;
&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
&lt;br /&gt;
Flesh out project documentation&amp;amp;mdash;after fixing existing problems with our Mediawiki server.&lt;br /&gt;
&lt;br /&gt;
* recent edits monitor to trigger cache purge on transcluded Bricodash documentation updates&lt;br /&gt;
* help get mediawiki server 504 issues resolved (currently an obstacle to '''Bricodash''' documentation)&lt;br /&gt;
* broach discussion of absent Copyrights page on Wiki -- do we want to adopt a license??&lt;br /&gt;
* redraft lists in [[Bricodash#Event_Calendars|calendar sections]] as tables&lt;br /&gt;
* flesh out [[:Bricodash/Future|Bricodash Future Ideas]], explaining known requirements for each&lt;br /&gt;
&lt;br /&gt;
=== Cloud Log ===&lt;br /&gt;
&lt;br /&gt;
Incorporate remaining sources into rolling update log shown in lower left-hand corner.&lt;br /&gt;
&lt;br /&gt;
==== User Repositories ====&lt;br /&gt;
* refactor cloud/github to abstract away github/gitlab/etc&lt;br /&gt;
* allow more than most recent pushed repository to be shown&lt;br /&gt;
* add boxrs-based git repositories to Cloud Log panel&lt;br /&gt;
&lt;br /&gt;
==== Other Cloud Services ====&lt;br /&gt;
* Mediawiki &amp;amp;mdash; pending new account requests&lt;br /&gt;
* Zendesk — count of unread/open inquiries&lt;br /&gt;
* Status updates on donations: Patreon, Paypal, Amazon Smile...&lt;br /&gt;
* write up requirements for [[Bricodash/Future#Instagram_Integration|Instagram Integration]]&lt;br /&gt;
* write up requirements for [[Bricodash/Future#Twitter_Integration|Twitter Integration]]&lt;br /&gt;
&lt;br /&gt;
==== Retire IFFF Wiki Updates ====&lt;br /&gt;
* bot to post daily cloud log update to #general on our slack&lt;br /&gt;
&lt;br /&gt;
=== Calendars ===&lt;br /&gt;
&lt;br /&gt;
Incorporate additional calculated and externally sourced calendar events.&lt;br /&gt;
&lt;br /&gt;
==== Fixes ====&lt;br /&gt;
* almanac alt for almanac events&lt;br /&gt;
* add enum of event sources for sorting priority (when same start time)&lt;br /&gt;
* move HM anniversary dates to special .cal that takes precedence on HM calendar (and also appears on NYC)&lt;br /&gt;
* swap out icalendar (buggy repetition exception handling) in favor of true API&lt;br /&gt;
&lt;br /&gt;
==== Calculation ====&lt;br /&gt;
* new module to calculate hindu lunar tithi =&amp;gt; closing muhurat =&amp;gt; solar day&lt;br /&gt;
* revise diwali/deepawali calculation using tithi rather than lisp library approximations&lt;br /&gt;
* correctly calculate dates of International Astronomy Day (email out to Astronomical League for better calculation rules)&lt;br /&gt;
* calculate dates of Manhattanhenge (email out to library of American Museum of Natural History for formula)&lt;br /&gt;
* add eclipses and other significant astronomical events to holidays&lt;br /&gt;
* finish fleshing out remainder of movable feasts for [[Bricodash#Community_Calendar|Community Calendar]] (June 2019 forward)&lt;br /&gt;
&lt;br /&gt;
==== Integration ====&lt;br /&gt;
* use google search to find Offside Tavern Meetup events&lt;br /&gt;
* add placeholder events for non-Meetup Offside Tavern events&lt;br /&gt;
* refactor brite search by location routine to common library&lt;br /&gt;
* add nyc mesh, nyc resistor, fat cat fab lab, makerbar, makerspace nyc (SI), futureworks (BK/SI) to [[Bricodash#Community_Calendar|Community Calendar]] &lt;br /&gt;
* also add grow with google (if still in NYC), 2600, Off the Hook (if still broadcasting), blick, michaels, local library branches, makerish meetup events&lt;br /&gt;
&lt;br /&gt;
==== Advanced ====&lt;br /&gt;
* revise #thehaps formatting to provide headers per day&lt;br /&gt;
* embed hotlinks in #thehaps channel event listings&lt;br /&gt;
* concise calendar response for interactive slackbot&lt;br /&gt;
* auto-capture of #thehaps posted events to [[Bricodash/Extra:Calendar]]&lt;br /&gt;
* automation/streamlining tools for cross-posting HM Meetup events to Spingo&lt;br /&gt;
* enable toggling between Welcome header and holiday greetings [[Bricodash#Community_Calendar|^]]&lt;br /&gt;
&lt;br /&gt;
=== Cleanup ===&lt;br /&gt;
&lt;br /&gt;
Remaining features and code maintenance before calling it a major release.&lt;br /&gt;
&lt;br /&gt;
* integrate citymapper API for local subway stations&lt;br /&gt;
* refactor source files from initial launch&lt;br /&gt;
* find owners to adopt data sourcing projects that require more than passive API calls (see sections below)&lt;br /&gt;
* squish and push fork to upstream&lt;br /&gt;
&lt;br /&gt;
=== Upgrades ===&lt;br /&gt;
&lt;br /&gt;
Once built, streamline and rewrite as a truly beautiful application.&lt;br /&gt;
&lt;br /&gt;
* migrate from bricolage to less power-hungry hardware&lt;br /&gt;
* combined community slack calendar to wiki page (requires privacy policy under brite license)&lt;br /&gt;
* reimplement bricolage to run as embedded system under elixir/scenic/nerves&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
* import python directly using beamparticle&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot; style=&amp;quot;border-right:solid 1px #a7d7f9;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; padding-left: 20px; padding-bottom: 10px&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sub-Projects Needing Owners ==&lt;br /&gt;
&lt;br /&gt;
The projects below require an investment of time&amp;amp;mdash;such as active coordination with an API's owners&amp;amp;mdash;to be implemented, but would provide meaningful improvements to the overall feature-set of Bricodash if completed. &lt;br /&gt;
&lt;br /&gt;
At some point the description for each will be fleshed out to provide a full functional specification, together with an exploration of the requirements to move forward. For now, capsule bullet points serve as place holders. For more information, touch base with [[User:Beadsland]].&lt;br /&gt;
&lt;br /&gt;
=== Instagram Integration ===&lt;br /&gt;
&lt;br /&gt;
* add Instagram to Weird Photos and HM Cloud Log &amp;amp;mdash; this requires creating pages on Facebook under the new Graph API&lt;br /&gt;
&lt;br /&gt;
=== Twitter Integration ===&lt;br /&gt;
&lt;br /&gt;
* add Twitter to Weird Photos and HM Cloud Log &amp;amp;mdash; this requires emailing to get a dev account, then honoring Twitter's [https://developer.twitter.com/en/developer-terms/display-requirements.html Display Requirements]&lt;br /&gt;
&lt;br /&gt;
=== Slack Calendar Response Bot ===&lt;br /&gt;
&lt;br /&gt;
* interactive bot response to &amp;quot;What's happening?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Draft a Privacy Policy ===&lt;br /&gt;
&lt;br /&gt;
* draft privacy policy (per API reqs for public sites)&lt;br /&gt;
&lt;br /&gt;
=== Buzzer-Activated IR Remote ===&lt;br /&gt;
&lt;br /&gt;
Additionally, there are plans to tie a ceiling-mounted IR remote into the intercom buzzer to toggle inputs on the TV. &lt;br /&gt;
The idea would be that when the buzzer sounds, the remote would switch from the dashboard (on Chromecast) to a dedicated &lt;br /&gt;
full screen camera input.  After a delay the input would be toggled back to the Chromecast-hosted dashboard.  Such an&lt;br /&gt;
arrangement would free up the dashboard screen real-estate currently devoted to an around-the-clock camera feed&amp;amp;mdash;as, realistically, the only time one needs a camera feed is when a visitor is buzzing to be let in.&lt;br /&gt;
&lt;br /&gt;
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?&lt;br /&gt;
&lt;br /&gt;
* integrate with custom buzzer-activated IR remote hack&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Beadsland</name></author>
	</entry>
	<entry>
		<id>https://wiki.hackmanhattan.com/index.php?title=Bricodash/Future&amp;diff=7377</id>
		<title>Bricodash/Future</title>
		<link rel="alternate" type="text/html" href="https://wiki.hackmanhattan.com/index.php?title=Bricodash/Future&amp;diff=7377"/>
		<updated>2019-10-24T08:02:49Z</updated>

		<summary type="html">&lt;p&gt;Beadsland: /* Long Overdue Calendarical Overhaul */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
''See:'' &amp;lt;span style=&amp;quot;white-space: nowrap&amp;quot;&amp;gt;[[File:Bricodash_screenshot.png|35px]] [[Bricodash]] &amp;lt;/span&amp;gt; for project details&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table width=&amp;quot;100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;48%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current Tasks Outstanding ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
=== Performance and Maintenance ===&lt;br /&gt;
&lt;br /&gt;
==== Fixes ====&lt;br /&gt;
* resolve v3/events/search failure (email sent to Eventbrite API team morning of 21 October)&lt;br /&gt;
* brute force diwali dates for 2019, as our calendar isn't up to the task&lt;br /&gt;
* render bold and italic in slack messages (via asterick and underline notation)&lt;br /&gt;
&lt;br /&gt;
==== Notifications ====&lt;br /&gt;
* don't notify when &amp;quot;unspecified&amp;quot; dashboards stop polling&lt;br /&gt;
* investigate double notification of polling stop state&lt;br /&gt;
* don't notify pishop down during cron reboot cycle&lt;br /&gt;
&lt;br /&gt;
==== Performance ====&lt;br /&gt;
* explore having bricodash spawn in new tab then close old tab -- to force GC of JS code snippets&lt;br /&gt;
&lt;br /&gt;
=== Long Overdue Calendarical Overhaul ===&lt;br /&gt;
&lt;br /&gt;
==== Reverse Engineer FCNA/ECFR Calculations ====&lt;br /&gt;
* relearn trigonometry&lt;br /&gt;
* refactor astronomical month calculations to new repository&lt;br /&gt;
* see if we can solve sunrise (sunset) equation for pair(?) of latitudes on a given meridian (at a given datetime)&lt;br /&gt;
* see if any altitude delta patterns are apparent with coarse (non-continuous) iteration over enlongation-bounded datetime range&lt;br /&gt;
* work out if we can iteratively narrow down latitude pairs to solve for altitude deltas within intersecting sunsets&lt;br /&gt;
* determine how elevation complicates all of this (i.e., intersecting sunset clusters rather than intersecting sunsets)&lt;br /&gt;
* examine if there's a solution for westward obstructions (e.g. mountain ranges) in determining sunsets&lt;br /&gt;
* explore performance gains of reimplementing search traversal via elixir calls to python calculations&lt;br /&gt;
&lt;br /&gt;
==== Islamic Calendar ====&lt;br /&gt;
* refactor islamic calendarical library to new repository&lt;br /&gt;
* incorporate for astronomical calculation as used by some in North America&lt;br /&gt;
* confirm safe astimezone use (not erroneously masking local time as UTC)&lt;br /&gt;
* refactor to combine observational and astronomical date sets&lt;br /&gt;
* add Eid al-Adha to calendar&lt;br /&gt;
&lt;br /&gt;
==== Hindu Calendar ====&lt;br /&gt;
* refactor hindu calendrical library to new repository&lt;br /&gt;
* new module to calculate enumerations of tithi for a given month&lt;br /&gt;
* new module to calculate enumerations of months for a given year (rather than lisp ordinal month)&lt;br /&gt;
* reimplement lisp functions for hindu calendar in python3&lt;br /&gt;
&lt;br /&gt;
==== Calendrical ====&lt;br /&gt;
* spin off jewish calendarical library as dedicated project&lt;br /&gt;
* spin off master project for drawing together specific calendars&lt;br /&gt;
&lt;br /&gt;
=== BindSight :2020 ===&lt;br /&gt;
&lt;br /&gt;
''See also:'' [[BindSight]] project page&lt;br /&gt;
&lt;br /&gt;
{{:BindSight}}&lt;br /&gt;
&lt;br /&gt;
=== Webhook Notifications ===&lt;br /&gt;
&lt;br /&gt;
Javascript client-side triggers to deliver messages to our Slack channels to provide alerts when the camera feed or client devices stall.&lt;br /&gt;
&lt;br /&gt;
* migrate sleep macro to general purpose library&lt;br /&gt;
* migrate from webhooks integration to webhooks feature of bricodash app (and update notice)&lt;br /&gt;
* server-side webhook on stall of any given device&lt;br /&gt;
* when wonkiness addressed: downthrottle chromecast reboots to 1x per day; stream swap-in to never&lt;br /&gt;
&lt;br /&gt;
=== Server ===&lt;br /&gt;
&lt;br /&gt;
Standardize Web server setup and fully integrate BindSight.&lt;br /&gt;
&lt;br /&gt;
* migrate to standard web port (now that relayd installed on router)&lt;br /&gt;
* configure X-Forwarded-For logging in apache&lt;br /&gt;
* enable SSL for camera feeds (requested for full conversion to new sous veil system)&lt;br /&gt;
* enable SSL directly via daemon's listening port (i.e., elixir rather than apache)&lt;br /&gt;
* transfer slackbot snapshots to bricolage gateway&lt;br /&gt;
&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
&lt;br /&gt;
Flesh out project documentation&amp;amp;mdash;after fixing existing problems with our Mediawiki server.&lt;br /&gt;
&lt;br /&gt;
* recent edits monitor to trigger cache purge on transcluded Bricodash documentation updates&lt;br /&gt;
* help get mediawiki server 504 issues resolved (currently an obstacle to '''Bricodash''' documentation)&lt;br /&gt;
* broach discussion of absent Copyrights page on Wiki -- do we want to adopt a license??&lt;br /&gt;
* redraft lists in [[Bricodash#Event_Calendars|calendar sections]] as tables&lt;br /&gt;
* flesh out [[:Bricodash/Future|Bricodash Future Ideas]], explaining known requirements for each&lt;br /&gt;
&lt;br /&gt;
=== Cloud Log ===&lt;br /&gt;
&lt;br /&gt;
Incorporate remaining sources into rolling update log shown in lower left-hand corner.&lt;br /&gt;
&lt;br /&gt;
==== User Repositories ====&lt;br /&gt;
* refactor cloud/github to abstract away github/gitlab/etc&lt;br /&gt;
* allow more than most recent pushed repository to be shown&lt;br /&gt;
* add boxrs-based git repositories to Cloud Log panel&lt;br /&gt;
&lt;br /&gt;
==== Other Cloud Services ====&lt;br /&gt;
* Mediawiki &amp;amp;mdash; pending new account requests&lt;br /&gt;
* Zendesk — count of unread/open inquiries&lt;br /&gt;
* Status updates on donations: Patreon, Paypal, Amazon Smile...&lt;br /&gt;
* write up requirements for [[Bricodash/Future#Instagram_Integration|Instagram Integration]]&lt;br /&gt;
* write up requirements for [[Bricodash/Future#Twitter_Integration|Twitter Integration]]&lt;br /&gt;
&lt;br /&gt;
==== Retire IFFF Wiki Updates ====&lt;br /&gt;
* bot to post daily cloud log update to #general on our slack&lt;br /&gt;
&lt;br /&gt;
=== Calendars ===&lt;br /&gt;
&lt;br /&gt;
Incorporate additional calculated and externally sourced calendar events.&lt;br /&gt;
&lt;br /&gt;
==== Fixes ====&lt;br /&gt;
* almanac alt for almanac events&lt;br /&gt;
* add enum of event sources for sorting priority (when same start time)&lt;br /&gt;
* move HM anniversary dates to special .cal that takes precedence on HM calendar (and also appears on NYC)&lt;br /&gt;
* swap out icalendar (buggy repetition exception handling) in favor of true API&lt;br /&gt;
&lt;br /&gt;
==== Calculation ====&lt;br /&gt;
* new module to calculate hindu lunar tithi =&amp;gt; closing muhurat =&amp;gt; solar day&lt;br /&gt;
* revise diwali/deepawali calculation using tithi rather than lisp library approximations&lt;br /&gt;
* correctly calculate dates of International Astronomy Day (email out to Astronomical League for better calculation rules)&lt;br /&gt;
* calculate dates of Manhattanhenge (email out to library of American Museum of Natural History for formula)&lt;br /&gt;
* add eclipses and other significant astronomical events to holidays&lt;br /&gt;
* finish fleshing out remainder of movable feasts for [[Bricodash#Community_Calendar|Community Calendar]] (June 2019 forward)&lt;br /&gt;
&lt;br /&gt;
==== Integration ====&lt;br /&gt;
* use google search to find Offside Tavern Meetup events&lt;br /&gt;
* add placeholder events for non-Meetup Offside Tavern events&lt;br /&gt;
* refactor brite search by location routine to common library&lt;br /&gt;
* add nyc mesh, nyc resistor, fat cat fab lab, makerbar, makerspace nyc (SI), futureworks (BK/SI) to [[Bricodash#Community_Calendar|Community Calendar]] &lt;br /&gt;
* also add grow with google (if still in NYC), 2600, Off the Hook (if still broadcasting), blick, michaels, local library branches, makerish meetup events&lt;br /&gt;
&lt;br /&gt;
==== Advanced ====&lt;br /&gt;
* revise #thehaps formatting to provide headers per day&lt;br /&gt;
* embed hotlinks in #thehaps channel event listings&lt;br /&gt;
* concise calendar response for interactive slackbot&lt;br /&gt;
* auto-capture of #thehaps posted events to [[Bricodash/Extra:Calendar]]&lt;br /&gt;
* automation/streamlining tools for cross-posting HM Meetup events to Spingo&lt;br /&gt;
* enable toggling between Welcome header and holiday greetings [[Bricodash#Community_Calendar|^]]&lt;br /&gt;
&lt;br /&gt;
=== Cleanup ===&lt;br /&gt;
&lt;br /&gt;
Remaining features and code maintenance before calling it a major release.&lt;br /&gt;
&lt;br /&gt;
* integrate citymapper API for local subway stations&lt;br /&gt;
* refactor source files from initial launch&lt;br /&gt;
* find owners to adopt data sourcing projects that require more than passive API calls (see sections below)&lt;br /&gt;
* squish and push fork to upstream&lt;br /&gt;
&lt;br /&gt;
=== Upgrades ===&lt;br /&gt;
&lt;br /&gt;
Once built, streamline and rewrite as a truly beautiful application.&lt;br /&gt;
&lt;br /&gt;
* migrate from bricolage to less power-hungry hardware&lt;br /&gt;
* combined community slack calendar to wiki page (requires privacy policy under brite license)&lt;br /&gt;
* reimplement bricolage to run as embedded system under elixir/scenic/nerves&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
* import python directly using beamparticle&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot; style=&amp;quot;border-right:solid 1px #a7d7f9;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; padding-left: 20px; padding-bottom: 10px&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sub-Projects Needing Owners ==&lt;br /&gt;
&lt;br /&gt;
The projects below require an investment of time&amp;amp;mdash;such as active coordination with an API's owners&amp;amp;mdash;to be implemented, but would provide meaningful improvements to the overall feature-set of Bricodash if completed. &lt;br /&gt;
&lt;br /&gt;
At some point the description for each will be fleshed out to provide a full functional specification, together with an exploration of the requirements to move forward. For now, capsule bullet points serve as place holders. For more information, touch base with [[User:Beadsland]].&lt;br /&gt;
&lt;br /&gt;
=== Instagram Integration ===&lt;br /&gt;
&lt;br /&gt;
* add Instagram to Weird Photos and HM Cloud Log &amp;amp;mdash; this requires creating pages on Facebook under the new Graph API&lt;br /&gt;
&lt;br /&gt;
=== Twitter Integration ===&lt;br /&gt;
&lt;br /&gt;
* add Twitter to Weird Photos and HM Cloud Log &amp;amp;mdash; this requires emailing to get a dev account, then honoring Twitter's [https://developer.twitter.com/en/developer-terms/display-requirements.html Display Requirements]&lt;br /&gt;
&lt;br /&gt;
=== Slack Calendar Response Bot ===&lt;br /&gt;
&lt;br /&gt;
* interactive bot response to &amp;quot;What's happening?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Draft a Privacy Policy ===&lt;br /&gt;
&lt;br /&gt;
* draft privacy policy (per API reqs for public sites)&lt;br /&gt;
&lt;br /&gt;
=== Buzzer-Activated IR Remote ===&lt;br /&gt;
&lt;br /&gt;
Additionally, there are plans to tie a ceiling-mounted IR remote into the intercom buzzer to toggle inputs on the TV. &lt;br /&gt;
The idea would be that when the buzzer sounds, the remote would switch from the dashboard (on Chromecast) to a dedicated &lt;br /&gt;
full screen camera input.  After a delay the input would be toggled back to the Chromecast-hosted dashboard.  Such an&lt;br /&gt;
arrangement would free up the dashboard screen real-estate currently devoted to an around-the-clock camera feed&amp;amp;mdash;as, realistically, the only time one needs a camera feed is when a visitor is buzzing to be let in.&lt;br /&gt;
&lt;br /&gt;
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?&lt;br /&gt;
&lt;br /&gt;
* integrate with custom buzzer-activated IR remote hack&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Beadsland</name></author>
	</entry>
	<entry>
		<id>https://wiki.hackmanhattan.com/index.php?title=Bricodash/Future&amp;diff=7376</id>
		<title>Bricodash/Future</title>
		<link rel="alternate" type="text/html" href="https://wiki.hackmanhattan.com/index.php?title=Bricodash/Future&amp;diff=7376"/>
		<updated>2019-10-22T11:20:35Z</updated>

		<summary type="html">&lt;p&gt;Beadsland: /* Current Tasks Outstanding */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
''See:'' &amp;lt;span style=&amp;quot;white-space: nowrap&amp;quot;&amp;gt;[[File:Bricodash_screenshot.png|35px]] [[Bricodash]] &amp;lt;/span&amp;gt; for project details&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table width=&amp;quot;100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;48%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current Tasks Outstanding ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
=== Performance and Maintenance ===&lt;br /&gt;
&lt;br /&gt;
==== Fixes ====&lt;br /&gt;
* resolve v3/events/search failure (email sent to Eventbrite API team morning of 21 October)&lt;br /&gt;
* brute force diwali dates for 2019, as our calendar isn't up to the task&lt;br /&gt;
* render bold and italic in slack messages (via asterick and underline notation)&lt;br /&gt;
&lt;br /&gt;
==== Notifications ====&lt;br /&gt;
* don't notify when &amp;quot;unspecified&amp;quot; dashboards stop polling&lt;br /&gt;
* investigate double notification of polling stop state&lt;br /&gt;
* don't notify pishop down during cron reboot cycle&lt;br /&gt;
&lt;br /&gt;
==== Performance ====&lt;br /&gt;
* explore having bricodash spawn in new tab then close old tab -- to force GC of JS code snippets&lt;br /&gt;
&lt;br /&gt;
=== Long Overdue Calendarical Overhaul ===&lt;br /&gt;
&lt;br /&gt;
==== Astronmical Calculations ====&lt;br /&gt;
* relearn trigonometry&lt;br /&gt;
* see if we can solve sunrise (sunset) equation for pair(?) of latitudes on a given meridian (at a given datetime)&lt;br /&gt;
* see if any altitude delta patterns are apparent with coarse (non-continuous) iteration over enlongation-bounded datetime range&lt;br /&gt;
* work out if we can iteratively narrow down latitude pairs to solve for altitude deltas within intersecting sunsets&lt;br /&gt;
* determine how elevation complicates all of this (i.e., intersecting sunset clusters rather than intersecting sunsets)&lt;br /&gt;
* examine if there's a solution for westward obstructions (e.g. mountain ranges) in determining sunsets&lt;br /&gt;
* explore performance gains of reimplementing search traversal via elixir calls to python calculations&lt;br /&gt;
&lt;br /&gt;
==== Islamic Calendar ====&lt;br /&gt;
* refactor trigonometry calculations to new submodule&lt;br /&gt;
* incorporate for astronomical calculation as used by some in North America&lt;br /&gt;
* confirm safe astimezone use (not erroneously masking local time as UTC)&lt;br /&gt;
* refactor to combine observational and astronomical date sets&lt;br /&gt;
* add Eid al-Adha to calendar&lt;br /&gt;
* spin off islamic calendarical library as dedicated project&lt;br /&gt;
&lt;br /&gt;
==== Hindu Calendar ====&lt;br /&gt;
* refactor lisp calls to new submodule&lt;br /&gt;
* new module to calculate enumerations of tithi for a given month&lt;br /&gt;
* new module to calculate enumerations of months for a given year (rather than lisp ordinal month)&lt;br /&gt;
* reimplement lisp functions for hindu calendar in python3&lt;br /&gt;
* spin off hindu calendrical library a dedicated project&lt;br /&gt;
&lt;br /&gt;
==== Calendrical ====&lt;br /&gt;
* spin off jewish calendarical library as dedicated project&lt;br /&gt;
* spin off master project for drawing together specific calendars&lt;br /&gt;
&lt;br /&gt;
=== BindSight :2020 ===&lt;br /&gt;
&lt;br /&gt;
''See also:'' [[BindSight]] project page&lt;br /&gt;
&lt;br /&gt;
{{:BindSight}}&lt;br /&gt;
&lt;br /&gt;
=== Webhook Notifications ===&lt;br /&gt;
&lt;br /&gt;
Javascript client-side triggers to deliver messages to our Slack channels to provide alerts when the camera feed or client devices stall.&lt;br /&gt;
&lt;br /&gt;
* migrate sleep macro to general purpose library&lt;br /&gt;
* migrate from webhooks integration to webhooks feature of bricodash app (and update notice)&lt;br /&gt;
* server-side webhook on stall of any given device&lt;br /&gt;
* when wonkiness addressed: downthrottle chromecast reboots to 1x per day; stream swap-in to never&lt;br /&gt;
&lt;br /&gt;
=== Server ===&lt;br /&gt;
&lt;br /&gt;
Standardize Web server setup and fully integrate BindSight.&lt;br /&gt;
&lt;br /&gt;
* migrate to standard web port (now that relayd installed on router)&lt;br /&gt;
* configure X-Forwarded-For logging in apache&lt;br /&gt;
* enable SSL for camera feeds (requested for full conversion to new sous veil system)&lt;br /&gt;
* enable SSL directly via daemon's listening port (i.e., elixir rather than apache)&lt;br /&gt;
* transfer slackbot snapshots to bricolage gateway&lt;br /&gt;
&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
&lt;br /&gt;
Flesh out project documentation&amp;amp;mdash;after fixing existing problems with our Mediawiki server.&lt;br /&gt;
&lt;br /&gt;
* recent edits monitor to trigger cache purge on transcluded Bricodash documentation updates&lt;br /&gt;
* help get mediawiki server 504 issues resolved (currently an obstacle to '''Bricodash''' documentation)&lt;br /&gt;
* broach discussion of absent Copyrights page on Wiki -- do we want to adopt a license??&lt;br /&gt;
* redraft lists in [[Bricodash#Event_Calendars|calendar sections]] as tables&lt;br /&gt;
* flesh out [[:Bricodash/Future|Bricodash Future Ideas]], explaining known requirements for each&lt;br /&gt;
&lt;br /&gt;
=== Cloud Log ===&lt;br /&gt;
&lt;br /&gt;
Incorporate remaining sources into rolling update log shown in lower left-hand corner.&lt;br /&gt;
&lt;br /&gt;
==== User Repositories ====&lt;br /&gt;
* refactor cloud/github to abstract away github/gitlab/etc&lt;br /&gt;
* allow more than most recent pushed repository to be shown&lt;br /&gt;
* add boxrs-based git repositories to Cloud Log panel&lt;br /&gt;
&lt;br /&gt;
==== Other Cloud Services ====&lt;br /&gt;
* Mediawiki &amp;amp;mdash; pending new account requests&lt;br /&gt;
* Zendesk — count of unread/open inquiries&lt;br /&gt;
* Status updates on donations: Patreon, Paypal, Amazon Smile...&lt;br /&gt;
* write up requirements for [[Bricodash/Future#Instagram_Integration|Instagram Integration]]&lt;br /&gt;
* write up requirements for [[Bricodash/Future#Twitter_Integration|Twitter Integration]]&lt;br /&gt;
&lt;br /&gt;
==== Retire IFFF Wiki Updates ====&lt;br /&gt;
* bot to post daily cloud log update to #general on our slack&lt;br /&gt;
&lt;br /&gt;
=== Calendars ===&lt;br /&gt;
&lt;br /&gt;
Incorporate additional calculated and externally sourced calendar events.&lt;br /&gt;
&lt;br /&gt;
==== Fixes ====&lt;br /&gt;
* almanac alt for almanac events&lt;br /&gt;
* add enum of event sources for sorting priority (when same start time)&lt;br /&gt;
* move HM anniversary dates to special .cal that takes precedence on HM calendar (and also appears on NYC)&lt;br /&gt;
* swap out icalendar (buggy repetition exception handling) in favor of true API&lt;br /&gt;
&lt;br /&gt;
==== Calculation ====&lt;br /&gt;
* new module to calculate hindu lunar tithi =&amp;gt; closing muhurat =&amp;gt; solar day&lt;br /&gt;
* revise diwali/deepawali calculation using tithi rather than lisp library approximations&lt;br /&gt;
* correctly calculate dates of International Astronomy Day (email out to Astronomical League for better calculation rules)&lt;br /&gt;
* calculate dates of Manhattanhenge (email out to library of American Museum of Natural History for formula)&lt;br /&gt;
* add eclipses and other significant astronomical events to holidays&lt;br /&gt;
* finish fleshing out remainder of movable feasts for [[Bricodash#Community_Calendar|Community Calendar]] (June 2019 forward)&lt;br /&gt;
&lt;br /&gt;
==== Integration ====&lt;br /&gt;
* use google search to find Offside Tavern Meetup events&lt;br /&gt;
* add placeholder events for non-Meetup Offside Tavern events&lt;br /&gt;
* refactor brite search by location routine to common library&lt;br /&gt;
* add nyc mesh, nyc resistor, fat cat fab lab, makerbar, makerspace nyc (SI), futureworks (BK/SI) to [[Bricodash#Community_Calendar|Community Calendar]] &lt;br /&gt;
* also add grow with google (if still in NYC), 2600, Off the Hook (if still broadcasting), blick, michaels, local library branches, makerish meetup events&lt;br /&gt;
&lt;br /&gt;
==== Advanced ====&lt;br /&gt;
* revise #thehaps formatting to provide headers per day&lt;br /&gt;
* embed hotlinks in #thehaps channel event listings&lt;br /&gt;
* concise calendar response for interactive slackbot&lt;br /&gt;
* auto-capture of #thehaps posted events to [[Bricodash/Extra:Calendar]]&lt;br /&gt;
* automation/streamlining tools for cross-posting HM Meetup events to Spingo&lt;br /&gt;
* enable toggling between Welcome header and holiday greetings [[Bricodash#Community_Calendar|^]]&lt;br /&gt;
&lt;br /&gt;
=== Cleanup ===&lt;br /&gt;
&lt;br /&gt;
Remaining features and code maintenance before calling it a major release.&lt;br /&gt;
&lt;br /&gt;
* integrate citymapper API for local subway stations&lt;br /&gt;
* refactor source files from initial launch&lt;br /&gt;
* find owners to adopt data sourcing projects that require more than passive API calls (see sections below)&lt;br /&gt;
* squish and push fork to upstream&lt;br /&gt;
&lt;br /&gt;
=== Upgrades ===&lt;br /&gt;
&lt;br /&gt;
Once built, streamline and rewrite as a truly beautiful application.&lt;br /&gt;
&lt;br /&gt;
* migrate from bricolage to less power-hungry hardware&lt;br /&gt;
* combined community slack calendar to wiki page (requires privacy policy under brite license)&lt;br /&gt;
* reimplement bricolage to run as embedded system under elixir/scenic/nerves&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
* import python directly using beamparticle&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot; style=&amp;quot;border-right:solid 1px #a7d7f9;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; padding-left: 20px; padding-bottom: 10px&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sub-Projects Needing Owners ==&lt;br /&gt;
&lt;br /&gt;
The projects below require an investment of time&amp;amp;mdash;such as active coordination with an API's owners&amp;amp;mdash;to be implemented, but would provide meaningful improvements to the overall feature-set of Bricodash if completed. &lt;br /&gt;
&lt;br /&gt;
At some point the description for each will be fleshed out to provide a full functional specification, together with an exploration of the requirements to move forward. For now, capsule bullet points serve as place holders. For more information, touch base with [[User:Beadsland]].&lt;br /&gt;
&lt;br /&gt;
=== Instagram Integration ===&lt;br /&gt;
&lt;br /&gt;
* add Instagram to Weird Photos and HM Cloud Log &amp;amp;mdash; this requires creating pages on Facebook under the new Graph API&lt;br /&gt;
&lt;br /&gt;
=== Twitter Integration ===&lt;br /&gt;
&lt;br /&gt;
* add Twitter to Weird Photos and HM Cloud Log &amp;amp;mdash; this requires emailing to get a dev account, then honoring Twitter's [https://developer.twitter.com/en/developer-terms/display-requirements.html Display Requirements]&lt;br /&gt;
&lt;br /&gt;
=== Slack Calendar Response Bot ===&lt;br /&gt;
&lt;br /&gt;
* interactive bot response to &amp;quot;What's happening?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Draft a Privacy Policy ===&lt;br /&gt;
&lt;br /&gt;
* draft privacy policy (per API reqs for public sites)&lt;br /&gt;
&lt;br /&gt;
=== Buzzer-Activated IR Remote ===&lt;br /&gt;
&lt;br /&gt;
Additionally, there are plans to tie a ceiling-mounted IR remote into the intercom buzzer to toggle inputs on the TV. &lt;br /&gt;
The idea would be that when the buzzer sounds, the remote would switch from the dashboard (on Chromecast) to a dedicated &lt;br /&gt;
full screen camera input.  After a delay the input would be toggled back to the Chromecast-hosted dashboard.  Such an&lt;br /&gt;
arrangement would free up the dashboard screen real-estate currently devoted to an around-the-clock camera feed&amp;amp;mdash;as, realistically, the only time one needs a camera feed is when a visitor is buzzing to be let in.&lt;br /&gt;
&lt;br /&gt;
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?&lt;br /&gt;
&lt;br /&gt;
* integrate with custom buzzer-activated IR remote hack&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Beadsland</name></author>
	</entry>
	<entry>
		<id>https://wiki.hackmanhattan.com/index.php?title=User:Beadsland/Nesting&amp;diff=7375</id>
		<title>User:Beadsland/Nesting</title>
		<link rel="alternate" type="text/html" href="https://wiki.hackmanhattan.com/index.php?title=User:Beadsland/Nesting&amp;diff=7375"/>
		<updated>2019-10-21T15:26:55Z</updated>

		<summary type="html">&lt;p&gt;Beadsland: /* Roommmate Tech/Organizing Consult */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Nesting =&lt;br /&gt;
&lt;br /&gt;
''Various DIY/smarthome and other projects about (or related to) the domicile.''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; padding-left: 20px; padding-bottom: 10px&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Outreach ==&lt;br /&gt;
&lt;br /&gt;
There's been some discussion of pursuing more active outreach and membership development for the space, including:&lt;br /&gt;
&lt;br /&gt;
=== Scannable Code for Donations Flyer ===&lt;br /&gt;
&lt;br /&gt;
Want to redo the donations notice at the space to include a QR Code or two to allow folk to quickly make donations from their mobile device if so inclined.&lt;br /&gt;
&lt;br /&gt;
=== Creating a More Comfortable Environment ===&lt;br /&gt;
&lt;br /&gt;
First step we're considering tackling is the kegerator/dishrack area. Ideas on the table:&lt;br /&gt;
&lt;br /&gt;
Installing trays within the kegerator to store bottled beverages. There has been standing water at the bottom of the kegerator at times (whether due to a leak in the water keg or condensation), so trays would make things a bit less unpleasantly damp on retrieval. Related to this, we ought to have some sort of signage that makes clear what is on offer for the sake of visitors at such time as informed members are not present to explain what's what.&lt;br /&gt;
&lt;br /&gt;
We're also examining options for rehanging or replacing the bathroom door to free up space on the bathroom wall now behind the swing of the door. The idea would be to install shelving on that wall for drying racks and dish storage.&lt;br /&gt;
&lt;br /&gt;
=== Tag-Team Community Cross-Pollination ===&lt;br /&gt;
&lt;br /&gt;
Going to conduct a survey to identify progressive-adjacent Meetup groups and other local orgs that we might want to develop ties with. The goal would be to find likeminded subject domain experts who might be interested in sharing knowledge and expertise within the HM community&amp;amp;mdash;fostering such relationships may also serve to bring new members to HM who might otherwise not have found us absent such outreach. Several members have expressed an interest in helping with this initiative.&lt;br /&gt;
&lt;br /&gt;
Relatedly, am wanting to tap the broader (even global) hackerspace/makerspace community to bring in folk to offer talks or presentations on the history of the hacker, maker and DIY movements.&lt;br /&gt;
&lt;br /&gt;
== Maintenance ==&lt;br /&gt;
&lt;br /&gt;
=== Crafts Event Prep ===&lt;br /&gt;
&lt;br /&gt;
Flyers for October and November are due. Craft ideas research: mask making (for October); doll making (to find a use for many dozens of knitted dolly caps). Need to do an audit of our craft supplies and prepare orders to restock.&lt;br /&gt;
&lt;br /&gt;
=== Paperwork Backlog ===&lt;br /&gt;
&lt;br /&gt;
Have been sorely derelict on a heap of household and client bookkeeping and filing, while immersed in other recent making projects. This includes scheduling of long-overdue appointments and restocking our household pantry. Made some significant headway on this, might as well keep ball rolling.&lt;br /&gt;
&lt;br /&gt;
=== Roomba Repair ===&lt;br /&gt;
&lt;br /&gt;
Cliff sensors have been successfully disabled, and original left wheel reinstalled. Still unhappy with side brush performance&amp;amp;mdash;and will return to this eventually&amp;amp;mdash;but presently just glad to have this robot back in service.&lt;br /&gt;
&lt;br /&gt;
=== Darn Socks ===&lt;br /&gt;
&lt;br /&gt;
They're actually quite nice socks, but yeah, they've got holes. Quite a few of them do, darnit.&lt;br /&gt;
&lt;br /&gt;
== Hackerspace ==&lt;br /&gt;
&lt;br /&gt;
=== Astronomical Device ===&lt;br /&gt;
&lt;br /&gt;
One of our members has a telescope rig powered by a Raspberry Pi, but wants to tweak the UI running on the Raspbian desktop. Have promised to help them figure out what needs reconfiguring next time we're both in the space.&lt;br /&gt;
&lt;br /&gt;
=== Office Chair Repair ===&lt;br /&gt;
&lt;br /&gt;
Having already repaired three other office chairs of various designs and defects, another chair presents itself for fixing.  This time, it's an old brown chair that is already an heirloom hack. A some time in the past, the bottom of the seat has been replaced/augmented with a wooden construction that appears to secure the seat cushion to the caster-base column.  Since that time, the bolts holding this wooden bottom to the cushion have come loose on the front corners. A user who naively reached under the front of the chair to lift and move it, can accidentally catch their hand between the cushion and the wooden bottom.&lt;br /&gt;
&lt;br /&gt;
The chair currently has the word &amp;quot;NO&amp;quot; inscribed in blue tape across the top of the cushion seat, to warn users, if not that they might get bitten by the chair, then at least that they ought to exercise caution.&lt;br /&gt;
&lt;br /&gt;
On best examination, it appears the repair will involve removing the wooden bottom from the cushion, and then resecuring or replacing nuts that had previously held the wooden base bolted to the cushion seat.&lt;br /&gt;
&lt;br /&gt;
==== Steelcase Leap Chair ====&lt;br /&gt;
&lt;br /&gt;
The cylinder button began getting depressed unintentionally again. PLA+ failed in about 30 days&amp;amp;mdash;the straddle legs snapped off rather than the washer ring failing due to compression. Dug out the old spacer and replaced with another 70% infill PLA, pending the creation of a molded graphite replacement. Rising is a bit stiff and requires multiple pulls on lever, but does then stay up until released. Will monitor. (as of 10/11/19)&lt;br /&gt;
&lt;br /&gt;
=== Member Storage Audit ===&lt;br /&gt;
&lt;br /&gt;
Planning to go through our member storage shelves, identifying left-overs from former members, and moving less actively used bins to higher shelves, to better facilitate storage needs of new members in the future.&lt;br /&gt;
&lt;br /&gt;
== Roommmate Tech/Organizing Consult ==&lt;br /&gt;
&lt;br /&gt;
* electronic birthday calendaring&lt;br /&gt;
* charitable giving analysis&lt;br /&gt;
* pruning their electronic task list&lt;br /&gt;
* research piano instruction apps for android&lt;br /&gt;
* getting them up and running to learn the ins and outs of using video conferencing tools&lt;br /&gt;
* organizing teaching materials filing system&lt;br /&gt;
* substitute teaching go pack strategy&lt;br /&gt;
* prepping unique favor packs for Halloweens&lt;br /&gt;
* consulting with local social services non-profit on medical escort smart phone app&lt;br /&gt;
&lt;br /&gt;
== DIY ==&lt;br /&gt;
&lt;br /&gt;
=== Dashboard Door Buzzer Integration ===&lt;br /&gt;
&lt;br /&gt;
Wanting to wire a single-board device in to the building intercom system to detect the door buzzer. This will allow us to use the dashboard real-estate for other displays than the door camera, while still switching back to the camera swiftly when someone is buzzing for entry.&lt;br /&gt;
&lt;br /&gt;
=== Household Repairs ===&lt;br /&gt;
&lt;br /&gt;
Various small and large projects have been waiting in the wings, including:&lt;br /&gt;
* Appliances&lt;br /&gt;
** rebuild/redesign Lego water fountain&lt;br /&gt;
** repair of a glitchy flat-screen monitor&lt;br /&gt;
** replacing broken window blinds&lt;br /&gt;
** retouching nylon on dishwasher racks&lt;br /&gt;
* Space&lt;br /&gt;
** repairing vinyl floor in kitchen&lt;br /&gt;
** securing a set of shoe holder mounts&lt;br /&gt;
** refurbishing an old hammer drill&lt;br /&gt;
** ceiling hook over bed&lt;br /&gt;
* Sewing&lt;br /&gt;
** replace wrights on lampshade of a standing lamp&lt;br /&gt;
** darning/patching bedsheets&lt;br /&gt;
** hem favorite scarf&lt;br /&gt;
&lt;br /&gt;
=== Installing Storage ===&lt;br /&gt;
&lt;br /&gt;
Once repairs are out of the way, a number of household storage projects are on the agenda, including: a corner bar for hanging clothes and installing rack shelving in our kitchen&lt;br /&gt;
&lt;br /&gt;
Completed: Bathroom storage tower has been cut to accommodate shut off valves, urethane and fresh paint applied, and installed in its new home.&lt;br /&gt;
&lt;br /&gt;
=== Custom Craft Material Dollies ===&lt;br /&gt;
&lt;br /&gt;
Our community crafts group has accumulated more donations than could every easily fit in our existing carts. We've resorted to lugging surplus around in oversize retail shopping bags. Moreover, the carts we do have aren't for outdoors use. They're fine for moving materials from our apartment to the community room the same building, but if we want (or need) to set up for an event in another building, the casters are not equipped for even well-maintained sidewalks, and we tend to see drawers slide open or and containers slide off shelves and topple to the ground as we trundle along on sloped grades. Finally, we've got some craft materials, namely yarn, fabrics and collage materials, that really need to be in larger containers that display their contents in an inviting way without having to unpack and repack those materials for each session.&lt;br /&gt;
&lt;br /&gt;
Thus, there are three goals. First, to design a pair of dollies with custom, quick-assemble cage frameworks. The idea is that our existing craft carts could be lifted onto the dollies, providing heavy duty casters to get around outdoors, and then hemmed in by bars or slats that would keep drawers and shelf contents secure pending arrival at a destination. Providing for cover against rain or other weather would be a bonus. Second, to design a similar dolly for stacking larger containers than we currently aren't using, but would serve for bulk craft materials. Third, to design containers for bulk craft materials that quickly deploy as inviting displays of those same materials on site.&lt;br /&gt;
&lt;br /&gt;
== Technology ==&lt;br /&gt;
&lt;br /&gt;
=== Data Processing Tower ===&lt;br /&gt;
&lt;br /&gt;
The Tellurium project is proving very CPU-intensive. Generating a batch of 99 one-of-a-kind bespoke handbills easily takes six hours for my current computer to generate, plus another hour of post-processing, and then two hours of printer time. Further, the new toolchain (once gdp spelunking resolves current segfaults) will rely heavily on NLP processing, where parsing for word counts is already proving computation intensive.&lt;br /&gt;
&lt;br /&gt;
Going to explore building out a custom box to handle chugging through these processes. In addition to building the toolchain to leverage multi-threading and multi-process techniques, as appropriate, am also considering the possibility of pushing some computations to GPU. The actual assembly of each word cloud (placing objects on a two-dimensional field) seems especially suited to GPU-based computation. This, of course, would require learning something about GPU-based solutions and figuring out what libraries exist or could be rewritten for GPU before specing out the new machine build.&lt;br /&gt;
&lt;br /&gt;
=== Network Management ===&lt;br /&gt;
&lt;br /&gt;
The various electronic components on the table-level of my IKEA-built standing desk have become an unmanageable tangle. The plan is to build a pair of LackRack component mounts under the standing desk and transfer various Ethernet and power connected devices thereto. As part of this process, will build out a heat ducting system to channel air from below the desk to the intake vent of the convector a few feet away — taking advantage of the chiller cooled pipes that feed the convector in the summer.&lt;br /&gt;
&lt;br /&gt;
Also want to run Ethernet to the back of our apartment, rather than rely on spotty performance of EoP extender currently in use. This will support the development of audio notification relays planned throughout the apartment for telephony and other applications listed below. Also, gonna set up a Pi as a wifi router for our wifi-only printer, as it has become a nuisance rebooting the main router every time the printer loses connectivity with the network.&lt;br /&gt;
&lt;br /&gt;
=== Sleep-Hygenic Lighting ===&lt;br /&gt;
&lt;br /&gt;
Intending to replace current lighting fixtures with programmable smart bulbs and a custom driver that will adjust the level of blue light throughout the day, in accordance with my 2nd/graveyard-shift work cycle. This includes the appliance bulb in the refrigerator, so that one isn't treated to a blast of bright white light when scrounging a &amp;quot;midnight&amp;quot; snack. Also part of this project will be running motion-detector activated red LEDs along the hallways, to allow my roommate to get around early morning without disturbing my sleep by flipping on room lighting.&lt;br /&gt;
&lt;br /&gt;
The first step will be to set up a dedicated console-cable managed wifi router and management hub that will allow for control of smart bulbs without exposing those devices to the Internet.&lt;br /&gt;
&lt;br /&gt;
== Audio Computing ==&lt;br /&gt;
&lt;br /&gt;
===Telephony===&lt;br /&gt;
* integrated caller ID announcer&lt;br /&gt;
* mode-switchable caller ID blacklist/whitelist&lt;br /&gt;
&lt;br /&gt;
===Appliances===&lt;br /&gt;
* whistle-activated battery-powered nebulizer&lt;br /&gt;
* whistle/tone detector/alterter network for hearing impaired&lt;br /&gt;
* rice cooker setup detector&lt;br /&gt;
* no-brainer portable stereo media player&lt;br /&gt;
&lt;br /&gt;
===Advanced===&lt;br /&gt;
* multi-output audio stream relay&lt;br /&gt;
* nighttime noise machine lashup&lt;br /&gt;
* research hearing loop tech&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous ==&lt;br /&gt;
* mezzanine rack for a compact dishwasher&lt;br /&gt;
* DIY kitchen counter LED hydroponics enclosure&lt;br /&gt;
* intensive file cabinet purge&lt;br /&gt;
* paint apartment&lt;br /&gt;
* empty storage unit&lt;br /&gt;
* guinea pig hutch with integrated hydroponic garden&lt;br /&gt;
* learn to bake&lt;br /&gt;
* learn to ride a bike&lt;br /&gt;
* learn ASL&lt;/div&gt;</summary>
		<author><name>Beadsland</name></author>
	</entry>
	<entry>
		<id>https://wiki.hackmanhattan.com/index.php?title=Bricodash/Future&amp;diff=7374</id>
		<title>Bricodash/Future</title>
		<link rel="alternate" type="text/html" href="https://wiki.hackmanhattan.com/index.php?title=Bricodash/Future&amp;diff=7374"/>
		<updated>2019-10-19T12:30:07Z</updated>

		<summary type="html">&lt;p&gt;Beadsland: /* Astronmical Calculations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
''See:'' &amp;lt;span style=&amp;quot;white-space: nowrap&amp;quot;&amp;gt;[[File:Bricodash_screenshot.png|35px]] [[Bricodash]] &amp;lt;/span&amp;gt; for project details&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table width=&amp;quot;100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;48%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current Tasks Outstanding ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Long Overdue Calendarical Overhaul ===&lt;br /&gt;
&lt;br /&gt;
==== Astronmical Calculations ====&lt;br /&gt;
* relearn trigonometry&lt;br /&gt;
* see if we can solve sunrise (sunset) equation for pair(?) of latitudes on a given meridian (at a given datetime)&lt;br /&gt;
* see if any altitude delta patterns are apparent with coarse (non-continuous) iteration over enlongation-bounded datetime range&lt;br /&gt;
* work out if we can iteratively narrow down latitude pairs to solve for altitude deltas within intersecting sunsets&lt;br /&gt;
* determine how elevation complicates all of this (i.e., intersecting sunset clusters rather than intersecting sunsets)&lt;br /&gt;
* examine if there's a solution for westward obstructions (e.g. mountain ranges) in determining sunsets&lt;br /&gt;
* explore performance gains of reimplementing search traversal via elixir calls to python calculations&lt;br /&gt;
&lt;br /&gt;
==== Islamic Calendar ====&lt;br /&gt;
* refactor trigonometry calculations to new submodule&lt;br /&gt;
* incorporate for astronomical calculation as used by some in North America&lt;br /&gt;
* confirm safe astimezone use (not erroneously masking local time as UTC)&lt;br /&gt;
* refactor to combine observational and astronomical date sets&lt;br /&gt;
* add Eid al-Adha to calendar&lt;br /&gt;
* spin off islamic calendarical library as dedicated project&lt;br /&gt;
&lt;br /&gt;
==== Hindu Calendar ====&lt;br /&gt;
* refactor lisp calls to new submodule&lt;br /&gt;
* new module to calculate enumerations of tithi for a given month&lt;br /&gt;
* new module to calculate enumerations of months for a given year (rather than lisp ordinal month)&lt;br /&gt;
* reimplement lisp functions for hindu calendar in python3&lt;br /&gt;
* spin off hindu calendrical library a dedicated project&lt;br /&gt;
&lt;br /&gt;
==== Calendrical ====&lt;br /&gt;
* spin off jewish calendarical library as dedicated project&lt;br /&gt;
* spin off master project for drawing together specific calendars&lt;br /&gt;
&lt;br /&gt;
=== BindSight :2020 ===&lt;br /&gt;
&lt;br /&gt;
''See also:'' [[BindSight]] project page&lt;br /&gt;
&lt;br /&gt;
{{:BindSight}}&lt;br /&gt;
&lt;br /&gt;
=== Webhook Notifications ===&lt;br /&gt;
&lt;br /&gt;
Javascript client-side triggers to deliver messages to our Slack channels to provide alerts when the camera feed or client devices stall.&lt;br /&gt;
&lt;br /&gt;
* migrate sleep macro to general purpose library&lt;br /&gt;
* migrate from webhooks integration to webhooks feature of bricodash app (and update notice)&lt;br /&gt;
* server-side webhook on stall of any given device&lt;br /&gt;
* when wonkiness addressed: downthrottle chromecast reboots to 1x per day; stream swap-in to never&lt;br /&gt;
&lt;br /&gt;
=== Server ===&lt;br /&gt;
&lt;br /&gt;
Standardize Web server setup and fully integrate BindSight.&lt;br /&gt;
&lt;br /&gt;
* migrate to standard web port (now that relayd installed on router)&lt;br /&gt;
* configure X-Forwarded-For logging in apache&lt;br /&gt;
* enable SSL for camera feeds (requested for full conversion to new sous veil system)&lt;br /&gt;
* enable SSL directly via daemon's listening port (i.e., elixir rather than apache)&lt;br /&gt;
* transfer slackbot snapshots to bricolage gateway&lt;br /&gt;
&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
&lt;br /&gt;
Flesh out project documentation&amp;amp;mdash;after fixing existing problems with our Mediawiki server.&lt;br /&gt;
&lt;br /&gt;
* recent edits monitor to trigger cache purge on transcluded Bricodash documentation updates&lt;br /&gt;
* help get mediawiki server 504 issues resolved (currently an obstacle to '''Bricodash''' documentation)&lt;br /&gt;
* broach discussion of absent Copyrights page on Wiki -- do we want to adopt a license??&lt;br /&gt;
* redraft lists in [[Bricodash#Event_Calendars|calendar sections]] as tables&lt;br /&gt;
* flesh out [[:Bricodash/Future|Bricodash Future Ideas]], explaining known requirements for each&lt;br /&gt;
&lt;br /&gt;
=== Cloud Log ===&lt;br /&gt;
&lt;br /&gt;
Incorporate remaining sources into rolling update log shown in lower left-hand corner.&lt;br /&gt;
&lt;br /&gt;
==== User Repositories ====&lt;br /&gt;
* refactor cloud/github to abstract away github/gitlab/etc&lt;br /&gt;
* allow more than most recent pushed repository to be shown&lt;br /&gt;
* add boxrs-based git repositories to Cloud Log panel&lt;br /&gt;
&lt;br /&gt;
==== Other Cloud Services ====&lt;br /&gt;
* Mediawiki &amp;amp;mdash; pending new account requests&lt;br /&gt;
* Zendesk — count of unread/open inquiries&lt;br /&gt;
* Status updates on donations: Patreon, Paypal, Amazon Smile...&lt;br /&gt;
* write up requirements for [[Bricodash/Future#Instagram_Integration|Instagram Integration]]&lt;br /&gt;
* write up requirements for [[Bricodash/Future#Twitter_Integration|Twitter Integration]]&lt;br /&gt;
&lt;br /&gt;
==== Retire IFFF Wiki Updates ====&lt;br /&gt;
* bot to post daily cloud log update to #general on our slack&lt;br /&gt;
&lt;br /&gt;
=== Calendars ===&lt;br /&gt;
&lt;br /&gt;
Incorporate additional calculated and externally sourced calendar events.&lt;br /&gt;
&lt;br /&gt;
==== Fixes ====&lt;br /&gt;
* almanac alt for almanac events&lt;br /&gt;
* add enum of event sources for sorting priority (when same start time)&lt;br /&gt;
* move HM anniversary dates to special .cal that takes precedence on HM calendar (and also appears on NYC)&lt;br /&gt;
* swap out icalendar (buggy repetition exception handling) in favor of true API&lt;br /&gt;
&lt;br /&gt;
==== Calculation ====&lt;br /&gt;
* new module to calculate hindu lunar tithi =&amp;gt; closing muhurat =&amp;gt; solar day&lt;br /&gt;
* revise diwali/deepawali calculation using tithi rather than lisp library approximations&lt;br /&gt;
* correctly calculate dates of International Astronomy Day (email out to Astronomical League for better calculation rules)&lt;br /&gt;
* calculate dates of Manhattanhenge (email out to library of American Museum of Natural History for formula)&lt;br /&gt;
* add eclipses and other significant astronomical events to holidays&lt;br /&gt;
* finish fleshing out remainder of movable feasts for [[Bricodash#Community_Calendar|Community Calendar]] (June 2019 forward)&lt;br /&gt;
&lt;br /&gt;
==== Integration ====&lt;br /&gt;
* use google search to find Offside Tavern Meetup events&lt;br /&gt;
* add placeholder events for non-Meetup Offside Tavern events&lt;br /&gt;
* refactor brite search by location routine to common library&lt;br /&gt;
* add nyc mesh, nyc resistor, fat cat fab lab, makerbar, makerspace nyc (SI), futureworks (BK/SI) to [[Bricodash#Community_Calendar|Community Calendar]] &lt;br /&gt;
* also add grow with google (if still in NYC), 2600, Off the Hook (if still broadcasting), blick, michaels, local library branches, makerish meetup events&lt;br /&gt;
&lt;br /&gt;
==== Advanced ====&lt;br /&gt;
* revise #thehaps formatting to provide headers per day&lt;br /&gt;
* embed hotlinks in #thehaps channel event listings&lt;br /&gt;
* concise calendar response for interactive slackbot&lt;br /&gt;
* auto-capture of #thehaps posted events to [[Bricodash/Extra:Calendar]]&lt;br /&gt;
* automation/streamlining tools for cross-posting HM Meetup events to Spingo&lt;br /&gt;
* enable toggling between Welcome header and holiday greetings [[Bricodash#Community_Calendar|^]]&lt;br /&gt;
&lt;br /&gt;
=== Cleanup ===&lt;br /&gt;
&lt;br /&gt;
Remaining features and code maintenance before calling it a major release.&lt;br /&gt;
&lt;br /&gt;
* integrate citymapper API for local subway stations&lt;br /&gt;
* refactor source files from initial launch&lt;br /&gt;
* find owners to adopt data sourcing projects that require more than passive API calls (see sections below)&lt;br /&gt;
* squish and push fork to upstream&lt;br /&gt;
&lt;br /&gt;
=== Upgrades ===&lt;br /&gt;
&lt;br /&gt;
Once built, streamline and rewrite as a truly beautiful application.&lt;br /&gt;
&lt;br /&gt;
* migrate from bricolage to less power-hungry hardware&lt;br /&gt;
* combined community slack calendar to wiki page (requires privacy policy under brite license)&lt;br /&gt;
* reimplement bricolage to run as embedded system under elixir/scenic/nerves&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
* import python directly using beamparticle&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot; style=&amp;quot;border-right:solid 1px #a7d7f9;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; padding-left: 20px; padding-bottom: 10px&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sub-Projects Needing Owners ==&lt;br /&gt;
&lt;br /&gt;
The projects below require an investment of time&amp;amp;mdash;such as active coordination with an API's owners&amp;amp;mdash;to be implemented, but would provide meaningful improvements to the overall feature-set of Bricodash if completed. &lt;br /&gt;
&lt;br /&gt;
At some point the description for each will be fleshed out to provide a full functional specification, together with an exploration of the requirements to move forward. For now, capsule bullet points serve as place holders. For more information, touch base with [[User:Beadsland]].&lt;br /&gt;
&lt;br /&gt;
=== Instagram Integration ===&lt;br /&gt;
&lt;br /&gt;
* add Instagram to Weird Photos and HM Cloud Log &amp;amp;mdash; this requires creating pages on Facebook under the new Graph API&lt;br /&gt;
&lt;br /&gt;
=== Twitter Integration ===&lt;br /&gt;
&lt;br /&gt;
* add Twitter to Weird Photos and HM Cloud Log &amp;amp;mdash; this requires emailing to get a dev account, then honoring Twitter's [https://developer.twitter.com/en/developer-terms/display-requirements.html Display Requirements]&lt;br /&gt;
&lt;br /&gt;
=== Slack Calendar Response Bot ===&lt;br /&gt;
&lt;br /&gt;
* interactive bot response to &amp;quot;What's happening?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Draft a Privacy Policy ===&lt;br /&gt;
&lt;br /&gt;
* draft privacy policy (per API reqs for public sites)&lt;br /&gt;
&lt;br /&gt;
=== Buzzer-Activated IR Remote ===&lt;br /&gt;
&lt;br /&gt;
Additionally, there are plans to tie a ceiling-mounted IR remote into the intercom buzzer to toggle inputs on the TV. &lt;br /&gt;
The idea would be that when the buzzer sounds, the remote would switch from the dashboard (on Chromecast) to a dedicated &lt;br /&gt;
full screen camera input.  After a delay the input would be toggled back to the Chromecast-hosted dashboard.  Such an&lt;br /&gt;
arrangement would free up the dashboard screen real-estate currently devoted to an around-the-clock camera feed&amp;amp;mdash;as, realistically, the only time one needs a camera feed is when a visitor is buzzing to be let in.&lt;br /&gt;
&lt;br /&gt;
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?&lt;br /&gt;
&lt;br /&gt;
* integrate with custom buzzer-activated IR remote hack&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Beadsland</name></author>
	</entry>
	<entry>
		<id>https://wiki.hackmanhattan.com/index.php?title=Bricodash/Future&amp;diff=7373</id>
		<title>Bricodash/Future</title>
		<link rel="alternate" type="text/html" href="https://wiki.hackmanhattan.com/index.php?title=Bricodash/Future&amp;diff=7373"/>
		<updated>2019-10-19T12:27:14Z</updated>

		<summary type="html">&lt;p&gt;Beadsland: /* Astronmical Calculations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
''See:'' &amp;lt;span style=&amp;quot;white-space: nowrap&amp;quot;&amp;gt;[[File:Bricodash_screenshot.png|35px]] [[Bricodash]] &amp;lt;/span&amp;gt; for project details&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table width=&amp;quot;100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;48%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current Tasks Outstanding ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Long Overdue Calendarical Overhaul ===&lt;br /&gt;
&lt;br /&gt;
==== Astronmical Calculations ====&lt;br /&gt;
* relearn trigonometry&lt;br /&gt;
* see if we can solve sunrise (sunset) equation for pair(?) of latitudes on a given meridian&lt;br /&gt;
* see if any altitude delta patterns are apparent with coarse (non-continuous) iteration over enlongation-bounded datetime range&lt;br /&gt;
* work out if we can iteratively narrow down latitude pairs to solve for altitude deltas within intersecting sunsets&lt;br /&gt;
* determine how elevation complicates all of this (i.e., intersecting sunset clusters rather than intersecting sunsets)&lt;br /&gt;
* examine if there's a solution for westward obstructions (e.g. mountain ranges) in determining sunsets&lt;br /&gt;
* explore performance gains of reimplementing search traversal via elixir calls to python calulcations&lt;br /&gt;
&lt;br /&gt;
==== Islamic Calendar ====&lt;br /&gt;
* refactor trigonometry calculations to new submodule&lt;br /&gt;
* incorporate for astronomical calculation as used by some in North America&lt;br /&gt;
* confirm safe astimezone use (not erroneously masking local time as UTC)&lt;br /&gt;
* refactor to combine observational and astronomical date sets&lt;br /&gt;
* add Eid al-Adha to calendar&lt;br /&gt;
* spin off islamic calendarical library as dedicated project&lt;br /&gt;
&lt;br /&gt;
==== Hindu Calendar ====&lt;br /&gt;
* refactor lisp calls to new submodule&lt;br /&gt;
* new module to calculate enumerations of tithi for a given month&lt;br /&gt;
* new module to calculate enumerations of months for a given year (rather than lisp ordinal month)&lt;br /&gt;
* reimplement lisp functions for hindu calendar in python3&lt;br /&gt;
* spin off hindu calendrical library a dedicated project&lt;br /&gt;
&lt;br /&gt;
==== Calendrical ====&lt;br /&gt;
* spin off jewish calendarical library as dedicated project&lt;br /&gt;
* spin off master project for drawing together specific calendars&lt;br /&gt;
&lt;br /&gt;
=== BindSight :2020 ===&lt;br /&gt;
&lt;br /&gt;
''See also:'' [[BindSight]] project page&lt;br /&gt;
&lt;br /&gt;
{{:BindSight}}&lt;br /&gt;
&lt;br /&gt;
=== Webhook Notifications ===&lt;br /&gt;
&lt;br /&gt;
Javascript client-side triggers to deliver messages to our Slack channels to provide alerts when the camera feed or client devices stall.&lt;br /&gt;
&lt;br /&gt;
* migrate sleep macro to general purpose library&lt;br /&gt;
* migrate from webhooks integration to webhooks feature of bricodash app (and update notice)&lt;br /&gt;
* server-side webhook on stall of any given device&lt;br /&gt;
* when wonkiness addressed: downthrottle chromecast reboots to 1x per day; stream swap-in to never&lt;br /&gt;
&lt;br /&gt;
=== Server ===&lt;br /&gt;
&lt;br /&gt;
Standardize Web server setup and fully integrate BindSight.&lt;br /&gt;
&lt;br /&gt;
* migrate to standard web port (now that relayd installed on router)&lt;br /&gt;
* configure X-Forwarded-For logging in apache&lt;br /&gt;
* enable SSL for camera feeds (requested for full conversion to new sous veil system)&lt;br /&gt;
* enable SSL directly via daemon's listening port (i.e., elixir rather than apache)&lt;br /&gt;
* transfer slackbot snapshots to bricolage gateway&lt;br /&gt;
&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
&lt;br /&gt;
Flesh out project documentation&amp;amp;mdash;after fixing existing problems with our Mediawiki server.&lt;br /&gt;
&lt;br /&gt;
* recent edits monitor to trigger cache purge on transcluded Bricodash documentation updates&lt;br /&gt;
* help get mediawiki server 504 issues resolved (currently an obstacle to '''Bricodash''' documentation)&lt;br /&gt;
* broach discussion of absent Copyrights page on Wiki -- do we want to adopt a license??&lt;br /&gt;
* redraft lists in [[Bricodash#Event_Calendars|calendar sections]] as tables&lt;br /&gt;
* flesh out [[:Bricodash/Future|Bricodash Future Ideas]], explaining known requirements for each&lt;br /&gt;
&lt;br /&gt;
=== Cloud Log ===&lt;br /&gt;
&lt;br /&gt;
Incorporate remaining sources into rolling update log shown in lower left-hand corner.&lt;br /&gt;
&lt;br /&gt;
==== User Repositories ====&lt;br /&gt;
* refactor cloud/github to abstract away github/gitlab/etc&lt;br /&gt;
* allow more than most recent pushed repository to be shown&lt;br /&gt;
* add boxrs-based git repositories to Cloud Log panel&lt;br /&gt;
&lt;br /&gt;
==== Other Cloud Services ====&lt;br /&gt;
* Mediawiki &amp;amp;mdash; pending new account requests&lt;br /&gt;
* Zendesk — count of unread/open inquiries&lt;br /&gt;
* Status updates on donations: Patreon, Paypal, Amazon Smile...&lt;br /&gt;
* write up requirements for [[Bricodash/Future#Instagram_Integration|Instagram Integration]]&lt;br /&gt;
* write up requirements for [[Bricodash/Future#Twitter_Integration|Twitter Integration]]&lt;br /&gt;
&lt;br /&gt;
==== Retire IFFF Wiki Updates ====&lt;br /&gt;
* bot to post daily cloud log update to #general on our slack&lt;br /&gt;
&lt;br /&gt;
=== Calendars ===&lt;br /&gt;
&lt;br /&gt;
Incorporate additional calculated and externally sourced calendar events.&lt;br /&gt;
&lt;br /&gt;
==== Fixes ====&lt;br /&gt;
* almanac alt for almanac events&lt;br /&gt;
* add enum of event sources for sorting priority (when same start time)&lt;br /&gt;
* move HM anniversary dates to special .cal that takes precedence on HM calendar (and also appears on NYC)&lt;br /&gt;
* swap out icalendar (buggy repetition exception handling) in favor of true API&lt;br /&gt;
&lt;br /&gt;
==== Calculation ====&lt;br /&gt;
* new module to calculate hindu lunar tithi =&amp;gt; closing muhurat =&amp;gt; solar day&lt;br /&gt;
* revise diwali/deepawali calculation using tithi rather than lisp library approximations&lt;br /&gt;
* correctly calculate dates of International Astronomy Day (email out to Astronomical League for better calculation rules)&lt;br /&gt;
* calculate dates of Manhattanhenge (email out to library of American Museum of Natural History for formula)&lt;br /&gt;
* add eclipses and other significant astronomical events to holidays&lt;br /&gt;
* finish fleshing out remainder of movable feasts for [[Bricodash#Community_Calendar|Community Calendar]] (June 2019 forward)&lt;br /&gt;
&lt;br /&gt;
==== Integration ====&lt;br /&gt;
* use google search to find Offside Tavern Meetup events&lt;br /&gt;
* add placeholder events for non-Meetup Offside Tavern events&lt;br /&gt;
* refactor brite search by location routine to common library&lt;br /&gt;
* add nyc mesh, nyc resistor, fat cat fab lab, makerbar, makerspace nyc (SI), futureworks (BK/SI) to [[Bricodash#Community_Calendar|Community Calendar]] &lt;br /&gt;
* also add grow with google (if still in NYC), 2600, Off the Hook (if still broadcasting), blick, michaels, local library branches, makerish meetup events&lt;br /&gt;
&lt;br /&gt;
==== Advanced ====&lt;br /&gt;
* revise #thehaps formatting to provide headers per day&lt;br /&gt;
* embed hotlinks in #thehaps channel event listings&lt;br /&gt;
* concise calendar response for interactive slackbot&lt;br /&gt;
* auto-capture of #thehaps posted events to [[Bricodash/Extra:Calendar]]&lt;br /&gt;
* automation/streamlining tools for cross-posting HM Meetup events to Spingo&lt;br /&gt;
* enable toggling between Welcome header and holiday greetings [[Bricodash#Community_Calendar|^]]&lt;br /&gt;
&lt;br /&gt;
=== Cleanup ===&lt;br /&gt;
&lt;br /&gt;
Remaining features and code maintenance before calling it a major release.&lt;br /&gt;
&lt;br /&gt;
* integrate citymapper API for local subway stations&lt;br /&gt;
* refactor source files from initial launch&lt;br /&gt;
* find owners to adopt data sourcing projects that require more than passive API calls (see sections below)&lt;br /&gt;
* squish and push fork to upstream&lt;br /&gt;
&lt;br /&gt;
=== Upgrades ===&lt;br /&gt;
&lt;br /&gt;
Once built, streamline and rewrite as a truly beautiful application.&lt;br /&gt;
&lt;br /&gt;
* migrate from bricolage to less power-hungry hardware&lt;br /&gt;
* combined community slack calendar to wiki page (requires privacy policy under brite license)&lt;br /&gt;
* reimplement bricolage to run as embedded system under elixir/scenic/nerves&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
* import python directly using beamparticle&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot; style=&amp;quot;border-right:solid 1px #a7d7f9;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; padding-left: 20px; padding-bottom: 10px&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sub-Projects Needing Owners ==&lt;br /&gt;
&lt;br /&gt;
The projects below require an investment of time&amp;amp;mdash;such as active coordination with an API's owners&amp;amp;mdash;to be implemented, but would provide meaningful improvements to the overall feature-set of Bricodash if completed. &lt;br /&gt;
&lt;br /&gt;
At some point the description for each will be fleshed out to provide a full functional specification, together with an exploration of the requirements to move forward. For now, capsule bullet points serve as place holders. For more information, touch base with [[User:Beadsland]].&lt;br /&gt;
&lt;br /&gt;
=== Instagram Integration ===&lt;br /&gt;
&lt;br /&gt;
* add Instagram to Weird Photos and HM Cloud Log &amp;amp;mdash; this requires creating pages on Facebook under the new Graph API&lt;br /&gt;
&lt;br /&gt;
=== Twitter Integration ===&lt;br /&gt;
&lt;br /&gt;
* add Twitter to Weird Photos and HM Cloud Log &amp;amp;mdash; this requires emailing to get a dev account, then honoring Twitter's [https://developer.twitter.com/en/developer-terms/display-requirements.html Display Requirements]&lt;br /&gt;
&lt;br /&gt;
=== Slack Calendar Response Bot ===&lt;br /&gt;
&lt;br /&gt;
* interactive bot response to &amp;quot;What's happening?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Draft a Privacy Policy ===&lt;br /&gt;
&lt;br /&gt;
* draft privacy policy (per API reqs for public sites)&lt;br /&gt;
&lt;br /&gt;
=== Buzzer-Activated IR Remote ===&lt;br /&gt;
&lt;br /&gt;
Additionally, there are plans to tie a ceiling-mounted IR remote into the intercom buzzer to toggle inputs on the TV. &lt;br /&gt;
The idea would be that when the buzzer sounds, the remote would switch from the dashboard (on Chromecast) to a dedicated &lt;br /&gt;
full screen camera input.  After a delay the input would be toggled back to the Chromecast-hosted dashboard.  Such an&lt;br /&gt;
arrangement would free up the dashboard screen real-estate currently devoted to an around-the-clock camera feed&amp;amp;mdash;as, realistically, the only time one needs a camera feed is when a visitor is buzzing to be let in.&lt;br /&gt;
&lt;br /&gt;
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?&lt;br /&gt;
&lt;br /&gt;
* integrate with custom buzzer-activated IR remote hack&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Beadsland</name></author>
	</entry>
	<entry>
		<id>https://wiki.hackmanhattan.com/index.php?title=Bricodash/Future&amp;diff=7372</id>
		<title>Bricodash/Future</title>
		<link rel="alternate" type="text/html" href="https://wiki.hackmanhattan.com/index.php?title=Bricodash/Future&amp;diff=7372"/>
		<updated>2019-10-19T11:19:47Z</updated>

		<summary type="html">&lt;p&gt;Beadsland: /* Long Overdue Calendarical Overhaul */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
''See:'' &amp;lt;span style=&amp;quot;white-space: nowrap&amp;quot;&amp;gt;[[File:Bricodash_screenshot.png|35px]] [[Bricodash]] &amp;lt;/span&amp;gt; for project details&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table width=&amp;quot;100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;48%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current Tasks Outstanding ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Long Overdue Calendarical Overhaul ===&lt;br /&gt;
&lt;br /&gt;
==== Astronmical Calculations ====&lt;br /&gt;
* relearn trigonometry&lt;br /&gt;
* see if we can solve sunrise (sunset) equation for pair(?) of latitudes&lt;br /&gt;
* see if any altitude delta patterns are apparent with course iteration over enlongation-bounded datetime range&lt;br /&gt;
* work out if we can iteratively narrow down latitude pairs to solve for &lt;br /&gt;
&lt;br /&gt;
==== Islamic Calendar ====&lt;br /&gt;
* refactor trigonometry calculations to new submodule&lt;br /&gt;
* incorporate for astronomical calculation as used by some in North America&lt;br /&gt;
* confirm safe astimezone use (not erroneously masking local time as UTC)&lt;br /&gt;
* refactor to combine observational and astronomical date sets&lt;br /&gt;
* add Eid al-Adha to calendar&lt;br /&gt;
* spin off islamic calendarical library as dedicated project&lt;br /&gt;
&lt;br /&gt;
==== Hindu Calendar ====&lt;br /&gt;
* refactor lisp calls to new submodule&lt;br /&gt;
* new module to calculate enumerations of tithi for a given month&lt;br /&gt;
* new module to calculate enumerations of months for a given year (rather than lisp ordinal month)&lt;br /&gt;
* reimplement lisp functions for hindu calendar in python3&lt;br /&gt;
* spin off hindu calendrical library a dedicated project&lt;br /&gt;
&lt;br /&gt;
==== Calendrical ====&lt;br /&gt;
* spin off jewish calendarical library as dedicated project&lt;br /&gt;
* spin off master project for drawing together specific calendars&lt;br /&gt;
&lt;br /&gt;
=== BindSight :2020 ===&lt;br /&gt;
&lt;br /&gt;
''See also:'' [[BindSight]] project page&lt;br /&gt;
&lt;br /&gt;
{{:BindSight}}&lt;br /&gt;
&lt;br /&gt;
=== Webhook Notifications ===&lt;br /&gt;
&lt;br /&gt;
Javascript client-side triggers to deliver messages to our Slack channels to provide alerts when the camera feed or client devices stall.&lt;br /&gt;
&lt;br /&gt;
* migrate sleep macro to general purpose library&lt;br /&gt;
* migrate from webhooks integration to webhooks feature of bricodash app (and update notice)&lt;br /&gt;
* server-side webhook on stall of any given device&lt;br /&gt;
* when wonkiness addressed: downthrottle chromecast reboots to 1x per day; stream swap-in to never&lt;br /&gt;
&lt;br /&gt;
=== Server ===&lt;br /&gt;
&lt;br /&gt;
Standardize Web server setup and fully integrate BindSight.&lt;br /&gt;
&lt;br /&gt;
* migrate to standard web port (now that relayd installed on router)&lt;br /&gt;
* configure X-Forwarded-For logging in apache&lt;br /&gt;
* enable SSL for camera feeds (requested for full conversion to new sous veil system)&lt;br /&gt;
* enable SSL directly via daemon's listening port (i.e., elixir rather than apache)&lt;br /&gt;
* transfer slackbot snapshots to bricolage gateway&lt;br /&gt;
&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
&lt;br /&gt;
Flesh out project documentation&amp;amp;mdash;after fixing existing problems with our Mediawiki server.&lt;br /&gt;
&lt;br /&gt;
* recent edits monitor to trigger cache purge on transcluded Bricodash documentation updates&lt;br /&gt;
* help get mediawiki server 504 issues resolved (currently an obstacle to '''Bricodash''' documentation)&lt;br /&gt;
* broach discussion of absent Copyrights page on Wiki -- do we want to adopt a license??&lt;br /&gt;
* redraft lists in [[Bricodash#Event_Calendars|calendar sections]] as tables&lt;br /&gt;
* flesh out [[:Bricodash/Future|Bricodash Future Ideas]], explaining known requirements for each&lt;br /&gt;
&lt;br /&gt;
=== Cloud Log ===&lt;br /&gt;
&lt;br /&gt;
Incorporate remaining sources into rolling update log shown in lower left-hand corner.&lt;br /&gt;
&lt;br /&gt;
==== User Repositories ====&lt;br /&gt;
* refactor cloud/github to abstract away github/gitlab/etc&lt;br /&gt;
* allow more than most recent pushed repository to be shown&lt;br /&gt;
* add boxrs-based git repositories to Cloud Log panel&lt;br /&gt;
&lt;br /&gt;
==== Other Cloud Services ====&lt;br /&gt;
* Mediawiki &amp;amp;mdash; pending new account requests&lt;br /&gt;
* Zendesk — count of unread/open inquiries&lt;br /&gt;
* Status updates on donations: Patreon, Paypal, Amazon Smile...&lt;br /&gt;
* write up requirements for [[Bricodash/Future#Instagram_Integration|Instagram Integration]]&lt;br /&gt;
* write up requirements for [[Bricodash/Future#Twitter_Integration|Twitter Integration]]&lt;br /&gt;
&lt;br /&gt;
==== Retire IFFF Wiki Updates ====&lt;br /&gt;
* bot to post daily cloud log update to #general on our slack&lt;br /&gt;
&lt;br /&gt;
=== Calendars ===&lt;br /&gt;
&lt;br /&gt;
Incorporate additional calculated and externally sourced calendar events.&lt;br /&gt;
&lt;br /&gt;
==== Fixes ====&lt;br /&gt;
* almanac alt for almanac events&lt;br /&gt;
* add enum of event sources for sorting priority (when same start time)&lt;br /&gt;
* move HM anniversary dates to special .cal that takes precedence on HM calendar (and also appears on NYC)&lt;br /&gt;
* swap out icalendar (buggy repetition exception handling) in favor of true API&lt;br /&gt;
&lt;br /&gt;
==== Calculation ====&lt;br /&gt;
* new module to calculate hindu lunar tithi =&amp;gt; closing muhurat =&amp;gt; solar day&lt;br /&gt;
* revise diwali/deepawali calculation using tithi rather than lisp library approximations&lt;br /&gt;
* correctly calculate dates of International Astronomy Day (email out to Astronomical League for better calculation rules)&lt;br /&gt;
* calculate dates of Manhattanhenge (email out to library of American Museum of Natural History for formula)&lt;br /&gt;
* add eclipses and other significant astronomical events to holidays&lt;br /&gt;
* finish fleshing out remainder of movable feasts for [[Bricodash#Community_Calendar|Community Calendar]] (June 2019 forward)&lt;br /&gt;
&lt;br /&gt;
==== Integration ====&lt;br /&gt;
* use google search to find Offside Tavern Meetup events&lt;br /&gt;
* add placeholder events for non-Meetup Offside Tavern events&lt;br /&gt;
* refactor brite search by location routine to common library&lt;br /&gt;
* add nyc mesh, nyc resistor, fat cat fab lab, makerbar, makerspace nyc (SI), futureworks (BK/SI) to [[Bricodash#Community_Calendar|Community Calendar]] &lt;br /&gt;
* also add grow with google (if still in NYC), 2600, Off the Hook (if still broadcasting), blick, michaels, local library branches, makerish meetup events&lt;br /&gt;
&lt;br /&gt;
==== Advanced ====&lt;br /&gt;
* revise #thehaps formatting to provide headers per day&lt;br /&gt;
* embed hotlinks in #thehaps channel event listings&lt;br /&gt;
* concise calendar response for interactive slackbot&lt;br /&gt;
* auto-capture of #thehaps posted events to [[Bricodash/Extra:Calendar]]&lt;br /&gt;
* automation/streamlining tools for cross-posting HM Meetup events to Spingo&lt;br /&gt;
* enable toggling between Welcome header and holiday greetings [[Bricodash#Community_Calendar|^]]&lt;br /&gt;
&lt;br /&gt;
=== Cleanup ===&lt;br /&gt;
&lt;br /&gt;
Remaining features and code maintenance before calling it a major release.&lt;br /&gt;
&lt;br /&gt;
* integrate citymapper API for local subway stations&lt;br /&gt;
* refactor source files from initial launch&lt;br /&gt;
* find owners to adopt data sourcing projects that require more than passive API calls (see sections below)&lt;br /&gt;
* squish and push fork to upstream&lt;br /&gt;
&lt;br /&gt;
=== Upgrades ===&lt;br /&gt;
&lt;br /&gt;
Once built, streamline and rewrite as a truly beautiful application.&lt;br /&gt;
&lt;br /&gt;
* migrate from bricolage to less power-hungry hardware&lt;br /&gt;
* combined community slack calendar to wiki page (requires privacy policy under brite license)&lt;br /&gt;
* reimplement bricolage to run as embedded system under elixir/scenic/nerves&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
* import python directly using beamparticle&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot; style=&amp;quot;border-right:solid 1px #a7d7f9;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; padding-left: 20px; padding-bottom: 10px&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sub-Projects Needing Owners ==&lt;br /&gt;
&lt;br /&gt;
The projects below require an investment of time&amp;amp;mdash;such as active coordination with an API's owners&amp;amp;mdash;to be implemented, but would provide meaningful improvements to the overall feature-set of Bricodash if completed. &lt;br /&gt;
&lt;br /&gt;
At some point the description for each will be fleshed out to provide a full functional specification, together with an exploration of the requirements to move forward. For now, capsule bullet points serve as place holders. For more information, touch base with [[User:Beadsland]].&lt;br /&gt;
&lt;br /&gt;
=== Instagram Integration ===&lt;br /&gt;
&lt;br /&gt;
* add Instagram to Weird Photos and HM Cloud Log &amp;amp;mdash; this requires creating pages on Facebook under the new Graph API&lt;br /&gt;
&lt;br /&gt;
=== Twitter Integration ===&lt;br /&gt;
&lt;br /&gt;
* add Twitter to Weird Photos and HM Cloud Log &amp;amp;mdash; this requires emailing to get a dev account, then honoring Twitter's [https://developer.twitter.com/en/developer-terms/display-requirements.html Display Requirements]&lt;br /&gt;
&lt;br /&gt;
=== Slack Calendar Response Bot ===&lt;br /&gt;
&lt;br /&gt;
* interactive bot response to &amp;quot;What's happening?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Draft a Privacy Policy ===&lt;br /&gt;
&lt;br /&gt;
* draft privacy policy (per API reqs for public sites)&lt;br /&gt;
&lt;br /&gt;
=== Buzzer-Activated IR Remote ===&lt;br /&gt;
&lt;br /&gt;
Additionally, there are plans to tie a ceiling-mounted IR remote into the intercom buzzer to toggle inputs on the TV. &lt;br /&gt;
The idea would be that when the buzzer sounds, the remote would switch from the dashboard (on Chromecast) to a dedicated &lt;br /&gt;
full screen camera input.  After a delay the input would be toggled back to the Chromecast-hosted dashboard.  Such an&lt;br /&gt;
arrangement would free up the dashboard screen real-estate currently devoted to an around-the-clock camera feed&amp;amp;mdash;as, realistically, the only time one needs a camera feed is when a visitor is buzzing to be let in.&lt;br /&gt;
&lt;br /&gt;
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?&lt;br /&gt;
&lt;br /&gt;
* integrate with custom buzzer-activated IR remote hack&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Beadsland</name></author>
	</entry>
	<entry>
		<id>https://wiki.hackmanhattan.com/index.php?title=Bricodash/Future&amp;diff=7371</id>
		<title>Bricodash/Future</title>
		<link rel="alternate" type="text/html" href="https://wiki.hackmanhattan.com/index.php?title=Bricodash/Future&amp;diff=7371"/>
		<updated>2019-10-19T08:52:52Z</updated>

		<summary type="html">&lt;p&gt;Beadsland: /* Islamic Calendar */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
''See:'' &amp;lt;span style=&amp;quot;white-space: nowrap&amp;quot;&amp;gt;[[File:Bricodash_screenshot.png|35px]] [[Bricodash]] &amp;lt;/span&amp;gt; for project details&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table width=&amp;quot;100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;48%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current Tasks Outstanding ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Long Overdue Calendarical Overhaul ===&lt;br /&gt;
&lt;br /&gt;
==== Islamic Calendar ====&lt;br /&gt;
* figure out how to determine if elongation/altitude criteria met somewhere in world at sunset&lt;br /&gt;
* incorporate for astronomical calculation as used by many in U.S.&lt;br /&gt;
* confirm safe astimezone use (not masking local time as UTC)&lt;br /&gt;
* refactor to combine observational and astronomical date sets&lt;br /&gt;
* add Eid al-Adha to calendar&lt;br /&gt;
&lt;br /&gt;
==== Hindu Calendar ====&lt;br /&gt;
* refactor lisp calls to new submodule&lt;br /&gt;
* new module to calculate enumerations of tithi for a given month&lt;br /&gt;
* new module to calculate enumerations of months for a given year (rather than lisp ordinal month)&lt;br /&gt;
* reimplement lisp functions for hindu calendar in python3&lt;br /&gt;
* spin off a dedicated project&lt;br /&gt;
&lt;br /&gt;
==== Calendrical ====&lt;br /&gt;
* spin off islamic calendar as dedicated project&lt;br /&gt;
* spin off jewish calendar as dedicated project&lt;br /&gt;
* spin off master project for drawing together specific calendars&lt;br /&gt;
&lt;br /&gt;
=== BindSight :2020 ===&lt;br /&gt;
&lt;br /&gt;
''See also:'' [[BindSight]] project page&lt;br /&gt;
&lt;br /&gt;
{{:BindSight}}&lt;br /&gt;
&lt;br /&gt;
=== Webhook Notifications ===&lt;br /&gt;
&lt;br /&gt;
Javascript client-side triggers to deliver messages to our Slack channels to provide alerts when the camera feed or client devices stall.&lt;br /&gt;
&lt;br /&gt;
* migrate sleep macro to general purpose library&lt;br /&gt;
* migrate from webhooks integration to webhooks feature of bricodash app (and update notice)&lt;br /&gt;
* server-side webhook on stall of any given device&lt;br /&gt;
* when wonkiness addressed: downthrottle chromecast reboots to 1x per day; stream swap-in to never&lt;br /&gt;
&lt;br /&gt;
=== Server ===&lt;br /&gt;
&lt;br /&gt;
Standardize Web server setup and fully integrate BindSight.&lt;br /&gt;
&lt;br /&gt;
* migrate to standard web port (now that relayd installed on router)&lt;br /&gt;
* configure X-Forwarded-For logging in apache&lt;br /&gt;
* enable SSL for camera feeds (requested for full conversion to new sous veil system)&lt;br /&gt;
* enable SSL directly via daemon's listening port (i.e., elixir rather than apache)&lt;br /&gt;
* transfer slackbot snapshots to bricolage gateway&lt;br /&gt;
&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
&lt;br /&gt;
Flesh out project documentation&amp;amp;mdash;after fixing existing problems with our Mediawiki server.&lt;br /&gt;
&lt;br /&gt;
* recent edits monitor to trigger cache purge on transcluded Bricodash documentation updates&lt;br /&gt;
* help get mediawiki server 504 issues resolved (currently an obstacle to '''Bricodash''' documentation)&lt;br /&gt;
* broach discussion of absent Copyrights page on Wiki -- do we want to adopt a license??&lt;br /&gt;
* redraft lists in [[Bricodash#Event_Calendars|calendar sections]] as tables&lt;br /&gt;
* flesh out [[:Bricodash/Future|Bricodash Future Ideas]], explaining known requirements for each&lt;br /&gt;
&lt;br /&gt;
=== Cloud Log ===&lt;br /&gt;
&lt;br /&gt;
Incorporate remaining sources into rolling update log shown in lower left-hand corner.&lt;br /&gt;
&lt;br /&gt;
==== User Repositories ====&lt;br /&gt;
* refactor cloud/github to abstract away github/gitlab/etc&lt;br /&gt;
* allow more than most recent pushed repository to be shown&lt;br /&gt;
* add boxrs-based git repositories to Cloud Log panel&lt;br /&gt;
&lt;br /&gt;
==== Other Cloud Services ====&lt;br /&gt;
* Mediawiki &amp;amp;mdash; pending new account requests&lt;br /&gt;
* Zendesk — count of unread/open inquiries&lt;br /&gt;
* Status updates on donations: Patreon, Paypal, Amazon Smile...&lt;br /&gt;
* write up requirements for [[Bricodash/Future#Instagram_Integration|Instagram Integration]]&lt;br /&gt;
* write up requirements for [[Bricodash/Future#Twitter_Integration|Twitter Integration]]&lt;br /&gt;
&lt;br /&gt;
==== Retire IFFF Wiki Updates ====&lt;br /&gt;
* bot to post daily cloud log update to #general on our slack&lt;br /&gt;
&lt;br /&gt;
=== Calendars ===&lt;br /&gt;
&lt;br /&gt;
Incorporate additional calculated and externally sourced calendar events.&lt;br /&gt;
&lt;br /&gt;
==== Fixes ====&lt;br /&gt;
* almanac alt for almanac events&lt;br /&gt;
* add enum of event sources for sorting priority (when same start time)&lt;br /&gt;
* move HM anniversary dates to special .cal that takes precedence on HM calendar (and also appears on NYC)&lt;br /&gt;
* swap out icalendar (buggy repetition exception handling) in favor of true API&lt;br /&gt;
&lt;br /&gt;
==== Calculation ====&lt;br /&gt;
* new module to calculate hindu lunar tithi =&amp;gt; closing muhurat =&amp;gt; solar day&lt;br /&gt;
* revise diwali/deepawali calculation using tithi rather than lisp library approximations&lt;br /&gt;
* correctly calculate dates of International Astronomy Day (email out to Astronomical League for better calculation rules)&lt;br /&gt;
* calculate dates of Manhattanhenge (email out to library of American Museum of Natural History for formula)&lt;br /&gt;
* add eclipses and other significant astronomical events to holidays&lt;br /&gt;
* finish fleshing out remainder of movable feasts for [[Bricodash#Community_Calendar|Community Calendar]] (June 2019 forward)&lt;br /&gt;
&lt;br /&gt;
==== Integration ====&lt;br /&gt;
* use google search to find Offside Tavern Meetup events&lt;br /&gt;
* add placeholder events for non-Meetup Offside Tavern events&lt;br /&gt;
* refactor brite search by location routine to common library&lt;br /&gt;
* add nyc mesh, nyc resistor, fat cat fab lab, makerbar, makerspace nyc (SI), futureworks (BK/SI) to [[Bricodash#Community_Calendar|Community Calendar]] &lt;br /&gt;
* also add grow with google (if still in NYC), 2600, Off the Hook (if still broadcasting), blick, michaels, local library branches, makerish meetup events&lt;br /&gt;
&lt;br /&gt;
==== Advanced ====&lt;br /&gt;
* revise #thehaps formatting to provide headers per day&lt;br /&gt;
* embed hotlinks in #thehaps channel event listings&lt;br /&gt;
* concise calendar response for interactive slackbot&lt;br /&gt;
* auto-capture of #thehaps posted events to [[Bricodash/Extra:Calendar]]&lt;br /&gt;
* automation/streamlining tools for cross-posting HM Meetup events to Spingo&lt;br /&gt;
* enable toggling between Welcome header and holiday greetings [[Bricodash#Community_Calendar|^]]&lt;br /&gt;
&lt;br /&gt;
=== Cleanup ===&lt;br /&gt;
&lt;br /&gt;
Remaining features and code maintenance before calling it a major release.&lt;br /&gt;
&lt;br /&gt;
* integrate citymapper API for local subway stations&lt;br /&gt;
* refactor source files from initial launch&lt;br /&gt;
* find owners to adopt data sourcing projects that require more than passive API calls (see sections below)&lt;br /&gt;
* squish and push fork to upstream&lt;br /&gt;
&lt;br /&gt;
=== Upgrades ===&lt;br /&gt;
&lt;br /&gt;
Once built, streamline and rewrite as a truly beautiful application.&lt;br /&gt;
&lt;br /&gt;
* migrate from bricolage to less power-hungry hardware&lt;br /&gt;
* combined community slack calendar to wiki page (requires privacy policy under brite license)&lt;br /&gt;
* reimplement bricolage to run as embedded system under elixir/scenic/nerves&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
* import python directly using beamparticle&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot; style=&amp;quot;border-right:solid 1px #a7d7f9;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; padding-left: 20px; padding-bottom: 10px&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sub-Projects Needing Owners ==&lt;br /&gt;
&lt;br /&gt;
The projects below require an investment of time&amp;amp;mdash;such as active coordination with an API's owners&amp;amp;mdash;to be implemented, but would provide meaningful improvements to the overall feature-set of Bricodash if completed. &lt;br /&gt;
&lt;br /&gt;
At some point the description for each will be fleshed out to provide a full functional specification, together with an exploration of the requirements to move forward. For now, capsule bullet points serve as place holders. For more information, touch base with [[User:Beadsland]].&lt;br /&gt;
&lt;br /&gt;
=== Instagram Integration ===&lt;br /&gt;
&lt;br /&gt;
* add Instagram to Weird Photos and HM Cloud Log &amp;amp;mdash; this requires creating pages on Facebook under the new Graph API&lt;br /&gt;
&lt;br /&gt;
=== Twitter Integration ===&lt;br /&gt;
&lt;br /&gt;
* add Twitter to Weird Photos and HM Cloud Log &amp;amp;mdash; this requires emailing to get a dev account, then honoring Twitter's [https://developer.twitter.com/en/developer-terms/display-requirements.html Display Requirements]&lt;br /&gt;
&lt;br /&gt;
=== Slack Calendar Response Bot ===&lt;br /&gt;
&lt;br /&gt;
* interactive bot response to &amp;quot;What's happening?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Draft a Privacy Policy ===&lt;br /&gt;
&lt;br /&gt;
* draft privacy policy (per API reqs for public sites)&lt;br /&gt;
&lt;br /&gt;
=== Buzzer-Activated IR Remote ===&lt;br /&gt;
&lt;br /&gt;
Additionally, there are plans to tie a ceiling-mounted IR remote into the intercom buzzer to toggle inputs on the TV. &lt;br /&gt;
The idea would be that when the buzzer sounds, the remote would switch from the dashboard (on Chromecast) to a dedicated &lt;br /&gt;
full screen camera input.  After a delay the input would be toggled back to the Chromecast-hosted dashboard.  Such an&lt;br /&gt;
arrangement would free up the dashboard screen real-estate currently devoted to an around-the-clock camera feed&amp;amp;mdash;as, realistically, the only time one needs a camera feed is when a visitor is buzzing to be let in.&lt;br /&gt;
&lt;br /&gt;
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?&lt;br /&gt;
&lt;br /&gt;
* integrate with custom buzzer-activated IR remote hack&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Beadsland</name></author>
	</entry>
	<entry>
		<id>https://wiki.hackmanhattan.com/index.php?title=Bricodash/Future&amp;diff=7370</id>
		<title>Bricodash/Future</title>
		<link rel="alternate" type="text/html" href="https://wiki.hackmanhattan.com/index.php?title=Bricodash/Future&amp;diff=7370"/>
		<updated>2019-10-19T05:05:07Z</updated>

		<summary type="html">&lt;p&gt;Beadsland: /* Maintenance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
''See:'' &amp;lt;span style=&amp;quot;white-space: nowrap&amp;quot;&amp;gt;[[File:Bricodash_screenshot.png|35px]] [[Bricodash]] &amp;lt;/span&amp;gt; for project details&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table width=&amp;quot;100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;48%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current Tasks Outstanding ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Long Overdue Calendarical Overhaul ===&lt;br /&gt;
&lt;br /&gt;
==== Islamic Calendar ====&lt;br /&gt;
* figure out how to determine elongation (min 8 degrees somewhere in world)&lt;br /&gt;
* figure out how to determine moon degrees above sun (min 5 degrees somewhere in world)&lt;br /&gt;
* figure out how to determine if true somewhere in world at sunset&lt;br /&gt;
* incorporate for astronomical calculation as used by many in U.S.&lt;br /&gt;
* add Eid al-Adha to calendar&lt;br /&gt;
&lt;br /&gt;
==== Hindu Calendar ====&lt;br /&gt;
* refactor lisp calls to new submodule&lt;br /&gt;
* new module to calculate enumerations of tithi for a given month&lt;br /&gt;
* new module to calculate enumerations of months for a given year (rather than lisp ordinal month)&lt;br /&gt;
* reimplement lisp functions for hindu calendar in python3&lt;br /&gt;
* spin off a dedicated project&lt;br /&gt;
&lt;br /&gt;
==== Calendrical ====&lt;br /&gt;
* spin off islamic calendar as dedicated project&lt;br /&gt;
* spin off jewish calendar as dedicated project&lt;br /&gt;
* spin off master project for drawing together specific calendars&lt;br /&gt;
&lt;br /&gt;
=== BindSight :2020 ===&lt;br /&gt;
&lt;br /&gt;
''See also:'' [[BindSight]] project page&lt;br /&gt;
&lt;br /&gt;
{{:BindSight}}&lt;br /&gt;
&lt;br /&gt;
=== Webhook Notifications ===&lt;br /&gt;
&lt;br /&gt;
Javascript client-side triggers to deliver messages to our Slack channels to provide alerts when the camera feed or client devices stall.&lt;br /&gt;
&lt;br /&gt;
* migrate sleep macro to general purpose library&lt;br /&gt;
* migrate from webhooks integration to webhooks feature of bricodash app (and update notice)&lt;br /&gt;
* server-side webhook on stall of any given device&lt;br /&gt;
* when wonkiness addressed: downthrottle chromecast reboots to 1x per day; stream swap-in to never&lt;br /&gt;
&lt;br /&gt;
=== Server ===&lt;br /&gt;
&lt;br /&gt;
Standardize Web server setup and fully integrate BindSight.&lt;br /&gt;
&lt;br /&gt;
* migrate to standard web port (now that relayd installed on router)&lt;br /&gt;
* configure X-Forwarded-For logging in apache&lt;br /&gt;
* enable SSL for camera feeds (requested for full conversion to new sous veil system)&lt;br /&gt;
* enable SSL directly via daemon's listening port (i.e., elixir rather than apache)&lt;br /&gt;
* transfer slackbot snapshots to bricolage gateway&lt;br /&gt;
&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
&lt;br /&gt;
Flesh out project documentation&amp;amp;mdash;after fixing existing problems with our Mediawiki server.&lt;br /&gt;
&lt;br /&gt;
* recent edits monitor to trigger cache purge on transcluded Bricodash documentation updates&lt;br /&gt;
* help get mediawiki server 504 issues resolved (currently an obstacle to '''Bricodash''' documentation)&lt;br /&gt;
* broach discussion of absent Copyrights page on Wiki -- do we want to adopt a license??&lt;br /&gt;
* redraft lists in [[Bricodash#Event_Calendars|calendar sections]] as tables&lt;br /&gt;
* flesh out [[:Bricodash/Future|Bricodash Future Ideas]], explaining known requirements for each&lt;br /&gt;
&lt;br /&gt;
=== Cloud Log ===&lt;br /&gt;
&lt;br /&gt;
Incorporate remaining sources into rolling update log shown in lower left-hand corner.&lt;br /&gt;
&lt;br /&gt;
==== User Repositories ====&lt;br /&gt;
* refactor cloud/github to abstract away github/gitlab/etc&lt;br /&gt;
* allow more than most recent pushed repository to be shown&lt;br /&gt;
* add boxrs-based git repositories to Cloud Log panel&lt;br /&gt;
&lt;br /&gt;
==== Other Cloud Services ====&lt;br /&gt;
* Mediawiki &amp;amp;mdash; pending new account requests&lt;br /&gt;
* Zendesk — count of unread/open inquiries&lt;br /&gt;
* Status updates on donations: Patreon, Paypal, Amazon Smile...&lt;br /&gt;
* write up requirements for [[Bricodash/Future#Instagram_Integration|Instagram Integration]]&lt;br /&gt;
* write up requirements for [[Bricodash/Future#Twitter_Integration|Twitter Integration]]&lt;br /&gt;
&lt;br /&gt;
==== Retire IFFF Wiki Updates ====&lt;br /&gt;
* bot to post daily cloud log update to #general on our slack&lt;br /&gt;
&lt;br /&gt;
=== Calendars ===&lt;br /&gt;
&lt;br /&gt;
Incorporate additional calculated and externally sourced calendar events.&lt;br /&gt;
&lt;br /&gt;
==== Fixes ====&lt;br /&gt;
* almanac alt for almanac events&lt;br /&gt;
* add enum of event sources for sorting priority (when same start time)&lt;br /&gt;
* move HM anniversary dates to special .cal that takes precedence on HM calendar (and also appears on NYC)&lt;br /&gt;
* swap out icalendar (buggy repetition exception handling) in favor of true API&lt;br /&gt;
&lt;br /&gt;
==== Calculation ====&lt;br /&gt;
* new module to calculate hindu lunar tithi =&amp;gt; closing muhurat =&amp;gt; solar day&lt;br /&gt;
* revise diwali/deepawali calculation using tithi rather than lisp library approximations&lt;br /&gt;
* correctly calculate dates of International Astronomy Day (email out to Astronomical League for better calculation rules)&lt;br /&gt;
* calculate dates of Manhattanhenge (email out to library of American Museum of Natural History for formula)&lt;br /&gt;
* add eclipses and other significant astronomical events to holidays&lt;br /&gt;
* finish fleshing out remainder of movable feasts for [[Bricodash#Community_Calendar|Community Calendar]] (June 2019 forward)&lt;br /&gt;
&lt;br /&gt;
==== Integration ====&lt;br /&gt;
* use google search to find Offside Tavern Meetup events&lt;br /&gt;
* add placeholder events for non-Meetup Offside Tavern events&lt;br /&gt;
* refactor brite search by location routine to common library&lt;br /&gt;
* add nyc mesh, nyc resistor, fat cat fab lab, makerbar, makerspace nyc (SI), futureworks (BK/SI) to [[Bricodash#Community_Calendar|Community Calendar]] &lt;br /&gt;
* also add grow with google (if still in NYC), 2600, Off the Hook (if still broadcasting), blick, michaels, local library branches, makerish meetup events&lt;br /&gt;
&lt;br /&gt;
==== Advanced ====&lt;br /&gt;
* revise #thehaps formatting to provide headers per day&lt;br /&gt;
* embed hotlinks in #thehaps channel event listings&lt;br /&gt;
* concise calendar response for interactive slackbot&lt;br /&gt;
* auto-capture of #thehaps posted events to [[Bricodash/Extra:Calendar]]&lt;br /&gt;
* automation/streamlining tools for cross-posting HM Meetup events to Spingo&lt;br /&gt;
* enable toggling between Welcome header and holiday greetings [[Bricodash#Community_Calendar|^]]&lt;br /&gt;
&lt;br /&gt;
=== Cleanup ===&lt;br /&gt;
&lt;br /&gt;
Remaining features and code maintenance before calling it a major release.&lt;br /&gt;
&lt;br /&gt;
* integrate citymapper API for local subway stations&lt;br /&gt;
* refactor source files from initial launch&lt;br /&gt;
* find owners to adopt data sourcing projects that require more than passive API calls (see sections below)&lt;br /&gt;
* squish and push fork to upstream&lt;br /&gt;
&lt;br /&gt;
=== Upgrades ===&lt;br /&gt;
&lt;br /&gt;
Once built, streamline and rewrite as a truly beautiful application.&lt;br /&gt;
&lt;br /&gt;
* migrate from bricolage to less power-hungry hardware&lt;br /&gt;
* combined community slack calendar to wiki page (requires privacy policy under brite license)&lt;br /&gt;
* reimplement bricolage to run as embedded system under elixir/scenic/nerves&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
* import python directly using beamparticle&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot; style=&amp;quot;border-right:solid 1px #a7d7f9;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; padding-left: 20px; padding-bottom: 10px&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sub-Projects Needing Owners ==&lt;br /&gt;
&lt;br /&gt;
The projects below require an investment of time&amp;amp;mdash;such as active coordination with an API's owners&amp;amp;mdash;to be implemented, but would provide meaningful improvements to the overall feature-set of Bricodash if completed. &lt;br /&gt;
&lt;br /&gt;
At some point the description for each will be fleshed out to provide a full functional specification, together with an exploration of the requirements to move forward. For now, capsule bullet points serve as place holders. For more information, touch base with [[User:Beadsland]].&lt;br /&gt;
&lt;br /&gt;
=== Instagram Integration ===&lt;br /&gt;
&lt;br /&gt;
* add Instagram to Weird Photos and HM Cloud Log &amp;amp;mdash; this requires creating pages on Facebook under the new Graph API&lt;br /&gt;
&lt;br /&gt;
=== Twitter Integration ===&lt;br /&gt;
&lt;br /&gt;
* add Twitter to Weird Photos and HM Cloud Log &amp;amp;mdash; this requires emailing to get a dev account, then honoring Twitter's [https://developer.twitter.com/en/developer-terms/display-requirements.html Display Requirements]&lt;br /&gt;
&lt;br /&gt;
=== Slack Calendar Response Bot ===&lt;br /&gt;
&lt;br /&gt;
* interactive bot response to &amp;quot;What's happening?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Draft a Privacy Policy ===&lt;br /&gt;
&lt;br /&gt;
* draft privacy policy (per API reqs for public sites)&lt;br /&gt;
&lt;br /&gt;
=== Buzzer-Activated IR Remote ===&lt;br /&gt;
&lt;br /&gt;
Additionally, there are plans to tie a ceiling-mounted IR remote into the intercom buzzer to toggle inputs on the TV. &lt;br /&gt;
The idea would be that when the buzzer sounds, the remote would switch from the dashboard (on Chromecast) to a dedicated &lt;br /&gt;
full screen camera input.  After a delay the input would be toggled back to the Chromecast-hosted dashboard.  Such an&lt;br /&gt;
arrangement would free up the dashboard screen real-estate currently devoted to an around-the-clock camera feed&amp;amp;mdash;as, realistically, the only time one needs a camera feed is when a visitor is buzzing to be let in.&lt;br /&gt;
&lt;br /&gt;
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?&lt;br /&gt;
&lt;br /&gt;
* integrate with custom buzzer-activated IR remote hack&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Beadsland</name></author>
	</entry>
	<entry>
		<id>https://wiki.hackmanhattan.com/index.php?title=Bricodash/Extra:Calendar&amp;diff=7369</id>
		<title>Bricodash/Extra:Calendar</title>
		<link rel="alternate" type="text/html" href="https://wiki.hackmanhattan.com/index.php?title=Bricodash/Extra:Calendar&amp;diff=7369"/>
		<updated>2019-10-18T18:38:44Z</updated>

		<summary type="html">&lt;p&gt;Beadsland: /* Extra Community Calendar Items */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''See also:'' [[Bricodash/Extra:Repos]]&lt;br /&gt;
&lt;br /&gt;
= What is This? =&lt;br /&gt;
&lt;br /&gt;
Items entered below will be parsed for inclusion in the [[Bricodash#Community_Calendar|Bricodash Community Calendar]].&lt;br /&gt;
&lt;br /&gt;
Events listings follow the following syntax: &amp;lt;code&amp;gt;* &amp;amp;lt;Human-Readable Date/Time&amp;amp;gt; :: &amp;amp;lt;Event Title&amp;amp;gt; :: &amp;amp;lt;Emoji&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The final field is optional, and may either be a small number of emoji to appear at the end of the event listing, or else the relative path to an image already pre-loaded on the Bricodash server.&lt;br /&gt;
&lt;br /&gt;
Optionally, the first field may begin with a &amp;quot;#&amp;quot;, in which case the entire event line is treated as a comment&amp;amp;mdash;and thus ignored. This can be used to leave reminders for recurring events that have a different date each year, such as annual conventions where dates are only announced in the lead-up to the event.&lt;br /&gt;
&lt;br /&gt;
=Extra Community Calendar Items=&lt;br /&gt;
&lt;br /&gt;
* May 4 at 9:30 am :: Just For Fun / May Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* Jun 9 at 1 pm :: Just for Fun / June Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* Jul 13 at 9:30 am :: Just for Fun / July Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* Aug 4 at 1 pm :: Just for Fun / August Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* Sep 7 at 9:30 am :: Just for Fun / September Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* Oct 6 at 1 pm :: Just for Fun / October Crafts Day (Penn South) :: 🎨&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Sep 14 at 10 am :: Penn South Flea Market (W 26 btw 8th &amp;amp; 9th) :: 🏷️🛍️&lt;br /&gt;
* Sep 22 at 10 am :: SAFE Disposal Event (Union Square&amp;amp;mdash;North Plaza) :: ☠🖥🔋☣️&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Oct 3 :: First Day of NY Comic Con &amp;lt;img class=&amp;quot;logo&amp;quot; src=&amp;quot;img/flickr_nalends_super_pop.png&amp;quot;&amp;gt; / Anime Expo (Javits Center)&lt;br /&gt;
* Oct 6 :: Last Day of NY Comic Con &amp;lt;img class=&amp;quot;logo&amp;quot; src=&amp;quot;img/flickr_nalends_super_pop.png&amp;quot;&amp;gt; / Anime Expo (Javits Center)&lt;br /&gt;
&lt;br /&gt;
* Oct 4 at 8 am :: PyGotham (Pennsylvania Hotel)&lt;br /&gt;
* Oct 5 at 8 am :: PyGotham (Pennsylvania Hotel)&lt;br /&gt;
&lt;br /&gt;
* Oct 9 at 7 pm :: &amp;quot;Off the Hook&amp;quot; Live (Brooklyn Commons) :: 📻🎙️&lt;br /&gt;
&lt;br /&gt;
* Oct 19 at 12 pm :: Gowanus Open Studios 2019 at NYC Resistor&lt;br /&gt;
* Oct 20 at 12 pm :: Gowanus Open Studios 2019 at NYC Resistor&lt;br /&gt;
&lt;br /&gt;
* Jan 2 :: First Day of Super MAGFest (National Harbor, MD) :: 🕹️🎮&lt;br /&gt;
* Jan 5 :: First Day of Super MAGFest (National Harbor, MD) :: 🕹️🎮&lt;/div&gt;</summary>
		<author><name>Beadsland</name></author>
	</entry>
	<entry>
		<id>https://wiki.hackmanhattan.com/index.php?title=Bricodash/Future&amp;diff=7368</id>
		<title>Bricodash/Future</title>
		<link rel="alternate" type="text/html" href="https://wiki.hackmanhattan.com/index.php?title=Bricodash/Future&amp;diff=7368"/>
		<updated>2019-10-18T11:45:27Z</updated>

		<summary type="html">&lt;p&gt;Beadsland: /* Calculation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
''See:'' &amp;lt;span style=&amp;quot;white-space: nowrap&amp;quot;&amp;gt;[[File:Bricodash_screenshot.png|35px]] [[Bricodash]] &amp;lt;/span&amp;gt; for project details&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table width=&amp;quot;100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;48%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current Tasks Outstanding ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Maintenance ===&lt;br /&gt;
&lt;br /&gt;
* set meetup event duration floor to 3 hours when comparing to private&lt;br /&gt;
* confirm first year that diwali calculation will be inaccurate&lt;br /&gt;
&lt;br /&gt;
=== BindSight :2020 ===&lt;br /&gt;
&lt;br /&gt;
''See also:'' [[BindSight]] project page&lt;br /&gt;
&lt;br /&gt;
{{:BindSight}}&lt;br /&gt;
&lt;br /&gt;
=== Webhook Notifications ===&lt;br /&gt;
&lt;br /&gt;
Javascript client-side triggers to deliver messages to our Slack channels to provide alerts when the camera feed or client devices stall.&lt;br /&gt;
&lt;br /&gt;
* migrate sleep macro to general purpose library&lt;br /&gt;
* migrate from webhooks integration to webhooks feature of bricodash app (and update notice)&lt;br /&gt;
* server-side webhook on stall of any given device&lt;br /&gt;
* when wonkiness addressed: downthrottle chromecast reboots to 1x per day; stream swap-in to never&lt;br /&gt;
&lt;br /&gt;
=== Server ===&lt;br /&gt;
&lt;br /&gt;
Standardize Web server setup and fully integrate BindSight.&lt;br /&gt;
&lt;br /&gt;
* migrate to standard web port (now that relayd installed on router)&lt;br /&gt;
* configure X-Forwarded-For logging in apache&lt;br /&gt;
* enable SSL for camera feeds (requested for full conversion to new sous veil system)&lt;br /&gt;
* enable SSL directly via daemon's listening port (i.e., elixir rather than apache)&lt;br /&gt;
* transfer slackbot snapshots to bricolage gateway&lt;br /&gt;
&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
&lt;br /&gt;
Flesh out project documentation&amp;amp;mdash;after fixing existing problems with our Mediawiki server.&lt;br /&gt;
&lt;br /&gt;
* recent edits monitor to trigger cache purge on transcluded Bricodash documentation updates&lt;br /&gt;
* help get mediawiki server 504 issues resolved (currently an obstacle to '''Bricodash''' documentation)&lt;br /&gt;
* broach discussion of absent Copyrights page on Wiki -- do we want to adopt a license??&lt;br /&gt;
* redraft lists in [[Bricodash#Event_Calendars|calendar sections]] as tables&lt;br /&gt;
* flesh out [[:Bricodash/Future|Bricodash Future Ideas]], explaining known requirements for each&lt;br /&gt;
&lt;br /&gt;
=== Cloud Log ===&lt;br /&gt;
&lt;br /&gt;
Incorporate remaining sources into rolling update log shown in lower left-hand corner.&lt;br /&gt;
&lt;br /&gt;
==== User Repositories ====&lt;br /&gt;
* refactor cloud/github to abstract away github/gitlab/etc&lt;br /&gt;
* allow more than most recent pushed repository to be shown&lt;br /&gt;
* add boxrs-based git repositories to Cloud Log panel&lt;br /&gt;
&lt;br /&gt;
==== Other Cloud Services ====&lt;br /&gt;
* Mediawiki &amp;amp;mdash; pending new account requests&lt;br /&gt;
* Zendesk — count of unread/open inquiries&lt;br /&gt;
* Status updates on donations: Patreon, Paypal, Amazon Smile...&lt;br /&gt;
* write up requirements for [[Bricodash/Future#Instagram_Integration|Instagram Integration]]&lt;br /&gt;
* write up requirements for [[Bricodash/Future#Twitter_Integration|Twitter Integration]]&lt;br /&gt;
&lt;br /&gt;
==== Retire IFFF Wiki Updates ====&lt;br /&gt;
* bot to post daily cloud log update to #general on our slack&lt;br /&gt;
&lt;br /&gt;
=== Calendars ===&lt;br /&gt;
&lt;br /&gt;
Incorporate additional calculated and externally sourced calendar events.&lt;br /&gt;
&lt;br /&gt;
==== Fixes ====&lt;br /&gt;
* almanac alt for almanac events&lt;br /&gt;
* add enum of event sources for sorting priority (when same start time)&lt;br /&gt;
* move HM anniversary dates to special .cal that takes precedence on HM calendar (and also appears on NYC)&lt;br /&gt;
* swap out icalendar (buggy repetition exception handling) in favor of true API&lt;br /&gt;
&lt;br /&gt;
==== Calculation ====&lt;br /&gt;
* new module to calculate hindu lunar tithi =&amp;gt; closing muhurat =&amp;gt; solar day&lt;br /&gt;
* revise diwali/deepawali calculation using tithi rather than lisp library approximations&lt;br /&gt;
* correctly calculate dates of International Astronomy Day (email out to Astronomical League for better calculation rules)&lt;br /&gt;
* calculate dates of Manhattanhenge (email out to library of American Museum of Natural History for formula)&lt;br /&gt;
* add eclipses and other significant astronomical events to holidays&lt;br /&gt;
* finish fleshing out remainder of movable feasts for [[Bricodash#Community_Calendar|Community Calendar]] (June 2019 forward)&lt;br /&gt;
&lt;br /&gt;
==== Integration ====&lt;br /&gt;
* use google search to find Offside Tavern Meetup events&lt;br /&gt;
* add placeholder events for non-Meetup Offside Tavern events&lt;br /&gt;
* refactor brite search by location routine to common library&lt;br /&gt;
* add nyc mesh, nyc resistor, fat cat fab lab, makerbar, makerspace nyc (SI), futureworks (BK/SI) to [[Bricodash#Community_Calendar|Community Calendar]] &lt;br /&gt;
* also add grow with google (if still in NYC), 2600, Off the Hook (if still broadcasting), blick, michaels, local library branches, makerish meetup events&lt;br /&gt;
&lt;br /&gt;
==== Advanced ====&lt;br /&gt;
* revise #thehaps formatting to provide headers per day&lt;br /&gt;
* embed hotlinks in #thehaps channel event listings&lt;br /&gt;
* concise calendar response for interactive slackbot&lt;br /&gt;
* auto-capture of #thehaps posted events to [[Bricodash/Extra:Calendar]]&lt;br /&gt;
* automation/streamlining tools for cross-posting HM Meetup events to Spingo&lt;br /&gt;
* enable toggling between Welcome header and holiday greetings [[Bricodash#Community_Calendar|^]]&lt;br /&gt;
&lt;br /&gt;
=== Cleanup ===&lt;br /&gt;
&lt;br /&gt;
Remaining features and code maintenance before calling it a major release.&lt;br /&gt;
&lt;br /&gt;
* integrate citymapper API for local subway stations&lt;br /&gt;
* refactor source files from initial launch&lt;br /&gt;
* find owners to adopt data sourcing projects that require more than passive API calls (see sections below)&lt;br /&gt;
* squish and push fork to upstream&lt;br /&gt;
&lt;br /&gt;
=== Upgrades ===&lt;br /&gt;
&lt;br /&gt;
Once built, streamline and rewrite as a truly beautiful application.&lt;br /&gt;
&lt;br /&gt;
* migrate from bricolage to less power-hungry hardware&lt;br /&gt;
* combined community slack calendar to wiki page (requires privacy policy under brite license)&lt;br /&gt;
* reimplement bricolage to run as embedded system under elixir/scenic/nerves&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
* import python directly using beamparticle&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot; style=&amp;quot;border-right:solid 1px #a7d7f9;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; padding-left: 20px; padding-bottom: 10px&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sub-Projects Needing Owners ==&lt;br /&gt;
&lt;br /&gt;
The projects below require an investment of time&amp;amp;mdash;such as active coordination with an API's owners&amp;amp;mdash;to be implemented, but would provide meaningful improvements to the overall feature-set of Bricodash if completed. &lt;br /&gt;
&lt;br /&gt;
At some point the description for each will be fleshed out to provide a full functional specification, together with an exploration of the requirements to move forward. For now, capsule bullet points serve as place holders. For more information, touch base with [[User:Beadsland]].&lt;br /&gt;
&lt;br /&gt;
=== Instagram Integration ===&lt;br /&gt;
&lt;br /&gt;
* add Instagram to Weird Photos and HM Cloud Log &amp;amp;mdash; this requires creating pages on Facebook under the new Graph API&lt;br /&gt;
&lt;br /&gt;
=== Twitter Integration ===&lt;br /&gt;
&lt;br /&gt;
* add Twitter to Weird Photos and HM Cloud Log &amp;amp;mdash; this requires emailing to get a dev account, then honoring Twitter's [https://developer.twitter.com/en/developer-terms/display-requirements.html Display Requirements]&lt;br /&gt;
&lt;br /&gt;
=== Slack Calendar Response Bot ===&lt;br /&gt;
&lt;br /&gt;
* interactive bot response to &amp;quot;What's happening?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Draft a Privacy Policy ===&lt;br /&gt;
&lt;br /&gt;
* draft privacy policy (per API reqs for public sites)&lt;br /&gt;
&lt;br /&gt;
=== Buzzer-Activated IR Remote ===&lt;br /&gt;
&lt;br /&gt;
Additionally, there are plans to tie a ceiling-mounted IR remote into the intercom buzzer to toggle inputs on the TV. &lt;br /&gt;
The idea would be that when the buzzer sounds, the remote would switch from the dashboard (on Chromecast) to a dedicated &lt;br /&gt;
full screen camera input.  After a delay the input would be toggled back to the Chromecast-hosted dashboard.  Such an&lt;br /&gt;
arrangement would free up the dashboard screen real-estate currently devoted to an around-the-clock camera feed&amp;amp;mdash;as, realistically, the only time one needs a camera feed is when a visitor is buzzing to be let in.&lt;br /&gt;
&lt;br /&gt;
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?&lt;br /&gt;
&lt;br /&gt;
* integrate with custom buzzer-activated IR remote hack&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Beadsland</name></author>
	</entry>
	<entry>
		<id>https://wiki.hackmanhattan.com/index.php?title=Bricodash/Future&amp;diff=7367</id>
		<title>Bricodash/Future</title>
		<link rel="alternate" type="text/html" href="https://wiki.hackmanhattan.com/index.php?title=Bricodash/Future&amp;diff=7367"/>
		<updated>2019-10-18T11:40:06Z</updated>

		<summary type="html">&lt;p&gt;Beadsland: /* Maintenance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
''See:'' &amp;lt;span style=&amp;quot;white-space: nowrap&amp;quot;&amp;gt;[[File:Bricodash_screenshot.png|35px]] [[Bricodash]] &amp;lt;/span&amp;gt; for project details&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table width=&amp;quot;100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;48%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current Tasks Outstanding ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Maintenance ===&lt;br /&gt;
&lt;br /&gt;
* set meetup event duration floor to 3 hours when comparing to private&lt;br /&gt;
* confirm first year that diwali calculation will be inaccurate&lt;br /&gt;
&lt;br /&gt;
=== BindSight :2020 ===&lt;br /&gt;
&lt;br /&gt;
''See also:'' [[BindSight]] project page&lt;br /&gt;
&lt;br /&gt;
{{:BindSight}}&lt;br /&gt;
&lt;br /&gt;
=== Webhook Notifications ===&lt;br /&gt;
&lt;br /&gt;
Javascript client-side triggers to deliver messages to our Slack channels to provide alerts when the camera feed or client devices stall.&lt;br /&gt;
&lt;br /&gt;
* migrate sleep macro to general purpose library&lt;br /&gt;
* migrate from webhooks integration to webhooks feature of bricodash app (and update notice)&lt;br /&gt;
* server-side webhook on stall of any given device&lt;br /&gt;
* when wonkiness addressed: downthrottle chromecast reboots to 1x per day; stream swap-in to never&lt;br /&gt;
&lt;br /&gt;
=== Server ===&lt;br /&gt;
&lt;br /&gt;
Standardize Web server setup and fully integrate BindSight.&lt;br /&gt;
&lt;br /&gt;
* migrate to standard web port (now that relayd installed on router)&lt;br /&gt;
* configure X-Forwarded-For logging in apache&lt;br /&gt;
* enable SSL for camera feeds (requested for full conversion to new sous veil system)&lt;br /&gt;
* enable SSL directly via daemon's listening port (i.e., elixir rather than apache)&lt;br /&gt;
* transfer slackbot snapshots to bricolage gateway&lt;br /&gt;
&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
&lt;br /&gt;
Flesh out project documentation&amp;amp;mdash;after fixing existing problems with our Mediawiki server.&lt;br /&gt;
&lt;br /&gt;
* recent edits monitor to trigger cache purge on transcluded Bricodash documentation updates&lt;br /&gt;
* help get mediawiki server 504 issues resolved (currently an obstacle to '''Bricodash''' documentation)&lt;br /&gt;
* broach discussion of absent Copyrights page on Wiki -- do we want to adopt a license??&lt;br /&gt;
* redraft lists in [[Bricodash#Event_Calendars|calendar sections]] as tables&lt;br /&gt;
* flesh out [[:Bricodash/Future|Bricodash Future Ideas]], explaining known requirements for each&lt;br /&gt;
&lt;br /&gt;
=== Cloud Log ===&lt;br /&gt;
&lt;br /&gt;
Incorporate remaining sources into rolling update log shown in lower left-hand corner.&lt;br /&gt;
&lt;br /&gt;
==== User Repositories ====&lt;br /&gt;
* refactor cloud/github to abstract away github/gitlab/etc&lt;br /&gt;
* allow more than most recent pushed repository to be shown&lt;br /&gt;
* add boxrs-based git repositories to Cloud Log panel&lt;br /&gt;
&lt;br /&gt;
==== Other Cloud Services ====&lt;br /&gt;
* Mediawiki &amp;amp;mdash; pending new account requests&lt;br /&gt;
* Zendesk — count of unread/open inquiries&lt;br /&gt;
* Status updates on donations: Patreon, Paypal, Amazon Smile...&lt;br /&gt;
* write up requirements for [[Bricodash/Future#Instagram_Integration|Instagram Integration]]&lt;br /&gt;
* write up requirements for [[Bricodash/Future#Twitter_Integration|Twitter Integration]]&lt;br /&gt;
&lt;br /&gt;
==== Retire IFFF Wiki Updates ====&lt;br /&gt;
* bot to post daily cloud log update to #general on our slack&lt;br /&gt;
&lt;br /&gt;
=== Calendars ===&lt;br /&gt;
&lt;br /&gt;
Incorporate additional calculated and externally sourced calendar events.&lt;br /&gt;
&lt;br /&gt;
==== Fixes ====&lt;br /&gt;
* almanac alt for almanac events&lt;br /&gt;
* add enum of event sources for sorting priority (when same start time)&lt;br /&gt;
* move HM anniversary dates to special .cal that takes precedence on HM calendar (and also appears on NYC)&lt;br /&gt;
* swap out icalendar (buggy repetition exception handling) in favor of true API&lt;br /&gt;
&lt;br /&gt;
==== Calculation ====&lt;br /&gt;
* correctly calculate dates of International Astronomy Day (email out to Astronomical League for better calculation rules)&lt;br /&gt;
* calculate dates of Manhattanhenge (email out to library of American Museum of Natural History for formula)&lt;br /&gt;
* add eclipses and other significant astronomical events to holidays&lt;br /&gt;
* finish fleshing out remainder of movable feasts for [[Bricodash#Community_Calendar|Community Calendar]] (June 2019 forward)&lt;br /&gt;
&lt;br /&gt;
==== Integration ====&lt;br /&gt;
* use google search to find Offside Tavern Meetup events&lt;br /&gt;
* add placeholder events for non-Meetup Offside Tavern events&lt;br /&gt;
* refactor brite search by location routine to common library&lt;br /&gt;
* add nyc mesh, nyc resistor, fat cat fab lab, makerbar, makerspace nyc (SI), futureworks (BK/SI) to [[Bricodash#Community_Calendar|Community Calendar]] &lt;br /&gt;
* also add grow with google (if still in NYC), 2600, Off the Hook (if still broadcasting), blick, michaels, local library branches, makerish meetup events&lt;br /&gt;
&lt;br /&gt;
==== Advanced ====&lt;br /&gt;
* revise #thehaps formatting to provide headers per day&lt;br /&gt;
* embed hotlinks in #thehaps channel event listings&lt;br /&gt;
* concise calendar response for interactive slackbot&lt;br /&gt;
* auto-capture of #thehaps posted events to [[Bricodash/Extra:Calendar]]&lt;br /&gt;
* automation/streamlining tools for cross-posting HM Meetup events to Spingo&lt;br /&gt;
* enable toggling between Welcome header and holiday greetings [[Bricodash#Community_Calendar|^]]&lt;br /&gt;
&lt;br /&gt;
=== Cleanup ===&lt;br /&gt;
&lt;br /&gt;
Remaining features and code maintenance before calling it a major release.&lt;br /&gt;
&lt;br /&gt;
* integrate citymapper API for local subway stations&lt;br /&gt;
* refactor source files from initial launch&lt;br /&gt;
* find owners to adopt data sourcing projects that require more than passive API calls (see sections below)&lt;br /&gt;
* squish and push fork to upstream&lt;br /&gt;
&lt;br /&gt;
=== Upgrades ===&lt;br /&gt;
&lt;br /&gt;
Once built, streamline and rewrite as a truly beautiful application.&lt;br /&gt;
&lt;br /&gt;
* migrate from bricolage to less power-hungry hardware&lt;br /&gt;
* combined community slack calendar to wiki page (requires privacy policy under brite license)&lt;br /&gt;
* reimplement bricolage to run as embedded system under elixir/scenic/nerves&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
* import python directly using beamparticle&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot; style=&amp;quot;border-right:solid 1px #a7d7f9;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; padding-left: 20px; padding-bottom: 10px&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sub-Projects Needing Owners ==&lt;br /&gt;
&lt;br /&gt;
The projects below require an investment of time&amp;amp;mdash;such as active coordination with an API's owners&amp;amp;mdash;to be implemented, but would provide meaningful improvements to the overall feature-set of Bricodash if completed. &lt;br /&gt;
&lt;br /&gt;
At some point the description for each will be fleshed out to provide a full functional specification, together with an exploration of the requirements to move forward. For now, capsule bullet points serve as place holders. For more information, touch base with [[User:Beadsland]].&lt;br /&gt;
&lt;br /&gt;
=== Instagram Integration ===&lt;br /&gt;
&lt;br /&gt;
* add Instagram to Weird Photos and HM Cloud Log &amp;amp;mdash; this requires creating pages on Facebook under the new Graph API&lt;br /&gt;
&lt;br /&gt;
=== Twitter Integration ===&lt;br /&gt;
&lt;br /&gt;
* add Twitter to Weird Photos and HM Cloud Log &amp;amp;mdash; this requires emailing to get a dev account, then honoring Twitter's [https://developer.twitter.com/en/developer-terms/display-requirements.html Display Requirements]&lt;br /&gt;
&lt;br /&gt;
=== Slack Calendar Response Bot ===&lt;br /&gt;
&lt;br /&gt;
* interactive bot response to &amp;quot;What's happening?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Draft a Privacy Policy ===&lt;br /&gt;
&lt;br /&gt;
* draft privacy policy (per API reqs for public sites)&lt;br /&gt;
&lt;br /&gt;
=== Buzzer-Activated IR Remote ===&lt;br /&gt;
&lt;br /&gt;
Additionally, there are plans to tie a ceiling-mounted IR remote into the intercom buzzer to toggle inputs on the TV. &lt;br /&gt;
The idea would be that when the buzzer sounds, the remote would switch from the dashboard (on Chromecast) to a dedicated &lt;br /&gt;
full screen camera input.  After a delay the input would be toggled back to the Chromecast-hosted dashboard.  Such an&lt;br /&gt;
arrangement would free up the dashboard screen real-estate currently devoted to an around-the-clock camera feed&amp;amp;mdash;as, realistically, the only time one needs a camera feed is when a visitor is buzzing to be let in.&lt;br /&gt;
&lt;br /&gt;
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?&lt;br /&gt;
&lt;br /&gt;
* integrate with custom buzzer-activated IR remote hack&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Beadsland</name></author>
	</entry>
	<entry>
		<id>https://wiki.hackmanhattan.com/index.php?title=Bricodash/Future&amp;diff=7366</id>
		<title>Bricodash/Future</title>
		<link rel="alternate" type="text/html" href="https://wiki.hackmanhattan.com/index.php?title=Bricodash/Future&amp;diff=7366"/>
		<updated>2019-10-17T01:23:06Z</updated>

		<summary type="html">&lt;p&gt;Beadsland: /* Maintenance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
''See:'' &amp;lt;span style=&amp;quot;white-space: nowrap&amp;quot;&amp;gt;[[File:Bricodash_screenshot.png|35px]] [[Bricodash]] &amp;lt;/span&amp;gt; for project details&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table width=&amp;quot;100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;48%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current Tasks Outstanding ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Maintenance ===&lt;br /&gt;
&lt;br /&gt;
* update eyeball to display on new TV device whomai&lt;br /&gt;
* multi-day festivals showing as &amp;quot;Yesterday&amp;quot;&lt;br /&gt;
* calculate diwali based on days in year rather than enumerated month&lt;br /&gt;
&lt;br /&gt;
=== BindSight :2020 ===&lt;br /&gt;
&lt;br /&gt;
''See also:'' [[BindSight]] project page&lt;br /&gt;
&lt;br /&gt;
{{:BindSight}}&lt;br /&gt;
&lt;br /&gt;
=== Webhook Notifications ===&lt;br /&gt;
&lt;br /&gt;
Javascript client-side triggers to deliver messages to our Slack channels to provide alerts when the camera feed or client devices stall.&lt;br /&gt;
&lt;br /&gt;
* migrate sleep macro to general purpose library&lt;br /&gt;
* migrate from webhooks integration to webhooks feature of bricodash app (and update notice)&lt;br /&gt;
* server-side webhook on stall of any given device&lt;br /&gt;
* when wonkiness addressed: downthrottle chromecast reboots to 1x per day; stream swap-in to never&lt;br /&gt;
&lt;br /&gt;
=== Server ===&lt;br /&gt;
&lt;br /&gt;
Standardize Web server setup and fully integrate BindSight.&lt;br /&gt;
&lt;br /&gt;
* migrate to standard web port (now that relayd installed on router)&lt;br /&gt;
* configure X-Forwarded-For logging in apache&lt;br /&gt;
* enable SSL for camera feeds (requested for full conversion to new sous veil system)&lt;br /&gt;
* enable SSL directly via daemon's listening port (i.e., elixir rather than apache)&lt;br /&gt;
* transfer slackbot snapshots to bricolage gateway&lt;br /&gt;
&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
&lt;br /&gt;
Flesh out project documentation&amp;amp;mdash;after fixing existing problems with our Mediawiki server.&lt;br /&gt;
&lt;br /&gt;
* recent edits monitor to trigger cache purge on transcluded Bricodash documentation updates&lt;br /&gt;
* help get mediawiki server 504 issues resolved (currently an obstacle to '''Bricodash''' documentation)&lt;br /&gt;
* broach discussion of absent Copyrights page on Wiki -- do we want to adopt a license??&lt;br /&gt;
* redraft lists in [[Bricodash#Event_Calendars|calendar sections]] as tables&lt;br /&gt;
* flesh out [[:Bricodash/Future|Bricodash Future Ideas]], explaining known requirements for each&lt;br /&gt;
&lt;br /&gt;
=== Cloud Log ===&lt;br /&gt;
&lt;br /&gt;
Incorporate remaining sources into rolling update log shown in lower left-hand corner.&lt;br /&gt;
&lt;br /&gt;
==== User Repositories ====&lt;br /&gt;
* refactor cloud/github to abstract away github/gitlab/etc&lt;br /&gt;
* allow more than most recent pushed repository to be shown&lt;br /&gt;
* add boxrs-based git repositories to Cloud Log panel&lt;br /&gt;
&lt;br /&gt;
==== Other Cloud Services ====&lt;br /&gt;
* Mediawiki &amp;amp;mdash; pending new account requests&lt;br /&gt;
* Zendesk — count of unread/open inquiries&lt;br /&gt;
* Status updates on donations: Patreon, Paypal, Amazon Smile...&lt;br /&gt;
* write up requirements for [[Bricodash/Future#Instagram_Integration|Instagram Integration]]&lt;br /&gt;
* write up requirements for [[Bricodash/Future#Twitter_Integration|Twitter Integration]]&lt;br /&gt;
&lt;br /&gt;
==== Retire IFFF Wiki Updates ====&lt;br /&gt;
* bot to post daily cloud log update to #general on our slack&lt;br /&gt;
&lt;br /&gt;
=== Calendars ===&lt;br /&gt;
&lt;br /&gt;
Incorporate additional calculated and externally sourced calendar events.&lt;br /&gt;
&lt;br /&gt;
==== Fixes ====&lt;br /&gt;
* almanac alt for almanac events&lt;br /&gt;
* add enum of event sources for sorting priority (when same start time)&lt;br /&gt;
* move HM anniversary dates to special .cal that takes precedence on HM calendar (and also appears on NYC)&lt;br /&gt;
* swap out icalendar (buggy repetition exception handling) in favor of true API&lt;br /&gt;
&lt;br /&gt;
==== Calculation ====&lt;br /&gt;
* correctly calculate dates of International Astronomy Day (email out to Astronomical League for better calculation rules)&lt;br /&gt;
* calculate dates of Manhattanhenge (email out to library of American Museum of Natural History for formula)&lt;br /&gt;
* add eclipses and other significant astronomical events to holidays&lt;br /&gt;
* finish fleshing out remainder of movable feasts for [[Bricodash#Community_Calendar|Community Calendar]] (June 2019 forward)&lt;br /&gt;
&lt;br /&gt;
==== Integration ====&lt;br /&gt;
* use google search to find Offside Tavern Meetup events&lt;br /&gt;
* add placeholder events for non-Meetup Offside Tavern events&lt;br /&gt;
* refactor brite search by location routine to common library&lt;br /&gt;
* add nyc mesh, nyc resistor, fat cat fab lab, makerbar, makerspace nyc (SI), futureworks (BK/SI) to [[Bricodash#Community_Calendar|Community Calendar]] &lt;br /&gt;
* also add grow with google (if still in NYC), 2600, Off the Hook (if still broadcasting), blick, michaels, local library branches, makerish meetup events&lt;br /&gt;
&lt;br /&gt;
==== Advanced ====&lt;br /&gt;
* revise #thehaps formatting to provide headers per day&lt;br /&gt;
* embed hotlinks in #thehaps channel event listings&lt;br /&gt;
* concise calendar response for interactive slackbot&lt;br /&gt;
* auto-capture of #thehaps posted events to [[Bricodash/Extra:Calendar]]&lt;br /&gt;
* automation/streamlining tools for cross-posting HM Meetup events to Spingo&lt;br /&gt;
* enable toggling between Welcome header and holiday greetings [[Bricodash#Community_Calendar|^]]&lt;br /&gt;
&lt;br /&gt;
=== Cleanup ===&lt;br /&gt;
&lt;br /&gt;
Remaining features and code maintenance before calling it a major release.&lt;br /&gt;
&lt;br /&gt;
* integrate citymapper API for local subway stations&lt;br /&gt;
* refactor source files from initial launch&lt;br /&gt;
* find owners to adopt data sourcing projects that require more than passive API calls (see sections below)&lt;br /&gt;
* squish and push fork to upstream&lt;br /&gt;
&lt;br /&gt;
=== Upgrades ===&lt;br /&gt;
&lt;br /&gt;
Once built, streamline and rewrite as a truly beautiful application.&lt;br /&gt;
&lt;br /&gt;
* migrate from bricolage to less power-hungry hardware&lt;br /&gt;
* combined community slack calendar to wiki page (requires privacy policy under brite license)&lt;br /&gt;
* reimplement bricolage to run as embedded system under elixir/scenic/nerves&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
* import python directly using beamparticle&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot; style=&amp;quot;border-right:solid 1px #a7d7f9;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; padding-left: 20px; padding-bottom: 10px&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sub-Projects Needing Owners ==&lt;br /&gt;
&lt;br /&gt;
The projects below require an investment of time&amp;amp;mdash;such as active coordination with an API's owners&amp;amp;mdash;to be implemented, but would provide meaningful improvements to the overall feature-set of Bricodash if completed. &lt;br /&gt;
&lt;br /&gt;
At some point the description for each will be fleshed out to provide a full functional specification, together with an exploration of the requirements to move forward. For now, capsule bullet points serve as place holders. For more information, touch base with [[User:Beadsland]].&lt;br /&gt;
&lt;br /&gt;
=== Instagram Integration ===&lt;br /&gt;
&lt;br /&gt;
* add Instagram to Weird Photos and HM Cloud Log &amp;amp;mdash; this requires creating pages on Facebook under the new Graph API&lt;br /&gt;
&lt;br /&gt;
=== Twitter Integration ===&lt;br /&gt;
&lt;br /&gt;
* add Twitter to Weird Photos and HM Cloud Log &amp;amp;mdash; this requires emailing to get a dev account, then honoring Twitter's [https://developer.twitter.com/en/developer-terms/display-requirements.html Display Requirements]&lt;br /&gt;
&lt;br /&gt;
=== Slack Calendar Response Bot ===&lt;br /&gt;
&lt;br /&gt;
* interactive bot response to &amp;quot;What's happening?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Draft a Privacy Policy ===&lt;br /&gt;
&lt;br /&gt;
* draft privacy policy (per API reqs for public sites)&lt;br /&gt;
&lt;br /&gt;
=== Buzzer-Activated IR Remote ===&lt;br /&gt;
&lt;br /&gt;
Additionally, there are plans to tie a ceiling-mounted IR remote into the intercom buzzer to toggle inputs on the TV. &lt;br /&gt;
The idea would be that when the buzzer sounds, the remote would switch from the dashboard (on Chromecast) to a dedicated &lt;br /&gt;
full screen camera input.  After a delay the input would be toggled back to the Chromecast-hosted dashboard.  Such an&lt;br /&gt;
arrangement would free up the dashboard screen real-estate currently devoted to an around-the-clock camera feed&amp;amp;mdash;as, realistically, the only time one needs a camera feed is when a visitor is buzzing to be let in.&lt;br /&gt;
&lt;br /&gt;
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?&lt;br /&gt;
&lt;br /&gt;
* integrate with custom buzzer-activated IR remote hack&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Beadsland</name></author>
	</entry>
	<entry>
		<id>https://wiki.hackmanhattan.com/index.php?title=Bricodash/Future&amp;diff=7365</id>
		<title>Bricodash/Future</title>
		<link rel="alternate" type="text/html" href="https://wiki.hackmanhattan.com/index.php?title=Bricodash/Future&amp;diff=7365"/>
		<updated>2019-10-16T10:07:10Z</updated>

		<summary type="html">&lt;p&gt;Beadsland: /* Maintenance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
''See:'' &amp;lt;span style=&amp;quot;white-space: nowrap&amp;quot;&amp;gt;[[File:Bricodash_screenshot.png|35px]] [[Bricodash]] &amp;lt;/span&amp;gt; for project details&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table width=&amp;quot;100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;48%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current Tasks Outstanding ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Maintenance ===&lt;br /&gt;
&lt;br /&gt;
* multi-day festivals showing as &amp;quot;Yesterday&amp;quot;&lt;br /&gt;
* calculate diwali based on days in year rather than enumerated month&lt;br /&gt;
&lt;br /&gt;
=== BindSight :2020 ===&lt;br /&gt;
&lt;br /&gt;
''See also:'' [[BindSight]] project page&lt;br /&gt;
&lt;br /&gt;
{{:BindSight}}&lt;br /&gt;
&lt;br /&gt;
=== Webhook Notifications ===&lt;br /&gt;
&lt;br /&gt;
Javascript client-side triggers to deliver messages to our Slack channels to provide alerts when the camera feed or client devices stall.&lt;br /&gt;
&lt;br /&gt;
* migrate sleep macro to general purpose library&lt;br /&gt;
* migrate from webhooks integration to webhooks feature of bricodash app (and update notice)&lt;br /&gt;
* server-side webhook on stall of any given device&lt;br /&gt;
* when wonkiness addressed: downthrottle chromecast reboots to 1x per day; stream swap-in to never&lt;br /&gt;
&lt;br /&gt;
=== Server ===&lt;br /&gt;
&lt;br /&gt;
Standardize Web server setup and fully integrate BindSight.&lt;br /&gt;
&lt;br /&gt;
* migrate to standard web port (now that relayd installed on router)&lt;br /&gt;
* configure X-Forwarded-For logging in apache&lt;br /&gt;
* enable SSL for camera feeds (requested for full conversion to new sous veil system)&lt;br /&gt;
* enable SSL directly via daemon's listening port (i.e., elixir rather than apache)&lt;br /&gt;
* transfer slackbot snapshots to bricolage gateway&lt;br /&gt;
&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
&lt;br /&gt;
Flesh out project documentation&amp;amp;mdash;after fixing existing problems with our Mediawiki server.&lt;br /&gt;
&lt;br /&gt;
* recent edits monitor to trigger cache purge on transcluded Bricodash documentation updates&lt;br /&gt;
* help get mediawiki server 504 issues resolved (currently an obstacle to '''Bricodash''' documentation)&lt;br /&gt;
* broach discussion of absent Copyrights page on Wiki -- do we want to adopt a license??&lt;br /&gt;
* redraft lists in [[Bricodash#Event_Calendars|calendar sections]] as tables&lt;br /&gt;
* flesh out [[:Bricodash/Future|Bricodash Future Ideas]], explaining known requirements for each&lt;br /&gt;
&lt;br /&gt;
=== Cloud Log ===&lt;br /&gt;
&lt;br /&gt;
Incorporate remaining sources into rolling update log shown in lower left-hand corner.&lt;br /&gt;
&lt;br /&gt;
==== User Repositories ====&lt;br /&gt;
* refactor cloud/github to abstract away github/gitlab/etc&lt;br /&gt;
* allow more than most recent pushed repository to be shown&lt;br /&gt;
* add boxrs-based git repositories to Cloud Log panel&lt;br /&gt;
&lt;br /&gt;
==== Other Cloud Services ====&lt;br /&gt;
* Mediawiki &amp;amp;mdash; pending new account requests&lt;br /&gt;
* Zendesk — count of unread/open inquiries&lt;br /&gt;
* Status updates on donations: Patreon, Paypal, Amazon Smile...&lt;br /&gt;
* write up requirements for [[Bricodash/Future#Instagram_Integration|Instagram Integration]]&lt;br /&gt;
* write up requirements for [[Bricodash/Future#Twitter_Integration|Twitter Integration]]&lt;br /&gt;
&lt;br /&gt;
==== Retire IFFF Wiki Updates ====&lt;br /&gt;
* bot to post daily cloud log update to #general on our slack&lt;br /&gt;
&lt;br /&gt;
=== Calendars ===&lt;br /&gt;
&lt;br /&gt;
Incorporate additional calculated and externally sourced calendar events.&lt;br /&gt;
&lt;br /&gt;
==== Fixes ====&lt;br /&gt;
* almanac alt for almanac events&lt;br /&gt;
* add enum of event sources for sorting priority (when same start time)&lt;br /&gt;
* move HM anniversary dates to special .cal that takes precedence on HM calendar (and also appears on NYC)&lt;br /&gt;
* swap out icalendar (buggy repetition exception handling) in favor of true API&lt;br /&gt;
&lt;br /&gt;
==== Calculation ====&lt;br /&gt;
* correctly calculate dates of International Astronomy Day (email out to Astronomical League for better calculation rules)&lt;br /&gt;
* calculate dates of Manhattanhenge (email out to library of American Museum of Natural History for formula)&lt;br /&gt;
* add eclipses and other significant astronomical events to holidays&lt;br /&gt;
* finish fleshing out remainder of movable feasts for [[Bricodash#Community_Calendar|Community Calendar]] (June 2019 forward)&lt;br /&gt;
&lt;br /&gt;
==== Integration ====&lt;br /&gt;
* use google search to find Offside Tavern Meetup events&lt;br /&gt;
* add placeholder events for non-Meetup Offside Tavern events&lt;br /&gt;
* refactor brite search by location routine to common library&lt;br /&gt;
* add nyc mesh, nyc resistor, fat cat fab lab, makerbar, makerspace nyc (SI), futureworks (BK/SI) to [[Bricodash#Community_Calendar|Community Calendar]] &lt;br /&gt;
* also add grow with google (if still in NYC), 2600, Off the Hook (if still broadcasting), blick, michaels, local library branches, makerish meetup events&lt;br /&gt;
&lt;br /&gt;
==== Advanced ====&lt;br /&gt;
* revise #thehaps formatting to provide headers per day&lt;br /&gt;
* embed hotlinks in #thehaps channel event listings&lt;br /&gt;
* concise calendar response for interactive slackbot&lt;br /&gt;
* auto-capture of #thehaps posted events to [[Bricodash/Extra:Calendar]]&lt;br /&gt;
* automation/streamlining tools for cross-posting HM Meetup events to Spingo&lt;br /&gt;
* enable toggling between Welcome header and holiday greetings [[Bricodash#Community_Calendar|^]]&lt;br /&gt;
&lt;br /&gt;
=== Cleanup ===&lt;br /&gt;
&lt;br /&gt;
Remaining features and code maintenance before calling it a major release.&lt;br /&gt;
&lt;br /&gt;
* integrate citymapper API for local subway stations&lt;br /&gt;
* refactor source files from initial launch&lt;br /&gt;
* find owners to adopt data sourcing projects that require more than passive API calls (see sections below)&lt;br /&gt;
* squish and push fork to upstream&lt;br /&gt;
&lt;br /&gt;
=== Upgrades ===&lt;br /&gt;
&lt;br /&gt;
Once built, streamline and rewrite as a truly beautiful application.&lt;br /&gt;
&lt;br /&gt;
* migrate from bricolage to less power-hungry hardware&lt;br /&gt;
* combined community slack calendar to wiki page (requires privacy policy under brite license)&lt;br /&gt;
* reimplement bricolage to run as embedded system under elixir/scenic/nerves&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
* import python directly using beamparticle&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot; style=&amp;quot;border-right:solid 1px #a7d7f9;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; padding-left: 20px; padding-bottom: 10px&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sub-Projects Needing Owners ==&lt;br /&gt;
&lt;br /&gt;
The projects below require an investment of time&amp;amp;mdash;such as active coordination with an API's owners&amp;amp;mdash;to be implemented, but would provide meaningful improvements to the overall feature-set of Bricodash if completed. &lt;br /&gt;
&lt;br /&gt;
At some point the description for each will be fleshed out to provide a full functional specification, together with an exploration of the requirements to move forward. For now, capsule bullet points serve as place holders. For more information, touch base with [[User:Beadsland]].&lt;br /&gt;
&lt;br /&gt;
=== Instagram Integration ===&lt;br /&gt;
&lt;br /&gt;
* add Instagram to Weird Photos and HM Cloud Log &amp;amp;mdash; this requires creating pages on Facebook under the new Graph API&lt;br /&gt;
&lt;br /&gt;
=== Twitter Integration ===&lt;br /&gt;
&lt;br /&gt;
* add Twitter to Weird Photos and HM Cloud Log &amp;amp;mdash; this requires emailing to get a dev account, then honoring Twitter's [https://developer.twitter.com/en/developer-terms/display-requirements.html Display Requirements]&lt;br /&gt;
&lt;br /&gt;
=== Slack Calendar Response Bot ===&lt;br /&gt;
&lt;br /&gt;
* interactive bot response to &amp;quot;What's happening?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Draft a Privacy Policy ===&lt;br /&gt;
&lt;br /&gt;
* draft privacy policy (per API reqs for public sites)&lt;br /&gt;
&lt;br /&gt;
=== Buzzer-Activated IR Remote ===&lt;br /&gt;
&lt;br /&gt;
Additionally, there are plans to tie a ceiling-mounted IR remote into the intercom buzzer to toggle inputs on the TV. &lt;br /&gt;
The idea would be that when the buzzer sounds, the remote would switch from the dashboard (on Chromecast) to a dedicated &lt;br /&gt;
full screen camera input.  After a delay the input would be toggled back to the Chromecast-hosted dashboard.  Such an&lt;br /&gt;
arrangement would free up the dashboard screen real-estate currently devoted to an around-the-clock camera feed&amp;amp;mdash;as, realistically, the only time one needs a camera feed is when a visitor is buzzing to be let in.&lt;br /&gt;
&lt;br /&gt;
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?&lt;br /&gt;
&lt;br /&gt;
* integrate with custom buzzer-activated IR remote hack&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Beadsland</name></author>
	</entry>
	<entry>
		<id>https://wiki.hackmanhattan.com/index.php?title=BindSight&amp;diff=7364</id>
		<title>BindSight</title>
		<link rel="alternate" type="text/html" href="https://wiki.hackmanhattan.com/index.php?title=BindSight&amp;diff=7364"/>
		<updated>2019-10-15T09:55:53Z</updated>

		<summary type="html">&lt;p&gt;Beadsland: /* Wrap-up */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span style=&amp;quot;white-space: nowrap&amp;quot;&amp;gt;[[File:Github_icon.jpg|25px]] [https://github.com/beadsland/bindsight Github Repository]&amp;lt;/span&amp;gt; |&lt;br /&gt;
&amp;lt;span style=&amp;quot;white-space: nowrap&amp;quot;&amp;gt;[[File:Bricodash_screenshot.png|35px]] A [[Bricodash]] Sub-Project&amp;lt;/span&amp;gt; |&lt;br /&gt;
&amp;lt;span style=&amp;quot;white-space: nowrap&amp;quot;&amp;gt;[[File:Beads Land-Trujillo.jpg|20px]] A [[User:beadsland|Beadsland]] Creation&amp;lt;/span&amp;gt; __NOTOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table width=&amp;quot;100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;58%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;''Concurrent, extensible, frame-scrubbing webcam gateway.''&lt;br /&gt;
&lt;br /&gt;
Web API service to stream doorcam and spacecam to Bricodash and public gateway, respectively, while tracking activity and performance of these and other webcams at the space. Will be more efficient and reliable than spawning PHP and Python processes on an as-they-come basis. &lt;br /&gt;
&lt;br /&gt;
Written in Elixir, will be taking advantage of various new features of the language, building on the strengths of Erlang/OTP, including &amp;lt;code&amp;gt;[https://elixir-lang.org/blog/2019/02/25/mint-a-new-http-library-for-elixir/ Mint]&amp;lt;/code&amp;gt; (web client), &amp;lt;code&amp;gt;[https://elixir-lang.org/blog/2016/07/14/announcing-genstage/ GenStage]&amp;lt;/code&amp;gt; (backpressure event pipelines) and ultimately &amp;lt;code&amp;gt;[https://hexdocs.pm/mix/Mix.Tasks.Release.html mix release]&amp;lt;/code&amp;gt; (build-time deployment packaging).&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
Presently, webcam-related features of Bricodash are provided on a two-prong basis.&lt;br /&gt;
&lt;br /&gt;
=== Spacecam ===&lt;br /&gt;
&lt;br /&gt;
The public-facing [[Camera]] showing current activity in the space is presently relayed via a PHP script. This script is configured to relay various HM cameras, including those for the exterior door, the CR-10 and (when online) the hydroponics lab. In the case of the spacecam, all relayed requests are tracked to feed the ''sous veil'' [[Bricodash#Creepy_Eyeball|Creepy Eyeball]]: snapshot requests touch a file identifying the requesting pid; stream requests trigger touch two files, one on initiation of the relay, one at process termination. The Creepy Eyeball feature uses the modification times on all such files to transition the opacity of the eyeball animated gif that indicates observers are viewing the camera feed.&lt;br /&gt;
&lt;br /&gt;
The Apache server hosting the Bricodash back-end imposes a cap on the number of executing PHP processes, returning a 504 Gateway Timeout error when this cap is exceeded. Under normal usage, this isn't an issue, but PHP scripts are meant to assemble dynamic content and deliver it, not to provide a data stream as a continuously running process of indeterminate duration. The current setup is thus not ideal.&lt;br /&gt;
&lt;br /&gt;
A legacy gateway for the same [[Camera]] remains on [[Bo.x0.rs]]. When users of our Slack type &amp;quot;Who's at the space?&amp;quot;, the snapshot that our resident slackbot posts in response is drawn from the Bo.x0.rs gateway. Bo.x0.rs also tracks camera access, exposing it via the ''sousveillance'' Chrome notification mechanism. However, the ''sous veil'' Creepy Eyeball and the ''sousveillance'' Chrome notifications system do not, at present, interact or share information.&lt;br /&gt;
&lt;br /&gt;
=== Doorcam ===&lt;br /&gt;
&lt;br /&gt;
Bricodash displays a feed of the exterior door camera. Rather than the PHP script, the doorcam display is drawn from a Python3 CGI script.&lt;br /&gt;
&lt;br /&gt;
Our current setup for the door camera feed is prone to stalling and data corruption. The CGI script inspects individual frames, discarding those that are revealed to be invalid JPG format or, while valid, have corruption that renders as a grey field on the lower half of the image. A Slack webhook regime has also been explored for tracking stalling of the feed. However, even after dropping corrupt frames between the webcam and the server, additional frame corruption has appeared between server and client. Thus client-side Javascript has also been implemented to drop bad frames and trigger webhooks on stalls. Performance of the feed was such that the webhooks proved too noisy and so it is currently disabled.&lt;br /&gt;
&lt;br /&gt;
Due to hardware limitation of both Bricodash clients, the standard webcam MJPEG push stream proved too much of a firehose to accept without risk of the client lagging or freezing entirely. For this reason, the camera feed on both clients is implemented not as a stream but a throttled frames-per-second snapshot flipbook. Initially, this was managed by the CGI script. However, with the introduction of Javascript-invoked Slack webhooks to detect stalls and corruption client-side, the feed is now an entirely pull-based snapshot flipbook. &lt;br /&gt;
&lt;br /&gt;
These flipbooks are executed as upward to 10 snapshot requests per second, from each client, all of which are relayed directly to the webcam. It is possible that this has lead to greater instability on the external door camera that could be resolved by extracting frames from a single stream rather than pounding the server with near two dozen requests per second.&lt;br /&gt;
&lt;br /&gt;
The CGI script also tracks delays on flipbook snapshot requests from the Bricodash clients, reading such delays as evidence of a stalled client. This triggers a restart of the Bricodash client on the Chromecast, and would trigger a webhook alert for the pishop client (if webhooks were not currently disabled). This trigger does not distinguish between delays in flipbook snapshot requests due to stalls of the client and delays due to timeouts on the client while waiting for a stalled doorcam feed. Which means that stalls on the webcam can presently result is a restart of the Chromecast that is not, itself, stalled.&lt;br /&gt;
&lt;br /&gt;
== Functional Specification ==&lt;br /&gt;
&lt;br /&gt;
BindSight will replace both the PHP and Python gateways, and will be designed to allow for integration between the ''sous veil'' Creepy Eyeball observer-tracking system and the Bo.x0.rs ''sousveillance'' view-tracking and Chrome notifications system.&lt;br /&gt;
&lt;br /&gt;
Features will include:&lt;br /&gt;
* a GenStage pipeline to broadcast from a single stream from each camera source&lt;br /&gt;
* concurrent frame corruption checking to minimize latency&lt;br /&gt;
* high performance under stream and flipbook stress testing&lt;br /&gt;
* plug-in architecture for performance monitoring and notifications&lt;br /&gt;
* running as an independent system service (daemon)&lt;br /&gt;
* configurable support for using domain-specific SSL cert&lt;br /&gt;
* distributed plug-in for integration with Bo.x0.rs&lt;br /&gt;
&lt;br /&gt;
BindSight will leverage Elixir's [https://hexdocs.pm/gen_stage/GenStage.html GenStage] behavior to convert a single MJPEG stream into a series of frames that will then be served as any number of snapshots or reconstituted MJPEG streams on demand. This will be implemented as two half-pipelines, or ''spigots''. For each webcam, as ''slurpspigot'' will consume an MJPEG stream, releasing it as individual frames, initiate frame corruption checking, track camera performance, and broadcast to sinks. For each client request, a ''spewspigot'' will subscribe to the appropriate slurpspigot, scrub out corrupt frames, watermark the last available image in the event of a camera timeout, and serve the resulting snapshot or stream via HTTPS.&lt;br /&gt;
&lt;br /&gt;
Custom plug-ins (including several local plug-ins) will be installable per camera (slurpspigot) or per client/request (spewspigot). These will operate out-of-band as GenStage processes running concurrently with the throughput of the main pipeline. Likewise, frame corruption checks will run asynchronously, allowing frames to be passed down the pipeline independent of JPEG decompression and pixel inspection. Concurrency is the core strength of the Erlang virtual machine ([https://blog.stenmans.org/theBeamBook/#CH-BEAM BEAM]), which is designed to obtain exceptional performance by spinning up large numbers of lightweight threads.&lt;br /&gt;
&lt;br /&gt;
Erlang, and thus Elixir, is also designed for distributed systems. We will take advantage of this for integration with Bo.x0.rs, relying on Erlang's native node-discovery to manage message passing between ''souseveillance'' and ''sous veil'', despite these systems running on different hardware.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot; style=&amp;quot;border-right:solid 1px #a7d7f9;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;40%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; padding-left: 20px; padding-bottom: 10px&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current Project Plan ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Refactoring ====&lt;br /&gt;
* no reason to split on doubledash&lt;br /&gt;
* reconfigure profile to run when profile_seconds &amp;gt; 0&lt;br /&gt;
* refactor adhere/hold to own Adhere genstage&lt;br /&gt;
* rebalance chunk load to other genstages&lt;br /&gt;
* digest: refactor handle_events/3 case statement to function clauses&lt;br /&gt;
* digest: drop EOL determination&lt;br /&gt;
* digest: refactor further if possible&lt;br /&gt;
&lt;br /&gt;
==== Error Recovery ====&lt;br /&gt;
* deferred spigot spinup in event camera offline at startlink&lt;br /&gt;
* fix EOL check to verify in case of dropped bytes&lt;br /&gt;
* test logging on down camera&lt;br /&gt;
* don't nag when connection down (periodic warn)&lt;br /&gt;
* ensure recovery when source stream fails&lt;br /&gt;
&lt;br /&gt;
==== Validation ====&lt;br /&gt;
* review whether batch requires task&lt;br /&gt;
* consumer-producer in spew to filter out :corrupt/:greytoss/fail messages&lt;br /&gt;
* retool Validate stage to send tuple {:ok, binary} or {_status, binary}&lt;br /&gt;
* retool Digest stage to sent tuple {:ok, binary} or {:fail, error}&lt;br /&gt;
* retool polling functions to send tuple {:fail, error} when such occur&lt;br /&gt;
* consumer-producer in slurp to introduce :corrupt/:greytoss on :test stream&lt;br /&gt;
&lt;br /&gt;
==== Deep Validation ====&lt;br /&gt;
* implement greytoss checking&lt;br /&gt;
* replace async batching with task/agent batching, for JIT evaluation&lt;br /&gt;
* watermark with source timestamp&lt;br /&gt;
* configurable agpl watermark&lt;br /&gt;
* provide for timeout watermarking&lt;br /&gt;
&lt;br /&gt;
==== Advanced ====&lt;br /&gt;
* review supervision tree for batch tasks &amp;amp; agents&lt;br /&gt;
* review memory usage to mitigate ProcBin leaks&lt;br /&gt;
* integrate certificate used by Apache&lt;br /&gt;
* configure to launch as daemon&lt;br /&gt;
* bootstrap to obtain dependencies and compile cold&lt;br /&gt;
&lt;br /&gt;
==== Robustness ====&lt;br /&gt;
* type guards on get_env&lt;br /&gt;
* @impl on all OTP callbacks&lt;br /&gt;
* type guards all public functions&lt;br /&gt;
* type checks on unstructured opts&lt;br /&gt;
* typespecs and dialyze throughout&lt;br /&gt;
&lt;br /&gt;
==== Subsystem Integration ====&lt;br /&gt;
* slurp snoop to track performance on each camera&lt;br /&gt;
* slurp snoop to webhook on corruption/timeouts&lt;br /&gt;
* spew snoop to swap out CGI for upt/chk touch points&lt;br /&gt;
* spew snoop to track client fps performance&lt;br /&gt;
&lt;br /&gt;
==== Sousveillance Integration ====&lt;br /&gt;
* spew snoop to swap out PHP for sous veil touch points&lt;br /&gt;
* distributed sous veil client for cross-platform data exchange&lt;br /&gt;
* integration with sousveillance watch-back system&lt;br /&gt;
&lt;br /&gt;
==== Wrap-up ====&lt;br /&gt;
* add robots.txt route&lt;br /&gt;
* configure public ipcam as :test&lt;br /&gt;
* flesh out documentation&lt;br /&gt;
* investigate periodic multi-hit events:  server severing connections prematurely? badly behaved client device?&lt;br /&gt;
* investigate specific issue of pishop launch causing multi-hit failures on all other clients&lt;br /&gt;
* stress test&lt;br /&gt;
* explore sobelow security checking&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Beadsland</name></author>
	</entry>
	<entry>
		<id>https://wiki.hackmanhattan.com/index.php?title=Bricodash/Future&amp;diff=7363</id>
		<title>Bricodash/Future</title>
		<link rel="alternate" type="text/html" href="https://wiki.hackmanhattan.com/index.php?title=Bricodash/Future&amp;diff=7363"/>
		<updated>2019-10-15T09:48:20Z</updated>

		<summary type="html">&lt;p&gt;Beadsland: /* BindSight :2020 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
''See:'' &amp;lt;span style=&amp;quot;white-space: nowrap&amp;quot;&amp;gt;[[File:Bricodash_screenshot.png|35px]] [[Bricodash]] &amp;lt;/span&amp;gt; for project details&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table width=&amp;quot;100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;48%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current Tasks Outstanding ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Maintenance ===&lt;br /&gt;
&lt;br /&gt;
* carry italics over to thehaps&lt;br /&gt;
* brite module throwing 401 errors (but still working???)&lt;br /&gt;
* wildly divergent calculated dates for diwali year over year&lt;br /&gt;
&lt;br /&gt;
=== BindSight :2020 ===&lt;br /&gt;
&lt;br /&gt;
''See also:'' [[BindSight]] project page&lt;br /&gt;
&lt;br /&gt;
{{:BindSight}}&lt;br /&gt;
&lt;br /&gt;
=== Webhook Notifications ===&lt;br /&gt;
&lt;br /&gt;
Javascript client-side triggers to deliver messages to our Slack channels to provide alerts when the camera feed or client devices stall.&lt;br /&gt;
&lt;br /&gt;
* migrate sleep macro to general purpose library&lt;br /&gt;
* migrate from webhooks integration to webhooks feature of bricodash app (and update notice)&lt;br /&gt;
* server-side webhook on stall of any given device&lt;br /&gt;
* when wonkiness addressed: downthrottle chromecast reboots to 1x per day; stream swap-in to never&lt;br /&gt;
&lt;br /&gt;
=== Server ===&lt;br /&gt;
&lt;br /&gt;
Standardize Web server setup and fully integrate BindSight.&lt;br /&gt;
&lt;br /&gt;
* migrate to standard web port (now that relayd installed on router)&lt;br /&gt;
* configure X-Forwarded-For logging in apache&lt;br /&gt;
* enable SSL for camera feeds (requested for full conversion to new sous veil system)&lt;br /&gt;
* enable SSL directly via daemon's listening port (i.e., elixir rather than apache)&lt;br /&gt;
* transfer slackbot snapshots to bricolage gateway&lt;br /&gt;
&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
&lt;br /&gt;
Flesh out project documentation&amp;amp;mdash;after fixing existing problems with our Mediawiki server.&lt;br /&gt;
&lt;br /&gt;
* recent edits monitor to trigger cache purge on transcluded Bricodash documentation updates&lt;br /&gt;
* help get mediawiki server 504 issues resolved (currently an obstacle to '''Bricodash''' documentation)&lt;br /&gt;
* broach discussion of absent Copyrights page on Wiki -- do we want to adopt a license??&lt;br /&gt;
* redraft lists in [[Bricodash#Event_Calendars|calendar sections]] as tables&lt;br /&gt;
* flesh out [[:Bricodash/Future|Bricodash Future Ideas]], explaining known requirements for each&lt;br /&gt;
&lt;br /&gt;
=== Cloud Log ===&lt;br /&gt;
&lt;br /&gt;
Incorporate remaining sources into rolling update log shown in lower left-hand corner.&lt;br /&gt;
&lt;br /&gt;
==== User Repositories ====&lt;br /&gt;
* refactor cloud/github to abstract away github/gitlab/etc&lt;br /&gt;
* allow more than most recent pushed repository to be shown&lt;br /&gt;
* add boxrs-based git repositories to Cloud Log panel&lt;br /&gt;
&lt;br /&gt;
==== Other Cloud Services ====&lt;br /&gt;
* Mediawiki &amp;amp;mdash; pending new account requests&lt;br /&gt;
* Zendesk — count of unread/open inquiries&lt;br /&gt;
* Status updates on donations: Patreon, Paypal, Amazon Smile...&lt;br /&gt;
* write up requirements for [[Bricodash/Future#Instagram_Integration|Instagram Integration]]&lt;br /&gt;
* write up requirements for [[Bricodash/Future#Twitter_Integration|Twitter Integration]]&lt;br /&gt;
&lt;br /&gt;
==== Retire IFFF Wiki Updates ====&lt;br /&gt;
* bot to post daily cloud log update to #general on our slack&lt;br /&gt;
&lt;br /&gt;
=== Calendars ===&lt;br /&gt;
&lt;br /&gt;
Incorporate additional calculated and externally sourced calendar events.&lt;br /&gt;
&lt;br /&gt;
==== Fixes ====&lt;br /&gt;
* almanac alt for almanac events&lt;br /&gt;
* add enum of event sources for sorting priority (when same start time)&lt;br /&gt;
* move HM anniversary dates to special .cal that takes precedence on HM calendar (and also appears on NYC)&lt;br /&gt;
* swap out icalendar (buggy repetition exception handling) in favor of true API&lt;br /&gt;
&lt;br /&gt;
==== Calculation ====&lt;br /&gt;
* correctly calculate dates of International Astronomy Day (email out to Astronomical League for better calculation rules)&lt;br /&gt;
* calculate dates of Manhattanhenge (email out to library of American Museum of Natural History for formula)&lt;br /&gt;
* add eclipses and other significant astronomical events to holidays&lt;br /&gt;
* finish fleshing out remainder of movable feasts for [[Bricodash#Community_Calendar|Community Calendar]] (June 2019 forward)&lt;br /&gt;
&lt;br /&gt;
==== Integration ====&lt;br /&gt;
* use google search to find Offside Tavern Meetup events&lt;br /&gt;
* add placeholder events for non-Meetup Offside Tavern events&lt;br /&gt;
* refactor brite search by location routine to common library&lt;br /&gt;
* add nyc mesh, nyc resistor, fat cat fab lab, makerbar, makerspace nyc (SI), futureworks (BK/SI) to [[Bricodash#Community_Calendar|Community Calendar]] &lt;br /&gt;
* also add grow with google (if still in NYC), 2600, Off the Hook (if still broadcasting), blick, michaels, local library branches, makerish meetup events&lt;br /&gt;
&lt;br /&gt;
==== Advanced ====&lt;br /&gt;
* revise #thehaps formatting to provide headers per day&lt;br /&gt;
* embed hotlinks in #thehaps channel event listings&lt;br /&gt;
* concise calendar response for interactive slackbot&lt;br /&gt;
* auto-capture of #thehaps posted events to [[Bricodash/Extra:Calendar]]&lt;br /&gt;
* automation/streamlining tools for cross-posting HM Meetup events to Spingo&lt;br /&gt;
* enable toggling between Welcome header and holiday greetings [[Bricodash#Community_Calendar|^]]&lt;br /&gt;
&lt;br /&gt;
=== Cleanup ===&lt;br /&gt;
&lt;br /&gt;
Remaining features and code maintenance before calling it a major release.&lt;br /&gt;
&lt;br /&gt;
* integrate citymapper API for local subway stations&lt;br /&gt;
* refactor source files from initial launch&lt;br /&gt;
* find owners to adopt data sourcing projects that require more than passive API calls (see sections below)&lt;br /&gt;
* squish and push fork to upstream&lt;br /&gt;
&lt;br /&gt;
=== Upgrades ===&lt;br /&gt;
&lt;br /&gt;
Once built, streamline and rewrite as a truly beautiful application.&lt;br /&gt;
&lt;br /&gt;
* migrate from bricolage to less power-hungry hardware&lt;br /&gt;
* combined community slack calendar to wiki page (requires privacy policy under brite license)&lt;br /&gt;
* reimplement bricolage to run as embedded system under elixir/scenic/nerves&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
* import python directly using beamparticle&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot; style=&amp;quot;border-right:solid 1px #a7d7f9;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; padding-left: 20px; padding-bottom: 10px&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sub-Projects Needing Owners ==&lt;br /&gt;
&lt;br /&gt;
The projects below require an investment of time&amp;amp;mdash;such as active coordination with an API's owners&amp;amp;mdash;to be implemented, but would provide meaningful improvements to the overall feature-set of Bricodash if completed. &lt;br /&gt;
&lt;br /&gt;
At some point the description for each will be fleshed out to provide a full functional specification, together with an exploration of the requirements to move forward. For now, capsule bullet points serve as place holders. For more information, touch base with [[User:Beadsland]].&lt;br /&gt;
&lt;br /&gt;
=== Instagram Integration ===&lt;br /&gt;
&lt;br /&gt;
* add Instagram to Weird Photos and HM Cloud Log &amp;amp;mdash; this requires creating pages on Facebook under the new Graph API&lt;br /&gt;
&lt;br /&gt;
=== Twitter Integration ===&lt;br /&gt;
&lt;br /&gt;
* add Twitter to Weird Photos and HM Cloud Log &amp;amp;mdash; this requires emailing to get a dev account, then honoring Twitter's [https://developer.twitter.com/en/developer-terms/display-requirements.html Display Requirements]&lt;br /&gt;
&lt;br /&gt;
=== Slack Calendar Response Bot ===&lt;br /&gt;
&lt;br /&gt;
* interactive bot response to &amp;quot;What's happening?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Draft a Privacy Policy ===&lt;br /&gt;
&lt;br /&gt;
* draft privacy policy (per API reqs for public sites)&lt;br /&gt;
&lt;br /&gt;
=== Buzzer-Activated IR Remote ===&lt;br /&gt;
&lt;br /&gt;
Additionally, there are plans to tie a ceiling-mounted IR remote into the intercom buzzer to toggle inputs on the TV. &lt;br /&gt;
The idea would be that when the buzzer sounds, the remote would switch from the dashboard (on Chromecast) to a dedicated &lt;br /&gt;
full screen camera input.  After a delay the input would be toggled back to the Chromecast-hosted dashboard.  Such an&lt;br /&gt;
arrangement would free up the dashboard screen real-estate currently devoted to an around-the-clock camera feed&amp;amp;mdash;as, realistically, the only time one needs a camera feed is when a visitor is buzzing to be let in.&lt;br /&gt;
&lt;br /&gt;
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?&lt;br /&gt;
&lt;br /&gt;
* integrate with custom buzzer-activated IR remote hack&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Beadsland</name></author>
	</entry>
	<entry>
		<id>https://wiki.hackmanhattan.com/index.php?title=User:Beadsland/Nesting&amp;diff=7362</id>
		<title>User:Beadsland/Nesting</title>
		<link rel="alternate" type="text/html" href="https://wiki.hackmanhattan.com/index.php?title=User:Beadsland/Nesting&amp;diff=7362"/>
		<updated>2019-10-11T04:23:00Z</updated>

		<summary type="html">&lt;p&gt;Beadsland: /* Office Chair Repair */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Nesting =&lt;br /&gt;
&lt;br /&gt;
''Various DIY/smarthome and other projects about (or related to) the domicile.''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; padding-left: 20px; padding-bottom: 10px&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Outreach ==&lt;br /&gt;
&lt;br /&gt;
There's been some discussion of pursuing more active outreach and membership development for the space, including:&lt;br /&gt;
&lt;br /&gt;
=== Scannable Code for Donations Flyer ===&lt;br /&gt;
&lt;br /&gt;
Want to redo the donations notice at the space to include a QR Code or two to allow folk to quickly make donations from their mobile device if so inclined.&lt;br /&gt;
&lt;br /&gt;
=== Creating a More Comfortable Environment ===&lt;br /&gt;
&lt;br /&gt;
First step we're considering tackling is the kegerator/dishrack area. Ideas on the table:&lt;br /&gt;
&lt;br /&gt;
Installing trays within the kegerator to store bottled beverages. There has been standing water at the bottom of the kegerator at times (whether due to a leak in the water keg or condensation), so trays would make things a bit less unpleasantly damp on retrieval. Related to this, we ought to have some sort of signage that makes clear what is on offer for the sake of visitors at such time as informed members are not present to explain what's what.&lt;br /&gt;
&lt;br /&gt;
We're also examining options for rehanging or replacing the bathroom door to free up space on the bathroom wall now behind the swing of the door. The idea would be to install shelving on that wall for drying racks and dish storage.&lt;br /&gt;
&lt;br /&gt;
=== Tag-Team Community Cross-Pollination ===&lt;br /&gt;
&lt;br /&gt;
Going to conduct a survey to identify progressive-adjacent Meetup groups and other local orgs that we might want to develop ties with. The goal would be to find likeminded subject domain experts who might be interested in sharing knowledge and expertise within the HM community&amp;amp;mdash;fostering such relationships may also serve to bring new members to HM who might otherwise not have found us absent such outreach. Several members have expressed an interest in helping with this initiative.&lt;br /&gt;
&lt;br /&gt;
Relatedly, am wanting to tap the broader (even global) hackerspace/makerspace community to bring in folk to offer talks or presentations on the history of the hacker, maker and DIY movements.&lt;br /&gt;
&lt;br /&gt;
== Maintenance ==&lt;br /&gt;
&lt;br /&gt;
=== Crafts Event Prep ===&lt;br /&gt;
&lt;br /&gt;
Flyers for October and November are due. Craft ideas research: mask making (for October); doll making (to find a use for many dozens of knitted dolly caps). Need to do an audit of our craft supplies and prepare orders to restock.&lt;br /&gt;
&lt;br /&gt;
=== Paperwork Backlog ===&lt;br /&gt;
&lt;br /&gt;
Have been sorely derelict on a heap of household and client bookkeeping and filing, while immersed in other recent making projects. This includes scheduling of long-overdue appointments and restocking our household pantry. Made some significant headway on this, might as well keep ball rolling.&lt;br /&gt;
&lt;br /&gt;
=== Roomba Repair ===&lt;br /&gt;
&lt;br /&gt;
Cliff sensors have been successfully disabled, and original left wheel reinstalled. Still unhappy with side brush performance&amp;amp;mdash;and will return to this eventually&amp;amp;mdash;but presently just glad to have this robot back in service.&lt;br /&gt;
&lt;br /&gt;
=== Darn Socks ===&lt;br /&gt;
&lt;br /&gt;
They're actually quite nice socks, but yeah, they've got holes. Quite a few of them do, darnit.&lt;br /&gt;
&lt;br /&gt;
== Hackerspace ==&lt;br /&gt;
&lt;br /&gt;
=== Astronomical Device ===&lt;br /&gt;
&lt;br /&gt;
One of our members has a telescope rig powered by a Raspberry Pi, but wants to tweak the UI running on the Raspbian desktop. Have promised to help them figure out what needs reconfiguring next time we're both in the space.&lt;br /&gt;
&lt;br /&gt;
=== Office Chair Repair ===&lt;br /&gt;
&lt;br /&gt;
Having already repaired three other office chairs of various designs and defects, another chair presents itself for fixing.  This time, it's an old brown chair that is already an heirloom hack. A some time in the past, the bottom of the seat has been replaced/augmented with a wooden construction that appears to secure the seat cushion to the caster-base column.  Since that time, the bolts holding this wooden bottom to the cushion have come loose on the front corners. A user who naively reached under the front of the chair to lift and move it, can accidentally catch their hand between the cushion and the wooden bottom.&lt;br /&gt;
&lt;br /&gt;
The chair currently has the word &amp;quot;NO&amp;quot; inscribed in blue tape across the top of the cushion seat, to warn users, if not that they might get bitten by the chair, then at least that they ought to exercise caution.&lt;br /&gt;
&lt;br /&gt;
On best examination, it appears the repair will involve removing the wooden bottom from the cushion, and then resecuring or replacing nuts that had previously held the wooden base bolted to the cushion seat.&lt;br /&gt;
&lt;br /&gt;
==== Steelcase Leap Chair ====&lt;br /&gt;
&lt;br /&gt;
The cylinder button began getting depressed unintentionally again. PLA+ failed in about 30 days&amp;amp;mdash;the straddle legs snapped off rather than the washer ring failing due to compression. Dug out the old spacer and replaced with another 70% infill PLA, pending the creation of a molded graphite replacement. Rising is a bit stiff and requires multiple pulls on lever, but does then stay up until released. Will monitor. (as of 10/11/19)&lt;br /&gt;
&lt;br /&gt;
=== Member Storage Audit ===&lt;br /&gt;
&lt;br /&gt;
Planning to go through our member storage shelves, identifying left-overs from former members, and moving less actively used bins to higher shelves, to better facilitate storage needs of new members in the future.&lt;br /&gt;
&lt;br /&gt;
== Roommmate Tech/Organizing Consult ==&lt;br /&gt;
&lt;br /&gt;
* electronic birthday calendaring&lt;br /&gt;
* charitable giving analysis&lt;br /&gt;
* pruning their electronic task list&lt;br /&gt;
* research piano instruction apps for android&lt;br /&gt;
* getting them up and running to learn the ins and outs of using video conferencing tools&lt;br /&gt;
* organizing teaching materials filing system&lt;br /&gt;
* substitute teaching go pack strategy&lt;br /&gt;
* prepping unique favor packs for Halloweens&lt;br /&gt;
&lt;br /&gt;
== DIY ==&lt;br /&gt;
&lt;br /&gt;
=== Dashboard Door Buzzer Integration ===&lt;br /&gt;
&lt;br /&gt;
Wanting to wire a single-board device in to the building intercom system to detect the door buzzer. This will allow us to use the dashboard real-estate for other displays than the door camera, while still switching back to the camera swiftly when someone is buzzing for entry.&lt;br /&gt;
&lt;br /&gt;
=== Household Repairs ===&lt;br /&gt;
&lt;br /&gt;
Various small and large projects have been waiting in the wings, including:&lt;br /&gt;
* Appliances&lt;br /&gt;
** rebuild/redesign Lego water fountain&lt;br /&gt;
** repair of a glitchy flat-screen monitor&lt;br /&gt;
** replacing broken window blinds&lt;br /&gt;
** retouching nylon on dishwasher racks&lt;br /&gt;
* Space&lt;br /&gt;
** repairing vinyl floor in kitchen&lt;br /&gt;
** securing a set of shoe holder mounts&lt;br /&gt;
** refurbishing an old hammer drill&lt;br /&gt;
** ceiling hook over bed&lt;br /&gt;
* Sewing&lt;br /&gt;
** replace wrights on lampshade of a standing lamp&lt;br /&gt;
** darning/patching bedsheets&lt;br /&gt;
** hem favorite scarf&lt;br /&gt;
&lt;br /&gt;
=== Installing Storage ===&lt;br /&gt;
&lt;br /&gt;
Once repairs are out of the way, a number of household storage projects are on the agenda, including: a corner bar for hanging clothes and installing rack shelving in our kitchen&lt;br /&gt;
&lt;br /&gt;
Completed: Bathroom storage tower has been cut to accommodate shut off valves, urethane and fresh paint applied, and installed in its new home.&lt;br /&gt;
&lt;br /&gt;
=== Custom Craft Material Dollies ===&lt;br /&gt;
&lt;br /&gt;
Our community crafts group has accumulated more donations than could every easily fit in our existing carts. We've resorted to lugging surplus around in oversize retail shopping bags. Moreover, the carts we do have aren't for outdoors use. They're fine for moving materials from our apartment to the community room the same building, but if we want (or need) to set up for an event in another building, the casters are not equipped for even well-maintained sidewalks, and we tend to see drawers slide open or and containers slide off shelves and topple to the ground as we trundle along on sloped grades. Finally, we've got some craft materials, namely yarn, fabrics and collage materials, that really need to be in larger containers that display their contents in an inviting way without having to unpack and repack those materials for each session.&lt;br /&gt;
&lt;br /&gt;
Thus, there are three goals. First, to design a pair of dollies with custom, quick-assemble cage frameworks. The idea is that our existing craft carts could be lifted onto the dollies, providing heavy duty casters to get around outdoors, and then hemmed in by bars or slats that would keep drawers and shelf contents secure pending arrival at a destination. Providing for cover against rain or other weather would be a bonus. Second, to design a similar dolly for stacking larger containers than we currently aren't using, but would serve for bulk craft materials. Third, to design containers for bulk craft materials that quickly deploy as inviting displays of those same materials on site.&lt;br /&gt;
&lt;br /&gt;
== Technology ==&lt;br /&gt;
&lt;br /&gt;
=== Data Processing Tower ===&lt;br /&gt;
&lt;br /&gt;
The Tellurium project is proving very CPU-intensive. Generating a batch of 99 one-of-a-kind bespoke handbills easily takes six hours for my current computer to generate, plus another hour of post-processing, and then two hours of printer time. Further, the new toolchain (once gdp spelunking resolves current segfaults) will rely heavily on NLP processing, where parsing for word counts is already proving computation intensive.&lt;br /&gt;
&lt;br /&gt;
Going to explore building out a custom box to handle chugging through these processes. In addition to building the toolchain to leverage multi-threading and multi-process techniques, as appropriate, am also considering the possibility of pushing some computations to GPU. The actual assembly of each word cloud (placing objects on a two-dimensional field) seems especially suited to GPU-based computation. This, of course, would require learning something about GPU-based solutions and figuring out what libraries exist or could be rewritten for GPU before specing out the new machine build.&lt;br /&gt;
&lt;br /&gt;
=== Network Management ===&lt;br /&gt;
&lt;br /&gt;
The various electronic components on the table-level of my IKEA-built standing desk have become an unmanageable tangle. The plan is to build a pair of LackRack component mounts under the standing desk and transfer various Ethernet and power connected devices thereto. As part of this process, will build out a heat ducting system to channel air from below the desk to the intake vent of the convector a few feet away — taking advantage of the chiller cooled pipes that feed the convector in the summer.&lt;br /&gt;
&lt;br /&gt;
Also want to run Ethernet to the back of our apartment, rather than rely on spotty performance of EoP extender currently in use. This will support the development of audio notification relays planned throughout the apartment for telephony and other applications listed below. Also, gonna set up a Pi as a wifi router for our wifi-only printer, as it has become a nuisance rebooting the main router every time the printer loses connectivity with the network.&lt;br /&gt;
&lt;br /&gt;
=== Sleep-Hygenic Lighting ===&lt;br /&gt;
&lt;br /&gt;
Intending to replace current lighting fixtures with programmable smart bulbs and a custom driver that will adjust the level of blue light throughout the day, in accordance with my 2nd/graveyard-shift work cycle. This includes the appliance bulb in the refrigerator, so that one isn't treated to a blast of bright white light when scrounging a &amp;quot;midnight&amp;quot; snack. Also part of this project will be running motion-detector activated red LEDs along the hallways, to allow my roommate to get around early morning without disturbing my sleep by flipping on room lighting.&lt;br /&gt;
&lt;br /&gt;
The first step will be to set up a dedicated console-cable managed wifi router and management hub that will allow for control of smart bulbs without exposing those devices to the Internet.&lt;br /&gt;
&lt;br /&gt;
== Audio Computing ==&lt;br /&gt;
&lt;br /&gt;
===Telephony===&lt;br /&gt;
* integrated caller ID announcer&lt;br /&gt;
* mode-switchable caller ID blacklist/whitelist&lt;br /&gt;
&lt;br /&gt;
===Appliances===&lt;br /&gt;
* whistle-activated battery-powered nebulizer&lt;br /&gt;
* whistle/tone detector/alterter network for hearing impaired&lt;br /&gt;
* rice cooker setup detector&lt;br /&gt;
* no-brainer portable stereo media player&lt;br /&gt;
&lt;br /&gt;
===Advanced===&lt;br /&gt;
* multi-output audio stream relay&lt;br /&gt;
* nighttime noise machine lashup&lt;br /&gt;
* research hearing loop tech&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous ==&lt;br /&gt;
* mezzanine rack for a compact dishwasher&lt;br /&gt;
* DIY kitchen counter LED hydroponics enclosure&lt;br /&gt;
* intensive file cabinet purge&lt;br /&gt;
* paint apartment&lt;br /&gt;
* empty storage unit&lt;br /&gt;
* guinea pig hutch with integrated hydroponic garden&lt;br /&gt;
* learn to bake&lt;br /&gt;
* learn to ride a bike&lt;br /&gt;
* learn ASL&lt;/div&gt;</summary>
		<author><name>Beadsland</name></author>
	</entry>
	<entry>
		<id>https://wiki.hackmanhattan.com/index.php?title=Bricodash/Future&amp;diff=7360</id>
		<title>Bricodash/Future</title>
		<link rel="alternate" type="text/html" href="https://wiki.hackmanhattan.com/index.php?title=Bricodash/Future&amp;diff=7360"/>
		<updated>2019-10-11T02:21:18Z</updated>

		<summary type="html">&lt;p&gt;Beadsland: /* Other Cloud Services */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
''See:'' &amp;lt;span style=&amp;quot;white-space: nowrap&amp;quot;&amp;gt;[[File:Bricodash_screenshot.png|35px]] [[Bricodash]] &amp;lt;/span&amp;gt; for project details&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table width=&amp;quot;100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;48%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current Tasks Outstanding ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== BindSight :2020 ===&lt;br /&gt;
&lt;br /&gt;
''See also:'' [[BindSight]] project page&lt;br /&gt;
&lt;br /&gt;
{{:BindSight}}&lt;br /&gt;
&lt;br /&gt;
=== Webhook Notifications ===&lt;br /&gt;
&lt;br /&gt;
Javascript client-side triggers to deliver messages to our Slack channels to provide alerts when the camera feed or client devices stall.&lt;br /&gt;
&lt;br /&gt;
* migrate sleep macro to general purpose library&lt;br /&gt;
* migrate from webhooks integration to webhooks feature of bricodash app (and update notice)&lt;br /&gt;
* server-side webhook on stall of any given device&lt;br /&gt;
* when wonkiness addressed: downthrottle chromecast reboots to 1x per day; stream swap-in to never&lt;br /&gt;
&lt;br /&gt;
=== Server ===&lt;br /&gt;
&lt;br /&gt;
Standardize Web server setup and fully integrate BindSight.&lt;br /&gt;
&lt;br /&gt;
* migrate to standard web port (now that relayd installed on router)&lt;br /&gt;
* configure X-Forwarded-For logging in apache&lt;br /&gt;
* enable SSL for camera feeds (requested for full conversion to new sous veil system)&lt;br /&gt;
* enable SSL directly via daemon's listening port (i.e., elixir rather than apache)&lt;br /&gt;
* transfer slackbot snapshots to bricolage gateway&lt;br /&gt;
&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
&lt;br /&gt;
Flesh out project documentation&amp;amp;mdash;after fixing existing problems with our Mediawiki server.&lt;br /&gt;
&lt;br /&gt;
* recent edits monitor to trigger cache purge on transcluded Bricodash documentation updates&lt;br /&gt;
* help get mediawiki server 504 issues resolved (currently an obstacle to '''Bricodash''' documentation)&lt;br /&gt;
* broach discussion of absent Copyrights page on Wiki -- do we want to adopt a license??&lt;br /&gt;
* redraft lists in [[Bricodash#Event_Calendars|calendar sections]] as tables&lt;br /&gt;
* flesh out [[:Bricodash/Future|Bricodash Future Ideas]], explaining known requirements for each&lt;br /&gt;
&lt;br /&gt;
=== Cloud Log ===&lt;br /&gt;
&lt;br /&gt;
Incorporate remaining sources into rolling update log shown in lower left-hand corner.&lt;br /&gt;
&lt;br /&gt;
==== User Repositories ====&lt;br /&gt;
* refactor cloud/github to abstract away github/gitlab/etc&lt;br /&gt;
* allow more than most recent pushed repository to be shown&lt;br /&gt;
* add boxrs-based git repositories to Cloud Log panel&lt;br /&gt;
&lt;br /&gt;
==== Other Cloud Services ====&lt;br /&gt;
* Mediawiki &amp;amp;mdash; pending new account requests&lt;br /&gt;
* Zendesk — count of unread/open inquiries&lt;br /&gt;
* Status updates on donations: Patreon, Paypal, Amazon Smile...&lt;br /&gt;
* write up requirements for [[Bricodash/Future#Instagram_Integration|Instagram Integration]]&lt;br /&gt;
* write up requirements for [[Bricodash/Future#Twitter_Integration|Twitter Integration]]&lt;br /&gt;
&lt;br /&gt;
==== Retire IFFF Wiki Updates ====&lt;br /&gt;
* bot to post daily cloud log update to #general on our slack&lt;br /&gt;
&lt;br /&gt;
=== Calendars ===&lt;br /&gt;
&lt;br /&gt;
Incorporate additional calculated and externally sourced calendar events.&lt;br /&gt;
&lt;br /&gt;
==== Fixes ====&lt;br /&gt;
* almanac alt for almanac events&lt;br /&gt;
* add enum of event sources for sorting priority (when same start time)&lt;br /&gt;
* move HM anniversary dates to special .cal that takes precedence on HM calendar (and also appears on NYC)&lt;br /&gt;
* swap out icalendar (buggy repetition exception handling) in favor of true API&lt;br /&gt;
&lt;br /&gt;
==== Calculation ====&lt;br /&gt;
* correctly calculate dates of International Astronomy Day (email out to Astronomical League for better calculation rules)&lt;br /&gt;
* calculate dates of Manhattanhenge (email out to library of American Museum of Natural History for formula)&lt;br /&gt;
* add eclipses and other significant astronomical events to holidays&lt;br /&gt;
* finish fleshing out remainder of movable feasts for [[Bricodash#Community_Calendar|Community Calendar]] (June 2019 forward)&lt;br /&gt;
&lt;br /&gt;
==== Integration ====&lt;br /&gt;
* use google search to find Offside Tavern Meetup events&lt;br /&gt;
* add placeholder events for non-Meetup Offside Tavern events&lt;br /&gt;
* refactor brite search by location routine to common library&lt;br /&gt;
* add nyc mesh, nyc resistor, fat cat fab lab, makerbar, makerspace nyc (SI), futureworks (BK/SI) to [[Bricodash#Community_Calendar|Community Calendar]] &lt;br /&gt;
* also add grow with google (if still in NYC), 2600, Off the Hook (if still broadcasting), blick, michaels, local library branches, makerish meetup events&lt;br /&gt;
&lt;br /&gt;
==== Advanced ====&lt;br /&gt;
* revise #thehaps formatting to provide headers per day&lt;br /&gt;
* embed hotlinks in #thehaps channel event listings&lt;br /&gt;
* concise calendar response for interactive slackbot&lt;br /&gt;
* auto-capture of #thehaps posted events to [[Bricodash/Extra:Calendar]]&lt;br /&gt;
* automation/streamlining tools for cross-posting HM Meetup events to Spingo&lt;br /&gt;
* enable toggling between Welcome header and holiday greetings [[Bricodash#Community_Calendar|^]]&lt;br /&gt;
&lt;br /&gt;
=== Cleanup ===&lt;br /&gt;
&lt;br /&gt;
Remaining features and code maintenance before calling it a major release.&lt;br /&gt;
&lt;br /&gt;
* integrate citymapper API for local subway stations&lt;br /&gt;
* refactor source files from initial launch&lt;br /&gt;
* find owners to adopt data sourcing projects that require more than passive API calls (see sections below)&lt;br /&gt;
* squish and push fork to upstream&lt;br /&gt;
&lt;br /&gt;
=== Upgrades ===&lt;br /&gt;
&lt;br /&gt;
Once built, streamline and rewrite as a truly beautiful application.&lt;br /&gt;
&lt;br /&gt;
* migrate from bricolage to less power-hungry hardware&lt;br /&gt;
* combined community slack calendar to wiki page (requires privacy policy under brite license)&lt;br /&gt;
* reimplement bricolage to run as embedded system under elixir/scenic/nerves&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
* import python directly using beamparticle&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot; style=&amp;quot;border-right:solid 1px #a7d7f9;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; padding-left: 20px; padding-bottom: 10px&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sub-Projects Needing Owners ==&lt;br /&gt;
&lt;br /&gt;
The projects below require an investment of time&amp;amp;mdash;such as active coordination with an API's owners&amp;amp;mdash;to be implemented, but would provide meaningful improvements to the overall feature-set of Bricodash if completed. &lt;br /&gt;
&lt;br /&gt;
At some point the description for each will be fleshed out to provide a full functional specification, together with an exploration of the requirements to move forward. For now, capsule bullet points serve as place holders. For more information, touch base with [[User:Beadsland]].&lt;br /&gt;
&lt;br /&gt;
=== Instagram Integration ===&lt;br /&gt;
&lt;br /&gt;
* add Instagram to Weird Photos and HM Cloud Log &amp;amp;mdash; this requires creating pages on Facebook under the new Graph API&lt;br /&gt;
&lt;br /&gt;
=== Twitter Integration ===&lt;br /&gt;
&lt;br /&gt;
* add Twitter to Weird Photos and HM Cloud Log &amp;amp;mdash; this requires emailing to get a dev account, then honoring Twitter's [https://developer.twitter.com/en/developer-terms/display-requirements.html Display Requirements]&lt;br /&gt;
&lt;br /&gt;
=== Slack Calendar Response Bot ===&lt;br /&gt;
&lt;br /&gt;
* interactive bot response to &amp;quot;What's happening?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Draft a Privacy Policy ===&lt;br /&gt;
&lt;br /&gt;
* draft privacy policy (per API reqs for public sites)&lt;br /&gt;
&lt;br /&gt;
=== Buzzer-Activated IR Remote ===&lt;br /&gt;
&lt;br /&gt;
Additionally, there are plans to tie a ceiling-mounted IR remote into the intercom buzzer to toggle inputs on the TV. &lt;br /&gt;
The idea would be that when the buzzer sounds, the remote would switch from the dashboard (on Chromecast) to a dedicated &lt;br /&gt;
full screen camera input.  After a delay the input would be toggled back to the Chromecast-hosted dashboard.  Such an&lt;br /&gt;
arrangement would free up the dashboard screen real-estate currently devoted to an around-the-clock camera feed&amp;amp;mdash;as, realistically, the only time one needs a camera feed is when a visitor is buzzing to be let in.&lt;br /&gt;
&lt;br /&gt;
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?&lt;br /&gt;
&lt;br /&gt;
* integrate with custom buzzer-activated IR remote hack&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Beadsland</name></author>
	</entry>
	<entry>
		<id>https://wiki.hackmanhattan.com/index.php?title=User_talk:Master_3267&amp;diff=7359</id>
		<title>User talk:Master 3267</title>
		<link rel="alternate" type="text/html" href="https://wiki.hackmanhattan.com/index.php?title=User_talk:Master_3267&amp;diff=7359"/>
		<updated>2019-10-11T02:16:42Z</updated>

		<summary type="html">&lt;p&gt;Beadsland: Welcome!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Welcome to ''Hack Manhattan Wiki''!'''&lt;br /&gt;
We hope you will contribute much and well.&lt;br /&gt;
You will probably want to read the [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents help pages].&lt;br /&gt;
Again, welcome and have fun! [[User:Beadsland|Beadsland]] ([[User talk:Beadsland|talk]]) 02:16, 11 October 2019 (UTC)&lt;/div&gt;</summary>
		<author><name>Beadsland</name></author>
	</entry>
	<entry>
		<id>https://wiki.hackmanhattan.com/index.php?title=User:Master_3267&amp;diff=7357</id>
		<title>User:Master 3267</title>
		<link rel="alternate" type="text/html" href="https://wiki.hackmanhattan.com/index.php?title=User:Master_3267&amp;diff=7357"/>
		<updated>2019-10-11T02:14:35Z</updated>

		<summary type="html">&lt;p&gt;Beadsland: Creating user page for new user.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I am a student at New York City College of Technology. I am pursuing my bachelor's in computer engineering technology. The soft skills I have master are long-term memory skills, time management, organization and detail-oriented. My hobbies are video games such as Nintendo and Steam, board games such as Boggle and Uno, and reading STEM magazines and books at Barnes &amp;amp; Nobles and Micro Center.&lt;/div&gt;</summary>
		<author><name>Beadsland</name></author>
	</entry>
	<entry>
		<id>https://wiki.hackmanhattan.com/index.php?title=Bricodash/Future&amp;diff=7355</id>
		<title>Bricodash/Future</title>
		<link rel="alternate" type="text/html" href="https://wiki.hackmanhattan.com/index.php?title=Bricodash/Future&amp;diff=7355"/>
		<updated>2019-10-09T05:58:46Z</updated>

		<summary type="html">&lt;p&gt;Beadsland: /* Calendars */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
''See:'' &amp;lt;span style=&amp;quot;white-space: nowrap&amp;quot;&amp;gt;[[File:Bricodash_screenshot.png|35px]] [[Bricodash]] &amp;lt;/span&amp;gt; for project details&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table width=&amp;quot;100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;48%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current Tasks Outstanding ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== BindSight :2020 ===&lt;br /&gt;
&lt;br /&gt;
''See also:'' [[BindSight]] project page&lt;br /&gt;
&lt;br /&gt;
{{:BindSight}}&lt;br /&gt;
&lt;br /&gt;
=== Webhook Notifications ===&lt;br /&gt;
&lt;br /&gt;
Javascript client-side triggers to deliver messages to our Slack channels to provide alerts when the camera feed or client devices stall.&lt;br /&gt;
&lt;br /&gt;
* migrate sleep macro to general purpose library&lt;br /&gt;
* migrate from webhooks integration to webhooks feature of bricodash app (and update notice)&lt;br /&gt;
* server-side webhook on stall of any given device&lt;br /&gt;
* when wonkiness addressed: downthrottle chromecast reboots to 1x per day; stream swap-in to never&lt;br /&gt;
&lt;br /&gt;
=== Server ===&lt;br /&gt;
&lt;br /&gt;
Standardize Web server setup and fully integrate BindSight.&lt;br /&gt;
&lt;br /&gt;
* migrate to standard web port (now that relayd installed on router)&lt;br /&gt;
* configure X-Forwarded-For logging in apache&lt;br /&gt;
* enable SSL for camera feeds (requested for full conversion to new sous veil system)&lt;br /&gt;
* enable SSL directly via daemon's listening port (i.e., elixir rather than apache)&lt;br /&gt;
* transfer slackbot snapshots to bricolage gateway&lt;br /&gt;
&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
&lt;br /&gt;
Flesh out project documentation&amp;amp;mdash;after fixing existing problems with our Mediawiki server.&lt;br /&gt;
&lt;br /&gt;
* recent edits monitor to trigger cache purge on transcluded Bricodash documentation updates&lt;br /&gt;
* help get mediawiki server 504 issues resolved (currently an obstacle to '''Bricodash''' documentation)&lt;br /&gt;
* broach discussion of absent Copyrights page on Wiki -- do we want to adopt a license??&lt;br /&gt;
* redraft lists in [[Bricodash#Event_Calendars|calendar sections]] as tables&lt;br /&gt;
* flesh out [[:Bricodash/Future|Bricodash Future Ideas]], explaining known requirements for each&lt;br /&gt;
&lt;br /&gt;
=== Cloud Log ===&lt;br /&gt;
&lt;br /&gt;
Incorporate remaining sources into rolling update log shown in lower left-hand corner.&lt;br /&gt;
&lt;br /&gt;
==== User Repositories ====&lt;br /&gt;
* refactor cloud/github to abstract away github/gitlab/etc&lt;br /&gt;
* allow more than most recent pushed repository to be shown&lt;br /&gt;
* add boxrs-based git repositories to Cloud Log panel&lt;br /&gt;
&lt;br /&gt;
==== Other Cloud Services ====&lt;br /&gt;
* Zendesk — count of unread/open inquiries&lt;br /&gt;
* Status updates on donations: Patreon, Paypal, Amazon Smile...&lt;br /&gt;
* write up requirements for [[Bricodash/Future#Instagram_Integration|Instagram Integration]]&lt;br /&gt;
* write up requirements for [[Bricodash/Future#Twitter_Integration|Twitter Integration]]&lt;br /&gt;
&lt;br /&gt;
==== Retire IFFF Wiki Updates ====&lt;br /&gt;
* bot to post daily cloud log update to #general on our slack&lt;br /&gt;
&lt;br /&gt;
=== Calendars ===&lt;br /&gt;
&lt;br /&gt;
Incorporate additional calculated and externally sourced calendar events.&lt;br /&gt;
&lt;br /&gt;
==== Fixes ====&lt;br /&gt;
* almanac alt for almanac events&lt;br /&gt;
* add enum of event sources for sorting priority (when same start time)&lt;br /&gt;
* move HM anniversary dates to special .cal that takes precedence on HM calendar (and also appears on NYC)&lt;br /&gt;
* swap out icalendar (buggy repetition exception handling) in favor of true API&lt;br /&gt;
&lt;br /&gt;
==== Calculation ====&lt;br /&gt;
* correctly calculate dates of International Astronomy Day (email out to Astronomical League for better calculation rules)&lt;br /&gt;
* calculate dates of Manhattanhenge (email out to library of American Museum of Natural History for formula)&lt;br /&gt;
* add eclipses and other significant astronomical events to holidays&lt;br /&gt;
* finish fleshing out remainder of movable feasts for [[Bricodash#Community_Calendar|Community Calendar]] (June 2019 forward)&lt;br /&gt;
&lt;br /&gt;
==== Integration ====&lt;br /&gt;
* use google search to find Offside Tavern Meetup events&lt;br /&gt;
* add placeholder events for non-Meetup Offside Tavern events&lt;br /&gt;
* refactor brite search by location routine to common library&lt;br /&gt;
* add nyc mesh, nyc resistor, fat cat fab lab, makerbar, makerspace nyc (SI), futureworks (BK/SI) to [[Bricodash#Community_Calendar|Community Calendar]] &lt;br /&gt;
* also add grow with google (if still in NYC), 2600, Off the Hook (if still broadcasting), blick, michaels, local library branches, makerish meetup events&lt;br /&gt;
&lt;br /&gt;
==== Advanced ====&lt;br /&gt;
* revise #thehaps formatting to provide headers per day&lt;br /&gt;
* embed hotlinks in #thehaps channel event listings&lt;br /&gt;
* concise calendar response for interactive slackbot&lt;br /&gt;
* auto-capture of #thehaps posted events to [[Bricodash/Extra:Calendar]]&lt;br /&gt;
* automation/streamlining tools for cross-posting HM Meetup events to Spingo&lt;br /&gt;
* enable toggling between Welcome header and holiday greetings [[Bricodash#Community_Calendar|^]]&lt;br /&gt;
&lt;br /&gt;
=== Cleanup ===&lt;br /&gt;
&lt;br /&gt;
Remaining features and code maintenance before calling it a major release.&lt;br /&gt;
&lt;br /&gt;
* integrate citymapper API for local subway stations&lt;br /&gt;
* refactor source files from initial launch&lt;br /&gt;
* find owners to adopt data sourcing projects that require more than passive API calls (see sections below)&lt;br /&gt;
* squish and push fork to upstream&lt;br /&gt;
&lt;br /&gt;
=== Upgrades ===&lt;br /&gt;
&lt;br /&gt;
Once built, streamline and rewrite as a truly beautiful application.&lt;br /&gt;
&lt;br /&gt;
* migrate from bricolage to less power-hungry hardware&lt;br /&gt;
* combined community slack calendar to wiki page (requires privacy policy under brite license)&lt;br /&gt;
* reimplement bricolage to run as embedded system under elixir/scenic/nerves&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
* import python directly using beamparticle&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot; style=&amp;quot;border-right:solid 1px #a7d7f9;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; padding-left: 20px; padding-bottom: 10px&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sub-Projects Needing Owners ==&lt;br /&gt;
&lt;br /&gt;
The projects below require an investment of time&amp;amp;mdash;such as active coordination with an API's owners&amp;amp;mdash;to be implemented, but would provide meaningful improvements to the overall feature-set of Bricodash if completed. &lt;br /&gt;
&lt;br /&gt;
At some point the description for each will be fleshed out to provide a full functional specification, together with an exploration of the requirements to move forward. For now, capsule bullet points serve as place holders. For more information, touch base with [[User:Beadsland]].&lt;br /&gt;
&lt;br /&gt;
=== Instagram Integration ===&lt;br /&gt;
&lt;br /&gt;
* add Instagram to Weird Photos and HM Cloud Log &amp;amp;mdash; this requires creating pages on Facebook under the new Graph API&lt;br /&gt;
&lt;br /&gt;
=== Twitter Integration ===&lt;br /&gt;
&lt;br /&gt;
* add Twitter to Weird Photos and HM Cloud Log &amp;amp;mdash; this requires emailing to get a dev account, then honoring Twitter's [https://developer.twitter.com/en/developer-terms/display-requirements.html Display Requirements]&lt;br /&gt;
&lt;br /&gt;
=== Slack Calendar Response Bot ===&lt;br /&gt;
&lt;br /&gt;
* interactive bot response to &amp;quot;What's happening?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Draft a Privacy Policy ===&lt;br /&gt;
&lt;br /&gt;
* draft privacy policy (per API reqs for public sites)&lt;br /&gt;
&lt;br /&gt;
=== Buzzer-Activated IR Remote ===&lt;br /&gt;
&lt;br /&gt;
Additionally, there are plans to tie a ceiling-mounted IR remote into the intercom buzzer to toggle inputs on the TV. &lt;br /&gt;
The idea would be that when the buzzer sounds, the remote would switch from the dashboard (on Chromecast) to a dedicated &lt;br /&gt;
full screen camera input.  After a delay the input would be toggled back to the Chromecast-hosted dashboard.  Such an&lt;br /&gt;
arrangement would free up the dashboard screen real-estate currently devoted to an around-the-clock camera feed&amp;amp;mdash;as, realistically, the only time one needs a camera feed is when a visitor is buzzing to be let in.&lt;br /&gt;
&lt;br /&gt;
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?&lt;br /&gt;
&lt;br /&gt;
* integrate with custom buzzer-activated IR remote hack&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Beadsland</name></author>
	</entry>
	<entry>
		<id>https://wiki.hackmanhattan.com/index.php?title=Bricodash/Extra:Calendar&amp;diff=7354</id>
		<title>Bricodash/Extra:Calendar</title>
		<link rel="alternate" type="text/html" href="https://wiki.hackmanhattan.com/index.php?title=Bricodash/Extra:Calendar&amp;diff=7354"/>
		<updated>2019-10-09T05:52:12Z</updated>

		<summary type="html">&lt;p&gt;Beadsland: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''See also:'' [[Bricodash/Extra:Repos]]&lt;br /&gt;
&lt;br /&gt;
= What is This? =&lt;br /&gt;
&lt;br /&gt;
Items entered below will be parsed for inclusion in the [[Bricodash#Community_Calendar|Bricodash Community Calendar]].&lt;br /&gt;
&lt;br /&gt;
Events listings follow the following syntax: &amp;lt;code&amp;gt;* &amp;amp;lt;Human-Readable Date/Time&amp;amp;gt; :: &amp;amp;lt;Event Title&amp;amp;gt; :: &amp;amp;lt;Emoji&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The final field is optional, and may either be a small number of emoji to appear at the end of the event listing, or else the relative path to an image already pre-loaded on the Bricodash server.&lt;br /&gt;
&lt;br /&gt;
Optionally, the first field may begin with a &amp;quot;#&amp;quot;, in which case the entire event line is treated as a comment&amp;amp;mdash;and thus ignored. This can be used to leave reminders for recurring events that have a different date each year, such as annual conventions where dates are only announced in the lead-up to the event.&lt;br /&gt;
&lt;br /&gt;
=Extra Community Calendar Items=&lt;br /&gt;
&lt;br /&gt;
* May 4 at 9:30 am :: Just For Fun / May Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* Jun 9 at 1 pm :: Just for Fun / June Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* Jul 13 at 9:30 am :: Just for Fun / July Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* Aug 4 at 1 pm :: Just for Fun / August Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* Sep 7 at 9:30 am :: Just for Fun / September Crafts Day (Penn South) :: 🎨&lt;br /&gt;
* Oct 6 at 1 pm :: Just for Fun / October Crafts Day (Penn South) :: 🎨&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Sep 14 at 10 am :: Penn South Flea Market (W 26 btw 8th &amp;amp; 9th) :: 🏷️🛍️&lt;br /&gt;
* Sep 22 at 10 am :: SAFE Disposal Event (Union Square&amp;amp;mdash;North Plaza) :: ☠🖥🔋☣️&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Oct 3 :: First Day of NY Comic Con &amp;lt;img class=&amp;quot;logo&amp;quot; src=&amp;quot;img/flickr_nalends_super_pop.png&amp;quot;&amp;gt; / Anime Expo (Javits Center)&lt;br /&gt;
* Oct 6 :: Last Day of NY Comic Con &amp;lt;img class=&amp;quot;logo&amp;quot; src=&amp;quot;img/flickr_nalends_super_pop.png&amp;quot;&amp;gt; / Anime Expo (Javits Center)&lt;br /&gt;
&lt;br /&gt;
* Oct 4 at 8 am :: PyGotham (Pennsylvania Hotel)&lt;br /&gt;
* Oct 5 at 8 am :: PyGotham (Pennsylvania Hotel)&lt;br /&gt;
&lt;br /&gt;
* Oct 9 at 7 pm :: &amp;quot;Off the Hook&amp;quot; Live (Brooklyn Commons) :: 📻🎙️&lt;br /&gt;
&lt;br /&gt;
* Jan 2 :: First Day of Super MAGFest (National Harbor, MD) :: 🕹️🎮&lt;br /&gt;
* Jan 5 :: First Day of Super MAGFest (National Harbor, MD) :: 🕹️🎮&lt;/div&gt;</summary>
		<author><name>Beadsland</name></author>
	</entry>
	<entry>
		<id>https://wiki.hackmanhattan.com/index.php?title=Bricodash/Future&amp;diff=7353</id>
		<title>Bricodash/Future</title>
		<link rel="alternate" type="text/html" href="https://wiki.hackmanhattan.com/index.php?title=Bricodash/Future&amp;diff=7353"/>
		<updated>2019-10-09T05:45:04Z</updated>

		<summary type="html">&lt;p&gt;Beadsland: /* Calendars */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
''See:'' &amp;lt;span style=&amp;quot;white-space: nowrap&amp;quot;&amp;gt;[[File:Bricodash_screenshot.png|35px]] [[Bricodash]] &amp;lt;/span&amp;gt; for project details&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table width=&amp;quot;100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;48%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current Tasks Outstanding ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== BindSight :2020 ===&lt;br /&gt;
&lt;br /&gt;
''See also:'' [[BindSight]] project page&lt;br /&gt;
&lt;br /&gt;
{{:BindSight}}&lt;br /&gt;
&lt;br /&gt;
=== Webhook Notifications ===&lt;br /&gt;
&lt;br /&gt;
Javascript client-side triggers to deliver messages to our Slack channels to provide alerts when the camera feed or client devices stall.&lt;br /&gt;
&lt;br /&gt;
* migrate sleep macro to general purpose library&lt;br /&gt;
* migrate from webhooks integration to webhooks feature of bricodash app (and update notice)&lt;br /&gt;
* server-side webhook on stall of any given device&lt;br /&gt;
* when wonkiness addressed: downthrottle chromecast reboots to 1x per day; stream swap-in to never&lt;br /&gt;
&lt;br /&gt;
=== Server ===&lt;br /&gt;
&lt;br /&gt;
Standardize Web server setup and fully integrate BindSight.&lt;br /&gt;
&lt;br /&gt;
* migrate to standard web port (now that relayd installed on router)&lt;br /&gt;
* configure X-Forwarded-For logging in apache&lt;br /&gt;
* enable SSL for camera feeds (requested for full conversion to new sous veil system)&lt;br /&gt;
* enable SSL directly via daemon's listening port (i.e., elixir rather than apache)&lt;br /&gt;
* transfer slackbot snapshots to bricolage gateway&lt;br /&gt;
&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
&lt;br /&gt;
Flesh out project documentation&amp;amp;mdash;after fixing existing problems with our Mediawiki server.&lt;br /&gt;
&lt;br /&gt;
* recent edits monitor to trigger cache purge on transcluded Bricodash documentation updates&lt;br /&gt;
* help get mediawiki server 504 issues resolved (currently an obstacle to '''Bricodash''' documentation)&lt;br /&gt;
* broach discussion of absent Copyrights page on Wiki -- do we want to adopt a license??&lt;br /&gt;
* redraft lists in [[Bricodash#Event_Calendars|calendar sections]] as tables&lt;br /&gt;
* flesh out [[:Bricodash/Future|Bricodash Future Ideas]], explaining known requirements for each&lt;br /&gt;
&lt;br /&gt;
=== Cloud Log ===&lt;br /&gt;
&lt;br /&gt;
Incorporate remaining sources into rolling update log shown in lower left-hand corner.&lt;br /&gt;
&lt;br /&gt;
==== User Repositories ====&lt;br /&gt;
* refactor cloud/github to abstract away github/gitlab/etc&lt;br /&gt;
* allow more than most recent pushed repository to be shown&lt;br /&gt;
* add boxrs-based git repositories to Cloud Log panel&lt;br /&gt;
&lt;br /&gt;
==== Other Cloud Services ====&lt;br /&gt;
* Zendesk — count of unread/open inquiries&lt;br /&gt;
* Status updates on donations: Patreon, Paypal, Amazon Smile...&lt;br /&gt;
* write up requirements for [[Bricodash/Future#Instagram_Integration|Instagram Integration]]&lt;br /&gt;
* write up requirements for [[Bricodash/Future#Twitter_Integration|Twitter Integration]]&lt;br /&gt;
&lt;br /&gt;
==== Retire IFFF Wiki Updates ====&lt;br /&gt;
* bot to post daily cloud log update to #general on our slack&lt;br /&gt;
&lt;br /&gt;
=== Calendars ===&lt;br /&gt;
&lt;br /&gt;
Incorporate additional calculated and externally sourced calendar events.&lt;br /&gt;
&lt;br /&gt;
==== Fixes ====&lt;br /&gt;
* almanac alt for almanac events&lt;br /&gt;
* add enum of event sources for sorting priority (when same start time)&lt;br /&gt;
* move HM anniversary dates to special .cal that takes precedence on HM calendar (and also appears on NYC)&lt;br /&gt;
* swap out icalendar (buggy repetition exception handling) in favor of true API&lt;br /&gt;
&lt;br /&gt;
==== Calculation ====&lt;br /&gt;
* correctly calculate dates of International Astronomy Day (email out to Astronomical League for better calculation rules)&lt;br /&gt;
* calculate dates of Manhattanhenge (email out to library of American Museum of Natural History for formula)&lt;br /&gt;
* add eclipses and other significant astronomical events to holidays&lt;br /&gt;
* finish fleshing out remainder of movable feasts for [[Bricodash#Community_Calendar|Community Calendar]] (June 2019 forward)&lt;br /&gt;
&lt;br /&gt;
==== Integration ====&lt;br /&gt;
* use google search to find Offside Tavern Meetup events&lt;br /&gt;
* add placeholder events for non-Meetup Offside Tavern events&lt;br /&gt;
* refactor brite search by location routine to common library&lt;br /&gt;
* add nyc mesh, nyc resistor, fat cat fab lab, makerbar, makerspace nyc (SI), futureworks (BK/SI) to [[Bricodash#Community_Calendar|Community Calendar]] &lt;br /&gt;
* also add grow with google (if still in NYC), blick, michaels, local library branches, makerish meetup events&lt;br /&gt;
&lt;br /&gt;
==== Advanced ====&lt;br /&gt;
* revise #thehaps formatting to provide headers per day&lt;br /&gt;
* embed hotlinks in #thehaps channel event listings&lt;br /&gt;
* concise calendar response for interactive slackbot&lt;br /&gt;
* auto-capture of #thehaps posted events to [[Bricodash/Extra:Calendar]]&lt;br /&gt;
* automation/streamlining tools for cross-posting HM Meetup events to Spingo&lt;br /&gt;
* enable toggling between Welcome header and holiday greetings [[Bricodash#Community_Calendar|^]]&lt;br /&gt;
&lt;br /&gt;
=== Cleanup ===&lt;br /&gt;
&lt;br /&gt;
Remaining features and code maintenance before calling it a major release.&lt;br /&gt;
&lt;br /&gt;
* integrate citymapper API for local subway stations&lt;br /&gt;
* refactor source files from initial launch&lt;br /&gt;
* find owners to adopt data sourcing projects that require more than passive API calls (see sections below)&lt;br /&gt;
* squish and push fork to upstream&lt;br /&gt;
&lt;br /&gt;
=== Upgrades ===&lt;br /&gt;
&lt;br /&gt;
Once built, streamline and rewrite as a truly beautiful application.&lt;br /&gt;
&lt;br /&gt;
* migrate from bricolage to less power-hungry hardware&lt;br /&gt;
* combined community slack calendar to wiki page (requires privacy policy under brite license)&lt;br /&gt;
* reimplement bricolage to run as embedded system under elixir/scenic/nerves&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
* import python directly using beamparticle&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot; style=&amp;quot;border-right:solid 1px #a7d7f9;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; padding-left: 20px; padding-bottom: 10px&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sub-Projects Needing Owners ==&lt;br /&gt;
&lt;br /&gt;
The projects below require an investment of time&amp;amp;mdash;such as active coordination with an API's owners&amp;amp;mdash;to be implemented, but would provide meaningful improvements to the overall feature-set of Bricodash if completed. &lt;br /&gt;
&lt;br /&gt;
At some point the description for each will be fleshed out to provide a full functional specification, together with an exploration of the requirements to move forward. For now, capsule bullet points serve as place holders. For more information, touch base with [[User:Beadsland]].&lt;br /&gt;
&lt;br /&gt;
=== Instagram Integration ===&lt;br /&gt;
&lt;br /&gt;
* add Instagram to Weird Photos and HM Cloud Log &amp;amp;mdash; this requires creating pages on Facebook under the new Graph API&lt;br /&gt;
&lt;br /&gt;
=== Twitter Integration ===&lt;br /&gt;
&lt;br /&gt;
* add Twitter to Weird Photos and HM Cloud Log &amp;amp;mdash; this requires emailing to get a dev account, then honoring Twitter's [https://developer.twitter.com/en/developer-terms/display-requirements.html Display Requirements]&lt;br /&gt;
&lt;br /&gt;
=== Slack Calendar Response Bot ===&lt;br /&gt;
&lt;br /&gt;
* interactive bot response to &amp;quot;What's happening?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Draft a Privacy Policy ===&lt;br /&gt;
&lt;br /&gt;
* draft privacy policy (per API reqs for public sites)&lt;br /&gt;
&lt;br /&gt;
=== Buzzer-Activated IR Remote ===&lt;br /&gt;
&lt;br /&gt;
Additionally, there are plans to tie a ceiling-mounted IR remote into the intercom buzzer to toggle inputs on the TV. &lt;br /&gt;
The idea would be that when the buzzer sounds, the remote would switch from the dashboard (on Chromecast) to a dedicated &lt;br /&gt;
full screen camera input.  After a delay the input would be toggled back to the Chromecast-hosted dashboard.  Such an&lt;br /&gt;
arrangement would free up the dashboard screen real-estate currently devoted to an around-the-clock camera feed&amp;amp;mdash;as, realistically, the only time one needs a camera feed is when a visitor is buzzing to be let in.&lt;br /&gt;
&lt;br /&gt;
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?&lt;br /&gt;
&lt;br /&gt;
* integrate with custom buzzer-activated IR remote hack&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Beadsland</name></author>
	</entry>
	<entry>
		<id>https://wiki.hackmanhattan.com/index.php?title=Bricodash/Future&amp;diff=7352</id>
		<title>Bricodash/Future</title>
		<link rel="alternate" type="text/html" href="https://wiki.hackmanhattan.com/index.php?title=Bricodash/Future&amp;diff=7352"/>
		<updated>2019-09-28T22:01:29Z</updated>

		<summary type="html">&lt;p&gt;Beadsland: /* Advanced */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
''See:'' &amp;lt;span style=&amp;quot;white-space: nowrap&amp;quot;&amp;gt;[[File:Bricodash_screenshot.png|35px]] [[Bricodash]] &amp;lt;/span&amp;gt; for project details&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table width=&amp;quot;100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;48%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current Tasks Outstanding ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== BindSight :2020 ===&lt;br /&gt;
&lt;br /&gt;
''See also:'' [[BindSight]] project page&lt;br /&gt;
&lt;br /&gt;
{{:BindSight}}&lt;br /&gt;
&lt;br /&gt;
=== Webhook Notifications ===&lt;br /&gt;
&lt;br /&gt;
Javascript client-side triggers to deliver messages to our Slack channels to provide alerts when the camera feed or client devices stall.&lt;br /&gt;
&lt;br /&gt;
* migrate sleep macro to general purpose library&lt;br /&gt;
* migrate from webhooks integration to webhooks feature of bricodash app (and update notice)&lt;br /&gt;
* server-side webhook on stall of any given device&lt;br /&gt;
* when wonkiness addressed: downthrottle chromecast reboots to 1x per day; stream swap-in to never&lt;br /&gt;
&lt;br /&gt;
=== Server ===&lt;br /&gt;
&lt;br /&gt;
Standardize Web server setup and fully integrate BindSight.&lt;br /&gt;
&lt;br /&gt;
* migrate to standard web port (now that relayd installed on router)&lt;br /&gt;
* configure X-Forwarded-For logging in apache&lt;br /&gt;
* enable SSL for camera feeds (requested for full conversion to new sous veil system)&lt;br /&gt;
* enable SSL directly via daemon's listening port (i.e., elixir rather than apache)&lt;br /&gt;
* transfer slackbot snapshots to bricolage gateway&lt;br /&gt;
&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
&lt;br /&gt;
Flesh out project documentation&amp;amp;mdash;after fixing existing problems with our Mediawiki server.&lt;br /&gt;
&lt;br /&gt;
* recent edits monitor to trigger cache purge on transcluded Bricodash documentation updates&lt;br /&gt;
* help get mediawiki server 504 issues resolved (currently an obstacle to '''Bricodash''' documentation)&lt;br /&gt;
* broach discussion of absent Copyrights page on Wiki -- do we want to adopt a license??&lt;br /&gt;
* redraft lists in [[Bricodash#Event_Calendars|calendar sections]] as tables&lt;br /&gt;
* flesh out [[:Bricodash/Future|Bricodash Future Ideas]], explaining known requirements for each&lt;br /&gt;
&lt;br /&gt;
=== Cloud Log ===&lt;br /&gt;
&lt;br /&gt;
Incorporate remaining sources into rolling update log shown in lower left-hand corner.&lt;br /&gt;
&lt;br /&gt;
==== User Repositories ====&lt;br /&gt;
* refactor cloud/github to abstract away github/gitlab/etc&lt;br /&gt;
* allow more than most recent pushed repository to be shown&lt;br /&gt;
* add boxrs-based git repositories to Cloud Log panel&lt;br /&gt;
&lt;br /&gt;
==== Other Cloud Services ====&lt;br /&gt;
* Zendesk — count of unread/open inquiries&lt;br /&gt;
* Status updates on donations: Patreon, Paypal, Amazon Smile...&lt;br /&gt;
* write up requirements for [[Bricodash/Future#Instagram_Integration|Instagram Integration]]&lt;br /&gt;
* write up requirements for [[Bricodash/Future#Twitter_Integration|Twitter Integration]]&lt;br /&gt;
&lt;br /&gt;
==== Retire IFFF Wiki Updates ====&lt;br /&gt;
* bot to post daily cloud log update to #general on our slack&lt;br /&gt;
&lt;br /&gt;
=== Calendars ===&lt;br /&gt;
&lt;br /&gt;
Incorporate additional calculated and externally sourced calendar events.&lt;br /&gt;
&lt;br /&gt;
==== Calculation ====&lt;br /&gt;
* move HM anniversary dates to special .cal that takes precedence on HM calendar (and also appears on NYC)&lt;br /&gt;
* correctly calculate dates of International Astronomy Day (email out to Astronomical League for better calculation rules)&lt;br /&gt;
* calculate dates of Manhattanhenge (email out to library of American Museum of Natural History for formula)&lt;br /&gt;
* add eclipses and other significant astronomical events to holidays&lt;br /&gt;
* finish fleshing out remainder of movable feasts for [[Bricodash#Community_Calendar|Community Calendar]] (June forward)&lt;br /&gt;
&lt;br /&gt;
==== Integration ====&lt;br /&gt;
* almanac alt for almanac events&lt;br /&gt;
* add enum of event sources for sorting priority (when same start time)&lt;br /&gt;
* use google search to find Offside Tavern Meetup events&lt;br /&gt;
* add placeholder events for non-Meetup Offside Tavern events&lt;br /&gt;
* refactor brite search by location routine to common library&lt;br /&gt;
* add nyc mesh, nyc resistor, fat cat fab lab, makerbar, makerspace nyc (SI), futureworks (BK/SI) to [[Bricodash#Community_Calendar|Community Calendar]] &lt;br /&gt;
* also add grow with google (if still in NYC), blick, michaels, local library branches, makerish meetup events&lt;br /&gt;
&lt;br /&gt;
==== Advanced ====&lt;br /&gt;
* revise #thehaps formatting to provide headers per day&lt;br /&gt;
* embed hotlinks in #thehaps channel event listings&lt;br /&gt;
* concise calendar response for interactive slackbot&lt;br /&gt;
* auto-capture of #thehaps posted events to [[Bricodash/Extra:Calendar]]&lt;br /&gt;
* automation/streamlining tools for cross-posting HM Meetup events to Spingo&lt;br /&gt;
* enable toggling between Welcome header and holiday greetings [[Bricodash#Community_Calendar|^]]&lt;br /&gt;
&lt;br /&gt;
=== Cleanup ===&lt;br /&gt;
&lt;br /&gt;
Remaining features and code maintenance before calling it a major release.&lt;br /&gt;
&lt;br /&gt;
* integrate citymapper API for local subway stations&lt;br /&gt;
* refactor source files from initial launch&lt;br /&gt;
* find owners to adopt data sourcing projects that require more than passive API calls (see sections below)&lt;br /&gt;
* squish and push fork to upstream&lt;br /&gt;
&lt;br /&gt;
=== Upgrades ===&lt;br /&gt;
&lt;br /&gt;
Once built, streamline and rewrite as a truly beautiful application.&lt;br /&gt;
&lt;br /&gt;
* migrate from bricolage to less power-hungry hardware&lt;br /&gt;
* combined community slack calendar to wiki page (requires privacy policy under brite license)&lt;br /&gt;
* reimplement bricolage to run as embedded system under elixir/scenic/nerves&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
* import python directly using beamparticle&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot; style=&amp;quot;border-right:solid 1px #a7d7f9;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; padding-left: 20px; padding-bottom: 10px&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sub-Projects Needing Owners ==&lt;br /&gt;
&lt;br /&gt;
The projects below require an investment of time&amp;amp;mdash;such as active coordination with an API's owners&amp;amp;mdash;to be implemented, but would provide meaningful improvements to the overall feature-set of Bricodash if completed. &lt;br /&gt;
&lt;br /&gt;
At some point the description for each will be fleshed out to provide a full functional specification, together with an exploration of the requirements to move forward. For now, capsule bullet points serve as place holders. For more information, touch base with [[User:Beadsland]].&lt;br /&gt;
&lt;br /&gt;
=== Instagram Integration ===&lt;br /&gt;
&lt;br /&gt;
* add Instagram to Weird Photos and HM Cloud Log &amp;amp;mdash; this requires creating pages on Facebook under the new Graph API&lt;br /&gt;
&lt;br /&gt;
=== Twitter Integration ===&lt;br /&gt;
&lt;br /&gt;
* add Twitter to Weird Photos and HM Cloud Log &amp;amp;mdash; this requires emailing to get a dev account, then honoring Twitter's [https://developer.twitter.com/en/developer-terms/display-requirements.html Display Requirements]&lt;br /&gt;
&lt;br /&gt;
=== Slack Calendar Response Bot ===&lt;br /&gt;
&lt;br /&gt;
* interactive bot response to &amp;quot;What's happening?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Draft a Privacy Policy ===&lt;br /&gt;
&lt;br /&gt;
* draft privacy policy (per API reqs for public sites)&lt;br /&gt;
&lt;br /&gt;
=== Buzzer-Activated IR Remote ===&lt;br /&gt;
&lt;br /&gt;
Additionally, there are plans to tie a ceiling-mounted IR remote into the intercom buzzer to toggle inputs on the TV. &lt;br /&gt;
The idea would be that when the buzzer sounds, the remote would switch from the dashboard (on Chromecast) to a dedicated &lt;br /&gt;
full screen camera input.  After a delay the input would be toggled back to the Chromecast-hosted dashboard.  Such an&lt;br /&gt;
arrangement would free up the dashboard screen real-estate currently devoted to an around-the-clock camera feed&amp;amp;mdash;as, realistically, the only time one needs a camera feed is when a visitor is buzzing to be let in.&lt;br /&gt;
&lt;br /&gt;
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?&lt;br /&gt;
&lt;br /&gt;
* integrate with custom buzzer-activated IR remote hack&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Beadsland</name></author>
	</entry>
	<entry>
		<id>https://wiki.hackmanhattan.com/index.php?title=Bricodash/Future&amp;diff=7348</id>
		<title>Bricodash/Future</title>
		<link rel="alternate" type="text/html" href="https://wiki.hackmanhattan.com/index.php?title=Bricodash/Future&amp;diff=7348"/>
		<updated>2019-09-28T02:20:25Z</updated>

		<summary type="html">&lt;p&gt;Beadsland: /* Upgrades */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
''See:'' &amp;lt;span style=&amp;quot;white-space: nowrap&amp;quot;&amp;gt;[[File:Bricodash_screenshot.png|35px]] [[Bricodash]] &amp;lt;/span&amp;gt; for project details&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table width=&amp;quot;100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;48%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current Tasks Outstanding ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== BindSight :2020 ===&lt;br /&gt;
&lt;br /&gt;
''See also:'' [[BindSight]] project page&lt;br /&gt;
&lt;br /&gt;
{{:BindSight}}&lt;br /&gt;
&lt;br /&gt;
=== Webhook Notifications ===&lt;br /&gt;
&lt;br /&gt;
Javascript client-side triggers to deliver messages to our Slack channels to provide alerts when the camera feed or client devices stall.&lt;br /&gt;
&lt;br /&gt;
* migrate sleep macro to general purpose library&lt;br /&gt;
* migrate from webhooks integration to webhooks feature of bricodash app (and update notice)&lt;br /&gt;
* server-side webhook on stall of any given device&lt;br /&gt;
* when wonkiness addressed: downthrottle chromecast reboots to 1x per day; stream swap-in to never&lt;br /&gt;
&lt;br /&gt;
=== Server ===&lt;br /&gt;
&lt;br /&gt;
Standardize Web server setup and fully integrate BindSight.&lt;br /&gt;
&lt;br /&gt;
* migrate to standard web port (now that relayd installed on router)&lt;br /&gt;
* configure X-Forwarded-For logging in apache&lt;br /&gt;
* enable SSL for camera feeds (requested for full conversion to new sous veil system)&lt;br /&gt;
* enable SSL directly via daemon's listening port (i.e., elixir rather than apache)&lt;br /&gt;
* transfer slackbot snapshots to bricolage gateway&lt;br /&gt;
&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
&lt;br /&gt;
Flesh out project documentation&amp;amp;mdash;after fixing existing problems with our Mediawiki server.&lt;br /&gt;
&lt;br /&gt;
* recent edits monitor to trigger cache purge on transcluded Bricodash documentation updates&lt;br /&gt;
* help get mediawiki server 504 issues resolved (currently an obstacle to '''Bricodash''' documentation)&lt;br /&gt;
* broach discussion of absent Copyrights page on Wiki -- do we want to adopt a license??&lt;br /&gt;
* redraft lists in [[Bricodash#Event_Calendars|calendar sections]] as tables&lt;br /&gt;
* flesh out [[:Bricodash/Future|Bricodash Future Ideas]], explaining known requirements for each&lt;br /&gt;
&lt;br /&gt;
=== Cloud Log ===&lt;br /&gt;
&lt;br /&gt;
Incorporate remaining sources into rolling update log shown in lower left-hand corner.&lt;br /&gt;
&lt;br /&gt;
==== User Repositories ====&lt;br /&gt;
* refactor cloud/github to abstract away github/gitlab/etc&lt;br /&gt;
* allow more than most recent pushed repository to be shown&lt;br /&gt;
* add boxrs-based git repositories to Cloud Log panel&lt;br /&gt;
&lt;br /&gt;
==== Other Cloud Services ====&lt;br /&gt;
* Zendesk — count of unread/open inquiries&lt;br /&gt;
* Status updates on donations: Patreon, Paypal, Amazon Smile...&lt;br /&gt;
* write up requirements for [[Bricodash/Future#Instagram_Integration|Instagram Integration]]&lt;br /&gt;
* write up requirements for [[Bricodash/Future#Twitter_Integration|Twitter Integration]]&lt;br /&gt;
&lt;br /&gt;
==== Retire IFFF Wiki Updates ====&lt;br /&gt;
* bot to post daily cloud log update to #general on our slack&lt;br /&gt;
&lt;br /&gt;
=== Calendars ===&lt;br /&gt;
&lt;br /&gt;
Incorporate additional calculated and externally sourced calendar events.&lt;br /&gt;
&lt;br /&gt;
==== Calculation ====&lt;br /&gt;
* move HM anniversary dates to special .cal that takes precedence on HM calendar (and also appears on NYC)&lt;br /&gt;
* correctly calculate dates of International Astronomy Day (email out to Astronomical League for better calculation rules)&lt;br /&gt;
* calculate dates of Manhattanhenge (email out to library of American Museum of Natural History for formula)&lt;br /&gt;
* add eclipses and other significant astronomical events to holidays&lt;br /&gt;
* finish fleshing out remainder of movable feasts for [[Bricodash#Community_Calendar|Community Calendar]] (June forward)&lt;br /&gt;
&lt;br /&gt;
==== Integration ====&lt;br /&gt;
* almanac alt for almanac events&lt;br /&gt;
* add enum of event sources for sorting priority (when same start time)&lt;br /&gt;
* use google search to find Offside Tavern Meetup events&lt;br /&gt;
* add placeholder events for non-Meetup Offside Tavern events&lt;br /&gt;
* refactor brite search by location routine to common library&lt;br /&gt;
* add nyc mesh, nyc resistor, fat cat fab lab, makerbar, makerspace nyc (SI), futureworks (BK/SI) to [[Bricodash#Community_Calendar|Community Calendar]] &lt;br /&gt;
* also add grow with google (if still in NYC), blick, michaels, local library branches, makerish meetup events&lt;br /&gt;
&lt;br /&gt;
==== Advanced ====&lt;br /&gt;
* embed hotlinks in #thehaps channel event listings&lt;br /&gt;
* concise calendar response for interactive slackbot&lt;br /&gt;
* auto-capture of #thehaps posted events to [[Bricodash/Extra:Calendar]]&lt;br /&gt;
* automation/streamlining tools for cross-posting HM Meetup events to Spingo&lt;br /&gt;
* enable toggling between Welcome header and holiday greetings [[Bricodash#Community_Calendar|^]]&lt;br /&gt;
&lt;br /&gt;
=== Cleanup ===&lt;br /&gt;
&lt;br /&gt;
Remaining features and code maintenance before calling it a major release.&lt;br /&gt;
&lt;br /&gt;
* integrate citymapper API for local subway stations&lt;br /&gt;
* refactor source files from initial launch&lt;br /&gt;
* find owners to adopt data sourcing projects that require more than passive API calls (see sections below)&lt;br /&gt;
* squish and push fork to upstream&lt;br /&gt;
&lt;br /&gt;
=== Upgrades ===&lt;br /&gt;
&lt;br /&gt;
Once built, streamline and rewrite as a truly beautiful application.&lt;br /&gt;
&lt;br /&gt;
* migrate from bricolage to less power-hungry hardware&lt;br /&gt;
* combined community slack calendar to wiki page (requires privacy policy under brite license)&lt;br /&gt;
* reimplement bricolage to run as embedded system under elixir/scenic/nerves&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
* import python directly using beamparticle&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot; style=&amp;quot;border-right:solid 1px #a7d7f9;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;1%&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; padding-left: 20px; padding-bottom: 10px&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sub-Projects Needing Owners ==&lt;br /&gt;
&lt;br /&gt;
The projects below require an investment of time&amp;amp;mdash;such as active coordination with an API's owners&amp;amp;mdash;to be implemented, but would provide meaningful improvements to the overall feature-set of Bricodash if completed. &lt;br /&gt;
&lt;br /&gt;
At some point the description for each will be fleshed out to provide a full functional specification, together with an exploration of the requirements to move forward. For now, capsule bullet points serve as place holders. For more information, touch base with [[User:Beadsland]].&lt;br /&gt;
&lt;br /&gt;
=== Instagram Integration ===&lt;br /&gt;
&lt;br /&gt;
* add Instagram to Weird Photos and HM Cloud Log &amp;amp;mdash; this requires creating pages on Facebook under the new Graph API&lt;br /&gt;
&lt;br /&gt;
=== Twitter Integration ===&lt;br /&gt;
&lt;br /&gt;
* add Twitter to Weird Photos and HM Cloud Log &amp;amp;mdash; this requires emailing to get a dev account, then honoring Twitter's [https://developer.twitter.com/en/developer-terms/display-requirements.html Display Requirements]&lt;br /&gt;
&lt;br /&gt;
=== Slack Calendar Response Bot ===&lt;br /&gt;
&lt;br /&gt;
* interactive bot response to &amp;quot;What's happening?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Draft a Privacy Policy ===&lt;br /&gt;
&lt;br /&gt;
* draft privacy policy (per API reqs for public sites)&lt;br /&gt;
&lt;br /&gt;
=== Buzzer-Activated IR Remote ===&lt;br /&gt;
&lt;br /&gt;
Additionally, there are plans to tie a ceiling-mounted IR remote into the intercom buzzer to toggle inputs on the TV. &lt;br /&gt;
The idea would be that when the buzzer sounds, the remote would switch from the dashboard (on Chromecast) to a dedicated &lt;br /&gt;
full screen camera input.  After a delay the input would be toggled back to the Chromecast-hosted dashboard.  Such an&lt;br /&gt;
arrangement would free up the dashboard screen real-estate currently devoted to an around-the-clock camera feed&amp;amp;mdash;as, realistically, the only time one needs a camera feed is when a visitor is buzzing to be let in.&lt;br /&gt;
&lt;br /&gt;
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?&lt;br /&gt;
&lt;br /&gt;
* integrate with custom buzzer-activated IR remote hack&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Beadsland</name></author>
	</entry>
</feed>