updates
|
@ -4,7 +4,7 @@
|
|||
#+title: Home Intercom Replacement
|
||||
#+filetags: :project:
|
||||
* Home automation controls
|
||||
- Interface with Home Assistant to control lights and miscellaneous sensors.
|
||||
- Interface with [[id:5aeea464-e1ed-46e4-9293-87edaf385051][Home Assistant]] to control lights and miscellaneous sensors.
|
||||
* Audio and video calling
|
||||
- Consider leveraging [[https://github.com/jitsi/jitsi-meet][Jitsi Meet]], an open-source video conferencing system.
|
||||
* Customizeable user interface
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
:PROPERTIES:
|
||||
:ID: e79ad4ee-17d0-44f9-8270-2f19b65bc949
|
||||
:header-args:sql: :engine postgresql :dbhost reason :dbuser tutor :dbpassword tutor :database tutor :exports both
|
||||
:header-args: :eval no-export
|
||||
:END:
|
||||
#+title: Tutor
|
||||
|
||||
|
@ -207,3 +209,212 @@ https://www.topdecked.com/decks/alive/833c308f-219f-4624-8b32-1adedcb477f0
|
|||
: commanderDeckList -> DeckList -> Either InvalidCommanderDeck CommanderDecklist
|
||||
|
||||
: Deck = Deck [PreferredCard]
|
||||
|
||||
* Identifying and ordering sets
|
||||
#+name: sets
|
||||
#+begin_src sql
|
||||
SELECT s.set_code
|
||||
, s.name
|
||||
, COUNT(co.id) AS cards
|
||||
, MIN(c.release_date) AS release_date
|
||||
FROM sets AS s
|
||||
JOIN cards AS c USING (set_code)
|
||||
JOIN copies AS co USING (scryfall_id)
|
||||
GROUP BY s.set_code, s.name
|
||||
ORDER BY min(c.release_date) DESC
|
||||
#+end_src
|
||||
|
||||
#+RESULTS: sets
|
||||
| set_code | name | cards | release_date |
|
||||
|----------+-----------------------------------------------+-------+--------------|
|
||||
| TBOT | Transformers Tokens | 1 | 2022-11-18 |
|
||||
| BRC | The Brothers' War Commander | 209 | 2022-11-18 |
|
||||
| BRR | The Brothers' War Retro Artifacts | 56 | 2022-11-18 |
|
||||
| BOT | Transformers | 14 | 2022-11-18 |
|
||||
| BRO | The Brothers' War | 199 | 2022-11-18 |
|
||||
| UNF | Unfinity | 42 | 2022-10-07 |
|
||||
| DMU | Dominaria United | 219 | 2022-09-09 |
|
||||
| DMC | Dominaria United Commander | 35 | 2022-09-09 |
|
||||
| P30A | 30th Anniversary Promos | 2 | 2022-09-02 |
|
||||
| 2X2 | Double Masters 2022 | 459 | 2022-07-08 |
|
||||
| CLB | Commander Legends: Battle for Baldur's Gate | 94 | 2022-06-10 |
|
||||
| SNC | Streets of New Capenna | 203 | 2022-04-29 |
|
||||
| NCC | New Capenna Commander | 2 | 2022-04-29 |
|
||||
| SLX | Universes Within | 1 | 2022-03-03 |
|
||||
| NEO | Kamigawa: Neon Dynasty | 858 | 2022-02-18 |
|
||||
| NEC | Neon Dynasty Commander | 14 | 2022-02-18 |
|
||||
| VOC | Crimson Vow Commander | 1 | 2021-11-19 |
|
||||
| VOW | Innistrad: Crimson Vow | 105 | 2021-11-19 |
|
||||
| MID | Innistrad: Midnight Hunt | 13 | 2021-09-24 |
|
||||
| CMB2 | Mystery Booster Playtest Cards 2021 | 3 | 2021-08-20 |
|
||||
| AFR | Adventures in the Forgotten Realms | 213 | 2021-07-23 |
|
||||
| AFC | Forgotten Realms Commander | 70 | 2021-07-23 |
|
||||
| AAFR | Adventures in the Forgotten Realms Art Series | 3 | 2021-07-23 |
|
||||
| OAFC | Forgotten Realms Commander Display Commanders | 1 | 2021-07-23 |
|
||||
| PLG21 | Love Your LGS 2021 | 1 | 2021-06-22 |
|
||||
| MH2 | Modern Horizons 2 | 25 | 2021-06-18 |
|
||||
| STA | Strixhaven Mystical Archive | 29 | 2021-04-23 |
|
||||
| C21 | Commander 2021 | 74 | 2021-04-23 |
|
||||
| STX | Strixhaven: School of Mages | 369 | 2021-04-23 |
|
||||
| OC21 | Commander 2021 Display Commanders | 1 | 2021-04-23 |
|
||||
| TSTX | Strixhaven: School of Mages Tokens | 6 | 2021-04-23 |
|
||||
| TSR | Time Spiral Remastered | 1 | 2021-03-19 |
|
||||
| KHM | Kaldheim | 174 | 2021-02-05 |
|
||||
| TKHM | Kaldheim Tokens | 1 | 2021-02-05 |
|
||||
| KHC | Kaldheim Commander | 59 | 2021-02-05 |
|
||||
| CMR | Commander Legends | 481 | 2020-11-20 |
|
||||
| PLIST | The List | 8 | 2020-09-26 |
|
||||
| ZNR | Zendikar Rising | 54 | 2020-09-25 |
|
||||
| ZNC | Zendikar Rising Commander | 77 | 2020-09-25 |
|
||||
| JMP | Jumpstart | 1 | 2020-07-17 |
|
||||
| M21 | Core Set 2021 | 4 | 2020-07-03 |
|
||||
| PLG20 | Love Your LGS 2020 | 1 | 2020-05-18 |
|
||||
| IKO | Ikoria: Lair of Behemoths | 560 | 2020-04-24 |
|
||||
| C20 | Commander 2020 | 1 | 2020-04-17 |
|
||||
| THB | Theros Beyond Death | 93 | 2020-01-24 |
|
||||
| TTHB | Theros Beyond Death Tokens | 1 | 2020-01-24 |
|
||||
| SLD | Secret Lair Drop | 10 | 2019-12-16 |
|
||||
| MB1 | Mystery Booster | 42 | 2019-11-07 |
|
||||
| ELD | Throne of Eldraine | 147 | 2019-10-04 |
|
||||
| C19 | Commander 2019 | 101 | 2019-08-23 |
|
||||
| PM20 | Core Set 2020 Promos | 1 | 2019-07-12 |
|
||||
| M20 | Core Set 2020 | 600 | 2019-07-12 |
|
||||
| SS2 | Signature Spellbook: Gideon | 2 | 2019-06-28 |
|
||||
| TWAR | War of the Spark Tokens | 36 | 2019-05-03 |
|
||||
| WAR | War of the Spark | 544 | 2019-05-03 |
|
||||
| RNA | Ravnica Allegiance | 16 | 2019-01-25 |
|
||||
| PRNA | Ravnica Allegiance Promos | 1 | 2019-01-25 |
|
||||
| GRN | Guilds of Ravnica | 127 | 2018-10-05 |
|
||||
| C18 | Commander 2018 | 3 | 2018-08-09 |
|
||||
| M19 | Core Set 2019 | 1 | 2018-07-13 |
|
||||
| BBD | Battlebond | 1 | 2018-06-08 |
|
||||
| TDOM | Dominaria Tokens | 1 | 2018-04-27 |
|
||||
| DOM | Dominaria | 16 | 2018-04-27 |
|
||||
| RIX | Rivals of Ixalan | 29 | 2018-01-19 |
|
||||
| TRIX | Rivals of Ixalan Tokens | 1 | 2018-01-19 |
|
||||
| UST | Unstable | 119 | 2017-12-08 |
|
||||
| E02 | Explorers of Ixalan | 1 | 2017-11-24 |
|
||||
| XLN | Ixalan | 2 | 2017-09-29 |
|
||||
| C17 | Commander 2017 | 2 | 2017-08-25 |
|
||||
| THOU | Hour of Devastation Tokens | 1 | 2017-07-14 |
|
||||
| HOU | Hour of Devastation | 29 | 2017-07-14 |
|
||||
| E01 | Archenemy: Nicol Bolas | 1 | 2017-06-16 |
|
||||
| CMA | Commander Anthology | 1 | 2017-06-09 |
|
||||
| MM3 | Modern Masters 2017 | 1 | 2017-03-17 |
|
||||
| AER | Aether Revolt | 2 | 2017-01-20 |
|
||||
| C16 | Commander 2016 | 1 | 2016-11-11 |
|
||||
| PKLD | Kaladesh Promos | 1 | 2016-09-30 |
|
||||
| KLD | Kaladesh | 68 | 2016-09-30 |
|
||||
| EMN | Eldritch Moon | 1 | 2016-07-22 |
|
||||
| SOI | Shadows over Innistrad | 1 | 2016-04-08 |
|
||||
| C15 | Commander 2015 | 1 | 2015-11-13 |
|
||||
| ORI | Magic Origins | 1 | 2015-07-17 |
|
||||
| M15 | Magic 2015 | 44 | 2014-07-18 |
|
||||
| C13 | Commander 2013 | 1 | 2013-11-01 |
|
||||
| THS | Theros | 30 | 2013-09-27 |
|
||||
| M14 | Magic 2014 | 2 | 2013-07-19 |
|
||||
| GTC | Gatecrash | 1 | 2013-02-01 |
|
||||
| RTR | Return to Ravnica | 29 | 2012-10-05 |
|
||||
| M13 | Magic 2013 | 91 | 2012-07-13 |
|
||||
| AVR | Avacyn Restored | 47 | 2012-05-04 |
|
||||
| DKA | Dark Ascension | 52 | 2012-02-03 |
|
||||
| ISD | Innistrad | 354 | 2011-09-30 |
|
||||
| V11 | From the Vault: Legends | 1 | 2011-08-26 |
|
||||
| M12 | Magic 2012 | 244 | 2011-07-15 |
|
||||
| NPH | New Phyrexia | 244 | 2011-05-13 |
|
||||
| MBS | Mirrodin Besieged | 372 | 2011-02-04 |
|
||||
| PMBS | Mirrodin Besieged Promos | 1 | 2011-02-03 |
|
||||
| SOM | Scars of Mirrodin | 325 | 2010-10-01 |
|
||||
| PSOM | Scars of Mirrodin Promos | 1 | 2010-09-30 |
|
||||
| M11 | Magic 2011 | 320 | 2010-07-16 |
|
||||
| ROE | Rise of the Eldrazi | 329 | 2010-04-23 |
|
||||
| PWWK | Worldwake Promos | 2 | 2010-02-05 |
|
||||
| WWK | Worldwake | 149 | 2010-02-05 |
|
||||
| F10 | Friday Night Magic 2010 | 1 | 2010-01-01 |
|
||||
| ZEN | Zendikar | 76 | 2009-10-02 |
|
||||
| HOP | Planechase | 17 | 2009-09-04 |
|
||||
| M10 | Magic 2010 | 89 | 2009-07-17 |
|
||||
| CON | Conflux | 14 | 2009-02-06 |
|
||||
| PCON | Conflux Promos | 1 | 2009-01-31 |
|
||||
| PW09 | Wizards Play Network 2009 | 1 | 2009-01-01 |
|
||||
| DD2 | Duel Decks: Jace vs. Chandra | 120 | 2008-11-07 |
|
||||
| ALA | Shards of Alara | 22 | 2008-10-03 |
|
||||
| MOR | Morningtide | 1 | 2008-02-01 |
|
||||
| LRW | Lorwyn | 1 | 2007-10-12 |
|
||||
| 10E | Tenth Edition | 2 | 2007-07-13 |
|
||||
| PLC | Planar Chaos | 1 | 2007-02-02 |
|
||||
| CSP | Coldsnap | 2 | 2006-07-21 |
|
||||
| RAV | Ravnica: City of Guilds | 1 | 2005-10-07 |
|
||||
| 9ED | Ninth Edition | 1 | 2005-07-29 |
|
||||
| BOK | Betrayers of Kamigawa | 1 | 2005-02-04 |
|
||||
| CHK | Champions of Kamigawa | 5 | 2004-10-01 |
|
||||
| 5DN | Fifth Dawn | 46 | 2004-06-04 |
|
||||
| DST | Darksteel | 49 | 2004-02-06 |
|
||||
| MRD | Mirrodin | 102 | 2003-10-02 |
|
||||
| 8ED | Eighth Edition | 2 | 2003-07-28 |
|
||||
| SCG | Scourge | 53 | 2003-05-26 |
|
||||
| LGN | Legions | 37 | 2003-02-03 |
|
||||
| ONS | Onslaught | 32 | 2002-10-07 |
|
||||
| TOR | Torment | 29 | 2002-02-04 |
|
||||
| ODY | Odyssey | 230 | 2001-10-01 |
|
||||
| APC | Apocalypse | 672 | 2001-06-04 |
|
||||
| PAPC | Apocalypse Promos | 1 | 2001-05-26 |
|
||||
| 7ED | Seventh Edition | 196 | 2001-04-11 |
|
||||
| PLS | Planeshift | 42 | 2001-02-05 |
|
||||
| INV | Invasion | 141 | 2000-10-02 |
|
||||
| PCY | Prophecy | 32 | 2000-06-05 |
|
||||
| S00 | Starter 2000 | 6 | 2000-04-01 |
|
||||
| NEM | Nemesis | 98 | 2000-02-14 |
|
||||
| MMQ | Mercadian Masques | 165 | 1999-10-04 |
|
||||
| S99 | Starter 1999 | 3 | 1999-07-01 |
|
||||
| UDS | Urza's Destiny | 39 | 1999-06-07 |
|
||||
| 6ED | Classic Sixth Edition | 118 | 1999-04-21 |
|
||||
| ULG | Urza's Legacy | 38 | 1999-02-15 |
|
||||
| USG | Urza's Saga | 155 | 1998-10-12 |
|
||||
| EXO | Exodus | 21 | 1998-06-15 |
|
||||
| STH | Stronghold | 37 | 1998-03-02 |
|
||||
| TMP | Tempest | 35 | 1997-10-14 |
|
||||
| WTH | Weatherlight | 81 | 1997-06-09 |
|
||||
| 5ED | Fifth Edition | 73 | 1997-03-24 |
|
||||
| VIS | Visions | 4 | 1997-02-03 |
|
||||
| MIR | Mirage | 221 | 1996-10-08 |
|
||||
| ALL | Alliances | 13 | 1996-06-10 |
|
||||
| HML | Homelands | 45 | 1995-10-01 |
|
||||
| CHR | Chronicles | 2 | 1995-07-01 |
|
||||
| ICE | Ice Age | 116 | 1995-06-03 |
|
||||
| 4ED | Fourth Edition | 127 | 1995-04-01 |
|
||||
| FEM | Fallen Empires | 16 | 1994-11-01 |
|
||||
| DRK | The Dark | 3 | 1994-08-01 |
|
||||
| LEG | Legends | 2 | 1994-06-01 |
|
||||
| 3ED | Revised Edition | 43 | 1994-04-01 |
|
||||
| ATQ | Antiquities | 1 | 1994-03-04 |
|
||||
|
||||
#+begin_src python :var data=sets :var filename="tutor-sets.png" :results file :exports results
|
||||
from datetime import datetime
|
||||
import matplotlib
|
||||
matplotlib.use('SVG')
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
import pandas as pd
|
||||
|
||||
data = [{'code': code,
|
||||
'name': name,
|
||||
'cards': int(cards),
|
||||
'date': datetime.strptime(date, '%Y-%m-%d'),
|
||||
}
|
||||
for code, name, cards, date in data]
|
||||
data = pd.DataFrame(data).set_index('date').sort_index()
|
||||
fig, ax = plt.subplots(figsize=(14,8))
|
||||
data['cumcards'] = data['cards'].cumsum()
|
||||
data.plot(y='cumcards', ax=ax)
|
||||
for date, row in data[data['cards'] > 300].iterrows():
|
||||
ax.text(date, row['cumcards'], row['code'])
|
||||
plt.xlabel("Time")
|
||||
plt.ylabel("Cards")
|
||||
ax.get_legend().remove()
|
||||
plt.savefig(filename, transparent=True)
|
||||
return filename
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
[[file:tutor-sets.png]]
|
||||
|
|
|
@ -17,4 +17,5 @@
|
|||
** DONE [[id:511bfcb4-931f-4c0a-b78f-858b5efae0ad][Turntable Mounted Raspberry Pi]]
|
||||
** DONE [[id:efce506d-a354-4003-a70e-e0421dff0dc1][Solder fume extraction fan]]
|
||||
** TODO [[id:156e16da-f160-48ad-b0a7-75ff44fdf607][Home Intercom Replacement]]
|
||||
** DONE [[id:6a6cbe09-8a0a-4fa8-96ef-0c28600ca991][Leveraging existing coaxial cable for high-speed networking]]
|
||||
** TODO [[id:904db55f-f907-42b0-941e-5d2188f4a3c4][Wiring the house with ethernet]]
|
||||
|
|
BIN
monitor-layout.png
Normal file
After Width: | Height: | Size: 14 KiB |
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 6.0.2 (0)
|
||||
<!-- Generated by graphviz version 7.0.3 (0)
|
||||
-->
|
||||
<!-- Pages: 1 -->
|
||||
<svg width="1069pt" height="260pt"
|
||||
|
@ -23,8 +23,8 @@
|
|||
<!-- OpenAPIError->CastError -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>OpenAPIError->CastError</title>
|
||||
<path fill="none" stroke="black" d="M184.83,-217.81C159.64,-207 125.7,-192.42 99.14,-181.01"/>
|
||||
<polygon fill="black" stroke="black" points="100.29,-177.7 89.72,-176.97 97.53,-184.13 100.29,-177.7"/>
|
||||
<path fill="none" stroke="black" d="M184.42,-217.64C159.71,-207.03 126.71,-192.85 100.51,-181.6"/>
|
||||
<polygon fill="black" stroke="black" points="102.07,-178.46 91.5,-177.73 99.31,-184.89 102.07,-178.46"/>
|
||||
</g>
|
||||
<!-- DeserializeError -->
|
||||
<g id="node3" class="node">
|
||||
|
@ -35,8 +35,8 @@
|
|||
<!-- OpenAPIError->DeserializeError -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>OpenAPIError->DeserializeError</title>
|
||||
<path fill="none" stroke="black" d="M220.19,-215.7C220.19,-207.98 220.19,-198.71 220.19,-190.11"/>
|
||||
<polygon fill="black" stroke="black" points="223.7,-190.1 220.19,-180.1 216.7,-190.1 223.7,-190.1"/>
|
||||
<path fill="none" stroke="black" d="M220.19,-215.7C220.19,-208.41 220.19,-199.73 220.19,-191.54"/>
|
||||
<polygon fill="black" stroke="black" points="223.7,-191.62 220.19,-181.62 216.7,-191.62 223.7,-191.62"/>
|
||||
</g>
|
||||
<!-- UnmarshalError -->
|
||||
<g id="node5" class="node">
|
||||
|
@ -47,8 +47,8 @@
|
|||
<!-- OpenAPIError->UnmarshalError -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>OpenAPIError->UnmarshalError</title>
|
||||
<path fill="none" stroke="black" d="M261.15,-218.67C292.15,-207.82 334.93,-192.84 368.32,-181.16"/>
|
||||
<polygon fill="black" stroke="black" points="369.63,-184.4 377.92,-177.8 367.32,-177.8 369.63,-184.4"/>
|
||||
<path fill="none" stroke="black" d="M261.64,-218.5C291.96,-207.88 333.38,-193.39 366.28,-181.87"/>
|
||||
<polygon fill="black" stroke="black" points="367.37,-185.2 375.65,-178.59 365.06,-178.59 367.37,-185.2"/>
|
||||
</g>
|
||||
<!-- EmptyParameterValue -->
|
||||
<g id="node4" class="node">
|
||||
|
@ -59,8 +59,8 @@
|
|||
<!-- DeserializeError->EmptyParameterValue -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>DeserializeError->EmptyParameterValue</title>
|
||||
<path fill="none" stroke="black" d="M218.46,-143.7C217.69,-135.98 216.77,-126.71 215.91,-118.11"/>
|
||||
<polygon fill="black" stroke="black" points="219.38,-117.71 214.91,-108.1 212.42,-118.4 219.38,-117.71"/>
|
||||
<path fill="none" stroke="black" d="M218.46,-143.7C217.74,-136.41 216.87,-127.73 216.05,-119.54"/>
|
||||
<polygon fill="black" stroke="black" points="219.53,-119.21 215.06,-109.61 212.57,-119.91 219.53,-119.21"/>
|
||||
</g>
|
||||
<!-- ValidateError -->
|
||||
<g id="node6" class="node">
|
||||
|
@ -71,8 +71,8 @@
|
|||
<!-- UnmarshalError->ValidateError -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>UnmarshalError->ValidateError</title>
|
||||
<path fill="none" stroke="black" d="M420.19,-143.7C420.19,-135.98 420.19,-126.71 420.19,-118.11"/>
|
||||
<polygon fill="black" stroke="black" points="423.7,-118.1 420.19,-108.1 416.7,-118.1 423.7,-118.1"/>
|
||||
<path fill="none" stroke="black" d="M420.19,-143.7C420.19,-136.41 420.19,-127.73 420.19,-119.54"/>
|
||||
<polygon fill="black" stroke="black" points="423.7,-119.62 420.19,-109.62 416.7,-119.62 423.7,-119.62"/>
|
||||
</g>
|
||||
<!-- UnmarshallerError -->
|
||||
<g id="node7" class="node">
|
||||
|
@ -83,8 +83,8 @@
|
|||
<!-- UnmarshalError->UnmarshallerError -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>UnmarshalError->UnmarshallerError</title>
|
||||
<path fill="none" stroke="black" d="M466.47,-146.67C501.68,-135.76 550.35,-120.69 588.17,-108.97"/>
|
||||
<polygon fill="black" stroke="black" points="589.51,-112.22 598.03,-105.92 587.44,-105.53 589.51,-112.22"/>
|
||||
<path fill="none" stroke="black" d="M467.3,-146.41C502.03,-135.65 549.53,-120.94 586.86,-109.38"/>
|
||||
<polygon fill="black" stroke="black" points="587.63,-112.8 596.15,-106.5 585.56,-106.12 587.63,-112.8"/>
|
||||
</g>
|
||||
<!-- InvalidSchemaValue -->
|
||||
<g id="node8" class="node">
|
||||
|
@ -95,8 +95,8 @@
|
|||
<!-- ValidateError->InvalidSchemaValue -->
|
||||
<g id="edge7" class="edge">
|
||||
<title>ValidateError->InvalidSchemaValue</title>
|
||||
<path fill="none" stroke="black" d="M411.96,-72.05C408.1,-64.09 403.39,-54.41 399.07,-45.51"/>
|
||||
<polygon fill="black" stroke="black" points="402.1,-43.74 394.59,-36.28 395.81,-46.8 402.1,-43.74"/>
|
||||
<path fill="none" stroke="black" d="M411.79,-71.7C408.08,-64.07 403.64,-54.92 399.5,-46.4"/>
|
||||
<polygon fill="black" stroke="black" points="402.68,-44.93 395.16,-37.47 396.38,-47.99 402.68,-44.93"/>
|
||||
</g>
|
||||
<!-- InvalidSchemaFormatValue -->
|
||||
<g id="node9" class="node">
|
||||
|
@ -107,8 +107,8 @@
|
|||
<!-- UnmarshallerError->InvalidSchemaFormatValue -->
|
||||
<g id="edge8" class="edge">
|
||||
<title>UnmarshallerError->InvalidSchemaFormatValue</title>
|
||||
<path fill="none" stroke="black" d="M646.19,-71.7C646.19,-63.98 646.19,-54.71 646.19,-46.11"/>
|
||||
<polygon fill="black" stroke="black" points="649.7,-46.1 646.19,-36.1 642.7,-46.1 649.7,-46.1"/>
|
||||
<path fill="none" stroke="black" d="M646.19,-71.7C646.19,-64.41 646.19,-55.73 646.19,-47.54"/>
|
||||
<polygon fill="black" stroke="black" points="649.7,-47.62 646.19,-37.62 642.7,-47.62 649.7,-47.62"/>
|
||||
</g>
|
||||
<!-- FormatterNotFoundError -->
|
||||
<g id="node10" class="node">
|
||||
|
@ -119,8 +119,8 @@
|
|||
<!-- UnmarshallerError->FormatterNotFoundError -->
|
||||
<g id="edge9" class="edge">
|
||||
<title>UnmarshallerError->FormatterNotFoundError</title>
|
||||
<path fill="none" stroke="black" d="M702.84,-75.09C748.1,-63.97 811.78,-48.33 860.39,-36.39"/>
|
||||
<polygon fill="black" stroke="black" points="861.34,-39.76 870.22,-33.98 859.67,-32.96 861.34,-39.76"/>
|
||||
<path fill="none" stroke="black" d="M703.53,-74.92C748.09,-63.97 810.2,-48.72 858.29,-36.91"/>
|
||||
<polygon fill="black" stroke="black" points="858.92,-40.36 867.79,-34.57 857.25,-33.56 858.92,-40.36"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 6.3 KiB After Width: | Height: | Size: 6.3 KiB |
BIN
qrcode.png
Normal file
After Width: | Height: | Size: 21 KiB |
221
sailmaker-network.svg
Normal file
|
@ -0,0 +1,221 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentStyleType="text/css" height="1113px" preserveAspectRatio="none" style="width:2602px;height:1113px;background:#FFFFFF;" version="1.1" viewBox="0 0 2602 1113" width="2602px" zoomAndPan="magnify"><defs/><g><!--MD5=[37c1251be6f3011ebe164d28e685a0b3]
|
||||
cluster Outside--><g id="cluster_Outside"><rect fill="none" height="394.5" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:1.0;" width="745" x="1560" y="596.17"/><path d="M1624,596.17 L1624,608.2379 L1614,618.2379 L1560,618.2379 " fill="none" style="stroke:#181818;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="54" x="1563" y="612.1359">Outside</text></g><!--MD5=[467e07fe1f185e1e6511a559bfbeb247]
|
||||
cluster Outside 4-Way Splitter\n(5-1000Mhz)--><g id="cluster_Outside 4-Way Splitter\n(5-1000Mhz)"><rect fill="none" height="276.5" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:1.0;" width="315" x="1970" y="690.17"/><rect fill="none" height="10" style="stroke:#181818;stroke-width:1.0;" width="15" x="2265" y="695.17"/><rect fill="none" height="2" style="stroke:#181818;stroke-width:1.0;" width="4" x="2263" y="697.17"/><rect fill="none" height="2" style="stroke:#181818;stroke-width:1.0;" width="4" x="2263" y="701.17"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="156" x="2049.5" y="718.1359">Outside 4-Way Splitter</text><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="84" x="2085.5" y="737.2039">(5-1000Mhz)</text></g><!--MD5=[6bf9421aa1eccedf9d2f3e13ec19202e]
|
||||
cluster Outside 3-Way Splitter\n(5-1670Mhz)--><g id="cluster_Outside 3-Way Splitter\n(5-1670Mhz)"><rect fill="none" height="276.5" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:1.0;" width="221" x="1717" y="690.17"/><rect fill="none" height="10" style="stroke:#181818;stroke-width:1.0;" width="15" x="1918" y="695.17"/><rect fill="none" height="2" style="stroke:#181818;stroke-width:1.0;" width="4" x="1916" y="697.17"/><rect fill="none" height="2" style="stroke:#181818;stroke-width:1.0;" width="4" x="1916" y="701.17"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="156" x="1749.5" y="718.1359">Outside 3-Way Splitter</text><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="84" x="1785.5" y="737.2039">(5-1670Mhz)</text></g><!--MD5=[f8cc17ccc783b74434826ccab25ba625]
|
||||
cluster Basement--><g id="cluster_Basement"><rect fill="none" height="259.5" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:1.0;" width="251" x="2345" y="848.17"/><path d="M2424,848.17 L2424,860.2379 L2414,870.2379 L2345,870.2379 " fill="none" style="stroke:#181818;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="69" x="2348" y="864.1359">Basement</text></g><!--MD5=[f86169e3dda3043549e5c462a30afda3]
|
||||
cluster BasementSplitter--><g id="cluster_BasementSplitter"><rect fill="none" height="153.5" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:1.0;" width="200" x="2376" y="930.17"/><rect fill="none" height="10" style="stroke:#181818;stroke-width:1.0;" width="15" x="2556" y="935.17"/><rect fill="none" height="2" style="stroke:#181818;stroke-width:1.0;" width="4" x="2554" y="937.17"/><rect fill="none" height="2" style="stroke:#181818;stroke-width:1.0;" width="4" x="2554" y="941.17"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="120" x="2416" y="958.1359">BasementSplitter</text></g><!--MD5=[e2f2a21bfc041abec82827473a12cde1]
|
||||
cluster FirstFloor--><g id="cluster_FirstFloor"><rect fill="none" height="481.5" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:1.0;" width="1513" x="7" y="299.67"/><path d="M84,299.67 L84,311.7379 L74,321.7379 L7,321.7379 " fill="none" style="stroke:#181818;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="67" x="10" y="315.6359">FirstFloor</text></g><!--MD5=[cb54ebe2f9c5aeaefcd7c015b68208bc]
|
||||
cluster MediaRoom--><g id="cluster_MediaRoom"><rect fill="none" height="141" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:1.0;" width="492" x="980" y="361.67"/><path d="M1073,361.67 L1073,373.7379 L1063,383.7379 L980,383.7379 " fill="none" style="stroke:#181818;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="83" x="983" y="377.6359">MediaRoom</text></g><!--MD5=[f3658196ad1502bae23d9f3b31f40fde]
|
||||
cluster LivingRoom--><g id="cluster_LivingRoom"><rect fill="none" height="379.5" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:1.0;" width="893" x="47" y="361.67"/><path d="M140,361.67 L140,373.7379 L130,383.7379 L47,383.7379 " fill="none" style="stroke:#181818;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="83" x="50" y="377.6359">LivingRoom</text></g><!--MD5=[c0ccea6128904d0a027d6931b9256a5b]
|
||||
cluster SwitchTV--><g id="cluster_SwitchTV"><rect fill="none" height="263" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:1.0;" width="200" x="605" y="454.17"/><rect fill="none" height="10" style="stroke:#181818;stroke-width:1.0;" width="15" x="785" y="459.17"/><rect fill="none" height="2" style="stroke:#181818;stroke-width:1.0;" width="4" x="783" y="461.17"/><rect fill="none" height="2" style="stroke:#181818;stroke-width:1.0;" width="4" x="783" y="465.17"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="63" x="673.5" y="482.1359">SwitchTV</text></g><!--MD5=[15ae8e6fab4c92294c05429a46550bb6]
|
||||
cluster SecondFloor--><g id="cluster_SecondFloor"><rect fill="none" height="465.5" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:1.0;" width="812" x="1560" y="63.67"/><path d="M1656,63.67 L1656,75.7379 L1646,85.7379 L1560,85.7379 " fill="none" style="stroke:#181818;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="86" x="1563" y="79.6359">SecondFloor</text></g><!--MD5=[a4a07562c5f551d21acb31a763471d14]
|
||||
cluster Office--><g id="cluster_Office"><rect fill="none" height="379.5" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:1.0;" width="740" x="1600" y="117.67"/><path d="M1650,117.67 L1650,129.7379 L1640,139.7379 L1600,139.7379 " fill="none" style="stroke:#181818;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="40" x="1603" y="133.6359">Office</text></g><!--MD5=[acc25037846a5f8ec1c3c1bd104ccd06]
|
||||
cluster SwitchOffice--><g id="cluster_SwitchOffice"><rect fill="none" height="279" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:1.0;" width="200" x="1995" y="202.17"/><rect fill="none" height="10" style="stroke:#181818;stroke-width:1.0;" width="15" x="2175" y="207.17"/><rect fill="none" height="2" style="stroke:#181818;stroke-width:1.0;" width="4" x="2173" y="209.17"/><rect fill="none" height="2" style="stroke:#181818;stroke-width:1.0;" width="4" x="2173" y="213.17"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="86" x="2052" y="230.1359">SwitchOffice</text></g><!--MD5=[5bc0fd5d699c68db4c9b7e119bf3ea06]
|
||||
entity ONT--><g id="elem_ONT"><rect fill="#F1F1F1" height="49.0679" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="70" x="1603" y="665.67"/><rect fill="#F1F1F1" height="10" style="stroke:#181818;stroke-width:0.5;" width="15" x="1653" y="670.67"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="1651" y="672.67"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="1651" y="676.67"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="30" x="1618" y="700.6359">ONT</text></g><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="42" x="1967" y="668.068">os4_in</text><rect fill="#F1F1F1" height="12" style="stroke:#181818;stroke-width:1.5;" width="12" x="1982" y="684.17"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="37" x="2084.5" y="668.068">os4_1</text><rect fill="#F1F1F1" height="12" style="stroke:#181818;stroke-width:1.5;" width="12" x="2097" y="684.17"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="37" x="2166.5" y="668.068">os4_2</text><rect fill="#F1F1F1" height="12" style="stroke:#181818;stroke-width:1.5;" width="12" x="2179" y="684.17"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="37" x="2248.5" y="668.068">os4_3</text><rect fill="#F1F1F1" height="12" style="stroke:#181818;stroke-width:1.5;" width="12" x="2261" y="684.17"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="37" x="2037.5" y="668.068">os4_4</text><rect fill="#F1F1F1" height="12" style="stroke:#181818;stroke-width:1.5;" width="12" x="2050" y="684.17"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="42" x="1714" y="668.068">os3_in</text><rect fill="#F1F1F1" height="12" style="stroke:#181818;stroke-width:1.5;" width="12" x="1729" y="684.17"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="37" x="1819.5" y="668.068">os3_1</text><rect fill="#F1F1F1" height="12" style="stroke:#181818;stroke-width:1.5;" width="12" x="1832" y="684.17"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="37" x="1901.5" y="668.068">os3_2</text><rect fill="#F1F1F1" height="12" style="stroke:#181818;stroke-width:1.5;" width="12" x="1914" y="684.17"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="35" x="2376.5" y="908.068">bs_in</text><rect fill="#F1F1F1" height="12" style="stroke:#181818;stroke-width:1.5;" width="12" x="2388" y="924.17"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="30" x="2461" y="908.068">bs_1</text><rect fill="#F1F1F1" height="12" style="stroke:#181818;stroke-width:1.5;" width="12" x="2470" y="924.17"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="30" x="2543" y="908.068">bs_2</text><rect fill="#F1F1F1" height="12" style="stroke:#181818;stroke-width:1.5;" width="12" x="2552" y="924.17"/><!--MD5=[953a8c67cfe21abaf9bf45dad8506ca8]
|
||||
entity Router--><g id="elem_Router"><rect fill="#F1F1F1" height="49.0679" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="85" x="1023.5" y="429.67"/><rect fill="#F1F1F1" height="10" style="stroke:#181818;stroke-width:0.5;" width="15" x="1088.5" y="434.67"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="1086.5" y="436.67"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="1086.5" y="440.67"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="45" x="1038.5" y="464.6359">Router</text></g><!--MD5=[3d71118d3a8f57a0a328e5e31c4c2f46]
|
||||
entity Reason--><g id="elem_Reason"><rect fill="#F1F1F1" height="49.0679" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="89" x="1236.5" y="429.67"/><rect fill="#F1F1F1" height="10" style="stroke:#181818;stroke-width:0.5;" width="15" x="1305.5" y="434.67"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="1303.5" y="436.67"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="1303.5" y="440.67"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="49" x="1251.5" y="464.6359">Reason</text></g><!--MD5=[d7c207b710dff6084fba090114c53cb6]
|
||||
entity MoCA1--><g id="elem_MoCA1"><rect fill="#F1F1F1" height="49.0679" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="87" x="1360.5" y="429.67"/><rect fill="#F1F1F1" height="10" style="stroke:#181818;stroke-width:0.5;" width="15" x="1427.5" y="434.67"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="1425.5" y="436.67"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="1425.5" y="440.67"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="47" x="1375.5" y="464.6359">MoCA1</text></g><!--MD5=[d5716578fab8001c0e2e2b23329cd627]
|
||||
entity MoCA2--><g id="elem_MoCA2"><rect fill="#F1F1F1" height="49.0679" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="87" x="828.5" y="429.67"/><rect fill="#F1F1F1" height="10" style="stroke:#181818;stroke-width:0.5;" width="15" x="895.5" y="434.67"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="893.5" y="436.67"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="893.5" y="440.67"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="47" x="843.5" y="464.6359">MoCA2</text></g><!--MD5=[b455f665cc07031e08a036833e428b39]
|
||||
entity SonyBravia4K--><g id="elem_SonyBravia4K"><rect fill="#F1F1F1" height="49.0679" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="131" x="450.5" y="429.67"/><rect fill="#F1F1F1" height="10" style="stroke:#181818;stroke-width:0.5;" width="15" x="561.5" y="434.67"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="559.5" y="436.67"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="559.5" y="440.67"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="91" x="465.5" y="464.6359">SonyBravia4K</text></g><!--MD5=[e0d6f375b978d5509d3381cd9dbffeb7]
|
||||
entity PS4W--><g id="elem_PS4W"><rect fill="#F1F1F1" height="49.0679" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="77" x="230.5" y="429.67"/><rect fill="#F1F1F1" height="10" style="stroke:#181818;stroke-width:0.5;" width="15" x="287.5" y="434.67"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="285.5" y="436.67"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="285.5" y="440.67"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="37" x="245.5" y="464.6359">PS4W</text></g><!--MD5=[f0b2b607f1643545299345a8b2376565]
|
||||
entity PS4R--><g id="elem_PS4R"><rect fill="#F1F1F1" height="49.0679" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="73" x="342.5" y="429.67"/><rect fill="#F1F1F1" height="10" style="stroke:#181818;stroke-width:0.5;" width="15" x="395.5" y="434.67"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="393.5" y="436.67"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="393.5" y="440.67"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="33" x="357.5" y="464.6359">PS4R</text></g><!--MD5=[cf49ceaa0eadbbd6ccc0ab1bb3c6f069]
|
||||
entity SwitchW1--><g id="elem_SwitchW1"><rect fill="#F1F1F1" height="49.0679" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="105" x="90.5" y="429.67"/><rect fill="#F1F1F1" height="10" style="stroke:#181818;stroke-width:0.5;" width="15" x="175.5" y="434.67"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="173.5" y="436.67"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="173.5" y="440.67"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="65" x="105.5" y="464.6359">SwitchW1</text></g><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="27" x="609.5" y="432.068">tvs1</text><rect fill="#F1F1F1" height="12" style="stroke:#181818;stroke-width:1.5;" width="12" x="617" y="448.17"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="27" x="691.5" y="432.068">tvs2</text><rect fill="#F1F1F1" height="12" style="stroke:#181818;stroke-width:1.5;" width="12" x="699" y="448.17"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="27" x="773.5" y="432.068">tvs3</text><rect fill="#F1F1F1" height="12" style="stroke:#181818;stroke-width:1.5;" width="12" x="781" y="448.17"/><!--MD5=[10c98924d090d36ae48f701be37277b1]
|
||||
entity Zephyrus--><g id="elem_Zephyrus"><rect fill="#F1F1F1" height="49.0679" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="103" x="1868.5" y="177.67"/><rect fill="#F1F1F1" height="10" style="stroke:#181818;stroke-width:0.5;" width="15" x="1951.5" y="182.67"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="1949.5" y="184.67"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="1949.5" y="188.67"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="63" x="1883.5" y="212.6359">Zephyrus</text></g><!--MD5=[a45f249392b82524c27e785b75714247]
|
||||
entity MoCA3--><g id="elem_MoCA3"><rect fill="#F1F1F1" height="49.0679" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="87" x="2236.5" y="177.67"/><rect fill="#F1F1F1" height="10" style="stroke:#181818;stroke-width:0.5;" width="15" x="2303.5" y="182.67"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="2301.5" y="184.67"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="2301.5" y="188.67"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="47" x="2251.5" y="212.6359">MoCA3</text></g><!--MD5=[e3b0093dcd60881c90c5b99158370823]
|
||||
entity RokuTV--><g id="elem_RokuTV"><rect fill="#F1F1F1" height="49.0679" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="89" x="1744.5" y="177.67"/><rect fill="#F1F1F1" height="10" style="stroke:#181818;stroke-width:0.5;" width="15" x="1813.5" y="182.67"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="1811.5" y="184.67"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="1811.5" y="188.67"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="49" x="1759.5" y="212.6359">RokuTV</text></g><!--MD5=[1127cfddf9b808cf8d403b7dff24fc77]
|
||||
entity SwitchR--><g id="elem_SwitchR"><rect fill="#F1F1F1" height="49.0679" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="93" x="1616.5" y="177.67"/><rect fill="#F1F1F1" height="10" style="stroke:#181818;stroke-width:0.5;" width="15" x="1689.5" y="182.67"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="1687.5" y="184.67"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="1687.5" y="188.67"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="53" x="1631.5" y="212.6359">SwitchR</text></g><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="28" x="1999" y="180.068">ofs1</text><rect fill="#F1F1F1" height="12" style="stroke:#181818;stroke-width:1.5;" width="12" x="2007" y="196.17"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="28" x="2081" y="180.068">ofs2</text><rect fill="#F1F1F1" height="12" style="stroke:#181818;stroke-width:1.5;" width="12" x="2089" y="196.17"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="28" x="2163" y="180.068">ofs3</text><rect fill="#F1F1F1" height="12" style="stroke:#181818;stroke-width:1.5;" width="12" x="2171" y="196.17"/><!--MD5=[00150ad55de445eca92709ed50727c09]
|
||||
link SecondFloor to FirstFloor--><!--MD5=[89ff86871d4e14082c39c2ac0a1190c8]
|
||||
link FirstFloor to Basement--><!--MD5=[1bd0cacf9dc5145685d75fe36a5dbc11]
|
||||
link FirstFloor to Outside--><!--MD5=[e6b4179212f947a51cae3c352ad2b628]
|
||||
link MediaRoom to LivingRoom--><!--MD5=[7046de9ed6359226a07d449a6295ccf1]
|
||||
link Router to ONT--><g id="link_Router_ONT"><path d="M1097.14,479.09 C1126.74,500.42 1173.39,530.47 1219,545.17 C1299.71,571.18 1531.98,528.21 1599,580.17 C1625.21,600.49 1633.83,639.9 1636.65,665.35 " fill="none" id="Router-ONT" style="stroke:#0000FF;stroke-width:5.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="91" x="1586" y="568.067">Ethernet (1000)</text></g><!--MD5=[23a792ef73beb72f01176c9ee4691167]
|
||||
link Router to Reason--><g id="link_Router_Reason"><path d="M1108.99,454.17 C1145.88,454.17 1198.84,454.17 1236.23,454.17 " fill="none" id="Router-Reason" style="stroke:#0000FF;stroke-width:5.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="91" x="1127" y="447.067">Ethernet (1000)</text></g><!--MD5=[b2d5378f5f4e2b3b84f3c8db6dedf1b3]
|
||||
link Router to MoCA1--><g id="link_Router_MoCA1"><path d="M1081.53,429.18 C1105.72,392.93 1156.2,327.26 1219,301.25 C1269.92,280.17 1297.38,270.34 1343,301.25 C1385.59,330.12 1398.44,393.99 1402.32,429.37 " fill="none" id="Router-MoCA1" style="stroke:#0000FF;stroke-width:5.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="91" x="1188.5" y="271.567">Ethernet (1000)</text></g><!--MD5=[33cc68abc6f8132949a6a199c50b8752]
|
||||
link MoCA1 to os3_in--><g id="link_MoCA1_os3_in"><path d="M1409.52,478.96 C1415.86,500.34 1428.55,530.57 1452,545.17 C1474.84,559.39 1672.18,537.44 1694,553.17 C1738.41,585.18 1736.63,663.95 1735.37,684.3 " fill="none" id="MoCA1-os3_in" style="stroke:#000000;stroke-width:6.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="30" x="1713" y="568.067">Coax</text></g><!--MD5=[b572d44bd5e6056600cbd9b483a06262]
|
||||
link MoCA3 to os3_2--><g id="link_MoCA3_os3_2"><path d="M2281.91,227.12 C2285.46,290.01 2285.51,460.8 2191,545.17 C2108.62,618.71 2026.3,505.43 1945,580.17 C1914.27,608.42 1917.52,666.1 1919.35,683.85 " fill="none" id="MoCA3-os3_2" style="stroke:#000000;stroke-width:6.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="30" x="2283" y="459.567">Coax</text></g><!--MD5=[0425a2e35c43396a2fabd0e0f706d239]
|
||||
link os3_1 to os4_in--><g id="link_os3_1_os4_in"><path d="M1838.36,683.68 C1839.87,663.31 1847.59,600.53 1886,574.92 C1906.8,561.05 1922.8,564.16 1942,580.17 C1975.86,608.41 1985.22,665.81 1987.41,684.29 " fill="none" id="os3_1-os4_in" style="stroke:#000000;stroke-width:6.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="30" x="1887" y="568.067">Coax</text></g><!--MD5=[d3471344bb9c2b908d31790153abab57]
|
||||
link os4_1 to bs_in--><g id="link_os4_1_bs_in"><path d="M2104.2,696.46 C2108.49,714.1 2124.88,771.24 2162,797.17 C2243.89,854.36 2315.29,759.67 2384,832.17 C2408.69,858.22 2399.34,907.65 2395.4,923.87 " fill="none" id="os4_1-bs_in" style="stroke:#000000;stroke-width:6.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="30" x="2372" y="820.067">Coax</text></g><!--MD5=[99039c65d30befee5c5b9dc532169eca]
|
||||
link MoCA2 to bs_1--><g id="link_MoCA2_bs_1"><path d="M889.62,478.76 C907.57,500.65 937.6,531.8 972,545.17 C996.7,554.77 1899.52,552.08 1926,553.17 C2006.82,556.51 2221.08,536.24 2289,580.17 C2424.06,667.52 2468.45,886.78 2475.09,923.82 " fill="none" id="MoCA2-bs_1" style="stroke:#000000;stroke-width:6.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="30" x="2440" y="695.567">Coax</text></g><!--MD5=[3182de7b3c669b4c193364473df0fb67]
|
||||
link tvs1 to MoCA2--><g id="link_tvs1_MoCA2"><path d="M622.86,447.91 C622.61,418.72 625.94,295.76 698.5,255.17 C734.57,234.99 755.43,234.99 791.5,255.17 C853.78,290.01 867.93,384.08 871.11,429.27 " fill="none" id="tvs1-MoCA2" style="stroke:#FFD700;stroke-width:5.0;"/></g><!--MD5=[f19c00871fa5a4ed9ef0385e7388b073]
|
||||
link tvs2 to SonyBravia4K--><g id="link_tvs2_SonyBravia4K"><path d="M705.1,447.91 C705.2,418.74 701.18,295.83 628.5,255.17 C557.32,215.35 527.93,367.69 519.1,429.35 " fill="none" id="tvs2-SonyBravia4K" style="stroke:#FFD700;stroke-width:5.0;"/></g><!--MD5=[c9b8c8433ea21b225528467dad241bcf]
|
||||
link tvs3 to PS4R--><g id="link_tvs3_PS4R"><path d="M787.1,447.91 C787.2,418.74 783.18,295.83 710.5,255.17 C660.08,226.96 500.92,226.96 450.5,255.17 C389.15,289.49 379.57,383.82 378.65,429.17 " fill="none" id="tvs3-PS4R" style="stroke:#FFD700;stroke-width:5.0;"/></g><!--MD5=[4a1f446ce122ee6c42c613dc87ce2ad6]
|
||||
link ofs1 to MoCA3--><g id="link_ofs1_MoCA3"><path d="M2013.55,195.71 C2015.84,173.54 2026.71,100.29 2072,71 C2119.4,40.35 2149.71,43.51 2199,71 C2239.67,93.69 2262.47,146.13 2272.91,177.4 " fill="none" id="ofs1-MoCA3" style="stroke:#FFD700;stroke-width:5.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="81" x="2154.5" y="35.567">Ethernet(100)</text></g><!--MD5=[0bca3ed2706d45e3ccaa0e61a2da3720]
|
||||
link ofs2 to Zephyrus--><g id="link_ofs2_Zephyrus"><path d="M2094.5,195.71 C2092.37,173.55 2082.07,100.35 2037,71 C2019.87,59.85 2008.56,60.54 1991,71 C1952.4,94 1933.51,146.07 1925.34,177.25 " fill="none" id="ofs2-Zephyrus" style="stroke:#FFD700;stroke-width:5.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="84" x="1972" y="35.567">Ethernet (100)</text></g><!--MD5=[e4cdbe132c93a3ecd104f3c8247b4696]
|
||||
link ofs3 to RokuTV--><g id="link_ofs3_RokuTV"><path d="M2176.5,195.71 C2174.37,173.55 2164.07,100.35 2119,71 C2019.19,6 1951.62,7.27 1851,71 C1814.08,94.39 1798.73,146.32 1792.66,177.37 " fill="none" id="ofs3-RokuTV" style="stroke:#FFD700;stroke-width:5.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="84" x="2063" y="35.567">Ethernet (100)</text></g><!--MD5=[d06a536e4e58020d14c38773f9d7c45c]
|
||||
@startuml
|
||||
'skinparam linetype ortho
|
||||
|
||||
frame Outside {
|
||||
component ONT
|
||||
component "Outside 4-Way Splitter\n(5-1000Mhz)" {
|
||||
port os4_in
|
||||
port os4_1
|
||||
port os4_2
|
||||
port os4_3
|
||||
port os4_4
|
||||
}
|
||||
component "Outside 3-Way Splitter\n(5-1670Mhz)" {
|
||||
port os3_in
|
||||
port os3_1
|
||||
port os3_2
|
||||
}
|
||||
}
|
||||
frame Basement {
|
||||
component BasementSplitter {
|
||||
port bs_in
|
||||
port bs_1
|
||||
port bs_2
|
||||
}
|
||||
}
|
||||
frame FirstFloor {
|
||||
frame MediaRoom {
|
||||
component Router
|
||||
component Reason
|
||||
component MoCA1
|
||||
}
|
||||
frame LivingRoom {
|
||||
component MoCA2
|
||||
component SwitchTV {
|
||||
port tvs1
|
||||
port tvs2
|
||||
port tvs3
|
||||
}
|
||||
component SonyBravia4K
|
||||
component PS4W
|
||||
component PS4R
|
||||
component SwitchW1
|
||||
}
|
||||
}
|
||||
frame SecondFloor {
|
||||
frame Office {
|
||||
component Zephyrus
|
||||
component MoCA3
|
||||
component SwitchOffice {
|
||||
port ofs1
|
||||
port ofs2
|
||||
port ofs3
|
||||
}
|
||||
component RokuTV
|
||||
component SwitchR
|
||||
}
|
||||
}
|
||||
|
||||
SecondFloor -[hidden]down- FirstFloor
|
||||
FirstFloor -[hidden]down- Basement
|
||||
FirstFloor -[hidden]right- Outside
|
||||
LivingRoom -[hidden]left- MediaRoom
|
||||
|
||||
ONT -[#blue,thickness=5]up- Router : Ethernet (1000)
|
||||
|
||||
Router -[#blue,thickness=5] Reason : Ethernet (1000)
|
||||
Router -[#blue,thickness=5] MoCA1 : Ethernet (1000)
|
||||
|
||||
|
||||
os3_in -[#black,thickness=6]up- MoCA1 : Coax
|
||||
os3_2 -[#black,thickness=6]up- MoCA3 : Coax
|
||||
os3_1 -[#black,thickness=6] os4_in : Coax
|
||||
|
||||
bs_in -[#black,thickness=6]up- os4_1 : Coax
|
||||
bs_1 -[#black,thickness=6]up- MoCA2 : Coax
|
||||
|
||||
tvs1 -[#gold,thickness=5] MoCA2
|
||||
tvs2 -[#gold,thickness=5] SonyBravia4K
|
||||
tvs3 -[#gold,thickness=5] PS4R
|
||||
|
||||
ofs1 -[#gold,thickness=5] MoCA3 : Ethernet(100)
|
||||
ofs2 -[#gold,thickness=5] Zephyrus : Ethernet (100)
|
||||
ofs3 -[#gold,thickness=5] RokuTV : Ethernet (100)
|
||||
@enduml
|
||||
|
||||
@startuml
|
||||
|
||||
frame Outside {
|
||||
component ONT
|
||||
component "Outside 4-Way Splitter\n(5-1000Mhz)" {
|
||||
port os4_in
|
||||
port os4_1
|
||||
port os4_2
|
||||
port os4_3
|
||||
port os4_4
|
||||
}
|
||||
component "Outside 3-Way Splitter\n(5-1670Mhz)" {
|
||||
port os3_in
|
||||
port os3_1
|
||||
port os3_2
|
||||
}
|
||||
}
|
||||
frame Basement {
|
||||
component BasementSplitter {
|
||||
port bs_in
|
||||
port bs_1
|
||||
port bs_2
|
||||
}
|
||||
}
|
||||
frame FirstFloor {
|
||||
frame MediaRoom {
|
||||
component Router
|
||||
component Reason
|
||||
component MoCA1
|
||||
}
|
||||
frame LivingRoom {
|
||||
component MoCA2
|
||||
component SwitchTV {
|
||||
port tvs1
|
||||
port tvs2
|
||||
port tvs3
|
||||
}
|
||||
component SonyBravia4K
|
||||
component PS4W
|
||||
component PS4R
|
||||
component SwitchW1
|
||||
}
|
||||
}
|
||||
frame SecondFloor {
|
||||
frame Office {
|
||||
component Zephyrus
|
||||
component MoCA3
|
||||
component SwitchOffice {
|
||||
port ofs1
|
||||
port ofs2
|
||||
port ofs3
|
||||
}
|
||||
component RokuTV
|
||||
component SwitchR
|
||||
}
|
||||
}
|
||||
|
||||
SecondFloor -[hidden]down- FirstFloor
|
||||
FirstFloor -[hidden]down- Basement
|
||||
FirstFloor -[hidden]right- Outside
|
||||
LivingRoom -[hidden]left- MediaRoom
|
||||
|
||||
ONT -[#blue,thickness=5]up- Router : Ethernet (1000)
|
||||
|
||||
Router -[#blue,thickness=5] Reason : Ethernet (1000)
|
||||
Router -[#blue,thickness=5] MoCA1 : Ethernet (1000)
|
||||
|
||||
|
||||
os3_in -[#black,thickness=6]up- MoCA1 : Coax
|
||||
os3_2 -[#black,thickness=6]up- MoCA3 : Coax
|
||||
os3_1 -[#black,thickness=6] os4_in : Coax
|
||||
|
||||
bs_in -[#black,thickness=6]up- os4_1 : Coax
|
||||
bs_1 -[#black,thickness=6]up- MoCA2 : Coax
|
||||
|
||||
tvs1 -[#gold,thickness=5] MoCA2
|
||||
tvs2 -[#gold,thickness=5] SonyBravia4K
|
||||
tvs3 -[#gold,thickness=5] PS4R
|
||||
|
||||
ofs1 -[#gold,thickness=5] MoCA3 : Ethernet(100)
|
||||
ofs2 -[#gold,thickness=5] Zephyrus : Ethernet (100)
|
||||
ofs3 -[#gold,thickness=5] RokuTV : Ethernet (100)
|
||||
@enduml
|
||||
|
||||
PlantUML version 1.2022.12(Sun Oct 23 14:12:26 EDT 2022)
|
||||
(GPL source distribution)
|
||||
Java Runtime: OpenJDK Runtime Environment
|
||||
JVM: OpenJDK 64-Bit Server VM
|
||||
Default Encoding: UTF-8
|
||||
Language: en
|
||||
Country: US
|
||||
--></g></svg>
|
After Width: | Height: | Size: 31 KiB |
BIN
tutor-sets.png
Normal file
After Width: | Height: | Size: 30 KiB |
44
validation-and-sanitization.svg
Normal file
|
@ -0,0 +1,44 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentStyleType="text/css" height="115px" preserveAspectRatio="none" style="width:864px;height:115px;background:#FFFFFF;" version="1.1" viewBox="0 0 864 115" width="864px" zoomAndPan="magnify"><defs/><g><!--MD5=[fac864e77539af95038f0151207ed802]
|
||||
cluster API--><g id="cluster_API"><rect fill="none" height="102" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:1.0;" width="416" x="99.338" y="7"/><rect fill="none" height="10" style="stroke:#181818;stroke-width:1.0;" width="15" x="495.338" y="12"/><rect fill="none" height="2" style="stroke:#181818;stroke-width:1.0;" width="4" x="493.338" y="14"/><rect fill="none" height="2" style="stroke:#181818;stroke-width:1.0;" width="4" x="493.338" y="18"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="24" x="295.338" y="34.9659">API</text></g><!--MD5=[406b65fecc21e832f7a9b6ebadc6dce1]
|
||||
cluster Client--><g id="cluster_Client"><rect fill="none" height="96" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:1.0;" width="319" x="539.338" y="10"/><path d="M589.338,10 L589.338,22.0679 L579.338,32.0679 L539.338,32.0679 " fill="none" style="stroke:#181818;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="40" x="542.338" y="25.9659">Client</text></g><!--MD5=[22e6038e6e27d0d14f9906e81bc7e2c8]
|
||||
entity POST--><g id="elem_POST"><ellipse cx="124.338" cy="69" fill="#F1F1F1" rx="8" ry="8" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="35" x="106.838" y="100.9659">POST</text></g><g id="elem_validate"><ellipse cx="245.5598" cy="69.2444" fill="#F1F1F1" rx="76.7218" ry="17.7444" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="94" x="195.5598" y="73.9773">Validate input</text></g><!--MD5=[703ea5a149c5871c74522bf38bdfe548]
|
||||
entity data--><g id="elem_data"><path d="M356.838,55 C356.838,45 401.338,45 401.338,45 C401.338,45 445.838,45 445.838,55 L445.838,83.0679 C445.838,93.0679 401.338,93.0679 401.338,93.0679 C401.338,93.0679 356.838,93.0679 356.838,83.0679 L356.838,55 " fill="#F1F1F1" style="stroke:#181818;stroke-width:0.5;"/><path d="M356.838,55 C356.838,65 401.338,65 401.338,65 C401.338,65 445.838,65 445.838,55 " fill="none" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="69" x="366.838" y="83.9659">Data store</text></g><!--MD5=[70fd517e0f0740f5d86c7b6ca14931ca]
|
||||
entity GET--><g id="elem_GET"><ellipse cx="490.338" cy="69" fill="#F1F1F1" rx="8" ry="8" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="26" x="477.338" y="100.9659">GET</text></g><g id="elem_sanitize"><ellipse cx="647.2489" cy="68.7822" fill="#F1F1F1" rx="91.9109" ry="20.7822" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="135" x="576.7489" y="73.5152">Sanitize and display</text></g><!--MD5=[c661d977cad040094ee01910682146de]
|
||||
entity output--><g id="elem_output"><path d="M774.338,52 L774.338,86.0679 A2.5,2.5 0 0 0 776.838,88.5679 L839.838,88.5679 A2.5,2.5 0 0 0 842.338,86.0679 L842.338,59.5 L832.338,49.5 L776.838,49.5 A2.5,2.5 0 0 0 774.338,52 " fill="#F1F1F1" style="stroke:#181818;stroke-width:0.5;"/><path d="M832.338,49.5 L832.338,57 A2.5,2.5 0 0 0 834.838,59.5 L842.338,59.5 " fill="#F1F1F1" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="48" x="784.338" y="74.4659">Output</text></g><!--MD5=[fb14c9b1fd95d0c04eeb1a4af9d96e82]
|
||||
entity input--><g id="elem_input"><path d="M21.7763,54.0027 C25.632,47.6083 29.7816,48.0027 34.7132,52.7537 C37.43,46.5142 44.1518,45.8608 48.3874,50.9147 C52.945,45.4523 58.1535,48.0967 59.8551,53.8379 C63.6467,47.2012 69.0585,46.2905 74,52.5795 C84.2486,53.4246 89.6425,60.439 82.525,69.8542 C87.1729,78.5493 83.6254,86.2654 73.4241,87.1445 C70.6663,94.2711 66.0279,96.5318 59.5645,91.3002 C58.6639,99.1797 54.5611,100.3974 48.1674,96.715 C42.5394,101.1266 36.863,98.7905 35.0709,92.1638 C28.7894,98.5529 22.6758,95.4972 21.1776,87.5335 C9.7736,88.0657 6.3487,79.7467 11.4003,70.7134 C6,60.6744 9.6711,53.1722 21.7763,54.0027 " fill="#F1F1F1" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="37" x="27.838" y="74.4659">Input</text></g><!--MD5=[9b4c3def22d3715760cb10bc86adcdf3]
|
||||
link input to POST--><g id="link_input_POST"><path d="M80.158,69 C89.688,69 99.218,69 108.758,69 " fill="none" id="input-to-POST" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="113.508,69,104.508,65,108.508,69,104.508,73,113.508,69" style="stroke:#181818;stroke-width:1.0;"/></g><!--MD5=[66bb7d49198fd08b12c30e4afea4b0ac]
|
||||
link POST to validate--><g id="link_POST_validate"><path d="M133.788,69 C143.318,69 152.858,69 162.388,69 " fill="none" id="POST-to-validate" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="167.138,69,158.138,65,162.138,69,158.138,73,167.138,69" style="stroke:#181818;stroke-width:1.0;"/></g><!--MD5=[3069c9f0cdeb7d5a96faf21f7d853108]
|
||||
link validate to data--><g id="link_validate_data"><path d="M322.118,69 C331.418,69 340.728,69 350.028,69 " fill="none" id="validate-to-data" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="354.958,69,345.958,65,349.958,69,345.958,73,354.958,69" style="stroke:#181818;stroke-width:1.0;"/></g><!--MD5=[4b4d57bd799c71ac5dd445323722f292]
|
||||
link data to GET--><g id="link_data_GET"><path d="M446.188,69 C455.708,69 465.238,69 474.768,69 " fill="none" id="data-to-GET" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="479.508,69,470.508,65,474.508,69,470.508,73,479.508,69" style="stroke:#181818;stroke-width:1.0;"/></g><!--MD5=[d4daddbe9754ea69a880285c75f093bd]
|
||||
link GET to sanitize--><g id="link_GET_sanitize"><path d="M499.538,70.49 C517.518,73.22 535.498,74.89 553.488,75.49 " fill="none" id="GET-to-sanitize" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="558.068,75.62,549.1859,71.3646,553.07,75.4772,548.9574,79.3613,558.068,75.62" style="stroke:#181818;stroke-width:1.0;"/></g><!--MD5=[772675569b8f37b37db722a5c7b97c7d]
|
||||
link sanitize to output--><g id="link_sanitize_output"><path d="M739.788,69 C749.068,69 758.358,69 767.638,69 " fill="none" id="sanitize-to-output" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="772.548,69,763.548,65,767.548,69,763.548,73,772.548,69" style="stroke:#181818;stroke-width:1.0;"/></g><!--MD5=[70d9ec0f6a9a19322f09f9812c4b3ccd]
|
||||
@startuml
|
||||
cloud "Input" as input
|
||||
component API {
|
||||
interface POST
|
||||
usecase "Validate input" as validate
|
||||
database "Data store" as data
|
||||
interface GET
|
||||
}
|
||||
frame Client {
|
||||
usecase "Sanitize and display" as sanitize
|
||||
file "Output" as output
|
||||
}
|
||||
|
||||
input -> POST
|
||||
POST -> validate
|
||||
validate -> data
|
||||
data -> GET
|
||||
GET -> sanitize
|
||||
sanitize -> output
|
||||
|
||||
@enduml
|
||||
|
||||
PlantUML version 1.2022.12(Sun Oct 23 14:12:26 EDT 2022)
|
||||
(GPL source distribution)
|
||||
Java Runtime: OpenJDK Runtime Environment
|
||||
JVM: OpenJDK 64-Bit Server VM
|
||||
Default Encoding: UTF-8
|
||||
Language: en
|
||||
Country: US
|
||||
--></g></svg>
|
After Width: | Height: | Size: 7.5 KiB |