(4078,'2024-03-20','Learning to read music, part two: pitch',824,'The basics of pitch in musical notation','<p>You can download the accompanying visual handout/crib sheet for this episode and its predecessor (where we cover rhythm) from here:\n<a href=\"https://enistello.info\">https://enistello.info</a>\n</p>\n',415,0,0,'CC-BY-SA','music,learning',0,0,1),
(4094,'2024-04-11','One year of Linux',1043,'My experience of running Linux full time for a year.','<p>In this episode I go through the pros and cons of running Linux when\nyou switch over from a Windows machine.</p>\n<p>I\'ll cover topics like:</p>\n<ul>\n<li>Speed</li>\n<li>Simplicity</li>\n<li>Configuration</li>\n<li>Games</li>\n<li>Updates</li>\n</ul>\n<p>and much more.</p>\n<h2 id=\"links\">Links</h2>\n<ul>\n<li><a href=\"https://youtu.be/52AM5GPUshk\">YouTube video</a></li>\n</ul>\n',382,0,0,'CC-BY-SA','linux, windows',0,0,1),
(4079,'2024-03-21','The Corresponding Source',1070,'Free as in Freedom is dead. Long live The Corresponding Source','<h1>The Corresponding Source</h1>\n\n<p>The Corresponding Source (formerly Free as in Freedom) is a bi-weekly oggcast, hosted and presented by\n<a href=\"http://ebb.org/bkuhn\">Bradley M. Kuhn</a> and <a href=\"http://gnomg.org\">Karen Sandler</a>.\nThe discussion includes legal, policy, and many other issues in the Free, Libre,\nand Open Source Software (FLOSS) world.  Occasionally, guests join\nBradley and Karen to discuss various topics regarding FLOSS.</p>\n\n<p>The Corresponding Source is produced by <a href=\"http://danlynch.org/blog/\">Dan Lynch</a>\n  of <a href=\"http://danlynch.org/\">danlynch.org</a>.\nTheme\n  music written and performed\n  by <a href=\"http://www.miketarantino.com\">Mike Tarantino</a>\n  with <a href=\"http://www.charliepaxson.com\">Charlie Paxson</a> on drums.</p>\n\n<p>Please email feedback and comments on the show\nto <a href=\"mailto:cast@sfconservancy.org\">&lt;cast@sfconservancy.org&gt;</a>. You\ncan keep in touch on <a href=\"xmpp:general@chat.sfconservancy.org?join\">SFC\n    XMPP room at general@chat.sfconservancy.org</a>. You\ncan also\nfollow <a href=\"https://social.sfconservancy.org/conservancy\">SFC on\nthe Fediverse</a>.</p>\n\n\n<h2>Follow the RSS and Other Feeds</h2>\n\n<p>Link to the podcast webcast <a href=\"https://sfconservancy.org/casts/the-corresponding-source/\">https://sfconservancy.org/casts/the-corresponding-source/</a></p>\n\n<p>There is RSS for both <a href=\"https://sfconservancy.org//casts/the-corresponding-source/feeds/ogg/\">ogg format</a>\n  and  <a href=\"https://sfconservancy.org//casts/the-corresponding-source/feeds/mp3/\">mp3 format</a>.</p>\n\n<p>\nThanks to <a href=\"https://www.danlynch.org/blog/2024/02/the-corresponding-source/\">Dan Lynch for posting  the tip</a>.\n</p>\n\n<!-- https://www.danlynch.org/blog/2024/02/the-corresponding-source/ -->\n',30,0,0,'CC-BY-SA','Free, Libre, Open Source Software, FLOSS, Podcast, Free as in Freedom',0,0,1),
(4081,'2024-03-25','The Oh No! News.',726,'Sgoti gives us some moral panic ridden pearl clutching nonsense.','<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, QNAP</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://www.bleepingcomputer.com/news/security/qnap-warns-of-critical-auth-bypass-flaw-in-its-nas-devices/\"\ntitle=\"QNAP warns of vulnerabilities in its NAS software products\">QNAP\nwarns of critical auth bypass flaw in its NAS devices.</a> The Taiwanese\nNetwork Attached Storage (NAS) device maker disclosed <a\nhref=\"https://www.qnap.com/en/security-advisory/qsa-24-09\">three\nvulnerabilities</a> that can lead to an authentication bypass, command\ninjection, and SQL injection.<br />\n</p>\n<ul>\n<li>CVE-2024-21899: If exploited, the improper authentication\nvulnerability could allow users to compromise the security of the system\nvia a network.<br />\n</li>\n<li>CVE-2024-21900: If exploited, the injection vulnerability could\nallow authenticated users to execute commands via a network.<br />\n</li>\n<li>CVE-2024-21901: If exploited, the SQL injection vulnerability could\nallow authenticated administrators to inject malicious code via a\nnetwork.<br />\n</li>\n</ul></li>\n<li><p>The flaws impact various versions of QNAP\'s operating systems,\nincluding QTS 5.1.x, QTS 4.5.x, QuTS hero h5.1.x, QuTS hero h4.5.x,\nQuTScloud c5.x, and the myQNAPcloud 1.0.x service.<br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://www.bleepingcomputer.com/news/security/switzerland-play-ransomware-leaked-65-000-government-documents/\"\ntitle=\"Xplain is a Swiss technology and software solutions provider for various government departments...\">Switzerland:\nPlay ransomware leaked 65,000 government documents.</a> In a new\nstatement published today, the Swiss government confirmed that 65,000\ngovernment documents were leaked in the breach.<br />\n</p></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://www.admin.ch/gov/en/start/documentation/media-releases.msg-id-100315.html\"\ntitle=\"The National Cyber Security Centre (NCSC) took over responsibility for incident management...\">Hacker\nattack on Xplain: National Cyber Security Centre publishes data analysis\nreport.</a><br />\n</p></li>\n</ul>\n<p><strong>Relevance of the published data volume.</strong><br />\n</p>\n<blockquote>\n<p>The data package published on the darknet comprised around 1.3\nmillion files. Once the data had been downloaded, the NCSC took the lead\nin systematically categorising and triaging all documents relevant to\nthe Federal Administration. The results showed that the volume of data\nrelevant to the Federal Administration comprised around 65,000\ndocuments, or approximately 5% of the total published data set. The\nmajority of these files belonged to Xplain (47,413) with a share of over\n70%; around 14% (9,040) belonged to the Federal Administration. Around\n95% of the Federal Administration&#x2019;s files belonged to the administrative\nunits of the Federal Department of Justice and Police (FDJP): the\nFederal Office of Justice, Federal Office of Police, State Secretariat\nfor Migration and the internal IT service centre ISC-FDJP. With just\nover 3% of the data, the Federal Department of Defence, Civil Protection\nand Sport (DDPS) is slightly affected and the other departments are only\nmarginally affected in terms of volume.<br />\n</p>\n</blockquote>\n<p><strong>Proportion of sensitive data.</strong><br />\n</p>\n<blockquote>\n<p>Sensitive content such as personal data, technical information,\nclassified information and passwords was found in around half of the\nFederal Administration\'s files (5,182). Personal data such as names,\nemail addresses, telephone numbers and postal addresses were found in\n4,779 of these files. In addition, 278 files contained technical\ninformation such as documentation on IT systems, software requirement\ndocuments or architectural descriptions, 121 objects were classified in\naccordance with the Information Protection Ordinance and 4 objects\ncontained readable passwords.<br />\n</p>\n</blockquote>\n<ul>\n<li><strong>Supporting Source:</strong> <a\nhref=\"https://www.xplain.ch/en/hackerangriff/\"\ntitle=\"Xplain has become a target of a ransomware attack, with cybercriminals publishing data on the Darknet in the first half of June 2023.\">Information\nabout the hacker attack on Xplain.</a><br />\n</li>\n</ul>\n<blockquote>\n<p>Xplain filed a criminal complaint after the incident, provided the\nauthorities with all the necessary information and cooperated with them\nin investigating and limiting the damage. We rebuilt the entire IT\ninfrastructure in accordance with the recommendations of the National\nCyber Security Center (NCSC) and replaced the external operators. An\nexternal audit of the infrastructure and processes was completed in\nNovember. The NCSC subsequently wrote an assessment of the audit. The\nFederal Council\'s strategy crisis team on data leaks (PSC-D) took note\nof the report.<br />\n</p>\n</blockquote>\n<ul>\n<li><a\nhref=\"https://www.darkreading.com/cyberattacks-data-breaches/spoofed-zoom-google-skype-meetings-spread-corporate-rats\"\ntitle=\"A Russian-language campaign aims to compromise corporate users on both Windows and Android devices by mimicking popular online collaboration applications.\">Spoofed\nZoom, Google &amp; Skype Meetings Spread Corporate RATs.</a><br />\n</li>\n</ul>\n<blockquote>\n<p>A threat actor is creating fake Skype, Google Meet, and Zoom\nmeetings, mimicking these popular collaboration applications to spread\nvarious commodity malware that can steal sensitive data from both\nAndroid and Windows users.<br />\n</p>\n</blockquote>\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, Threat analysis, QNAP',0,0,1),
(4082,'2024-03-26','No swans at Swanston',2703,'MrX and Dave Morriss bring you more chit-chat from Edinburgh','<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 February 25<sup>th</sup> 2024. Our\nfavourite pub for lunch, <em>The Steading</em>, seemed to have closed\nsince we were last there. Research into what was going on led to the\ninformation that the company owning this and several other pubs in the\narea was selling them all.</p>\n<p>We decided to try another place in the Pentland Hills area, and went\nto the Brasserie at <em>Swanston Farm</em> for lunch, which was pretty\ngood. After lunch we as usual adjourned to Dave\'s Citroen car\n(<em>Studio C</em>) in the car park, and recorded a chat.</p>\n<h2 id=\"topics-discussed\">Topics discussed</h2>\n<ul>\n<li>YouTube channel recommendations (Dave)\n<ol type=\"1\">\n<li>A channel about astronomy and science. Anton goes into a fair amount\nof depth about subjects in the news relating to these themes: <a\nhref=\"https://www.youtube.com/c/whatdamath\">Anton Petrov</a>\n<ul>\n<li>Recent episode: <a\nhref=\"https://www.youtube.com/watch?v=qg4PZst9a5g\">Study Explains Dark\nEnergy and Inflation as Parallel Universes Colliding</a></li>\n</ul></li>\n<li>A channel which is all about making things out of junk. No speech,\nand only a small amount of music as the build comes together: <a\nhref=\"https://www.youtube.com/@EpicUpCycling\">Epic UpCycling</a>\n<ul>\n<li>Just watched this one, and am in awe! <a\nhref=\"https://www.youtube.com/watch?v=50JYCUVu8Eg\">A Treasure Chest of\nSecret Drawers made from Pallets and Scrap</a></li>\n</ul></li>\n</ol></li>\n</ul>\n<ul>\n<li>Terrible weather with highs winds and / or lashing rain (MrX)\n<ul>\n<li>Seems to be never ending.</li>\n<li>Have noticed quite a few fences down</li>\n<li>Large tree down blocking entrance to local park</li>\n<li>Both parents houses sustained damage, fences and roof tiles.</li>\n<li>So far we have been lucky with no damage</li>\n<li>My mother was injured while going out to rescue her outside\nbucket</li>\n</ul></li>\n</ul>\n<ul>\n<li>Possibly related, it seems car insurance prices are increasing (MrX)\n<ul>\n<li>I have seen some link this to the high repair cost for modern cars\nbecause they have lots of high tech included. In particular the sensors\nplaced in bumpers.</li>\n<li>Some have speculated this to be because the high repair cost of\nEV\'s.</li>\n<li>I came across this YouTube video that shows that global insurance\nclaims have been historically large in recent years due to natural\ndisasters. While the video concentrates on properties I\'m sure it also\nwill be affecting car insurance. I believe this likely to be having the\nmost prominent factor for insurance increases. Insurers ABANDONING high\nclimate risk properties</li>\n</ul></li>\n</ul>\n<ul>\n<li><em>I got a Steam Deck for Christmas!</em> (Dave)\n<ul>\n<li>I borrowed my son\'s Nintendo Switch in November 2023 to see if I\ncould see the screen and play games on it. I could, but haven\'t played\ngames since the 1980\'s so I\'m terrible at it!</li>\n<li>I told them I might buy myself a Steam Deck in 2024, but wasn\'t\nsure.</li>\n<li>Much to my surprise my family jointly bought me a Steam Deck for\nChristmas!</li>\n<li>I am pretty bad at using it, but I\'m practising</li>\n<li>I\'m learning <em>Stardew Valley</em> at first, but I\'d quite like to\ntry <em>Kerbal Space Programme</em> at some point.</li>\n</ul></li>\n</ul>\n<ul>\n<li>Cinema visits / movies: (MrX)\n<ul>\n<li><em>Hunger Games</em> pre sequel\n<ul>\n<li>Was not rated very highly but me and Mrs X actually really enjoyed\nit.</li>\n</ul></li>\n<li><em>Oppenheimer</em>\n<ul>\n<li>Knowing something of the background story was advantageous</li>\n</ul></li>\n<li><em>Barbie</em>\n<ul>\n<li>Watched on DVD!</li>\n</ul></li>\n</ul></li>\n</ul>\n<ul>\n<li>Ticks (Dave)\n<ul>\n<li>We spoke about this subject last time we met. Later, I was reminded\nof a disease called <a\nhref=\"https://en.wikipedia.org/wiki/Alpha-gal_syndrome\">alpha-gal</a>\nsyndrome, first detected in the USA, which can follow a tick bite.</li>\n<li>It is caused by the injection of a carbohydrate by the tick, which\nit has obtained by feeding on another mammal. The carbohydrate is called\nGalactose-α-1,3-galactose, also known as <em>alpha-gal</em>. This causes\na strong immune reaction because it\'s a foreign substance which isn\'t\nfound in humans.</li>\n<li>The result is an <a\nhref=\"https://en.wikipedia.org/wiki/Alpha-gal_syndrome#Symptoms\">allergy</a>\nto red meat, which contains <em>alpha-gal</em>!</li>\n<li>This syndrome has been found in the USA and Australia and several\nother places, but now seems to be coming to Europe and has been seen in\nthe UK.</li>\n</ul></li>\n</ul>\n<ul>\n<li>Dog-friendly places (MrX)\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Waterstones\">Waterstones</a>\nbook store is dog friendly. Possibly only relevant to people living in\nBritain? They have a cafe upstairs which accepts dogs.</li>\n<li>The pub we used to meet in, The Steading, was dog friendly as well.\nThe latest venue does not seem to be, but is a restaurant, not a\npub.</li>\n</ul></li>\n</ul>\n<ul>\n<li>Raspberry Pi stuff (both)\n<ul>\n<li>Dave pre-ordered a RPi 5 in November 2023 and it arrived in\nDecember. He decided to get a Pimoroni NVMe Base to take an SSD, and\nordered that once it was available on pre-order. Now the RPi 5 is\nequipped with a 500GB SSD attached underneath, running off the PCIe\ninterface.</li>\n<li>Dave is working at setting up two RPi 4B systems, and a RPi 3A to\nrun various services in his house. Currently setting up Pi-hole. The RPi\n5 will be added to this combination in due course.</li>\n<li>MrX bought a RPi 4B in 2023 (as they became more available) which he\ninitially intended setting up with XBMC. He had problems playing certain\nvideo resolutions with the latest version of LibreELEC running XBMC. He\nhas now decided to use it to replace an ageing server located\nupstairs.</li>\n<li>Dave\'s <code>\'what_pi\'</code> script that tells you about your Pi\'s\nsettings doesn\'t work on Raspberry Pi OS since this OS stores the\ninformation it needs quite differently from Raspbian.</li>\n</ul></li>\n</ul>\n<ul>\n<li>Visit to Blackpool (MrX)\n<ul>\n<li>Met up with family for the long weekend in <a\nhref=\"https://en.wikipedia.org/wiki/Blackpool\">Blackpool</a>.</li>\n<li>It was bitterly cold and very windy, but we had a good time.</li>\n<li>While there we were lucky to get a trip on a 100 year old tram.</li>\n<li>The tram had very unique seats that allowed you to flip the back\nover, so they are pointed in either direction, depending on the\ndirection of travel. I thought this was very clever. Haven\'t seen this\non modern buses or trams, perhaps because they don\'t meet modern safety\nregulations.</li>\n</ul></li>\n</ul>\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Edinburgh_Trams\">Edinburgh\nTrams</a> (MrX)\n<ul>\n<li>Following Dave\'s recommendation from our last show. Me, Mrs X and\nour 4 legged companion took the tram all the way from Ingliston park and\nride to Newhaven. Our four legged companion loved the trams.</li>\n<li>Seems there has been so much development.</li>\n<li>Saw lots of new things along the way.</li>\n<li>Lots of other interesting places and walks for future trips.</li>\n<li>Can\'t believe it\'s taken us so long to appreciate the tram. We have\nused the train in the past but it\'s a bit limited by the places it goes\nthough it is very convenient from our location.</li>\n<li>Think we may be using the tram a bit more in future.</li>\n</ul></li>\n</ul>\n<ul>\n<li>HPR changes (Dave)\n<ul>\n<li>Ken has enhanced some aspects of the calendar page:\n<ul>\n<li>Reserved show overview - a list of what\'s in the reserve queue with\ndate, host and show title (suggestion from <a\nhref=\"https://hackerpublicradio.org/correspondents/0318.html\">Archer72</a>).</li>\n<li>Statistics - a call interface that returns JSON data containing most\nof the old statistics plus a few more (requested by <a\nhref=\"https://hackerpublicradio.org/correspondents/0201.html\">MrX</a>).</li>\n</ul></li>\n<li>These changes were also mentioned in the last <a\nhref=\"https://hackerpublicradio.org/eps/hpr4066/index.html\">Community\nNews</a></li>\n</ul></li>\n</ul>\n<ul>\n<li><a href=\"https://tldr.sh\"><em>TLDR</em></a> (MrX)\n<ul>\n<li>Mentioned in one of <a href=\"https://gnuworldorder.info/\">Klaatu\'s\nrecent shows</a></li>\n<li>From the slang expression <em>TL;DR</em> or <em>tl;dr,</em> short\nfor \"too long; didn\'t read\" (see <a\nhref=\"https://en.wikipedia.org/wiki/TL;DR\">Wikipedia page</a>)</li>\n<li>Quote: <em>The tldr pages are a community effort to simplify the\nbeloved man pages with practical examples.</em></li>\n<li>Details:\n<ul>\n<li>Website: <a href=\"https://tldr.sh\"\nclass=\"uri\">https://tldr.sh</a></li>\n<li>GitHub: <a href=\"https://github.com/tldr-pages/tldr\"\nclass=\"uri\">https://github.com/tldr-pages/tldr</a></li>\n<li>Mastodon: <a href=\"https://fosstodon.org/@tldr_pages\"\nclass=\"uri\">https://fosstodon.org/@tldr_pages</a> (<span\nclass=\"citation\" data-cites=\"tldr_pages\">@tldr_pages</span><span\nclass=\"citation\" data-cites=\"fosstodon.org\">@fosstodon.org</span>)</li>\n<li>Matrix: <a href=\"https://matrix.to/#/#tldr-pages:matrix.org\"\nclass=\"uri\">https://matrix.to/#/#tldr-pages:matrix.org</a></li>\n</ul></li>\n<li>Many clients available: see <a\nhref=\"https://github.com/tldr-pages/tldr/wiki/tldr-pages-clients\"\nclass=\"uri\">https://github.com/tldr-pages/tldr/wiki/tldr-pages-clients</a></li>\n</ul></li>\n</ul>\n<ul>\n<li>Bash <code>help</code> command (Dave)\n<ul>\n<li>There is a <code>help</code> command in Bash which is useful for\ngetting information about Bash built-in commands. For example\n<code>\'help read\'</code> will give you a one-page summary of this\ncommand which saves a lot of searching through the Bash man page.</li>\n<li>The example mentioned in the audio <code>\'help test\'</code> also\nworks, but since it\'s a stand-alone command the result is quite similar\nto typing <code>\'man test\'</code>.</li>\n<li>There are very few (if any) examples though, and that\'s where\n<code>tldr</code> will be better!</li>\n</ul></li>\n</ul>\n</article>\n',225,0,1,'CC-BY-SA','Edinburgh,Swanston Farm,meeting',0,0,1),
(4089,'2024-04-04','Modifying a Python script with some help from ChatGPT ',1393,'In this episode I describe my experience of fixing some Python code with some help from ChatGPT.','<p>Below are some links relating to things I discuss in the episode.</p>\n<p>Note I haven&#x2019;t included my actual Python code for fear that it would\nbe in breach of the copyright used by HPR as it is based on the output\nfrom ChatGPT.</p>\n<p>If you would like a copy of the code then place contact me via email\nat <a href=\"mailto:mrxathpr@googlemail.com\"\nclass=\"email\">mrxathpr@googlemail.com</a> requesting a copy of the\ncode.</p>\n<h1 id=\"related-links\">Related links</h1>\n<p><a href=\"https://en.wikipedia.org/wiki/Raspberry_Pi\">Wikipedia\narticle about the Raspberry pi</a></p>\n<p><a\nhref=\"https://uk.farnell.com/piface/piface-control-display/i-o-board-with-lcd-display-for/dp/2344458\">Link\nto PiFace control and display add on board for the Raspberry pi In my\nepisode I repeatedly incorrectly refer to it as &#x201C;Command and\nDisplay</a></p>\n<p><a\nhref=\"https://en.wikipedia.org/wiki/Python_(programming_language)\">Wikipedia\narticle about the Python programming language</a></p>\n<p><a\nhref=\"https://hackerpublicradio.org/eps/hpr2344/index.html\">hpr2344:\nFollow on to HPR2340 (Tracking the HPR queue in Python)</a></p>\n<p><a href=\"https://www.blinkstick.com/\">Link to USB powered LED\nBlinkStick</a></p>\n<p><a href=\"https://hub.hackerpublicradio.org/stats.json\">Link to new\nHPR stats page in JSON format</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/JSON\">Wikipedia article about\nthe JSON file format</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/XML\">Wikipedia article about\nthe XML file format</a></p>\n<p><a\nhref=\"https://hackerpublicradio.org/eps/hpr3067/index.html\">hpr3067:\nGetting my Python3 code working in Python2</a></p>\n<p><a href=\"https://chat.openai.com/\">Link to the ChatGPT\nwebsite</a></p>\n<p><a\nhref=\"https://en.wikipedia.org/wiki/R_(programming_language)\">Wikipedia\narticle about the R programming language</a></p>\n<p><a\nhref=\"https://www.math.ucla.edu/~anderson/rw1001/library/base/html/assign.html\">Article\nabout assigning values to a variable in the R programming language</a> A\nthought came to mind after recording the show. I suspect the reason that\nChatGPT incorrectly described the bit of code in the site my wife found\nwas due to lack of context. It may only have been fed the code without\nbeing told specifically that it was R code. Unfortunately I was unable\nto investigate this further as I was unable to find the original\nsite.</p>\n',201,38,1,'CC-BY-SA','Programming, Python, AI',0,0,1),
(4083,'2024-03-27','Drivecast: Man-talk.',518,'Sgoti discusses men\'s issues, while driving.','<h2 id=\"drivecast-man-talk.\">Drivecast: Man-talk.</h2>\n<h3 id=\"sgoti-discusses-mens-issues-while-driving.\">Sgoti discusses\nmen\'s issues, while driving.</h3>\n<ul>\n<li><p>Tags: Drivecast, man-talk, mens health</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/File:Human_male_reproductive_system_en.svg\">Human\nmale reproductive system</a></p></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Human_penis\">Human penis</a></p>\n<ul>\n<li>In human anatomy, the penis is an external male sex organ\n(intromittent organ) that additionally serves as the urinary duct.</li>\n</ul></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Urethra#Male\">Urethra</a></p>\n<ul>\n<li>The urethra is a tube that connects the urinary bladder to the\nurinary meatus for the removal of urine from the body of both females\nand males.</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,1,'CC-BY-SA','Drivecast, man-talk, mens health',0,0,1),
(4085,'2024-03-29','Android User Land Google Assistant GPT',1946,'operat0r tells you how to get past no ADB and blocking of 3rd party APKS','<ul>\n<li><p>Android no ads on brower and youtube with youtube sponsorblock !\n<a href=\"https://youtu.be/JKUmM9r63F8\"\nclass=\"uri\">https://youtu.be/JKUmM9r63F8</a></p></li>\n<li><p>Use gpt4-turbo with Tasker Chat GPT<br />\ngoto Chat GPT &gt; Tasks &gt; ChatGPT Set GPT Version &gt; then change\nthe varable Set from gpt-4 to whatever gpt-4-1106-preview see use gpt4\nturboe openai</p></li>\n<li><p>ripp all <a href=\"https://taskernet.com/?public&amp;time=AllTime\"\nclass=\"uri\">https://taskernet.com/?public&amp;time=AllTime</a><br />\nI will add to show notes when it\'s done .. lol ...</p></li>\n</ul>\n',36,0,1,'CC-BY-SA','hacking,android',0,0,1),
(4087,'2024-04-02','Getting started with the digiKam photo management software',416,'I will give you some suggestions to getting started with digiKam based on my experience.','<h2\nid=\"getting-started-with-the-digikam-photo-management-software.\">Getting\nstarted with the digiKam photo management software.</h2>\n<p>In hpr4071 I talked about my migration from Adobe Photoshop Elements\nand Lightroom to digiKam.</p>\n<p>Today I will give you some suggestions to getting started with\ndigiKam, based on my experience and my opinion.</p>\n<p>You find the digiKam website at <a href=\"https://www.digikam.org/\"\nclass=\"uri\">https://www.digikam.org/</a>.</p>\n<p>On the documentation page you find a good and exhaustive\ndocumentation. The big user manual can be read online or downloaded as\nan epub book. I suggest you browse the manual before you install\ndigiKam.</p>\n<p>My second suggestion is that you go to the Support page on the\ndigiKam site and look at the Mailing List Subscription section. You can\nbrowse the mailing list archive online. But I really recommend you to\nalso join the mailing list. It is a very active mailing list where also\nthe main developers participates actively. Many questions are specific\nand may not be of interest to you. But I have found that I learn a lot\nabout digiKam, its capabilities and other ways of working with photos\nthan I have thought of. Of course I also learn about issues. I have\nasked some questions myself and also contributed with answers. I highly\nrecommend you to join the mailing list.</p>\n<p>Thirdly, before you install digiKam, I suggest you copy a couple of\nyour photos into a new sample folder. When you start digiKam for the\nfirst time a guide starts to help you to configure initial settings. One\nconfiguration is to tell digiKam where your photos are located. I\nsuggest you use this sample folder only. Later on you add your real\nphoto folders and you can also at the same screen delete the sample\nfolder from digiKam. I suggest this because then you can consider\nsettings in more detail first which includes the settings for meta data\nimport to digiKam.</p>\n<p>Forthly, consider also where you want to store the digiKam databases.\nMyself, I created a folder for them at the top level of my home catalog.\nBut you can store them wherever you want to.</p>\n<p>Install digiKam. Go to the digiKam settings. There are a lot of\nsettings. I will focus only on meta data settings.</p>\n<p>DigiKam stores what you do in its own databases. That is mandatory.\nIn the settings, it is possible to select what should be written to\nmetadata and not. Meta data settings also have settings for associated\nfiles, which most of all is about xmp side cars.</p>\n<p>You can select that digiKam should read from associated files. This\nis important to decide before your photo collection is imported into\ndigiKam. If you forget, it is possible to read meta data again after you\nchange settings.</p>\n<p>Then there is an option if digiKam should write to side cars or not.\nAnd if yes, if it should write to both side cars and the object, or only\nif the object is write protected.</p>\n<p>Next I want to highlight the tick box if Associated files should be\ncompatible with commercial programs. This needs further\nexplanation:<br />\n</p>\n<ul>\n<li>Default in digiKam is to have separate xmp side cars for each type\nof photo file. For example, if you have a photo stored both as jpg and\nraw, they will have separate side cars. This indeed has its advantages\nbut is in my knowledge not according to xmp side car standard. According\nto standard, which digiKam refers to as commercial, the jpg and raw\nshare the same sidecar. For example Adobe Lightroom uses the commercial\nmethod.</li>\n</ul>\n<p>Examples to clarify:</p>\n<ul>\n<li>DigiKam side car file syntax: <code>photo1.jpg.xmp</code> and\n<code>photo1.raw.xmp</code>.</li>\n<li>Standard/commercial file syntax: <code>photo1.xmp</code>.</li>\n</ul>\n<p>I highly recommend you to spend an hour or two to review all\nsettings, not only meta data, before you start to use digiKam for your\nreal photos. If there is something you do not understand, go to the\ndocumentation and do not hesitate to consult the digiKam mailing\nlist.</p>\n',429,0,0,'CC-BY-SA','photography, photo, digiKam, Digital Asset Management, DAM, software, opensource',0,0,1),
(4326,'2025-03-03','HPR Community News for February 2025',4352,'HPR Volunteers talk about shows released and comments posted in February 2025','<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/0441.html\" target=\"_blank\">Antoine</a>, \n    <a href=\"https://hackerpublicradio.org/correspondents/0442.html\" target=\"_blank\">Shane - StrandedOutput</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/hpr4306/index.html\" target=\"_blank\">4306</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2025-02-03</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4306/index.html\" target=\"_blank\">HPR Community News for January 2025</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/hpr4307/index.html\" target=\"_blank\">4307</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2025-02-04</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4307/index.html\" target=\"_blank\">Chat with Sgoti</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/hpr4308/index.html\" target=\"_blank\">4308</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2025-02-05</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4308/index.html\" target=\"_blank\">What tech Kevie would spend £2000 on</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0296.html\" target=\"_blank\">Kevie</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr4309/index.html\" target=\"_blank\">4309</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2025-02-06</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4309/index.html\" target=\"_blank\">Talking with Yorik</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0433.html\" target=\"_blank\">Trollercoaster</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr4310/index.html\" target=\"_blank\">4310</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2025-02-07</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4310/index.html\" target=\"_blank\">Playing Civilization IV, Part 6</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/hpr4311/index.html\" target=\"_blank\">4311</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2025-02-10</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4311/index.html\" target=\"_blank\">LoRaWAN and the Things Stack</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/hpr4312/index.html\" target=\"_blank\">4312</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2025-02-11</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4312/index.html\" target=\"_blank\">What Is The Indie Archive?</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0436.html\" target=\"_blank\">hairylarry</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr4313/index.html\" target=\"_blank\">4313</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2025-02-12</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4313/index.html\" target=\"_blank\">Why I made a 1-episode podcast about a war story</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0441.html\" target=\"_blank\">Antoine</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr4314/index.html\" target=\"_blank\">4314</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2025-02-13</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4314/index.html\" target=\"_blank\">24-25 New Years Eve show</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/hpr4315/index.html\" target=\"_blank\">4315</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2025-02-14</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4315/index.html\" target=\"_blank\">How I got into the wonderful world of hackery</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0442.html\" target=\"_blank\">Shane - StrandedOutput</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr4316/index.html\" target=\"_blank\">4316</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2025-02-17</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4316/index.html\" target=\"_blank\">Is Scratch a real programming language?</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0433.html\" target=\"_blank\">Trollercoaster</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr4317/index.html\" target=\"_blank\">4317</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2025-02-18</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4317/index.html\" target=\"_blank\">Recording an episode of HPR</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0296.html\" target=\"_blank\">Kevie</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr4318/index.html\" target=\"_blank\">4318</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2025-02-19</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4318/index.html\" target=\"_blank\">What\'s up with the dates on the HPR future feed in AntennaPod?</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/hpr4319/index.html\" target=\"_blank\">4319</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2025-02-20</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4319/index.html\" target=\"_blank\">Am Rande - on the edge</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/hpr4320/index.html\" target=\"_blank\">4320</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2025-02-21</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4320/index.html\" target=\"_blank\">Switching my Mastodon account</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/hpr4321/index.html\" target=\"_blank\">4321</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2025-02-24</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4321/index.html\" target=\"_blank\">Crux Linux</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/hpr4322/index.html\" target=\"_blank\">4322</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2025-02-25</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4322/index.html\" target=\"_blank\">Fighting smartphone addiction</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/hpr4323/index.html\" target=\"_blank\">4323</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2025-02-26</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4323/index.html\" target=\"_blank\">Good Samaritan laws, Duty to rescue in the Netherlands</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/hpr4324/index.html\" target=\"_blank\">4324</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2025-02-27</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4324/index.html\" target=\"_blank\">24-25 New Years Eve show episode 2</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/hpr4325/index.html\" target=\"_blank\">4325</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2025-02-28</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4325/index.html\" target=\"_blank\">Two Software I use- Futo Keyboard and Inoreader</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0441.html\" target=\"_blank\">Antoine</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 24 comments in total.</p>\n<h3>Past shows</h3>\n<p>There are 6 comments on\n6 previous shows:</p>\n<ul>\n<li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4106/index.html#comments\" target=\"_blank\">hpr4106</a></strong>\n(2024-04-29) \"<em>My tribute to feeds</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0429.html\" target=\"_blank\">Henrik Hemrin</a>.<br/>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps/hpr4106/index.html#comment_4223\" target=\"_blank\">Comment 3</a>:\nSem luz em Saint Louis on 2025-02-06:\n\"Valid!\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4129/index.html#comments\" target=\"_blank\">hpr4129</a></strong>\n(2024-05-30) \"<em>How I found Hacker Public Radio</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0429.html\" target=\"_blank\">Henrik Hemrin</a>.<br/>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps/hpr4129/index.html#comment_4222\" target=\"_blank\">Comment 2</a>:\nSem luz em Saint Louis on 2025-02-06:\n\"Thanks, Henrik!\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4168/index.html#comments\" target=\"_blank\">hpr4168</a></strong>\n(2024-07-24) \"<em>Beyond Economic Recovery</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0149.html\" target=\"_blank\">Trixter</a>.<br/>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps/hpr4168/index.html#comment_4230\" target=\"_blank\">Comment 3</a>:\nSem Luz em Saint Louis on 2025-02-14:\n\"Piracy may be not so straight-forward\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4204/index.html#comments\" target=\"_blank\">hpr4204</a></strong>\n(2024-09-12) \"<em>LibreOffice Importing External Data</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0425.html\" target=\"_blank\">gemlog</a>.<br/>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps/hpr4204/index.html#comment_4225\" target=\"_blank\">Comment 1</a>:\nWindigo on 2025-02-09:\n\"Phenomenal tip\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4269/index.html#comments\" target=\"_blank\">hpr4269</a></strong>\n(2024-12-12) \"<em>What is on My Podcast Player 2024, Part 2</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/hpr4269/index.html#comment_4235\" target=\"_blank\">Comment 2</a>:\nelmussol on 2025-02-21:\n\"Mike Duncan, Revolutions & Mars\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4302/index.html#comments\" target=\"_blank\">hpr4302</a></strong>\n(2025-01-28) \"<em>New Campaign Trail Playthrough</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0434.html\" target=\"_blank\">Lochyboy</a>.<br/>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps/hpr4302/index.html#comment_4224\" target=\"_blank\">Comment 2</a>:\nSem luz em Saint Louis on 2025-02-06:\n\"Played it!\"</li></ul><br/>\n</li></ul>\n<h3>This month\'s shows</h3>\n<p>There are 18 comments on 10 of this month\'s shows:</p>\n<ul><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4306/index.html#comments\" target=\"_blank\">hpr4306</a></strong>\n(2025-02-03) \"<em>HPR Community News for January 2025</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/hpr4306/index.html#comment_4221\" target=\"_blank\">Comment 1</a>:\nLee on 2025-02-05:\n\"Whiplash\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4310/index.html#comments\" target=\"_blank\">hpr4310</a></strong>\n(2025-02-07) \"<em>Playing Civilization IV, Part 6</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/hpr4310/index.html#comment_4203\" target=\"_blank\">Comment 1</a>:\nKen Fallon on 2025-01-15:\n\"Not a gamer\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4310/index.html#comment_4204\" target=\"_blank\">Comment 2</a>:\nKevin O&#39;Brien on 2025-01-15:\n\"Well, it is math, really\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4311/index.html#comments\" target=\"_blank\">hpr4311</a></strong>\n(2025-02-10) \"<em>LoRaWAN and the Things Stack</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0403.html\" target=\"_blank\">Lee</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr4311/index.html#comment_4200\" target=\"_blank\">Comment 1</a>:\nKen Fallon on 2025-01-15:\n\"Great insignt into LoRaWAN\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4312/index.html#comments\" target=\"_blank\">hpr4312</a></strong>\n(2025-02-11) \"<em>What Is The Indie Archive?</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0436.html\" target=\"_blank\">hairylarry</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr4312/index.html#comment_4226\" target=\"_blank\">Comment 1</a>:\nKevie on 2025-02-11:\n\"Excellent show\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4312/index.html#comment_4227\" target=\"_blank\">Comment 2</a>:\nhairylarry on 2025-02-13:\n\"The Indie Archive\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4313/index.html#comments\" target=\"_blank\">hpr4313</a></strong>\n(2025-02-12) \"<em>Why I made a 1-episode podcast about a war story</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0441.html\" target=\"_blank\">Antoine</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr4313/index.html#comment_4239\" target=\"_blank\">Comment 1</a>:\ndnt on 2025-02-28:\n\"Welcome\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4313/index.html#comment_4240\" target=\"_blank\">Comment 2</a>:\nAntoine on 2025-02-28:\n\"Thank you!\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4314/index.html#comments\" target=\"_blank\">hpr4314</a></strong>\n(2025-02-13) \"<em>24-25 New Years Eve show</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/hpr4314/index.html#comment_4229\" target=\"_blank\">Comment 1</a>:\nDave Morriss on 2025-02-14:\n\"My \'fix_tags\' script and Ken\'s difficulties with it.\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4314/index.html#comment_4232\" target=\"_blank\">Comment 2</a>:\nfreeplay on 2025-02-17:\n\"Transcode script dependencies\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4314/index.html#comment_4237\" target=\"_blank\">Comment 3</a>:\nOperat0r on 2025-02-26:\n\"HPR\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4315/index.html#comments\" target=\"_blank\">hpr4315</a></strong>\n(2025-02-14) \"<em>How I got into the wonderful world of hackery</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0442.html\" target=\"_blank\">Shane - StrandedOutput</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr4315/index.html#comment_4228\" target=\"_blank\">Comment 1</a>:\nTrey on 2025-02-14:\n\"Welcome!\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4315/index.html#comment_4231\" target=\"_blank\">Comment 2</a>:\nSolusSpider - Peter Paterson on 2025-02-14:\n\"Feeling older & impressed\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4315/index.html#comment_4233\" target=\"_blank\">Comment 3</a>:\nSteve Barnes on 2025-02-17:\n\"Hi and merci!\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4315/index.html#comment_4234\" target=\"_blank\">Comment 4</a>:\nTorin Doyle on 2025-02-21:\n\"Bliss of discovering GNU/Linux for the first time.\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4317/index.html#comments\" target=\"_blank\">hpr4317</a></strong>\n(2025-02-18) \"<em>Recording an episode of HPR</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0296.html\" target=\"_blank\">Kevie</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr4317/index.html#comment_4236\" target=\"_blank\">Comment 1</a>:\nReto on 2025-02-25:\n\"Previous shows on tricks and apps for recording\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4320/index.html#comments\" target=\"_blank\">hpr4320</a></strong>\n(2025-02-21) \"<em>Switching my Mastodon account</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/hpr4320/index.html#comment_4137\" target=\"_blank\">Comment 1</a>:\nKen Fallon on 2024-11-25:\n\"Target Audience of 1\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4322/index.html#comments\" target=\"_blank\">hpr4322</a></strong>\n(2025-02-25) \"<em>Fighting smartphone addiction</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/hpr4322/index.html#comment_4238\" target=\"_blank\">Comment 1</a>:\nAntoine on 2025-02-26:\n\"Nice, and my experience is...\"</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://lists.hackerpublicradio.com/mailman/listinfo/hpr\"\ntarget=\"_blank\">Mailing 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://lists.hackerpublicradio.com/pipermail/hpr\">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/2025-February/thread.html\" target=\"_blank\">https://lists.hackerpublicradio.com/pipermail/hpr/2025-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),
(4088,'2024-04-03','Today I Learnt more Bash tips',1419,'Sgoti talks about supplying options to bash scripts','<h1 id=\"today-i-learnt-more-bash-tips\">Today I Learnt more Bash\ntips</h1>\n<h2 id=\"sgoti-talks-about-supplying-options-to-bash-scripts\">Sgoti talks\nabout supplying options to bash scripts</h2>\n<ul>\n<li>Tags: Bash tips, TIL, getopts</li>\n</ul>\n<pre class=\"bash\"><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: showtime.sh\n#Purpose: Time to make a show.\n#Version: beta 0.01\n#Author: SGOTI (Some Guy On The Internet)\n#Date: 2023-12-29\n\n#variables:\n\nbindir=/usr/bin/\n\ncat=${bindir}cat\ndate=${bindir}date\necho=${bindir}echo\nmkdir=${bindir}mkdir\n\ndirshow0=${HOME}/Music/hpr/shows\ndirshow1=${dirshow0}/$(${date} +%Y)\ndirqueue=${dirshow1}/queue/$(${date} +%F)\ndirreserve=${dirshow1}/reserve-queue/$(${date} +%F)\n\n#start:\n\nfunction help() {\n${cat} &lt;&lt; EOH\nUsage: $0 [-s] [-r] [-q] [-h] name-of-show\n\n    -s    (Regular queue)\n    -r    (Reserve queue)\n    -q    (quit)\n    -h    (help)\n\nExamples:\n        $0 -s name-of-show\n        $0 -r name-of-show\n        $0 -q\n        $0 -h\n\nEOH\n}\n\n## Use `getopts` to read user option into script. ##\nwhile getopts &quot;:s:r:q:h&quot; option; do\n    case $option in\n        s)\n        show=$OPTARG\n\nfunction mkq () {\n    ${mkdir} -v -p ${dirqueue}/${show}/edit;\n    ${mkdir} -v -p ${dirqueue}/${show}/prod;\n    ${cat} &gt; ${dirqueue}/${show}/edit/${show}.md &lt;&lt; _EOD_\n# ${show} #\n\n## subtitle ##\n\n- Tags:\n\n\n\nThis work is licensed under a [Creative Commons Attribution-ShareAlike 4.0 International License](https://creativecommons.org/licenses/by-sa/4.0/ &quot;CC-BY-SA 4.0 International&quot;).\n\n_EOD_\n\n    builtin pushd -n ${dirqueue}/${show}/edit;\n    builtin pushd -n ${dirqueue}/${show}/prod;\n}\n\n        if [ -d ${dirshow1} ]; then\n            mkq\n        else\n            ${echo} &quot;Good Heavens! It&#39;s a new year.&quot;;\n            ${mkdir} -v -p ${dirshow1};\n\n            mkq\n        fi\n        ;;\n\n        r)\n        reserve=$OPTARG\nfunction mkr () {\n    ${mkdir} -v -p ${dirreserve}/${reserve}/edit;\n    ${mkdir} -v -p ${dirreserve}/${reserve}/prod;\n    ${cat} &gt; ${dirreserve}/${reserve}/edit/${reserve}.md &lt;&lt; _EOD_\n# ${reserve} #\n\n## subtitle ##\n\n- Tags:\n\n\n\nThis work is licensed under a [Creative Commons Attribution-ShareAlike 4.0 International License](https://creativecommons.org/licenses/by-sa/4.0/ &quot;CC-BY-SA 4.0 International&quot;).\n\n_EOD_\n\n    builtin pushd -n ${dirreserve}/${reserve}/edit;\n    builtin pushd -n ${dirreserve}/${reserve}/prod;\n}\n\n        if [ -d ${dirshow1} ]; then\n            mkr\n        else\n            ${echo} &quot;Good Heavens! It&#39;s a new year.&quot;;\n            ${mkdir} -v -p ${dirshow1};\n\n            mkr\n        fi\n        ;;\n\n        q)\n        ${echo} &quot;Goodbye.&quot;;\n        exit\n        ;;\n\n        h)\n        help\n        exit\n        ;;\n\n        *)\n        if [ -z &quot;${option}&quot; ]; then\n            help\n            exit 1\n        fi\n\n        ${echo} &quot;Good Heavens! Invalid input.&quot;;\n        help\n        exit\n        ;;\n    esac\ndone\n\n\nexit;\n</code></pre>\n<pre class=\"bash\"><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: sc.sh\n#Purpose:\n#Version: beta 0.01\n#Author: SGOTI (Some Guy On The Internet)\n#Date: 2023-12-31\n\n#variables:\n\nbindir=/usr/bin/\n\ncat=${bindir}cat\ndate=${bindir}date\necho=${bindir}echo\nls=${bindir}ls\nscreen=${bindir}screen\n\n#start:\n\n    ${echo} -e &quot;\\nStep 0: $(${date} +%F), $(${date} +%T)&quot;;\n\nfunction help() {\n${cat} &lt;&lt; EOH\nUsage: $0 [-b] [-s] [-k] [-h] name-of-show\n\n    -b [y|n] (Create or kill, base sockets.)\n    -s       (Create new sockets.)\n    -k       (Kill sockets.)\n    -h       (help menu)\n\nExamples:\n        $0 -b y\n        $0 -b n\n        $0 -s name-of-socket\n        $0 -k name-of-socket\n        $0 -h\n\nEOH\n}\n\n    ${echo} -e &quot;\\nStep 1: $(${date} +%F), $(${date} +%T)&quot;;\n\nwhile getopts &quot;:b:s:k:h:&quot; option; do\n    case &quot;${option}&quot; in\n        b)\n        userinput0=$OPTARG\n        if [ ${userinput0} == &quot;y&quot; ]; then\n        ${screen} -dmS apps;\n        ${screen} -dmS jobby;\n        ${screen} -ls;\n        elif [ ${userinput0} == &quot;n&quot; ]; then\n        # You don&#39;t need the entire name to kill the socket.\n        ${screen} -X -S &quot;app&quot; kill\n        ${screen} -X -S &quot;job&quot; kill\n        ${screen} -ls;\n        else\n        ${echo} &quot;Good Heavens!&quot;\n        ${screen} -ls;\n            help\n            exit 1\n        fi\n        ;;\n\n        s)\n        userinput0=$OPTARG\n        ${screen} -dmS &quot;${userinput0}&quot;;\n            clear\n        ${screen} -ls;\n            ${echo} -e &quot;\\nNew sockets: $(${date} +%F), $(${date} +%T)&quot;;\n        ;;\n\n        k)\n        userinput0=$OPTARG\n        ${screen} -XS ${userinput0} kill\n            clear\n        ${screen} -ls;\n            ${echo} -e &quot;\\nKill sockets: $(${date} +%F), $(${date} +%T)&quot;;\n        ;;\n\n        h)\n        help\n            ${echo} -e &quot;\\nHelp menu: $(${date} +%F), $(${date} +%T)&quot;;\n        exit\n        ;;\n\n        *)\n        if [ -z &quot;${option}&quot; ]; then\n            help\n            exit 1\n        fi\n\n        ${echo} &quot;Good Heavens! Invalid input.&quot;;\n        help\n        exit\n        ;;\n    esac\ndone\n\n    ${echo} -e &quot;\\nStep 2: $(${date} +%F), $(${date} +%T)&quot;;\n\nexit;\n</code></pre>\n<ul>\n<li><strong>Source:</strong> <a\nhref=\"https://hackerpublicradio.org/series/0123.html\">In-Depth Series:\nToday I Learnt</a></li>\n<li><strong>Source:</strong> <a\nhref=\"https://hackerpublicradio.org/series/0042.html\">In-Depth Series:\nBash Scripting</a></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,42,0,'CC-BY-SA','Bash tips, TIL, getopts',0,0,1),
(4091,'2024-04-08','Test Driven Development Demo',1620,'norrist uses pytest to demonstrate TDD with a trival HPR info app','<h1 id=\"test-driven-development-demo-with-pytest\">Test Driven\nDevelopment Demo with PyTest</h1>\n<h2 id=\"tdd\">TDD</h2>\n<ul>\n<li>Discussed in hpr4075</li>\n<li>Write a new test and run it. It should fail.</li>\n<li>Write the minimal code that will pass the test</li>\n<li>Optionally - refactor the code while ensure the tests continue to\npass</li>\n</ul>\n<h2 id=\"pytest\">PyTest</h2>\n<ul>\n<li>Framework for writing software tests with python</li>\n<li>Normally used to test python projects, but could test any software\nthat python can launch return input.</li>\n<li>if you can write python, you can write tests in PyTest.</li>\n<li>python assert - check that something is true</li>\n</ul>\n<h2 id=\"test-discovery\">Test Discovery</h2>\n<ul>\n<li>Files named test*</li>\n<li>Functions named test*</li>\n</ul>\n<h2 id=\"demo-project\">Demo Project</h2>\n<ul>\n<li>Trivial app as a demo</li>\n<li>Print a summary of the latest HPR Episode</li>\n<li>Title, Host, Date, Audio File</li>\n<li>How do we get the latest show data\n<ul>\n<li>RSS feed</li>\n<li>Feed parser</li>\n<li>Feed URL</li>\n</ul></li>\n</ul>\n<h2 id=\"the-pytest-setup\">The pytest setup</h2>\n<ul>\n<li>The python script we want to test will be named\n<code>hpr_info.py</code></li>\n<li>The test will be in a file will be named\n<code>test_hpr_info.py</code></li>\n</ul>\n<p>test_hpr_info.py</p>\n<pre class=\"py\"><code>import hpr_info</code></pre>\n<p>Run pytest</p>\n<pre class=\"log\"><code>ModuleNotFoundError: No module named &#39;hpr_info&#39;</code></pre>\n<ul>\n<li>We have written our first failing test.</li>\n<li>The minimum code to get pytest to pass is to create an empty\nfile</li>\n<li><code>touch hpr_info.py</code></li>\n</ul>\n<h3 id=\"run-pytest-again\">Run pytest again</h3>\n<pre class=\"txt\"><code> pytest\n============================= test session starts ==============================\nplatform linux -- Python 3.11.8, pytest-7.4.4, pluggy-1.4.0\nrootdir: /tmp/Demo\ncollected 0 items</code></pre>\n<h2 id=\"what-just-happened\">What just happened</h2>\n<ul>\n<li>We created a file named <code>test_hpr_info.py</code> with a single\nline to import hpr_info</li>\n<li>We ran pytest and it failed because hpr_info.py did not exist</li>\n<li>We created <code>hpr_info.py</code> and pytest ran without an\nerror.</li>\n<li>This means we confirmed:\n<ul>\n<li>Pytest found the file named <code>test_hpr_info.py</code> and tried\nto execute its tests</li>\n<li>The import line is looking for a file named\n<code>hpr_info.py</code></li>\n</ul></li>\n</ul>\n<h2 id=\"python-assert\">Python Assert</h2>\n<ul>\n<li>In python, <code>assert</code> tests if a statement is true</li>\n<li>For example</li>\n</ul>\n<pre class=\"py\"><code>asert 1==1</code></pre>\n<p>In pytest, we can use assert to check a function returns a specific\nvalue</p>\n<pre class=\"py\"><code>assert module.function() == &quot;Desired Output&quot;</code></pre>\n<p>Without doing a comparison operator, we can also use assert to check\nif something exists without specifying a specific value</p>\n<pre class=\"py\"><code>assert dictionary.key</code></pre>\n<h2 id=\"adding-a-test\">Adding a Test</h2>\n<ul>\n<li>Import hpr_info will allow us to test functions inside\n<code>hpr_info.py</code></li>\n<li>We can reference functions inside <code>hpr_info.py</code> by\nprepending the name with <code>hpr_info.</code> for example</li>\n</ul>\n<pre class=\"py\"><code>hpr_info.HPR_FEED</code></pre>\n<ul>\n<li>The first step in finding the latest HPR episode is fetching a copy\nof the feed.</li>\n<li>Lets add a test to make sure the HPR feed is defined</li>\n</ul>\n<pre class=\"py\"><code>import hpr_info\n\n\ndef test_hpr_feed_url():\n    assert hpr_info.HPR_FEED == &quot;https://hackerpublicradio.org/hpr_ogg_rss.php&quot;</code></pre>\n<h2 id=\"pytest-again\">pytest again</h2>\n<ul>\n<li>Lets run pytest again and we get the error\n<code>AttributeError: module \'hpr_info\' has no attribute \'HPR_FEED\'</code></li>\n<li>So lets add the just enough code <code>hpr_info.py</code> to get the\ntest to pass</li>\n</ul>\n<pre class=\"py\"><code>HPR_FEED = &quot;https://hackerpublicradio.org/hpr_ogg_rss.php&quot;</code></pre>\n<ul>\n<li>Run pytest again and we get <code>1 passed</code> indicating the\npytest found 1 test which passed</li>\n<li>Hooray, we are doing TDD</li>\n</ul>\n<h2 id=\"next-test---parsing-the-feed\">Next Test - Parsing the feed</h2>\n<ul>\n<li>lets plan a function that pulls the HPR feed and returns the feed\ndata.</li>\n<li>We can test that the result of fetching the feed is a HTTP 200</li>\n</ul>\n<pre class=\"py\"><code>def test_get_show_data():\n    show_data = hpr_info.get_show_data()\n    assert show_data.status == 200</code></pre>\n<ul>\n<li>Now when we run pytest we get <code>1 failed, 1 passed</code> and we\ncan see the error\n<code>AttributeError: module \'hpr_info\' has no attribute \'get_show_data\'</code></li>\n<li>Lets write the code to get the new test to pass.</li>\n<li>We will use the <code>feedparser</code> python module to make it\neasier to parse the rss feed.</li>\n<li>After we add the import and the new function,\n<code>hpr_info.py</code> looks like this</li>\n</ul>\n<pre class=\"py\"><code>import feedparser\n\nHPR_FEED = &quot;https://hackerpublicradio.org/hpr_ogg_rss.php&quot;\n\n\ndef get_show_data():\n    showdata = feedparser.parse(HPR_FEED)\n    return showdata\n</code></pre>\n<hr />\n<ul>\n<li>Lets run pytest again. When I have more than one test, I like to add\nthe <code>-v</code> flag so I can see each test as it runs.</li>\n</ul>\n<pre><code>test_hpr_info.py::test_hpr_feed_url PASSED                                                                                               [ 50%]\ntest_hpr_info.py::test_get_show_data PASSED                                                                                              [100%]</code></pre>\n<h2 id=\"next-test---get-the-most-recent-episode-from-the-feed\">Next Test\n- Get the most recent episode from the feed</h2>\n<ul>\n<li>Now that we have the feed, lets test getting the first episode.</li>\n<li>feedparser entries are dictionaries.</li>\n<li>Lets test what the function returns to make sure it looks like a rss\nfeed entry.</li>\n</ul>\n<pre class=\"py\"><code>def test_get_latest_entry():\n    latest_entry = hpr_info.get_latest_entry()\n    assert latest_entry[&quot;title&quot;]\n    assert latest_entry[&quot;published&quot;]</code></pre>\n<hr />\n<ul>\n<li>After we verify the test fails, we can write the code to rerun the\nnewest entry data to <code>hpr_info.py</code> and <code>pytest -v</code>\nwill show 3 passing tests.</li>\n</ul>\n<pre class=\"py\"><code>def get_latest_entry():\n    showdata = get_show_data()\n    return showdata[&quot;entries&quot;][0]</code></pre>\n<h2 id=\"final-test\">Final Test</h2>\n<ul>\n<li>Lets test a function to see if it returns the values we want to\nprint.</li>\n<li>We don\'t test for specific values, just that the data exists.</li>\n</ul>\n<pre class=\"py\"><code>def test_get_entry_data():\n    entry_data = hpr_info.get_entry_data(hpr_info.get_latest_entry())\n    assert entry_data[&quot;title&quot;]\n    assert entry_data[&quot;host&quot;]\n    assert entry_data[&quot;published&quot;]\n    assert entry_data[&quot;file&quot;]</code></pre>\n<hr />\n<p>And then code to get the test to pass</p>\n<pre class=\"py\"><code>def get_entry_data(entry):\n    for link in entry[&quot;links&quot;]:\n        if link.get(&quot;rel&quot;) == &quot;enclosure&quot;:\n            enclosure = link.get(&quot;href&quot;)\n\n    return {\n        &quot;title&quot;: entry[&quot;title&quot;],\n        &quot;host&quot;: entry[&quot;authors&quot;][0][&quot;name&quot;],\n        &quot;published&quot;: entry[&quot;published&quot;],\n        &quot;file&quot;: enclosure,\n    }</code></pre>\n<h2 id=\"finish-the-hpr-info-script.\">Finish the HPR info script.</h2>\n<p>Now that we have tested that we can, get all the info we want from\nthe most recent episode lets add the last bit of code to\n<code>hpr_info.py</code> to print the episode info</p>\n<pre class=\"py\"><code>if __name__ == &quot;__main__&quot;:\n    most_recent_show = get_entry_data(get_latest_entry())\n    print()\n    print(f&quot;Most Recent HPR Episode&quot;)\n    for x in most_recent_show:\n        print(f&quot;{x}: {most_recent_show.get(x)}&quot;)</code></pre>\n<p><code>if __name__ == \"__main__\":</code> ensures code inside this\nblock will only run when the script is called directly, and not when\nimported by <code>test_hpr_info.py</code></p>\n<h2 id=\"summary\">Summary</h2>\n<ul>\n<li>TDD is a programming method where you write tests prior to writing\ncode.</li>\n<li>TDD forces me to write smaller functions and more modular code.</li>\n<li>Link to HPR info script and tests - TODO</li>\n<li>Additional tests to add\n<ul>\n<li>Check date is the most recent weekday</li>\n<li>Check this the host is listed on corespondents page</li>\n<li>Check others.</li>\n</ul></li>\n<li>Project Files - https://gitlab.com/norrist/hpr-pytest-demo</li>\n</ul>\n',342,0,0,'CC-BY-SA','python, testing, pytest',0,0,1),
(4092,'2024-04-09','More man-talk.',1172,'Sgoti talks about using bidets and other things. Good heavens!','<h1 id=\"more-man-talk.\">More man-talk.</h1>\n<h2\nid=\"sgoti-talks-about-using-bidets-and-other-things.-good-heavens\">Sgoti\ntalks about using bidets and other things. Good heavens!</h2>\n<ul>\n<li><p>Tags: mens health, bidets, fiber</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://hellotushy.com/pages/about-us\"\ntitle=\"We&#x2019;re toilet crusaders!\">hellotushy:</a> We&#x2019;re a team of toilet\ncrusaders, fighting for clean bums and reduced global\nwastefulness.<br />\n</p></li>\n<li><p><strong>Supporting source:</strong> <a\nhref=\"https://hellotushy.com/products/classic-affordable-bidet?variant=32135870906410\"\ntitle=\"TUSHY Classic 3.0\">hellotushy:</a> <strong>TUSHY Classic\n3.0</strong><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://www.metamucil.com/en-us\">metamucil:</a>\n<strong>Metamucil</strong> is the only leading fiber supplement that\ncontains natural psyllium fiber.<br />\n</p></li>\n<li><p><strong>Supporting source:</strong> <a\nhref=\"https://www.metamucil.com/en-us/products/fiber-powders/orange-smooth\"\ntitle=\"Metamucil Real Sugar Orange Smooth Powder\">metamucil:</a>\n<strong>Metamucil</strong> Real Sugar Orange Smooth Powder.<br />\n</p></li>\n<li><p><strong>Supporting source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Dietary_fiber\"\ntitle=\"From Wikipedia, the free encyclopedia.\">wikipedia:</a>\n<strong>Dietary fiber</strong> (fibre in Commonwealth English) or\nroughage is the portion of plant-derived food that cannot be completely\nbroken down by human digestive enzymes.<br />\n</p></li>\n<li><p><strong>Supporting source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Psyllium\"\ntitle=\"From Wikipedia, the free encyclopedia.\">wikipedia:</a>\n<strong>Psyllium</strong>, is the common name used for several members\nof the plant genus Plantago whose seeds are used commercially for the\nproduction of mucilage.<br />\n</p></li>\n<li><p><strong>Supporting source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Fibre_supplements\"\ntitle=\"Fibre supplements.\">wikipedia:</a> <strong>Fibre\nsupplements</strong> are widely available, and can be found in forms\nsuch as powders, tablets, and capsules. Consumption of fibre supplements\nmay be for: improving dietary intake, lowering blood cholesterol,\nalleviating irritable bowel syndrome, reducing the risk of colon cancer,\nand increasing feelings of satiety.<br />\n</p></li>\n<li><p><strong>Supporting source:</strong> <a\nhref=\"https://www.walmart.com/ip/Equate-Multi-Health-Daily-Fiber-Supplement-Orange-Flavored-Powder-Value-Size-48-2-oz/10423296?athbdg=L1103&amp;from=/search\"\ntitle=\"Equate Multi-Health Daily Fiber Supplement, Orange Flavored Powder, Value Size (48.2 oz)\">walmart:</a>\nEquate Multi-Health <strong>Daily Fiber Supplement</strong>, Orange\nFlavored Powder, Value Size (48.2 oz)<br />\n</p></li>\n<li><p><strong>Supporting source:</strong> <a\nhref=\"https://www.samsclub.com/p/members-mark-1-psyllium-husk-fiber-capsules-2pk-800ct/P03003771?xid=plp_product_2\"\ntitle=\"Member&#39;s Mark 100% **Psyllium Husk Fiber Capsules**, 400 ct./pk., 2 pk.\">samsclub:</a>\nMember\'s Mark 100% Psyllium Husk Fiber Capsules, 400 ct./pk., 2\npk.<br />\n</p></li>\n<li><p><strong>Supporting source:</strong> <a\nhref=\"https://hackerpublicradio.org/eps/hpr4083/index.html\"\ntitle=\"hpr4083 :: Drivecast: Man-talk.\">hackerpublicradio:</a> hpr4083\n:: Drivecast: Man-talk.<br />\n</p></li>\n<li><p><strong>Supporting source:</strong> <a\nhref=\"https://hackerpublicradio.org/eps/hpr3048/index.html\"\ntitle=\"hpr3048 :: Alternatives to toilet paper\">hackerpublicradio:</a>\nhpr3048 :: Alternatives to toilet paper<br />\n</p></li>\n<li><p><strong>Supporting source:</strong> <a\nhref=\"https://hackerpublicradio.org/eps/hpr2345/index.html\"\ntitle=\"hpr2345 :: Fixing a toilet roll holder\">hackerpublicradio:</a>\nhpr2345 :: Fixing a toilet roll holder<br />\n</p></li>\n<li><p><strong>Supporting source:</strong> <a\nhref=\"https://hackerpublicradio.org/eps/hpr2111/index.html\"\ntitle=\"hpr2111 :: HPR Community News for August 2016\">hackerpublicradio:</a>\nhpr2111 :: HPR Community News for August 2016<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,100,1,'CC-BY-SA','mens health, bidets, fiber',0,0,1),
(4096,'2024-04-15','Powers of two',1024,'A story and discussion around how knowing powers of two can be useful','<pre><code>2\n4\n8\n16\n32\n64\n128\n256\n512\n1024\n2048\n4096\n8192\n16384\n32768\n65536\n131072\n262144\n524288\n1048576\n2097152\n4194304\n8388608\n16777216\n33554432\n67108864\n134217728\n268435456\n536870912\n1073741824\n2147483648\n4294967296\n8589934592\n17179869184\n34359738368\n68719476736\n137438953472\n274877906944\n549755813888\n1099511627776\n2199023255552\n4398046511104\n8796093022208\n17592186044416\n35184372088832\n70368744177664\n140737488355328\n281474976710656\n562949953421312\n1125899906842624\n2251799813685248\n4503599627370496\n9007199254740992\n18014398509481984\n36028797018963968\n72057594037927936\n144115188075855872\n288230376151711744\n576460752303423488\n1152921504606846976\n2305843009213693952\n4611686018427387904\n9223372036854775808\n18446744073709551616</code></pre>\n',194,0,0,'CC-BY-SA','math,debugging,commodore,amiga,sysadmin,servers,software',0,0,1),
(4093,'2024-04-10','Installing postmarketOS on a PINE64 PinePhone',452,'Claudio discusses how to install postmarketOS on the PINE64 PinePhone','<h2 id=\"shownotes\">Shownotes:</h2>\n<ul>\n<li>postmarketOS website: <a href=\"https://postmarketos.org/\"\nclass=\"uri\">https://postmarketos.org/</a></li>\n<li>pmOS image download page: <a\nhref=\"https://postmarketos.org/download/\"\nclass=\"uri\">https://postmarketos.org/download/</a></li>\n<li>pmOS wiki page for PINE64 PinePhone: <a\nhref=\"https://wiki.postmarketos.org/wiki/PINE64_PinePhone_(pine64-pinephone)\"\nclass=\"uri\">https://wiki.postmarketos.org/wiki/PINE64_PinePhone_(pine64-pinephone)</a></li>\n<li>JumpDrive: <a href=\"https://github.com/dreemurrs-embedded/Jumpdrive\"\nclass=\"uri\">https://github.com/dreemurrs-embedded/Jumpdrive</a></li>\n<li>JumpDrive images (does not currently support PinePhone Pro!): <a\nhref=\"https://github.com/dreemurrs-embedded/Jumpdrive/releases\"\nclass=\"uri\">https://github.com/dreemurrs-embedded/Jumpdrive/releases</a></li>\n<li>Explanation of \"pine64-pinephone-charging\" image: <a\nhref=\"https://github.com/dreemurrs-embedded/Jumpdrive/issues/55\"\nclass=\"uri\">https://github.com/dreemurrs-embedded/Jumpdrive/issues/55</a></li>\n<li>pmOS wiki page on how to flash an SD card with JumpDrive: <a\nhref=\"https://wiki.postmarketos.org/wiki/JumpDrive\"\nclass=\"uri\">https://wiki.postmarketos.org/wiki/JumpDrive</a></li>\n<li>On-Device Installer (ondev): <a\nhref=\"https://wiki.postmarketos.org/wiki/On-device_installer\"\nclass=\"uri\">https://wiki.postmarketos.org/wiki/On-device_installer</a></li>\n<li>Ondev2: <a href=\"https://wiki.postmarketos.org/wiki/Ondev2\"\nclass=\"uri\">https://wiki.postmarketos.org/wiki/Ondev2</a></li>\n<li>Installing a prebuilt pmOS on PinePhone with JumpDrive: <a\nhref=\"https://wiki.postmarketos.org/wiki/Installation\"\nclass=\"uri\">https://wiki.postmarketos.org/wiki/Installation</a></li>\n</ul>\n',152,0,0,'CC-BY-SA','linux,mobile,pine64,pinephone,postmarketos,pmos',0,0,1),
(4095,'2024-04-12','Twenty seven years of Linux',2680,'Deltaray rambles on for 45 minutes and over exaggerates about how awesome it is to use Linux','<p>The programs and software I mentioned in this episode:</p>\n<ul>\n<li>XFCE</li>\n<li>Monad</li>\n<li>Gnome</li>\n<li>Firefox</li>\n</ul>\n<ul>\n<li>XFCE Terminal</li>\n<li>KiTTY</li>\n<li>Cool Retro Term</li>\n</ul>\n<ul>\n<li>GIMP</li>\n<li>Gnumeric</li>\n<li>Thunar</li>\n<li>Hypnotix</li>\n<li>Flameshot</li>\n<li>Mousepad</li>\n<li>Inkscape</li>\n<li>pavucontrol (Pulse Audio)</li>\n<li>pipewire</li>\n<li>keepassxc</li>\n<li>Blender</li>\n<li>FreeCAD</li>\n<li>SimpleScreenRecorder</li>\n<li>VirtualBox</li>\n<li>KVM</li>\n<li>Rhythmbox</li>\n<li>Gramps</li>\n<li>qv4l2 (Webcam control)</li>\n<li>Godot</li>\n<li>Krita</li>\n<li>Arduino IDE</li>\n<li>nerd-dictation</li>\n</ul>\n<ul>\n<li>Yoshimi</li>\n<li>Carla</li>\n<li>Audacity</li>\n<li>Rosegarden</li>\n<li>Hydrogen</li>\n<li>VCV Rack 2</li>\n</ul>\n<ul>\n<li>Stardew Valley</li>\n<li>Steam</li>\n<li>Minecraft</li>\n<li>SimCity 2000</li>\n<li>SimCity 3000</li>\n<li>Warzone 2100</li>\n<li>BeamNG</li>\n<li>Oni</li>\n<li>Supertux 2</li>\n<li>SuperTuxKart</li>\n<li>Nexuiz</li>\n<li>FlightGear</li>\n<li>Terraria</li>\n<li>Diablo 2 and 3</li>\n<li>World of Warcraft</li>\n</ul>\n',194,0,0,'CC-BY-SA','linux,gui,applications,productivity,graphics,music,games,rants',0,0,1),
(4097,'2024-04-16','Will they take our jobs? Of course they will.',2042,'I blather on about my thoughts on robots taking our jobs.','<p>Just me explaining why I think the robots will take our jobs.</p>\n',151,0,1,'CC-BY-SA','AI,Robots',0,0,1),
(4098,'2024-04-17','Road trips without GPS',434,'A short, off the cuff, discussion of how we navigated road trips in the past','<p>This was an unscheduled recording I made after my GPS failed part way\ninto a long cross country trip. I did not make any notes. :(</p>\n<p>Effectively, this is a \"Back in my day\" old man rant.</p>\n',394,0,0,'CC-BY-SA','maps, travel, navigation, rant',0,0,1),
(4099,'2024-04-18','Introducing Home Automation and Home Assistant',915,'A new series about all things Home Automation, this time a introduction to Home Assistant','<h1 id=\"home-automation-the-internet-of-things.\">Home Automation, The\nInternet of things.</h1>\n<p>This is the first episode in a new series called\n<a href=\"https://hackerpublicradio.org/series/0125.html\">Home\nAutomation</a>. The series is open to anyone and I encourage everyone to\ncontribute.</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Home_automation\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Home_automation</a> From\nWikipedia, the free encyclopedia</p>\n<p>Home automation or domotics is building automation for a home. A home\nautomation system will monitor and/or control home attributes such as\nlighting, climate, entertainment systems, and appliances. It may also\ninclude home security such as access control and alarm systems.</p>\n<p>The phrase smart home refers to home automation devices that have\ninternet access. Home automation, a broader category, includes any\ndevice that can be monitored or controlled via wireless radio signals,\nnot just those having internet access. When connected with the Internet,\nhome sensors and activation devices are an important constituent of the\nInternet of Things (\"IoT\").</p>\n<p>A home automation system typically connects controlled devices to a\ncentral smart home hub (sometimes called a \"gateway\"). The user\ninterface for control of the system uses either wall-mounted terminals,\ntablet or desktop computers, a mobile phone application, or a Web\ninterface that may also be accessible off-site through the Internet.</p>\n<h2 id=\"now-is-the-time\">Now is the time</h2>\n<p>I tried this out a few years ago, but after a lot of frustration with\nconfiguration of esp32 arduinos, and raspberry pi\'s I left it be.\nRecently inspired by colleagues in work, I decided to get back into it\nand my initial tests show that the scene has much improved over the\nyears.</p>\n<h3 id=\"youtube-playlist\">Youtube Playlist</h3>\n<ul>\n<li><a href=\"https://www.youtube.com/channel/UC2gyzKcHbYfqoXA5xbyGXtQ\">The\nHook Up</a>,\n<a href=\"https://www.youtube.com/feeds/videos.xml?channel_id=UC2gyzKcHbYfqoXA5xbyGXtQ\">RSS</a></li>\n<li><a href=\"https://www.youtube.com/channel/UC67SMH0qLMJ4b4Guud0mKjw\">Home\nAutomation Guy</a>,\n<a href=\"https://www.youtube.com/feeds/videos.xml?channel_id=UC67SMH0qLMJ4b4Guud0mKjw\">RSS</a></li>\n<li><a href=\"https://www.youtube.com/channel/UCrVLgIniVg6jW38uVqDRIiQ\">Everything\nSmart Home</a>,\n<a href=\"https://www.youtube.com/feeds/videos.xml?channel_id=UCrVLgIniVg6jW38uVqDRIiQ\">RSS</a></li>\n<li><a href=\"https://www.youtube.com/channel/UCtQpGuWY5sTUqrED4SgScVA\">Smart\nSolutions for Home</a>,\n<a href=\"https://www.youtube.com/feeds/videos.xml?channel_id=UCtQpGuWY5sTUqrED4SgScVA\">RSS</a></li>\n<li><a href=\"https://www.youtube.com/channel/UCgWGycid4Pq0htjaHB1oc2g\">Smart\nHome Circle</a>,\n<a href=\"https://www.youtube.com/feeds/videos.xml?channel_id=UCgWGycid4Pq0htjaHB1oc2g\">RSS</a></li>\n<li><a href=\"https://www.youtube.com/channel/UCVtQ4AOSmCFUuvixddYiSxw\">Smart\nHome Junkie</a>,\n<a href=\"https://www.youtube.com/feeds/videos.xml?channel_id=UCVtQ4AOSmCFUuvixddYiSxw\">RSS</a></li>\n</ul>\n<h1 id=\"home-assistant\">Home Assistant</h1>\n<p>The first thing we\'ll need is something to control it all. Something\nwill allow us to control our homes without requiring the cloud.</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Home_Assistant\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Home_Assistant</a> From\nWikipedia, the free encyclopedia</p>\n<p>Home Assistant is free and open-source software for home automation,\ndesigned to be an Internet of things (IoT) ecosystem-independent\nintegration platform and central control system for smart home devices,\nwith a focus on local control and privacy. It can be accessed through a\nweb-based user interface, by using companion apps for Android and iOS,\nor by voice commands via a supported virtual assistant, such as Google\nAssistant or Amazon Alexa, and their own \"Assist\" (built-in local voice\nassistant).</p>\n<p>The Home Assistant software application is installed as a computer\nappliance. After installation, it will act as a central control system\nfor home automation (commonly called a smart home hub), that has the\npurpose of controlling IoT connectivity technology devices, software,\napplications and services from third-parties via modular integration\ncomponents, including native integration components for common wireless\ncommunication protocols such as Bluetooth, Thread, Zigbee, and Z-Wave\n(used to create local personal area networks with small low-power\ndigital radios). Home Assistant as such supports controlling devices and\nservices connected via either open and proprietary ecosystems as long\nthey provide public access via some kind of Open API or MQTT for\nthird-party integrations over the local area network or the\nInternet.</p>\n<p>Information from all devices and their attributes (entities) that the\napplication sees can be used and controlled from within scripts trigger\nautomation using scheduling and \"blueprint\" subroutines, e.g. for\ncontrolling lighting, climate, entertainment systems and home\nappliances.</p>\n<h2 id=\"summary\">Summary</h2>\n<ul>\n<li>Original author(s): Paulus Schoutsen</li>\n<li>Developer(s): Home Assistant Core Team and Community</li>\n<li>Initial release: 17 September 2013</li>\n<li>Repository:\n<a href=\"https://github.com/home-assistant\">https://github.com/home-assistant</a></li>\n<li>Written in: Python (Python 3.11)</li>\n<li>Operating system: Software appliance / Virtual appliance\n(Linux)</li>\n<li>Platform: ARM, ARM64, IA-32 (x86), and x64 (x86-64)</li>\n<li>Type: Home automation, smart home technology, Internet of things,\ntask automator</li>\n<li>License: Apache License (free and open-source)</li>\n<li>Website:\n<a href=\"https://www.home-assistant.io\">https://www.home-assistant.io</a></li>\n</ul>\n<p>The following is taken from the\n<a href=\"https://www.home-assistant.io/getting-started/concepts-terminology/\">Concepts\nand terminology</a> on the Home Assistant website. It is reproduced here\nunder the\n<a href=\"https://github.com/home-assistant/home-assistant.io?tab=License-1-ov-file#readme\">creative\ncommons Attribution-NonCommercial-ShareAlike 4.0 International\nLicense</a></p>\n<h2 id=\"integrations\">Integrations</h2>\n<p>Integrations are pieces of software that allow Home Assistant to\nconnect to other software and platforms. For example, a product by\nPhilips called Hue would use the Philips Hue term integration and allow\nHome Assistant to talk to the hardware controller Hue Bridge. Any Home\nAssistant compatible term devices connected to the Hue Bridge would\nappear in Home Assistant as <a href=\"#devices\">devices</a>.</p>\n<p><a\nhref=\"https://hackerpublicradio.org/eps/hpr4099/hpr4099/integrations-new.png\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr4099/hpr4099/integrations-new_thumbnail.png\"\ntitle=\"Click on the thumbnail to see the full picture\"\nalt=\"Integrations\" /></a></p>\n<p>For a full list of compatible term integrations, refer to the <a\nhref=\"https://www.home-assistant.io/integrations\">integrations</a>\ndocumentation.</p>\n<p>Once an term integration has been added, the hardware and/or data are\nrepresented in Home Assistant as <a href=\"#devices\">devices and\nentities</a>.</p>\n<h2 id=\"entities\">Entities</h2>\n<p>Entities are the basic building blocks to hold data in Home\nAssistant. An term entity represents a term sensor, actor, or function\nin Home Assistant. Entities are used to monitor physical properties or\nto control other term entities. An term entity is usually part of a term\ndevice or a term service. Entities have term states.</p>\n<h2 id=\"devices\">Devices</h2>\n<p>Devices are a logical grouping for one or more term entities. A term\ndevice may represent a physical term device, which can have one or more\nsensors. The sensors appear as entities associated with the term device.\nFor example, a motion sensor is represented as a term device. It may\nprovide motion detection, temperature, and light levels as term\nentities. Entities have states such as <em>detected</em> when motion is\ndetected and <em>clear</em> when there is no motion.</p>\n<p><a\nhref=\"https://hackerpublicradio.org/eps/hpr4099/hpr4099/home-assistant-device_01.png\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr4099/hpr4099/home-assistant-device_01_thumbnail.png\"\ntitle=\"Click on the thumbnail to see the full picture\"\nalt=\"Home Assistant device\" /></a></p>\n<p>Devices and entities are used throughout Home Assistant. To name a\nfew examples:</p>\n<ul>\n<li><a\nhref=\"https://www.home-assistant.io/getting-started/onboarding_dashboard/\">Dashboards</a>\ncan show a state of an term entity. For example, if a light is on or\noff.</li>\n<li>An <a href=\"#automations\">automation</a> can be triggered from a\nstate change on an term entity. For example, a motion sensor entity\ndetects motion and triggers a light to turn on.</li>\n<li>A predefined color and brightness setting for a light saved as a <a\nhref=\"#scenes\">scene</a>.</li>\n</ul>\n<p><a\nhref=\"https://hackerpublicradio.org/eps/hpr4099/hpr4099/home-assistant-device_02.png\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr4099/hpr4099/home-assistant-device_02_thumbnail.png\"\ntitle=\"Click on the thumbnail to see the full picture\"\nalt=\"Home Assistant device\" /></a></p>\n<h2 id=\"areas\">Areas</h2>\n<p>An area in Home Assistant is a logical grouping of term devices and\nterm entities that are meant to match areas (or rooms) in the physical\nworld: your home. For example, the <code>living room</code> area groups\ndevices and entities in your living room. Areas allow you to target\nservice calls at an entire group of devices. For example, turning off\nall the lights in the living room. Locations within your home such as\nliving room, dance floor, etc. Areas can be assigned to term floors.\nAreas can also be used for automatically generated cards, such as the <a\nhref=\"https://www.home-assistant.io/dashboards/area/\">Area card</a>.</p>\n<h2 id=\"automations\">Automations</h2>\n<p>A set of repeatable term actions that can be set up to run\nautomatically. Automations are made of three key components:</p>\n<ol type=\"1\">\n<li>Triggers - events that start an term automation. For example, when\nthe sun sets or a motion sensor is activated.</li>\n<li>Conditions - optional tests that must be met before an term action\ncan be run. For example, if someone is home.</li>\n<li>Actions - interact with term devices such as turn on a light.</li>\n</ol>\n<p>To learn the basics about term automations, refer to the <a\nhref=\"https://www.home-assistant.io/docs/automation/basics/\">automation\nbasics</a> page or try <a\nhref=\"https://www.home-assistant.io/getting-started/automation\">creating\nan automation</a> yourself.</p>\n<p><a\nhref=\"https://hackerpublicradio.org/eps/hpr4099/hpr4099/automation-editor.png\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr4099/hpr4099/automation-editor_thumbnail.png\"\ntitle=\"Click on the thumbnail to see the full picture\"\nalt=\"Automations\" /></a></p>\n<h2 id=\"scripts\">Scripts</h2>\n<p>Similar to term automations, scripts are repeatable term actions that\ncan be run. The difference between term scripts and term automations is\nthat term scripts do not have triggers. This means that term scripts\ncannot automatically run unless they are used in an term automations.\nScripts are particularly useful if you perform the same term actions in\ndifferent term automations or trigger them from a dashboard. For\ninformation on how to create term scripts, refer to the <a\nhref=\"https://www.home-assistant.io/integrations/script/\">scripts</a>\ndocumentation.</p>\n<p><a\nhref=\"https://hackerpublicradio.org/eps/hpr4099/hpr4099/script_01.png\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr4099/hpr4099/script_01_thumbnail.png\"\ntitle=\"Click on the thumbnail to see the full picture\"\nalt=\"Scripts\" /></a></p>\n<h2 id=\"scenes\">Scenes</h2>\n<p>Scenes allow you to create predefined settings for your term devices.\nSimilar to a driving mode on phones, or driver profiles in cars, it can\nchange an environment to suit you. For example, your <em>watching\nfilms</em> term scene may dim the lighting, switch on the TV and\nincrease its volume. This can be saved as a term scene and used without\nhaving to set individual term devices every time.</p>\n<p>To learn how to use term scenes, refer to the <a\nhref=\"https://www.home-assistant.io/integrations/scene/\">scene</a>\ndocumentation.</p>\n<p><a\nhref=\"https://hackerpublicradio.org/eps/hpr4099/hpr4099/scene_02.png\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr4099/hpr4099/scene_02_thumbnail.png\"\ntitle=\"Click on the thumbnail to see the full picture\"\nalt=\"Scenes\" /></a></p>\n<h2 id=\"add-ons\">Add-ons</h2>\n<p>Depending on your <a\nhref=\"https://www.home-assistant.io/installation\">installation type</a>,\nyou can install third party add-ons. Add-ons are usually apps that can\nbe run with Home Assistant but provide a quick and easy way to install,\nconfigure, and run within Home Assistant. Add-ons provide additional\nfunctionality whereas term integrations connect Home Assistant to other\napps.</p>\n<p><a\nhref=\"https://hackerpublicradio.org/eps/hpr4099/hpr4099/add-ons.png\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr4099/hpr4099/add-ons_thumbnail.png\"\ntitle=\"Click on the thumbnail to see the full picture\"\nalt=\"Add-ons\" /></a></p>\n',30,125,0,'CC-BY-NC-SA','Home Automation, Internet of Things, IOT, Home Assistant, HA',0,0,1),
(4102,'2024-04-23','Re:HPR 3133 More MPV Quick Tips',325,'Archer72 chats about capture of extensive MPV history','<h2 id=\"mpv-resources\">MPV resources</h2>\n<p><a href=\"https://github.com/stax76/awesome-mpv\"\ntitle=\"Awesome mpv resources on Github\">Awesome mpv resources on\nGithub</a></p>\n<p><a href=\"https://github.com/Shashank066/mpv-folder-history\"\ntitle=\"MPV folder history on Github\">MPV folder history on\nGithub</a></p>\n<h2 id=\"my-github\">My github</h2>\n<p><a\nhref=\"https://github.com/ricemark20/excessive-history-with-titles.lua\"\ntitle=\"MPV History using Lua on my Github page\">MPV History using Lua on\nmy Github page</a></p>\n<h2 id=\"hpr3133-quick-tip---using-mpv-with-youtube-links\">hpr3133 ::\nQuick tip - Using MPV with Youtube links</h2>\n<p>I give a quick tip on shortcut keys for watching Youtube or other\nvideo sites in MPV</p>\n<p><a href=\"https://hackerpublicradio.org/eps/hpr3133/index.html\"\ntitle=\"hpr3133 :: Quick tip - Using MPV\">hpr3133 :: Quick tip - Using\nMPV</a></p>\n<h2 id=\"my-mpv-history-excerpt\">My MPV History excerpt</h2>\n<p><a\nhref=\"https://hackerpublicradio.org/eps/hpr4102/hpr4102/history.txt\"\ntitle=\"My MPV History excerpt\">My MPV History excerpt</a></p>\n',318,0,0,'CC-BY-SA','Media, Video',0,0,1),
(4351,'2025-04-07','HPR Community News for March 2025',6216,'HPR Volunteers talk about shows released and comments posted in March 2025','<h2>New hosts</h2>\n<p>\nWelcome to our new host: <br />\n\n    <a href=\"https://hackerpublicradio.org/correspondents/0443.html\" target=\"_blank\">Marc W. Abel</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/hpr4326/index.html\" target=\"_blank\">4326</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2025-03-03</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4326/index.html\" target=\"_blank\">HPR Community News for February 2025</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/hpr4327/index.html\" target=\"_blank\">4327</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2025-03-04</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4327/index.html\" target=\"_blank\">Chatting with Sgoti</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/hpr4328/index.html\" target=\"_blank\">4328</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2025-03-05</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4328/index.html\" target=\"_blank\">Use SELinux the easy way</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/hpr4329/index.html\" target=\"_blank\">4329</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2025-03-06</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4329/index.html\" target=\"_blank\">Maintaining The Remote System</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0436.html\" target=\"_blank\">hairylarry</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr4330/index.html\" target=\"_blank\">4330</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2025-03-07</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4330/index.html\" target=\"_blank\">GIMP: Fixing Photos</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/hpr4331/index.html\" target=\"_blank\">4331</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2025-03-10</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4331/index.html\" target=\"_blank\">Re-inventing the light switch</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/hpr4332/index.html\" target=\"_blank\">4332</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2025-03-11</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4332/index.html\" target=\"_blank\">Top 5 mistakes every new terminal user makes</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/hpr4333/index.html\" target=\"_blank\">4333</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2025-03-12</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4333/index.html\" target=\"_blank\">A Radically Transparent Computer Without Complex VLSI</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0443.html\" target=\"_blank\">Marc W. Abel</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr4334/index.html\" target=\"_blank\">4334</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2025-03-13</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4334/index.html\" target=\"_blank\">24-25 New Years Eve show episode 3</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/hpr4335/index.html\" target=\"_blank\">4335</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2025-03-14</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4335/index.html\" target=\"_blank\">Responce to Antoin\'s H P R 4 3 1 3 </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/hpr4336/index.html\" target=\"_blank\">4336</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2025-03-17</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4336/index.html\" target=\"_blank\">The Everything-I-Know 20-minutes Show</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0441.html\" target=\"_blank\">Antoine</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr4337/index.html\" target=\"_blank\">4337</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2025-03-18</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4337/index.html\" target=\"_blank\">Open Web UI</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/hpr4338/index.html\" target=\"_blank\">4338</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2025-03-19</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4338/index.html\" target=\"_blank\">328eforth</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/hpr4339/index.html\" target=\"_blank\">4339</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2025-03-20</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4339/index.html\" target=\"_blank\">Review of the YR01 smart lock</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/hpr4340/index.html\" target=\"_blank\">4340</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2025-03-21</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4340/index.html\" target=\"_blank\">Playing Civilization IV, Part 7</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/hpr4341/index.html\" target=\"_blank\">4341</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2025-03-24</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4341/index.html\" target=\"_blank\">Transferring Large Data Sets</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0436.html\" target=\"_blank\">hairylarry</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr4342/index.html\" target=\"_blank\">4342</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2025-03-25</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4342/index.html\" target=\"_blank\">How I use Git to blog on the web and gopherspace</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/hpr4343/index.html\" target=\"_blank\">4343</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2025-03-26</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4343/index.html\" target=\"_blank\">Interviewing the Redot engine Founder</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/hpr4344/index.html\" target=\"_blank\">4344</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2025-03-27</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4344/index.html\" target=\"_blank\">24-25 New Years Eve show episode 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/hpr4345/index.html\" target=\"_blank\">4345</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2025-03-28</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4345/index.html\" target=\"_blank\">Android 2025</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/hpr4346/index.html\" target=\"_blank\">4346</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2025-03-31</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4346/index.html\" target=\"_blank\">A brief review of the Pinetab 2</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0297.html\" target=\"_blank\">Swift110</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\n6 previous shows:</p>\n<ul>\n<li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3967/index.html#comments\" target=\"_blank\">hpr3967</a></strong>\n(2023-10-17) \"<em>Unsolicited thoughts on running open source software projects</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0399.html\" target=\"_blank\">dnt</a>.<br/>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps/hpr3967/index.html#comment_4241\" target=\"_blank\">Comment 1</a>:\nAntoine on 2025-03-01:\n\"My comment about this show\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4142/index.html#comments\" target=\"_blank\">hpr4142</a></strong>\n(2024-06-18) \"<em>A Shared Shell History With Atuin</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0432.html\" target=\"_blank\">mnw</a>.<br/>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps/hpr4142/index.html#comment_4261\" target=\"_blank\">Comment 2</a>:\nWindigo on 2025-03-12:\n\"Appreciate the overview\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4276/index.html#comments\" target=\"_blank\">hpr4276</a></strong>\n(2024-12-23) \"<em>PWNED</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/hpr4276/index.html#comment_4244\" target=\"_blank\">Comment 2</a>:\noperat0r on 2025-03-02:\n\"not a robot\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4321/index.html#comments\" target=\"_blank\">hpr4321</a></strong>\n(2025-02-24) \"<em>Crux Linux</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/hpr4321/index.html#comment_4250\" target=\"_blank\">Comment 1</a>:\ndnt on 2025-03-05:\n\"Messing up\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4323/index.html#comments\" target=\"_blank\">hpr4323</a></strong>\n(2025-02-26) \"<em>Good Samaritan laws, Duty to rescue in the Netherlands</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/hpr4323/index.html#comment_4251\" target=\"_blank\">Comment 1</a>:\nSome Guy on the Internet on 2025-03-05:\n\"Great show.\"</li>\n<li>\n<a href=\"https://hackerpublicradio.org/eps/hpr4323/index.html#comment_4252\" target=\"_blank\">Comment 2</a>:\nAntoine on 2025-03-05:\n\"And in Brazil\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4325/index.html#comments\" target=\"_blank\">hpr4325</a></strong>\n(2025-02-28) \"<em>Two Software I use- Futo Keyboard and Inoreader</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0441.html\" target=\"_blank\">Antoine</a>.<br/>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps/hpr4325/index.html#comment_4242\" target=\"_blank\">Comment 1</a>:\narcher72 on 2025-03-02:\n\"FUTO Keyboard\"</li>\n<li>\n<a href=\"https://hackerpublicradio.org/eps/hpr4325/index.html#comment_4243\" target=\"_blank\">Comment 2</a>:\nAntoine on 2025-03-02:\n\"@#1 My setup\"</li></ul><br/>\n</li></ul>\n<h3>This month\'s shows</h3>\n<p>There are 19 comments on 9 of this month\'s shows:</p>\n<ul><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4326/index.html#comments\" target=\"_blank\">hpr4326</a></strong>\n(2025-03-03) \"<em>HPR Community News for February 2025</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/hpr4326/index.html#comment_4249\" target=\"_blank\">Comment 1</a>:\ndnt on 2025-03-05:\n\"SGOTI\'s mop\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4328/index.html#comments\" target=\"_blank\">hpr4328</a></strong>\n(2025-03-05) \"<em>Use SELinux the easy way</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/hpr4328/index.html#comment_4253\" target=\"_blank\">Comment 1</a>:\nlyunpaw@gmail.com on 2025-03-07:\n\"Time to brick the box.\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4328/index.html#comment_4257\" target=\"_blank\">Comment 2</a>:\nKlaatu on 2025-03-10:\n\"This advice comes with no warranty\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4329/index.html#comments\" target=\"_blank\">hpr4329</a></strong>\n(2025-03-06) \"<em>Maintaining The Remote System</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0436.html\" target=\"_blank\">hairylarry</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr4329/index.html#comment_4246\" target=\"_blank\">Comment 1</a>:\nKen Fallon on 2025-03-04:\n\"Have you considered using Syncthing\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4330/index.html#comments\" target=\"_blank\">hpr4330</a></strong>\n(2025-03-07) \"<em>GIMP: Fixing Photos</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/hpr4330/index.html#comment_4202\" target=\"_blank\">Comment 1</a>:\nKen Fallon on 2025-01-15:\n\"Great Tips\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4330/index.html#comment_4255\" target=\"_blank\">Comment 2</a>:\nRother on 2025-03-08:\n\"playback \"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4330/index.html#comment_4256\" target=\"_blank\">Comment 3</a>:\nKevin O&#39;Brien on 2025-03-08:\n\"Processing\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4330/index.html#comment_4259\" target=\"_blank\">Comment 4</a>:\nHenrik Hemrin on 2025-03-11:\n\"Quick access to external photo editing tools from digiKam thumbnail view. \"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4330/index.html#comment_4260\" target=\"_blank\">Comment 5</a>:\nKevin O&#39;Brien on 2025-03-11:\n\"Good tip\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4331/index.html#comments\" target=\"_blank\">hpr4331</a></strong>\n(2025-03-10) \"<em>Re-inventing the light switch</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0403.html\" target=\"_blank\">Lee</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr4331/index.html#comment_4245\" target=\"_blank\">Comment 1</a>:\nKen Fallon on 2025-03-03:\n\"undocumented network exploit\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4332/index.html#comments\" target=\"_blank\">hpr4332</a></strong>\n(2025-03-11) \"<em>Top 5 mistakes every new terminal user makes</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/hpr4332/index.html#comment_4247\" target=\"_blank\">Comment 1</a>:\nKen Fallon on 2025-03-04:\n\"Send this back to my past self\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4333/index.html#comments\" target=\"_blank\">hpr4333</a></strong>\n(2025-03-12) \"<em>A Radically Transparent Computer Without Complex VLSI</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0443.html\" target=\"_blank\">Marc W. Abel</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr4333/index.html#comment_4248\" target=\"_blank\">Comment 1</a>:\nKen Fallon on 2025-03-04:\n\"Everyone needs to listen to this show\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4333/index.html#comment_4254\" target=\"_blank\">Comment 2</a>:\nMarc on 2025-03-07:\n\"Reply to comment (or if a volunteer can edit it directly instead, that\'s fine)\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4333/index.html#comment_4263\" target=\"_blank\">Comment 3</a>:\npaulj on 2025-03-19:\n\"Dauug\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4333/index.html#comment_4266\" target=\"_blank\">Comment 4</a>:\nMarc on 2025-03-24:\n\"Hardware build road map\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4333/index.html#comment_4267\" target=\"_blank\">Comment 5</a>:\nCeleste on 2025-03-24:\n\"About the software part reliability\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4339/index.html#comments\" target=\"_blank\">hpr4339</a></strong>\n(2025-03-20) \"<em>Review of the YR01 smart lock</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/hpr4339/index.html#comment_4258\" target=\"_blank\">Comment 1</a>:\nKen Fallon on 2025-03-11:\n\"Unfortunately mine turned into a project.\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4339/index.html#comment_4265\" target=\"_blank\">Comment 2</a>:\nTrey on 2025-03-20:\n\"Only one trip to the hardware store?\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4342/index.html#comments\" target=\"_blank\">hpr4342</a></strong>\n(2025-03-25) \"<em>How I use Git to blog on the web and gopherspace</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/hpr4342/index.html#comment_4268\" target=\"_blank\">Comment 1</a>:\noxo on 2025-03-25:\n\"Cool!\"</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://lists.hackerpublicradio.com/mailman/listinfo/hpr\" target=\"_blank\">Mailing List</a>\nwhich is open to all HPR listeners and contributors. The discussions are open\nand available on the HPR server under <a href=\"https://lists.hackerpublicradio.com/pipermail/hpr\">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/2025-March/thread.html\" target=\"_blank\">https://lists.hackerpublicradio.com/pipermail/hpr/2025-March/thread.html</a>\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',159,47,1,'CC-BY-SA','Community News',0,0,1),
(4103,'2024-04-24','What\'s in my bag?',317,'An examination of the bag I use when out on the road','<p>Laptop:<br />\n<a\nhref=\"https://www.amazon.co.uk/Estarer-Messenger-Resistant-Briefcase-Computer-Grey/dp/B07C55JGX8/ref=asc_df_B07C55JGX8/?tag=googshopuk-21&amp;linkCode=df0&amp;hvadid=309903005216&amp;hvpos=&amp;hvnetw=g&amp;hvrand=5858371209724178411&amp;hvpone=&amp;hvptwo=&amp;hvqmt=&amp;hvdev=m&amp;hvdvcmdl=&amp;hvlocint=&amp;hvlocphy=1006699&amp;hvtargid=pla-440104378496&amp;psc=1&amp;mcid=6854dffb47f734f686d94c1a987cce5b\">Estarer\nMessenger Resistant Briefcase Computer Grey</a></p>\n<p>Power bank<br />\n<a\nhref=\"https://www.amazon.co.uk/INIU-High-Speed-Flashlight-Powerbank-Compatible/dp/B07PNL5STG/ref=asc_df_B07PNL5STG/?tag=googshopuk-21&amp;linkCode=df0&amp;hvadid=218223787868&amp;hvpos=&amp;hvnetw=g&amp;hvrand=1689495449119891060&amp;hvpone=&amp;hvptwo=&amp;hvqmt=&amp;hvdev=m&amp;hvdvcmdl=&amp;hvlocint=&amp;hvlocphy=1006699&amp;hvtargid=pla-719819848758&amp;psc=1&amp;mcid=693b0ad7a90f346b9b6ccddaa1232fcc\">INIU\nHigh Speed Flashlight Powerbank Compatible</a></p>\n',430,23,0,'CC-BY-SA','Bag, drawing, comics,toolkit',0,0,1),
(4104,'2024-04-25','Introduction to jq - part 1',1115,'The JSON data format, and using the jq utility to process it','<article>\n<h2 id=\"introduction\">Introduction</h2>\n<p>This is the start of a short series about the <a\nhref=\"https://en.wikipedia.org/wiki/JSON\">JSON data format</a>, and how\nthe command-line tool <a\nhref=\"https://en.wikipedia.org/wiki/Jq_(programming_language)\"><code>jq</code></a>\ncan be used to process such data. The plan is to make an open series to\nwhich others may contribute their own experiences using this tool.</p>\n<p>The <code>jq</code> command is described on the <a\nhref=\"https://jqlang.github.io/jq/\">GitHub page</a> as follows:</p>\n<blockquote>\n<p>jq is a lightweight and flexible command-line JSON processor</p>\n</blockquote>\n<p>…and as:</p>\n<blockquote>\n<p><code>jq</code> is like sed for <code>JSON</code> data - you can use\nit to slice and filter and map and transform structured data with the\nsame ease that <code>sed</code>, <code>awk</code>, <code>grep</code> and\nfriends let you play with text.</p>\n</blockquote>\n<p>The <code>jq</code> tool is controlled by a programming language\n(also referred to as <code>jq</code>), which is very powerful. This\nseries will mainly deal with this.</p>\n<h2 id=\"json-javascript-object-notation\">JSON (JavaScript Object\nNotation)</h2>\n<p>To begin we will look at <code>JSON</code> itself. It is defined on\nthe <a href=\"https://en.wikipedia.org/wiki/JSON\">Wikipedia page</a>\nthus:</p>\n<blockquote>\n<p><code>JSON</code> is an open standard file format and data\ninterchange format that uses human-readable text to store and transmit\ndata objects consisting of attribute–value pairs and arrays (or other\nserializable values). It is a common data format with diverse uses in\nelectronic data interchange, including that of web applications with\nservers.</p>\n</blockquote>\n<p>The syntax of JSON is defined by <a\nhref=\"https://datatracker.ietf.org/doc/html/rfc8259\">RFC 8259</a> and by\n<a\nhref=\"https://www.ecma-international.org/publications-and-standards/standards/ecma-404/\">ECMA-404</a>.\nIt is fairly simple in principle but has some complexity.</p>\n<p>JSON’s basic data types are (edited from the Wikipedia page):</p>\n<ul>\n<li><p><em>Number</em>: a signed decimal number that may contain a\nfractional part and may use exponential E notation, but cannot include\nnon-numbers. (<strong>NOTE</strong>: Unlike what I said in the audio,\nthere are two values representing non-numbers: <code>\'nan\'</code> and\ninfinity: <code>\'infinity\'</code>.</p></li>\n<li><p><em>String</em>: a sequence of zero or more Unicode characters.\nStrings are delimited with double quotation marks and support a\nbackslash escaping syntax.</p></li>\n<li><p><em>Boolean</em>: either of the values <code>true</code> or\n<code>false</code></p></li>\n<li><p><em>Array</em>: an ordered list of zero or more elements, each of\nwhich may be of any type. Arrays use square bracket notation with\ncomma-separated elements.</p></li>\n<li><p><em>Object</em>: a collection of name–value pairs where the names\n(also called keys) are strings. Objects are delimited with curly\nbrackets and use commas to separate each pair, while within each pair\nthe colon <code>\':\'</code> character separates the key or name from its\nvalue.</p></li>\n<li><p><em>null</em>: an empty value, using the word\n<code>null</code></p></li>\n</ul>\n<h3 id=\"examples\">Examples</h3>\n<p>These are the basic data types listed above (same order):</p>\n<pre><code>42\n&quot;HPR&quot;\ntrue\n[&quot;Hacker&quot;,&quot;Public&quot;,&quot;Radio&quot;]\n{ &quot;firstname&quot;: &quot;John&quot;, &quot;lastname&quot;: &quot;Doe&quot; }\nnull</code></pre>\n<h2 id=\"jq\"><code>jq</code></h2>\n<p>From the Wikipedia page:</p>\n<blockquote>\n<p><code>jq</code> was created by Stephen Dolan, and released in October\n2012. It was described as being “like sed for JSON data”. Support for\nregular expressions was added in jq version 1.5.</p>\n</blockquote>\n<h3 id=\"obtaining-jq\">Obtaining <code>jq</code></h3>\n<p>This tool is available in most of the Linux repositories. For\nexample, on Debian and Debian-based releases you can install it\nwith:</p>\n<pre><code>sudo apt install jq</code></pre>\n<p>See the <a href=\"https://jqlang.github.io/jq/download/\">download\npage</a> for the definitive information about available versions.</p>\n<h3 id=\"manual-for-jq\">Manual for <code>jq</code></h3>\n<p>There is a detailed manual describing the use of the <code>jq</code>\nprogramming language that is used to filter JSON data. It can be found\nat <a href=\"https://jqlang.github.io/jq/manual/\"\nclass=\"uri\">https://jqlang.github.io/jq/manual/</a>.</p>\n<h2 id=\"the-hpr-statistics-page\">The HPR statistics page</h2>\n<p>This is a collection of statistics about HPR, in the form of JSON\ndata. We will use this as a moderately detailed example in this\nepisode.</p>\n<p>A link to this page may be found on the HPR <a\nhref=\"https://hub.hackerpublicradio.org/calendar.php\">Calendar page</a>\nclose to the foot of the page under the heading <a\nhref=\"https://hub.hackerpublicradio.org/calendar.php#workflow\"><code>Workflow</code></a>.\nThe link to the JSON statistics is <a\nhref=\"https://hub.hackerpublicradio.org/stats.json\"\nclass=\"uri\">https://hub.hackerpublicradio.org/stats.json</a>.</p>\n<p>If you click on this you should see the JSON data formatted for you\nby your browser. Different browsers represent this in different\nways.</p>\n<p>You can also collect and display this data from the command line,\nusing <code>jq</code> of course:</p>\n<pre><code>$ curl -s https://hub.hackerpublicradio.org/stats.json | jq &#39;.&#39; | nl -w3 -s&#39;  &#39;\n  1  {\n  2    &quot;stats_generated&quot;: 1712785509,\n  3    &quot;age&quot;: {\n  4      &quot;start&quot;: &quot;2005-09-19T00:00:00Z&quot;,\n  5      &quot;rename&quot;: &quot;2007-12-31T00:00:00Z&quot;,\n  6      &quot;since_start&quot;: {\n  7        &quot;total_seconds&quot;: 585697507,\n  8        &quot;years&quot;: 18,\n  9        &quot;months&quot;: 6,\n 10        &quot;days&quot;: 28\n 11      },\n 12      &quot;since_rename&quot;: {\n 13        &quot;total_seconds&quot;: 513726307,\n 14        &quot;years&quot;: 16,\n 15        &quot;months&quot;: 3,\n 16        &quot;days&quot;: 15\n 17      }\n 18    },\n 19    &quot;shows&quot;: {\n 20      &quot;total&quot;: 4626,\n 21      &quot;twat&quot;: 300,\n 22      &quot;hpr&quot;: 4326,\n 23      &quot;duration&quot;: 7462050,\n 24      &quot;human_duration&quot;: &quot;0 Years, 2 months, 27 days, 8 hours, 47 minutes and 30 seconds&quot;\n 25    },\n 26    &quot;hosts&quot;: 356,\n 27    &quot;slot&quot;: {\n 28      &quot;next_free&quot;: 8,\n 29      &quot;no_media&quot;: 0\n 30    },\n 31    &quot;workflow&quot;: {\n 32      &quot;UPLOADED_TO_IA&quot;: &quot;2&quot;,\n 33      &quot;RESERVE_SHOW_SUBMITTED&quot;: &quot;27&quot;\n 34    },\n 35    &quot;queue&quot;: {\n 36      &quot;number_future_hosts&quot;: 7,\n 37      &quot;number_future_shows&quot;: 28,\n 38      &quot;unprocessed_comments&quot;: 0,\n 39      &quot;submitted_shows&quot;: 0,\n 40      &quot;shows_in_workflow&quot;: 15,\n 41      &quot;reserve&quot;: 27\n 42    }\n 43  }</code></pre>\n<p>The <code>curl</code> utility is useful for collecting information\nfrom links like this. I have used the <code>-s</code> option to ensure\nit does not show information about the download process, since it does\nthis by default. The output is piped to <code>jq</code> which displays\nthe data in a “pretty printed” form by default, as you see. In this case\nI have given <code>jq</code> a minimal filter which causes what it\nreceives to be printed. The filter is simply <code>\'.\'</code>. I have\npiped the formatted JSON through the <code>nl</code> command to get line\nnumbers for reference.</p>\n<p>The JSON shown here consists of nested JSON <em>objects</em>. The\nfirst opening brace and the last at line 43 define the whole thing as a\nsingle object.</p>\n<p>Briefly, the object contains the following:</p>\n<ul>\n<li>a number called <code>stats_generated</code> (line 2)</li>\n<li>an object called <code>age</code> on lines 3-18; this object\ncontains two strings and two objects</li>\n<li>an object called <code>shows</code> on lines 19-25</li>\n<li>a number called <code>hosts</code> on line 26</li>\n<li>an object called <code>slot</code> on lines 27-30</li>\n<li>an object called <code>workflow</code> on lines 31-34</li>\n<li>an object called <code>queue</code> on lines 35-42</li>\n</ul>\n<p>We will look at ways to summarise and reformat such output in a later\nepisode.</p>\n<h2 id=\"next-episode\">Next episode</h2>\n<p>I will look at some of the options to <code>jq</code> next time,\nthough most of them will be revealed as they become relevant.</p>\n<p>I will also start looking at <code>jq</code> filters in that\nepisode.</p>\n<h2 id=\"links\">Links</h2>\n<ul>\n<li>JSON (JavaScript Object Notation):\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/JSON\">Wikipedia page about\nJSON</a></li>\n<li>Standards:\n<ul>\n<li><a href=\"https://datatracker.ietf.org/doc/html/rfc8259\">RFC8259: The\nJavaScript Object Notation (JSON) Data Interchange Format</a></li>\n<li><a\nhref=\"https://www.ecma-international.org/publications-and-standards/standards/ecma-404/\">ECMA-404:\nThe JSON data interchange syntax</a></li>\n</ul></li>\n</ul></li>\n</ul>\n<ul>\n<li><code>jq</code>:\n<ul>\n<li><a href=\"https://jqlang.github.io/jq/\">GitHub page</a></li>\n<li><a href=\"https://jqlang.github.io/jq/download/\">Downloading\n<code>jq</code></a></li>\n<li><a href=\"https://jqlang.github.io/jq/manual/\">The <code>jq</code>\nmanual</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Jq_(programming_language)\">Wikipedia\npage about the jq programming language</a></li>\n</ul></li>\n</ul>\n<ul>\n<li><a\nhref=\"https://hackerpublicradio.org/correspondents/0201.html\">MrX’s</a>\nshow on using the HPR statistics in JSON: <a\nhref=\"https://hackerpublicradio.org/eps/hpr4089/index.html\">Modifying a\nPython script with some help from ChatGPT</a></li>\n</ul>\n</article>\n',225,0,1,'CC-BY-SA','JSON,JavaScript Object Notation,command line,functional programming language,jq',0,0,1),
(4125,'2024-05-24','Installing Home Assistant Operating System (HAOS), on a x86-64 machine',691,'Method 1: Installing HAOS via Ubuntu booting from a USB flash drive to a generic x86-64 PC','<h1 id=\"introduction\">Introduction</h1>\n<p>This is a follow up episode on Home Assistant (HA), see\n<a href=\"https://hackerpublicradio.org/eps/hpr4099/index.html\">hpr4099\n:: An introduction to Home Assistant (HA)</a> for an explanation of what\nHome Assistant (HA) is, and why you might want to install it.</p>\n<p>The <a href=\"https://www.home-assistant.io/installation/\">Home\nAssistant Installation page</a> offers several different install\nmethods, listed along with the level of difficulty.</p>\n<ul>\n<li>Easiest: Plug and play with Home Assistant Green</li>\n<li>Easy: DIY with Raspberry Pi</li>\n<li>Intermediate: Extend with Home Assistant Yellow</li>\n<li>Hard: Install on other hardware</li>\n<li>Expert: Advanced installation methods</li>\n</ul>\n<p>Today we will be installing Home Assistant Operating System (HAOS),\non a x86-64 machine.</p>\n<blockquote>\n<p>Home Assistant can be repurposed and installed on various hardware,\nsuch as an Odroid or a generic x86-64 machine. The Home Assistant\nOperating System allows you to install Home Assistant on these devices\neven if you have little to no Linux experience.</p>\n</blockquote>\n<p>We are going to my HP t610 Flexible Thin Client, which has a 16GB\nSATA Flash Drive, and I upgraded it to 16G of Ram.</p>\n<p><strong>Note</strong> that this will install Home Assistant Operating\nSystem (HAOS) as a computer appliance. That means that it will run a\nbare OS with the various components in a customised docker setup. It\nwill take over the entire computer, and requires secure boot to be\ndisabled.</p>\n<p>On the HP t610 Flexible Thin Client, that involves pressing \"Esc\" at\nboot to get to the bootup menu. If that doesn\'t work try pressing \"F10\"\njust after turning on the power.</p>\n<h1 id=\"two-methods-to-install\">Two methods to install</h1>\n<p>HAOS has no integrated installer like you would expect with\n<a href=\"https://en.wikipedia.org/wiki/Linux_distribution#Distro_hopping\">distro\nhopping</a>, but it requires that the image be burned directly onto the\ndisk of the computer itself.</p>\n<p>It has two methods to do this and \"Method 2: Installing HAOS directly\nfrom a boot medium\", is basically take the disk out of the target system\nand attach it to your own computer. The use a burning tool like Balena\nEtcher, or <code>dd</code> to write the image to disk. Much as you would\nburn a sdcard for a raspberry pi. I don\'t have a way to do this so let\'s\ngo with method 1.</p>\n<h2\nid=\"method-1-installing-haos-via-ubuntu-booting-from-a-usb-flash-drive\">Method\n1: Installing HAOS via Ubuntu booting from a USB flash drive</h2>\n<p>Here you download and burn live operating system as you would if you\nwere\n<a href=\"https://en.wikipedia.org/wiki/Linux_distribution#Distro_hopping\">distro\nhopping</a>, the document suggests to use Ubuntu. I tried it but my HP\nt610 Flexible Thin Client didn\'t like it. It also didn\'t like Fedora\ndespite having worked earlier, so I just used\n<a href=\"https://cdimage.debian.org/debian-cd/current-live/amd64/iso-hybrid/debian-live-12.5.0-amd64-lxqt.iso\">Debian\nLXQT</a>.</p>\n<ul>\n<li><a href=\"https://www.debian.org/download\"\nclass=\"uri\">https://www.debian.org/download</a></li>\n<li><a\nhref=\"https://cdimage.debian.org/debian-cd/current-live/amd64/iso-hybrid/debian-live-12.5.0-amd64-lxqt.iso\"\nclass=\"uri\">https://cdimage.debian.org/debian-cd/current-live/amd64/iso-hybrid/debian-live-12.5.0-amd64-lxqt.iso</a></li>\n</ul>\n<p>Now you have Debian running off a usb stick on your target\nmachine.</p>\n<h3\nid=\"steps-to-burn-home-assistant-operating-system-haos-to-disk-on-target\">Steps\nto burn Home Assistant Operating System (HAOS) to disk on target</h3>\n<p>Anything after the \'#\' character is a comment and doesn\'t need to be\ntyped.</p>\n<p><strong>Note</strong> The following steps are optional, and you\nshould only do them if you wish to ssh to the target machine from your\npc.</p>\n<pre><code># Anything after the &#39;#&#39; charachter is a comment and doesn&#39;t need to be typed.\napt install openssh-server  # Install the ssh server on the target\nsystemctl start ssh         # Start it once installed\npasswd user                 # Change the password or you can just use the default which is `live`\nip add                      # Get the IP address of the target\nssh user@ip.of.the.computer # Replace ip.of.the.computer with the actual ip address in the step above</code></pre>\n<p>Open a terminal on the machine, and type the <code>su -</code>\ncommands to get root access on the Debian OS running from the usb drive\non the target machine.</p>\n<pre><code>user@debian:~$ su -\nPassword:\nroot@debian:~#</code></pre>\n<p>Now you are root, the super user admin, you can install the\n<code>wget</code> command using the Debian <code>apt</code> package\nmanager.</p>\n<pre><code>root@debian:~# apt install wget</code></pre>\n<p>Once wget is installed, we can use it to download the latest image\nfrom the\n<a href=\"https://www.home-assistant.io/installation/generic-x86-64\">HAOS\nDownload Page</a>, which is <code>haos_generic-x86-64-12.1.img.xz</code>\nat time of writing.</p>\n<pre><code>root@debian:~# wget https://github.com/home-assistant/operating-system/releases/download/12.1/haos_generic-x86-64-12.1.img.xz</code></pre>\n<p>Now we have the image we are going to write to the disk, but the\nquestion is which disk to write it to.</p>\n<p>Your target PC will be different to mine but the tool\n<code>lsblk</code> is good for showing what is installed and\nmounted.</p>\n<pre><code>root@debian:~# lsblk\nNAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS\nloop0    7:0    0  2.5G  1 loop /usr/lib/live/mount/rootfs/filesystem.squashfs\n                                /run/live/rootfs/filesystem.squashfs\nsda      8:0    0 14.9G  0 disk\n&#x251C;&#x2500;sda1   8:1    0    1M  0 part\n&#x251C;&#x2500;sda2   8:2    0    1G  0 part\n&#x2514;&#x2500;sda3   8:3    0 13.9G  0 part\nsdb      8:16   1 58.6G  0 disk\n&#x251C;&#x2500;sdb1   8:17   1    3G  0 part /usr/lib/live/mount/medium\n&#x2502;                               /run/live/medium\n&#x2514;&#x2500;sdb2   8:18   1    5M  0 part</code></pre>\n<p>The <code>loop0</code> is the mount where Debian is running from,\nwhile the mounted <code>sdb1</code> and <code>sdb2</code> have the word\n<em>live</em> telling us that\'s the actual USB drive we installed Debian\non to.</p>\n<p>While your disk will be different, for me the disk to install it on\nis <code>sda</code>. The partitions <code>sda1</code>,\n<code>sda2</code>, and <code>sda3</code> are left overs from a previous\ninstall. They will be overwritten anyway.</p>\n<p>The drive I will be targeting is therefore known to the system as\n<code>/dev/sda</code></p>\n<p>The <code>dd</code> command will do a disk duplication and writes the\nones and zeros from the <code>if</code> input file, to the\n<code>of</code> output file.</p>\n<p>The command below will take a while and not display anything</p>\n<pre><code>root@debian:~# dd if=haos_generic-x86-64-12.1.img.xz of=/dev/sda\n761949+1 records in\n761949+1 records out\n390118272 bytes (390 MB, 372 MiB) copied, 66.3225 s, 5.9 MB/s</code></pre>\n<p>Plug in an Ethernet cable that is connected to the network. Power the\nsystem on. If you have a screen connected to the Generic x86-64 system,\nafter a minute or so the Home Assistant welcome banner will appear in\nthe console. In the browser of your desktop system, within a few minutes\nyou will be able to reach your new Home Assistant at\n<code>homeassistant.local:8123</code>.</p>\n<h1 id=\"links\">Links</h1>\n<ul>\n<li><a href=\"https://hackerpublicradio.org/eps/hpr4099/index.html\"\nclass=\"uri\">https://hackerpublicradio.org/eps/hpr4099/index.html</a></li>\n<li><a href=\"https://www.home-assistant.io/\"\nclass=\"uri\">https://www.home-assistant.io/</a></li>\n<li><a href=\"https://support.hp.com/us-en/document/c03235347\"\nclass=\"uri\">https://support.hp.com/us-en/document/c03235347</a></li>\n<li><a href=\"https://www.parkytowers.me.uk/thin/hp/t610/\"\nclass=\"uri\">https://www.parkytowers.me.uk/thin/hp/t610/</a></li>\n<li><a href=\"https://www.home-assistant.io/installation/\"\nclass=\"uri\">https://www.home-assistant.io/installation/</a></li>\n<li><a href=\"https://www.home-assistant.io/installation/generic-x86-64\"\nclass=\"uri\">https://www.home-assistant.io/installation/generic-x86-64</a></li>\n<li><a\nhref=\"https://cdimage.debian.org/debian-cd/current-live/amd64/iso-hybrid/\"\nclass=\"uri\">https://cdimage.debian.org/debian-cd/current-live/amd64/iso-hybrid/</a></li>\n</ul>\n',30,125,0,'CC-BY-SA','HA, HAOS, Home Assistant',0,0,1),
(4105,'2024-04-26','My story how I found a cure for my obesity',2340,'A talk about my historical weight gain and what I recently learned so that I now lose weight.','<p>I have been struggling with my body weight since I was 35, and I&#x2019;m\nnow 60.<br />\nI know that not all listeners are familiar with the kilogram as unit of\nmeasurement, but we can use the BMI (Body Mass Index) formula to discuss\nthis. It should be somewhere between 22 and 25 and mine has been 33 for\na long time. A very long time. No matter what I tried.</p>\n<p>Yes, I tried some diets but they only work if you keep doing them. So\nif something does not become normal or easy than at some inevitable\npoint you will stop and gain weight again.<br />\nYes, they talk about changing your life style but any change that is too\ndrastic is bound to fail in the end.</p>\n<p>And then recently I read this book. This absolutely changed my life\nand that is why I am so motivated to tell you all about it.</p>\n<p>Book obesity code, Jason Fung, a Canadian nephrologist (kidney\nspecialist).<br />\nHe is also a functional medicine advocate who promotes a\nlow-carbohydrate high-fat diet and intermittent fasting. But we come\nback to that later.</p>\n<p>Not another diet hype. That is an industry on its own.<br />\nThis is scientific stuff. With lots of links to research papers.<br />\nWith large groups and thoroughly peer reviewed.</p>\n<p>And this does not mean that this story is for everyone.<br />\nThere exist other medical reasons why people gain weight.<br />\nBut, assuming most people start out in life being healthy, then most\npeople gaining weight are not ill.<br />\nSo, if you gain weight, consult your doctor first to rule out any\nmedical reasons.</p>\n<p>Jason Fung noticed that practice didn\'t match with theory.</p>\n<p>Everybody who is given insulin gains weight.<br />\nEven diabetes type 2 people.<br />\nThere are even several scientific studies that proves this. Give people\ninsulin and they will gain weight.</p>\n<p>So what if insulin is the culprit for gaining weight?<br />\nInsulin is a hormone. Its job is to send signals through the body.<br />\nIts use is to allow body cells to absorb nutrients in the blood\nstream.</p>\n<p>Every time you eat the insulin peaks and subsides normally three\ntimes a day.</p>\n<p>Body process called gluconeogenesis. Making fat in the liver for one\nday storage.</p>\n<p>If you eat the body makes insulin. That is normal.<br />\nIf you eat more, the body makes more insulin.<br />\nBody cells adjust to the higher level and become tone deaf to insulin:\nInsulin resistant.<br />\nThis means next time the insulin level needs to be higher.<br />\nAnd higher levels of insulin mean you will gain weight.</p>\n<p>If you eat sugar, it is so easy to break down that it goes\nimmediately into storage, e.g. body fat.</p>\n<p>The thing is, wheat is chemically a long string of sugars. So the\nbody will break it down into sugar and send that too to storage.</p>\n<p>And almost any food we buy these days contains sugar.<br />\nExcept unprocessed foods like vegetables.</p>\n<p>How to lose weight? Well, the body needs to access the fat in\nstorage. So we need to extend not eating until the liver has run dry of\nthe daily dose of liver fat.</p>\n<p>This is very easy. Just extend the daily period that you do not\neat.<br />\nWhen do you not eat? When you sleep. So, skip breakfast. The name says\nit all, you are breaking your fast.</p>\n<p>Drink some coffee (no sugar of course), or tea, or water and try to\nstart eating later in the day.</p>\n<p>And another word for not eating is fasting. But it is a voluntary\nfast!</p>\n<p>So I tried this for one day. Skip breakfast and try to eat it at\nnoon. I mean, what could possibly go wrong, right? The next day I had\nlost some weight. And it was sooo easy! I could say 300 grams but again,\nyour mileage may vary or you have no clue what one gram is, let alone\n300. But that is not the point. The point is that I lost weight! And to\nme this has been super easy.</p>\n<p>So the solution turns out to be:</p>\n<ul>\n<li>extend the time your insulin levels are low. 16, 24 or 36\nhours.</li>\n<li>eat as little sugar as possible.</li>\n</ul>\n<p>Which brings me to food categories.</p>\n<ul>\n<li>carbohydrates. Sugars, wheat, flour</li>\n<li>proteins.</li>\n<li>fats. Oil, etc.</li>\n<li>vitamins and minerals</li>\n<li>fibers</li>\n</ul>\n<p>Average digestion times of</p>\n<ul>\n<li>carbohydrates. 30 minutes. After which you will be hungry again</li>\n<li>proteins: 3-5 hours</li>\n<li>fats. Oil, etc. up to 40 hours</li>\n<li>vitamins and minerals. needed</li>\n<li>fibers. Leave the body</li>\n</ul>\n<p>How has all this theory changed my life and diet?</p>\n<ul>\n<li>I try to start eating at noon, sometimes an hour earlier</li>\n<li>I eat as little carbohydrates as possible. Little to no bread,\ndefinitely no sugar, avoid artificial sweeteners</li>\n<li>my meal at noon is most of the times quark with some fruit for\nflavoring</li>\n<li>evening food:\n<ul>\n<li>Vegetables are good.</li>\n<li>Some meat is good.</li>\n<li>I try to avoid desserts</li>\n</ul></li>\n<li>No eating between meals (this will cause an extra insulin peak I\nwant to avoid)</li>\n</ul>\n<p>Since I started 2 month ago I have on average lost 4 kilograms. It\ncould have been more but then there&#x2019;s the occasional dinner with friends\nand what is bad, but soo good, is unavoidable.</p>\n<p>So, some other stuff that is good to know:</p>\n<p>What&#x2019;s that about exercising?</p>\n<ul>\n<li>Well, we humans, excel at walking and thus wearing out our prey. So\nwalking is good. Everyday for half an hour is great.</li>\n<li>Doing an intensive workout for a minimum of 10 minutes per week is\ngood to keep our cardiovascular system and our brain up to speed</li>\n<li>Can you compensate cookies with sports. Well, every cookie would\ntake you about 2.5 hours of intensive sports, so no, you can not\ncompensate bad eating with sports.</li>\n</ul>\n<p>What&#x2019;s with the calories in are calories out? Studies have proven\nthat this is a false claim. It just doesn\'t work that way.</p>\n<p>What about stress. Well, it turns out that stress leads to heightened\nlevels of the hormones adrenaline and cortisol. And when cortisol rises,\nso too does the insulin levels in your body. So, this simply means that\nstress will lead to weight gain.</p>\n<p>Can I simply drink diet sodas. Well, bummer there, because although\nit diet sodas do not contain calories nor sugars, they will result in a\nrise in your insulin level, so they are not good for loosing weight.</p>\n<p>[The Diary Of A CEO with Steven Bartlett] The Fasting Doctor:\n&#x201C;Fasting Cures Obesity!&#x201D;, This Controversial New Drug Melts Fat, Fasting\nFixes Hormones! Skip Breakfast!</p>\n<p><a\nhref=\"https://podcasts.apple.com/gb/podcast/the-fasting-doctor-fasting-cures-obesity-this/id1291423644\"\nclass=\"uri\">https://podcasts.apple.com/gb/podcast/the-fasting-doctor-fasting-cures-obesity-this/id1291423644</a></p>\n<p>Jason Fung YouTube channel, <a\nhref=\"https://www.youtube.com/watch?v=8RuWp3s6Uxk\"\nclass=\"uri\">https://www.youtube.com/watch?v=8RuWp3s6Uxk</a></p>\n<p>I hope you found this explanation helpful. Have a nice day.</p>\n',369,0,0,'CC-BY-SA','fasting, weight loss, weight gain, insulin, Jason Fung, fasting',0,0,1),
(4112,'2024-05-07','JSON and VENDORS and AUTH ohh my!',1230,'I talk and rant about JSON and Vendors','<p>Some stuff I use to help make APIs</p>\n<p><a\nhref=\"https://github.com/freeload101/Python/blob/master/Python_Includes_RMcCurdy.py\"\nclass=\"uri\">https://github.com/freeload101/Python/blob/master/Python_Includes_RMcCurdy.py</a></p>\n<p>JAMBOREE.rmccurdy.com for burp suite. Have I done a podcast on\nJAMBOREE? I must have... If not I will</p>\n',36,0,1,'CC-BY-SA','programming,python',0,0,1),
(4107,'2024-04-30','Response to HPR #4065',1293,'Shoutout to a shoutout I talk more about what I want in a Framework laptop','<p>Shout out to Noodles thanks again for responding to my previous post\n#4045 it was awesome to get feedback.</p>\n<p>Being able to upgrade my 2010 Macbook which is an Apple device and\nhow impressive that was. Sadly that upgradability is a thing of the\npast.</p>\n',297,0,0,'CC-BY-SA','linux, framework, laptop, computers',0,0,1),
(4108,'2024-05-01','What\'s in my bag',600,'I describe what\'s in my bag','<p>I talk about what\'s in my bag</p>\n',297,0,0,'CC-BY-SA','bag, linux, laptop, ipad, electronics',0,0,1),
(4106,'2024-04-29','My tribute to feeds',267,'Feeds are useful to keep me updated with new information from websites I am interested in.','<p>I will talk about information feeds from web sites delivered to my\ncomputer device. I use the term feeds and by that I mean both RSS feeds\nand Atom feeds, the two feed protocols which are very similar.</p>\n<p>I believe it is very likely you as listener to Hacker Public Radio\nknow about feeds. Not unlikely you even know the technical details far\nbetter than I do.</p>\n<p>Nowadays many of us use feeds very often without thinking of them as\nfeeds, when we subscribe to podcasts.</p>\n<p>But feeds have been around for many years. Back in the days, I used\nfeeds for websites I was interested in. But somehow I forgot about it\nand web browsers stopped to support feed subscriptions.</p>\n<p>A year or two ago I started my new journey into feeds. Although it is\nnot so much talk about feeds nowadays, very many web sites have support\nfor feed subscriptions.</p>\n<p>To start, at my own personal web site (<a\nhref=\"https://www.hemrin.com/\" class=\"uri\">https://www.hemrin.com/</a>)\nmany of the pages have feeds, typically those that are blog-like pages,\nand you can subscribe to several feeds on my site.</p>\n<p>From Hacker Public Radio I subscribe to a feed for all show comments.\nSo when you write a comment regarding my show today, I will get notified\nin my feed manager.</p>\n<p>I primarily use Thunderbird to manage my feeds. I do not need my\nfeeds to be synced to other devices. I use Thunderbird daily for e-mails\nand it is therefore very practical and natural for me to use it also for\nfeeds. In addition I use the Feeder app on my Android-based phone for\nsome feeds.</p>\n<p>I do not use feeds for web sites I anyway will visit often or that\nhave a lot of news. I would be overwhelmed of feeds. Instead I use feeds\nfor web sites which are not updated so frequently but are sites I want\nto keep an eye on. But some are updated daily, like from the\nparliament.</p>\n<p>In some cases, feeds are an alternative to subscribe to e-mail\nnotifications and e-mail newsletters.</p>\n<p>The beauty with feeds is that I am in charge and without giving out\ne-mail or anything - the site owner do not know I subscribe.\nSubscription starts so simple as I type the feed-url into my Thunderbird\nfeed manager. And when I want to end a subscription, I simply delete\nit.</p>\n<p>Furthermore I subscribe to Status pages. I get notifications for\nexample from my internet service provider for their planned and\nunplanned maintenance.</p>\n<p>Several authorities have interesting feeds.</p>\n<p>I have feeds from some companies and organizations.</p>\n<p>I have feeds from many software developers, for example Thunderbird\nand Linux Mint.</p>\n<p>I have feeds from some journalists and politicians and alike.</p>\n<p>I have feeds from persons with competence in various areas I am\ninterested in. And other persons who are interesting for the persons\nthey are and their thoughts.</p>\n<p>So, this show is to tell you that I have rediscovered feeds and found\nthem useful for me. Maybe you already use feeds. Maybe this show will\ninspire you to have a look into feeds as a useful tool for your personal\nor professional life.</p>\n',429,0,0,'CC-BY-SA','feeds, rss, atom',0,0,1),
(4114,'2024-05-09','Introduction to jq - part 2',1484,'Options to jq; learning about filters','<article>\n<h2 id=\"overview\">Overview</h2>\n<p>In the <a\nhref=\"https://hackerpublicradio.org/eps/hpr4104/index.html\">last\nepisode</a> we looked at how JSON data is structured and saw how\n<code>jq</code> could be used to format and print this type of data.</p>\n<p>In this episode we\'ll visit a few of the options to the\n<code>jq</code> command and then start on the filters written in the\n<code>jq</code> language.</p>\n<h2 id=\"options-used-by-jq\">Options used by <code>jq</code></h2>\n<p>In general the <code>jq</code> command is invoked thus:</p>\n<pre><code>jq [options...] filter [files...]</code></pre>\n<p>It can be given data in files or sent to it via the STDIN (standard\nin) channel. We saw data being sent this way in the last episode, having\nbeen downloaded by <code>curl</code>.</p>\n<p>There are many options to the command, and these are listed in the\nmanual page and in the <a\nhref=\"https://jqlang.github.io/jq/manual/\">online manual</a>. We will\nlook at a few of them here:</p>\n<dl>\n<dt><code>--help</code> <em>or</em> <code>-h</code></dt>\n<dd>\n<p>Output the <code>jq</code> help and exit with zero.</p>\n</dd>\n<dt><code>-f filename</code> <em>or</em>\n<code>--from-file filename</code></dt>\n<dd>\n<p>Read filter from the file rather than from a command line, like awk´s\n-f option. You can also use ´#´ to make comments in the file.</p>\n</dd>\n<dt><code>--compact-output</code> <em>or</em> <code>-c</code></dt>\n<dd>\n<p>By default, <code>jq</code> pretty-prints JSON output. Using this\noption will result in more compact output by instead putting each JSON\nobject on a single line.</p>\n</dd>\n<dt><code>--color-output</code> <em>or</em> <code>-C</code> <em>and</em>\n<code>--monochrome-output</code> <em>or</em> <code>-M</code></dt>\n<dd>\n<p>By default, <code>jq</code> outputs colored JSON if writing to a\nterminal. You can force it to produce color even if writing to a pipe or\na file using <code>-C</code>, and disable color with\n<code>-M</code>.</p>\n</dd>\n<dt><code>--tab</code></dt>\n<dd>\n<p>Use a tab for each indentation level instead of two spaces.</p>\n</dd>\n<dt><code>--indent n</code></dt>\n<dd>\n<p>Use the given number of spaces (no more than 7) for indentation.</p>\n</dd>\n</dl>\n<h3 id=\"notes\">Notes</h3>\n<ul>\n<li><p>The <code>-C</code> option is useful when printing output to the\n<code>less</code> command with the colours that <code>jq</code> normally\ngenerates. Use this:</p>\n<pre><code>jq -C &#39;.&#39; file.json | less -R</code></pre>\n<p>The <code>-R</code> option to less allows colour escape sequences to\npass through.</p></li>\n<li><p>Do not do what I did recently. Accidentally leaving the\n<code>-C</code> option on the command caused <code>formatted.json</code>\nto contain all the escape codes used to colour the output:</p>\n<pre><code>$ jq -C &#39;.&#39; file.json &gt; formatted.json</code></pre>\n<p>This is why <code>jq</code> normally only generates coloured output\nwhen writing to the terminal.</p></li>\n</ul>\n<h2 id=\"filters-in-jq\">Filters in <code>jq</code></h2>\n<p>As we saw in the last episode JSON can contain arrays and objects.\nArrays are enclosed in square brackets and their elements can be any of\nthe data types we saw last time. So, arrays of arrays, arrays of\nobjects, and arrays of both of these are all possible.</p>\n<p>Objects contain collections of keyed items where the keys are strings\nof various types and the values they are associated with can be any of\nthe data types.</p>\n<h3 id=\"json-examples\">JSON Examples</h3>\n<p>Simple arrays:</p>\n<pre><code>[1,2,3]\n[1,2,3,[4,5,6]]\n[&quot;Hacker&quot;,&quot;Public&quot;,&quot;Radio&quot;]\n[&quot;Sunday&quot;,&quot;Monday&quot;,&quot;Tuesday&quot;,&quot;Wednesday&quot;,&quot;Thursday&quot;,&quot;Friday&quot;,&quot;Saturday&quot;]</code></pre>\n<p>Simple object:</p>\n<pre><code>{ &quot;name&quot;: &quot;Hacker Public Radio&quot;, &quot;type&quot;: &quot;podcast&quot;}</code></pre>\n<p>This more complex object was generated by the <a\nhref=\"https://randomuser.me/documentation\">Random User Generator\nAPI</a>. It is a subset of what can be obtained from this site.</p>\n<pre><code>{\n  &quot;gender&quot;: &quot;female&quot;,\n  &quot;name&quot;: {\n    &quot;title&quot;: &quot;Mrs&quot;,\n    &quot;first&quot;: &quot;Jenny&quot;,\n    &quot;last&quot;: &quot;Silva&quot;\n  },\n  &quot;dob&quot;: {\n    &quot;date&quot;: &quot;1950-01-03T21:38:19.583Z&quot;,\n    &quot;age&quot;: 74\n  },\n  &quot;nat&quot;: &quot;GB&quot;\n}</code></pre>\n<p>This one comes from the file <code>countries.json</code> from the <a\nhref=\"https://github.com/mledoze/countries\">Github project\n<code>mledoze/countries</code></a>. It is a subset of the entry for\n<em>Mexico</em>.</p>\n<pre><code>{\n  &quot;name&quot;: {\n    &quot;common&quot;: &quot;Mexico&quot;,\n    &quot;official&quot;: &quot;United Mexican States&quot;,\n    &quot;native&quot;: {\n      &quot;spa&quot;: {\n        &quot;official&quot;: &quot;Estados Unidos Mexicanos&quot;,\n        &quot;common&quot;: &quot;México&quot;\n      }\n    }\n  },\n  &quot;capital&quot;: [\n    &quot;Mexico City&quot;\n  ],\n  &quot;borders&quot;: [\n    &quot;BLZ&quot;,\n    &quot;GTM&quot;,\n    &quot;USA&quot;\n  ]\n}</code></pre>\n<h3 id=\"identity-filter\">Identity filter</h3>\n<p>This is the simplest filter which we already encountered in episode\n1: <code>\'.\'</code>. It takes its input and produces the same value as\noutput. Since the default action is to pretty-print the output it\nformats the data:</p>\n<pre><code>$ echo &#39;[&quot;Hacker&quot;,&quot;Public&quot;,&quot;Radio&quot;]&#39; | jq .\n[\n  &quot;Hacker&quot;,\n  &quot;Public&quot;,\n  &quot;Radio&quot;\n]</code></pre>\n<p>Notice that the filter is not enclosed in quotes in this example.\nThis is usually fine for the simplest filters which don\'t contain any\ncharacters which are of significance to the shell. It\'s probably a good\nidea to always use (single) quotes however.</p>\n<p>There may be considerations regarding how <code>jq</code> handles\nnumbers. Consult the <a\nhref=\"https://jqlang.github.io/jq/manual/\"><code>jq</code>\ndocumentation</a> for details.</p>\n<h3 id=\"object-identifier-index-filter\">Object Identifier-Index\nfilter</h3>\n<p>This form of filter refers to object keys. A particular key is\nusually referenced with a full-stop followed by the name of the key.</p>\n<p>In the HPR statistics data there is a top-level key \"hosts\" which\nrefers to the number of currently registered hosts. This can be obtained\nthus (assuming the JSON is in the file <code>stats.json</code>):</p>\n<pre><code>$ jq &#39;.hosts&#39; stats.json\n357</code></pre>\n<p>The statistics file contains a key <code>\'stats_generated\'</code>\nwhich marks a Unix time value (seconds since the Unix Epoch 1970-01-01).\nThis can be decoded on the command line like this:</p>\n<pre><code>$ date -d &quot;@$(jq &#39;.stats_generated&#39; stats.json)&quot; +&#39;%F %T&#39;\n2024-04-18 15:30:07</code></pre>\n<p>Here the <code>\'-d\'</code> option to <code>date</code> provides the\ndate to print, and if it begins with a <code>\'@\'</code> character it\'s\ninterpreted as seconds since the Epoch. Note that the result is in my\nlocal time zone which is currently UTC + 0100 (aka BST).</p>\n<p>Using object keys in this way only works if the keys contain only\nASCII characters and underscores and don\'t start with a digit. To use\nother characters it\'s necessary to enclose the key in double quotes or\nsquare brackets and double quotes. So, assuming the key we used earlier\nhad been altered to <code>\'stats-generated\'</code> we could use either\nof these expressions:</p>\n<pre><code>.&quot;stats-generated&quot;\n.[&quot;stats-generated&quot;]</code></pre>\n<p>Of course, the <code>.[&lt;string&gt;]</code> form is valid in all\ncontexts. Here <code>&lt;string&gt;</code> represents a JSON string in\ndouble quotes. The <code>jq</code> documentation refers to this as an\n<em>Object Index</em>.</p>\n<p>What if you want the <code>next_free</code> value discussed in the\nlast episode (number of shows until the next free slot)? Just typing the\nfollowing will not work:</p>\n<pre><code>$ jq &#39;.next_free&#39; stats.json\nnull</code></pre>\n<p>This is showing that there is no key <code>next_free</code> at the\ntop level of the object, the key we want is in the object with the key\n<code>slot</code>.</p>\n<p>If you request the <code>slot</code> key this will happen:</p>\n<pre><code>$ jq &#39;.slot&#39; stats.json\n{\n  &quot;next_free&quot;: 8,\n  &quot;no_media&quot;: 0\n}</code></pre>\n<p>Here an object has been returned, but we actually want the value\nwithin it, as we know.</p>\n<p>This is where we can <em>chain</em> filters like this:</p>\n<pre><code>$ jq &#39;.slot | .next_free&#39; stats.json\n8</code></pre>\n<p>The <em>pipe</em> symbol causes the result of the first filter to be\npassed to the second filter. Note that the pipe here is not the same as\nthe Unix pipe, although it looks the same</p>\n<p>There is a shorthand way of doing this \"chaining\":</p>\n<pre><code>$ jq &#39;.slot.next_free&#39; stats.json\n8</code></pre>\n<p>This is a bit like a file system path, and makes the extraction of\ndesired data easier to visualise and therefore quite straightforward, I\nthink.</p>\n<h3 id=\"array-index-filter\">Array index filter</h3>\n<p>We have seen the object index filter <code>.[&lt;string&gt;]</code>\nwhere <code>&lt;string&gt;</code> represents a key in the object we are\nworking with.</p>\n<p>It makes sense for array indexing to be\n<code>.[&lt;number&gt;]</code> where <code>&lt;number&gt;</code>\nrepresents an integer starting at zero, or a negative integer. The\nmeaning of the negative number is to count backwards from the last\nelement of the array (which is <code>-1</code>).</p>\n<p>So, some examples might be:</p>\n<pre><code>$ echo &#39;[&quot;Sunday&quot;,&quot;Monday&quot;,&quot;Tuesday&quot;,&quot;Wednesday&quot;,&quot;Thursday&quot;,&quot;Friday&quot;,&quot;Saturday&quot;]&#39; | jq &#39;.[1]&#39;\n&quot;Monday&quot;\n\n$ echo &#39;[&quot;Sun&quot;,&quot;Mon&quot;,&quot;Tue&quot;,&quot;Wed&quot;,&quot;Thu&quot;,&quot;Fri&quot;,&quot;Sat&quot;]&#39; | jq &#39;.[-1]&#39;\n&quot;Sat&quot;\n\n$ echo &#39;[1, 2, 3, [4, 5, 6]]&#39; | jq &#39;.[-1]&#39;\n[\n  4,\n  5,\n  6\n]</code></pre>\n<p>We will look at more of the basic filters in the next episode.</p>\n<h2 id=\"links\">Links</h2>\n<ul>\n<li><code>jq</code>:\n<ul>\n<li><a href=\"https://jqlang.github.io/jq/\">GitHub page</a></li>\n<li><a href=\"https://jqlang.github.io/jq/download/\">Downloading\n<code>jq</code></a></li>\n<li><a href=\"https://jqlang.github.io/jq/manual/\">The <code>jq</code>\nmanual</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Jq_(programming_language)\">Wikipedia\npage about the jq programming language</a></li>\n</ul></li>\n</ul>\n<ul>\n<li>Test data sources:\n<ul>\n<li><a href=\"https://randomuser.me/documentation\">Random User Generator\nAPI</a></li>\n<li><a href=\"https://github.com/mledoze/countries\">Github project\n<code>mledoze/countries</code></a></li>\n</ul></li>\n</ul>\n</article>\n',225,0,1,'CC-BY-SA','JSON,JavaScript Object Notation,jq,jq filter,jq language',0,0,1),
(4109,'2024-05-02','The future of HPR ',1496,'Knightwise talks about the some of the changes HPR could embrace to become future proof.','<p>This will probably be one I\'ll get a lot of comments on, but I\'ve\nlooked at the marketing proposition of HPR in light of some of the\nchallenges we face. To prevent us dipping into the reserve queue and\nseeing a slow but steady decline in both audience and hosts.. Maybe its\ntime to give HPR a bit of a makeover.</p>\n',111,0,0,'CC-BY-SA','marketing, hpr, future, vision',0,0,1),
(4123,'2024-05-22','KeepassXC Update',1153,'Sgoti talks about the KeePassXC 278 release.','<h1 id=\"keepassxc-update\">KeepassXC Update</h1>\n<h2 id=\"sgoti-talks-about-the-keepassxc-278-release.\">Sgoti talks about\nthe KeePassXC 278 release.</h2>\n<ul>\n<li><p>Tags: KeePassXC 2.7.8 release, Password managers</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://keepassxc.org/blog/2024-05-06-2.7.8-released/\"\ntitle=\"KeePassXC 2.7.8 released\">keepassxc:</a> KeePassXC 2.7.8\nreleased<br />\n</p></li>\n</ul>\n<blockquote>\n<p>Passkeys are still a fledgling technology, as of this writing, and we\nare trying to keep pace with the rapid adoption across various websites,\nin addition to specification refinements. The following is a short list\nof critical improvements to our passkeys support:</p>\n</blockquote>\n<blockquote>\n<blockquote>\n<pre><code>Update an existing passkey or add one to an existing entry\nSupport more specification standards\nVarious UI improvements to dialogs and context menus\n**Show a warning prior to exporting a passkey**</code></pre>\n</blockquote>\n</blockquote>\n<blockquote>\n<p>In addition to bug fixes, we always strive to deliver something\nuseful in each of our updates. For 2.7.8, we have brought forward\nseveral awesome features including:</p>\n</blockquote>\n<blockquote>\n<blockquote>\n<pre><code>A database setting to allow a delay prior to auto-save\nImprovements to Bitwarden and 1Password importers\nImprovements to monospace font display\nImprove display of dialog buttons on Linux\n**SSH Agent: don&#x2019;t auto-load keys that are in the recycle bin**</code></pre>\n</blockquote>\n</blockquote>\n<ul>\n<li><strong>Supporting source:</strong> <a\nhref=\"https://github.com/keepassxreboot/keepassxc/releases/tag/2.7.8\"\ntitle=\"KeePassXC 2.7.8 release\">github:</a> KeePassXC 2.7.8\nrelease.<br />\n</li>\n</ul>\n<blockquote>\n<p>Changes.</p>\n</blockquote>\n<blockquote>\n<blockquote>\n<pre><code>Add hotkey for showing search help.\nAdd hotkey for group switching (Ctrl+Shift+PgUp/PgDown).\nAdd per-database auto-save delay setting.\nAdd configurable password strength check on database password.\nAdd setting to hide menubar.\nImprove Bitwarden 1PUX import and support organization collections.\nShow advanced settings checkbox only for settings that have them.\nRemove obsolete setting for requiring repeated password entry.\nPasskeys: Allow registering Passkeys to existing entries.\nPasskeys: Show warning about data being unencrypted before Passkey export.\nPasskeys: Support NFC and USB transports.\nPasskeys: Pass extension JSON data to browser.\nSSH Agent: Do not use entries from recycle bin.\nLinux: Change hotkey sequence used for {CLEARFIELD} Auto-Type.\nWindows: Improve DACL memory access protection.</code></pre>\n</blockquote>\n</blockquote>\n<blockquote>\n<p>Fixes.</p>\n</blockquote>\n<blockquote>\n<blockquote>\n<pre><code>Fix crash when deleting history items.\nFix crash on screen lock or computer sleep.\nFix search field not being focused after unlock.\nFix loss of window focus when Auto-Type needs to unlock a database.\nFix inconsistent TOTP visibility on unlock.\nFix CSV import skipping over single-name groups.\nFix key file folder being remembered even if disabled in settings.\nFix issues with entry editing and database locking.\nFix key file text when provided on command line.\nFix issues with hardware key auto detection.\nDo not override monospace font size.\nPerform group sort only when group view is in focus.\nDo not show decimals for attachment sizes in Bytes.\nPrevent merging of global custom data when merging databases.\nFix minor translation issues.\nPasskeys: Fix StrongBox incompatibility.\nPasskeys: Set RP ID to effective domain if unset instead of returning an error.\nPasskeys: Various UI fixes and improvements.\nAppImage: Fix URL opening.\nFlatpak: Fix application autostart.\nLinux/macOS: Fix button sizes on modal alert popups.\nLinux: Fix clipboard clear on Wayland.\nWindows: Preserve file-hidden attribute.</code></pre>\n</blockquote>\n</blockquote>\n<ul>\n<li><p><strong>Supporting source:</strong> <a\nhref=\"https://keepassxc.org/verifying-signatures/\"\ntitle=\"Verifying signatures &amp; basic integrity check\">keepassxc:</a>\nVerifying signatures &amp; basic integrity check.<br />\n</p></li>\n<li><p><strong>Supporting source:</strong> <a\nhref=\"https://github.com/keepassxreboot/keepassxc/blob/develop/docs/topics/KeyboardShortcuts.adoc\"\ntitle=\"KeePassXC &#x2013; Keyboard Shortcuts.\">github:</a> KeePassXC &#x2013; Keyboard\nShortcuts.<br />\n</p></li>\n<li><p><strong>Supporting source:</strong> <a\nhref=\"https://github.com/keepassxreboot/keepassxc/blob/develop/CHANGELOG.md\"\ntitle=\"KeePassXC changelog\">github:</a> KeePassXC changelog.<br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Keyboard_shortcut\"\ntitle=\"From Wikipedia, the free encyclopedia\">wikipedia:</a> Keyboard\nshortcut.<br />\n</p></li>\n<li><p><strong>Supporting source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Table_of_keyboard_shortcuts\"\ntitle=\"From Wikipedia, the free encyclopedia\">wikipedia:</a> Table of\nkeyboard shortcuts.<br />\n</p></li>\n<li><p><strong>Supporting source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Human_interface_guidelines\"\ntitle=\"From Wikipedia, the free encyclopedia\">wikipedia:</a> Human\ninterface guidelines.<br />\n</p></li>\n<li><p><strong>Supporting source:</strong> <a\nhref=\"https://developer.gnome.org/hig/\"\ntitle=\"GNOME Human Interface Guidelines\">gnome:</a> GNOME Human\nInterface Guidelines.<br />\n</p></li>\n<li><p><strong>Supporting source:</strong> <a\nhref=\"https://develop.kde.org/hig/\"\ntitle=\"KDE Human Interface Guidelines\">kde:</a> KDE Human Interface\nGuidelines.<br />\n</p></li>\n<li><p><strong>Supporting source:</strong> <a\nhref=\"https://developer.apple.com/design/human-interface-guidelines\"\ntitle=\"Apple Human Interface Guideline\">apple:</a> Apple Human Interface\nGuideline.<br />\n</p>\n<ul>\n<li><strong>Supporting source:</strong> <a\nhref=\"https://developer.apple.com/design/human-interface-guidelines/the-menu-bar\"\ntitle=\"The Apple menu\">apple:</a> Apple Global App Menu.<br />\n</li>\n</ul></li>\n</ul>\n<blockquote>\n<p>The Apple menu, which is always the first item on the leading side of\nthe menu bar, includes system-defined menu items that are always\navailable. You can&#x2019;t modify or remove the Apple menu. When present in\nthe menu bar, the following menus appear after the Apple menu in the\norder listed below.</p>\n</blockquote>\n<blockquote>\n<blockquote>\n<pre><code>AppName (you supply a short version of your app&#x2019;s name for this menu&#x2019;s title)\nFile\nEdit\nFormat\nView\nApp-specific menus, if any\nWindow\nHelp</code></pre>\n</blockquote>\n</blockquote>\n<ul>\n<li><strong>Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Old_Yeller\"\ntitle=\"From Wikipedia, the free encyclopedia\">wikipedia:</a> Old\nYeller.<br />\n</li>\n<li><strong>Supporting source:</strong> <a\nhref=\"https://archive.org/details/old-yeller-1957\"\ntitle=\"Old Yeller, 1957\">archive:</a> Old Yeller (1957).<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,1,'CC-BY-SA','KeePassXC 2.7.8 release, Password managers',0,0,1),
(4113,'2024-05-08','Today I Learnt, sed hold/pattern space use.',2083,'Sgoti talks about using sed hold/pattern spaces.','<h1 id=\"today-i-learnt-sed-holdpattern-space-use.\">Today I Learnt, sed\nhold/pattern space use.</h1>\n<h2 id=\"sgoti-talks-about-using-sed-holdpattern-spaces.\">Sgoti talks\nabout using sed hold/pattern spaces.</h2>\n<ul>\n<li>Tags: TIL, sed</li>\n</ul>\n<h2\nid=\"i-fixed-the-ls-usrbin-to-ls-bindir-issue-mentioned-in-the-show.\">I\nfixed the <code>${ls} /usr/bin</code> to <code>${ls} ${bindir}</code>\nissue mentioned in the show.</h2>\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: grab-bin.sh\n#Purpose: Link your binaries.\n#Version: beta 0.07\n#Author: SGOTI (Some Guy On The Internet)\n#Date: 2023-12-17\n\n#variables:\n\nbindir=/usr/bin/\n\nawk=${bindir}awk\ncat=${bindir}cat\nchmod=${bindir}chmod\ndate=${bindir}date\necho=${bindir}echo\nfind=${bindir}find\nls=${bindir}ls\nmktemp=${bindir}mktemp\nsed=${bindir}sed\nuniq=${bindir}uniq\n\n#start:\n\n    ${echo} -e &quot;\\nStep 0: $(${date} +%F), $(${date} +%T)&quot;;\n\n# Create the /tmp/ directory to place the files.\nfunction mkt (){\nif [ -d /tmp/$(${date} +%F).* ]; then\n    tmpdir1=$(ls -d /tmp/$(${date} +%F).*)\n        ${echo} -e &quot;The directory already exists.\\n${tmpdir1}&quot;\nelse\n    tmpdir0=$(${mktemp} -d /tmp/$(${date} +%F).XXXXXXXX)\n    tmpdir1=${tmpdir0}\n    ${find} &quot;${tmpdir1}&quot; -type d -exec ${chmod} -R =700 {} +;\n        ${echo} &quot;Had to create ${tmpdir1}&quot;\nfi\n}\n\nmkt\n    ${echo} -e &quot;\\nStep 1: $(${date} +%F), $(${date} +%T)&quot;;\n\n# Files created by this script.\ntmpdoc0=${tmpdir1}/$(${date} +%Y%m%d)variables.txt\ntmpdoc1=${tmpdir1}/$(${date} +%Y%m%d)bash.vim\ntmpdoc2=${tmpdir1}/$(${date} +%Y%m%d)sed-script.sed\n\n# Here-document to build the first document (variables.txt).\n${cat} &gt; ${tmpdoc0} &lt;&lt; &quot;EOL0&quot;\nbindir=/usr/bin/\n\nEOL0\n\n# variables.txt body.\n${ls} -1 ${bindir}\n| ${sed} -n &#39;\nh\ns/[^0-9a-zA-Z]//g\nG\ns/\\n/ /\ns/(.*) (.*)/1=${bindir}2/p\n&#39; &gt;&gt; ${tmpdoc0}\n${sed} -i &#39;/[/d&#39; ${tmpdoc0}\n\n    ${echo} -e &quot;\\nStep 2: $(${date} +%F), $(${date} +%T)&quot;;\n\n# Bash.vim here-document.\n${cat} &gt; ${tmpdoc1} &lt;&lt; &quot;EOL1&quot;\niabbr case;\ncase ${var_name} in\n&lt;CR&gt;    [yY])\n&lt;CR&gt;    ${echo} &#39;User said, &quot;Yes&quot;&#39;;\n&lt;CR&gt;    ;;\n&lt;CR&gt;\n&lt;CR&gt;    [nN])\n&lt;CR&gt;    ${echo} &#39;User said, &quot;No&quot;&#39;;\n&lt;CR&gt;    ;;\n&lt;CR&gt;\n&lt;CR&gt;    [qQ])\n&lt;CR&gt;    ${echo} &quot;Let&#39;s get outta here.&quot;;\n&lt;CR&gt;    exit\n&lt;CR&gt;    ;;\n&lt;CR&gt;\n&lt;CR&gt;    *)\n&lt;CR&gt;    ${echo} &quot;Good Heavens! Someone broke the script I&#39;m writing.&quot;;\n&lt;CR&gt;    exit\n&lt;CR&gt;    ;;\n&lt;CR&gt;esac\n\niabbr here; ${cat} &lt;&lt; _EOD_&lt;CR&gt;_EOD_&lt;CR&gt;&lt;ESC&gt;2k0\n\niabbr func function NAME () {&lt;CR&gt;&lt;CR&gt;}&lt;UP&gt;\niabbr if; if []; then&lt;CR&gt;&lt;ESC&gt;Ielse&lt;CR&gt;${echo} &quot;Good Heavens!&quot;&lt;CR&gt;&lt;ESC&gt;Ifi&lt;ESC&gt;4k0A\niabbr ali; alias NAME=&#39;&#39;&lt;ESC&gt;B\n\niabbr ; ()&lt;Left&gt;&lt;Left&gt;\n\nEOL1\n\n# bash.vim body.\n${ls} -1 ${bindir}\n| ${sed} -n &#39; {\nh\ns/[^0-9a-zA-Z]//g\nG\ns/\\n/ /\ns/(.*) (.*)/iabbr 1 ${2}/p\n}\n&#39; &gt;&gt; ${tmpdoc1}\n\n# Bash.vim here-document second pass.\n${cat} &gt;&gt; ${tmpdoc1} &lt;&lt; EOL1-5\n\niabbr vars;\nbindir=/usr/bin/\n&lt;CR&gt;\nEOL1-5\n\n# bash.vim body second pass.\n${ls} -1 ${bindir}\n| ${sed} -n &#39; {\nh\ns/[^0-9a-zA-Z]//g\nG\ns/\\n/ /\ns/(.*) (.*)/\\&lt;CR&gt;1=${bindir}2/p\n}\n&#39; &gt;&gt; ${tmpdoc1}\n\n${sed} -i &#39;/{[}/d; /${bindir}[/d&#39; ${tmpdoc1}\n\n    ${echo} -e &quot;\\nStep 3: $(${date} +%F), $(${date} +%T)&quot;;\n\n# Sed script here-document.\n${cat} &gt; ${tmpdoc2} &lt;&lt; &quot;EOL2&quot;\n#!/usr/bin/sed -f\n\nEOL2\n\n# Sed script body.\n${ls} -1 ${bindir}\n| ${sed} -n &#39;\nh\ns/[^0-9a-zA-Z]//g\nG\ns/\\n/ /\ns/(.*) (.*)/s/\\&lt;2\\&gt;/${1}/g/p\n&#39; &gt;&gt; ${tmpdoc2}\n${sed} -i &#39;/[/d&#39; ${tmpdoc2}\n\n${find} &quot;${tmpdir1}&quot; -type d -exec chmod -R =700 {} +;\n${find} &quot;${tmpdir1}&quot; -type f -exec chmod -R =600 {} +;\n\n    ${echo} -e &quot;\\nStep 4: $(${date} +%F), $(${date} +%T)&quot;;\n\nexit;\n</code></pre>\n<ul>\n<li><strong>Source:</strong> <a\nhref=\"https://hackerpublicradio.org/series/0090.html\">In-Depth Series:\nLearning sed</a></li>\n<li><strong>Source:</strong> <a\nhref=\"https://hackerpublicradio.org/series/0123.html\">In-Depth Series:\nToday I Learnt</a></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\n',391,0,0,'CC-BY-SA','TIL, sed',0,0,1),
(4115,'2024-05-10','Tagging music with Beets',1141,'Some things to know before you use beets to tag your music','<h1>References</h1>\n<ul>\n<li><a href=\"https://beets.readthedocs.io/en/stable/\" target=\"_blank\">Beets documentation</a></li>\n<li><a href=\"https://docs.funkwhale.audio/administrator/import.html#album-art\" target=\"_blank\">Album art in Funkwhale</a> (after recording I noticed it can also look up album art during import, using the musicbrainz ID. Not 100% sure beets adds it, but I might assume so)</li>\n<li><a href=\"https://wiki.xiph.org/Opus_Recommended_Settings#Recommended_Bitrates\" target=\"_blank\">Recommended opus bitrates</a></li>\n<li><a href=\"https://en.wiktionary.org/wiki/archivist#Pronunciation\" target=\"_blank\">Pronunciation of the word \"archivist\"</a></li>\n<li><a href=\"https://musicbrainz.org/\" target=\"_blank\">MusicBrainz</a></li>\n<li><a href=\"https://hackerpublicradio.org/eps/hpr3808/index.html\" target=\"_blank\">Everything you need to know about Funkwhale</a></li>\n</ul>\n',399,0,0,'CC-BY-SA','beets, opus, music, funkwhale',0,0,1),
(4116,'2024-05-13','Response to 4109: Building community without SEO',1158,'Building community does not require marketing and too much marketing can sometimes destroy community','<p>I was inspired by <a href=\"https://knightwise.com/\">Knightwise</a>\'s\n<a href=\"https://hackerpublicradio.org/eps/hpr4109/index.html\">episode\n4109</a> on future-proofing HPR.<br />\nI agree with many of your criticisms, but I\'m not sure that a marketing\nstrategy is the best way forward. Many of the most successful and\nsustainable businesses and organizations have been built on\nword-of-mouth.<br />\nFor example I heard of Google, Zoom, Gmail, Facebook, Slack, Twitter,\nDiscord, etc from my IRL friends and coworkers rather than from a\nmarketing message. And most of the open source communities I\'m a part of\n(Linux, Python, Firefox, Hugging Face, etc) are successful precisely\nbecause their success is not subject to a BigTech algorithm or\nexploitative terms-and-conditions.<br />\nMost open source projects are able to build community much by actively\nresisting the temptation to create a marketing message or social media\ncampaign and instead focusing on the authenticity and quality of their\n\"product\" and catering to their contributors\' and users niche needs and\nsensibilities.</p>\n<h3 id=\"points-of-agreement-rapoport-rule-2\">Points of agreement <a\nhref=\"https://rationalwiki.org/wiki/Rapoport%27s_Rules\">(Rapoport Rule\n#2)</a></h3>\n<ul>\n<li>I share Knightwise\'s love and concern for the HPR community</li>\n<li>I agree the intro theme song and voiceover could be accelerated and\nimproved</li>\n<li>I whole-heartedly agree the comments interface could be made easier\nto use</li>\n<li>I agree that the HPR community feels like a monastery or convent.\nPerhaps faith in FOSS is a kind of religious belief or value that\nsupersedes normal human instincts and drives.</li>\n<li>I 100% support hackers that evangelize for HPR on their favorite\nbigtech social media platforms.</li>\n</ul>\n<p>My FOSS podcatcher <a href=\"https://antennapod.org/\">Antennapod</a>,\nautomatically skips the intro. I had to rewind in order to hear the\nepisode number and host username in order to compose my reply.<br />\nAnd I have trouble engaging with the comments interface on the HPR\nsite.<br />\nI wasn\'t even aware of comments on my previous episodes and once I did\nlearn of it I found it easier to reply on Mastodon rather than on the\nHPR website.<br />\nAs a community, I think we take it on faith that there is a place in the\nworld for people like us that just want to share ideas, unmediated by\nshadow-banning, rug-pulling corporations and attention-hacking\nalgorithms. I want to have a conversation with thoughtful people. I\ndon\'t want to be engaged or monetized or exploited</p>\n<ul>\n<li>A young person that is turned off after 3 seconds of retro-sounding\naudio is likely to not enjoy the <a\nhref=\"https://hackerpublicradio.org/eps/hpr2442/index.html\">\"sound of\nwoodwork (2442)\"</a> or <a\nhref=\"https://hackerpublicradio.org/eps/hpr4037/index.html\">\"overlanding\"\naudio journals (4037)</a> of semi-retired geeks.</li>\n<li>Many of us know that what we do in life cannot be measured in\ndollars or <a\nhref=\"https://en.wikipedia.org/wiki/Facebook_like_button\">like button\nclicks</a>, but rather by the quality of our friendships and the\ncollective ideas that we share.</li>\n<li>Zombies on Facebook, Twitter, Discord and Slack must eventually \"see\nthe light\" for themselves and come flocking to \"<a\nhref=\"https://ar.al/2020/08/07/what-is-the-small-web/\">the small\nweb</a>\" as they did during <a\nhref=\"https://mstdn.social/tags/xitter\">Xitter</a>\'s decline.</li>\n<li>HPR has been a significant positive force in my life and I would\nhate to sully its openness and authenticity with SEO or other marketing\nstrategies (I know this is not what you proposed)</li>\n<li>I think the <a\nhref=\"https://en.wikipedia.org/wiki/Enshittification\">enshittified</a>\nDiscord network is the wrong business to entrust with our community, for\none thing, its app doesn\'t work on Linux</li>\n<li>Marketing and SEO are effective tools for growth-seeking businesses,\nbut ill-suited for an open source community</li>\n<li>Anyone interested in business strategy would enjoy the eye-opening\nbook <em><a href=\"https://craphound.com/category/internetcon\">The\nInternet Con</a></em> by <a\nhref=\"https://en.wikipedia.org/wiki/Cory_Doctorow\">Cory Doctorow</a> at\nthe <a\nhref=\"https://www.eff.org/about/staff/cory-doctorow\">EFF</a>.</li>\n<li>Open source communities such as Reddit, Reddis, Terraform, Mongo,\nSubstack, Medium, and MySQL were destroyed by growth-hackers pulling the\nrug out from under open source contributors and authors who eventually\nrebelled to fork or reverse-engineer these products and \"win the\nday.\"</li>\n<li>We geeks at HPR are not alone in our disaffection with\nbusiness-mediated social interactions. Look at the mass eexodus from\ntwitter. And the exit from substack. And from open source communities\nlike reddit, reddis, terraform, mongo, and mysql. If you want to\ncontribute your labor to a newly enshittified product they are actively\nseeking new contributors (and marketers) as their founding engineers\nabandon ship and create their own forks.</li>\n<li>People share personal private contact information here that could\nendanger their emotional and financial well-being and information\nsecurity if it were exposed to a scammer/malware platform like Discord.\nDiscord sells your phone number to con-artists and scammers. And Xitter\nusers talk about the blue checkmark validating their social value, but\nit\'s really a mark of shame. Discord hawks a similarly worthless token\nof social cred, and paywalls something as fundamental to communication\nas emojies. No thanks. They can take their dancing robot and\nbursting-heart emojies and shove \'em where the sun don\'t shine.</li>\n</ul>\n<h3 id=\"enhance-the-comments-interface\">Enhance the comments\ninterface?</h3>\n<ul>\n<li>Would a bridge server that pulled from our RSS feed and posted to an\nHPRbot channel on Mastodon help?</li>\n<li>I\'ve not tried <a\nhref=\"https://en.wikipedia.org/wiki/Bluesky_(social_network)\">BlueSky\nyet</a></li>\n<li>We could even auto-post to Xitter and Facebook in the same way that\nThreads evangelizes Facebook to the Fediverse</li>\n<li>It might be possible to directly connect the comments feed on HPR to\nMastodon or BlueSky automatically.</li>\n</ul>\n<h3 id=\"references\">References</h3>\n<ul>\n<li><a\nhref=\"https://rationalwiki.org/wiki/Rapoport%27s_Rules\">https://rationalwiki.org/wiki/Rapoport%27s_Rules</a></li>\n<li><a href=\"https://antennapod.org/\">https://antennapod.org/</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Enshittification\">https://en.wikipedia.org/wiki/Enshittification</a></li>\n<li><a\nhref=\"https://craphound.com/category/internetcon/\">https://craphound.com/category/internetcon/</a></li>\n</ul>\n',424,0,1,'CC-BY-SA','hpr,community,marketing,enshittification,social media,fediverse,small web',0,0,1),
(4117,'2024-05-14','JAMBOREE !',1126,'Java Android Magisk Burp Objection Root Emulator Easy (JAMBOREE)','<p><a\nhref=\"https://github.com/freeload101/Java-Android-Magisk-Burp-Objection-Root-Emulator-Easy\"\nclass=\"uri\">https://github.com/freeload101/Java-Android-Magisk-Burp-Objection-Root-Emulator-Easy</a></p>\n<p>Java Android Magisk Burp Objection Root Emulator Easy\n(JAMBOREE)<br />\nGet a working portable Python/Git/Java environment on Windows in SECONDS\nwithout having local administrator, regardless of your broken Python or\nother environment variables. Our open-source script downloads directly\nfrom proper sources without any binaries. While the code may not be\nperfect, it includes many useful PowerShell tricks.</p>\n<p>Run Android apps and pentest without the adware and malware of\nBlueStacks or NOX.</p>\n<pre><code>Features / Request\nCore        Status\nRMS:Runtime Mobile Security &#x2714;&#xFE0F;\nBrida, Burp to Frida bridge &#x274C;\nSaftyNet+ Bypass    &#x274C;\nBurp Suite Pro / CloudFlare UserAgent Workaround-ish    &#x2714;&#xFE0F;\nZAP Using Burp  &#x2714;&#xFE0F;\nGoogle Play &#x2714;&#xFE0F;\nJava    &#x2714;&#xFE0F;\nAndroid 11 API 30   &#x2714;&#xFE0F;\nMagisk  &#x2714;&#xFE0F;\nBurp    &#x2714;&#xFE0F;\nObjection   &#x2714;&#xFE0F;\nRoot    &#x2714;&#xFE0F;\nPython  &#x2714;&#xFE0F;\nFrida   &#x2714;&#xFE0F;\nCerts   &#x2714;&#xFE0F;\nAUTOMATIC1111   &#x2714;&#xFE0F;\nAutoGPT &#x2714;&#xFE0F;\nBloodhound  &#x2714;&#xFE0F;\nPyCharm &#x2714;&#xFE0F;\nOracleLinux WSL &#x2714;&#xFE0F;\nUbuntu/Olamma WSL   &#x2714;&#xFE0F;\nPostgres No admin   &#x2714;&#xFE0F;\nSillyTavern &#x2714;&#xFE0F;\nVolatility 3    &#x2714;&#xFE0F;\nArduino IDE / Duck2Spark    &#x2714;&#xFE0F;\nYoutube Downloader Yt-dlp   &#x2714;&#xFE0F;</code></pre>\n<p>How it works:<br />\nTemporarily resets your windows $PATH environment variable to fix any\nissues with existing python/java installation<br />\nBuild a working Python environment in seconds using a tiny 16 meg\nnuget.org Python binary and portable PortableGit. Our solution doesn\'t\nrequire a package manager like Anaconda. I would like to make it even\neasier to use but I don\'t want to spend more time developing it if\nnobody is going to use it! Please let me know if you like it and open\nbugs/suggestions/feature request etc! You can contact me at <a\nhref=\"https://rmccurdy.com\" class=\"uri\">https://rmccurdy.com</a> !</p>\n<p>Installation/Requirements ( For Android AVD Emulator) :<br />\nLocal admin just to install Android AVD Driver:<br />\nHAXM Intel driver ( <a href=\"https://github.com/intel/haxm\"\nclass=\"uri\">https://github.com/intel/haxm</a> )</p>\n<p>OR</p>\n<p>AMD ( <a\nhref=\"https://github.com/google/android-emulator-hypervisor-driver-for-amd-processors\"\nclass=\"uri\">https://github.com/google/android-emulator-hypervisor-driver-for-amd-processors</a>\n)</p>\n<p>Usage:<br />\nPut ps1 file in a folder<br />\nRightclick Run with PowerShell</p>\n<p>OR</p>\n<p>From command prompt</p>\n<p>powershell -ExecutionPolicy Bypass -Command\n\"[scriptblock]::Create((Invoke-WebRequest \"<a\nhref=\"https://raw.githubusercontent.com/freeload101/Java-Android-Magisk-Burp-Objection-Root-Emulator-Easy/main/JAMBOREE.ps1\"\nclass=\"uri\">https://raw.githubusercontent.com/freeload101/Java-Android-Magisk-Burp-Objection-Root-Emulator-Easy/main/JAMBOREE.ps1</a>\").Content).Invoke();\"\nMore infomation on bypass Root Detection and SafeNet <a\nhref=\"https://www.droidwin.com/how-to-hide-root-from-apps-via-magisk-denylist/\"\nclass=\"uri\">https://www.droidwin.com/how-to-hide-root-from-apps-via-magisk-denylist/</a></p>\n<p>( Watch the Video Tutorial below it\'s a 3-5 min process. You only\nhave to setup once. After that it\'s start burp then start AVD )</p>\n<p>Burp/Android Emulator (Video Tutorial )<br />\nUpdate Video with 7minsec Podcast!</p>\n<p><a href=\"https://youtu.be/XdXleap0BiM\"\nclass=\"uri\">https://youtu.be/XdXleap0BiM</a></p>\n<p>name</p>\n<p>(Video Tutorial)</p>\n<p><a href=\"https://youtu.be/pYv4UwP3BaU\"\nclass=\"uri\">https://youtu.be/pYv4UwP3BaU</a></p>\n<p>name</p>\n<p>USB Rubber Ducky Scripts &amp; Payloads Python 3 Arduino\nDigiSpark</p>\n<p><a href=\"https://youtu.be/e8tKhFS0Tow\"\nclass=\"uri\">https://youtu.be/e8tKhFS0Tow</a></p>\n<p>name</p>\n<p>Old payloads: <a\nhref=\"https://github.com/hak5/usbrubberducky-payloads/tree/1d3e9be7ba3f80cdb008885fac49be2ba926649d/payloads\"\nclass=\"uri\">https://github.com/hak5/usbrubberducky-payloads/tree/1d3e9be7ba3f80cdb008885fac49be2ba926649d/payloads</a></p>\n<p>PhreakNIC 24: Java Android Magisk Burp Objection Root Emulator Easy\n(JAMBOREE)</p>\n<p><a href=\"https://www.youtube.com/watch?v=R1eu2Ui1ZLU\"\nclass=\"uri\">https://www.youtube.com/watch?v=R1eu2Ui1ZLU</a></p>\n<p>name</p>\n',36,0,1,'CC-BY-SA','android,powershell,windows,pentesting,AI,llm',0,0,1),
(4118,'2024-05-15','Toil versus Livelihood',1451,'A contribution to the discussions about AI as a threat to our livelihoods','<p>This is sort of a response to <a href=\"https://hackerpublicradio.org/eps/hpr4097/index.html\">hpr4097 :: Will they take our jobs? Of course they will.</a> by dodddummy, and also <a href=\"https://hackerpublicradio.org/eps/hpr4111/index.html\">the latest community news show</a>, and other shows about the topic.</p>\n\n<h4>References:</h4>\n<ul>\n<li><a href=\"https://www.marxists.org/reference/subject/economics/keynes/1930/our-grandchildren.htm\">Economic Possibilities for our Grandchildren, John Maynard Keynes</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Domenico_De_Masi\">Domenico de Masi, O Ócio Criativo</a>, book was never released in English, I think.</li>\n<li><a href=\"https://harpers.org/archive/1932/10/in-praise-of-idleness/\">In Praise of Idleness, Bertrand Russell</a></li>\n</ul>\n',399,0,0,'CC-BY-SA','work, \"generative AI\"',0,0,1),
(4121,'2024-05-20','RODE wireless microphones',522,'My first recording on new a microphone','<p>All right. Well, good evening, hackers. My name is Clinton. And this\nis a very off the cuff episode for me just to announce that I\'ve got a\nnew microphone. So I just wanted to run through a couple of details of\nthat. Make a show, say a little about the microphone while I got it.\nWhat I hope to do with it. So this is a roadie wireless go to setup. It\ncomes with three little boxes. Roughly, roughly, you can fit each one of\nthe little boxes inside a matchbox. So there are three of these that\ncome with the set that I bought. Two of them are microphones that you\nclip onto your lapel. The third is a transceiver. So at the moment, I\'ve\ngot the transceiver on and I\'ve got one of the microphones on. I bought\nthis because I\'m going to be going to a conference soon. And one of the\nthings that I do try to do at conferences is to interviews with people.\nAnd this is kind of nice in that I can switch these two microphones on.\nGive one to myself. Give one to the person I\'m interviewing. And I don\'t\nhave to use a single microphone and shove it underneath their faces. And\nI don\'t have to swap the microphone between the two of us. The other\nfeature, like the particular reason I\'ve got this model is that each of\nthe two microphone units actually has built in RAM. So it will actually\nrecord, like if you\'ve got it set up in the mode, which I do, you can\nget each microphone to do a backup recording of your presentation. The\nregular mode for this set of microphones is to actually treat the\ntransceiver as a source and plug it into computer or plug it into your\ncamera as a external microphone. But it has this lovely mode, which I\'m\nrecording this particular episode to. We can just turn it on. It\'s not\nthe transceiver is not plugged into a computer. It\'s not plugged into\nanything. And it\'ll record something like 40 hours of voice. And later\non, I can hook it up to my computer as a standard mass storage device\nand just download the waveform I believe. So it does have some Windows\nfirmware or Mac firmware. I didn\'t have too much fun getting that to\nwork under Linux. I tried under a couple of different VM products and\nwasn\'t having any luck. So try it under wine. I tried under open box.\nEventually I did end up installing like a full Windows 10 install onto a\nqemu image. And that had enough stuff working such that I could install\nthe Rode firmware on it. That let me do an upgrade of the firmware on\nthe two microphones and the transceiver because the first thing you do\nwhen you buy something these days is out of the box you have to upgrade\nthe firmware because why would they do that at the factory before they\nsend it out when they can just make the users do that. And there is a\nphone app but it does not let you update the firmware on these\nparticular hardware models. If I remember the error message correctly it\ndoes look like the Android app lets you update the firmware on other\nRode microphone devices but not this particular model. So I had to go\ndown the track of setting up a qemu. I did find a good blog post on how\nto set up a Windows box on qemu. It had a few things that seem outdated\nso maybe it\'s a job for future me to write an updated blog post on how\nto do this. If for nothing else instructions on how to do this in future\nwhen I need to rerun the firmware update. The other thing that I really\nneeded to use the software for though is to switch on the recording\noption. So out of the box these things do not record to the memory\nthat\'s built into the microphones. So I had to get, I had to update the\nfirmware and then I had to run the software on both of the microphones\nto switch on the recording option. But now that that switched on I can\njust hook it up as a USB master device as I\'ve mentioned before and\npresumably I can just copy the files and delete the files and I won\'t\nactually have to run that software. So yeah there\'s a number of options\ngoing forward so I can write that blog post with the updated details.\nThere were a number of hoops that I found that I did not have to go\nthrough of the blog post I found so things are getting easier over time.\nDepending on how in depth I want to go I could potentially one day sit\ndown and install like a USB listening device and see if I can work out\nhow to work out if there are any magic packets getting sent to do the\nconfiguration on the device. Do I need to break any crypto stuff or is\nit just a straight command like plug in the device and send a command\nwith a few funky options. So maybe in the very distant future when I\'ve\ngot no other things on I could try and work out a pure USB non windows\nsolution for setting some of these configuration options. I\'m not sure\nI\'d go down the track of updating the family I think that\'s probably a\nlittle bit too risky but you know maybe one day in the future. But yeah\nbasically this set of microphones assuming that it works out okay\nassuming that it sounds good. I\'ll hopefully be using these for\nconferences coming up. Hopefully as well I\'ll be able to use it for\ncamping and stuff like that so if I\'m out and about I\'ll just be able to\npull out these two things transceiver, microphone, a couple of clicks\nturn them on they talk to each other wirelessly and then start recording\nsomething. So it\'s much smaller than the current microphone that I\'m\nusing so it\'s much easier to travel with. There are two of them so that\nwhen I\'m interviewing someone it\'s much easier and it\'s got recording\nmemory so I don\'t actually have to plug them into a computer so all up\nit should be much easier to use. I think it might even give better\nrecording outputs and hopefully like increase the number of talks and\npresentations that I give on HBO. So that\'s been Clinton this has been a\nvery off the cuff recording I very much am used to sitting down and\nwriting out a full script for these things so I\'m doing this because\nit\'s cool new hardware but also because HPR needs more episodes. So yeah\nmaybe other people can do an episode on what particular funky wireless\nor what particular microphones that they\'ve got that they enjoy using\nand what the advantages are and disadvantages are. That\'s it for now.\nCiao.</p>\n',315,0,0,'CC-BY-SA','recording,microphone,podcast',0,0,1),
(4122,'2024-05-21','The Conference for Creative Use of the Radio Spectrum in Open Systems',1127,'A Call for Presentations for spectrum24 is open. ','<p>Ken Talks to Marc Balmer and Kristoff Bonne about spectrum24, The\nConference for Creative Use of the Radio Spectrum in Open Systems.</p>\n<p>Following the success of the Software-Defined Radio and Amateur Radio\ndevroom at FOSDEM, spectrum24 plans to bring users of the radio spectrum\ntogether.</p>\n<p>For over a century, technology has made it possible to transfer more\ndata, faster, further. Today, wireless technology is everywhere and\ncommonplace. However, it remains a playground and a ground for\ninnovation for many communities.</p>\n<p>This conference is an opportunity to publicize your projects and\nallow the different communities that use the spectrum to meet over a\nweekend.</p>\n<p>If you have an interesting talk you would like to give please see <a\nhref=\"https://spectrum-conference.org/24/cfp\"\nclass=\"uri\">https://spectrum-conference.org/24/cfp</a> for more\ninformation</p>\n<p>spectrum24 will take place September 14./15. at SmartCity Campus (1\nrue de Clairefontaine, 78120 Rambouillet.) at an old radio factory in\nRambouillet near Paris, a short 15 minute walk from the train\nstation.</p>\n<ul>\n<li>Conference Website: <a href=\"https://spectrum-conference.org/\" class=\"uri\">https://spectrum-conference.org/</a></li>\n<li>Conference Mastodon: <a href=\"https://mastodon.radio/@spectrumconf\" class=\"uri\">https://mastodon.radio/@spectrumconf</a></li>\n<li>Conference Location: <a href=\"https://smartcitycampus.fr/\" class=\"uri\">https://smartcitycampus.fr/</a></li>\n<li>FOSDEM Dev Track: <a href=\"https://fosdem.org/2024/schedule/event/fosdem-2024-1662-trx-control-modern-software-to-control-amateur-radio-transceivers-and-other-hamradio-hardware/\" class=\"uri\">https://fosdem.org/2024/schedule/event/fosdem-2024-1662-trx-control-modern-software-to-control-amateur-radio-transceivers-and-other-hamradio-hardware/</a></li>\n<li>Marc Balmer: <a href=\"https://trx-control.msys.ch/\" class=\"uri\">https://trx-control.msys.ch/</a>, <a href=\"https://msys.ch/\" class=\"uri\">https://msys.ch/</a>, <a href=\"https://marcbalmer.ch\" class=\"uri\">https://marcbalmer.ch</a>, <a href=\"https://www.linkedin.com/in/mbalmer/\" class=\"uri\">https://www.linkedin.com/in/mbalmer/</a></li>\n<li>Kristoff Bonne: <a href=\"https://mastodon.radio/@on1arf\" class=\"uri\">https://mastodon.radio/@on1arf</a></li>\n</ul>\n',30,43,0,'CC-BY-SA','spectrum24, FOSDEM, HAM, SmartCity, SDR',0,0,1),
(4126,'2024-05-27','Podcasting for Newbies',308,'All you need to become a podcaster','<p>My name is Moss Bliss. I\'m a podcaster. This is technically my 2nd\nHPR podcast, but as the first one was unintentional AND back in 2019, I\ncan start fresh.</p>\n<p>I don\'t know much of anything. I\'m a Linux user, about the same way\nmost people are Windows users. I have gotten more technical over the\npast few years largely due to being a regular on various Linux podcasts.\nI don\'t have sufficient education to be hired in computers (although\nI\'ve tried several times), and I did spend a few years in radio back in\nmy youth.</p>\n<p>So what do you have to know to become a podcaster? Almost nothing.\nJust so long as you have a computer, an Internet connection, and a\nmicrophone. (For some shows, you may need a webcam.)</p>\n<p>I got into podcasting by asking questions. I tried for almost 2 years\nto get Chris Fisher at Jupiter Broadcasting to co-feature me, with zero\nexperience, on a podcast about using Linux desktops. It never happened.\nSo when in 2018 Rob Hawkins asked for new hosts to take over mintCast, I\nwas one of the first 10 or so people to apply, and one of 6 who\neventually stuck with it. All I had was a computer, an Internet\nconnection, and a Blue Yeti microphone my little sister gave me. Within\na few months, I started another podcast, Distrohoppers\' Digest with Tony\nHughes. And a couple years later, I was asked to take over Full Circle\nWeekly News. Apparently some people like my voice. Since starting my\nlittle mini-career in podcasting, I have probably more than doubled what\nI know about Linux. I\'m not all that scared of the Terminal\nanymore...</p>\n<p>Some microphones are pretty bad, and my Blue Yeti was the worst one\non the show when I joined mintCast. In about a year, I found a very\ninexpensive CAD Audio U29 USB mic, currently $20 at Amazon, and that\nworked pretty well. Some time after taking on Full Circle Weekly News,\nthe magazine bought me a Samson Q2U ($60), which I\'m still using. I love\nthis mic, as it can be used either as a USB mic or plugged into a sound\nbox for even better audio.</p>\n<p>When I started, I had a T430 laptop and the Blue Yeti microphone. My\nlisteners and co-hosts have made my life better with new and used\nequipment I could never have afforded on my own, including laptops,\nRaspberry Pis, modems, routers, headphones, and even a sound box. My\ncurrent setup includes a 2016 Lenovo ThinkCentre M600 Tiny, which cost\nme under $200 on eBay, a Focusrite Solo sound box (a gift from a\nfriend), a WavLink ST336A external goodies box (also a gift), and an old\nDynex 26\" TV I use as a monitor I paid $15 for locally. I have a boom\narm for my microphone, which is made by Neewer and costs $15 on Amazon.\nMy keyboard is a Fellowes Microban Natural, which I need as a trained\ntouch typist. And I put all this stuff on a little rolling computer\ndesk, which I bought used locally for $25.</p>\n<p>The only software I use is Audacity, and I didn\'t need to know any\nmore than the basics. If you\'re part of a team, such as mintCast, you\naren\'t even required to do any audio editing, although if you know your\nway around Audacity you will find your skills very welcome.</p>\n<p>If you want to start podcasting, have the equipment, contact Ken\n(<small><em>Note:</em> I misspoke in the audio and said Ronnie where I\nmeant Ken</small>) and do something here at HPR, which is a fairly low\nentry bar, or you might contact long-running shows such as mintCast.\nParticipation and commitment are usually all that is required.</p>\n<p>OK, so maybe you want to do more than produce an HPR show or join\nmintCast. You have your own idea and you want to get it out there, your\nown personal podcast. This is where it gets a little more detailed. If\nyou already have the information you need, you can stop the podcast\nhere, but...</p>\n<p>First, you\'ll need a website or blog (if you\'re really broke, there\nare free WordPress sites available at wordpress.com, or you could use\nthe dreaded Google blogs (blogger and blogspot). Other than that, you\'d\nhave to register a domain name, find a webhost, and write a website,\nsome of which can be cheap (or not!). Then you have to find a way to\nstream your podcast. Google has closed Feedburner, but there are some\npaid places like Red Circle you can get for not much bread. Those will\nprobably help you stream your podcast to places like Apple Music,\nArchive.org, Spotify, etc. But if you want help from me, I\'m already\nlost. mintCast is handled by Bill H., Distrohoppers\' Digest is handled\nby Dale M., and my Full Circle Weekly News is uploaded to Ronnie for\npublication.</p>\n<p>Or maybe you want to do it with a few friends, and they can\'t cram\nthemselves into your bedroom to do that. In that case, you should\nexplore using Discord, Jitsi, VDO.ninja, or (sizzle preserve us!) Zoom.\nEveryone will need to record their own part of the stream, and you\'ll\nneed someone who knows Audacity well enough to edit a few (or several)\nstreams together. Maybe you want to post it on YouTube. If you want both\na video and audio podcast, someone will have to learn OBS <em>and</em>\nAudacity, and if you want the video podcast to be edited, have fun\nlearning one of the many video editors out there (you might start with\nKDEnlive).</p>\n<p>For more information on streaming, you\'ll need to get someone else to\nmake an HPR podcast on the subject. Way over my head.</p>\n<p>I hope this little show has pushed a few of you into wanting to try\nyour hand. It doesn\'t take much, or it takes a whole lot, depending on\nwhat you want to do, and your future listeners will thank you. My\nlisteners have certainly shown me lots of thanks.</p>\n',431,0,0,'CC-BY-SA','podcasting, equipment, easy',0,0,1),
(4119,'2024-05-16','Cov\'s Jams 003',698,'A compilation of libre licensed music that Cov enjoyed listening to','<p>Welcome to the third episode of Cov\'s jams.</p>\n<p>We\'ll start with a couple electronica pieces from Arkadii Kaplan:\nCorporate Success and Chasing the Shadow. I also featured Kaplan in the\nsecond episode of Cov\'s Jams, way back in 2016. I\'m glad to be back.</p>\n<p>Next up are two dubstep selections: Time to Army by Muciojad and\nSweet Nothing by K4MMERER.</p>\n<p>Daniel Bautista\'s Symphony Number 5 will close out the episode.\nDaniel Bautista wins at Free, Libre, and Open Source. Not only is he\nplaying public domain Beethoven, but he recorded and mixed the album (in\nMay and June of 2008) on a <a href=\"https://www.gentoo.org/\">Gentoo\nLinux</a> box. Gentoo is how I really learned Linux. He\'s still\nreleasing libre licensed albums and his newer releases have video\nrecordings which he edits in <a\nhref=\"https://kdenlive.org\">kdenlive</a>.</p>\n<p>The first four tracks are under the Creative Commons\nAttribution-Share Alike license: Corporate Success and Chasing the\nShadow by Arkadii Kaplan, Time to Army by Muciojad, and Sweet Nothing by\nK4MMERER. Daniel Bautista\'s Symphony Number 5 is licensed Creative\nCommons Attribution.</p>\n<p>Thank you for listening to this third episode of Cov\'s Jams. I hope\nwe can enjoy some new tunes together soon!</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a\nhref=\"https://www.jamendo.com/track/1056004/corporate-succes\">Arkadii\nKaplan - Corporate Success</a></li>\n<li><a\nhref=\"https://www.jamendo.com/track/1055993/chasing-the-shadow\">Arkadii\nKaplan - Chasing the Shadow</a></li>\n<li><a\nhref=\"https://www.jamendo.com/track/1250890/time-to-army\">Muciojad -\nTime to Army</a></li>\n<li><a\nhref=\"https://www.jamendo.com/track/1122656/sweet-nothing\">K4MMERER -\nSweet Nothing</a></li>\n<li><a\nhref=\"https://www.danielbautista.com/discography.php#beethoven\">Daniel\nBautista - Symphony Number 5</a></li>\n</ul>\n',322,22,0,'CC-BY-SA','music',0,0,1),
(4124,'2024-05-23','Developing a project',425,'Collaborating to develop an alternative time system','<ul>\n<li><a href=\"https://github.com/timeprism/introduction\"\nclass=\"uri\">https://github.com/timeprism/introduction</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Decimal_time\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Decimal_time</a></li>\n</ul>\n',403,0,1,'CC-BY-SA','time, programming',0,0,1),
(4127,'2024-05-28','Retro fun with the GPi 2 cases',1542,'Kevie takes a look at and shares his experience with the GPi 2 & 2W cases','<p>In this episode Kevie, co-host of <a href=\"https://tuxjam.otherside.network\">TuxJam</a>, takes a look at the GPi 2 and the GPi 2W cases from <a href=\"https://retroflag.com\">Retroflag</a>.</p>\n<p>To complete this project you will need:</p>\n<ul>\n<li>GPi 2/2W Case</li>\n<li>CM4/Raspberry Pi Zero</li>\n<li>Micro SD-Card</li>\n</ul>\n<p>These can be purchased from the <a href=\"https://retroflag.com\">Retroflag</a> website or <a href=\"https://thepihut.com\">The Pi Hut</a> in the UK. On top of this you will also need a selection of ROMs and a <a href=\"https://retropie.org.uk/download/\">Retropie</a> image</p>\n',296,0,0,'CC-BY-SA','Pi,Gaming,retro',0,0,1),
(4128,'2024-05-29','30 years of the internet',1864,'Knight wise looks back at 30 years online and how the Internet has changed his life','<p>A show with stories on how I found the Internet and the connections\nbrought me with other people I\'ve changed my life.</p>\n',111,0,0,'CC-BY-SA','internet,',0,0,1),
(4129,'2024-05-30','How I found Hacker Public Radio',246,'Another podcast led me to Hacker Public Radio. ','<p>The reason I found HPR can be traced back to the 1990\'s when I first\nheard about Linux and I got interested in Linux. But it was not until\nten years ago that I actually started to try Linux for real. A friend\nwas enthusiastic about Linux. Although he did not have a computer\nhimself, he made CD copies of multiple Linux distributions and gave to\nme. And it happened more than once.</p>\n<p>At this time I was on macOS on a macMini. But I also had a cheap\nlaptop with Windows 10 for a few programs. That laptop was too cheap\nwith too little memory and soon, despite it was not old, it could not\nmanage to keep Windows updated, it had too little memory even without\nadditional software: 32 GB hard drive and 2 GB RAM. So, this was the\ndriver to install Linux for real. I installed Linux Mint. And the laptop\nwas now usable again, with an updated operating system.</p>\n<p>My interest in Linux Mint led me to start listen to the pod Mintcast\nsome years ago.</p>\n<p>One of the hosts of Mintcast was also an HPR correspondent, and in\nhis presentation of himself at every pod episode he told he gave shows\nat HPR and shared his ID number.</p>\n<p>Every Mintcast pod episode also had acknowledgements where Mintcast\nthanked HPR for letting them use the HPR Mumble server.</p>\n<p>At the end of each year, Mintcast also sends the jingle for the HPR\nNew year show where everyone is welcome to live chat or just listen.</p>\n<p>I know I have tuned in and listened to the New year show. Eventually\nI also listened to one or another show in earlier years.</p>\n<p>When Mintcast this year, 2024, has talked about Hacker Public Radio\nthey have mentioned it was low on episodes and encouraged Mintcast\nlisteners to contribute.</p>\n<p>It was after this I finally started to become a regular listener to\nHacker Public Radio and at the same time recorded my first show.</p>\n<p>I like HPR for its community based host approach.<br />\nI like that shows mostly have the Creative Commons\nAttribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.<br />\nI like the concept of knowledge and experience sharing.<br />\nI like that the content is what matters most, the equipment and\npresentation skills are of less importance.<br />\nI like the monthly community shows with feedback and review of shows and\ncomments.<br />\nI like the occasional comments to my shows and my possibility to comment\nother shows on the website.</p>\n<p>That is how my journey with Hacker Public Radio started.</p>\n',429,0,0,'CC-BY-SA','Hacker Public Radio, HPR, MintCast, podcast',0,0,1),
(4144,'2024-06-20','Running a Self-Hosted Mail Server',703,'Experiences using iRedMail and mailcow','<h2 id=\"links\">Links</h2>\n<ul>\n<li><a href=\"https://mailcow.email/\"\nclass=\"uri\">https://mailcow.email/</a></li>\n<li><a href=\"https://iredmail.org/\"\nclass=\"uri\">https://iredmail.org/</a></li>\n</ul>\n',403,0,0,'CC-BY-SA','email, self-hosting',0,0,1),
(4132,'2024-06-04','Urandom talks about the future of HPR',2555,'The Urandom lads talk in circles for about an hour about HPR','<p>The <a href=\"https://urandom-podcast.info\">Urandom</a> lads talk in\ncircles for about an hour about HPR.</p>\n',270,0,1,'CC-BY-SA','Hacker Public Radio',0,0,1),
(4371,'2025-05-05','HPR Community News for April 2025',2264,'HPR Volunteers talk about shows released and comments posted in April 2025','<h2>New hosts</h2>\n<p>\nWelcome to our new hosts: <br />\n\n    <a href=\"https://hackerpublicradio.org/correspondents/0444.html\" target=\"_blank\">murph</a>, \n    <a href=\"https://hackerpublicradio.org/correspondents/0445.html\" target=\"_blank\">Jerm</a>, \n    <a href=\"https://hackerpublicradio.org/correspondents/0446.html\" target=\"_blank\">Elsbeth</a>, \n    <a href=\"https://hackerpublicradio.org/correspondents/0447.html\" target=\"_blank\">ko3moc</a>, \n    <a href=\"https://hackerpublicradio.org/correspondents/0448.html\" target=\"_blank\">oxo</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/hpr4347/index.html\" target=\"_blank\">4347</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2025-04-01</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4347/index.html\" target=\"_blank\">\"Of my country!\" Brazil - in a Southern city viewing</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0441.html\" target=\"_blank\">Antoine</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr4348/index.html\" target=\"_blank\">4348</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2025-04-02</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4348/index.html\" target=\"_blank\">Resizing the root partition on a 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/hpr4349/index.html\" target=\"_blank\">4349</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2025-04-03</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4349/index.html\" target=\"_blank\">xbindkeys send keys for linux!</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/hpr4350/index.html\" target=\"_blank\">4350</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2025-04-04</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4350/index.html\" target=\"_blank\">GIMP: More Photo Fixes</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/hpr4351/index.html\" target=\"_blank\">4351</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2025-04-07</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4351/index.html\" target=\"_blank\">HPR Community News for March 2025</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/hpr4352/index.html\" target=\"_blank\">4352</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2025-04-08</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4352/index.html\" target=\"_blank\">Why grandma, what large language models you have.</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/hpr4353/index.html\" target=\"_blank\">4353</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2025-04-09</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4353/index.html\" target=\"_blank\">diff and patch</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/hpr4354/index.html\" target=\"_blank\">4354</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2025-04-10</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4354/index.html\" target=\"_blank\">24-25 New Years Eve show episode 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/hpr4355/index.html\" target=\"_blank\">4355</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2025-04-11</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4355/index.html\" target=\"_blank\">Record player audio - Streaming with Darkice</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/hpr4356/index.html\" target=\"_blank\">4356</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2025-04-14</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4356/index.html\" target=\"_blank\">Mirror Mirror On The Wall</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/hpr4357/index.html\" target=\"_blank\">4357</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2025-04-15</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4357/index.html\" target=\"_blank\">Short introduction by murph.</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0444.html\" target=\"_blank\">murph</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr4358/index.html\" target=\"_blank\">4358</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2025-04-16</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4358/index.html\" target=\"_blank\">My linux journey</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0445.html\" target=\"_blank\">Jerm</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr4359/index.html\" target=\"_blank\">4359</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2025-04-17</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4359/index.html\" target=\"_blank\">Fosdem 2025 - My Personal Experience</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0438.html\" target=\"_blank\">Paulj</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr4360/index.html\" target=\"_blank\">4360</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2025-04-18</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4360/index.html\" target=\"_blank\">Isaac Asimov: The Robot Novels</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/hpr4361/index.html\" target=\"_blank\">4361</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2025-04-21</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4361/index.html\" target=\"_blank\">On my own time</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0297.html\" target=\"_blank\">Swift110</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr4362/index.html\" target=\"_blank\">4362</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2025-04-22</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4362/index.html\" target=\"_blank\">Elsbeth\'s First Episode</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0446.html\" target=\"_blank\">Elsbeth</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr4363/index.html\" target=\"_blank\">4363</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2025-04-23</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4363/index.html\" target=\"_blank\">My First Episode for HPR </a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0447.html\" target=\"_blank\">ko3moc</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr4364/index.html\" target=\"_blank\">4364</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2025-04-24</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4364/index.html\" target=\"_blank\">24-25 New Years Eve show 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/hpr4365/index.html\" target=\"_blank\">4365</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2025-04-25</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4365/index.html\" target=\"_blank\">Mint to Rocket Money and Scammers </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/hpr4366/index.html\" target=\"_blank\">4366</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2025-04-28</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4366/index.html\" target=\"_blank\">My audio setup and editing</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0441.html\" target=\"_blank\">Antoine</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr4367/index.html\" target=\"_blank\">4367</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2025-04-29</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4367/index.html\" target=\"_blank\">My first episode; 001 Introduction</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0448.html\" target=\"_blank\">oxo</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr4368/index.html\" target=\"_blank\">4368</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2025-04-30</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4368/index.html\" target=\"_blank\">Lessons learned moderating technical discussion panels</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0149.html\" target=\"_blank\">Trixter</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 8 comments on\n6 previous shows:</p>\n<ul>\n<li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4325/index.html#comments\" target=\"_blank\">hpr4325</a></strong>\n(2025-02-28) \"<em>Two Software I use- Futo Keyboard and Inoreader</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0441.html\" target=\"_blank\">Antoine</a>.<br/>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps/hpr4325/index.html#comment_4278\" target=\"_blank\">Comment 3</a>:\nArcher72 on 2025-04-12:\n\"Re: My setup and the Community Show\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4330/index.html#comments\" target=\"_blank\">hpr4330</a></strong>\n(2025-03-07) \"<em>GIMP: Fixing Photos</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/hpr4330/index.html#comment_4274\" target=\"_blank\">Comment 6</a>:\nKen Fallon on 2025-04-04:\n\"Bug Report\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4334/index.html#comments\" target=\"_blank\">hpr4334</a></strong>\n(2025-03-13) \"<em>24-25 New Years Eve show episode 3</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0269.html\" target=\"_blank\">Honkeymagoo</a>.<br/>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps/hpr4334/index.html#comment_4271\" target=\"_blank\">Comment 1</a>:\nDave Morriss on 2025-04-01:\n\"Nyckelharpa\"</li>\n<li>\n<a href=\"https://hackerpublicradio.org/eps/hpr4334/index.html#comment_4272\" target=\"_blank\">Comment 2</a>:\nKevin O&#39;Brien on 2025-04-02:\n\"Cool!\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4339/index.html#comments\" target=\"_blank\">hpr4339</a></strong>\n(2025-03-20) \"<em>Review of the YR01 smart lock</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0293.html\" target=\"_blank\">Rho`n</a>.<br/>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps/hpr4339/index.html#comment_4276\" target=\"_blank\">Comment 3</a>:\nWindigo on 2025-04-10:\n\"Similar Frustrations\"</li>\n<li>\n<a href=\"https://hackerpublicradio.org/eps/hpr4339/index.html#comment_4277\" target=\"_blank\">Comment 4</a>:\nRho`n on 2025-04-11:\n\"The problem with passcodes\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4341/index.html#comments\" target=\"_blank\">hpr4341</a></strong>\n(2025-03-24) \"<em>Transferring Large Data Sets</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0436.html\" target=\"_blank\">hairylarry</a>.<br/>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps/hpr4341/index.html#comment_4273\" target=\"_blank\">Comment 1</a>:\npaulj on 2025-04-04:\n\"Thanks for this!\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4346/index.html#comments\" target=\"_blank\">hpr4346</a></strong>\n(2025-03-31) \"<em>A brief review of the Pinetab 2</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0297.html\" target=\"_blank\">Swift110</a>.<br/>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps/hpr4346/index.html#comment_4269\" target=\"_blank\">Comment 1</a>:\nKevin O&#39;Brien on 2025-04-01:\n\"Zareason\"</li></ul><br/>\n</li></ul>\n<h3>This month\'s shows</h3>\n<p>There are 17 comments on 7 of this month\'s shows:</p>\n<ul><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4347/index.html#comments\" target=\"_blank\">hpr4347</a></strong>\n(2025-04-01) \"<em>\"Of my country!\" Brazil - in a Southern city viewing</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0441.html\" target=\"_blank\">Antoine</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr4347/index.html#comment_4270\" target=\"_blank\">Comment 1</a>:\nAndrew on 2025-04-01:\n\"Thanks, and transition sounds...\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4347/index.html#comment_4275\" target=\"_blank\">Comment 2</a>:\nAntoine on 2025-04-05:\n\"Yeah! Thanks!\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4347/index.html#comment_4281\" target=\"_blank\">Comment 3</a>:\nSome Guy on the Internet on 2025-04-19:\n\"Scope and info.\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4347/index.html#comment_4284\" target=\"_blank\">Comment 4</a>:\nAntoine on 2025-04-20:\n\"Thanks\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4348/index.html#comments\" target=\"_blank\">hpr4348</a></strong>\n(2025-04-02) \"<em>Resizing the root partition on a PC</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0201.html\" target=\"_blank\">MrX</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr4348/index.html#comment_4280\" target=\"_blank\">Comment 1</a>:\nKevie on 2025-04-14:\n\"A close scrape\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4348/index.html#comment_4282\" target=\"_blank\">Comment 2</a>:\nSome Guy on the Internet on 2025-04-19:\n\"Lesson 4 made me laugh out loud.\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4349/index.html#comments\" target=\"_blank\">hpr4349</a></strong>\n(2025-04-03) \"<em>xbindkeys send keys for linux!</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/hpr4349/index.html#comment_4283\" target=\"_blank\">Comment 1</a>:\nSome Guy on the Internet. on 2025-04-19:\n\"Very cool.\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4358/index.html#comments\" target=\"_blank\">hpr4358</a></strong>\n(2025-04-16) \"<em>My linux journey</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0445.html\" target=\"_blank\">Jerm</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr4358/index.html#comment_4279\" target=\"_blank\">Comment 1</a>:\nArcher72 on 2025-04-13:\n\"First episode\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4358/index.html#comment_4285\" target=\"_blank\">Comment 2</a>:\npaulj on 2025-04-21:\n\"Welcome to HPR\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4361/index.html#comments\" target=\"_blank\">hpr4361</a></strong>\n(2025-04-21) \"<em>On my own time</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0297.html\" target=\"_blank\">Swift110</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr4361/index.html#comment_4290\" target=\"_blank\">Comment 1</a>:\npaulj on 2025-04-26:\n\"I get it! \"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4362/index.html#comments\" target=\"_blank\">hpr4362</a></strong>\n(2025-04-22) \"<em>Elsbeth\'s First Episode</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0446.html\" target=\"_blank\">Elsbeth</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr4362/index.html#comment_4286\" target=\"_blank\">Comment 1</a>:\nArcher72 on 2025-04-21:\n\"Welcome and Cybersecurity\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4362/index.html#comment_4287\" target=\"_blank\">Comment 2</a>:\nTrey on 2025-04-22:\n\"Welcome!\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4362/index.html#comment_4289\" target=\"_blank\">Comment 3</a>:\npaulj on 2025-04-26:\n\"Welcome to HPR\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4362/index.html#comment_4291\" target=\"_blank\">Comment 4</a>:\nFXB on 2025-04-26:\n\"Welcome\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4362/index.html#comment_4292\" target=\"_blank\">Comment 5</a>:\nKevin O&#39;Brien on 2025-04-26:\n\"I loved the show\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4363/index.html#comments\" target=\"_blank\">hpr4363</a></strong>\n(2025-04-23) \"<em>My First Episode for HPR </em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0447.html\" target=\"_blank\">ko3moc</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr4363/index.html#comment_4288\" target=\"_blank\">Comment 1</a>:\nArcher72 on 2025-04-23:\n\"First show:  Welcome\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4363/index.html#comment_4293\" target=\"_blank\">Comment 2</a>:\nArcher72 on 2025-04-28:\n\"Ham Radio\"</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://lists.hackerpublicradio.com/mailman/listinfo/hpr\" target=\"_blank\">Mailing List</a>\nwhich is open to all HPR listeners and contributors. The discussions are open\nand available on the HPR server under <a href=\"https://lists.hackerpublicradio.com/pipermail/hpr\">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/2025-April/thread.html\" target=\"_blank\">https://lists.hackerpublicradio.com/pipermail/hpr/2025-April/thread.html</a>\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',159,47,1,'CC-BY-SA','Community News',0,0,1);
INSERT INTO `eps` (`id`, `date`, `title`, `duration`, `summary`, `notes`, `hostid`, `series`, `explicit`, `license`, `tags`, `version`, `downloads`, `valid`) VALUES (4136,'2024-06-10','Pi Samba Share',776,'Setting up a Samba share on your Pi for when your streaming services are down','<p>We live in a time where everything is streamed; from our TV, radio,\npodcasts everything is fine until the internet goes down. Gone are the\ndays of simply turning on the TV with a set top aerial. With this in\nmind, I set up an old Raspberry Pi 2 and connected it to use as a video\nand music server through a Samba share.</p>\n<p>To complete this task you will need:</p>\n<ul>\n<li>A Raspberry Pi</li>\n<li>A micro-SD card</li>\n<li>An Ethernet cable</li>\n<li>An external hard drive (min 2TB recommended)</li>\n</ul>\n<p>Step 1: Update your Pi software in the terminal:</p>\n<pre><code>sudo apt update &amp;&amp; sudo apt upgrade</code></pre>\n<p>Step 2: To allow us to share our files over a network we will install\nSamba:</p>\n<pre><code>sudo apt install samba</code></pre>\n<p>Step 3: To find UUID and the file system of the drive, enter:</p>\n<pre><code>sudo blkid</code></pre>\n<p>Ignore the line with <code>fat32</code>, this is your Micro-SD\ncard.</p>\n<p>Step 4: We need to mount this drive automatically whenever the\nRaspberry Pi is switched on. Firstly, we\'ll need to create a location to\nmount the external hard drive, we can do this by using the command:</p>\n<pre><code>sudo mkdir /media/external</code></pre>\n<p>Step 5: Now we need to edit the fstab to tell the Raspberry Pi to\nautomount the external drive every time it is switched on</p>\n<pre><code>sudo nano /etc/fstab</code></pre>\n<p>Insert the following line at the bottom of the page:</p>\n<pre><code>UUID=&quot;{the UUID you noted down in step 3}&quot;     /media/external   {type noted in step 3}     auto,user,rw      0     0</code></pre>\n<p>The above should all be on one line, pressing the tab key to create a\ngap between each piece of information.</p>\n<p>Step 6: Now we need to set up which folders are going to be shared.\nI\'ll assume that we are going to make the whole of the external drive\navailable over the network</p>\n<pre><code>sudo nano /etc/samba/smb.conf</code></pre>\n<p>At the bottom of the page add the following, note that you can call\nthis anything you wish, just exchange the word external but you must\ninclude [ ]:</p>\n<pre><code>[external]\npath = /media/external\navailable= yes\nbrowsable = yes\npublic = yes\nwritable = yes</code></pre>\n<p>It\'s worth noting before we continue that I\'ve set the option\n<code>writable = yes</code>, this means that you can add to or remove\nthe contents of the external drive over the network. If you are not\ncomfortable having this option then simply change it to\n<code>writable = no</code>. Now save and exit (ctrl + X), make sure that\nyou answer \'yes\' to save your changes.</p>\n<p>Step 7: We will now set the Raspberry Pi to log in automatically on\nstartup, if the user Pi isn\'t logged in then all of things we\'ve just\nset up will not work. Type:</p>\n<pre><code>sudo nano /etc/inittab</code></pre>\n<p>Navigate down to the line:</p>\n<pre><code>1:2345:respawn:/sbin/getty --noclear 38400 tty1</code></pre>\n<p>and add <code>--autologin pi</code> after <code>getty</code> to make\nthe line:</p>\n<pre><code>1:2345:respawn:/sbin/getty --autologin pi --noclear 38400 tty1</code></pre>\n<p>Save and exit (ctrl + X) make sure that you answer \'yes\' to save\nit.</p>\n<p>Step 8: We can try it out our system and auto-login by using the\ncommand</p>\n<pre><code>sudo reboot</code></pre>\n<p>Assuming that everything goes well, your system should be up and\nrunning. Try and find it on a computer through the file manager. I\npersonally recommend saving the Pi location on Kodi for an easy to use\nsolution for browsing your media on a TV.</p>\n',296,0,0,'CC-BY-SA','Pi,media,server,samba',0,0,1),
(4133,'2024-06-05','Mastodon as a way to comment to HPR episodes',1180,'norrist discusses commenting on the hpr mastodon bot\'s post','<h1 id=\"mastodon-as-a-way-to-comment-to-hpr-episodes\">Mastodon as a way\nto comment to HPR episodes</h1>\n<h2 id=\"prompted-by-knightwise\">Prompted by Knightwise</h2>\n<ul>\n<li>I should be easier for listeners to discuss shows.</li>\n<li>There have been several times I have intended to leave a comment on\na show, but I forget by the time I get back to my PC</li>\n<li>Mastodon is made for community interaction.</li>\n<li>If you are active on mastodon, replying to a mastodon post is\nprobably easier than the HPR comment form.</li>\n</ul>\n<h2 id=\"hpr-bot\">HPR Bot</h2>\n<ul>\n<li>HPR has a mastodon bot that makes a post when a new show is\nreleased</li>\n<li>The Bot\'s post and replies can be used as a comment system for\nHPR</li>\n<li>https://botsin.space/<span class=\"citation\"\ndata-cites=\"hpr\">@hpr</span></li>\n</ul>\n<h2 id=\"easy-methods-to-including-mastodon-on-a-static-page\">Easy\nMethods to including Mastodon on a static page</h2>\n<ul>\n<li>Each post has an embed link, but it does not include replies.</li>\n<li>JavaScript can be used to display the post and replies\n<ul>\n<li>Example\nhttps://carlschwan.eu/2020/12/29/adding-comments-to-your-static-blog-with-mastodon/</li>\n<li>Carl Schwan - KDE developer</li>\n</ul></li>\n<li>Neither of these is ideal</li>\n</ul>\n<h2 id=\"mastodon-api\">Mastodon API</h2>\n<ul>\n<li>Mastodon has an API that can be used to pull a list of status\nupdates.</li>\n<li>The comments can be pulled from the API and added to the static\nsite.</li>\n</ul>\n<h2 id=\"proof-of-concept\">Proof of concept</h2>\n<ul>\n<li>HPR site using RSS feeds as the data source</li>\n<li>https://gitlab.com/norrist/hprfeed2db\n<ul>\n<li>Full episode feed</li>\n<li>Comments feed.</li>\n<li>HPR Episodes 3637 and 3654\n<ul>\n<li>https://hpr.norrist.xyz/episodes/HPR3637.html</li>\n<li>https://hpr.norrist.xyz/episodes/HPR3654.html</li>\n</ul></li>\n</ul></li>\n<li>Add a new step to pull in the HPR Bot post replies as comments.</li>\n<li>As a demo https://hpr.norrist.xyz will have mastodon comments on\nrecent episode pages.</li>\n</ul>\n<h2 id=\"get_mastodon_comments.py\">get_mastodon_comments.py</h2>\n<ul>\n<li><code>load_comments_from_bot()</code>\n<ul>\n<li>look for status updates regex\n<code>\"New Episode: hpr(\\d+) :: \"</code></li>\n</ul></li>\n<li><code>get_thread_comments()</code>\n<ul>\n<li>builds list of <code>descendants</code> - aka comments</li>\n</ul></li>\n<li><code>update_db()</code>\n<ul>\n<li>loops through list of comments</li>\n<li>extracts - author, content, , pubdate, ...</li>\n<li>inserts into sqlite database along with data from full episode and\ncomment feeds.</li>\n</ul></li>\n<li>HTML template displays mastodon comments underneath the comments\nfrom the comment RSS feed.</li>\n</ul>\n<h2 id=\"mastodon-comment-moderation\">Mastodon Comment Moderation</h2>\n<ul>\n<li>I didn\'t implement any moderation, but there are a few possible ways\nto do so\n<ol type=\"1\">\n<li>Maintain a list of <strong>approved contributors</strong>. When an\nunapproved commenter posts\n<ul>\n<li>notify the admin that there are comments by a new commenter</li>\n<li>skip adding any comments to the database until the commenter is\nadded to the approve list</li>\n</ul></li>\n<li>Maintain a list of approved comments\n<ul>\n<li>comments have unique id</li>\n<li>Add approved comment ID to a database</li>\n<li>Only display approved comments.</li>\n</ul></li>\n</ol></li>\n</ul>\n<h2 id=\"going-forward\">Going Forward</h2>\n<ul>\n<li>Even without including mastodon comments on the HPR Page</li>\n<li>Increase awareness of HPR on Mastodon\n<ol start=\"0\" type=\"1\">\n<li>Follow the HPR bot on mastodon.</li>\n<li>Tag yourself when one of your shows is posted by the HPR.</li>\n<li>Add your mastodon account to your HPR profile / show notes.</li>\n<li>Comment on the HPR bots mastodon post.</li>\n</ol></li>\n</ul>\n<h2 id=\"links\">Links</h2>\n<ul>\n<li>My mastodon account - https://noc.social/<span class=\"citation\"\ndata-cites=\"norrist\">@norrist</span></li>\n<li>Python to get mastodon comments -\nhttps://gitlab.com/norrist/hprfeed2db/-/blob/main/get_mastdon_comments.py</li>\n<li>Example page with Mastodon Comments -\nhttps://hpr.norrist.xyz/episodes/HPR4126.html\n<ul>\n<li>This page may not have any mastodon comments depending on when you\ncheck the page.</li>\n<li>Check a more recent page if there are no mastodon comments.</li>\n</ul></li>\n</ul>\n',342,0,0,'CC-BY-SA','python, mastodon, hpr',0,0,1),
(4141,'2024-06-17','Picade Console',913,'Kevie talks about his experience and shares his thoughts on the Picade Console','<p>Continuing his series talking about some of his Raspberry Pi projects, <a\n    href=\"https://tuxjam.otherside.network\">TuxJam</a> co-host <a href=\"https://mastodon.me.uk/@kevie\">Kevie</a> talks about his recent experience with the <a href=\"https://shop.pimoroni.com/products/picade-console\">Picade Console</a> from <a href=\"https://shop.pimoroni.com/\">Pimoroni</a>.</p>\n',296,0,0,'CC-BY-SA','Pi,Gaming,retro,Pimoroni',0,0,1),
(4134,'2024-06-06','Goodbye Craig Maloney. ',4324,'Remembering a friend','<p>Craig S. Maloney age 52 of Madison Heights formerly of Royal Oak,\npassed away on Tuesday, April 2, 2024 at his residence with his family\nat his side.</p>\n<p>It was with great sadness that I heard of the passing of Craig\nMaloney.</p>\n<p>We knew him through his podcast <a href=\"https://openmetalcast.com\"\nclass=\"uri\">https://openmetalcast.com</a>, which is a member of the <a\nhref=\"https://freeculturepodcasts.org/\"\nclass=\"uri\">https://freeculturepodcasts.org/</a> Creative Commons\npodcasts.</p>\n<p>Our thoughts go out to his Family and Friends.</p>\n<ul>\n<li><a\nhref=\"https://www.davidrevoy.com/article1021/goodbye-craig-maloney\"\nclass=\"uri\">https://www.davidrevoy.com/article1021/goodbye-craig-maloney</a></li>\n<li><a href=\"https://octodon.social/@kattni/112202546947731897\"\nclass=\"uri\">https://octodon.social/@kattni/112202546947731897</a> Kattni\n@<a href=\"mailto:kattni@octodon.social\"\nclass=\"email\">kattni@octodon.social</a></li>\n<li><a href=\"https://decafbad.net/about/\"\nclass=\"uri\">https://decafbad.net/about/</a> Blog Craig Maloney More than\nyou cared to know</li>\n<li><a href=\"https://fosstodon.org/@pyohio/112259341818484139\"\nclass=\"uri\">https://fosstodon.org/@pyohio/112259341818484139</a> The\nPyOhio community recently lost a good friend</li>\n<li><a\nhref=\"https://www.legacy.com/us/obituaries/name/craig-maloney-obituary?id=54791928\"\nclass=\"uri\">https://www.legacy.com/us/obituaries/name/craig-maloney-obituary?id=54791928</a>\nCraig Maloney Obituary</li>\n</ul>\n',30,0,1,'CC-BY-NC-SA','cmaloney, pepperandcarrot, OpenMetalCast',0,0,1),
(4135,'2024-06-07','Mining the web',914,'In this episode I talk a bit about a project I have been working on to index the web. ','<p>I don\'t have shownotes for this one. Sorry for that.</p>\n<p>Please refer to the transcript for more information.</p>\n',387,0,1,'CC-BY-SA','docker, redis, hacking, mongodb, scraping, dns, certificate-transparency',0,0,1),
(4391,'2025-06-02','HPR Community News for May 2025',4617,'HPR Volunteers talk about shows released and comments posted in May 2025','<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/hpr4369/index.html\" target=\"_blank\">4369</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2025-05-01</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4369/index.html\" target=\"_blank\">What LP records do I have?</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/hpr4370/index.html\" target=\"_blank\">4370</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2025-05-02</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4370/index.html\" target=\"_blank\">Playing Civilization IV, Part 8</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/hpr4371/index.html\" target=\"_blank\">4371</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2025-05-05</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4371/index.html\" target=\"_blank\">HPR Community News for April 2025</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/hpr4372/index.html\" target=\"_blank\">4372</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2025-05-06</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4372/index.html\" target=\"_blank\">The power of GNU Readline - part 4</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/hpr4373/index.html\" target=\"_blank\">4373</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2025-05-07</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4373/index.html\" target=\"_blank\">Rsync with stdin as source</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0448.html\" target=\"_blank\">oxo</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr4374/index.html\" target=\"_blank\">4374</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2025-05-08</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4374/index.html\" target=\"_blank\">24-25 New Years Eve show 7</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/hpr4375/index.html\" target=\"_blank\">4375</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2025-05-09</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4375/index.html\" target=\"_blank\">Long Chain Carbons,Eggs and Dorodango?</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/hpr4376/index.html\" target=\"_blank\">4376</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2025-05-12</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4376/index.html\" target=\"_blank\">Re-research</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/hpr4377/index.html\" target=\"_blank\">4377</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2025-05-13</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4377/index.html\" target=\"_blank\">Password store and the pass 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/hpr4378/index.html\" target=\"_blank\">4378</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2025-05-14</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4378/index.html\" target=\"_blank\">SQL to get the next_free_slot</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/hpr4379/index.html\" target=\"_blank\">4379</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2025-05-15</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4379/index.html\" target=\"_blank\">Mapping Municipalities\' Digital Dependencies</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0433.html\" target=\"_blank\">Trollercoaster</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr4380/index.html\" target=\"_blank\">4380</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2025-05-16</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4380/index.html\" target=\"_blank\">Isaac Asimov: The Rest of Asimov\'s Foundation Stories</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/hpr4381/index.html\" target=\"_blank\">4381</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2025-05-19</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4381/index.html\" target=\"_blank\">What Omni-Instantness Makes To My Brain and Your Brain?</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0441.html\" target=\"_blank\">Antoine</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr4382/index.html\" target=\"_blank\">4382</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2025-05-20</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4382/index.html\" target=\"_blank\">Understanding Antenna Gain and the Decibel scale</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0438.html\" target=\"_blank\">Paulj</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr4383/index.html\" target=\"_blank\">4383</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2025-05-21</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4383/index.html\" target=\"_blank\">Changing font in Arch Linux (Wayland)</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0448.html\" target=\"_blank\">oxo</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr4384/index.html\" target=\"_blank\">4384</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2025-05-22</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4384/index.html\" target=\"_blank\">Browser and dedicated apps on the mobile phone</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0429.html\" target=\"_blank\">Henrik Hemrin</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr4385/index.html\" target=\"_blank\">4385</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2025-05-23</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4385/index.html\" target=\"_blank\">Cable un-managment lol</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/hpr4386/index.html\" target=\"_blank\">4386</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2025-05-26</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4386/index.html\" target=\"_blank\">Silly Tavern Spicy Roll Play</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/hpr4387/index.html\" target=\"_blank\">4387</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2025-05-27</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4387/index.html\" target=\"_blank\">Did she say she flew light aircraft?!</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0446.html\" target=\"_blank\">Elsbeth</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr4388/index.html\" target=\"_blank\">4388</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2025-05-28</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4388/index.html\" target=\"_blank\">BSD Overview</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/hpr4389/index.html\" target=\"_blank\">4389</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2025-05-29</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4389/index.html\" target=\"_blank\">Comments on hpr4373</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/hpr4390/index.html\" target=\"_blank\">4390</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2025-05-30</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4390/index.html\" target=\"_blank\">Playing Civilization IV, Part 9</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 40 comments in total.</p>\n<h3>Past shows</h3>\n<p>There are 9 comments on\n6 previous shows:</p>\n<ul>\n<li><strong><a href=\"https://hackerpublicradio.org/eps/hpr3511/index.html#comments\" target=\"_blank\">hpr3511</a></strong>\n(2022-01-17) \"<em>Podman like Vagrant</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/hpr3511/index.html#comment_4310\" target=\"_blank\">Comment 1</a>:\nSome Guy on the Internet on 2025-05-16:\n\"It\'s show time\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4036/index.html#comments\" target=\"_blank\">hpr4036</a></strong>\n(2024-01-22) \"<em>The Tildeverse</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/hpr4036/index.html#comment_4317\" target=\"_blank\">Comment 2</a>:\nleeand0 on 2025-05-25:\n\"Another Public Access Unix\"</li>\n<li>\n<a href=\"https://hackerpublicradio.org/eps/hpr4036/index.html#comment_4318\" target=\"_blank\">Comment 3</a>:\nleeand0 on 2025-05-25:\n\"Another Public Access Unix\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4072/index.html#comments\" target=\"_blank\">hpr4072</a></strong>\n(2024-03-12) \"<em>Piper text to speech engine</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0318.html\" target=\"_blank\">Archer72</a>.<br/>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps/hpr4072/index.html#comment_4315\" target=\"_blank\">Comment 1</a>:\nArcher72 on 2025-05-20:\n\"Voice synthesis\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4281/index.html#comments\" target=\"_blank\">hpr4281</a></strong>\n(2024-12-30) \"<em>My ridiculously complicated DHCP setup at home</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0439.html\" target=\"_blank\">Jon The Nice Guy</a>.<br/>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps/hpr4281/index.html#comment_4316\" target=\"_blank\">Comment 2</a>:\nWindigo on 2025-05-23:\n\"As advertised\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4367/index.html#comments\" target=\"_blank\">hpr4367</a></strong>\n(2025-04-29) \"<em>My first episode; 001 Introduction</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0448.html\" target=\"_blank\">oxo</a>.<br/>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps/hpr4367/index.html#comment_4302\" target=\"_blank\">Comment 1</a>:\nTorin Doyle on 2025-05-09:\n\"Welcome!\"</li>\n<li>\n<a href=\"https://hackerpublicradio.org/eps/hpr4367/index.html#comment_4303\" target=\"_blank\">Comment 2</a>:\narcher72 on 2025-05-09:\n\"Welcome. \"</li>\n<li>\n<a href=\"https://hackerpublicradio.org/eps/hpr4367/index.html#comment_4330\" target=\"_blank\">Comment 3</a>:\noxo on 2025-05-30:\n\"Thank you\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4368/index.html#comments\" target=\"_blank\">hpr4368</a></strong>\n(2025-04-30) \"<em>Lessons learned moderating technical discussion panels</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0149.html\" target=\"_blank\">Trixter</a>.<br/>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps/hpr4368/index.html#comment_4296\" target=\"_blank\">Comment 1</a>:\nReto on 2025-05-06:\n\"A link to one or more\"</li></ul><br/>\n</li></ul>\n<h3>This month\'s shows</h3>\n<p>There are 31 comments on 15 of this month\'s shows:</p>\n<ul><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4371/index.html#comments\" target=\"_blank\">hpr4371</a></strong>\n(2025-05-05) \"<em>HPR Community News for April 2025</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/hpr4371/index.html#comment_4294\" target=\"_blank\">Comment 1</a>:\nPaul on 2025-05-05:\n\"mp3 quality \"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4371/index.html#comment_4295\" target=\"_blank\">Comment 2</a>:\nKen Fallon on 2025-05-05:\n\"Good question !\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4371/index.html#comment_4297\" target=\"_blank\">Comment 3</a>:\nHenrik Hemrin on 2025-05-08:\n\"Community\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4372/index.html#comments\" target=\"_blank\">hpr4372</a></strong>\n(2025-05-06) \"<em>The power of GNU Readline - part 4</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/hpr4372/index.html#comment_4301\" target=\"_blank\">Comment 1</a>:\nTorin Doyle on 2025-05-09:\n\"SGOTI is so likeable.\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4372/index.html#comment_4312\" target=\"_blank\">Comment 2</a>:\nDave Morriss on 2025-05-17:\n\"VI Mode\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4373/index.html#comments\" target=\"_blank\">hpr4373</a></strong>\n(2025-05-07) \"<em>Rsync with stdin as source</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0448.html\" target=\"_blank\">oxo</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr4373/index.html#comment_4300\" target=\"_blank\">Comment 1</a>:\nPaulj on 2025-05-09:\n\"rsync capabilities\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4373/index.html#comment_4305\" target=\"_blank\">Comment 2</a>:\narcher72 on 2025-05-09:\n\"Rsync - paulj\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4373/index.html#comment_4313\" target=\"_blank\">Comment 3</a>:\nDave Morriss on 2025-05-17:\n\"Enjoyable show!\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4374/index.html#comments\" target=\"_blank\">hpr4374</a></strong>\n(2025-05-08) \"<em>24-25 New Years Eve show 7</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/hpr4374/index.html#comment_4298\" target=\"_blank\">Comment 1</a>:\nClaudioM on 2025-05-08:\n\"Ha! The signoff!\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4375/index.html#comments\" target=\"_blank\">hpr4375</a></strong>\n(2025-05-09) \"<em>Long Chain Carbons,Eggs and Dorodango?</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/hpr4375/index.html#comment_4299\" target=\"_blank\">Comment 1</a>:\nTorin Doyle on 2025-05-09:\n\"The cruelty of the egg industry.\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4375/index.html#comment_4304\" target=\"_blank\">Comment 2</a>:\nBob on 2025-05-09:\n\"Free range eggs\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4375/index.html#comment_4311\" target=\"_blank\">Comment 3</a>:\nSome Guy on the Internet on 2025-05-16:\n\"@Bob, Free range eggs.\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4376/index.html#comments\" target=\"_blank\">hpr4376</a></strong>\n(2025-05-12) \"<em>Re-research</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0403.html\" target=\"_blank\">Lee</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr4376/index.html#comment_4306\" target=\"_blank\">Comment 1</a>:\npaul on 2025-05-12:\n\"sonos play back\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4376/index.html#comment_4307\" target=\"_blank\">Comment 2</a>:\nLee on 2025-05-13:\n\"Sonos\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4376/index.html#comment_4309\" target=\"_blank\">Comment 3</a>:\nSome Guy on the Internet on 2025-05-16:\n\"LLMs in academic research\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4377/index.html#comments\" target=\"_blank\">hpr4377</a></strong>\n(2025-05-13) \"<em>Password store and the pass command</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/hpr4377/index.html#comment_4308\" target=\"_blank\">Comment 1</a>:\nSome Guy on the Internet on 2025-05-16:\n\"Great show.\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4379/index.html#comments\" target=\"_blank\">hpr4379</a></strong>\n(2025-05-15) \"<em>Mapping Municipalities\' Digital Dependencies</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0433.html\" target=\"_blank\">Trollercoaster</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr4379/index.html#comment_4319\" target=\"_blank\">Comment 1</a>:\nSome Guy on the Internet on 2025-05-25:\n\" I agree with the intentions.\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4380/index.html#comments\" target=\"_blank\">hpr4380</a></strong>\n(2025-05-16) \"<em>Isaac Asimov: The Rest of Asimov\'s Foundation Stories</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/hpr4380/index.html#comment_4324\" target=\"_blank\">Comment 1</a>:\nSome Guy on the Internet on 2025-05-27:\n\"I\'ll have a go.\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4381/index.html#comments\" target=\"_blank\">hpr4381</a></strong>\n(2025-05-19) \"<em>What Omni-Instantness Makes To My Brain and Your Brain?</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0441.html\" target=\"_blank\">Antoine</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr4381/index.html#comment_4262\" target=\"_blank\">Comment 1</a>:\nKen Fallon on 2025-03-19:\n\"Interesting show.\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4381/index.html#comment_4264\" target=\"_blank\">Comment 2</a>:\nAntoine on 2025-03-20:\n\"Nice study =)\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4381/index.html#comment_4320\" target=\"_blank\">Comment 3</a>:\nSome Guy on the Internet on 2025-05-25:\n\"My two cents.\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4381/index.html#comment_4325\" target=\"_blank\">Comment 4</a>:\nAntoine on 2025-05-29:\n\"Education\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4384/index.html#comments\" target=\"_blank\">hpr4384</a></strong>\n(2025-05-22) \"<em>Browser and dedicated apps on the mobile phone</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0429.html\" target=\"_blank\">Henrik Hemrin</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr4384/index.html#comment_4322\" target=\"_blank\">Comment 1</a>:\nlyunpaw@gmail.com on 2025-05-27:\n\"I agree.\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4385/index.html#comments\" target=\"_blank\">hpr4385</a></strong>\n(2025-05-23) \"<em>Cable un-managment lol</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/hpr4385/index.html#comment_4323\" target=\"_blank\">Comment 1</a>:\nSome Guy on the Internet on 2025-05-27:\n\"It\'s over 9000!\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4387/index.html#comments\" target=\"_blank\">hpr4387</a></strong>\n(2025-05-27) \"<em>Did she say she flew light aircraft?!</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0446.html\" target=\"_blank\">Elsbeth</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr4387/index.html#comment_4314\" target=\"_blank\">Comment 1</a>:\narcher72 on 2025-05-18:\n\"Thank you for sharing\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4387/index.html#comment_4327\" target=\"_blank\">Comment 2</a>:\nKEVIN B OBRIEN on 2025-05-29:\n\"I loved the show\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4387/index.html#comment_4332\" target=\"_blank\">Comment 3</a>:\nJim DeVore on 2025-05-31:\n\"Thanks for the inspiration\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4388/index.html#comments\" target=\"_blank\">hpr4388</a></strong>\n(2025-05-28) \"<em>BSD Overview</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/hpr4388/index.html#comment_4328\" target=\"_blank\">Comment 1</a>:\nDave Morriss on 2025-05-29:\n\"Thanks for this\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4388/index.html#comment_4331\" target=\"_blank\">Comment 2</a>:\nJim DeVore on 2025-05-31:\n\"Thank you!\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4389/index.html#comments\" target=\"_blank\">hpr4389</a></strong>\n(2025-05-29) \"<em>Comments on hpr4373</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/hpr4389/index.html#comment_4326\" target=\"_blank\">Comment 1</a>:\noxo on 2025-05-29:\n\"Hi Rho`n\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4389/index.html#comment_4329\" target=\"_blank\">Comment 2</a>:\nDave Morriss on 2025-05-29:\n\"Good episode\"</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://lists.hackerpublicradio.com/mailman/listinfo/hpr\" target=\"_blank\">Mailing List</a>\nwhich is open to all HPR listeners and contributors. The discussions are open\nand available on the HPR server under <a href=\"https://lists.hackerpublicradio.com/pipermail/hpr\">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/2025-May/thread.html\" target=\"_blank\">https://lists.hackerpublicradio.com/pipermail/hpr/2025-May/thread.html</a>\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',159,47,1,'CC-BY-SA','Community News',0,0,1),
(4137,'2024-06-11','I used reisub key sequence to reboot my frozen Linux computer',204,'A frozen Linux computer can safely be rebooted with the reisub key sequence.','<p>In two earlier episodes I have been talking about digiKam photo\nmanagement software. I hope to come back to that topic in another\nepisode in the future. But not today.</p>\n<p>Today I will talk about what happened to me about two weeks ago.\nMaybe it was because I had used the hibernate state, which I rarely use,\nthat caused my laptop to behave somewhat strange. So I decided to turn\nit off. It was my Lenovo Thinkpad T460p laptop, running Linux Mint\nDebian Edition.</p>\n<p>So I turned it off the normal way with the soft button inside the\noperating system. But instead of power off I was shown a full terminal\nscreen with a lot of text what it was doing. But it never came to the\nconclusion to turn off.</p>\n<p>I have learned that in those situations, although tempting, that on\nLinux I should not force turn off with the physical mechanical power\nbutton. I have tried that before on another Linux laptop, and it was not\na success, rather the opposite.</p>\n<p>What I should do with Linux is to talk with electrodes directly to\nthe central brain, or in other words, call the Linux kernel with help of\na system request and by that sidestep the operating system.</p>\n<p>A System Request is done with the SysRq key on the keyboard. In this\nsituation I did the reisub key sequence with a system request:</p>\n<p>If I hold the System Request key together with the Alternate Alt key,\nand when still holding them down, I type the letters r, e, i, s, u and\nb, one by one in a very slow pace, I take seconds between them. Then I\nrelease all keys and the machine reboots.</p>\n<p>This was very successful for me and the laptop has since then worked\nas normal.</p>\n<p>I use an external full size keyboard that has a System Request\nkey.</p>\n<p>But not all laptops has such a key any more. System Request can be\nreached also on all or most of those laptops with some key combination.\nBut that key combination varies between manufacturers and models.</p>\n<p>In the show notes I add a link to a How to geek article about reisub\nas well as to Wikipedia about System Request:</p>\n<ul>\n<li><p>How-To Geek: <a\nhref=\"https://www.howtogeek.com/119127/use-the-magic-sysrq-key-on-linux-to-fix-frozen-x-servers-cleanly-reboot-and-run-other-low-level-commands/#cleanly-restarting-your-system\">Cleanly\nRestarting Your System. Use the Magic SysRq Key on Linux to Fix Frozen X\nServers, Cleanly Reboot, and Run Other Low-Level Commands</a></p></li>\n<li><p>Wikipedia: <a\nhref=\"https://en.wikipedia.org/wiki/Magic_SysRq_key\">Magic SysRq\nkey</a></p></li>\n</ul>\n',429,0,0,'CC-BY-SA','Linux, reisub, SysRq, System Request',0,0,1),
(4138,'2024-06-12','Linux Gaming: Factorio',469,'A weekly show on which I talk about a game that I\'m playing. Linux games only.','<p>This show is about gaming, more specifically gaming on Linux. This\nepisodes is about Factorio, a survival strategy game focusing on\nautomation. I currently don\'t have show notes to go with this show.</p>\n',387,0,0,'CC-BY-SA','linux,gaming,factorio',0,0,1),
(4139,'2024-06-13','HPR New Years Eve Show 2023 - 24 ep 1',7220,'The HPR community comes together to converse','<p>Linux Lugcast - <a href=\"https://linuxlugcast.com/\"\nclass=\"uri\">https://linuxlugcast.com/</a></p>\n<p>Hacker Public Radio - <a href=\"https://hackerpublicradio.org/\"\nclass=\"uri\">https://hackerpublicradio.org/</a></p>\n<p>Reichsmark - <a href=\"https://en.wikipedia.org/wiki/Reichsmark\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Reichsmark</a></p>\n<p>7-11 convenience store - <a href=\"https://www.7-eleven.com/\"\nclass=\"uri\">https://www.7-eleven.com/</a></p>\n<p>7-11 pizza - <a href=\"https://www.7-eleven.com/products/pizza\"\nclass=\"uri\">https://www.7-eleven.com/products/pizza</a></p>\n<p>Peanut butter sandwich - <a\nhref=\"https://www.foodnetwork.com/recipes/photos/pb-and-yay-\"\nclass=\"uri\">https://www.foodnetwork.com/recipes/photos/pb-and-yay-</a></p>\n<p>Cereal - <a href=\"https://en.wikipedia.org/wiki/Cereal\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Cereal</a></p>\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/List_of_breakfast_cereals\"\nclass=\"uri\">https://en.wikipedia.org/wiki/List_of_breakfast_cereals</a></li>\n</ul>\n<p>Medicaid - <a href=\"https://www.medicaid.gov/\"\nclass=\"uri\">https://www.medicaid.gov/</a></p>\n<p>Raspberry Pi - <a href=\"https://www.raspberrypi.com/\"\nclass=\"uri\">https://www.raspberrypi.com/</a></p>\n<p>MX Linux - <a href=\"https://mxlinux.org/\"\nclass=\"uri\">https://mxlinux.org/</a></p>\n<p>MX Linux Pi OS Respin - <a\nhref=\"https://mxlinux.org/blog/mx-23-1-raspberry-pi-os-respin/\"\nclass=\"uri\">https://mxlinux.org/blog/mx-23-1-raspberry-pi-os-respin/</a></p>\n<p>Raspberry Pi OS - <a href=\"https://www.raspberrypi.com/software/\"\nclass=\"uri\">https://www.raspberrypi.com/software/</a></p>\n<p>Chromium Browser - <a\nhref=\"https://www.chromium.org/chromium-projects/\"\nclass=\"uri\">https://www.chromium.org/chromium-projects/</a></p>\n<p>Firefox Browser - <a\nhref=\"https://www.mozilla.org/en-US/firefox/new/\"\nclass=\"uri\">https://www.mozilla.org/en-US/firefox/new/</a></p>\n<p>Raspberry Pi 400 - <a\nhref=\"https://www.raspberrypi.com/products/raspberry-pi-400/\"\nclass=\"uri\">https://www.raspberrypi.com/products/raspberry-pi-400/</a></p>\n<p>How Many Open Browser Tabs Is Too Many Open Browser Tabs? - <a\nhref=\"https://lifehacker.com/does-having-too-many-tabs-open-really-slow-down-your-br-1848554140\"\nclass=\"uri\">https://lifehacker.com/does-having-too-many-tabs-open-really-slow-down-your-br-1848554140</a></p>\n<p>HDMI - <a\nhref=\"https://www.lifewire.com/hdmi-facts-high-definition-multimedia-interface-1847337\"\nclass=\"uri\">https://www.lifewire.com/hdmi-facts-high-definition-multimedia-interface-1847337</a></p>\n<p>VGA - <a href=\"https://www.howtogeek.com/821620/what-is-vga/\"\nclass=\"uri\">https://www.howtogeek.com/821620/what-is-vga/</a></p>\n<p>RCA Connectors - <a\nhref=\"https://www.cablethis.com/demystifying-rca-connectors-how-they-impact-your-audio-quality/\"\nclass=\"uri\">https://www.cablethis.com/demystifying-rca-connectors-how-they-impact-your-audio-quality/</a></p>\n<p>Composite Video - <a\nhref=\"https://www.lifewire.com/composite-video-the-basics-1846869\"\nclass=\"uri\">https://www.lifewire.com/composite-video-the-basics-1846869</a></p>\n<p>CDC Pascal - <a href=\"https://standardpascal.org/CDC6000pascal.html\"\nclass=\"uri\">https://standardpascal.org/CDC6000pascal.html</a></p>\n<ul>\n<li><a\nhref=\"https://exhibits.stanford.edu/stanford-pubs/catalog/sz874xb6118\"\nclass=\"uri\">https://exhibits.stanford.edu/stanford-pubs/catalog/sz874xb6118</a></li>\n</ul>\n<p>Xerox - <a href=\"https://www.xerox.com/en-us\"\nclass=\"uri\">https://www.xerox.com/en-us</a></p>\n<p>IBM - <a href=\"https://www.ibm.com/us-en\"\nclass=\"uri\">https://www.ibm.com/us-en</a></p>\n<p>Thailand Death Train - <a\nhref=\"https://www.bordersofadventure.com/death-railway-kanchanaburi-thailand/\"\nclass=\"uri\">https://www.bordersofadventure.com/death-railway-kanchanaburi-thailand/</a></p>\n<ul>\n<li><a href=\"https://www.thaitrainguide.com/death-railway/\"\nclass=\"uri\">https://www.thaitrainguide.com/death-railway/</a></li>\n</ul>\n<p>West Virginia - <a href=\"https://www.wv.gov/Pages/default.aspx\"\nclass=\"uri\">https://www.wv.gov/Pages/default.aspx</a></p>\n<ul>\n<li><a href=\"https://wvtourism.com/\"\nclass=\"uri\">https://wvtourism.com/</a></li>\n</ul>\n<p>Mining Effects On Fishing - <a\nhref=\"https://fisheries.org/policy-media/policy-statements/afs-policy-statement-13/\"\nclass=\"uri\">https://fisheries.org/policy-media/policy-statements/afs-policy-statement-13/</a></p>\n<p>Mining Land Remediation/Reclamation - <a\nhref=\"https://www.epa.gov/remedytech/green-remediation-best-management-practices-mining-sites\"\nclass=\"uri\">https://www.epa.gov/remedytech/green-remediation-best-management-practices-mining-sites</a></p>\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Mine_reclamation\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Mine_reclamation</a></li>\n</ul>\n<p>Kwai River - <a\nhref=\"https://www.tripadvisor.com/Attraction_Review-g297924-d554151-Reviews-River_Kwai-Kanchanaburi_Kanchanaburi_Province.html\"\nclass=\"uri\">https://www.tripadvisor.com/Attraction_Review-g297924-d554151-Reviews-River_Kwai-Kanchanaburi_Kanchanaburi_Province.html</a></p>\n<p>Cassava - <a\nhref=\"https://plants.usda.gov/DocumentLibrary/plantguide/pdf/pg_maes.pdf\"\nclass=\"uri\">https://plants.usda.gov/DocumentLibrary/plantguide/pdf/pg_maes.pdf</a></p>\n<ul>\n<li><a\nhref=\"https://codycovefarm.com/plant-profile-cassava-manihot-esculenta/\"\nclass=\"uri\">https://codycovefarm.com/plant-profile-cassava-manihot-esculenta/</a></li>\n</ul>\n<p>Sugar Cane - <a href=\"https://en.wikipedia.org/wiki/Sugar_Kane\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Sugar_Kane</a></p>\n<p>Rice - <a href=\"https://en.wikipedia.org/wiki/Rice\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Rice</a></p>\n<ul>\n<li><a\nhref=\"https://www.foodnetwork.com/how-to/articles/how-to-make-perfect-rice-a-step-by-step-guide\"\nclass=\"uri\">https://www.foodnetwork.com/how-to/articles/how-to-make-perfect-rice-a-step-by-step-guide</a></li>\n</ul>\n<p>The story of the great Polish train hack - <a\nhref=\"https://www.railway-technology.com/news/the-story-of-the-great-polish-train-hack/?cf-view\"\nclass=\"uri\">https://www.railway-technology.com/news/the-story-of-the-great-polish-train-hack/?cf-view</a></p>\n<p>CompuServe Headquarters turns 50 - <a\nhref=\"https://abc6onyourside.com/news/local/historical-status-given-to-central-ohio-building-that-once-housed-compuserve\"\nclass=\"uri\">https://abc6onyourside.com/news/local/historical-status-given-to-central-ohio-building-that-once-housed-compuserve</a></p>\n<p>Compuserve - <a href=\"https://www.compuserve.com/\"\nclass=\"uri\">https://www.compuserve.com/</a></p>\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/CompuServe\"\nclass=\"uri\">https://en.wikipedia.org/wiki/CompuServe</a></li>\n</ul>\n<p>PDP-10 Computer - <a\nhref=\"http://www.columbia.edu/cu/computinghistory/pdp10.html\"\nclass=\"uri\">http://www.columbia.edu/cu/computinghistory/pdp10.html</a></p>\n<p>Linear Power Supply - <a\nhref=\"https://www.tek.com/en/documents/application-note/understanding-linear-power-supply-specifications\"\nclass=\"uri\">https://www.tek.com/en/documents/application-note/understanding-linear-power-supply-specifications</a></p>\n<p>Switching Power Supply - <a\nhref=\"https://www.eleccircuit.com/what-switching-power-supply-how-does-it-work/\"\nclass=\"uri\">https://www.eleccircuit.com/what-switching-power-supply-how-does-it-work/</a></p>\n<p>Asperger\'s Syndrome - <a\nhref=\"https://www.autismspeaks.org/types-autism-what-asperger-syndrome\"\nclass=\"uri\">https://www.autismspeaks.org/types-autism-what-asperger-syndrome</a></p>\n<p>DietPi - <a href=\"https://dietpi.com/\"\nclass=\"uri\">https://dietpi.com/</a></p>\n<p>Debian Linux - <a href=\"https://www.debian.org/\"\nclass=\"uri\">https://www.debian.org/</a></p>\n<p>XFCE - <a href=\"https://www.xfce.org/\"\nclass=\"uri\">https://www.xfce.org/</a></p>\n<p>Systemd - <a\nhref=\"https://www.digitalocean.com/community/tutorials/what-is-systemd\"\nclass=\"uri\">https://www.digitalocean.com/community/tutorials/what-is-systemd</a></p>\n<p>MX-23 XFCE (Bookworm) - <a\nhref=\"https://forums.raspberrypi.com/viewtopic.php?t=362478\"\nclass=\"uri\">https://forums.raspberrypi.com/viewtopic.php?t=362478</a></p>\n<p>Thorium Web Browser - <a href=\"https://thorium.rocks/\"\nclass=\"uri\">https://thorium.rocks/</a></p>\n<p>Waterfox Web Browser - <a href=\"https://www.waterfox.net/\"\nclass=\"uri\">https://www.waterfox.net/</a></p>\n<p>Group Speed Dial (FIrefox) - <a\nhref=\"https://addons.mozilla.org/en-US/firefox/addon/groupspeeddial/\"\nclass=\"uri\">https://addons.mozilla.org/en-US/firefox/addon/groupspeeddial/</a></p>\n<p>Raspberry Pi 5 - <a\nhref=\"https://www.raspberrypi.com/products/raspberry-pi-5/\"\nclass=\"uri\">https://www.raspberrypi.com/products/raspberry-pi-5/</a></p>\n<p>PDP-6 - <a href=\"http://pdp-6.net/\"\nclass=\"uri\">http://pdp-6.net/</a></p>\n<p>MIT - <a href=\"https://web.mit.edu/\"\nclass=\"uri\">https://web.mit.edu/</a></p>\n<p>MIT Early AI works - <a\nhref=\"https://dspace.mit.edu/handle/1721.1/5460\"\nclass=\"uri\">https://dspace.mit.edu/handle/1721.1/5460</a></p>\n<p>ZULU Time - <a\nhref=\"https://www.timeanddate.com/worldclock/timezone/zulu\"\nclass=\"uri\">https://www.timeanddate.com/worldclock/timezone/zulu</a></p>\n<p>Daylight Savings Time - <a\nhref=\"https://www.reuters.com/world/us/what-is-us-daylight-saving-time-why-was-it-created-2023-10-31/\"\nclass=\"uri\">https://www.reuters.com/world/us/what-is-us-daylight-saving-time-why-was-it-created-2023-10-31/</a></p>\n<p>Truck Driver Rules &amp; Regulations - <a\nhref=\"https://truckstop.com/blog/understanding-truck-driving-hours-and-regulations/\"\nclass=\"uri\">https://truckstop.com/blog/understanding-truck-driving-hours-and-regulations/</a></p>\n<p>Amphetamine - <a href=\"https://en.wikipedia.org/wiki/Amphetamine\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Amphetamine</a></p>\n<p>Men In Black - <a href=\"https://www.imdb.com/title/tt0119654/\"\nclass=\"uri\">https://www.imdb.com/title/tt0119654/</a></p>\n<p>Cold War - <a href=\"https://www.britannica.com/event/Cold-War\"\nclass=\"uri\">https://www.britannica.com/event/Cold-War</a></p>\n<p>Pershing Ballastic Missle - <a\nhref=\"https://www.lockheedmartin.com/en-us/news/features/history/pershing.html\"\nclass=\"uri\">https://www.lockheedmartin.com/en-us/news/features/history/pershing.html</a></p>\n<p>Pershing M26 Tank - <a\nhref=\"https://tanks-encyclopedia.com/ww2/us/m26_pershing.php\"\nclass=\"uri\">https://tanks-encyclopedia.com/ww2/us/m26_pershing.php</a></p>\n<p>C4 Plastic Explosive - <a\nhref=\"https://www.military.com/video/ammunition-and-explosives/explosives/c4-explained/1367499806001\"\nclass=\"uri\">https://www.military.com/video/ammunition-and-explosives/explosives/c4-explained/1367499806001</a></p>\n<p>Battleship New Jersey - <a\nhref=\"https://www.battleshipnewjersey.org/\"\nclass=\"uri\">https://www.battleshipnewjersey.org/</a></p>\n<p>B-52 - <a href=\"https://stratofortress.org/history/\"\nclass=\"uri\">https://stratofortress.org/history/</a></p>\n<p>Wagner Military Group - <a\nhref=\"https://en.wikipedia.org/wiki/Wagner_Group\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Wagner_Group</a></p>\n<p>John Ringo - <a\nhref=\"https://www.simonandschuster.com/authors/John-Ringo/1875432\"\nclass=\"uri\">https://www.simonandschuster.com/authors/John-Ringo/1875432</a></p>\n<p>Ghost (John Ringo book) - <a\nhref=\"https://www.kirkusreviews.com/book-reviews/john-ringo/ghost-3/\"\nclass=\"uri\">https://www.kirkusreviews.com/book-reviews/john-ringo/ghost-3/</a></p>\n<p>Battleship Wisconsin - <a\nhref=\"https://nauticus.org/explore/battleship-exhibits/about-the-battleship/\"\nclass=\"uri\">https://nauticus.org/explore/battleship-exhibits/about-the-battleship/</a></p>\n<p>Jules Verne - <a\nhref=\"https://www.biography.com/authors-writers/jules-verne\"\nclass=\"uri\">https://www.biography.com/authors-writers/jules-verne</a></p>\n<p>M28/M29 Davy Crockett Tactical Nuclear Weapon - <a\nhref=\"https://armyhistory.org/the-m28m29-davy-crockett-nuclear-weapon-system/\"\nclass=\"uri\">https://armyhistory.org/the-m28m29-davy-crockett-nuclear-weapon-system/</a></p>\n<p>PTSD - <a\nhref=\"https://www.psychiatry.org/patients-families/ptsd/what-is-ptsd\"\nclass=\"uri\">https://www.psychiatry.org/patients-families/ptsd/what-is-ptsd</a></p>\n<p>Autistic Spectrum - <a\nhref=\"https://www.cdc.gov/ncbddd/autism/signs.html\"\nclass=\"uri\">https://www.cdc.gov/ncbddd/autism/signs.html</a></p>\n<p>Dyslexia - <a\nhref=\"https://www.mayoclinic.org/diseases-conditions/dyslexia/symptoms-causes/syc-20353552\"\nclass=\"uri\">https://www.mayoclinic.org/diseases-conditions/dyslexia/symptoms-causes/syc-20353552</a></p>\n<p>Boston - <a href=\"https://www.boston.gov/visiting-boston\"\nclass=\"uri\">https://www.boston.gov/visiting-boston</a></p>\n<p>Clinical Depression - <a\nhref=\"https://www.nimh.nih.gov/health/topics/depression\"\nclass=\"uri\">https://www.nimh.nih.gov/health/topics/depression</a></p>\n<p>Maine - <a href=\"https://visitmaine.com/\"\nclass=\"uri\">https://visitmaine.com/</a></p>\n<p>Spread Spectrum Communications - <a\nhref=\"https://www.edn.com/what-is-spread-spectrum-technology/\"\nclass=\"uri\">https://www.edn.com/what-is-spread-spectrum-technology/</a></p>\n<p>Israeli Army Unit that recruits autistic teens - <a\nhref=\"https://www.theatlantic.com/health/archive/2016/01/israeli-army-autism/422850/\"\nclass=\"uri\">https://www.theatlantic.com/health/archive/2016/01/israeli-army-autism/422850/</a></p>\n<p>Open Source - <a\nhref=\"https://opensource.com/resources/what-open-source\"\nclass=\"uri\">https://opensource.com/resources/what-open-source</a></p>\n<p>New Years Resolution - <a\nhref=\"https://www.newsweek.com/new-years-resolution-2022-meaning-origin-ideas-1662947\"\nclass=\"uri\">https://www.newsweek.com/new-years-resolution-2022-meaning-origin-ideas-1662947</a></p>\n<p>Mini HDMI Cable - <a\nhref=\"https://www.howtogeek.com/745530/hdmi-vs-mini-hdmi-vs-micro-hdmi-whats-the-difference/\"\nclass=\"uri\">https://www.howtogeek.com/745530/hdmi-vs-mini-hdmi-vs-micro-hdmi-whats-the-difference/</a></p>\n<p>LibreOffice Impress - <a\nhref=\"https://www.libreoffice.org/discover/impress/\"\nclass=\"uri\">https://www.libreoffice.org/discover/impress/</a></p>\n<p>Powerpoint - <a\nhref=\"https://www.microsoft.com/en-us/microsoft-365/powerpoint\"\nclass=\"uri\">https://www.microsoft.com/en-us/microsoft-365/powerpoint</a></p>\n<p>Google Drive - <a href=\"https://www.google.com/drive/\"\nclass=\"uri\">https://www.google.com/drive/</a></p>\n<p>GPD Win 4 - <a href=\"https://www.gpd.hk/gpdwin4\"\nclass=\"uri\">https://www.gpd.hk/gpdwin4</a></p>\n<p>Coreboot - <a href=\"https://www.coreboot.org/\"\nclass=\"uri\">https://www.coreboot.org/</a></p>\n<p>Libreboot - <a href=\"https://libreboot.org/\"\nclass=\"uri\">https://libreboot.org/</a></p>\n<p>FOSDEM - <a href=\"https://fosdem.org/2024/\"\nclass=\"uri\">https://fosdem.org/2024/</a></p>\n<p>BIOS - <a href=\"https://computer.howstuffworks.com/bios.htm\"\nclass=\"uri\">https://computer.howstuffworks.com/bios.htm</a></p>\n<p>X11 - <a href=\"https://www.baeldung.com/linux/x11\"\nclass=\"uri\">https://www.baeldung.com/linux/x11</a></p>\n<p>Wayland - <a href=\"https://wayland.freedesktop.org/\"\nclass=\"uri\">https://wayland.freedesktop.org/</a></p>\n<p>Gnome 3 - <a href=\"https://www.gnome.org/getting-gnome/\"\nclass=\"uri\">https://www.gnome.org/getting-gnome/</a></p>\n<p>Mate - <a href=\"https://mate-desktop.org/\"\nclass=\"uri\">https://mate-desktop.org/</a></p>\n<p>Xorg - <a href=\"https://wiki.archlinux.org/title/Xorg\"\nclass=\"uri\">https://wiki.archlinux.org/title/Xorg</a></p>\n<p>Open Suse - <a href=\"https://www.opensuse.org/\"\nclass=\"uri\">https://www.opensuse.org/</a></p>\n<p>KDE - <a href=\"https://kde.org/\" class=\"uri\">https://kde.org/</a></p>\n<p>Unity - <a href=\"https://unityd.org/\"\nclass=\"uri\">https://unityd.org/</a></p>\n<p>Chromebook - <a href=\"https://www.google.com/chromebook/\"\nclass=\"uri\">https://www.google.com/chromebook/</a></p>\n<p>ASUS EEE PC 901 - <a\nhref=\"https://www.laptopmag.com/reviews/laptops/asus-eee-pc-901\"\nclass=\"uri\">https://www.laptopmag.com/reviews/laptops/asus-eee-pc-901</a></p>\n<p>ASUS EEE PC X101CH - <a\nhref=\"https://www.cnet.com/reviews/asus-eee-pc-x101ch-review/\"\nclass=\"uri\">https://www.cnet.com/reviews/asus-eee-pc-x101ch-review/</a></p>\n<p>Star Labs - <a\nhref=\"https://us.starlabs.systems/?shpxid=fc6f3491-925e-4b6c-aba5-4477924fc432\"\nclass=\"uri\">https://us.starlabs.systems/?shpxid=fc6f3491-925e-4b6c-aba5-4477924fc432</a></p>\n<p>Pulse Audio - <a\nhref=\"https://www.freedesktop.org/wiki/Software/PulseAudio/\"\nclass=\"uri\">https://www.freedesktop.org/wiki/Software/PulseAudio/</a></p>\n<p>Obsessive Compulsive Disorder (OCD) - <a\nhref=\"https://www.nimh.nih.gov/health/topics/obsessive-compulsive-disorder-ocd\"\nclass=\"uri\">https://www.nimh.nih.gov/health/topics/obsessive-compulsive-disorder-ocd</a></p>\n<p>STEM (Science, Technology, Engineering, &amp; Math) - <a\nhref=\"https://www.lifewire.com/what-is-stem-4150175\"\nclass=\"uri\">https://www.lifewire.com/what-is-stem-4150175</a></p>\n',269,0,1,'CC-BY-SA','new years,linux,community',0,0,1),
(4149,'2024-06-27','HPR New Years Eve Show 2023 - 24 ep 2',6736,'the HPR community comes together to converse ','<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Las_Vegas\">Las Vegas</a></li>\n<li><a href=\"https://www.lasvegasnevada.gov/\">Las Vegas</a></li>\n<li><a\nhref=\"https://www.visitlasvegas.com/things-to-do/outdoor-activities/\">Las\nVegas</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Florida\">Florida</a></li>\n<li><a href=\"https://www.myflorida.com/\">Florida</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/North_Carolina\">North\nCarolina</a></li>\n<li><a href=\"https://www.nc.gov/\">North Carolina</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Wales\">Wales</a></li>\n<li><a\nhref=\"https://www.worldatlas.com/maps/united-kingdom/wales\">Wales</a></li>\n<li><a href=\"https://www.britannica.com/place/Wales\">Wales</a></li>\n<li><a\nhref=\"https://www.nationaltrust.org.uk/visit/wales/sugar-loaf-skirrid-and-usk-valley\">sugar\nloaf</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Sugar_Loaf,_Monmouthshire\">sugar\nloaf</a></li>\n<li><a\nhref=\"https://www.wanderingwelshgirl.com/hike-the-sugar-loaf-mountain-wales/\">sugar\nloaf</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Scotland\">Scotland</a></li>\n<li><a href=\"https://www.visitscotland.com/\">Scotland</a></li>\n<li><a href=\"https://www.scotland.org/\">Scotland</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Skiing\">Skiing</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Retirement\">Retirement</a></li>\n<li><a\nhref=\"https://www.ssa.gov/prepare/plan-retirement\">Retirement</a></li>\n<li><a href=\"https://www.ssa.gov/retirement\">Retirement</a></li>\n<li><a\nhref=\"https://www.dol.gov/sites/dolgov/files/ebsa/about-ebsa/our-activities/resource-center/publications/top-10-ways-to-prepare-for-retirement.pdf\">Retirement</a></li>\n<li><a href=\"https://www.aarp.org/retirement/\">Retirement</a></li>\n<li><a href=\"https://us.starlabs.systems/\">Star Labs</a></li>\n<li><a\nhref=\"https://us.starlabs.systems/pages/starbook\">StarBook</a></li>\n<li><a\nhref=\"https://us.starlabs.systems/pages/starlite\">StarLite</a></li>\n<li><a\nhref=\"https://us.starlabs.systems/pages/starfighter\">StarFighter</a></li>\n<li><a\nhref=\"https://opensource.com/article/18/5/dual-boot-linux\">Dual-boot\nLinux and Windows</a></li>\n<li><a\nhref=\"https://www.tomshardware.com/how-to/dual-boot-linux-and-windows-11\">Dual-boot\nLinux and Windows</a></li>\n<li><a href=\"https://fosdem.org/2023/\">fosdem:</a></li>\n<li><a href=\"https://fosdem.org/2024/\">fosdem:</a></li>\n<li><a\nhref=\"https://www.cdc.gov/ncbddd/autism/screening.html\">autism</a></li>\n<li><a\nhref=\"https://www.webmd.com/brain/autism/mental-health-aspergers-syndrome\">autism</a></li>\n<li><a\nhref=\"https://www.nidcd.nih.gov/health/menieres-disease\">M&#xE9;ni&#xE8;re\'s\nDisease</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/M%C3%A9ni%C3%A8re%27s_disease\">M&#xE9;ni&#xE8;re\'s\nDisease</a></li>\n<li><a href=\"https://wayland.freedesktop.org/\">Wayland</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/X_Window_System\">X Window\nSystem</a></li>\n<li><a href=\"https://www.cdc.gov/ncbddd/adhd/facts.html\">What is\nADHD</a></li>\n<li><a\nhref=\"https://www.nimh.nih.gov/health/topics/attention-deficit-hyperactivity-disorder-adhd\">What\nis ADHD</a></li>\n<li><a href=\"https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8694782/\">myth\nof vaccination and autism spectrum</a></li>\n<li><a\nhref=\"https://www.cdc.gov/vaccinesafety/concerns/autism.html\">myth of\nvaccination and autism spectrum</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Space_debris\">Space\ndebris</a></li>\n<li><a\nhref=\"https://www.nhm.ac.uk/discover/what-is-space-junk-and-why-is-it-a-problem.html\">Space\ndebris</a></li>\n<li><a\nhref=\"https://www.pbs.org/newshour/science/analysis-why-trash-in-space-is-a-major-problem-with-no-clear-fix\">Space\ndebris</a></li>\n<li><a\nhref=\"https://hackerpublicradio.org/eps/hpr3904/index.html\">hpr3904 ::\nHow to make friends</a></li>\n<li><a\nhref=\"https://hackerpublicradio.org/eps/hpr3942/index.html\">hpr3942 ::\nRE: How to make friends.</a></li>\n<li><a\nhref=\"https://hackerpublicradio.org/eps/hpr3961/index.html\">hpr3961 ::\nRERE: How to make friends.</a></li>\n<li><a\nhref=\"https://hackerpublicradio.org/eps/hpr3971/index.html\">hpr3971 ::\nRERERE: How to make friends.</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Asperger_syndrome\">Asperger\nsyndrome</a></li>\n<li><a href=\"https://pubmed.ncbi.nlm.nih.gov/34121194/\">Stigma for\ndisabled individuals and their family: A systematic review.</a></li>\n<li><a\nhref=\"https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8211133/\">Stigma\nresearch in the field of intellectual disabilities...</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Python_(programming_language)\">Python\n(programming language).</a></li>\n<li><a href=\"https://www.python.org/\"\ntitle=\"Python is a programming language that lets you work quickly and integrate systems more effectively.\">Python</a></li>\n<li><a href=\"https://docs.python.org/3/\">Python Docs</a></li>\n<li><a href=\"https://wiki.python.org/moin/BeginnersGuide\">Beginner\'s\nGuide to Python</a></li>\n<li><a\nhref=\"https://packaging.python.org/en/latest/tutorials/managing-dependencies/\">Managing\nApplication Dependencies.</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Sweden\">Sweden</a></li>\n<li><a\nhref=\"https://visitsweden.com/about-sweden/currency-prices/\">visitsweden:</a>\nCurrency, credit cards and money in Sweden.</li>\n<li><a\nhref=\"https://www.cia.gov/the-world-factbook/countries/united-kingdom/\">United\nKingdom - The World Factbook</a></li>\n<li><a href=\"https://www.britannica.com/place/United-Kingdom\">United\nKingdom</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/United_Kingdom\">United\nKingdom</a></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://en.wikipedia.org/wiki/Brussels\">Brussels</a></li>\n<li><a\nhref=\"https://www.britannica.com/place/Brussels\">Brussels</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Stockholm_Arlanda_Airport\">Stockholm\nArlanda Airport</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Swedish_passport\">Swedish\npassport.</a></li>\n<li><a\nhref=\"https://travel.state.gov/content/travel/en/international-travel/International-Travel-Country-Information-Pages/Sweden.html\"\ntitle=\"Exercise increased caution in Sweden due to&#x202F;terrorism.\">Sweden\nInternational Travel Information</a></li>\n<li><a href=\"https://www.swedenabroad.se/en/\">Welcome to the website of\nSweden\'s embassies and consulates.</a></li>\n<li><a\nhref=\"https://european-union.europa.eu/live-work-study/travelling-eu_en\">Travelling\nin the EU.</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Automated_border_control_system\">Automated\nborder control system.</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Turkey\">Turkey -\nWikipedia</a></li>\n<li><a\nhref=\"https://www.cia.gov/the-world-factbook/countries/turkey-turkiye/\">Turkey\n(Turkiye)</a></li>\n<li><a href=\"https://www.britannica.com/place/Turkey\">Turkey\n(Turkiye)</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Mainland_China\">Mainland\nChina</a></li>\n<li><a href=\"https://simple.wikipedia.org/wiki/Hong_Kong\">Hong\nKong</a></li>\n<li><a href=\"https://simple.wikipedia.org/wiki/Beijing\">Beijing</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Shenzhen\">Shenzhen</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Spain\">Spain -\nWikipedia</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Snow_globe\">Snow\nglobe</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/List_of_museums_in_Brussels\">List of\nmuseums in Brussels</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Atomium\">Atomium</a></li>\n<li><a href=\"https://www.britannica.com/topic/Atomium\">Atomium</a></li>\n<li><a\nhref=\"https://www.illinoisfoot.com/blog/never-go-barefoot-through-airport-tsa-checkpoints\">Never\nGo Barefoot Through Airport TSA Checkpoints!</a></li>\n<li><a\nhref=\"https://www.thrillist.com/news/nation/barefoot-on-plane-airline-policies-safety-risks\">Here\'s\nWhy You Should Never Go Barefoot on a Plane.</a></li>\n<li><a href=\"https://www.tsa.gov/precheck\">TSA PreCheck</a></li>\n<li><a\nhref=\"https://www.cbp.gov/travel/trusted-traveler-programs/tsa-precheck\">TSA\nPreCheck</a></li>\n<li><a\nhref=\"https://www.tsa.gov/travel/frequently-asked-questions/how-do-i-apply-tsa-precheckr-0\">How\ndo I apply for TSA PreCheck</a></li>\n<li><a href=\"https://2020.copyleftconf.org/\">Second Annual International\nCopyleft Conference</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Copyleft\">Copyleft</a></li>\n<li><a\nhref=\"https://www.gnu.org/licenses/copyleft.en.html\">Copyleft</a></li>\n<li><a href=\"https://copyleft.org/\">Copyleft</a></li>\n<li><a href=\"https://www.fsf.org/\">The Free Software Foundation\n</a></li>\n<li><a href=\"https://sfconservancy.org/\">Software Freedom\nConservancy</a></li>\n<li><a\nhref=\"https://www.britannica.com/biography/Mark-Shuttleworth\">Mark\nShuttleworth</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Mark_Shuttleworth\">Mark\nShuttleworth</a></li>\n<li><a href=\"https://stallman.org/\">stallman:</a> Richard Stallman\'s\nPersonal Site.</li>\n<li><a\nhref=\"https://duckduckgo.com/?q=Bradley+Coon&amp;t=h_&amp;ia=web\">Duck\nDuck Go: Bradley Coon</a></li>\n<li><a href=\"https://events.canonical.com/event/31/\">Ubuntu Summit\n2023</a></li>\n<li><a href=\"https://www.redhat.com/en\">Redhat</a></li>\n<li><a href=\"https://rockylinux.org/\">Rocky Linux</a></li>\n<li><a href=\"https://almalinux.org/\">AlmaLinux</a></li>\n<li><a href=\"https://www.centos.org/\">Centos </a></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://ubports.com/\">ubports:</a> We are building a secure\n&amp; private operating system for your smartphone.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Ubuntu_Touch\">Ubuntu\nTouch</a></li>\n<li><a href=\"https://ubuntu-touch.io/\">Ubuntu Touch</a></li>\n<li><a href=\"https://open-store.io/\">Ubuntu Touch Apps</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Firefox_OS\">Firefox\nOS</a></li>\n<li><a href=\"https://github.com/mozilla-b2g/B2G\">Firefox OS</a></li>\n<li><a\nhref=\"https://web.archive.org/web/20130704175938/http://www.mozilla.org/en-US/firefox/os/\">Firefox\nOS</a></li>\n<li><a\nhref=\"https://blog.mozilla.org/press/files/2013/08/FIREFOX_OS_FEATURES_GUIDE_2013_EN.pdf\">Firefox\nOS Features Guide</a></li>\n<li><a href=\"https://sailfishos.org/\">sailfishos:</a> The mobile OS with\nbuilt-in privacy.</li>\n<li><a href=\"https://shop.fairphone.com/\">Fairphone</a> We are\nFairphone. An Amsterdam-based electronics company.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Fairphone\"\ntitle=\"From Wikipedia, the free encyclopedia\">Fairphone</a> Fairphone is\na Dutch electronics manufacturer that designs and produces smartphones\nand headphones.</li>\n<li><a href=\"https://www.raspberrypi.org/hello-world\"\ntitle=\"free computing and digital making magazine by educators for educators.\">Hello\nWorld magazine by educators for educators</a> One hundred pages of\nin-depth discussion, project ideas, lesson plans, news, and\nreviews.</li>\n<li><a\nhref=\"https://www.amazon.com/Amazon-Fire-TV-Family/b?node=8521791011\">Fire\nTV Sticks, Streaming Devices, Smart TVs &amp; More | Amazon</a></li>\n<li><a\nhref=\"https://aws.amazon.com/blogs/aws/amazon-linux-2023-a-cloud-optimized-linux-distribution-with-long-term-support/\"\ntitle=\"Every generation of Amazon Linux distribution is secured, optimized for the cloud, and receives long-term AWS support.\">Amazon\nLinux 2023, a Cloud-Optimized Linux Distribution with Long-Term\nSupport</a> Every generation of Amazon Linux distribution is secured,\noptimized for the cloud, and receives long-term AWS support. We built\nAmazon Linux 2023 on these principles, and we go even further. Deploying\nyour workloads on Amazon Linux 2023 gives you three major benefits: a\nhigh-security standard, a predictable lifecycle, and a consistent update\nexperience.</li>\n<li><a\nhref=\"https://aws.amazon.com/linux/?amazon-linux-whats-new.sort-by=item.additionalFields.postDateTime&amp;amazon-linux-whats-new.sort-order=desc\"\ntitle=\"Portfolio of modern Linux-based operating systems from AWS.\">Linux\nfrom AWS</a> Whether you are looking for an operating system to host\nyour general-purpose workloads or a purpose-built operating system to\nhost containers, AWS offers you a portfolio of security-focused, stable,\nand high performance Linux-based operating systems.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Windows_Phone\"\ntitle=\"From Wikipedia, the free encyclopedia\">Windows Phone</a> Windows\nPhone (WP) is a discontinued mobile operating system developed by\nMicrosoft for smartphones as the replacement successor to Windows Mobile\nand Zune.</li>\n<li><a\nhref=\"https://blogs.microsoft.com/on-the-issues/2014/08/01/microsofts-samsung-action/\"\ntitle=\"Microsoft filed legal action against Samsung in U.S. District Court\">Microsoft&#x2019;s\nSamsung action</a> After becoming the leading player in the worldwide\nsmartphone market, Samsung decided late last year to stop complying with\nits agreement with Microsoft. In September 2013, after Microsoft\nannounced it was acquiring the Nokia Devices and Services business,\nSamsung began using the acquisition as an excuse to breach its\ncontract.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Samsung_Galaxy_S_III_Mini\"\ntitle=\"From Wikipedia, the free encyclopedia\">Samsung Galaxy S III\nMini</a> The Samsung Galaxy S III Mini (stylized as Samsung GALAXY S III\nmini, model number: GT-I8190) is a touchscreen-based, slate-sized\nsmartphone designed and manufactured by Samsung.</li>\n<li><a\nhref=\"https://www.samsung.com/us/mobile/phones/galaxy-s/samsung-galaxy-s-iii-mini-verizon-sm-g730vmbavzw/\"\ntitle=\"Premium experience in a compact, sleek design\">Samsung Galaxy S\nIII Mini</a> Like its big brother Galaxy S III, Galaxy S III mini\ndelivers a world of possibilities for sharing, interaction, and\nentertainment-but in a smaller package. See your content look more\nbrilliant and vivid with a Super AMOLED&#x2122; display and enjoy the premium\nGalaxy camera modes and intuitive user interface.</li>\n<li><a href=\"https://www.spectrum.net/\" title=\"spectrum\">spectrum</a>\nSwitch to Spectrum for incredible savings and seamless connectivity\nwith...</li>\n<li><a href=\"https://www.spectrum.com/\" title=\"spectrum\">spectrum</a>\nSign up for Spectrum Internet&#xAE; and get Advanced WiFi and an Unlimited\nMobile...</li>\n<li><a href=\"https://en.wikipedia.org/wiki/ZX_Spectrum_Vega%2B\"\ntitle=\"From Wikipedia, the free encyclopedia\">ZX Spectrum Vega+</a> The\nZX Spectrum Vega+ is a handheld game console based on the ZX Spectrum\nand designed by Rick Dickinson as a follow-up to the ZX Spectrum Vega\nhandheld TV game which was released in 2015. Only a small number of\nVega+ machines were released, before Retro Computers (who manufactured\nthe devices) was wound up.</li>\n<li><a href=\"https://www.youtube.com/watch?v=jPey3DrXDF4\"\ntitle=\"The Laird&#39;s Lair \">youtube.com:</a> Sinclair ZX Spectrum\nVega+ Handheld - Review &amp; Overview</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Accelerated_Graphics_Port\"\ntitle=\"Accelerated Graphics Port (AGP)\">wikipedia:</a> Accelerated\nGraphics Port (AGP) is a parallel expansion card standard, designed for\nattaching a video card to a computer system to assist in the\nacceleration of 3D computer graphics.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Hardware_acceleration\"\ntitle=\"From Wikipedia, the free encyclopedia\">wikipedia:</a>\n<strong>Hardware acceleration</strong> is the use of computer hardware\ndesigned to perform specific functions more efficiently when compared to\nsoftware running on a general-purpose central processing unit (CPU). Any\ntransformation of data that can be calculated in software running on a\ngeneric CPU can also be calculated in custom-made hardware, or in some\nmix of both.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/ZX_Spectrum_Next\"\ntitle=\"From Wikipedia, the free encyclopedia\">wikipedia:</a> <strong>ZX\nSpectrum Next</strong> is an 8-bit home computer, initially released in\n2017, which is compatible with software and hardware for the 1982 ZX\nSpectrum. It also has enhanced capabilities.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/ZX_Spectrum#ZX_Spectrum_128\"\ntitle=\"From Wikipedia, the free encyclopedia\">wikipedia:</a> <strong>The\nZX Spectrum 128</strong> is similar to the ZX Spectrum+, with the\nexception of a large external heatsink for the internal 7805 voltage\nregulator added to the right hand end of the case, replacing the\ninternal heatsink in previous versions.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Time_in_Sweden\"\ntitle=\"From Wikipedia, the free encyclopedia\">wikipedia:</a> In Sweden,\nthe standard time is Central European Time (CET; UTC+01:00; Swedish:\ncentraleuropeisk tid). Daylight saving time is observed from the last\nSunday in March (02:00 CET) to the last Sunday in October (03:00 CEST).\nSweden adopted CET in 1900.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Lapland_(Sweden)\"\ntitle=\"From Wikipedia, the free encyclopedia\">wikipedia:</a>\n<strong>Lapland</strong>, also known by its Swedish name Lappland\n(Northern Sami: S&#xE1;pmi, Finnish: Lappi, Latin: Lapponia), is a province\nin northernmost Sweden.</li>\n<li><a href=\"https://www.raspberrypi.com/\">raspberrypi:</a> single board\ncomputers.</li>\n<li><a href=\"https://mxlinux.org/\"\ntitle=\"The MX Dev Team is composed of a group of volunteers of various backgrounds\">mxlinux:</a>\n<strong>MX Linux</strong> is a cooperative venture between the antiX and\nMX Linux communities.</li>\n<li><a href=\"https://www.raspbian.org/\"\ntitle=\"Welcome to Raspbian\">raspbian:</a> <strong>Raspbian</strong> is\nnot affiliated with the Raspberry Pi Foundation. Raspbian was created by\na small, dedicated team of developers that are fans of the Raspberry Pi\nhardware, the educational goals of the Raspberry Pi Foundation and, of\ncourse, the Debian Project.</li>\n<li><a href=\"https://www.raspberrypi.com/software/operating-systems/\"\ntitle=\"Operating system images\">raspberrypi:</a> Many operating systems\nare available for Raspberry Pi, including <strong>Raspberry Pi\nOS</strong>, our official supported operating system, and operating\nsystems from other organisations.</li>\n<li><a href=\"https://joeress.com/\"\ntitle=\"Thoughts and experiences from me, UK podcaster Joe Ressington\">joeress:</a>\nI&#x2019;m Joe Ressington. I&#x2019;m a freelance podcast producer, host, and editor.\nI&#x2019;m the head of the Late Night Linux Family of podcasts.</li>\n<li><a href=\"https://linuxacademy.com/\" title=\"Error\">linuxacademy:</a>\n<strong>Error</strong>: can&#x2019;t connect to the server at\nlinuxacademy.com</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Cunt#Other_usage\"\ntitle=\"From Wikipedia, the free encyclopedia\">wikipedia:</a>\n<strong>Cunt:</strong> In informal British, Irish, New Zealand, and\nAustralian English, and occasionally but to a lesser extent in Canadian\nEnglish, it can be used with no negative connotations to refer to a\n(usually male) person. In this sense, it may be modified by a positive\nqualifier (funny, clever, etc.). For example, \"This is my mate Brian.\nHe\'s a good cunt.</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://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://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=\"https://flatpak.org/\"\ntitle=\"The future of apps on Linux\">flatpak:</a> Flatpak is developed by\nan independent community, made up of contributors, volunteers and\nsupporting organizations. It is a true upstream open source project,\ndedicated to providing technology and services that can be used by all,\nwith no vendor lock-in. We have strong links to other Free Software\nprojects, including the Freedesktop project.</li>\n<li><a href=\"https://www.raspberrypi.com/products/\"\ntitle=\"Raspberry Pi computers and microcontrollers\">raspberrypi:</a>\nRaspberry Pi computers and microcontrollers</li>\n<li><a href=\"https://help.ubuntu.com/community/Apt-Cacher%20NG\"\ntitle=\"Apt-Cacher NG\">ubuntu:</a> <strong>Apt-Cache-ng</strong> is A\ncaching proxy. Specialized for package files from Linux distributors,\nprimarily for Debian (and Debian based) distributions but not limited to\nthose.</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://en.wikipedia.org/wiki/Pepsi_Max\"\ntitle=\"From Wikipedia, the free encyclopedia\">wikipedia:</a> Pepsi Max\n(also known as Pepsi Zero Sugar and Pepsi Black in some countries) is a\nlow-calorie, sugar-free cola, marketed by PepsiCo as an alternative to\nPepsi and Diet Pepsi, except for the United Kingdom and Norway, where it\nis the main Pepsi flavor.</li>\n<li><a href=\"https://alcoholism.org/alcohol/family/\">alcoholism:</a>\n<strong>Alcoholism</strong> is a condition that develops over time as\nsomeone continues to abuse alcohol. The result of alcoholism is the\ninability to control the urge to drink alcohol.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Swiss_Army_knife\"\ntitle=\"From Wikipedia, the free encyclopedia\">wikipedia:</a> The Swiss\nArmy knife is a pocketknife, generally multi-tooled, now manufactured by\nVictorinox. The term \"Swiss Army knife\" was coined by American soldiers\nafter World War II after they had trouble pronouncing the German word\n\"Offiziersmesser\", meaning \"officer&#x2019;s knife\".</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/It_ain%27t_over_till_the_fat_lady_sings\"\ntitle=\"From Wikipedia, the free encyclopedia\">wikipedia:</a> \"It ain\'t\nover till (or until) the fat lady sings\" is a colloquialism which is\noften used as a proverb. It means that one should not presume to know\nthe outcome of an event which is still in progress.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Transformer\"\ntitle=\"From Wikipedia, the free encyclopedia\">wikipedia:</a> In\nelectrical engineering, a <strong>transformer</strong> is a passive\ncomponent that transfers electrical energy from one electrical circuit\nto another circuit, or multiple circuits.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Distribution_transformer\"\ntitle=\"From Wikipedia, the free encyclopedia\">wikipedia:</a> A\n<strong>distribution transformer</strong> or service transformer is a\ntransformer that provides the final voltage transformation in the\nelectric power distribution system, stepping down the voltage used in\nthe distribution lines to the level used by the customer.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Echo_chamber_(media)\"\ntitle=\"From Wikipedia, the free encyclopedia\">wikipedia:</a> In news\nmedia and social media, an <strong>echo chamber</strong> is an\nenvironment or ecosystem in which participants encounter beliefs that\namplify or reinforce their preexisting beliefs by communication and\nrepetition inside a closed system and insulated from rebuttal.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Echo_chamber\"\ntitle=\"From Wikipedia, the free encyclopedia\">wikipedia:</a> An\n<strong>echo chamber</strong> is a hollow enclosure used to produce\nreverberation, usually for recording purposes.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Social_media\"\ntitle=\"From Wikipedia, the free encyclopedia\">wikipedia:</a>\n<strong>Social media</strong> are interactive technologies that\nfacilitate the creation, sharing and aggregation of content, ideas,\ninterests, and other forms of expression through virtual communities and\nnetworks.</li>\n<li><a href=\"https://joinmastodon.org/\">joinmastodon:</a> Social\nnetworking that\'s not for sale.</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://discord.com/\">discord:</a> A place that makes it\neasy to talk every day and hang out more often.</li>\n<li><a\nhref=\"https://addons.mozilla.org/en-US/firefox/addon/multi-account-containers/\"\ntitle=\"Firefox Multi-Account Containers by Mozilla Firefox\">mozilla:</a>\n<strong>Firefox Multi-Account Containers</strong> lets you keep parts of\nyour online life separated into color-coded tabs. Cookies are separated\nby container, allowing you to use the web with multiple accounts and\nintegrate Mozilla VPN for an extra layer of privacy.</li>\n<li><a\nhref=\"https://www.rocketmortgage.com/learn/single-wide-vs-double-wide\"\ntitle=\"Single-Wide Vs. Double-Wide: Which Is Right For You?\">rocketmortgage:</a>\nDid you know that manufactured homes used to be more commonly referred\nto as mobile homes? That is until 1976, when Congress passed the\nNational Manufactured Housing Construction and Safety Standards Act,\nwhich authorized the U.S. Department of Housing and Urban Development\n(HUD) to create construction standards for manufactured homes.</li>\n<li><a href=\"https://www.audiobookshelf.org/\"\ntitle=\"Self-hosted audiobook and podcast server\">audiobookshelf:</a></li>\n<li><a href=\"https://www.goodreads.com/series/321508-git-commit-murder\"\ntitle=\"git commit murder Series\">goodreads:</a> The BSD North conference\ndraws some of the smartest people in the world. These few days will\nvalidate Dale Whitehead&#x2019;s work&#x2014;or expose him as a fraud.</li>\n<li><a href=\"https://www.goodreads.com/series/64033-demon-squad\"\ntitle=\"Demon Squad Series\">goodreads:</a> <strong>Demon Squad\nSeries</strong>.</li>\n<li><a href=\"https://www.goodreads.com/series/46424-sandman-slim\"\ntitle=\"Sandman Slim Series\">goodreads:</a> <strong>Sandman Slim\nSeries</strong>.</li>\n<li><a\nhref=\"https://www.goodreads.com/series/259258-case-files-of-henri-davenforth\"\ntitle=\"Case Files of Henri Davenforth Series\">goodreads:</a>\n<strong>Case Files of Henri Davenforth Series</strong>.</li>\n<li><a href=\"https://snapcraft.io/nextcloud\"\ntitle=\"Nextcloud Server - A safe home for all your data\">snapcraft:</a>\n<strong>Nextcloud Server</strong> - A safe home for all your data.</li>\n<li><a href=\"https://tubitv.com/\"\ntitle=\"Free Movies &amp; TV\">tubitv:</a> <em>free</em> <strong>Movies\n&amp; TV</strong> Fewer Ads than Cable No Subscription Required\nThousands of movies and TV shows. Always Free. 100% Legal.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Pluto_TV\"\ntitle=\"From Wikipedia, the free encyclopedia\">wikipedia:</a> Pluto TV is\na free ad-supported streaming television (FAST) service owned and\noperated by the Paramount Streaming division of Paramount Global.</li>\n<li><a\nhref=\"https://www.animalhumanesociety.org/resource/end-life-services\"\ntitle=\"End-of-life euthanasia\">animalhumanesociety:</a> Animal Humane\nSociety provides post-surrender euthanasia services for pet owners at a\nreduced cost.</li>\n</ul>\n',269,0,1,'CC-BY-SA','new years,linux,community',0,0,1),
(4152,'2024-07-02','URandom Pirate Episode ',922,'This is a pirate episode of URandom with special guest!','<p>I fix pottery wheel...and special guest!</p>\n',36,0,0,'CC-BY-SA','life,ADHD, electronics ',0,0,1),
(4159,'2024-07-11','HPR New Years Eve Show 2023 - 24 ep 3',6548,'The HPR community comes together to converse','<ul>\n<li><p><a\nhref=\"https://www.artofmanliness.com/style/shaving/how-to-shave-with-safety-razor/\"\ntitle=\"How To Shave Like Your Grandpa Using a Safety Razor\">Safety\nRazor</a><br />\n</p></li>\n<li><p><a\nhref=\"https://grownmanshave.com/blogs/grown-man-shave-society-articles/the-beginners-guide-to-shaving-with-a-double-edge-safety-razor\">What\nIs a Double Edge Safety Razor?</a><br />\n</p></li>\n<li><p><a\nhref=\"https://www.ebay.com/sch/i.html?_from=R40&amp;_trksid=p2499337.m570.l1311&amp;_nkw=gillette+double+edge+safety+razor&amp;_sacat=0\">Ebay\nquery: gillette double edge safety razor</a><br />\n</p></li>\n<li><p><a href=\"https://gilletteadjustable.com/slim/\">The \"Slim\"\nGillette Adjustable razor</a><br />\n</p></li>\n<li><p><a href=\"https://www.razoremporium.com/\">Razor Emporium</a><br />\n</p></li>\n<li><p><a\nhref=\"https://gillette.com/en-us/products/razors-trimmers-and-blades/mach3-razor-refills\">gillette\nmach 3</a><br />\n</p></li>\n<li><p><a href=\"https://en.wikipedia.org/wiki/Straight_razor\">Straight\nrazor</a><br />\n</p></li>\n<li><p><a\nhref=\"https://www.cdc.gov/ncbddd/autism/screening.html\">autism</a><br />\n</p></li>\n<li><p><a href=\"https://www.cdc.gov/ncbddd/autism/screening.html\">cdc:\nAutism</a><br />\n</p></li>\n<li><p><a href=\"https://en.wikipedia.org/wiki/Pattern_hair_loss\"\ntitle=\"Pattern hair loss\">male pattern baldness</a><br />\n</p></li>\n<li><p><a\nhref=\"https://www.optimahair.co.uk/blog/receding-hairlines-in-men-causes-and-treatments/\">Receding\nHairlines in Men</a><br />\n</p></li>\n<li><p><a\nhref=\"https://www.hairandskinscience.com.au/receding-hairline-stages-causes-prevention-and-treatment-options/\">Receding\nHairline: Stages, Causes...</a><br />\n</p></li>\n<li><p><a\nhref=\"https://www.hairpalace.co.uk/the-bald-spot-on-crown/\">Bald Spot on\nCrown</a><br />\n</p></li>\n<li><p><a href=\"https://www.cdc.gov/bloodpressure/about.htm\">High Blood\nPressure Symptoms and Causes</a><br />\n</p></li>\n<li><p><a\nhref=\"https://www.who.int/news-room/fact-sheets/detail/hypertension\">Hypertension</a><br />\n</p></li>\n<li><p><a\nhref=\"https://www.nhlbi.nih.gov/health/high-blood-pressure\">High Blood\nPressure</a><br />\n</p></li>\n<li><p><a\nhref=\"https://www.nhs.uk/conditions/high-blood-pressure-hypertension/treatment/\">High\nblood pressure (hypertension)</a><br />\n</p></li>\n<li><p><a\nhref=\"https://www.webmd.com/drugs/2/drug-8680/minoxidil-oral/details\">Minoxidil</a><br />\n</p></li>\n<li><p><a href=\"https://pubmed.ncbi.nlm.nih.gov/15133413/\">Minoxidil: an\nunderused vasodilator for resistant or severe hypertension</a><br />\n</p></li>\n<li><p><a\nhref=\"https://en.wikipedia.org/wiki/Minoxidil\">Minoxidil</a><br />\n</p></li>\n<li><p><a href=\"https://www.rogaine.com/\">Rogaine</a><br />\n</p></li>\n<li><p><a href=\"https://www.drugs.com/rogaine.html\">Rogaine</a><br />\n</p></li>\n<li><p><a\nhref=\"https://www.flickr.com/photos/143729603@N02/galleries/72157713182604802/\">Hairy\nArms</a><br />\n</p></li>\n<li><p><a\nhref=\"https://www.flickr.com/photos/137291926@N02/53064889170/in/gallery-143729603@N02-72157713182604802/\">Hairy\nArms</a><br />\n</p></li>\n<li><p><a\nhref=\"https://www.canada.ca/en/immigration-refugees-citizenship/services/canadian-citizenship.html\">Canadian\ncitizenship</a><br />\n</p></li>\n<li><p><a href=\"https://www.visitcalgary.com/\">visit Calgary</a><br />\n</p></li>\n<li><p><a href=\"https://www.calgary.ca/home.html\">Calgary</a><br />\n</p></li>\n<li><p><a href=\"https://en.wikipedia.org/wiki/Detroit\">Detroit</a><br />\n</p></li>\n<li><p><a href=\"https://en.wikipedia.org/wiki/Windsor,_Ontario\">Windsor,\nOntario</a><br />\n</p></li>\n<li><p><a\nhref=\"https://en.wikipedia.org/wiki/Florida\">Florida.</a><br />\n</p></li>\n<li><p><a href=\"https://www.myflorida.com/\">The Official Page for\nSunshine State Government</a><br />\n</p></li>\n<li><p><a\nhref=\"https://firstamendmentwatch.org/topics/florida-v-free-speech/\">Florida\nv. Free Speech</a><br />\n</p></li>\n<li><p><a\nhref=\"https://www.wusf.org/education/2023-06-30/florida-teachers-quitting-anti-lgbtq-laws\">In\nFlorida, teachers are quitting over anti-LGBTQ laws</a><br />\n</p></li>\n<li><p><a\nhref=\"https://www.flsenate.gov/Committees/billsummaries/2022/html/2825\">CS/CS/HB\n1557 &#x2014; Parental Rights in Education</a><br />\n</p></li>\n<li><p><a\nhref=\"https://www.myfloridahouse.gov/Sections/Bills/billsdetail.aspx?BillId=76545\">S/CS/HB\n1557 (2022) - Parental Rights in Education</a><br />\n</p></li>\n<li><p><a\nhref=\"https://en.wikipedia.org/wiki/Florida_Parental_Rights_in_Education_Act\">Florida\nParental Rights in Education Act</a><br />\n</p></li>\n<li><p><a href=\"https://en.wikipedia.org/wiki/Florida_Man\">Florida\nMan</a><br />\n</p></li>\n<li><p><a\nhref=\"https://www.vox.com/culture/23870158/reclaiming-florida-man-criminal-charges-birthday-challenge-explained\">&#x201C;Florida\nMan,&#x201D; explained</a><br />\n</p></li>\n<li><p><a href=\"https://www.verizon.com/\">verizon.com</a><br />\n</p></li>\n<li><p><a\nhref=\"https://en.wikipedia.org/wiki/Verizon_Communications\">Verizon\nCommunications</a><br />\n</p></li>\n<li><p><a href=\"https://www.wikidata.org/wiki/Q467752\">Verizon\nCommunications (Q467752)</a><br />\n</p></li>\n<li><p><a href=\"https://www.att.com/\">ATT.com</a><br />\n</p></li>\n<li><p><a href=\"https://en.wikipedia.org/wiki/AT%26T\">AT&amp;T</a><br />\n</p></li>\n<li><p><a href=\"https://www.t-mobile.com/\">T-mobile</a><br />\n</p></li>\n<li><p><a href=\"https://www.wikidata.org/wiki/Q897228\">T-Mobile\n(Q897228)</a><br />\n</p></li>\n<li><p><a\nhref=\"https://en.wikipedia.org/wiki/T-Mobile\">T-Mobile</a><br />\n</p></li>\n<li><p><a href=\"https://tingmobile.com/\">Ting01</a><br />\n</p></li>\n<li><p><a href=\"https://ting.com/\">Ting02</a><br />\n</p></li>\n<li><p><a\nhref=\"https://ca.finance.yahoo.com/blogs/dashboard/no-ting-for-you-why-canadian-wireless-is-broken-144800615.html\"\ntitle=\"No Ting for you: Why Canadian wireless is broken\">Ting03</a><br />\n</p></li>\n<li><p><a\nhref=\"https://www.cbc.ca/news/business/the-canadian-mobile-phone-service-you-can-t-get-here-1.1337824\">The\nCanadian mobile phone service you can\'t get here</a><br />\n</p></li>\n<li><p><a href=\"https://www.dish.com/\">DISH Network\nCorporation01</a><br />\n</p></li>\n<li><p><a href=\"https://en.wikipedia.org/wiki/Dish_Network\">DISH Network\nCorporation02</a><br />\n</p></li>\n<li><p><a href=\"https://en.wikipedia.org/wiki/Toronto\">Toronto</a><br />\n</p></li>\n<li><p><a\nhref=\"https://en.wikipedia.org/wiki/Philippines\">Philippines</a><br />\n</p></li>\n<li><p><a\nhref=\"https://en.wikipedia.org/wiki/Malaysia\">Malaysia</a><br />\n</p></li>\n<li><p><a href=\"https://en.wikipedia.org/wiki/Canadian_French\">Canadian\nFrench</a><br />\n</p></li>\n<li><p><a href=\"https://en.wikipedia.org/wiki/Quebec\">Quebec</a><br />\n</p></li>\n<li><p><a\nhref=\"https://en.wikipedia.org/wiki/Labrador\">Labrador</a><br />\n</p></li>\n<li><p><a\nhref=\"https://en.wikipedia.org/wiki/List_of_mines_in_Newfoundland_and_Labrador\">List\nof mines in Newfoundland and Labrador</a><br />\n</p></li>\n<li><p><a href=\"https://en.wikipedia.org/wiki/Ottawa_River\">Ottawa\nRiver</a><br />\n</p></li>\n<li><p><a\nhref=\"https://www.canada.ca/en/health-canada/services/canada-health-care-system.html\">Canada\'s\nhealth care system</a><br />\n</p></li>\n<li><p><a\nhref=\"https://en.wikipedia.org/wiki/Healthcare_in_Canada\">Healthcare in\nCanada01</a><br />\n</p></li>\n<li><p><a href=\"https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7292524/\"\ntitle=\"Long wait times have become a defining characteristic of the Canadian health care system.\">Healthcare\nin Canada02</a><br />\n</p></li>\n<li><p><a\nhref=\"https://en.wikipedia.org/wiki/Healthcare_in_the_United_States\">Healthcare\nin the United States</a><br />\n</p></li>\n<li><p><a href=\"https://www.medicare.gov/\">medicare</a><br />\n</p></li>\n<li><p><a\nhref=\"https://en.wikipedia.org/wiki/Electronic_cigarette\">Vaping\n(Electronic cigarette)01</a><br />\n</p></li>\n<li><p><a\nhref=\"https://www.cdc.gov/tobacco/basic_information/e-cigarettes/index.htm\">Vaping\n(Electronic cigarette)02</a><br />\n</p></li>\n<li><p><a href=\"https://vaping360.com/learn/how-to-make-diy-vape-juice/\"\ntitle=\"DIY vape juice is the homemade version of retail e-liquid.\">DIY\nvape juice01</a><br />\n</p></li>\n<li><p><a\nhref=\"https://www.misteliquid.co.uk/blog/how-to-make-your-own-e-liquid/\"\ntitle=\"Spending too much on vape juice? Then why not make your own.\">DIY\nvape juice02</a><br />\n</p></li>\n<li><p><a href=\"https://en.wiktionary.org/wiki/wobbly_pop\">wobbly\npop</a><br />\n</p></li>\n<li><p><a href=\"https://joplinapp.org/\">Joplin</a><br />\n</p></li>\n<li><p><a href=\"https://nextcloud.com/\">Nextcloud</a><br />\n</p></li>\n<li><p><a href=\"https://openai.com/research/whisper\"\ntitle=\"Whisper is an automatic speech recognition (ASR) system trained on 680,000 hours of multilingual and multitask supervised data collected from the web.\">Whisper\nis an automatic speech recognition (ASR) system</a><br />\n</p></li>\n</ul>\n<p>HPR (Hacker Public Radio) - <a href=\"https://hackerpublicradio.org/\"\nclass=\"uri\">https://hackerpublicradio.org/</a></p>\n<p>Double Edge (DE) Razor Shaving - <a\nhref=\"https://grownmanshave.com/blogs/grown-man-shave-society-articles/the-beginners-guide-to-shaving-with-a-double-edge-safety-razor\"\nclass=\"uri\">https://grownmanshave.com/blogs/grown-man-shave-society-articles/the-beginners-guide-to-shaving-with-a-double-edge-safety-razor</a></p>\n<p>Gillette Razors - <a href=\"https://gillette.com/\"\nclass=\"uri\">https://gillette.com/</a></p>\n<p>1963 Gillette Slim Adjustable - <a\nhref=\"https://www.razoremporium.com/1963-gillette-i1-slim-adjustable-de-safety-razor-rhodium-revamp/?setCurrencyId=1\"\nclass=\"uri\">https://www.razoremporium.com/1963-gillette-i1-slim-adjustable-de-safety-razor-rhodium-revamp/?setCurrencyId=1</a></p>\n<p>Gillette Mach 3 Razor - <a\nhref=\"https://www.amazon.com/Gillette-Mach3-Razor-Handle-Refill/dp/B0092K7C1O\"\nclass=\"uri\">https://www.amazon.com/Gillette-Mach3-Razor-Handle-Refill/dp/B0092K7C1O</a></p>\n<p>Straight Razor - <a\nhref=\"https://www.cutthroatclub.com/collections/cut-throat-razors\"\nclass=\"uri\">https://www.cutthroatclub.com/collections/cut-throat-razors</a></p>\n<p>Minoxidil - <a\nhref=\"https://www.medicalnewstoday.com/articles/minoxidil\"\nclass=\"uri\">https://www.medicalnewstoday.com/articles/minoxidil</a></p>\n<p>Calgary - <a href=\"https://en.wikipedia.org/wiki/Calgary\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Calgary</a></p>\n<p>Detroit - <a href=\"https://detroitmi.gov/\"\nclass=\"uri\">https://detroitmi.gov/</a></p>\n<p>Windsor (Canada) - <a\nhref=\"https://www.citywindsor.ca/Pages/Home.aspx\"\nclass=\"uri\">https://www.citywindsor.ca/Pages/Home.aspx</a></p>\n<p>Verizon - <a href=\"https://www.verizon.com/\"\nclass=\"uri\">https://www.verizon.com/</a></p>\n<p>T-mobile - <a href=\"https://www.t-mobile.com/\"\nclass=\"uri\">https://www.t-mobile.com/</a></p>\n<p>AT&amp;T - <a href=\"https://www.att.com/\"\nclass=\"uri\">https://www.att.com/</a></p>\n<p>Ting - <a href=\"https://ting.com/\"\nclass=\"uri\">https://ting.com/</a></p>\n<p>Dish Network - <a href=\"https://www.dish.com/\"\nclass=\"uri\">https://www.dish.com/</a></p>\n<p>Capella Mango flavoring - <a\nhref=\"https://www.capellaflavors.com/sweet-mango.html\"\nclass=\"uri\">https://www.capellaflavors.com/sweet-mango.html</a></p>\n<p>Joplin - <a href=\"https://joplinapp.org/\"\nclass=\"uri\">https://joplinapp.org/</a></p>\n<p>Nextcloud - <a href=\"https://nextcloud.com/\"\nclass=\"uri\">https://nextcloud.com/</a></p>\n<p>Home Assistant - <a href=\"https://www.home-assistant.io/\"\nclass=\"uri\">https://www.home-assistant.io/</a></p>\n<p>SNAP - <a href=\"https://snapcraft.io/\"\nclass=\"uri\">https://snapcraft.io/</a></p>\n<p>Ansible Playbook - <a\nhref=\"https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_intro.html\"\nclass=\"uri\">https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_intro.html</a></p>\n<p>Flatpack - <a href=\"https://flatpak.org/\"\nclass=\"uri\">https://flatpak.org/</a></p>\n<p>FreeBSD - <a href=\"https://www.freebsd.org/\"\nclass=\"uri\">https://www.freebsd.org/</a></p>\n<p>Fedora - <a href=\"https://fedoraproject.org/\"\nclass=\"uri\">https://fedoraproject.org/</a></p>\n<p>Podman - <a href=\"https://podman.io/\"\nclass=\"uri\">https://podman.io/</a></p>\n<p>Distro Hoppers Digest - <a\nhref=\"https://distrohoppersdigest.blogspot.com/\"\nclass=\"uri\">https://distrohoppersdigest.blogspot.com/</a></p>\n<p>Mintcast - <a href=\"https://mintcast.org/\"\nclass=\"uri\">https://mintcast.org/</a></p>\n<p>TLLTS - <a href=\"https://tllts.org/\"\nclass=\"uri\">https://tllts.org/</a></p>\n<p>Seattle - <a href=\"https://visitseattle.org/\"\nclass=\"uri\">https://visitseattle.org/</a></p>\n<p>Mumble - <a href=\"https://www.mumble.info/\"\nclass=\"uri\">https://www.mumble.info/</a></p>\n<p>Netbook PC - <a href=\"https://en.wikipedia.org/wiki/Netbook\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Netbook</a></p>\n<p>ThinkCentre M700 Tiny - <a\nhref=\"https://www.lenovo.com/il/en/desktops-and-all-in-ones/thinkcentre/m-series-tiny/M700-Tiny/p/11TC1MTM700\"\nclass=\"uri\">https://www.lenovo.com/il/en/desktops-and-all-in-ones/thinkcentre/m-series-tiny/M700-Tiny/p/11TC1MTM700</a></p>\n<p>ThinkPad T540p - <a\nhref=\"https://www.lenovo.com/za/en/laptops/thinkpad/t-series/T540p/p/22TP2TT540P\"\nclass=\"uri\">https://www.lenovo.com/za/en/laptops/thinkpad/t-series/T540p/p/22TP2TT540P</a></p>\n<p>Electronica - <a\nhref=\"https://medium.com/the-music-magnet/what-is-electronica-the-music-genre-defined-ece0a80c210d\"\nclass=\"uri\">https://medium.com/the-music-magnet/what-is-electronica-the-music-genre-defined-ece0a80c210d</a></p>\n<p>The Fat Boys - <a\nhref=\"https://hiphopgoldenage.com/artists/fat-boys/\"\nclass=\"uri\">https://hiphopgoldenage.com/artists/fat-boys/</a></p>\n<p>House Music - <a href=\"https://en.wikipedia.org/wiki/House_music\"\nclass=\"uri\">https://en.wikipedia.org/wiki/House_music</a></p>\n<p>Trap Music - <a\nhref=\"https://online.berklee.edu/takenote/trap-music-where-it-came-from-and-where-its-going/\"\nclass=\"uri\">https://online.berklee.edu/takenote/trap-music-where-it-came-from-and-where-its-going/</a></p>\n<p>Bluegrass Music - <a href=\"https://www.loc.gov/item/ihas.200152684/\"\nclass=\"uri\">https://www.loc.gov/item/ihas.200152684/</a></p>\n<p>HPZ 800 Workstation - <a\nhref=\"https://support.hp.com/us-en/document/c01709726\"\nclass=\"uri\">https://support.hp.com/us-en/document/c01709726</a></p>\n<p>XEON CPU - <a\nhref=\"https://www.intel.com/content/www/us/en/products/details/processors/xeon/scalable.html\"\nclass=\"uri\">https://www.intel.com/content/www/us/en/products/details/processors/xeon/scalable.html</a></p>\n<p>Galagp Pro - <a href=\"https://system76.com/laptops/galago\"\nclass=\"uri\">https://system76.com/laptops/galago</a></p>\n<p>MSI Laptops - <a href=\"https://us.msi.com/Laptops\"\nclass=\"uri\">https://us.msi.com/Laptops</a></p>\n<p>Borderlands - <a href=\"https://borderlands.2k.com/\"\nclass=\"uri\">https://borderlands.2k.com/</a></p>\n<p>Audiobookshelf - <a href=\"https://www.audiobookshelf.org/\"\nclass=\"uri\">https://www.audiobookshelf.org/</a></p>\n<p>Plex - <a href=\"https://www.plex.tv/\"\nclass=\"uri\">https://www.plex.tv/</a></p>\n<p>Amiga Computers - <a\nhref=\"https://en.wikipedia.org/wiki/History_of_the_Amiga\"\nclass=\"uri\">https://en.wikipedia.org/wiki/History_of_the_Amiga</a></p>\n<p>AA Batteries - <a\nhref=\"https://www.microbattery.com/blog/post/battery-bios:-everything-you-need-to-know-about-the-aa-battery/\"\nclass=\"uri\">https://www.microbattery.com/blog/post/battery-bios:-everything-you-need-to-know-about-the-aa-battery/</a></p>\n<p>Pine Tab 2 - <a\nhref=\"https://pine64.com/product/pinetab2-10-1-8gb-128gb-linux-tablet-with-detached-backlit-keyboard/\"\nclass=\"uri\">https://pine64.com/product/pinetab2-10-1-8gb-128gb-linux-tablet-with-detached-backlit-keyboard/</a></p>\n<p>Amiga OS - <a href=\"https://www.amigaos.net/\"\nclass=\"uri\">https://www.amigaos.net/</a></p>\n<p>Lipo Battery - <a href=\"https://www.rogershobbycenter.com/lipoguide\"\nclass=\"uri\">https://www.rogershobbycenter.com/lipoguide</a></p>\n<p>Raspberry Pi 400 - <a\nhref=\"https://www.raspberrypi.com/products/raspberry-pi-400/\"\nclass=\"uri\">https://www.raspberrypi.com/products/raspberry-pi-400/</a></p>\n<p>Cray-1 - <a href=\"https://en.wikipedia.org/wiki/Cray-1\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Cray-1</a></p>\n<p>Cray-1 vs Raspberry Pi - <a\nhref=\"https://blog.adafruit.com/2024/01/17/comparing-the-1970s-cray-1-supercomputer-against-the-raspberry-pi-single-board-computer-range-raspberrypi-hacksterio/\"\nclass=\"uri\">https://blog.adafruit.com/2024/01/17/comparing-the-1970s-cray-1-supercomputer-against-the-raspberry-pi-single-board-computer-range-raspberrypi-hacksterio/</a></p>\n<p>Toastmasters International (public speaking group) - <a\nhref=\"https://www.toastmasters.org/\"\nclass=\"uri\">https://www.toastmasters.org/</a></p>\n<p>Volla phone (Ubuntu Touch) - <a href=\"https://volla.online/en/\"\nclass=\"uri\">https://volla.online/en/</a></p>\n<p>Canonical - <a href=\"https://canonical.com/\"\nclass=\"uri\">https://canonical.com/</a></p>\n<p>Pine Phone - <a href=\"https://pine64.com/product-category/pinephone/\"\nclass=\"uri\">https://pine64.com/product-category/pinephone/</a></p>\n<p>Librem phone - <a href=\"https://puri.sm/products/librem-5/\"\nclass=\"uri\">https://puri.sm/products/librem-5/</a></p>\n<p>Pine 64 - <a href=\"https://pine64.org/\"\nclass=\"uri\">https://pine64.org/</a></p>\n<p>Android - <a href=\"https://www.android.com/android-14/\"\nclass=\"uri\">https://www.android.com/android-14/</a></p>\n<p>Ubports - <a href=\"https://ubports.com/en/\"\nclass=\"uri\">https://ubports.com/en/</a></p>\n<p>Plasma - <a href=\"https://kde.org/plasma-desktop/\"\nclass=\"uri\">https://kde.org/plasma-desktop/</a></p>\n<p>Phosh - <a href=\"https://wiki.postmarketos.org/wiki/Phosh\"\nclass=\"uri\">https://wiki.postmarketos.org/wiki/Phosh</a></p>\n<p>Sailfish OS - <a href=\"https://sailfishos.org/\"\nclass=\"uri\">https://sailfishos.org/</a></p>\n<p>SIM Card - <a href=\"https://en.wikipedia.org/wiki/SIM_card\"\nclass=\"uri\">https://en.wikipedia.org/wiki/SIM_card</a></p>\n<p>Gnome - <a href=\"https://www.gnome.org/\"\nclass=\"uri\">https://www.gnome.org/</a></p>\n<p>Manjaro - <a href=\"https://manjaro.org/\"\nclass=\"uri\">https://manjaro.org/</a></p>\n<p>Levi Jeans - <a href=\"https://www.levi.com/US/en_US/\"\nclass=\"uri\">https://www.levi.com/US/en_US/</a></p>\n',269,0,1,'CC-BY-SA','new years, linux, community',0,0,1),
(4143,'2024-06-19','Learning to touch-type using the Dvorak keyboard layout',545,'Why I chose Dvorak and some tools I found useful','<p>After 40 years of \'hunt and peck\' typing I finally bit the bullet and learned to touch type, using the Dvorak keyboard layout.</p>\n<p>I found plenty of online tools and listings of software designed to help, and I cover some of these in this episode.</p>\n\n<p>Links:<br />\n<a href=\"https://typing.com\">typing.com</a><br />\n<a href=\"https://keybr.com\">keybr.com</a><br />\n<a href=\"https://github.com/Samyak2/toipe\">toipe</a></p>\n<p>Lots more links and software: <a href=\"https://www.typingsoft.com/all_typing_tutors.htm\">typingsoft.com</a><br />\n<a href=\"https://en.wikipedia.org/wiki/Dvorak_keyboard_layout\">Dvorak layout on Wikipedia</a></p>\n<p>Contact the host: enistello at tuta dot io</p>\n',415,0,0,'CC-BY-SA','typing,keyboards,software',0,0,1),
(4142,'2024-06-18','A Shared Shell History With Atuin',1673,'Install and Setup Atuin a utility to make your shell magical','<p>In this episode Marcus / mnw walks you through the install and\ninitial configuration of a shell history replacement called Atuin.</p>\n<p>My first show I\'m quite nervous!</p>\n<h3 id=\"config-options\">Config Options</h3>\n<p>These are the settings suggested to change in the config file\n<code>~/.config/atuin/config.toml</code></p>\n<pre><code>auto_sync = true\n\nstyle = &quot;compact&quot;\n\ninline_height = 10\n\nenter_accept = false</code></pre>\n<h3 id=\"trouble-shooting\">Trouble Shooting</h3>\n<p>Is my postgresql working ?</p>\n<p><code>psql -d \"postgres://atuin:ak4hTNms5Y@127.0.0.1:5432/atuin\" -c \"select now()\"</code></p>\n<p>Is my service running?</p>\n<p><code>service atuin status</code></p>\n<h3 id=\"syncing\">Syncing</h3>\n<p>On the first host you register on you want to grab your key.</p>\n<p><code>atuin key</code></p>\n<p>Then login and use that key on the other clients with</p>\n<p><code>atuin login -u username -k \"the word soup from the atuin key command\"</code></p>\n<h3 id=\"links\">Links</h3>\n<ul>\n<li>Project - <a href=\"https://atuin.sh\">https://atuin.sh</a></li>\n<li>Server Guide - <a\nhref=\"https://forum.atuin.sh/t/guide-how-to-setup-an-atuin-server/198\">https://forum.atuin.sh/t/guide-how-to-setup-an-atuin-server/198</a></li>\n<li>Socials and about me - <a\nhref=\"https://mnw.sdf.org\">https://mnw.sdf.org</a></li>\n</ul>\n',432,0,0,'CC-BY-SA','atuin, cli, shell, how-to ',0,0,1),
(4146,'2024-06-24','Pi 5 - Some initial thoughts',886,'After playing around with the Pi5 for a couple of months, Kevie shares his experiences.','<p><a href=\"https://mastodon.me.uk/@kevie\">Kevie</a>, co-host of the <a href=\"https://tuxjam.otherside.network/\">TuxJam podcast</a>, shares his thoughts on his recent purchase of the Raspberry Pi 5. Deciding to try this out to see if it could operate as a realistic day-to-day desktop PC, he opted for the Pimoroni NVMe Base along with a 512GB SSD drive. The links to the products in this episode:</p>\n<ul>\n<li><a href=\"https://shop.pimoroni.com/products/raspberry-pi-5?variant=41044580171859\">Pi 5</a></li>\n<li><a href=\"https://shop.pimoroni.com/products/raspberry-pi-27w-usb-c-power-supply?variant=41120791232595\">Pi 5 PSU</a></li>\n<li><a href=\"https://shop.pimoroni.com/products/nvme-base?variant=41219587211347\">NVMe Base + 500GB SSD</a></li>\n<li><a href=\"https://shop.pimoroni.com/products/raspberry-pi-5-active-cooler?variant=41044554580051\">Pi 5 Active Cooler</a></li>\n</ul>\n',296,0,0,'CC-BY-SA','Raspberry Pi, Pi5, Arm64',0,0,1),
(4164,'2024-07-18','Postgraduate Computing',657,'Studying for a Masters in Computing with The Open University','<p>MSc in Computing - <a\nhref=\"https://www.open.ac.uk/postgraduate/qualifications/f66\"\nclass=\"uri\">https://www.open.ac.uk/postgraduate/qualifications/f66</a></p>\n',403,0,0,'CC-BY-SA','university, security, software engineering',0,0,1),
(4169,'2024-07-25',' HPR New Years Eve Show 2023 - 24 ep 4',7196,'The HPR community comes together to converse','<h1 id=\"episode-04-start-pandoc-flavor-markdown.\">Episode 04: Start\n(Pandoc flavor markdown.)</h1>\n<ul>\n<li><a href=\"https://www.ubereats.com/\"\ntitle=\"Uber Eats is the easy way to get the food you love delivered.\">ubereats:</a>\n<strong>Uber Eats</strong> is the easy way to get the food you love\ndelivered.<br />\n</li>\n<li><a href=\"https://www.doordash.com/\"\ntitle=\"At DoorDash, our mission is to empower and grow local economies by...\">doordash:</a>\nAt <strong>DoorDash</strong>, our mission is to empower and grow local\neconomies by...<br />\n</li>\n<li><a href=\"https://www.skipthedishes.com/\"\ntitle=\"SkipTheDishes connects millions of customers with over 30,000 Restaurant Partners in Canada.\">skipthedishes:</a>\n<strong>SkipTheDishes</strong> connects millions of customers with over\n30,000 Restaurant Partners in Canada.<br />\n</li>\n<li><a href=\"https://www.just-eat.co.uk/\"\ntitle=\"Just Eat Takeaway.com is a leading global online food delivery marketplace\">just-eat:</a>\n<strong>Just Eat</strong> Takeaway.com is a leading global online food\ndelivery marketplace<br />\n</li>\n<li><a href=\"https://www.uber.com/\"\ntitle=\"Go anywhere with Uber\">uber:</a> Go anywhere with\n<strong>Uber</strong>.<br />\n</li>\n<li><a href=\"https://www.lyft.com/\"\ntitle=\"Lyft, Inc. is an American company offering mobility as a service\">lyft:</a>\n<strong>Lyft</strong>, Inc. is an American company offering mobility as\na service.<br />\n</li>\n<li><a\nhref=\"https://www.ottawaredblacks.com/\">ottawaredblacks:</a><br />\n</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/List_of_federal_political_parties_in_Canada\"\ntitle=\"From Wikipedia, the free encyclopedia\">wikipedia:</a> List of\nfederal <strong>political parties in Canada</strong>.<br />\n</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/List_of_political_parties_in_the_United_Kingdom\"\ntitle=\"From Wikipedia, the free encyclopedia\">wikipedia:</a> List of\n<strong>political parties in the United Kingdom</strong>.<br />\n</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Political_parties_in_the_United_States\"\ntitle=\"From Wikipedia, the free encyclopedia\">wikipedia:</a> Political\nparties in the United States.<br />\n</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Miller_Brewing_Company#Brands\"\ntitle=\"From Wikipedia, the free encyclopedia\">wikipedia:</a>\n<strong>High Life</strong> is Miller Brewing\'s oldest brand and...\nlongtime slogan \"The Champagne of Beers\".<br />\n</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Moosehead_Breweries#Brands\"\ntitle=\"From Wikipedia, the free encyclopedia\">wikipedia:</a> Moosehead\nand its subsidiary The Premium Beer Company brew/market the following\nbeverages...<br />\n</li>\n<li><a href=\"https://en.wikipedia.org/wiki/India_pale_ale\"\ntitle=\"From Wikipedia, the free encyclopedia\">wikipedia:</a>\n<strong>India pale ale</strong> (IPA) is a hoppy beer style within the\nbroader category of pale ale.<br />\n</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Orange_wine\"\ntitle=\"From Wikipedia, the free encyclopedia\">wikipedia:</a>\n<strong>Orange wine</strong>, also known as skin-contact white wine,\nskin-fermented white wine, or amber wine, is a type of wine made from\nwhite wine grapes where the grape skins are not removed...<br />\n</li>\n<li><a href=\"https://ground.news/\"\ntitle=\"Read the news from multiple perspectives. See through media bias...\">ground:</a>\n<strong>Ground News</strong>, read the news from multiple perspectives.\nSee through media bias with reliable news from local and international\nsources.<br />\n</li>\n</ul>\n',269,0,1,'CC-BY-SA',' new years, linux, community.',0,0,1),
(4145,'2024-06-21','Review of the Riwbox TX8',351,'I talk about the Riwbox TX8 and why I love it so much','<p><a\nhref=\"https://www.amazon.com/Riwbox-TX8-Bluetooth-Headphones-Wireless/dp/B09FT3KWJZ?th=1\">Riwbox\nTX8 Bluetooth Headphones</a></p>\n',297,0,0,'CC-BY-SA','headphones, bluetooth, wireless',0,0,1),
(4147,'2024-06-25','Review of the Moto G 5G 2020',828,'I talk about the phone, what I like and what I don\'t like about it','<p><a\nhref=\"https://www.motorola.com/us/smartphones-moto-g-5g-gen-3/p?skuId=1071\">Motorola\nMoto G 5G</a></p>\n',297,0,0,'CC-BY-SA','android, motorola, t-mobile, phone, cellphone',0,0,1),
(4179,'2024-08-08',' HPR New Years Eve Show 2023 - 24 ep 5',7069,' The HPR community comes together to converse','<ul>\n<li><p>Victoria Snowfields - <a\nhref=\"https://www.visitvictoria.com/see-and-do/outdoor-and-adventure/snow-and-skiing/melbournes-snowfields\"\nclass=\"uri\">https://www.visitvictoria.com/see-and-do/outdoor-and-adventure/snow-and-skiing/melbournes-snowfields</a></p></li>\n<li><p>Australian Shark Attacks - <a\nhref=\"https://cosmosmagazine.com/nature/marine-life/australia-a-hotspot-as-shark-attack-deaths-rise/\"\nclass=\"uri\">https://cosmosmagazine.com/nature/marine-life/australia-a-hotspot-as-shark-attack-deaths-rise/</a></p></li>\n<li><p>Zone Rouge (France) - <a\nhref=\"https://en.wikipedia.org/wiki/Zone_rouge\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Zone_rouge</a></p></li>\n<li><p>British Cloud Seeding - <a\nhref=\"https://www.yourweather.co.uk/news/science/cloud-seeding-an-experiment-with-unpredictable-consequences-weather-manipulation-climate.html\"\nclass=\"uri\">https://www.yourweather.co.uk/news/science/cloud-seeding-an-experiment-with-unpredictable-consequences-weather-manipulation-climate.html</a></p></li>\n<li><p>NATO - <a href=\"https://www.nato.int/\"\nclass=\"uri\">https://www.nato.int/</a></p></li>\n<li><p>Devon Flood - <a\nhref=\"https://en.wikipedia.org/wiki/Lynmouth_Flood\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Lynmouth_Flood</a></p></li>\n<li><p>Veganism - <a href=\"https://en.wikipedia.org/wiki/Veganism\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Veganism</a></p></li>\n<li><p>Beyond Meat - <a href=\"https://www.beyondmeat.com/en-US/\"\nclass=\"uri\">https://www.beyondmeat.com/en-US/</a></p></li>\n<li><p>Guiness - <a href=\"https://www.guinness.com/en-us\"\nclass=\"uri\">https://www.guinness.com/en-us</a></p></li>\n<li><p>Veganuary Challenge - <a href=\"https://veganuary.com/en-us/\"\nclass=\"uri\">https://veganuary.com/en-us/</a></p></li>\n<li><p>Iisinglass - <a href=\"https://en.wikipedia.org/wiki/Isinglass\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Isinglass</a></p></li>\n<li><p>Apiary - <a\nhref=\"https://bestbees.com/2022/12/06/what-is-an-apiary/\"\nclass=\"uri\">https://bestbees.com/2022/12/06/what-is-an-apiary/</a></p></li>\n<li><p>Vegan Kit-Kat - <a\nhref=\"https://veganessentials.com/products/kit-kat-vegan-chocolate-bar\"\nclass=\"uri\">https://veganessentials.com/products/kit-kat-vegan-chocolate-bar</a></p></li>\n<li><p>Nestle Chocolate - <a href=\"https://www.nestle.com/\"\nclass=\"uri\">https://www.nestle.com/</a></p></li>\n<li><p>Microplastics - <a\nhref=\"https://oceanservice.noaa.gov/facts/microplastics.html\"\nclass=\"uri\">https://oceanservice.noaa.gov/facts/microplastics.html</a></p></li>\n<li><p>Teflon - <a\nhref=\"https://thegoodhuman.com/what-teflon-is-and-why-you-should-avoid-it/\"\nclass=\"uri\">https://thegoodhuman.com/what-teflon-is-and-why-you-should-avoid-it/</a></p></li>\n<li><p>Dark Waters (film with Mark Ruffalo) - <a\nhref=\"https://www.rogerebert.com/reviews/dark-waters-movie-review-2019\"\nclass=\"uri\">https://www.rogerebert.com/reviews/dark-waters-movie-review-2019</a></p></li>\n<li><p>Dupont - <a href=\"https://www.dupont.com/\"\nclass=\"uri\">https://www.dupont.com/</a></p></li>\n<li><p>Erin Brockovich - <a\nhref=\"https://abcnews.go.com/US/erin-brockovich-real-story-town-decades/story?id=78180219\"\nclass=\"uri\">https://abcnews.go.com/US/erin-brockovich-real-story-town-decades/story?id=78180219</a></p></li>\n<li><p>Jalapeno - <a href=\"https://pepperscale.com/jalapeno-peppers/\"\nclass=\"uri\">https://pepperscale.com/jalapeno-peppers/</a></p></li>\n<li><p>Hawaiian Pizza - <a\nhref=\"https://thecozycook.com/hawaiian-pizza/\"\nclass=\"uri\">https://thecozycook.com/hawaiian-pizza/</a></p></li>\n<li><p>Why Tomatoes Were Thought To Be Poisonous? - <a\nhref=\"https://www.smithsonianmag.com/arts-culture/why-the-tomato-was-feared-in-europe-for-more-than-200-years-863735/\"\nclass=\"uri\">https://www.smithsonianmag.com/arts-culture/why-the-tomato-was-feared-in-europe-for-more-than-200-years-863735/</a></p></li>\n<li><p>Nightshade Vegetables - <a\nhref=\"https://www.realsimple.com/health/nutrition-diet/what-are-nightshade-vegetables\"\nclass=\"uri\">https://www.realsimple.com/health/nutrition-diet/what-are-nightshade-vegetables</a></p></li>\n<li><p>Queue (British) - <a\nhref=\"https://www.thoughtco.com/cue-and-queue-1689358\"\nclass=\"uri\">https://www.thoughtco.com/cue-and-queue-1689358</a></p></li>\n<li><p>Abel Tasman - <a href=\"https://en.wikipedia.org/wiki/Abel_Tasman\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Abel_Tasman</a></p></li>\n<li><p>Ivanhoe (Town in New South Wales) - <a\nhref=\"https://www.abc.net.au/news/2019-02-09/outback-town-ivanhoe-fights-for-survival/10723852\"\nclass=\"uri\">https://www.abc.net.au/news/2019-02-09/outback-town-ivanhoe-fights-for-survival/10723852</a></p></li>\n<li><p>British Vs. American Car Terminology - <a\nhref=\"https://www.hemmings.com/stories/2014/03/12/a-conversion-guide-to-british-auto-terminology\"\nclass=\"uri\">https://www.hemmings.com/stories/2014/03/12/a-conversion-guide-to-british-auto-terminology</a></p></li>\n<li><p>British Vs. American spelling - <a\nhref=\"https://blog.collinsdictionary.com/language-lovers/9-spelling-differences-between-british-and-american-english/\"\nclass=\"uri\">https://blog.collinsdictionary.com/language-lovers/9-spelling-differences-between-british-and-american-english/</a></p></li>\n<li><p>Thongs Vs Flip Flops - <a\nhref=\"https://threadcurve.com/flip-flops-vs-thongs/\"\nclass=\"uri\">https://threadcurve.com/flip-flops-vs-thongs/</a></p></li>\n<li><p>Thongs Vs G-strings - <a\nhref=\"https://www.thelist.com/614429/when-should-you-wear-a-g-string-or-a-thong/\"\nclass=\"uri\">https://www.thelist.com/614429/when-should-you-wear-a-g-string-or-a-thong/</a></p></li>\n<li><p>Long Nose Vs Cab Over Trucks - <a\nhref=\"https://www.carscoops.com/2023/04/this-is-why-america-stopped-building-european-style-cab-over-trucks/\"\nclass=\"uri\">https://www.carscoops.com/2023/04/this-is-why-america-stopped-building-european-style-cab-over-trucks/</a></p></li>\n<li><p>Road Train (truck) - <a\nhref=\"https://blog.smartsense.co/road-trains\"\nclass=\"uri\">https://blog.smartsense.co/road-trains</a></p></li>\n<li><p>Kangaroo Road Accidents - <a\nhref=\"https://www.dinggo.com.au/blog/kangaroo-accident-statistics\"\nclass=\"uri\">https://www.dinggo.com.au/blog/kangaroo-accident-statistics</a></p></li>\n<li><p>Coyotes In Boston Mass - <a\nhref=\"https://www.nbcboston.com/news/local/more-coyotes-are-creeping-into-boston-neighborhoods-heres-why/2301397/\"\nclass=\"uri\">https://www.nbcboston.com/news/local/more-coyotes-are-creeping-into-boston-neighborhoods-heres-why/2301397/</a></p>\n<ul>\n<li><p><a\nhref=\"https://www.nbcboston.com/news/local/coyote-sightings-in-jamaica-plain-have-residents-on-edge/3106545/\"\nclass=\"uri\">https://www.nbcboston.com/news/local/coyote-sightings-in-jamaica-plain-have-residents-on-edge/3106545/</a></p></li>\n<li><p><a\nhref=\"https://www.cbsnews.com/boston/news/cohasset-coyotes-video-pack/\"\nclass=\"uri\">https://www.cbsnews.com/boston/news/cohasset-coyotes-video-pack/</a></p></li>\n</ul></li>\n<li><p>Blue Heeler - <a\nhref=\"https://www.thesprucepets.com/blue-heeler-4176567\"\nclass=\"uri\">https://www.thesprucepets.com/blue-heeler-4176567</a></p></li>\n<li><p>Dingo - <a\nhref=\"https://australian.museum/learn/animals/mammals/dingo/\"\nclass=\"uri\">https://australian.museum/learn/animals/mammals/dingo/</a></p></li>\n<li><p>Rabies - <a\nhref=\"https://www.who.int/news-room/fact-sheets/detail/rabies\"\nclass=\"uri\">https://www.who.int/news-room/fact-sheets/detail/rabies</a></p></li>\n<li><p>Beaver Restoration - <a\nhref=\"https://www.beaverinstitute.org/library_category/stream-restoration/\"\nclass=\"uri\">https://www.beaverinstitute.org/library_category/stream-restoration/</a></p></li>\n<li><p>Various Species of Carp - <a\nhref=\"https://eatingthewild.com/types-of-carp/\"\nclass=\"uri\">https://eatingthewild.com/types-of-carp/</a></p></li>\n<li><p>Silencers (Suppressors UK) for firearms - <a\nhref=\"https://www.americanrifleman.org/content/suppressors-what-we-can-learn-from-the-uk-experience/\"\nclass=\"uri\">https://www.americanrifleman.org/content/suppressors-what-we-can-learn-from-the-uk-experience/</a></p></li>\n<li><p>Calicivirus - <a\nhref=\"https://www.merck-animal-health-usa.com/condition/feline-calicivirus\"\nclass=\"uri\">https://www.merck-animal-health-usa.com/condition/feline-calicivirus</a></p></li>\n<li><p>Snowshoe Hare - <a\nhref=\"https://www.nwf.org/Educational-Resources/Wildlife-Guide/Mammals/Snowshoe-Hare\"\nclass=\"uri\">https://www.nwf.org/Educational-Resources/Wildlife-Guide/Mammals/Snowshoe-Hare</a></p></li>\n<li><p>Weasels - <a\nhref=\"https://www.mentalfloss.com/article/64193/7-fierce-facts-about-weasels\"\nclass=\"uri\">https://www.mentalfloss.com/article/64193/7-fierce-facts-about-weasels</a></p></li>\n<li><p>Wolverine - <a\nhref=\"https://www.nwf.org/Educational-Resources/Wildlife-Guide/Mammals/Wolverine\"\nclass=\"uri\">https://www.nwf.org/Educational-Resources/Wildlife-Guide/Mammals/Wolverine</a></p></li>\n<li><p>Ferret - <a\nhref=\"https://www.ferret-world.com/ferret-facts/types-of-ferrets/\"\nclass=\"uri\">https://www.ferret-world.com/ferret-facts/types-of-ferrets/</a></p></li>\n<li><p>Polecat - <a\nhref=\"https://www.wildlifetrusts.org/wildlife-explorer/mammals/polecat\"\nclass=\"uri\">https://www.wildlifetrusts.org/wildlife-explorer/mammals/polecat</a></p></li>\n<li><p>Bobcat - <a href=\"https://a-z-animals.com/animals/bobcat/\"\nclass=\"uri\">https://a-z-animals.com/animals/bobcat/</a></p></li>\n<li><p>Lynx - <a href=\"https://animalcorner.org/animals/lynx/\"\nclass=\"uri\">https://animalcorner.org/animals/lynx/</a></p></li>\n<li><p>Mountain Lion - <a\nhref=\"https://www.nwf.org/Educational-Resources/Wildlife-Guide/Mammals/Mountain-Lion\"\nclass=\"uri\">https://www.nwf.org/Educational-Resources/Wildlife-Guide/Mammals/Mountain-Lion</a></p></li>\n<li><p>Black Angus Beef - <a\nhref=\"https://www.thespruceeats.com/what-to-know-about-angus-beef-333745\"\nclass=\"uri\">https://www.thespruceeats.com/what-to-know-about-angus-beef-333745</a></p></li>\n<li><p>Heating Pad For Screen Repair - <a\nhref=\"https://www.ifixit.com/products/cpb-heating-pad-for-screen-and-battery-replacement\"\nclass=\"uri\">https://www.ifixit.com/products/cpb-heating-pad-for-screen-and-battery-replacement</a></p></li>\n<li><p>Raspberry Pi 400 - <a\nhref=\"https://www.raspberrypi.com/products/raspberry-pi-400/\"\nclass=\"uri\">https://www.raspberrypi.com/products/raspberry-pi-400/</a></p></li>\n<li><p>Micro HDMI - <a\nhref=\"https://www.howtogeek.com/745530/hdmi-vs-mini-hdmi-vs-micro-hdmi-whats-the-difference/\"\nclass=\"uri\">https://www.howtogeek.com/745530/hdmi-vs-mini-hdmi-vs-micro-hdmi-whats-the-difference/</a></p></li>\n<li><p>MX Linux - <a href=\"https://mxlinux.org/\"\nclass=\"uri\">https://mxlinux.org/</a></p></li>\n<li><p>Raspberry Pi 5 - <a\nhref=\"https://www.raspberrypi.com/products/raspberry-pi-5/\"\nclass=\"uri\">https://www.raspberrypi.com/products/raspberry-pi-5/</a></p></li>\n<li><p>Orange Pi - <a href=\"http://www.orangepi.org/\"\nclass=\"uri\">http://www.orangepi.org/</a></p></li>\n<li><p>Transcoding - <a\nhref=\"https://corp.kaltura.com/blog/what-is-transcoding/\"\nclass=\"uri\">https://corp.kaltura.com/blog/what-is-transcoding/</a></p></li>\n<li><p>CODEC - <a\nhref=\"https://www.howtogeek.com/763274/what-is-a-codec/\"\nclass=\"uri\">https://www.howtogeek.com/763274/what-is-a-codec/</a></p></li>\n<li><p>Geekworm Raspberry Pi Cases - <a\nhref=\"https://geekworm.com/collections/raspberry-pi\"\nclass=\"uri\">https://geekworm.com/collections/raspberry-pi</a></p></li>\n<li><p>Seedstudio - <a href=\"https://www.seeedstudio.com/\"\nclass=\"uri\">https://www.seeedstudio.com/</a></p></li>\n<li><p>Argon One Pi Case - <a\nhref=\"https://argon40.com/collections/raspberry-pi-cases\"\nclass=\"uri\">https://argon40.com/collections/raspberry-pi-cases</a></p></li>\n</ul>\n',269,0,1,'CC-BY-SA',' new years, linux, community.',0,0,1),
(4189,'2024-08-22',' HPR New Years Eve Show 2023 - 24 ep 6',7408,'The HPR community comes together to converse','<ul>\n<li><p>Stephen Seagal (death hoax) - <a\nhref=\"https://www.pinterest.com/pin/fashion--441000988526588304/\"\nclass=\"uri\">https://www.pinterest.com/pin/fashion--441000988526588304/</a></p></li>\n<li><p>Stephen Seagal - <a\nhref=\"https://www.rottentomatoes.com/celebrity/steven_seagal\"\nclass=\"uri\">https://www.rottentomatoes.com/celebrity/steven_seagal</a></p></li>\n<li><p>Bill Nye \"The Science Guy\" Death Hoax - <a\nhref=\"https://www.imdb.com/news/ni62306201/\"\nclass=\"uri\">https://www.imdb.com/news/ni62306201/</a></p></li>\n<li><p>Bill Nye \"The Science Guy\" - <a href=\"https://www.billnye.com/\"\nclass=\"uri\">https://www.billnye.com/</a></p></li>\n<li><p>Jimmy Kimmel - <a\nhref=\"https://en.wikipedia.org/wiki/Jimmy_Kimmel\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Jimmy_Kimmel</a></p></li>\n<li><p>VIM - <a href=\"https://www.vim.org/\"\nclass=\"uri\">https://www.vim.org/</a></p></li>\n<li><p>Etherpad - <a href=\"https://etherpad.org/\"\nclass=\"uri\">https://etherpad.org/</a></p></li>\n<li><p>Scott Sigler - <a href=\"https://scottsigler.com/\"\nclass=\"uri\">https://scottsigler.com/</a></p></li>\n<li><p>Stephen King - <a href=\"https://stephenking.com/index.html\"\nclass=\"uri\">https://stephenking.com/index.html</a></p></li>\n<li><p>Graphic Audio - <a href=\"https://www.graphicaudio.net/\"\nclass=\"uri\">https://www.graphicaudio.net/</a></p></li>\n<li><p>One Drive Audiobooks - <a href=\"https://www.overdrive.com/\"\nclass=\"uri\">https://www.overdrive.com/</a></p></li>\n<li><p>Hoopla Audio Books - <a\nhref=\"https://www.hoopladigital.com/browse/audiobook\"\nclass=\"uri\">https://www.hoopladigital.com/browse/audiobook</a></p></li>\n<li><p>LibreVox - <a href=\"https://librivox.org/\"\nclass=\"uri\">https://librivox.org/</a></p></li>\n<li><p>Filthy Casuals Gaming Podcast - <a\nhref=\"https://www.filthycasuals.com.au/\"\nclass=\"uri\">https://www.filthycasuals.com.au/</a></p></li>\n<li><p>Wolf 359 Podcast - <a href=\"https://wolf359.fm/\"\nclass=\"uri\">https://wolf359.fm/</a></p></li>\n<li><p>Black Tapes Podcast - <a href=\"http://theblacktapespodcast.com/\"\nclass=\"uri\">http://theblacktapespodcast.com/</a></p></li>\n<li><p>Tanis Podcast - <a href=\"http://tanispodcast.com/\"\nclass=\"uri\">http://tanispodcast.com/</a></p></li>\n<li><p>Evil Genius Podcast - <a\nhref=\"https://www.bbc.co.uk/programmes/p0605sx6/episodes/downloads\"\nclass=\"uri\">https://www.bbc.co.uk/programmes/p0605sx6/episodes/downloads</a></p></li>\n<li><p>Dungeons &amp; Dragons - <a href=\"https://dnd.wizards.com/\"\nclass=\"uri\">https://dnd.wizards.com/</a></p></li>\n<li><p>Viva La Dirt League D&amp;D Podcast - <a\nhref=\"https://www.youtube.com/@VivaLaDirtLeagueDnD\"\nclass=\"uri\">https://www.youtube.com/@VivaLaDirtLeagueDnD</a></p></li>\n<li><p>Critical Role Podcast - <a href=\"https://critrole.com/podcast/\"\nclass=\"uri\">https://critrole.com/podcast/</a></p></li>\n<li><p>Legend of Vox Machina - <a\nhref=\"https://criticalrole.fandom.com/wiki/The_Legend_of_Vox_Machina\"\nclass=\"uri\">https://criticalrole.fandom.com/wiki/The_Legend_of_Vox_Machina</a></p></li>\n<li><p>Heroes Road Audiobook Series - <a\nhref=\"https://www.graphicaudio.net/heroes-road-series-set.html\"\nclass=\"uri\">https://www.graphicaudio.net/heroes-road-series-set.html</a></p></li>\n<li><p>Rhythm Box - <a href=\"http://www.rhythmbox.org/\"\nclass=\"uri\">http://www.rhythmbox.org/</a></p></li>\n<li><p>Herbivores - <a\nhref=\"https://courses.lumenlearning.com/wm-biology2/chapter/herbivores-carnivores-and-omnivores/\"\nclass=\"uri\">https://courses.lumenlearning.com/wm-biology2/chapter/herbivores-carnivores-and-omnivores/</a></p></li>\n<li><p>Tyrannosaurus Rex - <a\nhref=\"https://kids.nationalgeographic.com/animals/prehistoric/facts/tyrannosaurus-rex\"\nclass=\"uri\">https://kids.nationalgeographic.com/animals/prehistoric/facts/tyrannosaurus-rex</a></p></li>\n<li><p>Pinecone -<a href=\"https://www.pinecone.io/\"\nclass=\"uri\">https://www.pinecone.io/</a></p></li>\n<li><p>Lichen - <a\nhref=\"https://www.fs.usda.gov/wildflowers/beauty/lichens/index.shtml\"\nclass=\"uri\">https://www.fs.usda.gov/wildflowers/beauty/lichens/index.shtml</a></p></li>\n<li><p>Eating Tide Pods - <a\nhref=\"https://www.health.harvard.edu/blog/why-teenagers-eat-tide-pods-2018013013241\"\nclass=\"uri\">https://www.health.harvard.edu/blog/why-teenagers-eat-tide-pods-2018013013241</a></p></li>\n<li><p>Roll 20 - <a href=\"https://roll20.net/\"\nclass=\"uri\">https://roll20.net/</a></p></li>\n<li><p>LUG (Linux User Group) -<a\nhref=\"https://en.wikipedia.org/wiki/Linux_user_group\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Linux_user_group</a></p></li>\n<li><p>Maker Spaces - <a\nhref=\"https://www.makerspaces.com/what-is-a-makerspace/\"\nclass=\"uri\">https://www.makerspaces.com/what-is-a-makerspace/</a></p></li>\n<li><p>NAS - <a\nhref=\"https://iosafe.com/data-protection-topics/what-is-a-nas-device/\"\nclass=\"uri\">https://iosafe.com/data-protection-topics/what-is-a-nas-device/</a></p></li>\n<li><p>Ryzen 9 3900x - <a href=\"https://www.amd.com/en/product/8436\"\nclass=\"uri\">https://www.amd.com/en/product/8436</a></p></li>\n<li><p>RTX 6950 - <a\nhref=\"https://www.amd.com/en/products/graphics/amd-radeon-rx-6950-xt\"\nclass=\"uri\">https://www.amd.com/en/products/graphics/amd-radeon-rx-6950-xt</a></p></li>\n<li><p>Steamdeck - <a href=\"https://store.steampowered.com/steamdeck\"\nclass=\"uri\">https://store.steampowered.com/steamdeck</a></p></li>\n<li><p>Machine Learning - <a\nhref=\"https://mitsloan.mit.edu/ideas-made-to-matter/machine-learning-explained\"\nclass=\"uri\">https://mitsloan.mit.edu/ideas-made-to-matter/machine-learning-explained</a></p></li>\n<li><p>Large Language Models - <a\nhref=\"https://www.nvidia.com/en-us/glossary/large-language-models/\"\nclass=\"uri\">https://www.nvidia.com/en-us/glossary/large-language-models/</a></p></li>\n<li><p>Mimic 3 (text to speech) - <a\nhref=\"https://mycroftai.github.io/mimic3-presentation/\"\nclass=\"uri\">https://mycroftai.github.io/mimic3-presentation/</a></p></li>\n<li><p>Anaconda AMD drivers - <a\nhref=\"https://docs.anaconda.com/free/working-with-conda/packages/gpu-packages/\"\nclass=\"uri\">https://docs.anaconda.com/free/working-with-conda/packages/gpu-packages/</a></p></li>\n<li><p>Binary Blob - <a href=\"https://puri.sm/learn/blobs/\"\nclass=\"uri\">https://puri.sm/learn/blobs/</a></p></li>\n<li><p>Grim Dawn - <a href=\"https://www.grimdawn.com/\"\nclass=\"uri\">https://www.grimdawn.com/</a></p></li>\n<li><p>BASH Scripting - <a\nhref=\"https://www.geeksforgeeks.org/bash-scripting-introduction-to-bash-and-bash-scripting/\"\nclass=\"uri\">https://www.geeksforgeeks.org/bash-scripting-introduction-to-bash-and-bash-scripting/</a></p></li>\n<li><p>Baldurs Gate 3 - <a href=\"https://baldursgate3.game/\"\nclass=\"uri\">https://baldursgate3.game/</a></p></li>\n<li><p>Humble Bundle - <a href=\"https://www.humblebundle.com/\"\nclass=\"uri\">https://www.humblebundle.com/</a></p></li>\n<li><p>Canon T5 Camera - <a\nhref=\"https://www.usa.canon.com/support/p/eos-rebel-t5\"\nclass=\"uri\">https://www.usa.canon.com/support/p/eos-rebel-t5</a></p></li>\n<li><p>Terrariums - <a\nhref=\"https://www.thespruce.com/how-to-make-terrariums-848007\"\nclass=\"uri\">https://www.thespruce.com/how-to-make-terrariums-848007</a></p></li>\n<li><p>Google Lens - <a href=\"https://lens.google/\"\nclass=\"uri\">https://lens.google/</a></p></li>\n<li><p>Pattaya, Thailand - <a\nhref=\"https://www.lonelyplanet.com/thailand/chonburi-province/pattaya\"\nclass=\"uri\">https://www.lonelyplanet.com/thailand/chonburi-province/pattaya</a></p></li>\n<li><p>Line Messenger (encrypted chat) -<a href=\"https://line.me/en/\"\nclass=\"uri\">https://line.me/en/</a></p></li>\n<li><p>Line Man (app) - <a\nhref=\"https://play.google.com/store/apps/details?id=com.linecorp.linemanth&amp;hl=en&amp;gl=US\"\nclass=\"uri\">https://play.google.com/store/apps/details?id=com.linecorp.linemanth&amp;hl=en&amp;gl=US</a></p></li>\n<li><p>River Kwai - <a href=\"https://www.bridgeriverkwai.com/\"\nclass=\"uri\">https://www.bridgeriverkwai.com/</a></p></li>\n<li><p>Cha-am - <a\nhref=\"https://www.tourismthailand.org/Destinations/Provinces/Cha-am/241\"\nclass=\"uri\">https://www.tourismthailand.org/Destinations/Provinces/Cha-am/241</a></p></li>\n<li><p>Ayutthaya, Thailand - <a\nhref=\"https://whc.unesco.org/en/list/576/\"\nclass=\"uri\">https://whc.unesco.org/en/list/576/</a></p></li>\n<li><p>Saint Louis Zoo Wild Cats Enclosure - <a\nhref=\"https://stlzoo.org/zones/red-rocks/big-cat-coutry\"\nclass=\"uri\">https://stlzoo.org/zones/red-rocks/big-cat-coutry</a></p></li>\n<li><p>Mala Beads - <a\nhref=\"https://www.goldenlotusmala.com/blogs/meditation/how-to-wear-mala-beads\"\nclass=\"uri\">https://www.goldenlotusmala.com/blogs/meditation/how-to-wear-mala-beads</a></p></li>\n<li><p>Screen Printing - <a\nhref=\"https://inkwellnation.com/tshirt-printing/everything-you-need-to-know-about-screen-printing/\"\nclass=\"uri\">https://inkwellnation.com/tshirt-printing/everything-you-need-to-know-about-screen-printing/</a></p></li>\n<li><p>Hemp Fiber - <a\nhref=\"https://www.hemptraders.com/Hemp-Fiber-s/1828.htm\"\nclass=\"uri\">https://www.hemptraders.com/Hemp-Fiber-s/1828.htm</a></p></li>\n<li><p>US CIS - <a href=\"https://www.uscis.gov/\"\nclass=\"uri\">https://www.uscis.gov/</a></p></li>\n<li><p>Knot Tying - <a href=\"https://www.animatedknots.com/basic-knots\"\nclass=\"uri\">https://www.animatedknots.com/basic-knots</a></p></li>\n<li><p>Barnacles - <a\nhref=\"https://oceanservice.noaa.gov/facts/barnacles.html\"\nclass=\"uri\">https://oceanservice.noaa.gov/facts/barnacles.html</a></p></li>\n<li><p>Mahogany Wood - <a href=\"https://en.wikipedia.org/wiki/Mahogany\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Mahogany</a></p></li>\n<li><p>Ankh - <a href=\"https://eztouregypt.com/ankh-meaning/\"\nclass=\"uri\">https://eztouregypt.com/ankh-meaning/</a></p></li>\n<li><p>Friendship Bracelet - <a\nhref=\"https://www.wristband.com/content/all_about_friendship_bracelets\"\nclass=\"uri\">https://www.wristband.com/content/all_about_friendship_bracelets</a></p></li>\n<li><p>Michaels (Hobby Store) - <a href=\"https://www.michaels.com/\"\nclass=\"uri\">https://www.michaels.com/</a></p></li>\n<li><p>Hobby Lobby - <a href=\"https://www.hobbylobby.com/\"\nclass=\"uri\">https://www.hobbylobby.com/</a></p></li>\n<li><p>Mystic Market Columbus, Ohio - <a\nhref=\"https://columbusunderground.com/events/mystic-market/\"\nclass=\"uri\">https://columbusunderground.com/events/mystic-market/</a></p></li>\n<li><p>Columbus Ohio Gallery Hop - <a\nhref=\"https://citypulsecolumbus.com/short-north-gallery-hop/\"\nclass=\"uri\">https://citypulsecolumbus.com/short-north-gallery-hop/</a></p></li>\n</ul>\n',269,0,1,'CC-BY-SA','new years, linux, community.',0,0,1),
(4199,'2024-09-05',' HPR New Years Eve Show 2023 - 24 ep 7',7179,'The HPR community comes together to converse','<ul>\n<li><p>Docker - <a href=\"https://www.docker.com/\"\nclass=\"uri\">https://www.docker.com/</a></p></li>\n<li><p>Podman - <a href=\"https://podman.io/\"\nclass=\"uri\">https://podman.io/</a></p></li>\n<li><p>Kubernetes - <a href=\"https://kubernetes.io/\"\nclass=\"uri\">https://kubernetes.io/</a></p></li>\n<li><p>Jitsi - <a href=\"https://jitsi.org/\"\nclass=\"uri\">https://jitsi.org/</a></p></li>\n<li><p>Mumble - <a href=\"https://www.mumble.info/\"\nclass=\"uri\">https://www.mumble.info/</a></p></li>\n<li><p>Cockpit - <a href=\"https://cockpit-project.org/\"\nclass=\"uri\">https://cockpit-project.org/</a></p></li>\n<li><p>Azure -<a href=\"https://azure.microsoft.com/en-us/free\"\nclass=\"uri\">https://azure.microsoft.com/en-us/free</a></p></li>\n<li><p>Google Cloud - <a href=\"https://cloud.google.com/\"\nclass=\"uri\">https://cloud.google.com/</a></p></li>\n<li><p>AWS - <a href=\"https://aws.amazon.com/\"\nclass=\"uri\">https://aws.amazon.com/</a></p></li>\n<li><p>K3S - <a href=\"https://k3s.io/\"\nclass=\"uri\">https://k3s.io/</a></p></li>\n<li><p>Docker Swarm - <a href=\"https://docs.docker.com/engine/swarm/\"\nclass=\"uri\">https://docs.docker.com/engine/swarm/</a></p></li>\n<li><p>AppArmor - <a href=\"https://apparmor.net/\"\nclass=\"uri\">https://apparmor.net/</a></p></li>\n<li><p>Python - <a href=\"https://www.python.org/\"\nclass=\"uri\">https://www.python.org/</a></p></li>\n<li><p>Banshee Video Card (3dfx) - <a\nhref=\"https://www.techpowerup.com/gpu-specs/voodoo-banshee-agp-16-mb.c3561\"\nclass=\"uri\">https://www.techpowerup.com/gpu-specs/voodoo-banshee-agp-16-mb.c3561</a></p></li>\n<li><p>GIS - <a href=\"https://www.esri.com/en-us/what-is-gis/overview\"\nclass=\"uri\">https://www.esri.com/en-us/what-is-gis/overview</a></p></li>\n<li><p>GPS - <a href=\"https://www.gps.gov/\"\nclass=\"uri\">https://www.gps.gov/</a></p></li>\n<li><p>Java - <a href=\"https://www.java.com/en/\"\nclass=\"uri\">https://www.java.com/en/</a></p></li>\n<li><p>Ruby - <a href=\"https://www.ruby-lang.org/en/\"\nclass=\"uri\">https://www.ruby-lang.org/en/</a></p></li>\n<li><p>Groovy - <a href=\"https://groovy-lang.org/\"\nclass=\"uri\">https://groovy-lang.org/</a></p></li>\n<li><p>Grails - <a href=\"https://grails.org/\"\nclass=\"uri\">https://grails.org/</a></p></li>\n<li><p>Forth - <a href=\"https://www.forth.com/forth/\"\nclass=\"uri\">https://www.forth.com/forth/</a></p></li>\n<li><p>V (programming language) - <a href=\"https://vlang.io/\"\nclass=\"uri\">https://vlang.io/</a></p></li>\n<li><p>BSD - <a href=\"https://www.bsd.org/\"\nclass=\"uri\">https://www.bsd.org/</a></p></li>\n<li><p>ZFS - <a\nhref=\"https://arstechnica.com/information-technology/2020/05/zfs-101-understanding-zfs-storage-and-performance/\"\nclass=\"uri\">https://arstechnica.com/information-technology/2020/05/zfs-101-understanding-zfs-storage-and-performance/</a></p></li>\n<li><p>Slackware - <a href=\"http://www.slackware.com/\"\nclass=\"uri\">http://www.slackware.com/</a></p></li>\n<li><p>Absolute Linux - <a href=\"https://www.absolutelinux.org/\"\nclass=\"uri\">https://www.absolutelinux.org/</a></p></li>\n<li><p>Windows 3.11 - <a\nhref=\"https://winworldpc.com/product/windows-3/311\"\nclass=\"uri\">https://winworldpc.com/product/windows-3/311</a></p></li>\n<li><p>DOS 6.22 - <a href=\"https://winworldpc.com/product/ms-dos/622\"\nclass=\"uri\">https://winworldpc.com/product/ms-dos/622</a></p></li>\n<li><p>Storm Linux - <a\nhref=\"https://distrowatch.com/table.php?distribution=storm\"\nclass=\"uri\">https://distrowatch.com/table.php?distribution=storm</a></p></li>\n<li><p>Alpine Linux - <a href=\"https://www.alpinelinux.org/\"\nclass=\"uri\">https://www.alpinelinux.org/</a></p></li>\n<li><p>Turbo Linux - <a\nhref=\"https://distrowatch.com/table.php?distribution=turbolinux\"\nclass=\"uri\">https://distrowatch.com/table.php?distribution=turbolinux</a></p></li>\n<li><p>Mepis Linux - <a\nhref=\"https://distrowatch.com/table.php?distribution=mepis\"\nclass=\"uri\">https://distrowatch.com/table.php?distribution=mepis</a></p></li>\n<li><p>Sparky Linux - <a href=\"https://sparkylinux.org/\"\nclass=\"uri\">https://sparkylinux.org/</a></p></li>\n<li><p>DistroWatch - <a href=\"https://distrowatch.com/\"\nclass=\"uri\">https://distrowatch.com/</a></p></li>\n<li><p>Mandrake Linux - <a\nhref=\"https://static.lwn.net/2000/features/LinuxMandrake.php3\"\nclass=\"uri\">https://static.lwn.net/2000/features/LinuxMandrake.php3</a></p></li>\n<li><p>Mandriva - <a\nhref=\"https://distrowatch.com/table.php?distribution=mandriva\"\nclass=\"uri\">https://distrowatch.com/table.php?distribution=mandriva</a></p></li>\n<li><p>Fedora Linux - <a href=\"https://fedoraproject.org/\"\nclass=\"uri\">https://fedoraproject.org/</a></p></li>\n<li><p>Windows XP - <a href=\"https://en.wikipedia.org/wiki/Windows_XP\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Windows_XP</a></p></li>\n<li><p>Oxford University - <a href=\"https://www.ox.ac.uk/\"\nclass=\"uri\">https://www.ox.ac.uk/</a></p></li>\n<li><p>Cambridge University - <a href=\"https://www.cam.ac.uk/\"\nclass=\"uri\">https://www.cam.ac.uk/</a></p></li>\n<li><p>HTML - <a href=\"https://www.w3schools.com/html/\"\nclass=\"uri\">https://www.w3schools.com/html/</a></p></li>\n<li><p>CSS - <a href=\"https://www.w3schools.com/css/\"\nclass=\"uri\">https://www.w3schools.com/css/</a></p></li>\n<li><p>Javascript - <a href=\"https://www.javascript.com/\"\nclass=\"uri\">https://www.javascript.com/</a></p></li>\n<li><p>Freenode IRC - <a href=\"https://freenode.net/\"\nclass=\"uri\">https://freenode.net/</a></p></li>\n<li><p>KDE - <a href=\"https://kde.org/\"\nclass=\"uri\">https://kde.org/</a></p></li>\n<li><p>Manjaro - <a href=\"https://manjaro.org/\"\nclass=\"uri\">https://manjaro.org/</a></p></li>\n<li><p>Unity - <a href=\"https://unityd.org/\"\nclass=\"uri\">https://unityd.org/</a></p></li>\n<li><p>OpenSuse - <a href=\"https://www.opensuse.org/\"\nclass=\"uri\">https://www.opensuse.org/</a></p></li>\n<li><p>Enlightenment - <a href=\"https://www.enlightenment.org/\"\nclass=\"uri\">https://www.enlightenment.org/</a></p></li>\n<li><p>Fluxbox - <a href=\"http://fluxbox.org/\"\nclass=\"uri\">http://fluxbox.org/</a></p></li>\n<li><p>Mate - <a href=\"https://mate-desktop.org/\"\nclass=\"uri\">https://mate-desktop.org/</a></p></li>\n<li><p>GTK - <a href=\"https://www.gtk.org/\"\nclass=\"uri\">https://www.gtk.org/</a></p></li>\n<li><p>Vanilla OS - <a href=\"https://vanillaos.org/\"\nclass=\"uri\">https://vanillaos.org/</a></p></li>\n<li><p>Fedora SilverBlue - <a\nhref=\"https://fedoraproject.org/atomic-desktops/silverblue/\"\nclass=\"uri\">https://fedoraproject.org/atomic-desktops/silverblue/</a></p></li>\n<li><p>Ubuntu Core - <a href=\"https://ubuntu.com/core\"\nclass=\"uri\">https://ubuntu.com/core</a></p></li>\n<li><p>Virtual Box - <a href=\"https://www.virtualbox.org/\"\nclass=\"uri\">https://www.virtualbox.org/</a></p></li>\n<li><p>Temple OS - <a href=\"https://templeos.org/\"\nclass=\"uri\">https://templeos.org/</a></p></li>\n<li><p>Dos Box - <a href=\"https://www.dosbox.com/\"\nclass=\"uri\">https://www.dosbox.com/</a></p></li>\n<li><p>Thunderbird - <a href=\"https://www.thunderbird.net/en-US/\"\nclass=\"uri\">https://www.thunderbird.net/en-US/</a></p></li>\n<li><p>Gecko (browser engine) - <a\nhref=\"https://en.wikipedia.org/wiki/Gecko_(software)\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Gecko_(software)</a></p></li>\n<li><p>Graphene OS - <a href=\"https://grapheneos.org/\"\nclass=\"uri\">https://grapheneos.org/</a></p></li>\n<li><p>UBports - <a href=\"https://ubports.com/en/\"\nclass=\"uri\">https://ubports.com/en/</a></p></li>\n<li><p>Nokia \"brick\" phone - <a\nhref=\"https://en.wikipedia.org/wiki/Nokia_3310\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Nokia_3310</a></p></li>\n<li><p>PineTab 2 - <a href=\"https://wiki.pine64.org/wiki/PineTab2\"\nclass=\"uri\">https://wiki.pine64.org/wiki/PineTab2</a></p></li>\n<li><p>Pine Note - <a href=\"https://pine64.org/devices/pinenote/\"\nclass=\"uri\">https://pine64.org/devices/pinenote/</a></p></li>\n<li><p>Pulse Audio - <a\nhref=\"https://www.freedesktop.org/wiki/Software/PulseAudio/\"\nclass=\"uri\">https://www.freedesktop.org/wiki/Software/PulseAudio/</a></p></li>\n<li><p>In Memory Of 5150 - <a\nhref=\"https://linuxlugcast.com/index.php/category/5150/\"\nclass=\"uri\">https://linuxlugcast.com/index.php/category/5150/</a></p></li>\n<li><p>HAM Radio - <a href=\"http://www.arrl.org/what-is-ham-radio\"\nclass=\"uri\">http://www.arrl.org/what-is-ham-radio</a></p></li>\n<li><p>ICQ Chat - <a href=\"https://icq.com/desktop/en?#windows\"\nclass=\"uri\">https://icq.com/desktop/en?#windows</a></p></li>\n</ul>\n',269,0,1,'CC-BY-SA','new years, linux, community.',0,0,1),
(4209,'2024-09-19',' HPR New Years Eve Show 2023 - 24 ep 8',4722,'The HPR community comes together to converse','<ul>\n<li><p>Windows CE - <a\nhref=\"https://simple.wikipedia.org/wiki/Windows_CE\"\nclass=\"uri\">https://simple.wikipedia.org/wiki/Windows_CE</a></p></li>\n<li><p>Embedded Linux - <a\nhref=\"https://en.wikipedia.org/wiki/Linux_on_embedded_systems\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Linux_on_embedded_systems</a></p></li>\n<li><p>NHS - <a href=\"https://www.england.nhs.uk/\"\nclass=\"uri\">https://www.england.nhs.uk/</a></p></li>\n<li><p>Windows XP - <a href=\"https://en.wikipedia.org/wiki/Windows_XP\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Windows_XP</a></p></li>\n<li><p>Munich City Council Goes Open Source - <a\nhref=\"https://www.zdnet.com/article/linux-not-windows-why-munich-is-shifting-back-from-microsoft-to-open-source-again/\"\nclass=\"uri\">https://www.zdnet.com/article/linux-not-windows-why-munich-is-shifting-back-from-microsoft-to-open-source-again/</a></p></li>\n<li><p>Microsoft Onedrive - <a\nhref=\"https://www.microsoft.com/en-us/microsoft-365/onedrive/online-cloud-storage\"\nclass=\"uri\">https://www.microsoft.com/en-us/microsoft-365/onedrive/online-cloud-storage</a></p></li>\n<li><p>Unity - <a href=\"https://unityd.org/\"\nclass=\"uri\">https://unityd.org/</a></p></li>\n<li><p>KDEN Live - <a href=\"https://kdenlive.org/en/\"\nclass=\"uri\">https://kdenlive.org/en/</a></p></li>\n<li><p>AppImage - <a href=\"https://appimage.org/\"\nclass=\"uri\">https://appimage.org/</a></p></li>\n<li><p>Mate - <a href=\"https://mate-desktop.org/\"\nclass=\"uri\">https://mate-desktop.org/</a></p></li>\n<li><p>Gnome 2 - <a\nhref=\"https://help.gnome.org/misc/release-notes/2.0/\"\nclass=\"uri\">https://help.gnome.org/misc/release-notes/2.0/</a></p></li>\n<li><p>XFCE - <a href=\"https://www.xfce.org/\"\nclass=\"uri\">https://www.xfce.org/</a></p></li>\n<li><p>LXDM - <a href=\"https://wiki.archlinux.org/title/LXDM\"\nclass=\"uri\">https://wiki.archlinux.org/title/LXDM</a></p></li>\n<li><p>Pulse Audio - <a href=\"https://pulse.audio/\"\nclass=\"uri\">https://pulse.audio/</a></p></li>\n<li><p>Flying Toasters - <a\nhref=\"https://www.bryanbraun.com/after-dark-css/all/flying-toasters.html\"\nclass=\"uri\">https://www.bryanbraun.com/after-dark-css/all/flying-toasters.html</a></p></li>\n<li><p>Brian Lunduke - <a\nhref=\"https://lunduke.locals.com/post/4619051/lunduke-journal-link-central-tm\"\nclass=\"uri\">https://lunduke.locals.com/post/4619051/lunduke-journal-link-central-tm</a></p></li>\n<li><p>Men In Black Films - <a\nhref=\"https://www.rottentomatoes.com/franchise/men_in_black\"\nclass=\"uri\">https://www.rottentomatoes.com/franchise/men_in_black</a></p></li>\n<li><p>UFO / UAP Disclosure - <a\nhref=\"https://www.newsnationnow.com/space/ufo/uap-disclosure-bill-revised/\"\nclass=\"uri\">https://www.newsnationnow.com/space/ufo/uap-disclosure-bill-revised/</a></p></li>\n<li><p>Italian UFO Crash - <a\nhref=\"https://www.popularmechanics.com/military/research/a44466099/researcher-says-he-has-evidence-of-1933-ufo-crash-in-italy/\"\nclass=\"uri\">https://www.popularmechanics.com/military/research/a44466099/researcher-says-he-has-evidence-of-1933-ufo-crash-in-italy/</a></p></li>\n<li><p>Joe Rogan - <a href=\"https://www.joerogan.com/\"\nclass=\"uri\">https://www.joerogan.com/</a></p></li>\n<li><p>Spotify - <a href=\"https://open.spotify.com/\"\nclass=\"uri\">https://open.spotify.com/</a></p></li>\n<li><p>Oceania - <a href=\"https://en.wikipedia.org/wiki/Oceania\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Oceania</a></p></li>\n<li><p>Area 51 - <a href=\"https://www.space.com/area-51-what-is-it\"\nclass=\"uri\">https://www.space.com/area-51-what-is-it</a></p></li>\n<li><p>NASA, Aliens, and the Moon - <a\nhref=\"https://www.livescience.com/65986-moon-brought-aliens-to-earth.html\"\nclass=\"uri\">https://www.livescience.com/65986-moon-brought-aliens-to-earth.html</a></p></li>\n<li><p>Raiders of the Lost Ark Storage Room - <a\nhref=\"https://screenrant.com/raiders-lost-ark-warehouse-movie-items-stored/\"\nclass=\"uri\">https://screenrant.com/raiders-lost-ark-warehouse-movie-items-stored/</a></p></li>\n<li><p>L Street Bath House In Boston - <a\nhref=\"https://www.bostonirish.com/around-town/2023/curley-center-aka-l-street-opens-doors-public-tours\"\nclass=\"uri\">https://www.bostonirish.com/around-town/2023/curley-center-aka-l-street-opens-doors-public-tours</a></p></li>\n<li><p>MIT - <a href=\"https://www.mit.edu/\"\nclass=\"uri\">https://www.mit.edu/</a></p></li>\n<li><p>PDP-10 - <a href=\"https://en.wikipedia.org/wiki/PDP-10\"\nclass=\"uri\">https://en.wikipedia.org/wiki/PDP-10</a></p></li>\n<li><p>Green Cigars - <a\nhref=\"https://www.cigaraficionado.com/article/10-things-to-know-about-candela-or-green-cigars\"\nclass=\"uri\">https://www.cigaraficionado.com/article/10-things-to-know-about-candela-or-green-cigars</a></p></li>\n<li><p>Health Benefits of a swim in cold water - <a\nhref=\"https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7730683/\"\nclass=\"uri\">https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7730683/</a></p></li>\n<li><p>Polar bear club - <a\nhref=\"https://www.polarbearclub.org/pb-site/\"\nclass=\"uri\">https://www.polarbearclub.org/pb-site/</a></p></li>\n<li><p>Proxmox - <a href=\"https://www.proxmox.com/en/\"\nclass=\"uri\">https://www.proxmox.com/en/</a></p></li>\n</ul>\n',269,0,1,'CC-BY-SA','new years, linux, community.',0,0,1),
(4148,'2024-06-26','Cheap Computers',222,'Buy Used, Run Long','<h2 id=\"buying-cheap-computers\">Buying Cheap Computers</h2>\n<p>Hi. I\'m Moss Bliss. You may have heard me on mintCast, Distrohoppers\'\nDigest, or Full Circle Weekly News.</p>\n<p>I keep hearing people complain that they can\'t find a decent computer\nunder $2,000. My response is: lower your expectations, and help end\ndigital waste. Do you really need a top-end gaming machine? Most games\nwill run on older computers just fine. And there are LOTS of 2016 models\n(and a few newer years) coming off office leases.</p>\n<p>My suggestion is the Lenovo ThinkCentre M700 Tiny; I will have other\nsuggestions later in the podcast, but this is what I went with an have\npersonal experience. The M700 Tiny is a box about the size of an older\nexternal DVD drive, with your choice of an i3, i5 or i7 processor, up to\n64 Gb RAM, and a power supply sipping away at up to 35 watts. If you go\non eBay or your local equivalent, you can find these for ridiculously\nlow prices.</p>\n<p>My recommendation is to go for a box with an i5, 8 or 16 Gb RAM, with\nor without a drive. You can find them even cheaper if you search for \"no\nOS\", which frequently still includes the drive, but SSDs are quite cheap\nthese days so it hardly matters. I recommend the i5 rather than the i7\nbecause, in the 2016 models, the i7 wasn\'t much more than a heat\nproducer compared to the i5 but no faster, and the i5-based machines are\noften $100-150 cheaper.</p>\n<p>Of course I recommend putting the Linux of your choice on these\nmachines when you get it.</p>\n<p>You will need a monitor and keyboard for this. If you don\'t already\nhave one, I would suggest looking locally for a used 26\" LCD/LED TV. You\nwill also want a cable for it, and you can either get a DisplayPort\ncable while you\'re at eBay, or a DP-to-HDMI adapter to use the HDMI\ncable which probably comes with the TV. For a keyboard, you should go to\nyour local big box store and get one you like, if you don\'t want to buy\nused. You can find them from $5 to $20.</p>\n<p>I apologize for my US-centric prices, but you should have similar\nprices in your local currency if you have eBay or something like it.</p>\n<p>I just did a quick lookup for \"M700 Tiny No OS\" on eBay, and saw i5\nmachines which were purported to work from between $80 and $120 with 8\nGb RAM. Be careful to watch for shipping prices, I see a particularly\ngood-looking refurbished model with 16 GB for under $120 -- but the\nshipping is over $35 from Australia!</p>\n<p>If you want an AMD chip, you\'ll need to research the model number...\nbut they do make them, just not as many.</p>\n<p>If you don\'t like Lenovo, you can find Dells and HP EliteDesks in the\nsame range. One good thing about the HPs is that they label which\ngeneration they are -- G2, G3, G4. Newer generations cost more, but will\nbe more future-proof. There is currently an HP EliteDesk 800 G2 with 8\nGb RAM and No OS on eBay for $50! Again, if you buy a G3 or G4 it will\ncost more, but be a newer machine as well.</p>\n<p>These are all 64-bit quad-core computers, some over 3 GHz, with low\npower demands. Cheap to buy, cheap to use. Any version of Linux will run\non them, and if you\'re desperate you can run Windows 10 on them as\nwell.</p>\n<p>That should be enough to get you started. If you have questions,\nwrite me at bardmoss@pm.me.</p>\n<p>Hacker Public Radio needs more podcasts, on any topic and any length.\nGet in touch with Ken and volunteer! This is my second wholly unplanned\npodcast on HPR; you could be next!</p>\n',431,0,0,'CC-BY-SA','computer, cheap, Lenovo, HP, Dell, used',0,0,1),
(4153,'2024-07-03','Steading as she goes!',3601,'The Edinburgh HPR hosts meet and chat again','<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 May 26<sup>th</sup> 2024. We were pleased\nto discover that our favourite pub where we\'ve had lunch in the past,\n<em>The Steading</em>, had not closed permanently following the sale of\nthe premises. That\'s where we met for lunch.</p>\n<p>Thus the show title: <em>The Steading</em> is now back on course<a\nhref=\"https://hackerpublicradio.org/eps/hpr4153/index.html#fn1\" class=\"footnote-ref\" id=\"fnref1\"\nrole=\"doc-noteref\"><sup>1</sup></a>.</p>\n<p>After lunch we as usual adjourned to Dave\'s Citroen car (<em>Studio\nC</em>) in the car park, and recorded a chat.</p>\n<h2 id=\"topics-discussed\">Topics discussed</h2>\n<ul>\n<li><p>YouTube channel recommendations (Dave)</p>\n<ol type=\"1\">\n<li><a href=\"https://www.youtube.com/@ATRestoration\">AT Restoration</a>:\nAhti is a furniture restorer from Estonia. The episodes contain no\nspeech, just ambient sounds, but there is English text on-screen at\ntimes. Music is included for the final part where the item is shown in\nits before and after states. Shows some amazing skill in repairing all\nkinds of old furniture as well as some new builds.\n<ul>\n<li><a href=\"https://www.youtube.com/watch?v=Wkj-glLALTM\">I found a\nsurprise inside the 150 year old chair/armchair restoration</a>: In this\nepisode Ahti restores an armchair and shows the woodwork and upholstery\nrequired.</li>\n</ul></li>\n</ol>\n<p></p>\n<ol start=\"2\" type=\"1\">\n<li><a href=\"https://www.youtube.com/@PhilVandelay\">Phil Vandelay</a>:\nThe channel is about designing and building cargo bikes, machines,\nfurniture and more. The earlier shows contain no speech, just on-screen\nexplanations. In later episodes there is more description and\nexplanation. The level of engineering is high, and the host develops his\nmetalworking workshop and skills as episodes progress.\n<ul>\n<li><a href=\"https://www.youtube.com/watch?v=BE4emXE3kqg\">How to Build\nyour own Cargo Bike (Short Version!)</a>: recent re-edit and re-release\nof the original. This seems to be the second cargo bike he has built,\nand later he builds yet another, this time electric.</li>\n<li><a href=\"https://www.youtube.com/watch?v=BE4emXE3kqg\">How to Build a\nDIY Cargo Bike (Plans available!)</a>: full version of the build.</li>\n</ul></li>\n</ol>\n<p></p>\n<ol start=\"3\" type=\"1\">\n<li><a href=\"https://www.youtube.com/watch?v=BE4emXE3kqg\">Ocean\nConservation Namibia</a>: A Namibia-based team rescuing Cape fur seals\nfrom entanglements in marine garbage. The seals are mainly on the beach\nand the team runs to intercept the ones they spot with garbage around\nthem. They net them and remove whatever they have picked up and release\nthe seals. In many cases the fishing line, net, or other junk has cut\ndeeply into the seal\'s skin and muscle, and would kill them if not\nremoved. Episodes are usually daily and mostly short.\n<ul>\n<li><a href=\"https://www.youtube.com/watch?v=T6ZsXf0EGEA\">34 Seals\nRescued In One Day!</a>: a recent episode, one of the longest.<br />\n<br />\n</li>\n</ul></li>\n</ol>\n<ul>\n<li>Digressions!\n<ul>\n<li>Talking about varnishes for wood. Dave forgot the name of the\nvarnish-like finish <a\nhref=\"https://en.wikipedia.org/wiki/Shellac\"><em>shellac</em></a>, which\nis used in the technique of <a\nhref=\"https://en.wikipedia.org/wiki/French_polish\"><em>French\nPolishing</em></a>.</li>\n<li>Woodwork:\n<ul>\n<li>MrX made a stand for his music keyboard</li>\n<li>Dave made an unfashionable chair in the 1970s (similar in design and\ncolour to the outer chairs in the image)<br />\n<img\nsrc=\"https://hackerpublicradio.org/eps/hpr4153/hpr4153/picture_1.jpg\"\ntitle=\"Modular chairs\" alt=\"Modular chairs\" /><br />\n<small><em>Image copyright © <a href=\"https://www.design-market.co\"\nclass=\"uri\">https://www.design-market.co</a></em></small><br />\n<br />\n</li>\n</ul></li>\n<li>Grass-cutting, etc:\n<ul>\n<li>Repairing a <a\nhref=\"https://en.wikipedia.org/wiki/String_trimmer\"><em>strimmer</em></a>\n(aka <em>string trimmer</em>)</li>\n</ul></li>\n<li>Plastics:\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Bakelite\">Bakelite</a> was\none of the earliest plastics</li>\n<li>Dave owns a valve radio which has a Bakelite case</li>\n</ul></li>\n</ul></li>\n</ul></li>\n<li><p>Computers owned over time (MrX)</p>\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/ZX_Spectrum\">Sinclair ZX\nSpectrum</a>:\n<ul>\n<li>Released in 1982</li>\n<li>Z80 (8-bit) CPU</li>\n<li>The original Spectrum had rubber-like keys</li>\n<li>MrX had a modified system with a keyboard upgrade - the <a\nhref=\"https://t-lcarchive.org/dktronics-keyboard/\">DK\'Tronics</a></li>\n<li>The Spectrum was used for Amateur Radio purposes:\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Morse_code\">Morse code</a>\ndecoding</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Slow-scan_television\">Slow\nScan Television (SSTV)</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Radioteletype\">RadioTeletype\n(RTTY)</a></li>\n</ul></li>\n</ul></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Dragon_32/64\">Dragon 32</a>:\n<ul>\n<li>Released in 1982</li>\n<li>6809 (8-bit) CPU</li>\n<li>Better keyboard</li>\n<li>Centronics parallel (printer port)\n<ul>\n<li>MrX had a pen plotter at one point, possibly an Epson</li>\n<li>Dave mentioned that he had used flat-bed pen plotters and large drum\nplotters at work</li>\n</ul></li>\n<li>The Dragon 32 was used for <a\nhref=\"https://en.wikipedia.org/wiki/Packet_radio\">Packet Radio</a>\n<ul>\n<li>This is a data transfer protocol based on <a\nhref=\"https://en.wikipedia.org/wiki/X.25\">X.25</a> (called <a\nhref=\"https://en.wikipedia.org/wiki/AX.25\">AX.25</a>, <em>Amateur\nX.25</em>)</li>\n</ul></li>\n</ul></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Amiga\">Commodore Amiga</a>:\n<ul>\n<li>Released in 1985</li>\n<li>Motorola 68000 series CPU, 16-bit and 32-bit models</li>\n<li>AmigaOS operating system; <a\nhref=\"https://en.wikipedia.org/wiki/Blitter\">blitter</a></li>\n<li>AX.25 software</li>\n</ul></li>\n<li><a href=\"https://en.wikipedia.org/wiki/I386\">Intel i386 PC</a>\n<ul>\n<li>Running Windows 3.1</li>\n<li><a href=\"https://www.qsl.net/oh7fes/kuvat/PK232.pdf\">PK232-MBX\npacket radio modem (manual)</a>\n<ul>\n<li>The PK232-MBX was similar to a telephone modem except it connected\nto radio.</li>\n<li>The MBX was a super deluxe model that had some extra features. It\ncould do all the same things that the basic PK232 could do (see details\nfrom manual linked above) plus it could also do <a\nhref=\"https://en.wikipedia.org/wiki/Radiofax#Weatherfax\">WeFax\n(WeatherFAX)</a> and had a basic Packet-Radio mailbox facility.</li>\n<li>The two models could deal with <a\nhref=\"https://en.wikipedia.org/wiki/Morse_code\">morse code</a>, Baudot\nand ASCII <a\nhref=\"https://en.wikipedia.org/wiki/Radioteletype\">RadioTeletype\n(RTTY)</a>, <a href=\"https://en.wikipedia.org/wiki/AMTOR\">AMTOR (Amateur\nTeleprinting Over Radio)</a> and Packet-Radio, using in-built\nsoftware.</li>\n<li>The connected radio would switch between transmit and receive to\nsend and acknowledge packets of information.</li>\n<li>The computer was connected by serial RS232 connection. Basic\ncommands were used to control the modem. Any computer capable of talking\nover RS232 could be used. </li>\n</ul></li>\n</ul></li>\n<li>Currently a <a\nhref=\"https://www.dell.com/en-uk/shop/desktop-computers/sr/desktops/optiplex-desktops\">Dell\nOptiplex ex business machine</a>:\n<ul>\n<li>4GB of RAM and a Pentium Dual-Core E5500 CPU clocked at 2.8 GHz</li>\n<li>Ubuntu 18 LTS &amp; Windows 7, needed in order to reprogram Amateur\nradios <br />\n<br />\n</li>\n</ul></li>\n<li>Digressions:\n<ul>\n<li>Dave remembered seeing an example of the <a\nhref=\"https://en.wikipedia.org/wiki/Nascom\">Nascom 1</a> at Lancaster\nUniversity around 1978/79. This was a single board computer kit using\nthe Z80 CPU.</li>\n<li>Comparing a VAX \"mainframe\" with a Raspberry Pi:\n<ul>\n<li>Not simple!</li>\n<li>From 1987 Dave managed two clustered <a\nhref=\"https://en.wikipedia.org/wiki/VAX_8000\">VAX 8700s</a>. These were\nsingle CPU systems with a 32-bit word length and up to 512MB of\nmemory.</li>\n<li>It\'s possible for a Raspberry Pi to emulate a VAX running the VMS\noperating system, though Dave has no direct experience.</li>\n<li>With the RPi 4 and 5 there\'s a good chance that performance compared\nto an actual VAX might be similar if not better. This is just guesswork\nhowever!</li>\n</ul></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Apollo_Guidance_Computer\">Apollo\nGuidance Computer</a>:\n<ul>\n<li>MrX discusses the development of these systems at NASA, which had to\nbe small and very reliable.\n<ul>\n<li>Use of integrated circuits which were very expensive and variable in\nquality.</li>\n<li>Use of rejected chips in other projects so they were not\nwasted.</li>\n</ul></li>\n</ul></li>\n<li>Finding information about things from the 1970s and 1980s:\n<ul>\n<li>It\'s surprisingly hard to find much about technology, IT and so\nforth from that era. Information that existed on paper, in newspapers\nand magazines from that time has apparently never been recorded and made\nsearchable.</li>\n</ul></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Burroughs_Corporation\">Burroughs\nCorporation</a>:\n<ul>\n<li>Dave worked on a <a\nhref=\"https://en.wikipedia.org/wiki/Burroughs_Large_Systems\">Burroughs\nB6930</a> mainframe in the early 1980s at <a\nhref=\"https://en.wikipedia.org/wiki/Heriot-Watt_University\">Heriot-Watt\nUniversity</a>.</li>\n<li>The Burroughs terminals model <a\nhref=\"https://archive.org/details/bitsavers_burroughstTD780SystemReferenceManualNov79_9065639/mode/2up\">TD830</a>\nran on two coaxial cables to connect to the mainframe and to each other\nin a sort of \"bus\" configuration.</li>\n</ul></li>\n<li>Dave has a new PC waiting to be set up. It\'s from <a\nhref=\"https://www.tuxedocomputers.com/en\">TUXEDO Computers</a> in\nGermany.\n<ul>\n<li>It\'s an AMD Ryzen 7000</li>\n</ul></li>\n<li>Raspberry Pi development:\n<ul>\n<li>MrX is having difficulty finding time to work on his.</li>\n<li>Dave has set up two RPi 4B systems which boot off USB SSDs, one Pi\nrunning Pi-Hole. He has further plans for both, but hasn\'t done much\nyet.</li>\n<li>Dave also has a RPi 5 with a Pimoroni card under it holding a 500GB\nNVME M.2 card. The plan is to boot it off this disk, but it needs a case\nand a means of mounting to a DIN rail.</li>\n</ul></li>\n<li>Various computer problems:\n<ul>\n<li>Dave had problems after an upgrade of Debian Testing on his main\ndesktop, since the previous of these shows. The upgrade left the PC in\nan unusable state with no desktop manager, and it took some time to\nrepair it (installing and configuring from the console).</li>\n<li>MrX upgraded a Raspberry Pi successfully, then applied another\nupgrade which failed. He was able to revert to the previous state\nluckily, but still has an out of date OS.</li>\n<li>Dave\'s laptop running KDE Neon failed due to not upgrading it\nfrequently enough, so in this case, since it had nothing of importance\non it, he just installed Linux Mint over the top of it!</li>\n<li>MrX still has a usable <a\nhref=\"https://en.wikipedia.org/wiki/Asus_Eee_PC\">Eee PC</a>, though the\nbattery has failed. This is the model 700.</li>\n<li>Dave also has a Eee PC, the 1000 model, but hasn\'t used it for a\nwhile.</li>\n</ul></li>\n</ul></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><a\nhref=\"https://en.wiktionary.org/wiki/steady_as_she_goes\"><em>Steady as\nshe goes</em></a> - a Nautical expression. A cry to a helmsman to keep\non the current course.<a href=\"https://hackerpublicradio.org/eps/hpr4153/index.html#fnref1\" class=\"footnote-back\"\nrole=\"doc-backlink\">↩︎</a></p></li>\n</ol>\n</aside>\n</article>\n\n',225,0,1,'CC-BY-SA','Edinburgh,discussion',0,0,1),
(4154,'2024-07-04','About HPR',3281,'Ken reads the about page, which answers many of the questions received','<p>I cannot give any feedback on the feedback without first describing\nour history, values and way of working.</p>\n<p>This has been available in the <a\nhref=\"https://hackerpublicradio.org/about.html#about\">About HPR</a>\nsection from the website.</p>\n<p>It also includes what you are agreeing to when you upload to HPR.</p>\n',30,0,0,'CC-BY-SA','history, values, About, HPR',0,0,1),
(4155,'2024-07-05','GNU sleep tips',598,'Deltaray gives an overview of the sleep command and some uses for it.','<p>Sleep for 2 hours and 45 minutes:</p>\n<pre><code>sleep 2h 45m</code></pre>\n<p>Poor man\'s Pomodoro timer:</p>\n<pre><code>sleep 25m ; play bell.wav</code></pre>\n<p>Better one with tic toc:</p>\n<pre><code>(play tic.wav repeat 5000 trim 0 25:00 &amp;&amp; play bell.wav)</code></pre>\n<p>Send a desktop notification from the command line:</p>\n<pre><code>notify-send &quot;the message you want to show&quot;</code></pre>\n<p>Pizza notifier:</p>\n<pre><code>sleep 15m ; notify-send &quot;Pick up the pizza&quot;</code></pre>\n<p>10 minute temperature probe display:</p>\n<pre><code>while temperature-probe ; do sleep 10m ; done</code></pre>\n<p>Download from websites in urls.txt with a 30-60 second delay:</p>\n<pre><code>for url in $( cat urls.txt ) ; do wget &quot;$url&quot; ; sleep $(( RANDOM % 31 + 30 )) ; done</code></pre>\n<p>Poor man\'s annoy-a-tron:</p>\n<pre><code>while true; do play -qn synth sin 9k trim 0 0.75 vol .5 ; sleep $((RANDOM % 4 + 3))m ; done</code></pre>\n<p>Other examples of using sleep from climagic:<br />\n<a\nhref=\"https://twitter.com/search?q=from%3Aclimagic%20sleep&amp;src=typed_query&amp;f=live\"\nclass=\"uri\">https://twitter.com/search?q=from%3Aclimagic%20sleep&amp;src=typed_query&amp;f=live</a></p>\n',194,0,0,'CC-BY-SA','cli,command line,linux',0,0,1),
(4156,'2024-07-08','Badger 2040',695,'Kevie discusses his experience with the Badger 2040 from Pimoroni','<p><a href=\"https://mastodon.me.uk/@kevie\">Kevie</a>, co-host of <a href=\"https://tuxjam.otherside.network/\">TuxJam</a>, contines his series on uses for the Raspberry Pi with a look at the <a href=\"https://shop.pimoroni.com/products/badger-2040?variant=39752959852627\">Badger2040</a> from <a href=\"https://shop.pimoroni.com/\">Pimoroni</a>.</p>\n<p>In this episode Kevie shares some thoughts about the Badger 2040, which was purchased for the primary reason of needing a geeky name badge for attending this year\'s <a href=\"https://oggcamp.org/\">Oggcamp</a>, which will be Kevie\'s first time being able to attend the event.</p>\n<p>For more information about how to use the Badger 2040, take a look at <a href=\"https://learn.pimoroni.com/article/getting-started-with-badger-2040#using-badger-os\">this guide</a> on Pimoroni\'s website. Before being able to talk to the device you will need to install <a href=\"https://thonny.org/\">Thonny</a> on your computer.</p>\n<p>Finally a huge thanks to everyone who has left feedback for me via Mastodon; firstly for taking the time to listen and secondly for putting in the effort to reply.</p>\n',296,0,0,'CC-BY-SA','Raspberry Pi, eink, Oggcamp',0,0,1),
(4161,'2024-07-15','Building a retro gaming console with a Raspberry Pi',1541,'Kevie talks about his experience of building a retro gaming console.','<p><a href=\"https://mastodon.me.uk/@kevie\">Kevie</a>, co-host of <a href=\"https://tuxjam.otherside.network/\">TuxJam</a>, continues his series on uses for the Raspberry Pi with a talk about his experience of making a retro gaming console using the Raspberry Pi.</p>\n<p>For the initial build I used:</p>\n<ul>\n<li><a href=\"https://thepihut.com/products/superpi-4-case-for-raspberry-pi-4?variant=41123742318787\">SuperPi Case</a>: &#163;22.50</li>\n<li><a href=\"https://thepihut.com/products/retroflag-classic-usb-controller-j?variant=38150592168131\">Retroflag Controller</a> (x2): &#163;27</li>\n<li><a href=\"https://thepihut.com/products/raspberry-pi-4-model-b?variant=31994565689406\">Pi 4 Model B</a>: &#163;75</li>\n<li><a href=\"https://thepihut.com/products/pure-copper-4-piece-heatsink-set-for-raspberry-pi-4?variant=42012539453635\">Heatsinks</a>: &#163;3.50</li>\n<li><a href=\"https://thepihut.com/products/miniature-5v-cooling-fan-for-raspberry-pi-and-other-computers?variant=31955934417\">30mm Fan</a>: &#163;3</li>\n<li><a href=\"https://thepihut.com/products/raspberry-pi-psu-uk?variant=20064004505662\">Power Supply</a>: &#163;9</li>\n<li><a href=\"https://thepihut.com/products/official-raspberry-pi-mini-hdmi-male-to-hdmi-female-adapter-cable\">HDMI Adapter</a>: &#163;4</li>\n<li>64GB MicroSD Card: &#163;7.50</li>\n<li>Total price: &#163;151.50</li>\n</ul>\n<p>In retrospect I would now recommend purchasing a <a href=\"https://thepihut.com/products/raspberry-pi-5?variant=42531604955331\">Raspberry Pi 5</a> and use an NVMe SSD Drive for storage, also with a <a href=\"https://thepihut.com/products/argon-neo-5-m-2-nvme-case-for-raspberry-pi-5\">suitable case</a> to hold these. I would also recommend a joypad with thumb sticks, such as the <a href=\"https://www.8bitdo.com/pro2/\">8BitDo Pro 2</a>.</p>\n',296,0,0,'CC-BY-SA','Pi,Gaming,retro',0,0,1),
(4157,'2024-07-09','Talking with Halla about the past and future of Krita for its 25th birthday',1340,'Krita is celebrating its 25 birthday. Let\'s celebrate this together on Software Freedom Day!','<p>For the occasion of 25 years of Krita and in preparation of Software\nFreedom Day in September 21st of this year, we wanted to talk with\nHalla, the lead maintainer of this great project.<br />\nWe asked around and Arnoud stepped up and offered to visit Halla to ask\nsome questions about the project\'s history and future.<br />\n</p>\n<p>The talk is also available as a video on the PeerTube instance of the\nDigital Freedom Foundation.<br />\nIf you know what Software Freedom Day is, I\'m confident that your heart\nwarms up with fond memories.<br />\nIf you don\'t know what it is, have a look at digitalfreedoms.org/sfd for\nmore info.<br />\nBasically, it\'s a grassroots movement from local teams organizing events\nto tell others about the benefits and importance of software\nfreedom.<br />\n</p>\n<p>If you would consider organizing Software Freedom Day where you live,\ndon\'t hesitate to visit the blog on our site, and get some inspiration\nfor what you could do.<br />\n</p>\n<p>With that said, let\'s listen to the interview between Arnoud and\nHalla.<br />\nEnjoy it!</p>\n<hr />\n<p>Today we\'re interviewing Halla, who is the lead maintainer of Krita,\nto learn all about it and to hear where the project has been and where\nit\'s going.<br />\nHalla, to start us off, could you tell us a little bit about what Krita\nis?</p>\n<p>Sure. I love telling people about Krita.<br />\nSo Krita is a digital painting application.<br />\nIt\'s meant to make art from scratch, both still images and\nanimations.<br />\nSo we\'ve got a huge number of brush engines, color spaces for people who\nneed to print and lots of features really focused at creating art from\nstart.<br />\n</p>\n<p>For what kind of illustrations would you use Krita?</p>\n<p>Pretty much everything. I\'ve seen so many different artworks,\ndifferent styles.<br />\nPeople are working on comics in Krita.<br />\nPeople are working with illustrations.<br />\nThere are people who design those trade book card with Krita.<br />\nGames, I mean, whole animated games, like platform games.<br />\nIt\'s used for all that sort of thing, for everything, in every style, in\npretty much every country in the world.<br />\n</p>\n<p>Wow. Uh, are there any publications we might know about that have\nused images created in Krita?</p>\n<p>There are so many! We got sent a copy of a book on American wild\nbirds.<br />\nThat was entirely done in Krita.<br />\n</p>\n<p>Wow, cool.<br />\nTalk a little bit about yourself. What role did you play in the creation\nof Krita?</p>\n<p>This year Krita is 25 years old.<br />\nWhich meant I wasn\'t there at the absolute beginning.<br />\n</p>\n<p>So, in 2003, my parents gave me for my birthday a really small\ngraphics tablet, a Wacom Graphire.<br />\nAnd I wanted to use it to draw a map for a fantasy novel I was writing\nback then.<br />\nThe novel never got finished, because of course I wanted to use Linux as\nmy desktop operating system.<br />\nAnd I sort of couldn\'t get into GIMP, and I started looking around for\nan application other than GIMP that I could maybe improve or could maybe\nbe good enough.<br />\n</p>\n<p>Well, I found Krita.<br />\nIn 2003, it had already gone through three names: KImageShop. That\ndidn\'t last long. Krayon. That didn\'t last long either. And it was\nfinally called Krita.<br />\nIt has also gone through three complete rewrites.<br />\nSo when I started working on Krita in 2003, it didn\'t even have a brush\ntool.<br />\nYou could open images, add images as layers, and move the layers\naround.<br />\nAnd that was everything.<br />\n</p>\n<p>So, it was a really good place to get started.<br />\nExcept, of course, that it turns out that I\'m not a genius.<br />\nI\'m not even a computer scientist.<br />\nI mean, I\'m a linguist.<br />\nAnd writing a good brush engine is pretty difficult.<br />\n</p>\n<p>So, I started blogging about how I was completely failing at creating\na nice brush engine. And how is was failing.<br />\nThat turned out to be a turning point for the project because people saw\nthat: \"Oh, there\'s someone working on it, and they\'re not making any\nprogress, mmm, I will take a look as well.\" They started getting\nenthusiastic and pretty soon after 2004, we already had our fourth\ncomplete core rewrite.<br />\nSo that\'s how I got started.<br />\n</p>\n<p>So how many people were involved in the Krita community by that\ntime?</p>\n<p>Mid 2004, it was about a dozen.<br />\nKrita was still part of KOffice, which was KDE\'s suite of productivity\napplications.<br />\nAnd KOffice developed that still, because they were porting from one\ndocument format to another document format.<br />\n</p>\n<p>But suddenly there was an application that we really wanted to\nrelease. And that\'s when KOffice got released again as well.<br />\nSo it\'s a bit hard to say how many people are actually working on Krita\nbecause there were also some people working on the core libraries that\nevery application used, but say a dozen.<br />\n</p>\n<p>And can you speak a little bit about how the community evolved\nsince?</p>\n<p>Yes. Until around 2006, we didn\'t really have a focus. Krita was a\nGIMP clone or a Photoshop clone. And, in 2006, David Revoy, a French\nartist who only uses free software, tried Krita, and he told us it\'s no\ngood. While we thought we had quite a nice application by then.<br />\n</p>\n<p>Afterwards, we started taking this very seriously. So, when we have a\nsprint, we also invite artists.<br />\nWe actually videotape the artists working with Krita.<br />\nAnd that\'s for the developers a really nice way of getting to know where\nthe bottlenecks are for users.<br />\nSo because we involved artists, our developer community also started to\ngrow.<br />\n</p>\n<p>At some point of time, most growth came through Google Summer of\nCode, but those days are over.<br />\nThat program is not doing a lot anymore. We\'ve only got one student this\nyear.<br />\nSo that started the second phase. Let\'s make Krita good enough for David\nRevoy.<br />\n</p>\n<p>We also invited Peter Sicking to a print.<br />\nPeter Sicking is the guy who was involved in defining the mission\nstatement for GIMP.<br />\nHe sat down with us and asked us: \"What do you really want to do?\" Make\nKrita good for David Revoy.<br />\nThat\'s a bit thin as a mission statement.<br />\nSo we came up with we want to make Krita purely a painting\napplication.<br />\nSure, there are filters and other stuff, but if it\'s good for painting,\nit goes in.<br />\n</p>\n<p>So we started working on that and that took quite a long time to get\nthere, especially because we were stupid.<br />\nWe started doing a complete rewrite in 2007 of everything.<br />\nThat was the fifth.<br />\nSo, that continued, everyone was working on Krita as a hobby. Most\npeople were still students, until our Slovak student, Luk&#xE1;&#x161;, was working\non his thesis.<br />\nAnd his thesis was brush engines for Krita.<br />\nAnd of course he got 10 out of 10 because he could show his professors\nthat he had created real software that was used by real people all over\nthe world.<br />\nAnd then he was like, okay, I\'m almost done with university.<br />\nWhat should I do? If you guys can pay my rent, then I can work on Krita\nfull time.<br />\nIf not, I\'m going to flip burgers.<br />\nSo I ask him what his rent was. It was like 35 euros a month.<br />\nSo I thought, well, let\'s do a fundraiser and we can pay you for, say,\nsix months.<br />\nSix months turned into a year.<br />\nAnd after that, Lukas got a job at a different company, but it started\nsponsored development.<br />\n</p>\n<p>And that\'s been really important for the growth of our community,\nbecause by now there are six people working full time on Krita.<br />\nThe second student we hired on graduation was Dmitry Kazakov, a Russian\nguy, and he\'s currently our lead developer.<br />\nSo because we\'re all there, lots of volunteer developers can see that\ntheir patches and merge requests get reviewed, they get merged and that\nmakes people happy.<br />\nSo we have a really healthy mix right now of sponsors and volunteer\ndevelopers.<br />\n</p>\n<p>That sounds great. You mentioned sprints a couple of times, can you\ntell us a little bit more about how that is organized?</p>\n<p>In theory, we organize one big sprint a year.<br />\nOf course, it hasn\'t been possible.<br />\nSome people have had to flee Russia, for instance.<br />\nSo visa problems are real problems.<br />\nAnd the way it mostly used to happen was I would invite everyone to\nDeventer, have some people sleep upstairs, in our spare bedrooms.<br />\nAnd the rest would go to Hotel Royale in Deventer, which has two big\nrooms on the top floor.<br />\n</p>\n<p>Then we\'d go down in the cellar of the church. It\'s a 12th century\ncellar. Really roomy, and we would just do some hacking, then do a\nmeeting.<br />\nAnd in the evenings, we would go out for dinner, and just get to know\neach other better.<br />\nOne thing that I really miss about sprints, or rather not having\nsprints, is the time we would spend in my study over there.<br />\nJust, just a couple of us.<br />\nThe rest would be hacking around.<br />\nAnd we would try to just go through the list of bug reports.<br />\nAnd for us, sprints are fun.<br />\nWe also invite developers, artists, documentation writers.<br />\n</p>\n<p>Yeah, that sounds like a lot of fun.<br />\nSo, if a new contributor would like to join Krita, what would be the\ntypical on ramps that they could come into?</p>\n<p>It used to be that people would mostly join us on IRC. Nowadays, we\nalso have Matrix, because building Krita from scratch is not easy.<br />\nBut we\'ve got a great manual for that by now.<br />\nSo either people join us on IRC and ask for help building Krita, and\nthen maybe ask, do you know a nice bug or feature ish that I could start\nworking on?</p>\n<p>And then we, we\'d help them with that.<br />\nBut these days it\'s mostly people who out of the blue, post a merge\nrequest on KDE\'s GitLab instance.<br />\nAnd then we\'re \"Oh, this person from Serbia, this person from Denmark,\nthey have suddenly have a really nice patch!\" And sometimes a patch\nneeds to be improved.<br />\nSometimes it can go in as is.<br />\nAnd then we try to get them, in our chat channel, because that\'s still\nthe place where we have most development discussions.<br />\nAnd the mailing list is almost dead, but that holds for many mailing\nlists.<br />\nAfter that, once you\'ve got three merge requests in Krita, merged into\nKrita, we will ask you: \"Do you want to have a developer account, so you\ncan review other people\'s work, merge it, get full access to\neverything?\" And sometimes they are \"Yes, I\'ve always wanted that\", and\nsometimes \"I\'m not really comfortable with that, I just want to send you\nmore patches\", and that\'s fine.<br />\n</p>\n<p>Sounds great.<br />\nIn terms of features, are there any particular features of Krita that\nyou\'re particularly proud of, or that sets Krita apart from other\ndrawing programs?</p>\n<p>Over the years, we had a number of firsts.<br />\nLike, before Adobe even knew that OpenGL existed, we had a hardware\naccelerated canvas implementation.<br />\nThen, about the same year, I think it was 2005, we implemented support\nfor all kinds of color models.<br />\nLike CMYK, LAB, also painterly color models.<br />\nThat\'s stuff that tries to mix spectral wavelengths to simulate the way\npaint mixes.<br />\n</p>\n<p>That feature is out because it never worked well enough.<br />\nThen we got, I think, a really nice way of doing animations.<br />\nOf course the brush engines are great.<br />\n</p>\n<p>Oh, and this is something that almost nobody knows, but we support\npainting in HDR.<br />\nSo color values lower than zero and bigger than one, fully\ndynamic.<br />\n</p>\n<p>And the way we work with those images is compatible with the way\nBlender imports images.<br />\n</p>\n<p>So, you mentioned Blender, are there any other products that Krita\nworks particularly well with, or that are nice complements to Krita?</p>\n<p>Scribus. Scribus is a desktop publishing application, it\'s also free\nsoftware.<br />\nDevelopment is a bit slow at the moment, but it\'s really solid.<br />\nWe used it for our 2006, I think it was 2006, Krita art book, for\ninstance.<br />\nAnd Inkscape of course, as well.<br />\n</p>\n<p>Krita does have vector layers, and they are quite advanced, but still\nInkscape is a really good complement.<br />\nKrita and Inkscape are the only applications that currently implement\nthe W3C mesh gradient standard.<br />\n</p>\n<p>Cool, and in terms of current development, which features are you\nmost excited about which are coming up?</p>\n<p>What\'s coming up is the port of Qt6, new version of our development\nlibrary.<br />\nThat\'s going to really eat development time.<br />\nBut again, we\'ve got some volunteers who already started working on\nthat.<br />\n</p>\n<p>I\'m not sure I\'m really excited about it, but, but we have to\ninvestigate it. We are looking into AI assisted inking.<br />\nSo you would train Krita on the way you would normally ink your\nsketches.<br />\nAnd then Krita should be able to semi-automatically ink your sketches\nfor you.<br />\nBecause for many artists inking is a bit of a boring step, because when\nyou\'re doing inking, you\'re often really, really careful.<br />\nAnd that means that the lines are a bit, often a bit deader compared to\nthe sketch, um, Trying to use AI to assist with that is something we are\ninvestigating.<br />\n</p>\n<p>We are working on that together with Intel because Intel is one of\nour corporate sponsors.<br />\nBut we are also doing all kinds of projects with Intel. Like, Intel also\nworked with us on that HDR feature, for instance.<br />\n</p>\n<p>Oh, and text. That\'s, that\'s important as well. Volterra has been\nworking on that.<br />\nThe text shape and the text tool, like the object that contains text on\ncanvas and the tool that modifies it are of course two different\nprojects.<br />\nThis will implement full SVG to text including CSS, ligatures, font\nfeatures and everything.<br />\nAnd she\'s already implemented it.<br />\nAnd the text shape itself, it can do vertical text, like for Chinese or\nJapanese.<br />\n</p>\n<p>It can do Ruby, which is the furigana, the small, text that in\nJapanese you put next to the kanji, the Chinese derived characters, so\nyou know how to pronounce them.<br />\nAnd she\'s now working on the UI, and, and it\'s something we\'ve wanted to\nstart working on, uh, years ago already, I think it was 2017.<br />\n</p>\n<p>Actually, I was working on that, but then I was distracted by the\nDutch tax office which wanted to have money.<br />\nAnd I had to do difficult stuff and hire accountants and so on.<br />\nAnd it\'s not easy being a manager.<br />\n</p>\n<p>So that\'s the two big things that are coming, hopefully: The\nexperimental assisted inking an a super deluxe text tool.<br />\n</p>\n<p>Cool.<br />\nSo what does your release schedule look like? Do you have set dates or\nis it ready when it\'s ready?</p>\n<p>Ready when it\'s ready, but it\'s often ready.<br />\nIf our infrastructure is working correctly, then we typically do a\nbugfix release every two months.<br />\n</p>\n<p>There have been years when we did one every month, but that was just\neating up too much of our time. We try to have one or two full feature\nreleases a year as well.<br />\nOf course, we moved from Jenkins as our binary factory platform to\nGitLab CI.<br />\nAnd that means we haven\'t been able to do a release for six months\nbecause so many bits needed fixing, bits were broken.<br />\nThe whole pipeline had to be rewritten.<br />\nBut that\'s done now.<br />\nSo we just released 5.2.3 beta 1. And we hope to do the 5.3 pretty soon,\nwhich is a bug fix release.<br />\nAnd 5.3 will be a feature release again.<br />\nI think we\'ve got almost enough features in there. We\'re only waiting\nfor the text tool to be completed.<br />\n</p>\n<p>That sounds great.<br />\nIn terms of, uh, volunteers, are there any areas that you would really\nappreciate someone helping out and looking into things?</p>\n<p>Android experts, because our Android expert started at a very\ndifficult university and doesn\'t have any spare time anymore.<br />\nAnd Android is, is a difficult platform.<br />\nPlatform itself, the libraries, it changes all the time.<br />\n</p>\n<p>We do have a UX designer, Scott Petrovic, but more help there would\nalso be welcome.<br />\n</p>\n<p>And for the rest, it\'s actually mostly not what we wish to be done,\nbut what volunteers wish to do and most work is welcome.<br />\n</p>\n<p>Sounds great. On the topic of platforms, which platforms does Krita\nsupport right now?</p>\n<p>That\'s Linux.<br />\nWe prefer our own binary builds in AppImage format because we have to\npatch a lot of the libraries that Krita depends on.<br />\nWindows, MacOS, Android.<br />\nIf and when iPadOS gets opened up, we might port to iOS.<br />\nBut both for iOS and Android, Oh, we also support Chrome OS, but that\'s\nAndroid.<br />\nFor iPadOS and Android, so tablet form factor, we really want to\noptimize our user interface for touch and for that we need to have the\nport to Qt6 done.<br />\nSo that\'s going to take some time.<br />\n</p>\n<p>Sounds like there\'s a lot of exciting things coming.<br />\nI think that\'s all I have for you today. So I\'d like to really thank you\nfor taking the time to speak to us.<br />\n</p>\n<p>It was a pleasure. Um, is there any things we haven\'t covered that\nyou would like to, uh, talk about?</p>\n<p>Oh, I want to brag a bit.<br />\n</p>\n<p>Go for it.<br />\n</p>\n<p>Because we have about 7 million users.<br />\nThat\'s quite a lot.<br />\nI mean, I used to do commercial software development.<br />\nAnd most of the companies we worked for never ever released.<br />\nSo that makes it so much more fun to work on.<br />\n</p>\n<p>Yeah, that\'s genuinely amazing.<br />\nAwesome. Thank you very much.<br />\n</p>\n<p>Thank you, too.</p>\n',433,0,0,'CC-BY-SA','Krita, Software Freedom Day, Community, Developing Free Software',0,0,1),
(4158,'2024-07-10','Alexander\'s Introduction',239,'Kevie\'s son Alexander introduces himself to the HPR community','<p>This is my first ever recording of HPR, I had a lot of encouragement\nfrom my dad, Kevie.</p>\n',434,0,0,'CC-BY-SA','Intro',0,0,1),
(4416,'2025-07-07','HPR Community News for June 2025',2799,'HPR Volunteers talk about shows released and comments posted in June 2025','\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/hpr4391/index.html\" target=\"_blank\">4391</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2025-06-02</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4391/index.html\" target=\"_blank\">HPR Community News for May 2025</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/hpr4392/index.html\" target=\"_blank\">4392</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2025-06-03</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4392/index.html\" target=\"_blank\">The Water is Wide, and the sheet music should be too</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/hpr4393/index.html\" target=\"_blank\">4393</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2025-06-04</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4393/index.html\" target=\"_blank\">Journal like you mean it.</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/hpr4394/index.html\" target=\"_blank\">4394</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2025-06-05</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4394/index.html\" target=\"_blank\">Digital Steganography Intro</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0379.html\" target=\"_blank\">mightbemike</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr4395/index.html\" target=\"_blank\">4395</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2025-06-06</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4395/index.html\" target=\"_blank\">Second Life</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/hpr4396/index.html\" target=\"_blank\">4396</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2025-06-09</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4396/index.html\" target=\"_blank\">AI and Sangria</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/hpr4397/index.html\" target=\"_blank\">4397</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2025-06-10</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4397/index.html\" target=\"_blank\">Transfer files from desktop to phone with qrcp</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/hpr4398/index.html\" target=\"_blank\">4398</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2025-06-11</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4398/index.html\" target=\"_blank\">Command line fun: downloading a podcast</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0296.html\" target=\"_blank\">Kevie</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr4399/index.html\" target=\"_blank\">4399</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2025-06-12</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4399/index.html\" target=\"_blank\">gpg-gen-key</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0448.html\" target=\"_blank\">oxo</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr4400/index.html\" target=\"_blank\">4400</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2025-06-13</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4400/index.html\" target=\"_blank\">Isaac Asimov: Other Asimov Novels of Interest</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/hpr4401/index.html\" target=\"_blank\">4401</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2025-06-16</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4401/index.html\" target=\"_blank\">hajime</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0448.html\" target=\"_blank\">oxo</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr4402/index.html\" target=\"_blank\">4402</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2025-06-17</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4402/index.html\" target=\"_blank\">pinetab2</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/hpr4403/index.html\" target=\"_blank\">4403</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2025-06-18</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4403/index.html\" target=\"_blank\">How to get your very own copy of the HPR database</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/hpr4404/index.html\" target=\"_blank\">4404</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2025-06-19</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4404/index.html\" target=\"_blank\">Kevie nerd snipes Ken by grepping xml</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/hpr4405/index.html\" target=\"_blank\">4405</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2025-06-20</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4405/index.html\" target=\"_blank\">What did I do at work today?</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/hpr4406/index.html\" target=\"_blank\">4406</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2025-06-23</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4406/index.html\" target=\"_blank\">SVG Files: Cyber Threat Hidden in Images</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0447.html\" target=\"_blank\">ko3moc</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr4407/index.html\" target=\"_blank\">4407</a></strong></td>\n<td>Tue</td>\n<td class=\"shrink\">2025-06-24</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4407/index.html\" target=\"_blank\">A \'re-response\' Bash script</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/hpr4408/index.html\" target=\"_blank\">4408</a></strong></td>\n<td>Wed</td>\n<td class=\"shrink\">2025-06-25</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4408/index.html\" target=\"_blank\">Lynx - Old School Browsing</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0296.html\" target=\"_blank\">Kevie</a></td>\n</tr>\n<tr>\n<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr4409/index.html\" target=\"_blank\">4409</a></strong></td>\n<td>Thu</td>\n<td class=\"shrink\">2025-06-26</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4409/index.html\" target=\"_blank\">H D R Ridiculous Monitor</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/hpr4410/index.html\" target=\"_blank\">4410</a></strong></td>\n<td>Fri</td>\n<td class=\"shrink\">2025-06-27</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4410/index.html\" target=\"_blank\">Civilization V</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/hpr4411/index.html\" target=\"_blank\">4411</a></strong></td>\n<td>Mon</td>\n<td class=\"shrink\">2025-06-30</td>\n<td><a href=\"https://hackerpublicradio.org/eps/hpr4411/index.html\" target=\"_blank\">The Pachli project</a></td>\n<td><a href=\"https://hackerpublicradio.org/correspondents/0314.html\" target=\"_blank\">thelovebug</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 4 comments on\n3 previous shows:</p>\n<ul>\n<li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4375/index.html#comments\" target=\"_blank\">hpr4375</a></strong>\n(2025-05-09) \"<em>Long Chain Carbons,Eggs and Dorodango?</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/hpr4375/index.html#comment_4340\" target=\"_blank\">Comment 4</a>:\nTorin Doyle on 2025-06-06:\n\"Reply to @Bob\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4378/index.html#comments\" target=\"_blank\">hpr4378</a></strong>\n(2025-05-14) \"<em>SQL to get the next_free_slot</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0342.html\" target=\"_blank\">norrist</a>.<br/>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps/hpr4378/index.html#comment_4350\" target=\"_blank\">Comment 1</a>:\nTorin Doyle on 2025-06-12:\n\"Cheers for this.\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4388/index.html#comments\" target=\"_blank\">hpr4388</a></strong>\n(2025-05-28) \"<em>BSD Overview</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0342.html\" target=\"_blank\">norrist</a>.<br/>\n<li style=\"list-style: none; display: inline\">\n<ul>\n<li>\n<a href=\"https://hackerpublicradio.org/eps/hpr4388/index.html#comment_4336\" target=\"_blank\">Comment 4</a>:\nHenrik Hemrin on 2025-06-02:\n\"Learned more about BSD.\"</li>\n<li>\n<a href=\"https://hackerpublicradio.org/eps/hpr4388/index.html#comment_4337\" target=\"_blank\">Comment 5</a>:\nnorrist on 2025-06-02:\n\"Additional info for OpenBSD Router\"</li></ul><br/>\n</li></ul>\n<h3>This month\'s shows</h3>\n<p>There are 25 comments on 10 of this month\'s shows:</p>\n<ul><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4391/index.html#comments\" target=\"_blank\">hpr4391</a></strong>\n(2025-06-02) \"<em>HPR Community News for May 2025</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/hpr4391/index.html#comment_4341\" target=\"_blank\">Comment 1</a>:\nTorin Doyle on 2025-06-06:\n\"Very disappointed.\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4391/index.html#comment_4342\" target=\"_blank\">Comment 2</a>:\nKen Fallon on 2025-06-06:\n\"Thanks for your feedback.\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4391/index.html#comment_4344\" target=\"_blank\">Comment 3</a>:\nTorin Doyle on 2025-06-09:\n\"Reply to Ken [Comment 2]\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4391/index.html#comment_4345\" target=\"_blank\">Comment 4</a>:\nnorrist on 2025-06-09:\n\"Watch the Queue for a show about how to find all the comments\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4391/index.html#comment_4346\" target=\"_blank\">Comment 5</a>:\nTorin Doyle on 2025-06-10:\n\"Comment #3 typo.\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4391/index.html#comment_4347\" target=\"_blank\">Comment 6</a>:\nTorin Doyle on 2025-06-11:\n\"Reply to Comment #4 by norrist\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4391/index.html#comment_4348\" target=\"_blank\">Comment 7</a>:\nTorin Doyle on 2025-06-11:\n\"Got the link.\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4394/index.html#comments\" target=\"_blank\">hpr4394</a></strong>\n(2025-06-05) \"<em>Digital Steganography Intro</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0379.html\" target=\"_blank\">mightbemike</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr4394/index.html#comment_4338\" target=\"_blank\">Comment 1</a>:\nHenrik Hemrin on 2025-06-05:\n\"Fascinating topic\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4394/index.html#comment_4339\" target=\"_blank\">Comment 2</a>:\noxo on 2025-06-05:\n\"Good show! \"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4395/index.html#comments\" target=\"_blank\">hpr4395</a></strong>\n(2025-06-06) \"<em>Second Life</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0403.html\" target=\"_blank\">Lee</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr4395/index.html#comment_4343\" target=\"_blank\">Comment 1</a>:\nAntoine on 2025-06-08:\n\"Brings philosophical thoughts\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4397/index.html#comments\" target=\"_blank\">hpr4397</a></strong>\n(2025-06-10) \"<em>Transfer files from desktop to phone with qrcp</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/hpr4397/index.html#comment_4354\" target=\"_blank\">Comment 1</a>:\nLaindir on 2025-06-18:\n\"The perfect kind of recommendation\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4398/index.html#comments\" target=\"_blank\">hpr4398</a></strong>\n(2025-06-11) \"<em>Command line fun: downloading a podcast</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0296.html\" target=\"_blank\">Kevie</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr4398/index.html#comment_4349\" target=\"_blank\">Comment 1</a>:\nHenrik Hemrin on 2025-06-11:\n\"Tempted to have fun\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4398/index.html#comment_4357\" target=\"_blank\">Comment 2</a>:\nKen Fallon on 2025-06-22:\n\"Personal message to redhat (nprfan)\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4403/index.html#comments\" target=\"_blank\">hpr4403</a></strong>\n(2025-06-18) \"<em>How to get your very own copy of the HPR database</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/hpr4403/index.html#comment_4351\" target=\"_blank\">Comment 1</a>:\nTorin Doyle on 2025-06-18:\n\"Appreciated!\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4403/index.html#comment_4352\" target=\"_blank\">Comment 2</a>:\nTorin Doyle on 2025-06-18:\n\"Database size.\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4403/index.html#comment_4353\" target=\"_blank\">Comment 3</a>:\nnorrist on 2025-06-18:\n\"Also an SQLite version\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4403/index.html#comment_4361\" target=\"_blank\">Comment 4</a>:\nTorin Doyle on 2025-06-25:\n\"Not able to use database to find my comments.\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4404/index.html#comments\" target=\"_blank\">hpr4404</a></strong>\n(2025-06-19) \"<em>Kevie nerd snipes Ken by grepping xml</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/hpr4404/index.html#comment_4356\" target=\"_blank\">Comment 1</a>:\nHenrik Hemrin on 2025-06-22:\n\"More to digest\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4404/index.html#comment_4363\" target=\"_blank\">Comment 2</a>:\nAlec Bickerton  on 2025-06-29:\n\"Shorter version\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4404/index.html#comment_4364\" target=\"_blank\">Comment 3</a>:\nAlec Bickerton  on 2025-06-29:\n\"Shorter version\"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4404/index.html#comment_4365\" target=\"_blank\">Comment 4</a>:\nAlec Bickerton on 2025-06-29:\n\"XML parsing without xmlstarlet\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4405/index.html#comments\" target=\"_blank\">hpr4405</a></strong>\n(2025-06-20) \"<em>What did I do at work today?</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0403.html\" target=\"_blank\">Lee</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr4405/index.html#comment_4362\" target=\"_blank\">Comment 1</a>:\nDave Morriss on 2025-06-25:\n\"Thanks for bringing us along...\"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4406/index.html#comments\" target=\"_blank\">hpr4406</a></strong>\n(2025-06-23) \"<em>SVG Files: Cyber Threat Hidden in Images</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0447.html\" target=\"_blank\">ko3moc</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr4406/index.html#comment_4358\" target=\"_blank\">Comment 1</a>:\noxo on 2025-06-23:\n\"Interesting! \"</li><li><a href=\"https://hackerpublicradio.org/eps/hpr4406/index.html#comment_4360\" target=\"_blank\">Comment 2</a>:\nko3moc on 2025-06-24:\n\"response \"</li></ul><br/>\n</li><li><strong><a href=\"https://hackerpublicradio.org/eps/hpr4408/index.html#comments\" target=\"_blank\">hpr4408</a></strong>\n(2025-06-25) \"<em>Lynx - Old School Browsing</em>\"\nby <a href=\"https://hackerpublicradio.org/correspondents/0296.html\" target=\"_blank\">Kevie</a>.</li>\n<li style=\"list-style: none; display: inline\">\n<ul><li><a href=\"https://hackerpublicradio.org/eps/hpr4408/index.html#comment_4366\" target=\"_blank\">Comment 1</a>:\nHenrik Hemrin on 2025-06-29:\n\"Review ALT texts\"</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://lists.hackerpublicradio.com/mailman/listinfo/hpr\" target=\"_blank\">Mailing List</a>\nwhich is open to all HPR listeners and contributors. The discussions are open\nand available on the HPR server under <a href=\"https://lists.hackerpublicradio.com/pipermail/hpr\">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/2025-June/thread.html\" target=\"_blank\">https://lists.hackerpublicradio.com/pipermail/hpr/2025-June/thread.html</a>\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',159,47,1,'CC-BY-SA','Community News',0,0,1),
(4162,'2024-07-16','HPR music project - Walking tune from Äppelbo',1038,'Fred plays and teaches out \"Gånglåt från Äppelbo\" on their Nyckelharpa','<p>The tune is in G major.</p>\n',422,0,1,'CC-BY-SA','Music, Nyckelharpa, Folk_music',0,0,1),
(4166,'2024-07-22','Everybody organize Software Freedom Day!',1434,'What is Software Freedom Day? And why is it important to celebrate this event?','<h4 id=\"introduction\">Introduction</h4>\n<ul>\n<li><strong>Event</strong>: LibrePlanet</li>\n<li><strong>Topic</strong>: Relaunching Software Freedom Day and the\nsurrounding movement.</li>\n<li><strong>Editing Note</strong>: The recording was edited to remove\nsome visuals.</li>\n</ul>\n<h4 id=\"background\">Background</h4>\n<ul>\n<li><strong>Personal Involvement</strong>: I have been organizing\nSoftware Freedom Day (SFD) in Brussels since 2012.</li>\n<li><strong>Digital Freedom Foundation (DFF)</strong>:\n<ul>\n<li>A nonprofit organization that has gone through various names and\nlegal states.</li>\n<li>Focuses on celebrating digital freedom through various events.</li>\n<li>Initially focused on Software Freedom, later expanding to Hardware\nFreedom and Document Freedom.</li>\n<li>Briefly included Education Freedom Day and Culture Freedom Day, but\nresources were limited.</li>\n</ul></li>\n</ul>\n<h4 id=\"history-of-software-freedom-day\">History of Software Freedom\nDay</h4>\n<ul>\n<li><strong>2004 Origins</strong>:\n<ul>\n<li>Matt Oquist recognized the quality of free software and lamented its\nobscurity.</li>\n<li>Collaborated with the OpenCD project to create and distribute CDs\ncontaining free software.</li>\n<li>CDs were distributed to various groups, organizations, and libraries\nto raise awareness.</li>\n</ul></li>\n</ul>\n<h4 id=\"importance-of-software-freedom\">Importance of Software\nFreedom</h4>\n<ul>\n<li><strong>Awareness and Advocacy</strong>:\n<ul>\n<li>Emphasis on the importance of making the public aware of the\nbenefits and availability of free software.</li>\n<li>Efforts to advocate for the use of free software in various\ndomains.</li>\n</ul></li>\n</ul>\n<h4 id=\"evolution-and-challenges\">Evolution and Challenges</h4>\n<ul>\n<li><strong>Expansion of Focus</strong>:\n<ul>\n<li>The movement expanded from Software Freedom to include Hardware and\nDocument Freedom.</li>\n<li>Periodic inclusion of Education and Culture Freedom days to address\nbroader aspects of digital freedom.</li>\n</ul></li>\n<li><strong>Resource Limitations</strong>:\n<ul>\n<li>Challenges faced due to limited resources, leading to a focus on the\nmost impactful areas.</li>\n</ul></li>\n</ul>\n<h4 id=\"conclusion\">Conclusion</h4>\n<ul>\n<li><strong>Call to Action</strong>:\n<ul>\n<li>Encouragement for individuals and organizations to participate in\nand support Software Freedom Day.</li>\n<li>Emphasis on the collective effort required to promote and sustain\nthe movement.</li>\n</ul></li>\n</ul>\n<h4 id=\"additional-information\">Additional Information</h4>\n<ul>\n<li><strong>Contact and Participation</strong>:\n<ul>\n<li>Register your event on <a href=\"https://digitalfreedoms.org/sfd\">the\nwebsite</a> or keep an eye on <a\nhref=\"https://digitalfreedoms.org/sfd/blog\">the blog</a> for updates or\ninspiration</li>\n<li>Join the chat on <a\nhref=\"https://matrix.to/#/#SoftwareFreedomDay:matrix.org\">the Software\nFreedom Day Matrix channel</a></li>\n<li>Follow us on <a href=\"https://fosstodon.org/@dff\">Mastodon</a></li>\n</ul></li>\n</ul>\n',433,0,0,'CC-BY-SA','Software Freedom Day, Community, Activism',0,0,1),
(4163,'2024-07-17','Reintroducing myself while discussing Samba and tiny computers',607,'Al reintroduces himself to HPR, while discussing a few episodes he enjoyed on HPR in the past month','<p>Hi, <a href=\"https://mastodon.me.uk/@mralc\">Al</a>, the co-host of <a\nhref=\"https://tuxjam.otherside.network/\">Tuxjam</a> here, I share some\npersonal insights and then proceed to discuss the following\nepisodes.</p>\n<ul>\n<li><a\nhref=\"https://hackerpublicradio.org/eps/hpr4136/index.html\">hpr4136 - Pi\nSamba Share</a></li>\n</ul>\n<p>Here is the command I utilize to set up Samba as a service,\neliminating the need for automatic console login:</p>\n<pre><code>sudo apt install samba samba-common-bin</code></pre>\n<p>Run the following command to restart the service after you have\nedited the Samba config file.</p>\n<pre><code>sudo systemctl restart smbd</code></pre>\n<ul>\n<li><a\nhref=\"https://hackerpublicradio.org/eps/hpr4148/index.html\">hpr4148 -\nCheap Computers</a></li>\n</ul>\n<p>Upon listening to this episode, I acquired a <a\nhref=\"https://www.lenovo.com/gb/en/p/desktops/thinkcentre/m-series-tiny/thinkcentre-m700/11tc1mtm700\">ThinkCentre\nM700 Tiny</a> from eBay which came barebone, equipped it with an\ni5-6400T (also from eBay), and 16GB of RAM from CEX in the UK. I share\nmy experience of running it with KDE Neon with Plasma 6.1, and after we\ntested <a\nhref=\"https://tuxjam.otherside.network/tuxjam-113-ultramarine/\">Ultramarine</a>.</p>\n<p>Next, I discuss my media server, which is an HP laptop powered by an\n8th generation Intel&#xAE; Core&#x2122; i7-8650U processor, equipped with 16GB of\nRAM, and running <a href=\"https://jellyfin.org/\">Jellyfin</a>.</p>\n<p>Finally I discuss my plans to acquire a <a\nhref=\"https://www.lenovo.com/gb/en/p/desktops/thinkcentre/m-series-tiny/11tc1mtm72q/11tc1mtm72q\">ThinkCentre\nM720q</a>, which can support up to two drives, including a 2.5\" HDD/SSD\nand an M.2 SSD. I also share my intentions to install Proxmox on this\nsystem.</p>\n',290,0,0,'CC-BY-SA','raspberrypi,samba',0,0,1),
(4165,'2024-07-19','A circle of Moss',1660,'Ken interviews Moss Bliss. The Bard, and the Podcaster.','<p>Today we interview <a\nhref=\"https://hackerpublicradio.org/correspondents/0431.html\">Moss\nBliss</a></p>\n<ul>\n<li><a href=\"https://peacefulhippo.info/\">Personal Home Page</a></li>\n<li><a href=\"https://fullcirclemagazine.org/\">Full Circle is a free,\nindependent, monthly magazine dedicated to the Ubuntu family of Linux\noperating systems</a></li>\n</ul>\n<p>We get a rundown of what the show is, how it\'s related to Ubuntu, and\nthe history of the podcast.</p>\n<p>Moss goes on to explain his introduction to Podcasting via <a\nhref=\"https://distrohoppersdigest.org/\">Distro Hoppers Digest</a>, and\nthe <a href=\"https://mintcast.org/about/\">mintCast</a>. We of course\ndiscuss those podcasts and their history.</p>\n<p>We wouldn\'t pass up this opportunity to discuss his first up to his\nfavorite, well at least current, distro. Covering his hardware journey\nat the same time.</p>\n<p>Moss himself has an interesting story, which we start by asking why\nhe goes by the handle \"Bard Moss\", where his roots are and where his\nheart is at the moment. Of course we delve into the exciting world of <a\nhref=\"https://en.wikipedia.org/wiki/Filk_music\">Filk Music</a>, that\'s\nnot a typo Dave. Actually it is but all is explained.</p>\n<p>And finally Ken sits back as Moss treats us to one of his own works\n\"The Angels Never Came\", released under a \"CC-BY-SA 4.0\"</p>\n<h3 id=\"links\">Links</h3>\n<ul>\n<li><a\nhref=\"https://hackerpublicradio.org/correspondents/0431.html\">https://hackerpublicradio.org/correspondents/0431.html</a></li>\n<li><a\nhref=\"https://peacefulhippo.info/\">https://peacefulhippo.info/</a></li>\n<li><a\nhref=\"https://fullcirclemagazine.org/\">https://fullcirclemagazine.org/</a></li>\n<li><a\nhref=\"https://fullcirclemagazine.org/podcasts/\">https://fullcirclemagazine.org/podcasts/</a></li>\n<li><a\nhref=\"https://fullcirclemagazine.org/podcasts/index.xml\">https://fullcirclemagazine.org/podcasts/index.xml</a></li>\n<li><a\nhref=\"https://mintcast.org/about/\">https://mintcast.org/about/</a></li>\n<li><a\nhref=\"https://distrohoppersdigest.org/\">https://distrohoppersdigest.org/</a></li>\n<li><a\nhref=\"https://distrowatch.com/table.php?distribution=ferenos\">https://distrowatch.com/table.php?distribution=ferenos</a></li>\n<li><a\nhref=\"https://ferenos.weebly.com/\">https://ferenos.weebly.com/</a></li>\n<li><a\nhref=\"https://www.bodhilinux.com/\">https://www.bodhilinux.com/</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Filk_music\">https://en.wikipedia.org/wiki/Filk_music</a></li>\n</ul>\n',30,78,0,'CC-BY-SA','Moss Bliss, Filk Music, Podcast, CreativeCommons',0,0,1),
(4167,'2024-07-23','Removing another obstacle to recording an HPR show',304,'Not everyone is comfortable speaking to an audience directly. Beeza addresses this problem.','<p>I have always disliked public speaking, and I\'m sure I\'m not alone in\nthis.</p>\n<p>Although I have recorded HPR episodes in the past I have always been\nhighly dissatisfied with the results - my delivery and the sound of my\nvoice.</p>\n<p>Text-to-Speech software has improved dramatically in recent years and\nthis provides a solution to my natural reticence to recording shows.</p>\n<p>In this episode I demonstrate the use of a simple online TTS\napplication in the hope that it will encourage others to contribute a\nshow who might otherwise not do so.</p>\n<p>Here is a link to the <a\nhref=\"https://freetools.textmagic.com/text-to-speech\">TextMagic</a>\nwebsite where you can run their TTS software. It is cost-free to use,\nbut I\'m not sure if it is FLOSS.</p>\n<h3 id=\"links\">Links</h3>\n<ul>\n<li><a href=\"https://freetools.textmagic.com/text-to-speech\"\nclass=\"uri\">https://freetools.textmagic.com/text-to-speech</a></li>\n</ul>\n',246,0,0,'CC-BY-SA','Text-to-speech, TTS, Recording methods',0,0,1),
(4168,'2024-07-24','Beyond Economic Recovery',352,'How to lower your anxiety level as an archivist.','<p>I am not a lawyer, and this is not legal advice. But it is practical\nadvice.</p>\n',149,0,0,'CC-BY-SA','archiving, archivist, legal',0,0,1),
(4185,'2024-08-16','Archiving VCR or any other RCA media',1035,'VCR players are starting to get expensive so now is the time to archive.','<h1 id=\"archiving-vcr-or-any-other-rca-media\">Archiving VCR or any other\nRCA media</h1>\n<p>After my Father passed away, I volunteered to archive his <a\nhref=\"https://en.wikipedia.org/wiki/Videocassette_recorder\">Video\nCassette Recorder</a> (VCR) collection to disk for the family. You might\nbe aware that Europe used <b>Phase Alternating Line</b> (<b>PAL</b>) is\na colour encoding system for\n<a href=\"https://en.wikipedia.org/wiki/Analog_television\" title=\"Analog television\">analog\ntelevision</a>. It was one of three major analogue colour television\nstandards, the others being\n<a href=\"https://en.wikipedia.org/wiki/NTSC\" title=\"NTSC\">NTSC</a> and\n<a href=\"https://en.wikipedia.org/wiki/SECAM\" title=\"SECAM\">SECAM</a>.</p>\n<p>Ireland used PAL-I, a version based on <a\nhref=\"https://en.wikipedia.org/wiki/CCIR_System_I\">CCIR System I</a>,\nwhich meant that none of the VCR players in the Netherlands would work.\nSo in addition to having to carry 113 Video Cassettes on a RyanAir\nFlight, I also needed to bring the Video Player as well.</p>\n<h2 id=\"hardware\">Hardware</h2>\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/RCA_connector\">RSA\nConnector</a> to your media device</li>\n<li><a\nhref=\"https://www.bol.com/nl/nl/p/mini-hdmi2av-up-scaler-1080p/9300000030484510/\">RSA2HDMI</a>\ncard.</li>\n<li><a href=\"https://www.amazon.de/dp/B0CJQX2H9S\">HDMI to USB Capture\nCard</a>.</li>\n</ul>\n<p>These are the ones I used but I don\'t recommend them one way or the\nother. The parts are fairly generic so use what you can get.</p>\n<a href=\"eps/hpr4185/hpr4185/setup.jpeg\">\n<img src=\"eps/hpr4185/hpr4185/setup-thumbnail.jpeg\" alt=\"The setup showing VCR to RSA to HDMI to USB\" />\n</a>\n\n<h2 id=\"connection\">Connection</h2>\n<p>First drop to a console and list the connected usb devices</p>\n<p><code>$ lsusb | sort | tee before.txt</code></p>\n<ul>\n<li>Connect the VCR with RSA Cables to the AV2HDMI converter.</li>\n<li>Connect the AV2HDMI converter with a HDMI cable to the HDMI2USB\nconverter.</li>\n<li>Connect the HDMI2USB converter to a Linux PC with a usb cable.</li>\n</ul>\n<p>After waiting a few seconds, you can list the usb devices again and\ndo a diff to see which has been added.</p>\n<pre><code>$ lsusb | sort | tee after.txt\n$ diff before.txt after.txt\n11a12\n&gt; Bus 003 Device 021: ID 534d:2109 MacroSilicon USB Video</code></pre>\n<p>While we know the USB device ID, we now need to know if/how the\nhardware is mapped into Linux.</p>\n<p>We need a way to be able to identify which <code>/dev/video?</code>\ndevice I need to capture from.</p>\n<p>First unplug the HDMI2USB capture card, and get a list of the video\ndevices.</p>\n<pre><code>$ for i in  /sys/class/video4linux/video*/device/uevent ;do echo &quot;${i} ===&quot;;cat &quot;${i}&quot;;done | tee before.txt</code></pre>\n<p>Plug back in the card and give it a few seconds to be recognised.\nThen run the same command and <code>diff</code> the output to see the\ndifferences.</p>\n<pre><code>$ for i in  /sys/class/video4linux/video*/device/uevent ;do echo &quot;${i} ===&quot;;cat &quot;${i}&quot;;done | tee after.txt\n$ diff before.txt after.txt\n28a29,42\n&gt; /sys/class/video4linux/video4/device/uevent ===\n&gt; DEVTYPE=usb_interface\n&gt; DRIVER=uvcvideo\n&gt; PRODUCT=534d/2109/2100\n&gt; TYPE=239/2/1\n&gt; INTERFACE=14/1/0\n&gt; MODALIAS=usb:v534Dp2109d2100dcEFdsc02dp01ic0Eisc01ip00in00\n&gt; /sys/class/video4linux/video5/device/uevent ===\n&gt; DEVTYPE=usb_interface\n&gt; DRIVER=uvcvideo\n&gt; PRODUCT=534d/2109/2100\n&gt; TYPE=239/2/1\n&gt; INTERFACE=14/1/0\n&gt; MODALIAS=usb:v534Dp2109d2100dcEFdsc02dp01ic0Eisc01ip00in00\n</code></pre>\n<p>In my case I\'m interested in the <code>PRODUCT=534d/2109/2100</code>.\nFrom which we can find the changing path, which in this case is\n<code>/sys/class/video4linux/video5/</code></p>\n<p>Similarly we also need to know which ALSA Audio Device it\nexposed.</p>\n<p>Again unplug the HDMI2USB capture card, and get a list of the audio\ndevices.</p>\n<pre><code>$ arecord -l | tee before.txt\n</code></pre>\n<p>Plug back in the card and give it a few seconds to be recognised.\nThen run the same command and <code>diff</code> the output to see the\ndifferences.</p>\n<pre><code>$ arecord -l | tee after.txt\n$ diff before.txt after.txt\n7a8,10\n&gt; card 2: MS2109 [MS2109], device 0: USB Audio [USB Audio]\n&gt;   Subdevices: 1/1\n&gt;   Subdevice #0: subdevice #0</code></pre>\n<p>In my case it reports as <code>MS2109</code> from which we can find\nthe changing <code>card 2</code></p>\n<h2 id=\"software\">Software</h2>\n<p>Due to the <a\nhref=\"https://github.com/yume-chan/ms2109-player\">limitations</a> of\nthis brand of video capture we need to force capture to use <a\nhref=\"https://en.wikipedia.org/wiki/Motion_JPEG\">mjpg</a> format at 30\nframes per second.</p>\n<p>I first used <a href=\"https://www.videolan.org/vlc/\">vlc</a> to test\nthe capture</p>\n<p>Select Open Media &gt; Capture Devices Select Video Device Name to\nthe video device you found above. So as an example\n<code>/dev/video4</code> Also set the \"Audio device name\" to the alsa\ncard, eg <code>hw: 2,0:</code></p>\n<a href=\"eps/hpr4185/hpr4185/vlc-settings.png\">\n<img src=\"eps/hpr4185/hpr4185/vlc-settings-thumbnail.png\" alt=\"Screenshot of menu detailed above\" />\n</a>\n\n<p>Once audio and video were working, I switched to using <a\nhref=\"https://ffmpeg.org/\">ffmpeg</a> as I\'m more comfortable scripting\nwith it.</p>\n<h2 id=\"bash-script\">Bash script</h2>\n<p>This is very much a \"me\" script, so edit it to your hardware and\nrequirements.</p>\n<pre><code>#!/bin/bash\n\nCopyright Ken Fallon 2024 (c) &quot;No Rights Reserved&quot;\nReleased to the Public Domain via Creative Commons 0\nhttps://creativecommons.org/public-domain/cc0/\n\nvideo_device=&quot;$( grep -l &#39;PRODUCT=534d/2109/2100&#39; /sys/class/video4linux/video*/device/uevent | \\\nhead -1 | \\\nawk -F &#39;/&#39; &#39;{print $5}&#39; )&quot;\nvideo_device_path=&quot;/dev/${video_device}&quot;\nif [ -z &quot;${video_device}&quot; ]\nthen\n  echo &quot;ERROR: Cannot find the HDMP2USB stick video stream&quot; 1&gt;&amp;2\n  exit 1\nelse\n  echo &quot;INFO: Found the HDMP2USB stick video on \\&quot;${video_device_path}\\&quot;&quot; 1&gt;&amp;2\nfi\n\naudio_device_id=&quot;$( arecord -l | grep &#39;MS2109&#39; | awk -F &#39;card |:&#39; &#39;{print $2}&#39; )&quot;\nif [ -z &quot;${audio_device_id}&quot; ]\nthen\n  echo &quot;ERROR: Cannot find the HDMP2USB stick audio stream&quot; 1&gt;&amp;2\n  exit 1\nelse\n  echo &quot;INFO: Found the HDMP2USB stick audio on \\&quot;${audio_device_id}\\&quot;&quot; 1&gt;&amp;2\nfi\n\nffmpeg \\\n-f v4l2 \\\n-framerate 30 \\\n-video_size 720x480 \\\n-input_format mjpeg \\\n-thread_queue_size 512 \\\n-i &quot;${video_device_path}&quot; \\\n-f alsa \\\n-i hw:&quot;${audio_device_id}&quot; \\\n-c:v copy \\\n-c:a flac \\\noutput-flac.mkv</code></pre>\n<p>The break down of the <code>ffmpeg</code> options are as follows, for\nmore information see <code>man ffmpeg</code> or view <a\nhref=\"https://manpages.org/ffmpeg\">online man pages</a>.</p>\n<pre><code>SYNOPSIS\nffmpeg [global_options] {[input_file_options] -i input_file} ... {[output_file_options] output_file} ...\n\n-f fmt (input/output)\n    Force input or output file format. The format is normally auto detected for input files and guessed from\n    the file extension for output files, so this option is not needed in most cases.\n\n-framerate\n    Set the grabbing frame rate. Default is &quot;ntsc&quot;, corresponding to a frame rate of &quot;30000/1001&quot;.\n\n-video_size\n    Set the video frame size.\n\n-input_format\n    Set the preferred pixel format (for raw video) or a codec name. This option allows one to select the input\n    format, when several are available.\n\n-thread_queue_size size (input)\n    This option sets the maximum number of queued packets when reading from the file or device. With low\n    latency / high rate live streams, packets may be discarded if they are not read in a timely manner;\n    raising this value can avoid it.\n\n-i filename (input)\n    input file name\n\n-f fmt (input/output)\n    Force input or output file format. The format is normally auto detected for input files and guessed from\n    the file extension for output files, so this option is not needed in most cases.\n\n-c[:stream_specifier] codec (input/output,per-stream)\n-codec[:stream_specifier] codec (input/output,per-stream)\n    Select an encoder (when used before an output file) or a decoder (when used before an input file) for one\n    or more streams. codec is the name of a decoder/encoder or a special value &quot;copy&quot; (output only) to indicate\n    that the stream is not to be re-encoded.\n\n    For example\n\n            ffmpeg -i INPUT -map 0 -c:v libx264 -c:a copy OUTPUT\n\n    encodes all video streams with libx264 and copies all audio streams.\n\n    For each stream, the last matching &quot;c&quot; option is applied, so\n\n            ffmpeg -i INPUT -map 0 -c copy -c:v:1 libx264 -c:a:137 libvorbis OUTPUT\n\n    will copy all the streams except the second video, which will be encoded with libx264, and the 138th audio,\n    which will be encoded with libvorbis.</code></pre>\n<p>We used the <code>v4l2</code> for the <a\nhref=\"https://en.wikipedia.org/wiki/Video4Linux\">Video4Linux</a> format.\nA frame rate of <code>30</code>, and input format of <a\nhref=\"https://en.wikipedia.org/wiki/Motion_JPEG\">mjpg</a> which are <a\nhref=\"https://github.com/yume-chan/ms2109-player\">limitations</a> of the\ncard. Given the source <a\nhref=\"https://en.wikipedia.org/wiki/CCIR_System_I\">PAL-I</a> has 625\nlines, a video_size of <code>720x480</code> is reasonable. After ffmpeg\ncomplained, I added thread_queue_size of 512 to help out. Then the rest\nis specifying the input for the video, and setting the audio to <a\nhref=\"https://en.wikipedia.org/wiki/FLAC\">flac</a>.</p>\n<p>I just want to dump the incoming stream to a file so that it can be\nprocessed later.</p>\n<h2 id=\"recording\">Recording</h2>\n<p>for vcr in {0..113}; do ;-)</p>\n<p>The intention was to put in a tape in the morning before going to\nwork. Swap it for another when I got home, and yet another when I went\nto bed.</p>\n<p>As there was no mechanism to know when the recording was done, I\nfirst checked the length of the tape by Fast Forwarding it to the\nend.</p>\n<p>I used the <code>timeout</code> command to <a\nhref=\"https://www.man7.org/linux/man-pages/man1/timeout.1.html\">run a\ncommand with a time limit</a></p>\n<p>This would prevent already massive files filling the disk with hours\nof static.</p>\n<pre><code>timeout --preserve-status --kill-after=5m --verbose 210m record-720x480.bash</code></pre>\n<h2 id=\"problems\">Problems</h2>\n<p>While it worked fine for some, there was an intermittent problem that\nwould cause the laptop to freeze. It would eventually recover after a\nfew days, but I lost a lot of time and couldn\'t trust the process. I\nchecked the memory and hard disk, even writing to usb and a nas.</p>\n<p>With each hour of recording coming in at 6.6G, some tapes lead to 60G\nfiles.</p>\n<p>I suspect that my <a\nhref=\"https://en.wikipedia.org/wiki/Linux_Unified_Key_Setup\">luks</a>\nencrypted disk was struggled with the huge files that were been\nproduced.</p>\n<p>So keeping it simple I called out my <a\nhref=\"https://hackerpublicradio.org/eps/hpr4125/index.html\">HP t610\nFlexible Thin Client</a> with 2nd hand 1T hard disk, and set it up with\na clean install of <a href=\"https://www.debian.org/\">Debian</a>.</p>\n<p>This fixed the issue and allowed me to get consistent recordings, all\nbe it in a not so handy format.</p>\n<h2 id=\"post-processing\">Post processing</h2>\n<p>I wanted to be able to\n<a href=\"https://en.wikipedia.org/wiki/Scrubbing_(audio)\">scrubb</a>\nforward and back, to see if there was anything recorded on the tapes.\nUnfortunately the mkv flac/mjpeg format doesn\'t allow\n<a href=\"https://en.wikipedia.org/wiki/Scrubbing_(audio)\">scrubbing</a>,\nso the recorded media first needed to be transcoded to a format that did\nallow scrubbing, but also reduced the file size dramatically.</p>\n<p>By specifying the filename as next this command converted the media\nto mp4. <code>ffmpeg -i ${next} ${next%.*}.mp4</code></p>\n<p>This reduces the size by about 50%.</p>\n<p>Once converted this allowed me to use <a\nhref=\"https://www.mifi.no/losslesscut/\">LosslessCut</a> The Swiss Army\nKnife of Lossless Video/Audio Editing, to quickly preview and cut out\nthe sections I needed without having to reprocess everything.</p>\n<p><code>flatpak run no.mifi.losslesscut</code></p>\n<h2 id=\"links\">Links</h2>\n<p>The following are the links I gathered while compiling this project.\nMost are from searching for the usb id into a search engine\n\"534d:2109\".</p>\n<ul>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/RCA_connector\">https://en.wikipedia.org/wiki/RCA_connector</a></li>\n<li><a\nhref=\"https://www.amazon.de/dp/B0CJQX2H9S\">https://www.amazon.de/dp/B0CJQX2H9S</a></li>\n<li><a\nhref=\"https://www.bol.com/nl/nl/p/mini-hdmi2av-up-scaler-1080p/9300000030484510/\">https://www.bol.com/nl/nl/p/mini-hdmi2av-up-scaler-1080p/9300000030484510/</a></li>\n<li><a\nhref=\"https://github.com/yume-chan/ms2109-player\">https://github.com/yume-chan/ms2109-player</a></li>\n<li><a\nhref=\"https://ciko.io/posts/cheap_usb_hdmi/\">https://ciko.io/posts/cheap_usb_hdmi/</a></li>\n<li><a\nhref=\"https://www.baeldung.com/linux/ffmpeg-webcam-stream-video\">https://www.baeldung.com/linux/ffmpeg-webcam-stream-video</a></li>\n<li><a\nhref=\"https://recolic.net/blog/post/macrosilicon-ms2109-hdmi-to-usb-capture-not-working-on-linux\">https://recolic.net/blog/post/macrosilicon-ms2109-hdmi-to-usb-capture-not-working-on-linux</a></li>\n<li><a\nhref=\"https://superuser.com/questions/1838120/how-to-specify-audio-input-to-ffplay\">https://superuser.com/questions/1838120/how-to-specify-audio-input-to-ffplay</a></li>\n<li><a\nhref=\"https://opensource.com/article/17/6/ffmpeg-convert-media-file-formats\">https://opensource.com/article/17/6/ffmpeg-convert-media-file-formats</a></li>\n<li><a\nhref=\"https://shotstack.io/learn/how-to-use-ffmpeg/\">https://shotstack.io/learn/how-to-use-ffmpeg/</a></li>\n<li><a\nhref=\"https://blog.trixpark.com/live-streaming-with-ffmpeg-a-comprehensive-guide-with-examples/\">https://blog.trixpark.com/live-streaming-with-ffmpeg-a-comprehensive-guide-with-examples/</a></li>\n<li><a\nhref=\"https://www.diyaudio.com/community/threads/macrosilicon-2109-cheap-usb-hdmi-a-v-capture.357873/\">https://www.diyaudio.com/community/threads/macrosilicon-2109-cheap-usb-hdmi-a-v-capture.357873/</a></li>\n<li><a\nhref=\"https://forum.videohelp.com/threads/404784-%5BSolved%5DUSB-capture-device-stuck-on-10-fps\">https://forum.videohelp.com/threads/404784-%5BSolved%5DUSB-capture-device-stuck-on-10-fps</a></li>\n</ul>\n',30,0,0,'CC-BY-SA','VCR,Archive,RSA,HDMI,USB,ffmpeg,video4linux,alsa,timeout,losslesscut',0,0,1),
