{ "type": "entry", "published": "2024-06-15T14:27:15-0400", "url": "https://martymcgui.re/2024/06/15/gardening-an-indieweb-webring/", "category": [ "\ud83d\udd78\ufe0f\ud83d\udc8d", "webring", "indieweb", "update" ], "name": "\ud83e\udd16\u2700\ud83c\udf3f Gardening an IndieWeb webring", "content": { "text": "Are you a member of the \ud83d\udd78\ufe0f\ud83d\udc8d IndieWeb Webring? Perhaps one of many who have been confused to discover that member sites are not automatically removed when the webring links disappear from their site?\n\n I'm pleased to announce that the webring will now be self-gardening! Webring member sites th-\n \n\nHold on, links to what now?\nThat-... is actually a good question!\nIn order for webrings to work, member sites have to link to one another, usually through the webring itself.\nWhen you sign in to the \ud83d\udd78\ufe0f\ud83d\udc8d IndieWeb Webring, you see this prompt on your dashboard page:\n\n Screenshot of a warning \"to stay active, make sure these links are visible on your site\", followed by a text area with HTML links to copy and paste.\n \n\n These links should be copied and pasted into your site so that they appear on the page that matches your webring sign-in. For example, I sign in with my homepage https://martymcgui.re/, so I put my links to the webring on my homepage. They look like this on my site, but you can style them up to look like anything you want.\n \n\n\n \"An IndieWeb Webring \ud83d\udd78\ufe0f\ud83d\udc8d\" text flanked by left and right unicode arrow links.\n \n\n The basic deal for most webrings is that, in order to receive incoming traffic from other member sites, you need to also display links back to the webring so a visitor can continue on their journey browsing sites from the webring.\nIf that's the deal, then when a member site goes offline, or removes the webring links from their page, the webring should no longer direct visitors to that site.\nThe IndieWeb webring tracks whether a site is \"Active\" or ... \"Not Active\" (ahem, Inactive). Active sites can receive traffic from webring visitors and, if you choose, appear on the Directory page. Inactive sites... can't do those things.\nAs the owner of an webring member site, you can sign in to the webring and your Dashboard page will show your site's current \"Active\" / \"Not Active\" status and the results of the most recent attempts to check your site for webring links. If you've made changes to your site, there's a \"Check links now!\" button on the Dashboard to scan for them again.\nOkay that's enough background, I think.\n\n Right, thanks. But actually no, there is more.\n \n\nInitially, Active status on the webring kiiiiind of worked like an honor system. The first time you successfully sign in, your site is added to the webring and set to Active. From that point on, there were only two ways for your site to get marked as Not Active:\n\n If you clicked \"Check links now!\" while your site was offline or didn't have webring links on it.\n \n\n \nOR if I ran a \"gardener\" script that checked the webring links for one or more sites.\nSince the webring came online in, um, 2018, I've only received a handful of nudges from folks who have been willing to track me down to the IndieWeb chat and complain. That led me to think this honor system was \"okay\" or \"at least not so bad that folks are willing to jump through hoops to bring it to my attention\".\nThat's definitely enough background.\nAgreed!\nSo what's new?\nWell, the honor system days are over! Which should be good for all webring member sites, I think.\nI've built a little automated gardener that will periodically check member sites for their links. It's designed in a way that trends towards polling member sites about once per month.\nFor a new member site, it basically works like this: about an hour after you sign up, your site will be checked for links. If they're there, the gardener will check again the next day. It will check again a few days later, then a week, then two weeks.\nFinally, as long as the links are there at every check, the gardener will only check once per month.\n\n What happens if the webring links disappear from my site?\n \n\nIf the gardener finds that an Active member site has gone offline or lost the webring links, the site is marked Not Active. It's checked again the next day, then a few days later, then a week and then two.\nFinally, the Not Active site will be checked once per month for 3 months. If the site stays Not Active that whole time, the gardener will stop checking and the site owner will need to sign in to re-check links manually if they want the site to become Active again.\n\n What happens if I put the webring links back on my site?\n \n\nIf the gardener finds that a Not Active member site has their webring links back, the site is marked as Active and the schedule resets. The gardener will then check it the next day, then three days later, then a week, then...\nOkay, got it!\nWoohoo!\nWhy now, though?\nOh dang, that's a good question.\nI've found the energy and space to start working on the webring again, including some possible projects like those I listed in my last update. Before jumping into any of those, though, I want to feel like I can \"trust\" that the webring is taking care of itself and its visitors. That means not sending folks to sites where the owner changed their mind about being a webring member or, worse, lost sites, and keeping track of active sites on its own!\nCan we see the code?\nSure! The bulk of the updates are here on my git hosting. As with most things webring there's a little bit that's well thought out and some attempts at rigor followed by a rush of throwing things together when it appears near working.\nI'm open if folks have suggestio-\nWait, I didn't actually want to look at code!\nI put some words in your mouth, there, yeah. Sorry. \ud83d\ude48\nOkay! That's it for now. As always, feel free to reply to this post on your own site, or feel free to drop me a line in the #indieweb chat (I\u2019m schmarty there).", "html": "<p>Are you a member of the <a href=\"https://xn--sr8hvo.ws/\">\ud83d\udd78\ufe0f\ud83d\udc8d IndieWeb Webring</a>? Perhaps one of many who <a href=\"https://chat.indieweb.org/2020-03-23#t1584989705419200\">have been confused to discover</a> that <a href=\"https://chat.indieweb.org/dev/2022-08-28#t1661694360371800\">member sites are not automatically removed</a> when the <a href=\"https://chat.indieweb.org/dev/2024-06-12#t1718226603454100\">webring links disappear from their site</a>?</p>\n<p>\n I'm pleased to announce that the webring will now be self-gardening! Webring member sites th-\n <br /></p>\n<h2>Hold on, links to what now?</h2>\n<p>That-... is actually a good question!</p>\n<p>In order for webrings to work, member sites have to link to one another, usually through the webring itself.</p>\n<p>When you sign in to the \ud83d\udd78\ufe0f\ud83d\udc8d IndieWeb Webring, you see this prompt on your dashboard page:</p>\n<img src=\"https://media.martymcgui.re/44/c3/b4/68/fde563e3a6e618431ce898b2b2add95e384939541e267eb27ce4e49f.png\" alt=\"\" />\n Screenshot of a warning \"to stay active, make sure these links are visible on your site\", followed by a text area with HTML links to copy and paste.\n <br /><p>\n These links should be copied and pasted into your site so that they appear on the page that matches your webring sign-in. For example, I sign in with my homepage https://martymcgui.re/, so I put my links to the webring on my homepage. They look like this on my site, but you can style them up to look like anything you want.\n <br /></p>\n<img src=\"https://media.martymcgui.re/31/d7/b1/47/5737b023084f467f48f57033e8c2e2563d3040002b274f4f61e64ceb.png\" alt=\"\" /><p>\n \"An IndieWeb Webring \ud83d\udd78\ufe0f\ud83d\udc8d\" text flanked by left and right unicode arrow links.\n <br /></p>\n <p>The basic deal for most webrings is that, in order to receive incoming traffic from other member sites, you need to also display links back to the webring so a visitor can continue on their journey browsing sites from the webring.</p>\n<p>If that's the deal, then when a member site goes offline, or removes the webring links from their page, the webring should no longer direct visitors to that site.</p>\n<p>The IndieWeb webring tracks whether a site is \"Active\" or ... \"Not Active\" (ahem, Inactive). Active sites can receive traffic from webring visitors and, if you choose, appear on the <a href=\"https://xn--sr8hvo.ws/directory\">Directory</a> page. Inactive sites... can't do those things.</p>\n<p>As the owner of an webring member site, you can sign in to the webring and your Dashboard page will show your site's current \"Active\" / \"Not Active\" status and the results of the most recent attempts to check your site for webring links. If you've made changes to your site, there's a \"Check links now!\" button on the Dashboard to scan for them again.</p>\n<h2>Okay that's enough background, I think.</h2>\n<p>\n Right, thanks. But actually no, there is more.\n <br /></p>\n<p>Initially, Active status on the webring kiiiiind of worked like an honor system. The first time you successfully sign in, your site is added to the webring and set to Active. From that point on, there were only two ways for your site to get marked as Not Active:</p>\n<ul><li>\n If you clicked \"Check links now!\" while your site was offline or didn't have webring links on it.\n <br /></li>\n <li>\n<i>OR</i> if I ran a \"gardener\" script that checked the webring links for one or more sites.</li>\n</ul><p>Since the webring came online in, um, 2018, I've only received a handful of nudges from folks who have been willing to track me down to the <a href=\"https://indieweb.org/discuss\">IndieWeb chat</a> and complain. That led me to think this honor system was \"okay\" or \"at least not so bad that folks are willing to jump through hoops to bring it to my attention\".</p>\n<h2>That's definitely enough background.</h2>\n<p>Agreed!</p>\n<h2>So what's new?</h2>\n<p>Well, the honor system days are over! Which should be good for all webring member sites, I think.</p>\n<p>I've built a little automated gardener that will periodically check member sites for their links. It's designed in a way that trends towards polling member sites about once per month.</p>\n<p>For a new member site, it basically works like this: about an hour after you sign up, your site will be checked for links. If they're there, the gardener will check again the next day. It will check again a few days later, then a week, then two weeks.</p>\n<p>Finally, as long as the links are there at every check, the gardener will only check once per month.</p>\n<h3>\n What happens if the webring links disappear from my site?\n <br /></h3>\n<p>If the gardener finds that an Active member site has gone offline or lost the webring links, the site is marked Not Active. It's checked again the next day, then a few days later, then a week and then two.</p>\n<p>Finally, the Not Active site will be checked once per month for 3 months. If the site stays Not Active that whole time, the gardener will stop checking and the site owner will need to sign in to re-check links manually if they want the site to become Active again.</p>\n<h3>\n What happens if I put the webring links back on my site?\n <br /></h3>\n<p>If the gardener finds that a Not Active member site has their webring links back, the site is marked as Active and the schedule resets. The gardener will then check it the next day, then three days later, then a week, then...</p>\n<h3>Okay, got it!</h3>\n<p>Woohoo!</p>\n<h2>Why now, though?</h2>\n<p>Oh dang, that's a good question.</p>\n<p>I've found the energy and space to start working on the webring again, including some possible projects like those I listed in <a href=\"https://martymcgui.re/2024/06/09/an-absentee-webring-steward-returns/\">my last update</a>. Before jumping into any of those, though, I want to feel like I can \"trust\" that the webring is taking care of itself and its visitors. That means not sending folks to sites where the owner changed their mind about being a webring member or, worse, <a href=\"https://indieweb.org/lost_sites\">lost sites</a>, and keeping track of active sites on its own!</p>\n<h2>Can we see the code?</h2>\n<p>Sure! The <a href=\"https://git.schmarty.net/schmarty/gem-diamond/compare/4b6347...5afb99\">bulk of the updates are here on my git hosting</a>. As with most things webring there's a little bit that's well thought out and some attempts at rigor followed by a rush of throwing things together when it appears near working.</p>\n<p>I'm open if folks have suggestio-</p>\n<h2>Wait, I didn't actually want to look at code!</h2>\n<p>I put some words in your mouth, there, yeah. Sorry. \ud83d\ude48</p>\n<p>Okay! That's it for now. As always, feel free to <a href=\"https://indieweb.org/reply\">reply</a> to this post on your own site, or feel free to drop me a line in the <a href=\"https://chat.indieweb.org/\">#indieweb chat</a> (I\u2019m <code>schmarty</code> there).</p>" }, "author": { "type": "card", "name": "Marty McGuire", "url": "https://martymcgui.re/", "photo": "https://martymcgui.re/images/logo.jpg" }, "post-type": "article", "_id": "41391044", "_source": "175" }
This is now the official song of #caturday:
https://imanicoppola.bandcamp.com/track/clap-your-hands
I will not be taking questions at this time.
{ "type": "entry", "published": "2024-06-14T12:33:37-0400", "url": "https://martymcgui.re/2024/06/14/123337/", "category": [ "caturday", "soundtrack", "OST" ], "content": { "text": "This is now the official song of #caturday:\nhttps://imanicoppola.bandcamp.com/track/clap-your-hands\nI will not be taking questions at this time.", "html": "<p>This is now the official song of <a href=\"https://martymcgui.re/tag/caturday/\">#caturday</a>:</p>\n<p><a href=\"https://imanicoppola.bandcamp.com/track/clap-your-hands\">https://imanicoppola.bandcamp.com/track/clap-your-hands</a></p>\n<p>I will not be taking questions at this time.</p>" }, "author": { "type": "card", "name": "Marty McGuire", "url": "https://martymcgui.re/", "photo": "https://martymcgui.re/images/logo.jpg" }, "post-type": "note", "_id": "41381822", "_source": "175" }
{ "type": "entry", "published": "2024-06-13T15:07:34-07:00", "url": "https://beesbuzz.biz/blog/11859-Birthday-plans-2024", "name": "Birthday plans 2024", "content": { "text": "Hey y'all! My birthday is tomorrow, June 14! I will be turning 0x2E. Or 0b101110 if that\u2019s your preference.\n\nAnyway. Normally I\u2019d use that as a reason to have a huge karaoke blowout on VRChat Friday evening, but I have a big choral show on Saturday and some of the pieces need my full vocal range, so I\u2019m not going to risk fucking up my voice for Saturday.\n\nSo instead I\u2019ll have birthday karaoke in VRChat Saturday evening! I\u2019m thinking it\u2019ll start at, say, 7 PM Pacific Time. You can join off me if you have me friended or I\u2019ll be posting an instance link on my discord.\n\nAlso, to help with the celebrations, I\u2019ve thrown together a party hat.", "html": "<p>Hey y'all! My birthday is tomorrow, June 14! I will be turning <code>0x2E</code>. Or <code>0b101110</code> if that\u2019s your preference.</p><p>Anyway. Normally I\u2019d use that as a reason to have a huge karaoke blowout on VRChat Friday evening, but I have <a href=\"https://www.museumofflight.org/exhibits-and-events/calendar-of-events/7784/sallys-day\">a big choral show on Saturday</a> and some of the pieces need my <em>full</em> vocal range, so I\u2019m not going to risk fucking up my voice for Saturday.</p><p>So instead I\u2019ll have birthday karaoke in VRChat Saturday evening! I\u2019m thinking it\u2019ll start at, say, 7 PM Pacific Time. You can join off me if <a href=\"https://vrchat.com/home/user/usr_c3d14129-014b-4d5a-a1af-399237355728\">you have me friended</a> or I\u2019ll be posting an instance link on <a href=\"https://beesbuzz.biz/discord\">my discord</a>.</p><p>Also, to help with the celebrations, I\u2019ve thrown together a <a href=\"https://fluffy.gumroad.com/l/partyhat\">party hat</a>.</p>" }, "author": { "type": "card", "name": "fluffy", "url": "https://beesbuzz.biz/", "photo": "https://beesbuzz.biz/static/headshot.jpg" }, "post-type": "article", "_id": "41375363", "_source": "2778" }
{ "type": "entry", "published": "2024-06-12T16:03:05-07:00", "url": "https://beesbuzz.biz/blog/6659-Furality-Umbra-a-brief-review", "name": "Furality Umbra: a brief review", "author": { "type": "card", "name": "fluffy", "url": "https://beesbuzz.biz/", "photo": "https://beesbuzz.biz/static/headshot.jpg" }, "post-type": "article", "_id": "41366875", "_source": "2778" }
{ "type": "entry", "published": "2024-06-12T17:33:49+00:00", "url": "https://cleverdevil.io/2024/magic-poster-on-the-wall", "syndication": [ "https://cleverdevil.club/@jonathan/112605017039012646" ], "name": "Magic Poster on the Wall", "content": { "text": "This post originally appeared in my Techish newsletter on LinkedIn.You\u2019re the Coolest AI of AllFrom a young age, I\u2019ve always loved the magical experience of going to the movies. Torn ticket stubs, big booming sound, giant screens, and popcorn fill my heart with joy. There is nothing in the world quite like sharing in the community experience of enjoying a blockbuster in a movie theater. I suppose it's no surprise that I\u2019ve loved living in LA so much!\n\nSince 2020, theaters have struggled quite a bit, and for good and obvious reasons. I\u2019ve truly missed taking my family to the theater. I\u2019m a bit of a digital packrat, with a healthy collection of Blu-Rays stored on my home NAS. About a year ago, I finished renovating my home theater, which was a big step toward recapturing the magic of the movies with my family. But, no matter how great the picture and sound are, I still felt something was missing.\n\nIf you\u2019ve been following me, you\u2019ll be unsurprised to hear that I decided to scratch my itch with technology. What better way to explore the emerging and promising power of GenAI while honing my skill with HTML, CSS, JavaScript, and WebSockets?Picture ThisPart of visiting a movie theater is walking by a wall of big, colorful movie posters, which are, in my view, an underappreciated art form. A great movie poster creates a sense of excitement, anticipation, and wonder. A few months ago I stumbled on a project called Movie Posters Perfected, which was a huge inspiration for this project. While I could have gone down the path of just showing movie posters from this curated collection using a Fire TV stick, I wanted to create something even more magical. So, armed with inspiration, I set to the task of creating what I call my \u201cMagic Poster.\u201d\n\nThe hardware ingredients for the Magic Poster are simple:Samsung 43\u201d Smart Monitor\n\nRaspberry Pi 5 and a case with a PCIe M.2 board\n\nHDMI Aware LED Backlight from AliExpress\nAssembly was straightforward, thanks to double sided tape and zip ties. The one piece of hardware I wouldn\u2019t use again is the Samsung monitor, which is a little too \u201csmart\u201d for it's own good. Getting it to be happy in portrait orientation was a nightmare! Still, I soldiered on and was able to mount the TV on the wall and drive the display with my Raspberry Pi 5, with the LED backlight matching the content on screen. Now, it was time to build some software.Magic Poster\u2019s Software StackWhile Raspberry Pis have become surprisingly powerful, they are still constrained computers with limited performance. I knew that I wanted to do more than just display static posters. I wanted to enhance the magic factor with animations, context awareness, and generative AI. When it comes to rendering performance, modern web browsers have decades of optimization, hardware acceleration, and features. I decided that my best bet was to use Chromium in \u201ckiosk\u201d mode, which displays websites in full screen, free of window decorations, toolbars, and tabs.\n\nFor the backend, I chose my programming language of choice, Python, along with libraries like Flask and SocketIO. Magic Poster is a JavaScript-powered frontend that communicates with a Python backend using WebSocket. I deployed modern CSS animations and transitions to create delightful views that can scroll, flip, and fade in and out.\n\nAfter a few weeks of insomnia-fueled development, I had Magic Poster serving up beautiful posters from a hand-picked set of over 1,200 high-resolution movie posters, with four different styles: single poster, a \u201cmarquee\u201d view with dozens of small animated posters, a \u201cscroll\u201d view that shows medium sized posters with a smooth scrolling animation, and a \u201cflip\u201d view that experiments with animation that really make the LED backlight sing.\n\n\n\n\n\nContext AwarenessOne of the benefits of powering Magic Poster with a network attached Raspberry Pi is that it can integrate with other systems on my home network. In my theater, I have an Apple TV 4K, a Zidoo Z9X and a gaming PC running ChimeraOS. Thanks to open APIs, I am able to detect when I am watching a movie or show, or when a game is being played. Using these APIs, I was able to have a small overlay appear on Magic Poster that displays information about the current activity.\n\nMagic Poster was really taking shape, with a variety of different modes, context awareness, and even a simple REST API for controlling what is on screen at any given time. Still, I felt that there was something missing: interactivity. With the rapid and accelerating evolution of AI, there was an opportunity to take Magic Poster to the next level.A Magic Sprinkle of GenAI and MLInteractivity requires two-way communication. Attaching a keyboard or physical buttons to Magic Poster would be an easy path to providing input, but buttons are decidedly un-magical. I wanted Magic Poster to have a personality \u2013 to feel alive. Technology has an opportunity to become increasingly personal and interactive thanks to AI, and I concluded that the most magical way to interact with Magic Poster would be through conversation. Could I simply speak to Magic Poster, and more importantly, have Magic Poster respond?\n\nVoice assistants have been \u201ca thing\u201d for quite some time. My experience with the three major players (Apple\u2019s Siri, Google, and Amazon\u2019s Alexa) have been mixed at best. All three assistants require \u201cwake words\u201d to begin an interaction, which feels forced. In the years since these assistants were developed, technology has evolved and advanced significantly. If possible, my goal was to have conversations with Magic Poster feel more natural.\n\nAs a longtime member of the Python community and a Fellow in the Python Software Foundation, I follow a number of prominent community members. Simon Willison is a Python developer that has become deeply interested in AI and LLMs, producing some great tools including Datasette, and more recently, Python LLM, which makes using both local and hosted LLMs from Python fun and easy. Through Simon, I discovered Vosk, which is an open source ML powered speech recognition toolkit with impressive accuracy and a very small footprint. I was quickly able to leverage Vosk to have Magic Poster passively listening to me in the background, ready to respond or take action based upon my feedback, including changing views, requesting specific posters, and more.\n\nNow that Magic Poster could listen and take action, I wanted to give it the power to respond in its own voice. One of my favorite sites on the web is The Movie Database (TMDb), which is a free platform chock full of features, including an API with excellent Python client libraries. TMDb contains a lot of user-generated content, including a large number of reviews, with useful insights from a broad range of people. I decided to give Magic Poster the power to take hundreds of user reviews to generate a short summary of audience sentiment. When requested, Magic Poster reached out to The Movie Database, quickly pulls down all of the reviews for a movie, and then generates a summary using Ollama and the Llama 3 LLM. Finally, I feed the generated content to a text-to-speech system, and Magic Poster finally has a voice.What\u2019s Next?It's been a lot of fun working on Magic Poster, and I am really happy with where it stands today. Of course, I have so many ideas about where to go from here, with additional voice features, display styles, and more. What do you think about Magic Poster? Do you have any suggestions for how to make it even more magical? Talk soon!", "html": "<p><em>This post <a title=\"Magic Poster on the Wall Techish newsletter\" href=\"https://www.linkedin.com/pulse/magic-poster-wall-missioncloud-be8cc/\">originally appeared in my Techish newsletter</a> on LinkedIn.</em></p><h3>You\u2019re the Coolest AI of All</h3><p>From a young age, I\u2019ve always loved the magical experience of going to the movies. Torn ticket stubs, big booming sound, giant screens, and popcorn fill my heart with joy. There is nothing in the world quite like sharing in the community experience of enjoying a blockbuster in a movie theater. I suppose it's no surprise that I\u2019ve loved living in LA so much!</p><p>Since 2020, theaters have struggled quite a bit, and for good and obvious reasons. I\u2019ve truly missed taking my family to the theater. I\u2019m a bit of a digital packrat, with a healthy collection of Blu-Rays stored on my home NAS. About a year ago, I finished renovating my home theater, which was a big step toward recapturing the magic of the movies with my family. But, no matter how great the picture and sound are, I still felt something was missing.</p><p>If you\u2019ve been following me, you\u2019ll be unsurprised to hear that I decided to scratch my itch with technology. What better way to explore the emerging and promising power of GenAI while honing my skill with HTML, CSS, JavaScript, and WebSockets?</p><h3>Picture This</h3><p>Part of visiting a movie theater is walking by a wall of big, colorful movie posters, which are, in my view, an underappreciated art form. A great movie poster creates a sense of excitement, anticipation, and wonder. A few months ago I stumbled on a project called <a href=\"https://www.moviepostersperfected.com\">Movie Posters Perfected</a>, which was a huge inspiration for this project. While I could have gone down the path of just showing movie posters from this curated collection using a Fire TV stick, I wanted to create something even more magical. So, armed with inspiration, I set to the task of creating what I call my \u201cMagic Poster.\u201d</p><p>The hardware ingredients for the Magic Poster are simple:</p><ul><li><a href=\"https://www.amazon.com/SAMSUNG-Monitor-Streaming-Wireless-LS43BM702UNXGO/dp/B09ZHQ93VJ/\">Samsung 43\u201d Smart Monitor</a></li>\n<li>\n<a href=\"https://www.raspberrypi.com/products/raspberry-pi-5/\">Raspberry Pi 5</a> and a <a href=\"https://www.google.com/url?q=https://www.amazon.com/gp/product/B0CYP28CKM/\">case with a PCIe M.2 board</a>\n</li>\n<li><a href=\"https://www.aliexpress.us/item/3256806495985623.html\">HDMI Aware LED Backlight from AliExpress</a></li>\n</ul><p>Assembly was straightforward, thanks to double sided tape and zip ties. The one piece of hardware I wouldn\u2019t use again is the Samsung monitor, which is a little too \u201csmart\u201d for it's own good. Getting it to be happy in portrait orientation was a nightmare! Still, I soldiered on and was able to mount the TV on the wall and drive the display with my Raspberry Pi 5, with the LED backlight matching the content on screen. Now, it was time to build some software.</p><h3>Magic Poster\u2019s Software Stack</h3><p>While Raspberry Pis have become surprisingly powerful, they are still constrained computers with limited performance. I knew that I wanted to do more than just display static posters. I wanted to enhance the magic factor with animations, context awareness, and generative AI. When it comes to rendering performance, modern web browsers have decades of optimization, hardware acceleration, and features. I decided that my best bet was to use Chromium in \u201ckiosk\u201d mode, which displays websites in full screen, free of window decorations, toolbars, and tabs.</p><p>For the backend, I chose my programming language of choice, <a href=\"https://python.org\">Python</a>, along with libraries like <a href=\"https://flask.palletsprojects.com/\">Flask</a> and <a href=\"https://socket.io/\">SocketIO</a>. Magic Poster is a JavaScript-powered frontend that communicates with a Python backend using <a href=\"https://en.wikipedia.org/wiki/WebSocket\">WebSocket</a>. I deployed modern CSS animations and transitions to create delightful views that can scroll, flip, and fade in and out.</p><p>After a few weeks of insomnia-fueled development, I had Magic Poster serving up beautiful posters from a hand-picked set of over 1,200 high-resolution movie posters, with four different styles: single poster, a \u201cmarquee\u201d view with dozens of small animated posters, a \u201cscroll\u201d view that shows medium sized posters with a smooth scrolling animation, and a \u201cflip\u201d view that experiments with animation that really make the LED backlight sing.</p><p><img src=\"https://cleverdevil.io/file/c23583005b2b5eef3aa2ec08117ca0a6/thumb.jpg\" alt=\"Magic Poster displaying a poster for the movie Thor Love and Thunder\" width=\"768\" height=\"1024\" /></p><p><img src=\"https://cleverdevil.io/file/c1680610917dfe6091af433bb41ec5e3/thumb.jpg\" alt=\"Magic Poster displaying a poster for the movie Groundhog Day\" width=\"768\" height=\"1024\" /></p><p><img src=\"https://cleverdevil.io/file/e3d57f2a32fd6dc83ca82d0bfea83c59/thumb.jpg\" alt=\"Magic Poster displaying a animated marquee view of dozens of movie posters\" width=\"752\" height=\"1024\" /></p><h3>Context Awareness</h3><p>One of the benefits of powering Magic Poster with a network attached Raspberry Pi is that it can integrate with other systems on my home network. In my theater, I have an <a href=\"https://www.apple.com/apple-tv-4k/\">Apple TV 4K</a>, a <a href=\"https://www.zidoo.tv/Product/index/model/Z9X/target/VEMg6VRC2%252B9KKmVViAFMcQ%253D%253D.html\">Zidoo Z9X</a> and a gaming PC running <a href=\"https://chimeraos.org/\">ChimeraOS</a>. Thanks to open APIs, I am able to detect when I am watching a movie or show, or when a game is being played. Using these APIs, I was able to have a small overlay appear on Magic Poster that displays information about the current activity.</p><p>Magic Poster was really taking shape, with a variety of different modes, context awareness, and even a simple REST API for controlling what is on screen at any given time. Still, I felt that there was something missing: interactivity. With the rapid and accelerating evolution of AI, there was an opportunity to take Magic Poster to the next level.</p><h3>A Magic Sprinkle of GenAI and ML</h3><p>Interactivity requires two-way communication. Attaching a keyboard or physical buttons to Magic Poster would be an easy path to providing input, but buttons are decidedly un-magical. I wanted Magic Poster to have a personality \u2013 to feel alive. Technology has an opportunity to become increasingly personal and interactive thanks to AI, and I concluded that the most magical way to interact with Magic Poster would be through conversation. Could I simply speak to Magic Poster, and more importantly, have Magic Poster respond?</p><p>Voice assistants have been \u201ca thing\u201d for quite some time. My experience with the three major players (Apple\u2019s Siri, Google, and Amazon\u2019s Alexa) have been mixed at best. All three assistants require \u201cwake words\u201d to begin an interaction, which feels forced. In the years since these assistants were developed, technology has evolved and advanced significantly. If possible, my goal was to have conversations with Magic Poster feel more natural.</p><p>As a longtime member of the Python community and a Fellow in the Python Software Foundation, I follow a number of prominent community members. <a href=\"https://simonwillison.net\">Simon Willison</a> is a Python developer that has become deeply interested in AI and LLMs, producing some great tools including <a href=\"https://datasette.io/\">Datasette</a>, and more recently, <a href=\"https://llm.datasette.io/en/stable/index.html\">Python LLM</a>, which makes using both local and hosted LLMs from Python fun and easy. Through Simon, I discovered <a href=\"https://github.com/alphacep/vosk-api\">Vosk</a>, which is an open source ML powered speech recognition toolkit with impressive accuracy and a very small footprint. I was quickly able to leverage Vosk to have Magic Poster passively listening to me in the background, ready to respond or take action based upon my feedback, including changing views, requesting specific posters, and more.</p><p>Now that Magic Poster could listen and take action, I wanted to give it the power to respond in its own voice. One of my favorite sites on the web is <a href=\"https://www.themoviedb.org/\">The Movie Database</a> (TMDb), which is a free platform chock full of features, including an API with <a href=\"https://github.com/leandcesar/themoviedb\">excellent Python client libraries</a>. TMDb contains a lot of user-generated content, including a large number of reviews, with useful insights from a broad range of people. I decided to give Magic Poster the power to take hundreds of user reviews to generate a short summary of audience sentiment. When requested, Magic Poster reached out to The Movie Database, quickly pulls down all of the reviews for a movie, and then generates a summary using <a href=\"https://ollama.com/\">Ollama</a> and the <a href=\"https://ollama.com/library/llama3\">Llama 3</a> LLM. Finally, I feed the generated content to a text-to-speech system, and Magic Poster finally has a voice.</p><h3>What\u2019s Next?</h3><p>It's been a lot of fun working on Magic Poster, and I am really happy with where it stands today. Of course, I have so many ideas about where to go from here, with additional voice features, display styles, and more. What do you think about Magic Poster? Do you have any suggestions for how to make it even more magical? Talk soon!</p>" }, "author": { "type": "card", "name": "Jonathan LaCour", "url": "https://cleverdevil.io/profile/cleverdevil", "photo": "https://cleverdevil.io/file/e37c3982acf4f0a8421d085b9971cd71/thumb.jpg" }, "post-type": "article", "_id": "41365861", "_source": "10" }
{ "type": "entry", "published": "2024-06-10T22:04:08-07:00", "url": "https://aaronparecki.com/2024/06/10/14/", "category": [ "cooking" ], "syndication": [ "https://bsky.app/profile/aaronpk.com/post/3kumst6vy3c2z" ], "content": { "text": "me: $30 is way too much for 16oz of vegan cheese mix! \n\nalso me: **adds $60 of various powdered ingredients to a shopping cart in the hopes of recreating said cheese mix**", "html": "me: $30 is way too much for 16oz of vegan cheese mix! <br /><br />also me: **adds $60 of various powdered ingredients to a shopping cart in the hopes of recreating said cheese mix**" }, "author": { "type": "card", "name": "Aaron Parecki", "url": "https://aaronparecki.com/", "photo": "https://aperture-media.p3k.io/aaronparecki.com/41061f9de825966faa22e9c42830e1d4a614a321213b4575b9488aa93f89817a.jpg" }, "post-type": "note", "_id": "41349799", "_source": "16" }
{ "type": "entry", "published": "2024-06-10T21:26:28-07:00", "url": "https://aaronparecki.com/2024/06/10/12/cheese", "category": [ "cooking" ], "syndication": [ "https://bsky.app/profile/aaronpk.com/post/3kumqptr62w22" ], "content": { "text": "My new hobby is finding vegan mac and cheese sauce powder products online, and looking at the ingredient list and trying to recreate it" }, "author": { "type": "card", "name": "Aaron Parecki", "url": "https://aaronparecki.com/", "photo": "https://aperture-media.p3k.io/aaronparecki.com/41061f9de825966faa22e9c42830e1d4a614a321213b4575b9488aa93f89817a.jpg" }, "post-type": "note", "_id": "41349595", "_source": "16" }
{ "type": "entry", "published": "2024-06-10T20:51:46-07:00", "url": "https://aaronparecki.com/2024/06/10/10/cheese", "category": [ "cooking" ], "photo": [ "https://aperture-media.p3k.io/aaronparecki.com/9a8f9c5d5be128d364f15c1d5144db9362077d6ace8a8105f03a853af61f6e34.jpg" ], "content": { "text": "not going to win any awards for the photo, but I just made 6 jars of vegan mac and cheese sauce mix, just add non-dairy milk!" }, "author": { "type": "card", "name": "Aaron Parecki", "url": "https://aaronparecki.com/", "photo": "https://aperture-media.p3k.io/aaronparecki.com/41061f9de825966faa22e9c42830e1d4a614a321213b4575b9488aa93f89817a.jpg" }, "post-type": "photo", "_id": "41349429", "_source": "16" }
{ "type": "entry", "published": "2024-06-10T17:25:00-07:00", "url": "https://beesbuzz.biz/blog/6415-Some-income-would-be-nice", "name": "Some income would be nice", "content": { "text": "It\u2019s really unfortunate how I\u2019m stuck in the hinterland between being too disabled to work but being too abled to get on disability (at least not easily). Dealing with Social Security has been super frustrating and I\u2019m not expecting to get a full hearing or determination any time soon, so in the meantime I could really use some sort of part-time income. Not to mention having things to do that other people care about.\n\nI am way too burned out on software engineering to do that anymore (I barely even want to write code for my own projects), but I would be super willing to do things like:\nMusic\nSound design\nVideo editing\nCharacter design\n2D and 3D art\nGame design\nAnyway, here\u2019s my resume.\n\nI\u2019m willing and able to work part-time in Seattle (remote-focused hybrid preferred) or remotely.", "html": "<p>It\u2019s really unfortunate how I\u2019m stuck in the hinterland between being too disabled to work but being too abled to get on disability (at least not easily). Dealing with Social Security has been super frustrating and I\u2019m not expecting to get a full hearing or determination any time soon, so in the meantime I could really use some sort of part-time income. Not to mention having things to do that other people care about.</p><p>I am way too burned out on software engineering to do that anymore (I barely even want to write code for my own projects), but I would be super willing to do things like:</p>\n<ul><li>Music</li>\n<li>Sound design</li>\n<li>Video editing</li>\n<li>Character design</li>\n<li>2D and 3D art</li>\n<li>Game design</li>\n</ul><p>Anyway, <a href=\"https://beesbuzz.biz/resume\">here\u2019s my resume</a>.</p><p>I\u2019m willing and able to work part-time in Seattle (remote-focused hybrid preferred) or remotely.</p>" }, "author": { "type": "card", "name": "fluffy", "url": "https://beesbuzz.biz/", "photo": "https://beesbuzz.biz/static/headshot.jpg" }, "post-type": "article", "_id": "41349103", "_source": "2778" }
{ "type": "entry", "published": "2024-06-09T21:40:33-07:00", "url": "https://aaronparecki.com/2024/06/09/15/habanero", "category": [ "habanero", "cooking" ], "photo": [ "https://aperture-media.p3k.io/aaronparecki.com/6408ef00e2ad2669fd5374964fb3c95cf575e2a7324b4eaa080072cbe0cc269c.jpg" ], "content": { "text": "working on a new habanero hot sauce recipe" }, "author": { "type": "card", "name": "Aaron Parecki", "url": "https://aaronparecki.com/", "photo": "https://aperture-media.p3k.io/aaronparecki.com/41061f9de825966faa22e9c42830e1d4a614a321213b4575b9488aa93f89817a.jpg" }, "post-type": "photo", "_id": "41339085", "_source": "16" }
{ "type": "entry", "published": "2024-06-09T22:14:30-0400", "url": "https://martymcgui.re/2024/06/09/an-absentee-webring-steward-returns/", "category": [ "\ud83d\udd78\ufe0f\ud83d\udc8d", "webring", "indieweb", "update" ], "name": "An absentee webring steward returns", "content": { "text": "Are you a member of the \ud83d\udd78\ud83d\udc8d IndieWeb Webring? Everything is fine! We are up to around 450 active sites, with more than 250 of those appearing on the webring directory page!\n\n Okay so what is this update?\n \n\nHa! Ha. Reader, you see right through me. Since the last IndieWeb Webring update, an afficionado of IndieWeb, webrings, and PHP who goes by Von Explaino (aka Colin) reached out about collaborating!\nHe posted about his own updates in Playing with IndieWeb ring's code, and I posted a follow-up with my interest, and he shared his fork of the codebase and posted some ideas for future work. Look at this lovely back and forth discussion between our IndieWeb-powered sites! You love to see it.\nThat all started in, =ahem=, JULY OF 2023. After a slow email exchange between a patient Colin and a very embarrassed and tired me promising to take a look any day now, I eventually apologized for not having the energy to work on the web ring that that time and around September we stopped corresponding.\nThe update is that there's no update?\nNo! Well, sort of? This weekend I finally made time to reading through Colin's updates and additions, especially focused around the PHPUnit tests that he added for the basic database logic and site fetching and parsing and link-finding code.\nThe tl;dr is: I've incorporated most of Colin's updates, hooray!\nI want to see!\nSure! You can find today's updates to the code here on my git hosting!\nI don't want to look at code! Show me what changed for webring members!\nOh! Fair enough. None of today's updates affect how the webring looks or works at this time. It's more like setting up support infrastructure around the way the webring works now to make sure that nothing breaks unintentionally during future updates.\nDoes that mean changes are coming?\nMost likely! But all good stuff, I think. At the top of my list are:\nAutomating the \"gardener\" that checks whether active member sites have lost (or inactive members have regained!) their webring links.\n The directory page sure is getting unwieldy with so many profiles on there. It could use some improvements.\n General design and navigation cleanups.\n \n I've seen some interest in having the webring be a \"true ring\" - with deterministic next / previous links. I'm open to this but I want to keep it simple. (And I'll probably want to shake things up every once in a while!)\n \n\n I've seen some interest in using the active member sites on the webring as a \"Who to Follow\" for folks who are setting up their feed readers. I don't have it in me to maintain a \"planet\" feed that contains posts from everybody, but I could probably add some feed discovery so you can see which sites have clearly labeled feeds and maybe let you export an OPML list.\n \n Oh! And I keep wonderi-\n \n\nOkay! Okay.\nRight, haha. That's it, for now. As always, feel free to reply to this post on your own site, or feel free to drop me a line in the #indieweb chat (I\u2019m `schmarty` there).", "html": "<p>Are you a member of the <a href=\"https://xn--sr8hvo.ws/\">\ud83d\udd78\ud83d\udc8d IndieWeb Webring</a>? Everything is fine! We are up to around 450 active sites, with more than 250 of those appearing on the <a href=\"https://xn--sr8hvo.ws/directory\">webring directory page</a>!</p>\n<h2>\n Okay so what is this update?\n <br /></h2>\n<p>Ha! Ha. Reader, you see right through me. Since the <a href=\"https://martymcgui.re/2023/05/20/rebooting--an-indieweb-webring/\">last IndieWeb Webring update</a>, an afficionado of IndieWeb, webrings, and PHP who goes by <a href=\"https://vonexplaino.com\">Von Explaino</a> (aka Colin) reached out about collaborating!</p>\n<p>He posted about his own updates in <a href=\"https://vonexplaino.com/blog/posts/article/2023/07/playing-with-indieweb-ring-s-code.html\">Playing with IndieWeb ring's code</a>, and <a href=\"https://martymcgui.re/2023/07/07/140423/\">I posted a follow-up with my interest</a>, and he <a href=\"https://github.com/colinmo/schmarty-gem-diamond\">shared his fork of the codebase</a> and <a href=\"https://vonexplaino.com/blog/posts/reply/2023/07/reply-playing-with-indieweb-ring-s-code.html\">posted some ideas for future work</a>. Look at this lovely back and forth discussion between our IndieWeb-powered sites! You love to see it.</p>\n<p>That all started in, =ahem=, <i>JULY OF 2023.</i> After a slow email exchange between a patient Colin and a very embarrassed and tired me promising to take a look any day now, I eventually apologized for not having the energy to work on the web ring that that time and around September we stopped corresponding.</p>\n<h2>The update is that there's no update?</h2>\n<p>No! Well, <i>sort of</i>? This weekend I finally made time to reading through Colin's updates and additions, especially focused around the PHPUnit tests that he added for the basic database logic and site fetching and parsing and link-finding code.</p>\n<p>The tl;dr is: I've incorporated most of Colin's updates, hooray!</p>\n<h2>I want to see!</h2>\n<p>Sure! You can find <a href=\"https://git.schmarty.net/schmarty/gem-diamond/compare/b33d076f...73ea51c6\">today's updates to the code here on my git hosting</a>!</p>\n<h2>I don't want to look at code! Show me what changed for webring members!</h2>\n<p>Oh! Fair enough. None of today's updates affect how the webring looks or works at this time. It's more like setting up support infrastructure around the way the webring works now to make sure that nothing breaks unintentionally during future updates.</p>\n<h2>Does that mean changes are coming?</h2>\n<p>Most likely! But all good stuff, I think. At the top of my list are:</p>\n<ul><li>Automating the \"gardener\" that checks whether active member sites have lost (or inactive members have regained!) their webring links.</li>\n <li>The directory page sure is getting unwieldy with so many profiles on there. It could use some improvements.</li>\n <li>General design and navigation cleanups.</li>\n <li>\n I've seen some interest in having the webring be a \"true ring\" - with deterministic next / previous links. I'm open to this but I want to keep it simple. (And I'll probably want to shake things up every once in a while!)\n <br /></li>\n <li>I've seen some interest in using the active member sites on the webring as a \"Who to Follow\" for folks who are setting up their feed readers. I don't have it in me to maintain a \"planet\" feed that contains posts from everybody, but I could probably add some feed discovery so you can see which sites have clearly labeled feeds and maybe let you export an OPML list.</li>\n <li>\n Oh! And I keep wonderi-\n <br /></li>\n</ul><h2>Okay! Okay.</h2>\n<p>Right, haha. That's it, for now. As always, feel free to <a href=\"https://indieweb.org/reply\">reply</a> to this post on your own site, or feel free to drop me a line in the <a href=\"https://chat.indieweb.org/\">#indieweb chat</a> (I\u2019m `schmarty` there).</p>" }, "author": { "type": "card", "name": "Marty McGuire", "url": "https://martymcgui.re/", "photo": "https://martymcgui.re/images/logo.jpg" }, "post-type": "article", "_id": "41339031", "_source": "175" }
Another great essay by Julia in Gauntlet News:
Emphasis from original.
“We are currently in a ‘lull’, but ‘lull’ is a relative term, and ‘low’ in 2024 isn’t the same as ‘low’ in 2020-2021. In 2021, shortly after vaccination, our summer low hit 12k cases a day. This year it’s never gone below 160k new cases a day- over 12 times higher than the low of three years ago.
Let’s bear in mind that in November 2021, nearly a year after the debut of the vaccines, when Dr. Fauci was asked when things could fully ‘go back to normal’ and mitigations like masks could be dropped, he projected that when new daily COVID cases were under 10k, we could expect to fully resume normal life. During the surge this winter, we had over one million new cases a day. Not only have we never for one day had under 10k new cases since Fauci made this prediction, we have never had under 100k new cases on any day since then.”
— Gauntlet News, COVID lulls aren't being earned by policy; they're being bought with infections and deaths
{ "type": "entry", "published": "2024-06-09 17:06-0700", "url": "https://gregorlove.com/2024/06/another-great-essay/", "category": [ "covid" ], "content": { "text": "Another great essay by Julia in Gauntlet News:\n\nEmphasis from original.\n\n\n\n\u201cWe are currently in a \u2018lull\u2019, but \u2018lull\u2019 is a relative term, and \u2018low\u2019 in 2024 isn\u2019t the same as \u2018low\u2019 in 2020-2021. In 2021, shortly after vaccination, our summer low hit 12k cases a day. This year it\u2019s never gone below 160k new cases a day- over 12 times higher than the low of three years ago.\n\nLet\u2019s bear in mind that in November 2021, nearly a year after the debut of the vaccines, when Dr. Fauci was asked when things could fully \u2018go back to normal\u2019 and mitigations like masks could be dropped, he projected that when new daily COVID cases were under 10k, we could expect to fully resume normal life. During the surge this winter, we had over one million new cases a day. Not only have we never for one day had under 10k new cases since Fauci made this prediction, we have never had under 100k new cases on any day since then.\u201d\n\n\u2014 Gauntlet News, COVID lulls aren't being earned by policy; they're being bought with infections and deaths", "html": "<p>Another great essay by Julia in <a href=\"https://www.thegauntlet.news/\">Gauntlet News</a>:</p>\n\n<p>Emphasis from original.</p>\n\n<blockquote class=\"h-cite\">\n\n<p>\u201cWe are currently in a \u2018lull\u2019, but \u2018lull\u2019 is a relative term, and \u2018low\u2019 in 2024 isn\u2019t the same as \u2018low\u2019 in 2020-2021. In 2021, shortly after vaccination, our summer low hit 12k cases a day. This year it\u2019s never gone below 160k new cases a day- over 12 times higher than the low of three years ago.</p>\n\n<p>Let\u2019s bear in mind that in November 2021, nearly <em>a year after</em> the debut of the vaccines, when Dr. Fauci was asked when things could fully \u2018go back to normal\u2019 and mitigations like masks could be dropped, he projected that when new daily COVID cases were under 10k, we could expect to fully resume normal life. During the surge this winter, we had over one million new cases a day. Not only have we never for one day had under 10k new cases since Fauci made this prediction, <em>we have never had under 100k new cases on any day since then</em>.\u201d</p>\n\n\u2014 <a class=\"p-author h-card\" href=\"https://www.thegauntlet.news/\">Gauntlet News</a>, <a class=\"u-url p-name\" href=\"https://www.thegauntlet.news/p/covid-lulls-arent-being-earned-by\">COVID lulls aren't being earned by policy; they're being bought with infections and deaths</a>\n</blockquote>" }, "author": { "type": "card", "name": "gRegor Morrill", "url": "https://gregorlove.com/", "photo": "https://gregorlove.com/site/assets/files/6268/profile-2021-square.300x0.jpg" }, "post-type": "note", "_id": "41339029", "_source": "95" }
I’m going through some old posts, cleaning up and adding archive.org links. Man, some of this right-libertarian stuff is embarrassing now. I’m (mostly) glad I have it as an archive, though. Things change and hopefully we keep learning.
{ "type": "entry", "published": "2024-06-08 20:16-0700", "url": "https://gregorlove.com/2024/06/im-going-through-some/", "content": { "text": "I\u2019m going through some old posts, cleaning up and adding archive.org links. Man, some of this right-libertarian stuff is embarrassing now. I\u2019m (mostly) glad I have it as an archive, though. Things change and hopefully we keep learning.", "html": "<p>I\u2019m going through some old posts, cleaning up and adding archive.org links. Man, some of this right-libertarian stuff is embarrassing now. I\u2019m (mostly) glad I have it as an archive, though. Things change and hopefully we keep learning.</p>" }, "author": { "type": "card", "name": "gRegor Morrill", "url": "https://gregorlove.com/", "photo": "https://gregorlove.com/site/assets/files/6268/profile-2021-square.300x0.jpg" }, "post-type": "note", "_id": "41331853", "_source": "95" }
{ "type": "entry", "published": "2024-06-07T19:46:40-07:00", "url": "https://aaronparecki.com/2024/06/07/11/home-automation", "category": [ "homeautomation", "matter", "thread", "homeassistant" ], "syndication": [ "https://bsky.app/profile/aaronpk.com/post/3kuezql43u62x" ], "content": { "text": "ok I think I just got my Home Assistant set up with Matter and Thread using the SkyConnect USB dongle and I have to say this is way more complicated than it should be and those names are terrible. I hope this gets smoothed out in the next couple years!" }, "author": { "type": "card", "name": "Aaron Parecki", "url": "https://aaronparecki.com/", "photo": "https://aperture-media.p3k.io/aaronparecki.com/41061f9de825966faa22e9c42830e1d4a614a321213b4575b9488aa93f89817a.jpg" }, "post-type": "note", "_id": "41324193", "_source": "16" }
Re-upping this. I originally made it in 2013, but seems like it’s always relevant.
{ "type": "entry", "published": "2024-06-07 14:42-0700", "url": "https://gregorlove.com/2024/06/five-hour-wordpress-energy/", "category": [ "WorstPress" ], "photo": [ "https://gregorlove.com/site/assets/files/6857/9583782941_cd4f7281ff_o.1500x0.jpg" ], "syndication": [ "https://www.flickr.com/photos/gregorlove/9583782941/", "https://www.instagram.com/p/C77hslFyP3p/" ], "content": { "text": "Re-upping this. I originally made it in 2013, but seems like it\u2019s always relevant.", "html": "<p>Re-upping this. I originally made it in 2013, but seems like it\u2019s always relevant.</p>" }, "author": { "type": "card", "name": "gRegor Morrill", "url": "https://gregorlove.com/", "photo": "https://gregorlove.com/site/assets/files/6268/profile-2021-square.300x0.jpg" }, "post-type": "photo", "_id": "41322969", "_source": "95" }
{ "type": "entry", "published": "2024-06-06T21:18:30-07:00", "url": "https://aaronparecki.com/2024/06/06/26/duolingo", "category": [ "duolingo" ], "photo": [ "https://aperture-media.p3k.io/aaronparecki.com/8a85ee6bd83278b0b22f88ffd09cc48d36ce40bd7fefcce3d69dd9612c608b23.png" ], "content": { "text": "For some reason I'm more proud of my 2^10 day Duolingo streak than my 1000 day Duolingo streak" }, "author": { "type": "card", "name": "Aaron Parecki", "url": "https://aaronparecki.com/", "photo": "https://aperture-media.p3k.io/aaronparecki.com/41061f9de825966faa22e9c42830e1d4a614a321213b4575b9488aa93f89817a.jpg" }, "post-type": "photo", "_id": "41315302", "_source": "16" }
{ "type": "entry", "published": "2024-06-06T18:03:33-07:00", "url": "https://nadreck.me/2024/06/a-website-is-a-room/", "category": [ "links", "social-computing" ], "name": "A Website is a Room", "content": { "text": "Found via Jay Springett, Nancy Wu\u2019s thesis project, \u201cA Website is a Room\u201c. \n\n\n\n\nI came to this conclusion sometime during quarantine when I realized that\u00a0certain websites give me a sense of\u00a0shelter and rest\u00a0more than others.\n\n\n\nThese spaces that particularly stood out to me all had some quality of slowness,\u00a0 quiet,\u00a0and/or\u00a0gathering.\n\n\n\nWe ought to carefully examine the qualities of the living environment that each web space provides for us.\nNancy Wu\n\n\n\n\nThe result is a semi-curated list of websites (some blogs, some just random sites) with a little info about what sort of space that site is. I\u2019m looking forward to exploring the (fairly lengthy) list of sites as I have time to do so.\n\n\n\nI kind of like the metaphor \u2013 it\u2019s not true for every site, but there are absolutely sites where it works. For whatever reason, it brings to mind the infinite rooms of the world of Piranesi (by Susanna Clarke). I\u2019m picturing sites as rooms filled with statues, and somewhere in there is the sea.", "html": "<p>Found via <a href=\"https://www.thejaymo.net/2024/06/02/342-other-things-first-weeknotes/\">Jay Springett</a>, Nancy Wu\u2019s thesis project, \u201c<a href=\"https://a-website-is-a-room.net\">A Website is a Room</a>\u201c. </p>\n\n\n\n<blockquote>\n<p>I came to this conclusion sometime during quarantine when I realized that\u00a0<a href=\"http://rite.house/\">certain websites</a> give me a sense of\u00a0<a href=\"https://observingtime.cam/\">shelter and rest</a>\u00a0more than others.</p>\n\n\n\n<p>These spaces that particularly stood out to me all had some quality of <a href=\"https://a-website-is-a-room.net/#slowness\">slowness</a>,\u00a0 <a href=\"https://a-website-is-a-room.net/#quiet\">quiet</a>,\u00a0and/or\u00a0<a href=\"https://a-website-is-a-room.net/#gathering\">gathering</a>.</p>\n\n\n\n<p>We ought to carefully examine the qualities of the living environment that each web space provides for us.</p>\nNancy Wu\n</blockquote>\n\n\n\n<p>The result is a semi-curated list of websites (some blogs, some just random sites) with a little info about what sort of space that site is. I\u2019m looking forward to exploring the (fairly lengthy) list of sites as I have time to do so.</p>\n\n\n\n<p>I kind of like the metaphor \u2013 it\u2019s not true for every site, but there are absolutely sites where it works. For whatever reason, it brings to mind the infinite rooms of the world of Piranesi (by Susanna Clarke). I\u2019m picturing sites as rooms filled with statues, and somewhere in there is the sea.</p>" }, "author": { "type": "card", "name": "Nadreck", "url": "http://nadreck.me", "photo": null }, "post-type": "article", "_id": "41314577", "_source": "2935" }
{ "type": "entry", "published": "2024-06-06T05:31:16+00:00", "url": "https://cleverdevil.io/2024/-f1mv-lights---syncs-leds-to-live-f1-events", "photo": [ "https://cleverdevil.io/file/0fdac4259d68222a9211dc236d5655fd/thumb.jpg", "https://cleverdevil.io/file/587133a1f09235b4c84e02a8bfb951b8/thumb.jpg", "https://cleverdevil.io/file/ae113e6eee8b36fac48c3dee4c248f54/thumb.jpg" ], "syndication": [ "https://cleverdevil.club/@jonathan/112568035871092506", "https://bsky.app/profile/cleverdevil.io/post/3kuac2a2he224" ], "name": "\ud83c\udfce\ufe0f F1MV Lights - Syncs LEDs to Live F1 Events #F1", "author": { "type": "card", "name": "Jonathan LaCour", "url": "https://cleverdevil.io/profile/cleverdevil", "photo": "https://cleverdevil.io/file/e37c3982acf4f0a8421d085b9971cd71/thumb.jpg" }, "post-type": "photo", "_id": "41307765", "_source": "10" }
{ "type": "entry", "published": "2024-06-04T20:30:54-07:00", "url": "https://aaronparecki.com/2024/06/04/10/hot-sauce", "category": [ "cooking", "hotsauce" ], "photo": [ "https://aperture-media.p3k.io/aaronparecki.com/c0ca9def974034a5cebba99d1f66ef51c96b9770ff001b14ee77bc09225b8c42.jpg" ], "content": { "text": "Trying something new... Serrano hot sauce!" }, "author": { "type": "card", "name": "Aaron Parecki", "url": "https://aaronparecki.com/", "photo": "https://aperture-media.p3k.io/aaronparecki.com/41061f9de825966faa22e9c42830e1d4a614a321213b4575b9488aa93f89817a.jpg" }, "post-type": "photo", "_id": "41296340", "_source": "16" }
{ "type": "entry", "published": "2024-06-03T20:46:12-07:00", "url": "https://beesbuzz.biz/blog/9691-Upcoming-engagements", "name": "Upcoming engagements", "content": { "text": "I have a whole bunch of stuff going on right now and most of it involves things that people can come see me at!\n\nWith Seattle Center on Contemporary Art I am one of eight artists in a show featuring transgender artists, entitled Taking Up Space. Its opening reception is this Thursday from 5-9 PM at the CoCA gallery (114 Third Ave S, Seattle, WA 98104).\n\nSunday afternoon I am performing in the Trans Academy Trans Pride VR talent show, which is from 12:30 - 3 PM (Pacific Daylight Time) in VRChat. See the announcement video for more information, and of course there\u2019s plenty on the community Discord and on X.\n\nNext Saturday (June 15, 2024) I\u2019ll be performing with STANCE at the Museum of Flight for Sally Ride Day, at around 12 PM.\n\nThe Friday and Saturday after (June 21 and 22, 2024) I\u2019ll be again performing with STANCE for our Pride concert series, at 7:30 PM on the 21st at Rainier Beach Presbyterian Church and 3 PM on the 22nd at Seattle First Baptist.\n\nSome Wednesday evening in July I\u2019ll be performing a full set of my own music at Trans Academy\u2019s concert series, Moonlit Academy. More information as it becomes available.\n\nAnd then on July 19 and 20th I\u2019ll be performing with Song Fight! Live at the Buntport Theater in Denver, Colorado, actual show times yet to be determined.\n\nI am, as always, a busy bee.", "html": "<p>I have a whole bunch of stuff going on right now and most of it involves things that people can come see me at!</p><p>With <a href=\"https://www.cocaseattle.org/\">Seattle Center on Contemporary Art</a> I am one of eight artists in a show featuring transgender artists, entitled <a href=\"https://www.cocaseattle.org/2024-exhibitions/taking-up-space\">Taking Up Space</a>. Its opening reception is this Thursday from 5-9 PM at the CoCA gallery (<a href=\"https://maps.apple.com/?address=114%203rd%20Ave%20S,%20Seattle,%20WA%20%2098104,%20United%20States&ll=47.601178,-122.330059&q=CoCA%20Seattle\">114 Third Ave S, Seattle, WA 98104</a>).</p><p>Sunday afternoon I am performing in the <a href=\"https://transacademy.org/\">Trans Academy</a> Trans Pride VR talent show, which is from 12:30 - 3 PM (Pacific Daylight Time) in VRChat. See <a href=\"https://youtu.be/wBz4GKHF5OM?si=lD-oAWFvaeQBLDBS\">the announcement video</a> for more information, and of course there\u2019s plenty on <a href=\"https://discord.com/invite/transacademy\">the community Discord</a> and <a href=\"https://x.com/TransAcademyVR/status/1796036312962670757\">on X</a>.</p><p>Next Saturday (June 15, 2024) I\u2019ll be performing with <a href=\"https://stanceseattle.org/\">STANCE</a> at the Museum of Flight for <a href=\"https://www.museumofflight.org/exhibits-and-events/calendar-of-events/7784/sallys-day\">Sally Ride Day</a>, at around 12 PM.</p><p>The Friday and Saturday after (June 21 and 22, 2024) I\u2019ll be again performing with STANCE for our <a href=\"https://www.stanceseattle.org/performances/true-colors\">Pride concert series</a>, at 7:30 PM on the 21st at Rainier Beach Presbyterian Church and 3 PM on the 22nd at Seattle First Baptist.</p><p>Some Wednesday evening in July I\u2019ll be performing a full set of my own music at Trans Academy\u2019s concert series, Moonlit Academy. More information as it becomes available.</p><p>And then on July 19 and 20th I\u2019ll be performing with <a href=\"https://songfight.org/\">Song Fight! Live</a> at the <a href=\"https://buntport.com/\">Buntport Theater</a> in Denver, Colorado, actual show times yet to be determined.</p><p>I am, as always, a busy bee.</p>" }, "author": { "type": "card", "name": "fluffy", "url": "https://beesbuzz.biz/", "photo": "https://beesbuzz.biz/static/headshot.jpg" }, "post-type": "article", "_id": "41287312", "_source": "2778" }