diff --git a/20211201125024-home_intercom_replacement.org b/20211201125024-home_intercom_replacement.org index 555a9f7..fd1540c 100644 --- a/20211201125024-home_intercom_replacement.org +++ b/20211201125024-home_intercom_replacement.org @@ -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 diff --git a/20220209144915-tutor.org b/20220209144915-tutor.org index cc9e6ff..e3b9df4 100644 --- a/20220209144915-tutor.org +++ b/20220209144915-tutor.org @@ -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]] diff --git a/20221028233501-building_electronics_projects.org b/20221028233501-building_electronics_projects.org index 781311a..e5aee8d 100644 --- a/20221028233501-building_electronics_projects.org +++ b/20221028233501-building_electronics_projects.org @@ -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]] diff --git a/monitor-layout.png b/monitor-layout.png new file mode 100644 index 0000000..9600645 Binary files /dev/null and b/monitor-layout.png differ diff --git a/openapi-core-exceptions.svg b/openapi-core-exceptions.svg index 8077535..34acce5 100644 --- a/openapi-core-exceptions.svg +++ b/openapi-core-exceptions.svg @@ -1,7 +1,7 @@ - OpenAPIError->CastError - - + + @@ -35,8 +35,8 @@ OpenAPIError->DeserializeError - - + + @@ -47,8 +47,8 @@ OpenAPIError->UnmarshalError - - + + @@ -59,8 +59,8 @@ DeserializeError->EmptyParameterValue - - + + @@ -71,8 +71,8 @@ UnmarshalError->ValidateError - - + + @@ -83,8 +83,8 @@ UnmarshalError->UnmarshallerError - - + + @@ -95,8 +95,8 @@ ValidateError->InvalidSchemaValue - - + + @@ -107,8 +107,8 @@ UnmarshallerError->InvalidSchemaFormatValue - - + + @@ -119,8 +119,8 @@ UnmarshallerError->FormatterNotFoundError - - + + diff --git a/qrcode.png b/qrcode.png new file mode 100644 index 0000000..a0e92ea Binary files /dev/null and b/qrcode.png differ diff --git a/sailmaker-network.svg b/sailmaker-network.svg new file mode 100644 index 0000000..50409c6 --- /dev/null +++ b/sailmaker-network.svg @@ -0,0 +1,221 @@ +OutsideOutside 4-Way Splitter(5-1000Mhz)Outside 3-Way Splitter(5-1670Mhz)BasementBasementSplitterFirstFloorMediaRoomLivingRoomSwitchTVSecondFloorOfficeSwitchOfficeONTos4_inos4_1os4_2os4_3os4_4os3_inos3_1os3_2bs_inbs_1bs_2RouterReasonMoCA1MoCA2SonyBravia4KPS4WPS4RSwitchW1tvs1tvs2tvs3ZephyrusMoCA3RokuTVSwitchRofs1ofs2ofs3Ethernet (1000)Ethernet (1000)Ethernet (1000)CoaxCoaxCoaxCoaxCoaxEthernet(100)Ethernet (100)Ethernet (100) \ No newline at end of file diff --git a/tutor-sets.png b/tutor-sets.png new file mode 100644 index 0000000..5ba7ce5 Binary files /dev/null and b/tutor-sets.png differ diff --git a/validation-and-sanitization.svg b/validation-and-sanitization.svg new file mode 100644 index 0000000..ded7bc9 --- /dev/null +++ b/validation-and-sanitization.svg @@ -0,0 +1,44 @@ +APIClientPOSTValidate inputData storeGETSanitize and displayOutputInput \ No newline at end of file