What’s happening across the divide during eternal Caturday?
{ "type": "entry", "published": "2023-07-02T11:57:16-0400", "url": "https://martymcgui.re/2023/07/02/115716/", "category": [ "Caturday" ], "video": [ "https://res.cloudinary.com/schmarty/video/upload/vc_h264/mmmgre/74/9e/30/98/48e1a1e4c8d15f1bd174883b28634869440d86ee11f2eb69cf998e1a.mov" ], "content": { "text": "What\u2019s happening across the divide during eternal Caturday?", "html": "<p>What\u2019s happening across the divide during eternal Caturday?</p>" }, "author": { "type": "card", "name": "Marty McGuire", "url": "https://martymcgui.re/", "photo": "https://martymcgui.re/images/logo.jpg" }, "post-type": "video", "_id": "38172195", "_source": "175" }
Community gardening for pop-ups and Pythons. It’s your < 10min update on the #IndieWeb community!
This Week in the IndieWeb audio edition for June 24th - 30th, 2023. https://martymcgui.re/2023/07/01/this-week-in-the-indieweb-audio-edition--june-24th---30th-2023/
{ "type": "entry", "published": "2023-07-01T13:34:06-0400", "url": "https://martymcgui.re/2023/07/01/133406/", "syndication": [ "https://fed.brid.gy/" ], "content": { "text": "Community gardening for pop-ups and Pythons. It\u2019s your < 10min update on the #IndieWeb community!\nThis Week in the IndieWeb audio edition for June 24th - 30th, 2023.\nhttps://martymcgui.re/2023/07/01/this-week-in-the-indieweb-audio-edition--june-24th---30th-2023/", "html": "<p>Community gardening for pop-ups and Pythons. It\u2019s your < 10min update on the #IndieWeb community!</p>\n<p>This Week in the IndieWeb audio edition for June 24th - 30th, 2023.\n<a href=\"https://martymcgui.re/2023/07/01/this-week-in-the-indieweb-audio-edition--june-24th---30th-2023/\">https://martymcgui.re/2023/07/01/this-week-in-the-indieweb-audio-edition--june-24th---30th-2023/</a></p>" }, "author": { "type": "card", "name": "Marty McGuire", "url": "https://martymcgui.re/", "photo": "https://martymcgui.re/images/logo.jpg" }, "post-type": "note", "_id": "38162213", "_source": "175" }
{ "type": "entry", "published": "2023-07-01T13:32:30-0400", "url": "https://martymcgui.re/2023/07/01/this-week-in-the-indieweb-audio-edition--june-24th---30th-2023/", "category": [ "podcast", "IndieWeb", "this-week-indieweb-podcast" ], "audio": [ "https://media.martymcgui.re/08/4e/45/a8/97e513d96ca8188452a7e889c576133606ea8ecbbf593ca02560cd43.mp3" ], "name": "This Week in the IndieWeb Audio Edition \u2022 June 24th - 30th, 2023", "content": { "text": "Show/Hide Transcript\n \n Community gardening for pop-ups and Pythons. It\u2019s the audio edition for This Week in the IndieWeb for June 24th - 30th, 2023.\nYou can find all of my audio editions and subscribe with your favorite podcast app here: martymcgui.re/podcasts/indieweb/.\nMusic from Aaron Parecki\u2019s 100DaysOfMusic project: Day 85 - Suit, Day 48 - Glitch, Day 49 - Floating, Day 9, and Day 11\nThanks to everyone in the IndieWeb chat for their feedback and suggestions. Please drop me a note if there are any changes you\u2019d like to see for this audio edition!", "html": "Show/Hide Transcript\n \n <p>Community gardening for pop-ups and Pythons. It\u2019s the audio edition for <a href=\"https://indieweb.org/this-week/2023-06-30.html\">This Week in the IndieWeb for June 24th - 30th, 2023</a>.</p>\n<p>You can find all of my audio editions and subscribe with your favorite podcast app here: <a href=\"https://martymcgui.re/podcasts/indieweb/\">martymcgui.re/podcasts/indieweb/</a>.</p>\n<p>Music from <a href=\"https://aaronparecki.com/\">Aaron Parecki</a>\u2019s <a href=\"https://100.aaronparecki.com/\">100DaysOfMusic project</a>: <a href=\"https://aaronparecki.com/2017/03/15/14/day85\">Day 85 - Suit</a>, <a href=\"https://aaronparecki.com/2017/02/06/7/day48\">Day 48 - Glitch</a>, <a href=\"https://aaronparecki.com/2017/02/07/4/day49\">Day 49 - Floating</a>, <a href=\"https://aaronparecki.com/2016/12/29/21/day-9\">Day 9</a>, and <a href=\"https://aaronparecki.com/2016/12/31/15/\">Day 11</a></p>\n<p>Thanks to everyone in the <a href=\"https://chat.indieweb.org/\">IndieWeb chat</a> for their feedback and suggestions. Please drop me a note if there are any changes you\u2019d like to see for this audio edition!</p>" }, "author": { "type": "card", "name": "Marty McGuire", "url": "https://martymcgui.re/", "photo": "https://martymcgui.re/images/logo.jpg" }, "post-type": "audio", "_id": "38162214", "_source": "175" }
Are you enjoying your streaming services during eternal Caturday?
{ "type": "entry", "published": "2023-07-01T11:18:03-0400", "url": "https://martymcgui.re/2023/07/01/111803/", "category": [ "Caturday" ], "video": [ "https://res.cloudinary.com/schmarty/video/upload/vc_h264/mmmgre/60/68/bd/a2/9d785d40e41717f504e702d859c211ed08b01b4cfcfab1bcab5f0697.mov" ], "content": { "text": "Are you enjoying your streaming services during eternal Caturday?", "html": "<p>Are you enjoying your streaming services during eternal Caturday?</p>" }, "author": { "type": "card", "name": "Marty McGuire", "url": "https://martymcgui.re/", "photo": "https://martymcgui.re/images/logo.jpg" }, "post-type": "video", "_id": "38162215", "_source": "175" }
Are you being consumed during eternal Caturday?
{ "type": "entry", "published": "2023-06-30T23:47:54-0400", "url": "https://martymcgui.re/2023/06/30/234754/", "category": [ "Caturday" ], "video": [ "https://res.cloudinary.com/schmarty/video/upload/vc_h264/mmmgre/7a/c9/a0/28/ed18020b9916f15af7753f27e4c5661b7dda2a2a9ef4a1878a095527.mov" ], "content": { "text": "Are you being consumed during eternal Caturday?", "html": "<p>Are you being consumed during eternal Caturday?</p>" }, "author": { "type": "card", "name": "Marty McGuire", "url": "https://martymcgui.re/", "photo": "https://martymcgui.re/images/logo.jpg" }, "post-type": "video", "_id": "38155333", "_source": "175" }
{ "type": "entry", "author": { "name": null, "url": "https://benjaminturner.me/blog/", "photo": null }, "url": "https://benjaminturner.me/blog/july-3rd/", "published": "2018-07-07T19:30:00+00:00", "content": { "html": "<p>{{ photo 41 }}</p>", "text": "{{ photo 41 }}" }, "name": "July 3rd", "post-type": "article", "_id": "38153879", "_source": "2780" }
{ "type": "entry", "author": { "name": null, "url": "https://benjaminturner.me/blog/", "photo": null }, "url": "https://benjaminturner.me/blog/mit-net-neutrality-panel/", "published": "2018-04-20T03:59:00+00:00", "content": { "html": "<p>{{ photo 39 }}</p>\n<p>Tonight I had the good foturne to attend a panel on Net Netrality hosted by Massachussetts Senator Ed Markey at the Wong Auditorium in Cambridge. The panel included former FCC Chairman <a href=\"https://en.wikipedia.org/wiki/Tom_Wheeler\">Tom Wheeler</a> (the good one), Harvard Law Professor <a href=\"https://en.wikipedia.org/wiki/Susan_P._Crawford\">Susan Crawford</a>, CEO of <a href=\"https://www.carbonite.com/\">Carbonite</a>, <a href=\"https://twitter.com/mhsali\">Mohamad Ali</a>, and <a href=\"https://en.wikipedia.org/wiki/Tim_Berners-Lee\">Sir Tim Berners-Lee</a> (invented the internet).</p>\n<p>{{ photo:small 40 }}</p>\n<p>The panel served as the launch of Senator Markey's one month campaign to get Republicans on board with voting to overturn the current FCC's removal of net neutrality protections. He's calling this #onemorevote as currently the 49 Democratic Senators and Republican Senator Susan Collins have given their support. 51 votes are required.</p>\n<p>The discussion included comparisions from history such as when railroads used access to their networks to charge small farmers more than large agricultural companies to ship goods. As a result of electric monopolies, FDR broke up electric companies and regulated prices, increasing the number of Americans able to access electricity.</p>\n<p>It's astonishing that over three quarters of American's have only one choice when it comes to an ISP. This is clearly a situation where competition is required, not only to prevent monopolies, but to stimulate competition between ISPs.</p>\n<p>It was ironic to attend this panel when elsewhere in the country, one of the days headlines read, <a href=\"https://arstechnica.com/tech-policy/2018/04/isps-should-charge-for-fast-lanes-just-like-tsa-precheck-gop-lawmaker-says/\">ISPs should charge for fast lanes-just like TSA Precheck</a> I think this analogy mistakes the role ISPs serve. It's fair game to charge for data that is used, just like a utility bills for water or electricity used. But no one would tolerate a utility arbitrarily slowing down water pressure to a trickle unless a customer paid more for higher pressure.</p>\n<p>Surprisingly, Burger King illustrates this well:</p>\n\n\n<p>My takeaway from the evening was that people should consider internet access a fundamental right. It's what the economy runs on and it creates jobs. It needs to be protected so it can continue to allow innovation to flow freely.</p>\n<p>It's going to take lots of calls to representatives in the next month to make the repeal successful, and it's important that it succeeds.</p>", "text": "{{ photo 39 }}\nTonight I had the good foturne to attend a panel on Net Netrality hosted by Massachussetts Senator Ed Markey at the Wong Auditorium in Cambridge. The panel included former FCC Chairman Tom Wheeler (the good one), Harvard Law Professor Susan Crawford, CEO of Carbonite, Mohamad Ali, and Sir Tim Berners-Lee (invented the internet).\n{{ photo:small 40 }}\nThe panel served as the launch of Senator Markey's one month campaign to get Republicans on board with voting to overturn the current FCC's removal of net neutrality protections. He's calling this #onemorevote as currently the 49 Democratic Senators and Republican Senator Susan Collins have given their support. 51 votes are required.\nThe discussion included comparisions from history such as when railroads used access to their networks to charge small farmers more than large agricultural companies to ship goods. As a result of electric monopolies, FDR broke up electric companies and regulated prices, increasing the number of Americans able to access electricity.\nIt's astonishing that over three quarters of American's have only one choice when it comes to an ISP. This is clearly a situation where competition is required, not only to prevent monopolies, but to stimulate competition between ISPs.\nIt was ironic to attend this panel when elsewhere in the country, one of the days headlines read, ISPs should charge for fast lanes-just like TSA Precheck I think this analogy mistakes the role ISPs serve. It's fair game to charge for data that is used, just like a utility bills for water or electricity used. But no one would tolerate a utility arbitrarily slowing down water pressure to a trickle unless a customer paid more for higher pressure.\nSurprisingly, Burger King illustrates this well:\n\n\nMy takeaway from the evening was that people should consider internet access a fundamental right. It's what the economy runs on and it creates jobs. It needs to be protected so it can continue to allow innovation to flow freely.\nIt's going to take lots of calls to representatives in the next month to make the repeal successful, and it's important that it succeeds." }, "name": "M.I.T. Net Neutrality Panel", "post-type": "article", "_id": "38153880", "_source": "2780" }
{ "type": "entry", "author": { "name": null, "url": "https://benjaminturner.me/blog/", "photo": null }, "url": "https://benjaminturner.me/blog/electronics-recycling/", "published": "2017-07-26T03:00:00+00:00", "content": { "html": "<p>This morning I discovered a partially disassembled iMac abandoned in my building's dumpster. <a href=\"https://www.theatlantic.com/technology/archive/2016/09/the-global-cost-of-electronic-waste/502019/\">It should come as no surprise that E-waste is an increasingly important issue, and is terrible for the environment</a>. The individual who left this computer for trash acted extremely irresponsibly. What's even more frustrating is that Apple makes it trivially simple to recycle their products.</p>\n<p>You can drop off your old product at any Apple store, or if that's inconvenient, they will ship you a box for free that you can then ship back to them. If you have a newer product, they'll give you a gift card for the current value of your old product. Details are here: <a href=\"https://www.apple.com/recycling/\">https://www.apple.com/recycling/</a></p>\n<p>{{ photo:small 38 align=right }}</p>\n<p>It pains me to think of all the components of a computer leaching into a landfill, not to mention the parts that can be recycled, so I took it upon myself to remove the iMac from the garbage (thankfully it wasn't full). The nearest Apple store is only a 15 minute drive, so I gathered the disassembled pieces and carried it into the store. When I was greeted by the Apple Genius at the front of the store, I coyly asked whether they thought they could fix my computer. After a brief pause, he smiled. Several employees came over to inspect the mangled specimen I had retrieved. We posed theories as to why the owner may have bent and torn into the case when the only missing components were the RAM sticks which are easily accessible. I was thanked for rescuing the computer from the trash and we made a few jokes at the unknown owner's expense.</p>\n<p>My good deed done for the day was done, and at least one less computer went to a landfill.</p>", "text": "This morning I discovered a partially disassembled iMac abandoned in my building's dumpster. It should come as no surprise that E-waste is an increasingly important issue, and is terrible for the environment. The individual who left this computer for trash acted extremely irresponsibly. What's even more frustrating is that Apple makes it trivially simple to recycle their products.\nYou can drop off your old product at any Apple store, or if that's inconvenient, they will ship you a box for free that you can then ship back to them. If you have a newer product, they'll give you a gift card for the current value of your old product. Details are here: https://www.apple.com/recycling/\n{{ photo:small 38 align=right }}\nIt pains me to think of all the components of a computer leaching into a landfill, not to mention the parts that can be recycled, so I took it upon myself to remove the iMac from the garbage (thankfully it wasn't full). The nearest Apple store is only a 15 minute drive, so I gathered the disassembled pieces and carried it into the store. When I was greeted by the Apple Genius at the front of the store, I coyly asked whether they thought they could fix my computer. After a brief pause, he smiled. Several employees came over to inspect the mangled specimen I had retrieved. We posed theories as to why the owner may have bent and torn into the case when the only missing components were the RAM sticks which are easily accessible. I was thanked for rescuing the computer from the trash and we made a few jokes at the unknown owner's expense.\nMy good deed done for the day was done, and at least one less computer went to a landfill." }, "name": "Electronics Recycling", "post-type": "article", "_id": "38153881", "_source": "2780" }
{ "type": "entry", "author": { "name": null, "url": "https://benjaminturner.me/blog/", "photo": null }, "url": "https://benjaminturner.me/blog/upgrading-postgres-using-pg_dumpall-on-macos/", "published": "2017-05-28T18:29:00+00:00", "content": { "html": "<p>Recently, I decided to update the dependencies in my local development environment. I develop on macOS and use homebrew for package management. One of the packages I tend to neglect keeping up to date is postgresql because of the data juggling required to make the upgrade (It's actually not too difficult of a process). I've been using 9.4 and the current major version is 9.6 so it seemed like a good time to upgrade before falling even further behind. I followed the instructions on this <a href=\"https://keita.blog/2016/01/09/homebrew-and-postgresql-9-5/\">helpful blog post</a> to upgrade from 9.4 to 9.5, and everything worked exactly as outlined. However, when I tried to follow the procedure for upgrading from 9.5 to 9.6, I was met with this error:</p>\n<pre><code>$ FATAL: could not open directory \"/usr/local/share/postgresql95/timezonesets\": No such file or directory\nHINT: This may indicate an incomplete PostgreSQL installation, or that the file \"/usr/local/Cellar/postgresql95/9.5.5/bin/postgres\" has been moved away from its proper location.\n</code></pre>\n<p>The issue appears to be related to having upgraded to a newer version of postgresql before running the <code>pg_upgrade</code> command which attempts to start up the previous version of the server and fails. I tried lots of different methods switching back to the previous version of postgresql and following the procedure, but that just broke the process in a different place.</p>\n<p><a href=\"https://www.postgresql.org/docs/9.6/static/upgrading.html\">After a fair amount of googling I found a different method of upgrading using <code>pg_dumpall</code></a> which did the trick, allowing me to bypass having to start up the older version of the server. Using this process you simply create a dump file of your data, upgrade postgres and initialize a new database, then import your dump file into the new database.</p>\n<p>Create the dump file:</p>\n<pre><code>$ pg_dumpall > /path/to/file\nC&#35;when performing this step it's recommended to use the latest version of the `pg_dumpall` binary. If you haven't switched versions using `brew link` yet, you can use the absolute path:\nC&#35;$ /usr/local/Cellar/postgresql/9.6.1/bin/pg_dumpall > /path/to/file\n</code></pre>\n<p>Shut down the current server:</p>\n<pre><code>$ brew services stop postgresql95\n</code></pre>\n<p>Move the current data directory:</p>\n<pre><code>$ mv /usr/local/var/postgres /usr/local/var/postgresql95\n</code></pre>\n<p>Make a new data directory using the upgraded binary and start the server:</p>\n<pre><code>$ initdb /usr/local/var/postgres -E utf8\n$ brew services start postgresql\n</code></pre>\n<p>Restore from the dump file:</p>\n<pre><code>$ psql -d postgres -f /path/to/file\n</code></pre>", "text": "Recently, I decided to update the dependencies in my local development environment. I develop on macOS and use homebrew for package management. One of the packages I tend to neglect keeping up to date is postgresql because of the data juggling required to make the upgrade (It's actually not too difficult of a process). I've been using 9.4 and the current major version is 9.6 so it seemed like a good time to upgrade before falling even further behind. I followed the instructions on this helpful blog post to upgrade from 9.4 to 9.5, and everything worked exactly as outlined. However, when I tried to follow the procedure for upgrading from 9.5 to 9.6, I was met with this error:\n$ FATAL: could not open directory \"/usr/local/share/postgresql95/timezonesets\": No such file or directory\nHINT: This may indicate an incomplete PostgreSQL installation, or that the file \"/usr/local/Cellar/postgresql95/9.5.5/bin/postgres\" has been moved away from its proper location.\n\nThe issue appears to be related to having upgraded to a newer version of postgresql before running the pg_upgrade command which attempts to start up the previous version of the server and fails. I tried lots of different methods switching back to the previous version of postgresql and following the procedure, but that just broke the process in a different place.\nAfter a fair amount of googling I found a different method of upgrading using pg_dumpall which did the trick, allowing me to bypass having to start up the older version of the server. Using this process you simply create a dump file of your data, upgrade postgres and initialize a new database, then import your dump file into the new database.\nCreate the dump file:\n$ pg_dumpall > /path/to/file\nC#when performing this step it's recommended to use the latest version of the `pg_dumpall` binary. If you haven't switched versions using `brew link` yet, you can use the absolute path:\nC#$ /usr/local/Cellar/postgresql/9.6.1/bin/pg_dumpall > /path/to/file\n\nShut down the current server:\n$ brew services stop postgresql95\n\nMove the current data directory:\n$ mv /usr/local/var/postgres /usr/local/var/postgresql95\n\nMake a new data directory using the upgraded binary and start the server:\n$ initdb /usr/local/var/postgres -E utf8\n$ brew services start postgresql\n\nRestore from the dump file:\n$ psql -d postgres -f /path/to/file" }, "name": "Upgrading postgres using pg_dumpall on macOS", "post-type": "article", "_id": "38153882", "_source": "2780" }
{ "type": "entry", "author": { "name": null, "url": "https://benjaminturner.me/blog/", "photo": null }, "url": "https://benjaminturner.me/blog/quickly-add-a-ssl-certificate-using-cloudflare/", "published": "2016-06-23T07:16:00+00:00", "content": { "html": "<p>In the past adding a SSL certificate to a website has been an expensive and complicated operation, but there are many good services available today making it cheap and easy to secure a website.</p>\n<p>Using a SSL certificate with a domain allows users to access a website using an encrypted connection between the browser and a server. If you access a website from a public wifi hotspot that does not require a password, the data between your device and the wifi router can be compromised by being intercepted by someone else on the network. Accessing websites using https greatly reduces this vulneribility.</p>\n<p>A major drawback to implementing better security has unfortunately been cost. Previously on Heroku, using a certificate required the addition of a $20/mo add-on. This doesn't make a lot of sense for smaller projects or primarily static sites. In May, <a href=\"https://blog.heroku.com/archives/2016/5/18/announcing_heroku_free_ssl_beta_and_flexible_dyno_hours\">Heroku annouced a new SSL Beta</a> which makes using a certificate free. This is great news and what got me interested in figuring out how to setup a certificate on my site.</p>\n<p>Another interesting project is <a href=\"https://letsencrypt.org/\">Let's Encrypt</a> which has significantly reduced the complexity around acquiring a certificate. A command line tool is provided which distills creating a certificate down to a series of prompts asking for a little bit of information about your website. The certificate is saved to your device and you then can move it to your server or service where you're hosting your website.</p>\n<p>I set down the path of creating my own certificate using Let's Encrypt and wiring it up to my Heroku project using their SSL add-on. I hit two roadblocks, one was that while it's better than the $20/mo add-on, using the SSL Beta requires at the minimum a $7/mo Hobby account. Since I'm using this for my blog, which I try to run using free services, it felt like overkill. The other problem was that in it's current state, Let's Encrypt certificates must be renewed every three months. This means keeping everything up and running requires some vigilance or investment in automation.</p>\n<p>At this point I happend to learn about <a href=\"https://www.cloudflare.com/\">CloudFlare</a>, a free, hosted solution for SSL. Setting up your site with CloudFlare is simple, quick and easy. I was able to configure CloudFlare in several minutes without having to touch my Heroku configuration. After waiting for the DNS changes to propagate, I had a safer and more secure website.</p>\n<p>Here's what I did:</p>\n<ol><li>\n<p><a href=\"https://www.cloudflare.com/a/sign-up\">Create a free CloudFlare account</a></p>\n</li>\n<li>\n<p>Add a site. Here you'll enter a root domain, e.g., foo.com. CloudFlare will scan DNS records for the domain and find relevant information, in my case, I had A and CNAME records, benjaminturner.me and www.benjaminturner.me.</p>\n</li>\n<li>\n<p>When the scan is complete, CloudFlare will provide new Nameservers. These must be updated with your domain registrar, in my case I was using NameCheap. Log in to the registrars interface and update existing Nameservers to point to CloudFlare's.</p>\n</li>\n</ol><p>That's it. At this point, you'll just need to wait for all the DNS changes to propagate. For free accounts this can take up to 24 hours.</p>\n<h5>Troubleshooting</h5>\n<p>At this point, you'll have CloudFlare configured correctly, but your website may not be. One problem I had was an externally hosted image I was linking to on every page of my site. It was hosted on http, not https. All links on a site should use the https scheme, otherwise you won't see the nice \"lock\" icon in the browser's URL bar.</p>", "text": "In the past adding a SSL certificate to a website has been an expensive and complicated operation, but there are many good services available today making it cheap and easy to secure a website.\nUsing a SSL certificate with a domain allows users to access a website using an encrypted connection between the browser and a server. If you access a website from a public wifi hotspot that does not require a password, the data between your device and the wifi router can be compromised by being intercepted by someone else on the network. Accessing websites using https greatly reduces this vulneribility.\nA major drawback to implementing better security has unfortunately been cost. Previously on Heroku, using a certificate required the addition of a $20/mo add-on. This doesn't make a lot of sense for smaller projects or primarily static sites. In May, Heroku annouced a new SSL Beta which makes using a certificate free. This is great news and what got me interested in figuring out how to setup a certificate on my site.\nAnother interesting project is Let's Encrypt which has significantly reduced the complexity around acquiring a certificate. A command line tool is provided which distills creating a certificate down to a series of prompts asking for a little bit of information about your website. The certificate is saved to your device and you then can move it to your server or service where you're hosting your website.\nI set down the path of creating my own certificate using Let's Encrypt and wiring it up to my Heroku project using their SSL add-on. I hit two roadblocks, one was that while it's better than the $20/mo add-on, using the SSL Beta requires at the minimum a $7/mo Hobby account. Since I'm using this for my blog, which I try to run using free services, it felt like overkill. The other problem was that in it's current state, Let's Encrypt certificates must be renewed every three months. This means keeping everything up and running requires some vigilance or investment in automation.\nAt this point I happend to learn about CloudFlare, a free, hosted solution for SSL. Setting up your site with CloudFlare is simple, quick and easy. I was able to configure CloudFlare in several minutes without having to touch my Heroku configuration. After waiting for the DNS changes to propagate, I had a safer and more secure website.\nHere's what I did:\n\nCreate a free CloudFlare account\n\n\nAdd a site. Here you'll enter a root domain, e.g., foo.com. CloudFlare will scan DNS records for the domain and find relevant information, in my case, I had A and CNAME records, benjaminturner.me and www.benjaminturner.me.\n\n\nWhen the scan is complete, CloudFlare will provide new Nameservers. These must be updated with your domain registrar, in my case I was using NameCheap. Log in to the registrars interface and update existing Nameservers to point to CloudFlare's.\n\nThat's it. At this point, you'll just need to wait for all the DNS changes to propagate. For free accounts this can take up to 24 hours.\nTroubleshooting\nAt this point, you'll have CloudFlare configured correctly, but your website may not be. One problem I had was an externally hosted image I was linking to on every page of my site. It was hosted on http, not https. All links on a site should use the https scheme, otherwise you won't see the nice \"lock\" icon in the browser's URL bar." }, "name": "Quickly add a SSL certificate using CloudFlare", "post-type": "article", "_id": "38153883", "_source": "2780" }
Has your world turned upside down during eternal Caturday?
{ "type": "entry", "published": "2023-06-29T10:08:25-0400", "url": "https://martymcgui.re/2023/06/29/100825/", "category": [ "Caturday" ], "video": [ "https://res.cloudinary.com/schmarty/video/upload/vc_h264/mmmgre/36/53/37/ed/ae2c6074fc94dd2126e997058a9da6f9d0b9666bee39cbca3c246a9d.mov" ], "content": { "text": "Has your world turned upside down during eternal Caturday?", "html": "<p>Has your world turned upside down during eternal Caturday?</p>" }, "author": { "type": "card", "name": "Marty McGuire", "url": "https://martymcgui.re/", "photo": "https://martymcgui.re/images/logo.jpg" }, "post-type": "video", "_id": "38131329", "_source": "175" }
Are you feeling agreeable during eternal Caturday?
{ "type": "entry", "published": "2023-06-28T20:11:18-0400", "url": "https://martymcgui.re/2023/06/28/201118/", "category": [ "Caturday" ], "video": [ "https://res.cloudinary.com/schmarty/video/upload/vc_h264/mmmgre/a7/c5/d0/1a/79d78c6e87f177725d0c3e282fb2046949a9f6a18a97ddb26b10c511.mov" ], "content": { "text": "Are you feeling agreeable during eternal Caturday?", "html": "<p>Are you feeling agreeable during eternal Caturday?</p>" }, "author": { "type": "card", "name": "Marty McGuire", "url": "https://martymcgui.re/", "photo": "https://martymcgui.re/images/logo.jpg" }, "post-type": "video", "_id": "38123534", "_source": "175" }
Want to read: The Book of Delights: Essays by Ross Gay (ISBN 9781616207922)
via https://www.thisamericanlife.org/692/the-show-of-delights
{ "type": "entry", "published": "2023-06-28 13:46-0700", "url": "https://gregorlove.com/2023/06/to-read-the-book-of-delights/", "syndication": [ "https://www.goodreads.com/read_statuses/6746947226" ], "content": { "text": "Want to read: The Book of Delights: Essays by Ross Gay (ISBN 9781616207922)\n\nvia https://www.thisamericanlife.org/692/the-show-of-delights", "html": "<p>Want to read: <span class=\"p-read-of h-cite\"><a class=\"u-url\" href=\"https://gregorlove.com/isbn/9781616207922\">The Book of Delights: Essays</a> by <span class=\"p-author\">Ross Gay</span> (ISBN <span class=\"p-uid\">9781616207922</span>)</span></p>\n\n<p>via <a href=\"https://www.thisamericanlife.org/692/the-show-of-delights\">https://www.thisamericanlife.org/692/the-show-of-delights</a></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": "38122865", "_source": "95" }
{ "type": "entry", "published": "2023-06-27 22:10-0700", "url": "https://tantek.com/2023/178/t1/june-trailrunner-ultrarunner", "category": [ "trailRunner", "ultraRunner", "MUC50k", "RodeoBeach", "50k", "ultraMarathon", "trailRace", "DipseaRace", "MuirWoods", "BA23k", "RingDasBell", "skyRace", "WS100", "runner", "running", "trailRunning" ], "content": { "text": "June #trailRunner #ultraRunner weekends\n3 finished #MUC50k @InsideTrail #RodeoBeach 9:38:28, my 3rd #50k #ultraMarathon #trailRace\n11 volunteered @TheDipsea #DipseaRace at #MuirWoods\n18 finished @BrokenArrowCA #BA23k 5:22:54 #RingDasBell, my 1st #skyRace\n24-25 crewed pal @davidtlam @wser.org 100mi to a successful #WS100 finish!\n\n#runner #running #trailRunning\n\nHeart & mind full, body pushed to its limits, capturing my experiences in a few write-ups.", "html": "June #<span class=\"p-category\">trailRunner</span> #<span class=\"p-category\">ultraRunner</span> weekends<br />3 finished #<span class=\"p-category\">MUC50k</span> <a class=\"h-cassis-username\" href=\"https://twitter.com/InsideTrail\">@InsideTrail</a> #<span class=\"p-category\">RodeoBeach</span> 9:38:28, my 3rd #<span class=\"p-category\">50k</span> #<span class=\"p-category\">ultraMarathon</span> #<span class=\"p-category\">trailRace</span><br />11 volunteered <a class=\"h-cassis-username\" href=\"https://twitter.com/TheDipsea\">@TheDipsea</a> #<span class=\"p-category\">DipseaRace</span> at #<span class=\"p-category\">MuirWoods</span><br />18 finished <a class=\"h-cassis-username\" href=\"https://twitter.com/BrokenArrowCA\">@BrokenArrowCA</a> #<span class=\"p-category\">BA23k</span> 5:22:54 #<span class=\"p-category\">RingDasBell</span>, my 1st #<span class=\"p-category\">skyRace</span><br />24-25 crewed pal <a class=\"h-cassis-username\" href=\"https://twitter.com/davidtlam\">@davidtlam</a> <a href=\"https://wser.org\">@wser.org</a> 100mi to a successful #<span class=\"p-category\">WS100</span> finish!<br /><br />#<span class=\"p-category\">runner</span> #<span class=\"p-category\">running</span> #<span class=\"p-category\">trailRunning</span><br /><br />Heart & mind full, body pushed to its limits, capturing my experiences in a few write-ups." }, "author": { "type": "card", "name": "Tantek \u00c7elik", "url": "https://tantek.com/", "photo": "https://tantek.com/photo.jpg" }, "post-type": "note", "_id": "38111959", "_source": "2460" }
{ "type": "entry", "published": "2023-06-27T14:33:31-0400", "url": "https://martymcgui.re/2023/06/27/minor-site-updates/", "category": [ "site-update" ], "name": "Minor site updates", "content": { "text": "I've got a bunch of IndieWeb-related projects I'd like to work on. What I don't have is a good setup for working on bigger projects incrementally as I have time. The general pattern is that nothing happens for a very long time, then I become obsessed with a particular project and it fills my free time until it is \"done\" or I run out of steam.\nAll that to say, I recently had some lovely time on vacation and instead of working on big projects I did a bunch of little fixes to my site.\nProbably the biggest is that my photos page now includes my daily-ish Caturday images. Previously it only pulled in still photos which, in the last couple of years, has only been from the very occasional check-in.\n\n Marty's Photos page screenshot showing the top of a grid of square photos. The top three images are of a seated fluffy cat looking off-camera, two seated fluffy cats looking at an empty food dispenser, and a fluffy cat chewing on some twine. Each of the visible photos has a triangular \"play\" icon in the upper-right corner indicating that the linked post contains a video.\n \nThis was made pretty easy because I rely on Cloudinary to reformat my iPhone's \"bounce\" photos into a consistent mp4 format for the web and it's simple enough to change a Cloudinary URL for an mp4 video to\u00a0 a still thumbnail image instead.\nOther updates:\nAfter my recent struggles with Hugo (or Go templates) turning parsing invalid times into a fatal error rather than something I can work around, I finally removed my now non-functional workaround.\n I toyed around with a \"fast build\" step by copying my site's Hugo setup and removing all content and layouts except those related to one or two new or updated posts. It seems like I could reasonably set this up to run immediately when I make a site update via Micropub so that new and updated posts are up immediately, while feeds and tag pages get updated when a full site build finishes.\n I upgraded my little Digital Ocean droplet to try and reduce that \"when a full site build finished\" time. Looks like I doubled my monthly from $6 to $12 for an inconsistent time savings of 5-15 seconds on a ~1 minute build. \ud83d\ude05\n I realized that my link preview meta crap for Slack / Discord / hellsites has been broken for a while. I kind-of fixed it for posts with titles, like this one, but it's still rubbish for my usual short posts, like Caturday. Caturday posts deserve to have image previews when shared on social media!\n\n Always more to be done. These weren't the biggest or most important projects but it felt nice to be tidying up the place.", "html": "<p>I've got a <a href=\"https://indieweb.org/User:Martymcgui.re\">bunch of IndieWeb-related projects I'd like to work on</a>. What I don't have is a good setup for working on bigger projects incrementally as I have time. The general pattern is that nothing happens for a very long time, then I become obsessed with a particular project and it fills my free time until it is \"done\" or I run out of steam.</p>\n<p>All that to say, I recently had some lovely time on vacation and instead of working on big projects I did a bunch of little fixes to my site.</p>\n<p>Probably the biggest is that my <a href=\"https://martymcgui.re/photos/\">photos page</a> now includes my daily-ish Caturday images. Previously it only pulled in still photos which, in the last couple of years, has only been from the very occasional check-in.</p>\n<img src=\"https://media.martymcgui.re/54/15/0c/53/c2694b00402e35a2039f7c2ebd686b389e7c55b1c68158e906d03127.png\" alt=\"\" />\n Marty's Photos page screenshot showing the top of a grid of square photos. The top three images are of a seated fluffy cat looking off-camera, two seated fluffy cats looking at an empty food dispenser, and a fluffy cat chewing on some twine. Each of the visible photos has a triangular \"play\" icon in the upper-right corner indicating that the linked post contains a video.\n <br /><p>This was made pretty easy because I rely on Cloudinary to reformat my iPhone's \"bounce\" photos into a consistent mp4 format for the web and it's simple enough to change a Cloudinary URL for an mp4 video to\u00a0 a still thumbnail image instead.</p>\n<p>Other updates:</p>\n<ul><li>After my <a href=\"https://martymcgui.re/2023/03/19/go-time/\">recent struggles with Hugo (or Go templates) turning parsing invalid times into a fatal error</a> rather than something I can work around, I finally removed my now non-functional workaround.</li>\n <li>I toyed around with a \"fast build\" step by copying my site's Hugo setup and removing all content and layouts except those related to one or two new or updated posts. It seems like I could reasonably set this up to run immediately when I make a site update via Micropub so that new and updated posts are up immediately, while feeds and tag pages get updated when a full site build finishes.</li>\n <li>I upgraded my little Digital Ocean droplet to try and reduce that \"when a full site build finished\" time. Looks like I doubled my monthly from $6 to $12 for an inconsistent time savings of 5-15 seconds on a ~1 minute build. \ud83d\ude05</li>\n <li>I realized that my link preview meta crap for Slack / Discord / hellsites has been broken for a while. I kind-of fixed it for posts with titles, like this one, but it's still rubbish for my usual short posts, like Caturday. Caturday posts deserve to have image previews when shared on social media!</li>\n</ul><p>\n Always more to be done. These weren't the biggest or most important projects but it felt nice to be tidying up the place.\n <br /></p>" }, "author": { "type": "card", "name": "Marty McGuire", "url": "https://martymcgui.re/", "photo": "https://martymcgui.re/images/logo.jpg" }, "post-type": "article", "_id": "38108691", "_source": "175" }
Who am I to yuck your yum during eternal Caturday?
{ "type": "entry", "published": "2023-06-27T12:57:03-0400", "url": "https://martymcgui.re/2023/06/27/125703/", "category": [ "Caturday" ], "video": [ "https://res.cloudinary.com/schmarty/video/upload/vc_h264/mmmgre/ee/0a/93/89/284e3283b0da1d589ce322032697338292943d3ef598af02cfc20f5b.mov" ], "content": { "text": "Who am I to yuck your yum during eternal Caturday?", "html": "<p>Who am I to yuck your yum during eternal Caturday?</p>" }, "author": { "type": "card", "name": "Marty McGuire", "url": "https://martymcgui.re/", "photo": "https://martymcgui.re/images/logo.jpg" }, "post-type": "video", "_id": "38104913", "_source": "175" }
Are you seeking new flavor experiences during eternal Caturday?
{ "type": "entry", "published": "2023-06-27T12:55:10-0400", "url": "https://martymcgui.re/2023/06/27/125510/", "category": [ "Caturday" ], "video": [ "https://res.cloudinary.com/schmarty/video/upload/vc_h264/mmmgre/39/86/aa/eb/f26f024bec213a7c300f43801ea64c10bb0b5d861523c1da3e6138d1.mov" ], "content": { "text": "Are you seeking new flavor experiences during eternal Caturday?", "html": "<p>Are you seeking new flavor experiences during eternal Caturday?</p>" }, "author": { "type": "card", "name": "Marty McGuire", "url": "https://martymcgui.re/", "photo": "https://martymcgui.re/images/logo.jpg" }, "post-type": "video", "_id": "38104914", "_source": "175" }
{ "type": "entry", "published": "2023-06-26T21:49:52-07:00", "url": "https://beesbuzz.biz/blog/8043-Hello-humankindness", "name": "Hello humankindness", "author": { "type": "card", "name": "fluffy", "url": "https://beesbuzz.biz/", "photo": "https://beesbuzz.biz/static/headshot.jpg" }, "post-type": "article", "_id": "38095283", "_source": "2778" }
{ "type": "entry", "published": "2023-06-26T13:51:04-07:00", "url": "https://beesbuzz.biz/blog/13921-title-goes-here", "name": "title goes here", "author": { "type": "card", "name": "fluffy", "url": "https://beesbuzz.biz/", "photo": "https://beesbuzz.biz/static/headshot.jpg" }, "post-type": "article", "_id": "38092801", "_source": "2778" }
{ "type": "entry", "published": "2023-06-24T20:27:56+00:00", "url": "https://cleverdevil.io/2023/happy-spouse-happy-house---six-remotes-and-one-annoyed", "syndication": [ "https://cleverdevil.club/@jonathan/110611607864689842" ], "name": "Happy Spouse, Happy House - Six Remotes and One Annoyed Wife", "content": { "text": "This post originally appeared in my Techish newsletter on LinkedIn.This year, the LaCour family embarked upon a major home renovation, updating the main bedroom and creating an amazing home theater. While I was happy about the improvements to the bedroom, I'll be honest, the home theater was definitely the most exciting to me.Fast forward to the end of our renovation, and we have an awesome place for the family to snuggle up and watch movies, or to catch a F1 race (Forza Ferrari!) with thundering sound on a big screen. Yet, the very first time my wife sat down to use the theater on her own, I got an annoyed text message: \"Ugh, Jonathan, WHY do we have SO MANY remote controls?!\"Happy Spouse, Happy HouseIn my experience, there is no greater spark for innovation than an annoyed spouse. To her credit, my wife was absolutely right \u2013 we had way too many remote controls. Six, to be precise. Yes, I know, I have a problem.My first instinct was to find a \"universal remote,\" but the market is filled with ugly, difficult to use, under-featured options that wouldn't really make life any easier. So, I asked my wife: what is the best remote control you've ever used? She didn't hesitate: \"our old TiVo remote control.\"The Legendary TiVo Peanut RemoteWhen TiVo was first introduced nearly 25 years ago, it was a revolutionary concept. I remember the delightful experience of creating a \"season pass\" to my favorite show, LOST, and knowing that every week, I'd be able to sit down and enjoy an episode, zipping through the commercials.While TiVo has faded into history with the rise of streaming services and pervasive \"DVR\" capabilities, its remote control, affectionately called \"the peanut,\" is still a thing of legend. With its distinctive shape and smart button layout, it won awards for its ergonomic design.Now, I was presented with a challenge. How could I replace six modern remotes and replicate my wife's experience with a non-programmable remote that has been out of production for ten years?Thinking Like an EngineerMy first order of business was acquiring an old TiVo Peanut. Over the years, TiVo produced many different versions, but their \"last hurrah\" was the TiVo Slide Pro, released back in 2013. The Slide Pro slides open to reveal a full qwerty keyboard for text entry. More importantly, though, the TiVo Slide communicates to TiVo devices via RF (radio frequency), not IR (infrared).RF is significantly more reliable than IR as it doesn't require a \"line of sight\" between the transmitter and the receiver. Late-generation TiVos featured built-in RF support, but older versions only supported IR. As a result, TiVo offered a dongle that plugged into the back of old TiVos via USB so they could use the Slide Pro.Let's Go Down to DongletownI was able to score an unopened TiVo Slide Pro remote with a USB dongle for around $40. Once in hand, I made a discovery \u2013 in 2012, an enterprising developer added support for the TiVo RF dongle to the Linux kernel! So, I grabbed a spare Raspberry Pi 4, installed the latest version of Raspberry Pi OS, and plugged in the dongle.After some tinkering, I was able to communicate with the dongle via the HID (Human Interface Device) API, capturing button presses, releases, and even the action of sliding the TiVo Slide Pro open and closed.Six Devices, One RemoteNext up, I needed to figure out how to communicate with all six devices in the theater:Apple TV\nZidoo Z9X Android Box\nPioneer Elite Receiver\nAWOL Vision Projector\nCeiling Fan\nLutron Caseta Lighting\nFor the Apple TV, there is an outstanding Apple TV Python library that offers complete control over the network. The Zidoo Z9X, Pioneer receiver, and Lutron lighting are all able to be controlled over the network using Home Assistant. To control the projector and ceiling fan, I purchased a Broadlink RM4 Pro device, which can transmit arbitrary RF/IR signals, and trained it with their existing remote controls.Introducing PNutWith all of the tools I needed in hand, I set to work writing some code to put it all together into a usable solution, which I call PNut. I made it general purpose so that anyone can use it, but I also included my own PNut configuration for reference.I've been using PNut now for a few weeks, and it's pretty wonderful to be able to pick up a single remote and use it to dim the lights, turn on my ceiling fan, power up the projector and receiver, and control my Apple TV to watch the latest episode of The Righteous Gemstones.Oh, and I'm pleased to report that my wife isn't annoyed anymore. Well, at least not about the remote controls...", "html": "<p><em>This post originally appeared in my <a href=\"https://www.linkedin.com/newsletters/techish-7011768448502349825/\">Techish newsletter on LinkedIn</a>.</em></p><p>This year, the LaCour family embarked upon a major home renovation, updating the main bedroom and creating an amazing home theater. While I was happy about the improvements to the bedroom, I'll be honest, the home theater was definitely the most exciting to me.</p><p>Fast forward to the end of our renovation, and we have an awesome place for the family to snuggle up and watch movies, or to catch a F1 race <em>(Forza Ferrari!)</em> with thundering sound on a big screen. Yet, the very first time my wife sat down to use the theater on her own, I got an annoyed text message: \"Ugh, Jonathan, WHY do we have SO MANY remote controls?!\"</p><h2>Happy Spouse, Happy House</h2><p>In my experience, there is no greater spark for innovation than an annoyed spouse. To her credit, my wife was absolutely right \u2013 we had way too many remote controls. Six, to be precise. Yes, I know, I have a problem.</p><p>My first instinct was to find a \"universal remote,\" but the market is filled with ugly, difficult to use, under-featured options that wouldn't really make life any easier. So, I asked my wife: what is the best remote control you've ever used? She didn't hesitate: \"our old TiVo remote control.\"</p><h2>The Legendary TiVo Peanut Remote</h2><p><img src=\"https://cleverdevil.io/file/39c09ab3655342e283d40e2e2a32fb0a/thumb.jpg\" alt=\"TiVo Slide Remote\" width=\"225\" height=\"300\" /></p><p><a href=\"https://en.wikipedia.org/wiki/TiVo#History_and_development\">When TiVo was first introduced nearly 25 years ago</a>, it was a revolutionary concept. I remember the delightful experience of creating a \"season pass\" to my favorite show, <a href=\"https://www.imdb.com/title/tt0411008/\">LOST</a>, and knowing that every week, I'd be able to sit down and enjoy an episode, zipping through the commercials.</p><p>While TiVo has faded into history with the rise of streaming services and pervasive \"DVR\" capabilities, <a href=\"https://gizmodo.com/story-of-a-peanut-the-tivo-remotes-untold-past-presen-5017972\">its remote control, affectionately called \"the peanut,\" is still a thing of legend</a>. With its distinctive shape and smart button layout, it won awards for its ergonomic design.</p><p>Now, I was presented with a challenge. How could I replace six modern remotes and replicate my wife's experience with a non-programmable remote that has been out of production for ten years?</p><h2>Thinking Like an Engineer</h2><p>My first order of business was acquiring an old TiVo Peanut. Over the years, TiVo produced many different versions, but their \"last hurrah\" was the <a href=\"https://www.engadget.com/2013-11-14-tivo-slide-pro-remote.html\">TiVo Slide Pro, released back in 2013</a>. The Slide Pro slides open to reveal a full qwerty keyboard for text entry. More importantly, though, the TiVo Slide communicates to TiVo devices via RF (radio frequency), not IR (infrared).</p><p>RF is significantly more reliable than IR as it doesn't require a \"line of sight\" between the transmitter and the receiver. Late-generation TiVos featured built-in RF support, but older versions only supported IR. As a result, TiVo offered a dongle that plugged into the back of old TiVos via USB so they could use the Slide Pro.</p><h2>Let's Go Down to Dongletown</h2><p><img src=\"https://cleverdevil.io/file/bab837278e452813769a3ca93a9af4d5/thumb.jpg\" alt=\"TiVo RF Dongle\" width=\"188\" height=\"250\" /></p><p>I was able to score an unopened TiVo Slide Pro remote with a USB dongle for around $40. Once in hand, I made a discovery \u2013 <a href=\"https://github.com/torvalds/linux/commit/44ea35c138d400b3aeeb2a5317edd4634e6823e3\">in 2012, an enterprising developer added support for the TiVo RF dongle to the Linux kernel</a>! So, I grabbed a spare Raspberry Pi 4, installed the latest version of Raspberry Pi OS, and plugged in the dongle.</p><p>After some tinkering, I was able to communicate with the dongle via the HID (Human Interface Device) API, capturing button presses, releases, and even the action of sliding the TiVo Slide Pro open and closed.</p><h2>Six Devices, One Remote</h2><p>Next up, I needed to figure out how to communicate with all six devices in the theater:</p><ul><li><a href=\"https://www.apple.com/tv-home/\">Apple TV</a></li>\n<li><a href=\"https://www.zidoo.tv/Product/index/model/Z9X/target/VEMg6VRC2%2B9KKmVViAFMcQ%3D%3D.html\">Zidoo Z9X Android Box</a></li>\n<li><a href=\"https://www.pioneerhomeusa.com/product/vsx-lx305-av-receiver/\">Pioneer Elite Receiver</a></li>\n<li><a href=\"https://awolvision.com/products/awol-vision-4k-tri-chroma-laser-projector-ltv-3500\">AWOL Vision Projector</a></li>\n<li>Ceiling Fan</li>\n<li><a href=\"https://www.casetawireless.com/us/en\">Lutron Caseta Lighting</a></li>\n</ul><p>For the Apple TV, there is <a href=\"https://pyatv.dev\">an outstanding Apple TV Python library</a> that offers complete control over the network. The Zidoo Z9X, Pioneer receiver, and Lutron lighting are all able to be controlled over the network using <a href=\"https://www.home-assistant.io/\">Home Assistant</a>. To control the projector and ceiling fan, I purchased a <a href=\"https://ebroadlink.com/products/universal-remote-rm4-pro\">Broadlink RM4 Pro</a> device, which can transmit arbitrary RF/IR signals, and trained it with their existing remote controls.</p><h2>Introducing PNut</h2><p>With all of the tools I needed in hand, I set to work writing some code to put it all together into a usable solution, <a href=\"https://github.com/cleverdevil/pnut\">which I call PNut</a>. I made it general purpose so that anyone can use it, but I also <a href=\"https://github.com/cleverdevil/pnut/blob/main/myremote.py.sample\">included my own PNut configuration for reference</a>.</p><p>I've been using PNut now for a few weeks, and it's pretty wonderful to be able to pick up a single remote and use it to dim the lights, turn on my ceiling fan, power up the projector and receiver, and control my Apple TV to watch the latest episode of <a href=\"https://www.imdb.com/title/tt8634332/\">The Righteous Gemstones</a>.</p><p>Oh, and I'm pleased to report that my wife isn't annoyed anymore. Well, at least not about the remote controls...</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": "38090883", "_source": "10" }