{"id":16355489,"url":"https://github.com/waveform80/blinkenxmas","last_synced_at":"2025-12-03T07:30:28.969Z","repository":{"id":213616779,"uuid":"733548238","full_name":"waveform80/blinkenxmas","owner":"waveform80","description":"Making your Christmas tree vomit rainbows since 2023","archived":false,"fork":false,"pushed_at":"2024-12-19T00:48:34.000Z","size":62193,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-04T00:29:33.455Z","etag":null,"topics":["apa102","christmas","neopixels","pico","tree","ws2812","xmas"],"latest_commit_sha":null,"homepage":"https://blinkenxmas.readthedocs.io/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/waveform80.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-12-19T15:17:56.000Z","updated_at":"2025-05-21T04:15:21.000Z","dependencies_parsed_at":"2024-12-14T13:41:27.942Z","dependency_job_id":"4db384fd-fa8d-4581-aec2-5f722f1f2c2d","html_url":"https://github.com/waveform80/blinkenxmas","commit_stats":{"total_commits":212,"total_committers":1,"mean_commits":212.0,"dds":0.0,"last_synced_commit":"54972b9ea677486c6bf7b25532d9106651f04df8"},"previous_names":["waveform80/blinkenxmas"],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/waveform80/blinkenxmas","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waveform80%2Fblinkenxmas","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waveform80%2Fblinkenxmas/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waveform80%2Fblinkenxmas/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waveform80%2Fblinkenxmas/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/waveform80","download_url":"https://codeload.github.com/waveform80/blinkenxmas/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waveform80%2Fblinkenxmas/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27471707,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-03T02:00:06.367Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apa102","christmas","neopixels","pico","tree","ws2812","xmas"],"created_at":"2024-10-11T01:40:58.244Z","updated_at":"2025-12-03T07:30:28.420Z","avatar_url":"https://github.com/waveform80.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"=============\nBlinken' Xmas\n=============\n\nAre you sitting comfortably? Then I'll begin …\n\nA long time ago, in a land far, far away called \"Manchester\", there lived the\nJones family. At this festive time of year they would put up their ceremonial\ntotem, the \"Asda 6ft Pre-Lit Green Christmas Tree\". But 'twas the year of the\nGreat Plague, and even the electrickery faired poorly, and lo! The Asda 6ft\nPre-Lit Green Christmas Tree had become The Asda 6ft Not-Even-Slightly-Lit\nGreen Christmas Tree, not Pre-Lit, nor Lit, but possibly Post-Lit.\n\nAnd all were most vexed.\n\nIn the great drawer of unstatic bags in the loft, there lived the `neopixies`_.\nAnd they cried out, \"use us, for we shall bring light and all manner of\nblinkeness to your tree!\" So the one called \"Dave\" gathered together 150 of the\nneopixies, and waved his magic Pico at them [#wrong1]_, and the tree glowed\nbrightly with their warmth.\n\nAnd it was Good.\n\nBut the neopixies were not content with glowing warm white all the time, and\nwhispered to Dave that they could make all the colours of the rainbow, if only\nhe would wave his magic Pico a bit more [#wrong2]_. And so Dave set to work,\nand after much toil (and no small amount of \"why is the tree dark? Can't you\njust make it one colour, again? That was fine!\"), the tree was lit once more,\nbut this time with all the colours of the rainbow! But the design was rough;\nmere anarchy loosed upon the innocent eyeballs of the viewer [#sorry1]_. And\nall who saw it did whisper, \"it's very colourful, but in a unicorn vomit sort\nof a way\".\n\nAnd lo! A `message from the Prophet Parker`_ did appear.\n\nAnd it was good. If a bit thin on detail. I mean, where's the calibration trig?\nBut Dave was unperturbed and vowed that he would wrangle the neopixies with his\nmathemagic and bring order to the Asda 6ft Unicorn-Vomit Christmas Tree. But\nhis `trigo-gnometry`_ had gathered dust for too many years, and his mathemagic\nwas not sufficient to the cause, so in the end he relented, and all had to be\ncontent with a simple twinkling of the warm white lights that year.\n\nThe season passed, the Asda 6ft Post-Lit Green Christmas Tree was packed away,\nand the neopixies returned to their drawer, awaiting their chance to shine like\ncrazy tetrahedral carbon crystals once more [#sorry2]_.\n\nTime moved on, and in the waxing light of spring, the project appeared\nforgotten. The neopixies wept as the Pico was waved at other things, like\nto-martoes in the back garden, or o-ink paper, but never at them. But in the\nwaning light of autumn, as the nights closed in, they suddenly found themselves\nfreed once more. To their surprise, Dave bound them to a new creature known as\na \"`picow`_\". And the picow listened to a `mosquitto`_ that listened to a pie\nthat listened to a web that listened to strange beings called \"yousers\".\n\nAnd Dave said \"this is all getting a bit complex, and I still haven't figured\nout this trigo-gnometry stuff\".\n\nSo he sought `help from the wizards`_ who exchange stacks. And lo! The answer\narrived faster than a speeding pizza. And Dave was sore annoyed at himself that\nthe answer was so simple. But no matter, for now he could wield the\nmathemagical power to control and conduct the mischievous neopixies in a\nglorious symphony of light!\n\nAnd so it came to pass that Dave procured\n`even \u003chttps://shop.pimoroni.com/products/5m-flexible-rgb-led-wire-50-rgb-leds-aka-neopixel-ws2812-sk6812?variant=40384556171347\u003e`_\n`more \u003chttps://thepihut.com/products/adafruit-soft-flexible-wire-neopixel-strand-50-neopixels\u003e`_\nneopixies, swelling their orchestra until it was full 250 strong. And though\nDave was not disgruntled, he was far from gruntled [#sorry3]_ that this was but\nhalf the count of `The Prophet Parker's most learned of trees`_. But no one\nelse was listening. For the yousers were too busy plucking the fibres of the\nweb to talk to the pie to talk to the mosquitto to talk to the picow to conduct\nthe neopixies into making the Asda 6ft Blinken Tree shine and shimmy and\nglitter and blast Pride flags at the eyeballs of innocent bystanders.\n\nIn time, others versed in the ways of code saw the tree and said \"have you\nopen-sourced it yet?\", and Dave looked at his private suppository and said \"but\nthere's no docs … or tests … or even type-hints?\" And the others said \"no one\ncares, Dave, it's a Christmas tree, not a nuclear reactor\".\n\nAnd lo! Dave did flip the private switch and there was light! In all the\ncolours of unicorn vomit …\n\n.. image:: rainbow.jpg\n    :align: center\n    :alt: The 250 neopixies of the Asda 6ft Green Christmas Tree display a\n          tasteful rainbow over the height of the tree.\n\n----\n\n.. _neopixies: https://en.wikipedia.org/wiki/Adafruit_Industries#NeoPixel\n.. _message from the Prophet Parker: https://www.youtube.com/watch?v=TvlpIojusBE\n.. _trigo-gnometry: https://en.wikipedia.org/wiki/List_of_trigonometric_identities\n.. _help from the wizards: https://math.stackexchange.com/questions/4816183/radius-of-circle-given-horizontal-distances-of-two-points-and-angle-between-them/4816273\n.. _The Prophet Parker's most learned of trees: https://www.youtube.com/watch?v=WuMRJf6B5Q4\n.. _picow: https://www.raspberrypi.com/news/raspberry-pi-pico-w-what-did-you-think/\n.. _mosquitto: https://mosquitto.org/\n\n.. [#wrong1] That just sounds wrong -- Ed\n\n.. [#wrong2] That's not getting any better, you know -- Ed\n\n.. [#sorry1] With apologies to W.B. Yeats\n\n.. [#sorry2] With apologies to Pink Floyd\n\n.. [#sorry3] With no apologies at all to P.G. Wodehouse; damn you, that line's\n   too good not to steal!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwaveform80%2Fblinkenxmas","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwaveform80%2Fblinkenxmas","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwaveform80%2Fblinkenxmas/lists"}