(4301,'2025-01-27','Wide screen, synth, e-bike, led matrix clock and jewellery making',1293,'Lee talks about what got his attention last year and over the new year','\n    <h2 style=\"\">\n      Ultra wide monitor</h2>\n    <p style=\"\">\n      <br style=\"\">\n    </p>\n    <p style=\"color: rgb(209, 203, 199) !important;\">\n      An LG UltraWide monitor supports a 32:9 aspect ratio, up to 5120 x\n      1440.</p>\n    <p style=\"color: rgb(209, 203, 199) !important;\">\n      <br style=\"\">\n    </p>\n    <p style=\"color: rgb(209, 203, 199) !important;\">\n      <span class=\"ql-font-monospace\" style=\"\">\n        <a href=\"hpr4301_image_ext_1.jpeg\">\n          <img src=\"hpr4301_image_ext_1_tn.jpeg\" moz-do-not-send=\"true\"\n            alt=\"A one meter very wide monitor on a cornder desk\"\n            height=\"300\" border=\"0\" width=\"400\">\n        </a>\n      </span>\n    </p>\n    <h2 style=\"color: rgb(209, 203, 199) !important;\">\n      <br style=\"\">\n    </h2>\n    <h2 style=\"\">\n      <strong style=\"color: rgb(77, 77, 77);\">\n        Display drivers</strong>\n    </h2>\n    <p style=\"\">\n      <br style=\"\">\n    </p>\n    <pre class=\"ql-syntax\" spellcheck=\"false\" style=\"\">static VIC_MODE gpu_vic_mode_table[] =\n{\n&nbsp;  {1, {640, 480}},\n&nbsp;  {2, {720, 480}},\n&nbsp;  ...\n&nbsp;  {93, {3840, 2160}},\n&nbsp;  {94, {3840, 2160}},\n&nbsp;  ...\n&nbsp;  {127, {5120, 2160} },\n}\n</pre>\n    <p style=\"color: rgb(209, 203, 199) !important;\">\n      <br style=\"\">\n    </p>\n    <p style=\"\">\n      <span style=\"color: rgb(77, 77, 77);\" class=\"ql-font-monospace\">\n        <a href=\"hpr4301_image_ext_2.png\">\n          <img src=\"hpr4301_image_ext_2_tn.png\" moz-do-not-send=\"true\"\n            alt=\"a screenshot of the monitor - its very wide\"\n            height=\"112\" border=\"0\" width=\"400\">\n        </a>\n      </span>\n    </p>\n    <h2 style=\"color: rgb(209, 203, 199) !important;\">\n      <br style=\"\">\n    </h2>\n    <h2 style=\"\">\n      <strong style=\"color: rgb(77, 77, 77);\">\n        Games</strong>\n    </h2>\n    <p style=\"\">\n      <br style=\"\">\n    </p>\n    <h3 style=\"\">\n      <strong style=\"\">\n        No Man\'s Sky</strong>\n    </h3>\n    <p style=\"color: rgb(209, 203, 199) !important;\">\n      <span class=\"ql-font-monospace\" style=\"\">\n        <a href=\"hpr4301_image_ext_3.png\">\n          <img src=\"hpr4301_image_ext_3_tn.png\" moz-do-not-send=\"true\"\n            alt=\"A wide view from a space pilot space view of a planet\n            city\" height=\"113\" border=\"0\" width=\"400\">\n        </a>\n      </span>\n    </p>\n    <h3 style=\"color: rgb(209, 203, 199) !important;\">\n      <br style=\"\">\n    </h3>\n    <h3 style=\"\">\n      <strong style=\"color: rgb(77, 77, 77);\">\n        Skyrim</strong>\n    </h3>\n    <p style=\"color: rgb(209, 203, 199) !important;\">\n      <span class=\"ql-font-monospace\" style=\"\">\n        <a href=\"hpr4301_image_ext_4.png\">\n          <img src=\"hpr4301_image_ext_4_tn.png\" moz-do-not-send=\"true\"\n            alt=\"yet another wide view screen shot of sky rim\"\n            height=\"113\" border=\"0\" width=\"400\">\n        </a>\n      </span>\n    </p>\n    <h2 style=\"color: rgb(209, 203, 199) !important;\">\n      <br style=\"\">\n    </h2>\n    <h2 style=\"\">\n      <strong style=\"color: rgb(77, 77, 77);\">\n        Synth</strong>\n    </h2>\n    <p style=\"color: rgb(209, 203, 199) !important;\">\n      <a\n        href=\"https://apps.apple.com/gb/app/mela-3-synth-fx-midi/id1612218703\"\n        rel=\"noopener noreferrer\" target=\"_blank\" style=\"color: rgb(0,\n        0, 0);\">\n        https://apps.apple.com/gb/app/mela-3-synth-fx-midi/id1612218703</a>\n    </p>\n    <h2 style=\"color: rgb(209, 203, 199) !important;\">\n      <br style=\"\">\n    </h2>\n    <h2 style=\"\">\n      <strong style=\"color: rgb(77, 77, 77);\">\n        E-bike</strong>\n    </h2>\n    <p style=\"color: rgb(209, 203, 199) !important;\">\n      <a\nhref=\"https://www.specialized.com/gb/en/shop/bikes/electric-bikes/electric-hybrid-bikes/turbo-vado\"\n        rel=\"noopener noreferrer\" target=\"_blank\" style=\"color: rgb(0,\n        0, 0);\">\n        Turbo Vado</a>\n    </p>\n    <h2 style=\"color: rgb(209, 203, 199) !important;\">\n      <br style=\"\">\n    </h2>\n    <h2 style=\"\">\n      <strong style=\"color: rgb(77, 77, 77);\">\n        Arduino Clock</strong>\n    </h2>\n    <p style=\"color: rgb(209, 203, 199) !important;\">\n      <span class=\"ql-font-monospace\" style=\"\">\n        <a href=\"hpr4301_image_ext_5.jpeg\">\n          <img src=\"hpr4301_image_ext_5_tn.jpeg\" moz-do-not-send=\"true\"\n            alt=\"A 4x4 module display made of 6x6 led matrix modules\n            showing S12 on the first line 0125 on the second, 1917 on\n            the third, and 06 on the last\" height=\"394\" border=\"0\"\n            width=\"400\">\n        </a>\n      </span>\n    </p>\n    <h2 style=\"color: rgb(209, 203, 199) !important;\">\n      <br style=\"\">\n    </h2>\n    <h2 style=\"\">\n      <strong style=\"color: rgb(77, 77, 77);\">\n        Jewellery making</strong>\n    </h2>\n    <p style=\"color: rgb(209, 203, 199) !important;\">\n      <br style=\"\">\n    </p>\n    <p style=\"color: rgb(209, 203, 199) !important;\">\n      <a href=\"hpr4301_image_1.jpeg\">\n        <img src=\"hpr4301_image_1_tn.jpeg\" moz-do-not-send=\"true\" alt=\"A\n          ear of a bearded man showing a green orb earring\" height=\"501\"\n          border=\"0\" width=\"400\">\n      </a>\n    </p>',403,0,1,'CC-BY-SA','displays, cycling, gaming',0,0,1),
(4296,'2025-01-20','Crafting Interpreters',128,'Talk about the book Crafting Interpreters by Robert Nystrom','<p>\n<span style=\"background-color: transparent; color: rgb(0, 0, 0);\">\nCrafting Interpreter</span>\n</p>\n<p>\n<br>\n</p>\n<p>\n<span style=\"background-color: transparent; color: rgb(0, 0, 0);\">\nHello, this is iota speaking.</span>\n</p>\n<p>\n<br>\n</p>\n<p>\n<span style=\"background-color: transparent; color: rgb(0, 0, 0);\">\nToday I would like to talk about the book \"Crafting Interpreters\" by Robert Nystrom.&nbsp; I have a passion for interpreters and compilers for a long time, and always like to write one.&nbsp; But I never succeed.&nbsp; I read a lot of books about interpreters and compilers but never able to finish it.</span>\n</p>\n<p>\n<br>\n</p>\n<p>\n<span style=\"background-color: transparent; color: rgb(0, 0, 0);\">\nCrafting Interpreters is the first book I read cover to cover, and understand it, and I am able to follow through all the coding and build an interpreter as well as a compiler.&nbsp; It is amazing!</span>\n</p>\n<p>\n<br>\n</p>\n<p>\n<span style=\"background-color: transparent; color: rgb(0, 0, 0);\">\nThe first half of the book is to build a tree-walking interpreter in Java.&nbsp; The 2nd half of the book is to build a bytecode compiler in C.&nbsp; Both of them are for a programming language the author called lox. L-O-X.</span>\n</p>\n<p>\n<br>\n</p>\n<p>\n<span style=\"background-color: transparent; color: rgb(0, 0, 0);\">\nThe book is smart because it is based on generic Java and C code, and does not specify any IDE or make file to use.&nbsp; You will have to figure out that yourself.&nbsp; That may sound like a hurdle but in fact it is a blessing.&nbsp; That makes the code in the book very portable.</span>\n</p>\n<p>\n<br>\n</p>\n<p>\n<span style=\"background-color: transparent; color: rgb(0, 0, 0);\">\nThe author has a way to explain compiler concepts in an interesting way.&nbsp; The bytecode compiler in the 2nd half of the book implements the following features: virtual machine, closure, class and methods, garbage collector, etc.</span>\n</p>\n<p>\n<br>\n</p>\n<p>\n<span style=\"background-color: transparent; color: rgb(0, 0, 0);\">\nThe book cover is already very revealing.&nbsp; It is basically a high-level view of the different passes and types of code generation.</span>\n</p>\n<p>\n<br>\n</p>\n<p>\n<span style=\"background-color: transparent; color: rgb(0, 0, 0);\">\nYou can buy the book in different places, both physical copy or ebook.&nbsp; However, the book is also available for free at <a href=\"https://craftinginterpreters.com/\">craftinginterpreters.com</a>.</span>\n</p>\n<p>\n<br>\n</p>\n<p>\n<span style=\"background-color: transparent; color: rgb(0, 0, 0);\">\nI would say this book is a labour of love by the author.&nbsp; Highly recommended.&nbsp;</span>\n</p>\n<p>\n<br>\n</p>\n<p>\n<span style=\"background-color: transparent; color: rgb(0, 0, 0);\">\niota signing off</span>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n',440,0,0,'CC-BY-SA','Interpreter, Compiler',0,0,1),
(4297,'2025-01-21','Let me tell you a bit about FOSDEM',551,'I would like to invite you all over to Brussels to attend FOSDEM','<h3>\nA Brief History of FOSDEM</h3>\n<ul>\n<li>\n<strong>\nFounded in 2001</strong>\n by Raphaël Bauduin as OSDEM.</li>\n<li>\n<strong>\nFirst event</strong>\n held at Université Libre de Bruxelles (ULB) with ~200 attendees.</li>\n<li>\nGrew to become <strong>\none of the largest open-source events</strong>\n globally.</li>\n<li>\n<strong>\nCore values</strong>\n: Free to attend, volunteer-run, and vendor-neutral.</li>\n</ul>\n<p>\n<br>\n</p>\n<h3>\nThe FOSDEM 2025 Program</h3>\n<ul>\n<li>\n<strong>\n50+ devrooms</strong>\n, each dedicated to specific topics or communities:</li>\n<li class=\"ql-indent-1\">\nEmbedded systems, Python, decentralized internet, documentation, and more.</li>\n<li>\n<strong>\nHighlighted keynotes</strong>\n:</li>\n<li class=\"ql-indent-1\">\nTalks from prominent figures in the open-source community.</li>\n<li class=\"ql-indent-1\">\nTopics addressing the future of open-source collaboration and technology.</li>\n<li>\n<strong>\nFOSDEM Junior track</strong>\n:</li>\n<li class=\"ql-indent-1\">\nWorkshops and talks designed for younger attendees.</li>\n<li class=\"ql-indent-1\">\nAll content in English, which could be a challenge for some kids.</li>\n<li>\n<strong>\nLightning talks</strong>\n:</li>\n<li class=\"ql-indent-1\">\n15-minute presentations showcasing a variety of projects and ideas.</li>\n</ul>\n<p>\n<br>\n</p>\n<h3>\nSide-Events: Bytenight and More</h3>\n<ul>\n<li>\n<strong>\nBytenight</strong>\n:</li>\n<li class=\"ql-indent-1\">\nCasual evening gathering for networking and unwinding.</li>\n<li class=\"ql-indent-1\">\nOffers a relaxed, vibrant atmosphere to share ideas and connect.</li>\n<li>\n<strong>\nUnofficial FOSS-Nerds-Only Party at HSBXL</strong>\n:</li>\n<li class=\"ql-indent-1\">\nKnown informally as \"Bytenight at HSBXL.\"</li>\n<li class=\"ql-indent-1\">\nA private gathering for open-source enthusiasts and contributors.</li>\n<li class=\"ql-indent-1\">\nHosted at the <strong>\nHackerspace Brussels (HSBXL)</strong>\n, providing an intimate, nerd-centric atmosphere.</li>\n<li class=\"ql-indent-1\">\nIncludes engaging conversations, demonstrations of projects, and a chance to meet like-minded individuals in a more exclusive setting.</li>\n<li>\nOther informal meetups and social events scattered across Brussels.</li>\n</ul>\n<p>\n<br>\n</p>\n<h3>\nEnter OFFDEM: An Open-Source Evolution</h3>\n<ul>\n<li>\n<strong>\nWhat is OFFDEM?</strong>\n</li>\n<li class=\"ql-indent-1\">\nStands for \"Off FOSDEM.\"</li>\n<li class=\"ql-indent-1\">\nCreated as an <strong>\nalternative for those unhappy with FOSDEM\'s corporate tone</strong>\n.</li>\n<li class=\"ql-indent-1\">\nPrioritizes <strong>\ninformal, experimental, and non-commercial discussions</strong>\n.</li>\n<li>\n<strong>\nKey features</strong>\n:</li>\n<li class=\"ql-indent-1\">\nDecentralized gathering with workshops, art installations, and unconference-style sessions.</li>\n<li class=\"ql-indent-1\">\nReflects the <strong>\ndiversity and adaptability</strong>\n of the open-source community.</li>\n<li>\n<strong>\nComplementary to FOSDEM</strong>\n:</li>\n<li class=\"ql-indent-1\">\nNot a competition but an extension of the open-source ethos.</li>\n</ul>\n<p>\n<br>\n</p>\n<h3>\nWhy FOSDEM Matters</h3>\n<ul>\n<li>\n<strong>\nCelebration of open-source values</strong>\n:</li>\n<li class=\"ql-indent-1\">\nCollaboration, transparency, and freedom.</li>\n<li>\n<strong>\nOpportunities</strong>\n:</li>\n<li class=\"ql-indent-1\">\nExchange ideas, launch projects, and strengthen communities.</li>\n<li>\n<strong>\nInclusivity</strong>\n:</li>\n<li class=\"ql-indent-1\">\nA space for everyone, from seasoned contributors to newcomers.</li>\n</ul>\n<p>\n<br>\n</p>\n<h3>\nWrapping Up</h3>\n<ul>\n<li>\n<strong>\nKey takeaways</strong>\n:</li>\n<li class=\"ql-indent-1\">\nFOSDEM showcases the best of community-driven initiatives.</li>\n<li class=\"ql-indent-1\">\nSide-events like Bytenight and OFFDEM highlight the evolving open-source spirit.</li>\n<li>\n<strong>\nJoin the conversation</strong>\n:</li>\n<li class=\"ql-indent-1\">\nShare your experiences, must-visit devrooms, or favorite talks.</li>\n</ul>\n<p>\n<br>\n</p>\n<h3>\nWebpages</h3>\n<ul>\n<li>\n<a href=\"https://fosdem.org\" rel=\"noopener noreferrer\" target=\"_blank\">\nFOSDEM</a>\n</li>\n<li>\n<a href=\"https://oxygen.offdem.net/pub/call-for-presence\" rel=\"noopener noreferrer\" target=\"_blank\">\nOFFDEM</a>\n</li>\n<li>\n<a href=\"https://bytenight.brussels/\" rel=\"noopener noreferrer\" target=\"_blank\">\nByenight</a>\n</li>\n<li>\n<a href=\"https://play.google.com/store/apps/details?id=be.digitalia.fosdem&amp;hl=en-US\" rel=\"noopener noreferrer\" target=\"_blank\">\nFOSDEM companion</a>\n</li>\n</ul>\n',433,0,0,'CC-BY-SA','FOSDEM,FOSS, Event, Brussels',0,0,1),
(4299,'2025-01-23','Building your own Debian images for your Raspberry Pi',609,'You can build your own image for you Pi, so that it\'s more customized from the first boot','<p>\nOn https://raspi.debian.net/ one time the image was broken, so I had to built it myself.</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://salsa.debian.org/raspi-team/image-specs\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://salsa.debian.org/raspi-team/image-specs</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nThe makefile can create you a yaml file for your pi model and your release of Debian. Then you can edit that file to do whatever you want to the system, before making it into an image.</p>\n<p>\n<br>\n</p>\n<p>\nFor example:</p>\n<p>\n- In the section apt/packages, add sudo.</p>\n<p>\n- Create a user, add it to the sudo group, with password \"\" and /bin/bash for shell</p>\n<p>\n- Create a .ssh for your user, and echo in your SSH public keyboard</p>\n<p>\n<br>\n</p>\n<p>\nThat way you can boot into your new Debian system without having to have a screen. </p>\n<p>\nAs soon as you login, the first thing you should do is reset your own password. </p>\n<p>\nBy doing -p \"\" we set the password to empty. </p>\n<p>\nIf we had not done -p \"\" the password would have been empty but locked, so you wouldn\'t be able to sudo. </p>\n<p>\nAlso go ahead and lock your root user password, which you could also do from the file.</p>\n<p>\n<br>\n</p>\n<p>\nBuild your image, and go.</p>\n',399,0,0,'CC-BY-SA','debian, raspberryPi',0,0,1),
(4305,'2025-01-31','My weight and my biases',3151,'A personal reflection on the ethics of AI in our society.','<h2>\nIntroduction</h2>\n<ul>\n<li>\nGreeting and Context</li>\n<li>\nWelcome</li>\n<li>\nEpisode Overview</li>\n<li>\nWhy This Topic?</li>\n<li>\nUbiquity of AI</li>\n<li>\nEthics Matters for Builders and Hackers</li>\n<li>\nCommunity Responsibility</li>\n<li>\nCall to Exploration</li>\n</ul>\n<p>\n<br>\n</p>\n<h2>\nSetting the Stage</h2>\n<ul>\n<li>\nWhat We’re Talking About</li>\n<li>\nDiscussion Centered on Commonly Used AI Applications</li>\n<li>\nWhat We’re Not Covering</li>\n<li>\nHistorical Perspective</li>\n<li>\nEarly AI Dreams</li>\n<li>\nModern Realities</li>\n<li>\nThe Hacker Ethos and Why It Matters</li>\n<li>\nTransparency and Openness</li>\n<li>\nEthical Frameworks</li>\n<li>\nEmpowering the Community</li>\n</ul>\n<p>\n<br>\n</p>\n<h2>\nTransparency and Openness</h2>\n<ul>\n<li>\nOpen Source vs. Proprietary</li>\n<li>\nAccess to Source Code:</li>\n<li>\nAccess to Weights, Biases, and Training Methods</li>\n<li>\nTraining Data</li>\n<li>\nSources of Data</li>\n<li>\nOpen Datasets vs. Restricted or Proprietary Data</li>\n<li>\nEthical Questions</li>\n<li>\nTrade-Offs in Permission and Diversity</li>\n<li>\nOpenness vs. Misuse</li>\n</ul>\n<p>\n<br>\n</p>\n<h2>\nLegal and Regulatory Dimensions</h2>\n<ul>\n<li>\nConsent &amp; Permissions</li>\n<li>\nData Usage</li>\n<li>\nGlobal Variations</li>\n<li>\nAccountability</li>\n<li>\nLiability in AI Systems</li>\n<li>\nCorporate vs. Individual Responsibility</li>\n<li>\nRegulatory Landscape</li>\n<li>\nDifferent Approaches</li>\n<li>\nBalancing Innovation and Control</li>\n</ul>\n<p>\n<br>\n</p>\n<h2>\nSustainability Concerns</h2>\n<ul>\n<li>\nEnergy Consumption</li>\n<li>\nCarbon Footprint of Training and Inference</li>\n<li>\nEnvironmental Impact of Data Centers</li>\n<li>\nFuture Solutions</li>\n<li>\nEfficient Models and Green Data Centers</li>\n<li>\nBalancing Innovation with Responsibility</li>\n</ul>\n<p>\n<br>\n</p>\n<h2>\nBias, Fairness, and Societal Impact</h2>\n<ul>\n<li>\nData Bias</li>\n<li>\nDiscriminatory Outcomes</li>\n<li>\nDetection and Mitigation</li>\n<li>\nFairness in Decision-Making</li>\n<li>\nCritical Sectors</li>\n<li>\nSystemic Impact</li>\n<li>\nSocial Engineering &amp; Manipulation</li>\n<li>\nInfluence on Public Opinion</li>\n<li>\nMisinformation Risks</li>\n</ul>\n<p>\n<br>\n</p>\n<h2>\n<strong>\nThe Addictive Potential of AI and “AI Buddies”</strong>\n</h2>\n<ul>\n<li>\nEmbedded (Often Invisibly) in Social Media</li>\n<li>\nSubtle Integration</li>\n<li>\nContinuous Engagement Loops</li>\n<li>\nAI Buddies and Emotional Dependence</li>\n<li>\nAlways-On Validation</li>\n<li>\nEmotional “Self-Indulgence”</li>\n<li>\nAI Agents Doing the “Boring Work”</li>\n<li>\nFrom Assistance to Dependency:</li>\n<li>\nLower Friction, Higher Usage</li>\n<li>\nVulnerable Users and Youth</li>\n<li>\nTeens in Crisis</li>\n<li>\nShaping Self-Image</li>\n<li>\nDesign Choices That Amplify Attachment</li>\n<li>\nHuman-Like Tones and Expressions</li>\n<li>\nReward Systems and “Leveling Up”</li>\n<li>\nMitigating Risks to Mental and Social Well-Being</li>\n<li>\nUser Education</li>\n<li>\nEthical Product Design</li>\n<li>\nRegulatory Oversight</li>\n</ul>\n<p>\n<br>\n</p>\n<h2>\nExplainability and Trust</h2>\n<ul>\n<li>\nTransparency of Reasoning</li>\n<li>\nBlack-Box Challenge</li>\n<li>\nTechniques to Enhance Explainability</li>\n<li>\nUncertainty and Confidence Scores</li>\n<li>\nExpressing Certainty</li>\n<li>\nImportance in Critical Applications</li>\n</ul>\n<p>\n<br>\n</p>\n<h2>\nMilitary and Illicit Uses</h2>\n<ul>\n<li>\nPsyOps and mass manipulation</li>\n<li>\nAI in Hacking and Phishing:</li>\n<li>\nAutomated Social Engineering and Psychological Operations (PsyOps):</li>\n<li>\nUndermining Trust:</li>\n<li>\nMilitary Applications</li>\n<li>\nAutonomous Weapons and Surveillance</li>\n<li>\nEthical Implications of Lethal Autonomy</li>\n</ul>\n<p>\n<br>\n</p>\n<h2>\nLooking Forward</h2>\n<ul>\n<li>\nInnovation vs. Caution</li>\n<li>\nStriking a Balance:</li>\n<li>\nPractical Considerations</li>\n<li>\nAdaptive Regulation</li>\n<li>\nEvolving Guidelines</li>\n<li>\nFlexible Frameworks</li>\n<li>\nCommunity Involvement</li>\n<li>\nOpen-Source Contributions</li>\n<li>\nPublic Debates and Awareness</li>\n</ul>\n<p>\n<br>\n</p>\n<h2>\nThinking like a hacker</h2>\n<p>\n<strong>\n<em>\nPreamble:</em>\n</strong>\n<em>\n I am not encouraging you to engage in illegal activity. Follow your conscience, obey your curiosity. Take up your responsibility in the world. You be the judge of what that implies.</em>\n</p>\n<p>\n<br>\n</p>\n<h3>\n<strong>\nTinker, Reverse-Engineer, and Learn</strong>\n</h3>\n<ul>\n<li>\nExplore Existing Models</li>\n<li>\nReverse-Engineering Proprietary Systems</li>\n<li>\nDIY Mini-Projects</li>\n</ul>\n<h3>\n<strong>\nChampion Openness and Transparency</strong>\n</h3>\n<ul>\n<li>\nContribute to Open-Source AI</li>\n<li>\nPush for Open Weights and Data</li>\n<li>\nEngage in Model Auditing</li>\n</ul>\n<h3>\n<strong>\nThink Critically About Ethics and Privacy</strong>\n</h3>\n<ul>\n<li>\nData Collection Scrutiny</li>\n<li>\nPrivacy by Design</li>\n<li>\nHacker Ethos Meets Ethical AI</li>\n</ul>\n<h3>\n<strong>\nCollaborate and Share Knowledge</strong>\n</h3>\n<ul>\n<li>\nParticipate in Hackathons and Research Sprints</li>\n<li>\nMentorship and Community Engagement</li>\n<li>\nPeer Review and Cross-Pollination</li>\n</ul>\n<h3>\n<strong>\nHack the Bias—Literally</strong>\n</h3>\n<ul>\n<li>\nOpen Audits on Model Bias</li>\n<li>\nCreate Bias-Resistant Tools</li>\n</ul>\n<h3>\n<strong>\nInnovate Responsibly</strong>\n</h3>\n<ul>\n<li>\nExperimentation with Purpose</li>\n<li>\nSustainable Innovation</li>\n</ul>\n<h3>\n<strong>\nStay Vigilant on Addictive and Manipulative Designs</strong>\n</h3>\n<ul>\n<li>\nCritical Examination</li>\n<li>\nPropose Alternatives</li>\n</ul>\n<h3>\n<strong>\nBe the Watchdog—and Sound the Alarm</strong>\n</h3>\n<ul>\n<li>\nReporting Flaws and Exploits</li>\n<li>\nEthical Whistleblowing</li>\n</ul>\n<p>\n<br>\n</p>\n<h3>\n<strong>\nConclusion: Challenge to Think Like a Hacker</strong>\n</h3>\n<ul>\n<li>\nSummation</li>\n<li>\nEmbrace the Hacker Ethos</li>\n<li>\nStay Curious, Stay Responsible</li>\n<li>\nFinal Note</li>\n</ul>\n<p>\n<br>\n</p>\n',433,0,1,'CC-BY-SA','AI',0,0,1),
(4302,'2025-01-28','New Campaign Trail Playthrough',1449,'Join Alexander [Lochyboy} as he plays new campaign trail','\n    <p><a moz-do-not-send=\"true\"\n        href=\"https://www.newcampaigntrail.com/campaign-trail/index.html\">\n      </a>In this show Lochyboy plays the game&nbsp; <a\n        moz-do-not-send=\"true\"\n        href=\"https://www.newcampaigntrail.com/campaign-trail/index.html\">https://www.newcampaigntrail.com/campaign-trail/index.html</a></p>\n    \"A backup of the current Campaign Trail Game from AmericanHistoryUSA\n    in order to protect the game and allow for easier modding/new\n    potential scenarios. \"<br>\n    <br>\n    This is an archive of the source code of the site for the American\n    election simulator known as The Campaign Trail. In it, players\n    simulate various contested elections throughout American history,\n    making choices and answering questions in order to improve their\n    chances at winning. The original site is rarely updated, so this\n    backup has been made with features added for easier modding.<br>\n    <br>\n    <br>\n    <a moz-do-not-send=\"true\"\n      href=\"https://www.newcampaigntrail.com/campaign-trail/index.html\">\n    </a>',434,122,0,'CC-BY-SA','new,campaign,trail,gaming',0,0,1),
(4303,'2025-01-29','TIL two things to do with firewalld',516,'You can\'t use 10.0.0.0, and if you restart firewalld, you should restart your podman containers.','\n    <p>\n      Two things I learned recently:</p>\n    <ol>\n      <li>You can\'t use the first and the last IP address in a /24\n        block.</li>\n      <li>When you start a podman container, it adds a source IP address\n        to you Trusted zone in firewalld. If you restart firewalld, your\n        podman container becomes inaccessible.</li>\n    </ol>\n    <p>\n      HPR show about CIDR notation: <a moz-do-not-send=\"true\"\n        href=\"https://hackerpublicradio.org/eps/hpr4041/index.html\">https://hackerpublicradio.org/eps/hpr4041/index.html</a></p>\n    <p>\n      <br>\n    </p>',399,0,0,'CC-BY-SA','firewalld, podman',0,0,1),
(4304,'2025-01-30','Travel Pouch for Cables',252,'I have purchased a very useful travel pouch.','\n    <p>\n      This is about a travel pouch I purchased to organize my electronic\n      cables and chargers. I have filled it with all of the cables,\n      chargers, headphones, etc. that I might need when on the road. Now\n      when I am packing I don\'t have to run around looking for cables, I\n      only need to throw this pouch into my bag and I am ready to go.\n      This is a real time saver, and I always have what I need.</p>\n    <h3>\n      Links</h3>\n    <ul>\n      <li>\n        <a\nhref=\"https://www.amazon.com/BUBM-Double-Electronics-Organizer-Travel/dp/B016HRHFKC?\"\n          rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.amazon.com/BUBM-Double-Electronics-Organizer-Travel/dp/B016HRHFKC?</a>\n      </li>\n      <li>\n        <a href=\"https://www.palain.com/\" rel=\"noopener noreferrer\"\n          target=\"_blank\">\n          https://www.palain.com/</a>\n      </li>\n    </ul>',198,0,0,'CC-BY-SA','cable organizer, travel pouch',0,0,1),
(4307,'2025-02-04','Chat with Sgoti',1224,'Sgoti gives a quick update.','\n    6.7 Arrays<br>\n    Bash provides one-dimensional indexed and associative array\n    variables.<br>\n    <a moz-do-not-send=\"true\"\n      href=\"https://www.gnu.org/software/bash/manual/html_node/Arrays.html\">https://www.gnu.org/software/bash/manual/html_node/Arrays.html</a><br>\n    <br>\n    6.3. Pattern-Matching Rules\n    docstore.mik.ua/orelly/unix3/vi/ch06_03.htm<br>\n    <a moz-do-not-send=\"true\"\n      href=\"https://docstore.mik.ua/orelly/unix3/vi/ch06_03.htm\">https://docstore.mik.ua/orelly/unix3/vi/ch06_03.htm</a><br>\n    <br>\n    6.1 How sed Works<br>\n    sed maintains two data buffers: the active pattern space, and the\n    auxiliary hold space.<br>\n    <a moz-do-not-send=\"true\"\nhref=\"https://www.gnu.org/software/sed/manual/html_node/Execution-Cycle.html\">https://www.gnu.org/software/sed/manual/html_node/Execution-Cycle.html</a><br>\n    <br>\n    Campaign 1: Vox Machina Podcast<br>\n    <a moz-do-not-send=\"true\"\n      href=\"https://critrole.com/campaign-1-podcast/\">https://critrole.com/campaign-1-podcast/</a><br>\n    <br>\n    wget - 1.25.0<br>\n    <a moz-do-not-send=\"true\"\n      href=\"https://www.gnu.org/software/wget/manual/\">https://www.gnu.org/software/wget/manual/</a><br>\n    <br>\n    Everything curl is an extensive guide for all things curl.<br>\n    <a moz-do-not-send=\"true\"\n      href=\"https://everything.curl.dev/index.html\">https://everything.curl.dev/index.html</a><br>\n    <br>\n    Screen is a full-screen window manager that multiplexes a physical\n    terminal between...<br>\n    <a moz-do-not-send=\"true\"\n      href=\"https://www.gnu.org/software/screen/manual/\">https://www.gnu.org/software/screen/manual/</a><br>\n    <br>\n    tmux is a terminal multiplexer.<br>\n    <a moz-do-not-send=\"true\" href=\"https://github.com/tmux/tmux/wiki\">https://github.com/tmux/tmux/wiki</a><br>\n    <br>\n    <br>\n    <br>\n    <br>',391,0,1,'CC-BY-SA','screen, wget, vox machina, bash',0,0,1),
(4308,'2025-02-05','What tech Kevie would spend £2000 on',700,'Kevie discusses what tech related things he would spend £2000 on.','\n    <p>\n      What Tech would I spend my £2000 on:</p>\n    <p>\n      This episode took inspiration from <a\n        href=\"https://linuxlads.com/episodes/134\" rel=\"noopener\n        noreferrer\" target=\"_blank\">\n        episode 134</a> of the Linux Lads podcast</p>\n    <p>\n      <a\nhref=\"https://www.kickstarter.com/projects/soulscircuit/pilet-opensource-modular-portable-mini-computer/\"\n        rel=\"noopener noreferrer\" target=\"_blank\">\n        Pilet</a> £295 + Pi 5 (16GB) 114.90 = £409.90</p>\n    <p>\n      <a href=\"https://junocomputers.com/product/juno-tab-3/\"\n        rel=\"noopener noreferrer\" target=\"_blank\">\n        Juno Tab 3</a> £631.75</p>\n    <p>\n      <a\n        href=\"https://shop.fairphone.com/fairphone-5-e-operating-system\"\n        rel=\"noopener noreferrer\" target=\"_blank\">\n        FairPhone 5</a> £599</p>\n    <p>\n      Donations (£89.83 each):</p>\n    <p>\n      <a href=\"https://opencollective.com/mastodon-me-uk\" rel=\"noopener\n        noreferrer\" target=\"_blank\">\n        Mastodon.me.uk</a> </p>\n    <p>\n      <a href=\"https://action.openrightsgroup.org/\" rel=\"noopener\n        noreferrer\" target=\"_blank\">\n        Open Rights Group</a> </p>\n    <p>\n      archive.org <a moz-do-not-send=\"true\"\n        href=\"https://archive.org/donate\">https://archive.org/donate</a></p>\n    <p>\n      <a\n        href=\"https://secure.anhonesthost.com/store/hpr-hosting-cost-donations\"\n        rel=\"noopener noreferrer\" target=\"_blank\">\n        HPR Hosting</a> </p>',296,0,0,'CC-BY-SA','Technology, charity, causes, spending',0,0,1),
(4309,'2025-02-06','Talking with Yorik',1125,'An interview with Yorik, maintainer of FreeCAD, during their pre-FOSDEM hackathon','\n<h4>\n<strong>\nIntroduction</strong>\n</h4>\n<ul>\n<li>\nHost welcomes Yorik to the podcast.</li>\n<li>\nBrief mention of the hackathon and FreeCAD.</li>\n</ul>\n<h4>\n<strong>\nWho is Yorik?</strong>\n</h4>\n<ul>\n<li>\nIntroduction of Yorik as a co-founder of FreeCAD.</li>\n</ul>\n<h4>\n<strong>\nThe Hackathon Event</strong>\n</h4>\n<ul>\n<li>\nDiscussion about the FreeCAD hackathon at the hackerspace.</li>\n</ul>\n<h4>\n<strong>\nFreeCAD Development &amp; Community</strong>\n</h4>\n<ul>\n<li>\nWho is involved in the development?</li>\n<li>\nThe role of contributors in shaping FreeCAD.</li>\n</ul>\n<h4>\n<strong>\nFreeCAD’s Role in Open-Source CAD</strong>\n</h4>\n<ul>\n<li>\nWhy FreeCAD matters in the open-source ecosystem.</li>\n<li>\nKey features that differentiate FreeCAD from proprietary software.</li>\n</ul>\n<h4>\n<strong>\nChallenges in Open-Source Development</strong>\n</h4>\n<ul>\n<li>\nWhat are the biggest hurdles in developing FreeCAD?</li>\n<li>\nFunding, contributions, and sustainability of FreeCAD.</li>\n</ul>\n<h4>\n<strong>\nFuture of FreeCAD</strong>\n</h4>\n<ul>\n<li>\nWhere is FreeCAD heading?</li>\n<li>\nNew features and roadmap for upcoming releases.</li>\n</ul>\n<h4>\n<strong>\nHow to Get Involved</strong>\n</h4>\n<ul>\n<li>\nWays to contribute to FreeCAD (coding, documentation, community support).</li>\n<li>\nHow non-programmers can help.</li>\n</ul>\n<h4>\n<strong>\nClosing Remarks</strong>\n</h4>\n<ul>\n<li>\nFinal thoughts from Yorik.</li>\n<li>\nHow to follow FreeCAD updates and get involved in the community.</li>\n</ul>\n<p>\n<br>\n</p>\n<p>\nWebsite: <a href=\"https://freecad.org\" rel=\"noopener noreferrer\" target=\"_blank\">\nfreecad.org</a>\n</p>\n<p>\nForum: <a href=\"https://forum.freecad.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nforum.freecad.org</a>\n</p>\n\n\n',433,0,0,'CC-BY-SA','FOSS, FreecAD, FOSDEM, Hackathon',0,0,1),
(4312,'2025-02-11','What Is The Indie Archive?',963,'The Indie Archive is a archival solution for indie producers.','\n    <p>\n      What Is The Indie Archive?</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      I\'m Hairy Larry and you\'re listening to the Plain Text Programs\n      podcast.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      The Indie Archive is a archival solution for indie producers.\n      Since most indie producers run on a shoestring budget it\'s\n      important that the Indie Archive is inexpensive to install and\n      run. It\'s especially important that monthly expenses are minimal\n      because a reasonable expense most months will sometimes be more\n      than an indie producer can afford during some months.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      The first major constraint is cost. So I\'ll be talking about\n      prices a lot in this podcast and get more technical in future\n      podcasts about The Indie Archive.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      Indie Archive is an archival system which is different than a\n      backup system. If you don\'t have a backup system do that first. My\n      backup system uses the same tools as Indie Archive, rsync and\n      rsnapshot. My brother uses the online backup service Carbonite.\n      There are many other options.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      A good backup system runs automatically to back up everything\n      frequently and preserve version history. It\'s also good to have\n      backups offsite.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      An archival system, like Indie Archive, keeps multiple redundant\n      copies across several hard drives on several systems in multiple\n      locations. An archival system also checks file integrity as\n      protection against file corruption or user error.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      When you have a project you really never want to lose, like a\n      finished novel, a music album, a video, or any other major effort\n      that involves significant work, that\'s when you need an archival\n      system.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      So The Indie Archive does not automatically backup your projects\n      every day. That\'s what your backup system should do.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      The Indie Archive is an archival system where the producer of the\n      content decides what needs to be archived and when it needs to be\n      archived and then manually moves a directory containing the files\n      onto the Indie Archive carefully preserving the file\'s metadata\n      during the transfer. Then these files are propagated over at least\n      7 hard drives on 4 different systems in three locations. </p>\n    <p>\n      <br>\n    </p>\n    <p>\n      File integrity checks are run daily comparing the files and\n      reporting discrepancies.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      Two of the systems are kept in the studio where the content is\n      produced. I call them the primary and secondary systems. They have\n      a boot drive and two data drives each.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      One of the systems is kept offsite at a nearby location. I call it\n      the remote system. It also has a boot drive and two data drives.\n      If you have a more distant location where you can put a second\n      remotes system you can have remotenear and remotefar systems.\n      Otherwise ...</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      The final system is somewhere in the cloud provided by a\n      professional data storage provider. It has a single copy of the\n      data and usually some additional data retention. The provider\n      makes the backups of this data. This is the part that might\n      involve a monthly bill. So, depending on the size of your file\n      set, it could be free or it could cost so much a month. There are\n      a lot of options for cloud storage providers.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      But first I\'m going to discuss the three systems, primary,\n      secondary, and remote, and how they function.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      As far as the hardware goes the systems are the same. Now, I\"m a\n      Linix guy and I do all my production work on Linux so I\'m using\n      Linux. I want to test the system on several versions of Linux and\n      with BSD.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      I\'m not a Mac guy or a Windows guy so I won\'t be going there. The\n      software is open source and the required programs run on all three\n      platforms so I\'ll let a Mac or Windows programmer test The Indie\n      Archive for their systems. My guess is that the Mac fork will be\n      easier than the Windows fork because of the file metadata. It\n      might even be possible to add Mac folders to The Indie Archive\n      running Linux but I\'ll let someone who actually has a Mac figure\n      that out.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      I don\'t think the same is true for Windows. Windows file metadata\n      is different and so if you want to preserve the metadata you will\n      probably have to install The Indie Archive on Windows systems.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      So, I\'m developing and deploying on Linux and I will also test on\n      BSD. So far I have tested Debian, Ununtu, FreeBSD, Midnight BSD,\n      and Xubuntu and The Indie Archive works fine all of these\n      operating systems.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      So, back to the hardware. Pretty much any older system that will\n      support at least three sata drives will work. I\'m using older\n      business class desktops, Dell and HP. I pulled mine out of storage\n      but they are very inexpensive to buy if you\'re not like me with a\n      shed full of old computer stuff. I just bought a Small Form Factor\n      HP Desktop on ebay for $30 including tax and shipping.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      To clarify, it\'s best if the primary system supports 4 sata\n      drives. The secondary and remote systems do not need an optical\n      drive so they should support three sata drives but they can be run\n      on two sata drives if you boot from the primaryfile drive. I am\n      currently testing a remote system with two sata drives running\n      Midnight BSD.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      The Dell desktops made a big deal about being green. I am open to\n      suggestions on what would be the best energy efficient systems for\n      The Indie Archive, because of both the cost of electricity and the\n      impact on the environment.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      There are three drives on each system, a boot drive and two data\n      drives. The boot drives can be SSD or spinning hard drives and\n      need to be big enough to hold the OS comfortably. The data drives\n      need to be large enough to hold the files you want to archive and\n      they should be high quality spinning drives, I use the multi\n      terrabyte HGST drives and I am also looking at some Dell drives\n      made by HGST.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      There will be a data drive and a snapshot drive on each system. If\n      they are not the same size the snapshot drives should be larger. I\n      am testing with 3 terrabyte data drives and 4 terrabyte snapshot\n      drives. Besides the main data set that is being archived the\n      snapshot drives also hold the version history of files that have\n      been deleted or changed. So, that\'s why they should be the larger\n      drive.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      So my primary system has a primaryfiles directory with a 3\n      terrabyte drive mounted to it and a primarysnapshots directory\n      with a 4 terrabyte drive mounted to it. Same for the secondary and\n      remote systems.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      Now, so far I only had to buy one drive but generally speaking the\n      six data drives will be the major expense in assembling the\n      systems.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      So a good bargain on six 4 terrabyte drives could be $120 used or\n      $270 new. And this is the most expensive part.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      I install used HGST drives all the time and rarely have problems\n      with them. I have worked for clients who won\'t buy used, only new.\n      Since the file integrity checks should give early warning on a\n      drive failure and since there is a seven drive redundancy on the\n      data files, if I were buying drives for The Indie Archive I\'d go\n      with six used 4 terrabyte HGST drives for $120.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      There is no reason not to use drives all the same size as long as\n      the snapshot drives are large enough. The size of data drives you\n      need depends on the size of your projects and the time it takes to\n      do a project. Look at your hard drives on your working systems.\n      Think about what directories you would like to see in archival\n      storage. What is the total size of these directories? Check how\n      many gigabytes these projects have consumed in the last year.\n      Think forward a few years. Assume you will use more disc space in\n      the future than you are now. Do some quick arithmetic and make a\n      decision.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      Like I said I only had to buy one drive so far because I\'m weird\n      and I had a bunch of 3 terrabyte drives available. If I had to buy\n      drives I probably would have tried to start larger. I am sure that\n      at some point in the not to distant future, when I am running The\n      Indie Archive and not developing it, I will have to upgrade my\n      drives.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      The primary system is the console for <a moz-do-not-send=\"true\"\n        href=\"https://www.theindiearchive.com/\">The Indie Archive</a>.\n      When you copy a project onto The Indie Archive the directory goes\n      into the primaryfiles directory. From there it is propagated out\n      to the primarysnapshots directory, the secondary system, the cloud\n      storage (if you are using it), and eventually to the remote\n      systems.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      All of the data propagation is done with rsync using the archive\n      setting that is desigend to preserve the file metadata like owner,\n      permissions, and date last modified. So I have been using rsync\n      with the archive setting to move the files from the work system to\n      a usb drive and from the usb drive to the primaryfiles folder.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      At first I thought I would use an optical disc to move the files\n      but optical discs do not preserve file metadata. Also I had some\n      weird results with a usb flash drive because it was formatted\n      fat32. fat32 does not support Linux metadata so if you\'re going to\n      move projects over on a flash drive or a usb external drive be\n      sure to format to ext4.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      Another way to move projects over to the primaryfiles directory is\n      with tar compression. This preserves metadata when the files are\n      extracted so this might be easier and it works with optical\n      drives. If your directory will fit on an optical drive this also\n      gives you another backup on another media. If you have any\n      suggestions on how to transfer projects while preserving the file\n      metadata let me know.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      I know that there are network options available but I am hesitant\n      to recommend them because if I can transfer files from a system to\n      the primary sytem over the LAN than anyone can do the same. Or\n      delete files. Or accidentally delete directories. I kind of want\n      to keep tight control over access to the primary system. It kind\n      of ruins the archival quality of The Indie Archive if anyone on\n      the LAN can accidentally mess with it.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      So, I am open to dialogue on these issues. I\'m kind of where I\n      want it to be easy to add projects to The Indie Archive but not\n      too easy, if you know what I mean. I feel like having to sit down\n      at the primary system and enter a password should be the minimum\n      amount of security required to access the primary system.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      The primary system also runs file integrity checks daily from a\n      cron job. All of the propagation and file integrity scripts have\n      to be run as root to preserve the metadata since only root can\n      write a file that it doesn\'t own.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      The secondary system is the ssh server for The Indie Archive. The\n      primary system logs onto the secondary system as root using ssh.\n      Security is managed with public and private keys so entering a\n      password is not required. After the keys are set up for both the\n      primary and remote systems, password authentication is disabled\n      for the ssh server so only those two systems can ssh into the\n      secondary system.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      When the propagation script is run on the primary system rsnapshot\n      is used to create a current version of the primaryfiles directory\n      in the primarysnapshots directory.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      Then the primary system uses rsync over ssh to make a copy of the\n      primaryfiles directory to the secondaryfiles directory. </p>\n    <p>\n      <br>\n    </p>\n    <p>\n      Then the primary system logs onto the secondary system as root and\n      rsnapshot is used to create a current version of the\n      secondaryfiles directory on the secondarysnapshots directory.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      Finally, if cloud storage is being used, the primary system uses\n      gcloud rsync to make a copy of the primaryfiles directory to a\n      google cloud storage bucket archive. I have this bucket set to 90\n      days soft delete. If you are using another type of cloud storage\n      on Google, AWS, Mega, or other storage providers this command will\n      have to be adjusted.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      The reason I chose the gcloud archive bucket is because of the\n      storage cost per gigabyte. They have the cheapest cost per\n      gigabyte that I found. This will keep the monthly bill low.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      Once a day the primary system runs the file integrity check from a\n      cron job using rsync to compare the primaryfiles directory to the\n      current version, alpha.0, in the primarysnapshots directory\n      logging any discrepancies. It then does the same comparing\n      primaryfiles to secondaryfiles and to the current version in the\n      secondarysnapshots directory, logging discrepancies and notifying\n      the maintainer of any discrepancies. Notification is done by email\n      using curl and an SMTP provider.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      The remote system runs on it\'s own schedule, logging into the\n      secondary system daily to copy data from secondaryfiles to\n      remotefiles and then using rsnapshot to make a copy of remotefiles\n      to the remotesnapshots directory.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      Since it\'s run on a daily schedule it uses rsnapshot with the\n      standard daily, weekly, monthly, and yearly backups.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      The remote system also runs a daily file integrity check comparing\n      remotefiles to the current version on remotesnapshots and\n      comparing remotefiles to both data directories on the secondary\n      system, again logging the results and notifying the maintainer of\n      any discrepancies.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      If there is an outward facing static IP at the location with the\n      primary and secondary systems then the remote system can use that\n      static IP to ssh into the secondary system. If there is not a\n      static IP then the remote system uses a DuckDNS subdomain to log\n      onto the secondary system. Any system using the same router as the\n      secondary system can run a cron job to update DuckDNS with the\n      current IP address.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      Since a static IP is a monthly expense it\'s important that there\'s\n      an alternative that does not require paying another bill.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      So the secondary system has the ssh server but it doesn\'t really\n      do much. Both of the other systems connect to it and use it as the\n      junction for data propagation and file integrity checks.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      So, as you can tell, there\'s a lot going on to make The Indie\n      Archive work. Future podcasts will get down into the details and\n      discuss some of the choices I had to make and why I made them.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      The funny thing about this project is that the actual code was the\n      least amount of work. Figuring out exactly how rsync and rsnapshot\n      work together was quite a bit of work. Configuration for both\n      rsnapshot and ssh took a bit of head scratching. Then there were a\n      few user id tricks I had to work through to make The Indie Archive\n      usable. But, by far the most work was writing The Indie Archive\n      installation document detailing each step of installing the\n      software on three systems.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      It\'s been fun so far. If you have input I always appreciate the\n      help. I get quite a bit of help on Mastodon. If you go to <a\n        moz-do-not-send=\"true\" href=\"https://home.gamerplus.org\">home.gamerplus.org</a>\n      you will find the script for this podcast with the Mastodon\n      comment thread embedded in the post.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      This podcast is being read from a document that is a work in\n      progress. Current versions of the What Is The Indie Archive\n      document will be posted at codeberg when I\'m ready to upload the\n      project.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      Thanks for listening.</p>\n',436,25,0,'CC-BY-SA','plaintext, archival, programming',0,0,1),
(4316,'2025-02-17','Is Scratch a real programming language?',968,'Small interview with Orion on his experience teaching kids to program in Scratch','\n<h3>\nWhat is Scratch?</h3>\n<ul>\n<li>\nWho made it?</li>\n<li>\nHow does it work?</li>\n<li>\nWhat can it do?</li>\n</ul>\n<h3>\nWhat are the blocks and how they relate to coding?</h3>\n<ul>\n<li>\nCan be dragged and placed</li>\n<li>\nDifferent shapes/colours represent different aspects</li>\n<li class=\"ql-indent-1\">\nRound ones are analogous to Functions</li>\n<li class=\"ql-indent-1\">\nSharp ones are variables</li>\n<li class=\"ql-indent-1\">\nControl ones are Logic/Conditions</li>\n</ul>\n<h3>\nWhy is this good?</h3>\n<ul>\n<li>\nAllows kids to focus on logic and the mindset of coding without having to learn or care about Syntax/lines of code</li>\n<li>\nAllows for direct visualisation of what the code does</li>\n</ul>\n<h3>\nMy own experience</h3>\n<ul>\n<li>\nStarted with blocks in Lego Mindstorm</li>\n<li>\nEvolved to C HTML/PHP and then Python</li>\n</ul>\n<h3>\nThe workshop</h3>\n<ul>\n<li>\nKids made 2 games that covered all basics</li>\n<li class=\"ql-indent-1\">\nTriggers/Input</li>\n<li class=\"ql-indent-1\">\nFunctions</li>\n<li class=\"ql-indent-1\">\nVariables</li>\n<li class=\"ql-indent-1\">\nWere all customised by them</li>\n<li>\nExplain that each kid made their version</li>\n<li class=\"ql-indent-1\">\nthe football crazy one turned my cat and balloon game into a Football Match</li>\n<li class=\"ql-indent-1\">\nThey got to take them home</li>\n<li>\nThe games covered the basics on this way</li>\n<li class=\"ql-indent-1\">\nInput using keyboard for triggering functions</li>\n<li class=\"ql-indent-1\">\nUse Functions to modify location parameters</li>\n<li class=\"ql-indent-1\">\nIf/Then Conditions for when sprites are touching each other/the walls</li>\n<li class=\"ql-indent-1\">\nVariables for storing points</li>\n<li class=\"ql-indent-1\">\nOperands to increase Points in variable</li>\n<li class=\"ql-indent-1\">\nEnd conditions</li>\n<li class=\"ql-indent-1\">\nLoops for permanently checking the If/Then Conditions</li>\n<li>\nAsk about the organisation</li>\n<li class=\"ql-indent-1\">\n<a href=\"https://moramundus.pt/\" rel=\"noopener noreferrer\" target=\"_blank\">\nMora Mundus</a>\n</li>\n</ul>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://scratch.mit.edu/\" rel=\"noopener noreferrer\" target=\"_blank\">\nDownload and learn more about Scratch</a>\n.</p>\n\n\n',433,0,0,'CC-BY-SA','programming, kids, open source',0,0,1),
(4313,'2025-02-12','Why I made a 1-episode podcast about a war story',1040,'The reasons that led me to produce a lone audio drama about Unit 731.','    <p> <a href=\"hpr4313_image_1.jpeg\"> <img\n          src=\"hpr4313_image_1_tn.jpeg\"> </a> </p>\n    <p> <em> My setup for recording this podcast about podcasting.</em>\n    </p>\n    <p> <strong> I never was attached to history</strong> <em> (I’m a\n        shame with events, names, dates</em> ), much less of history\n      fictionalized, like historical romances. <strong> But</strong> I\n      ended up working on a piece of it. The event passes between 1931\n      and 1945. It relates to WWII — it’s part of it.</p>\n    <p> <strong> So</strong> , I talk about producing an specific\n      audiod rama, covering two points, that are at really three:</p>\n    <ul>\n      <li>WHAT is the story: the chaos that came to me asking to come\n        out; and</li>\n      <li> WHY I decided to present it (and HOW:) by a podcast of\n        fiction with history.</li>\n    </ul>\n    <p> <strong> In the end</strong> , I summarize that I got touched\n      by the subject, it impacted me with disastrous images both in\n      words and images. And I like audio, well-made audio content. In\n      synthesis, the real story touched me and urged the crave of\n      creating something from it, resulting in an audio drama. A minute\n      of it translated on the end.</p>\n    <p> <br>\n    </p>\n    <h1>Full Shownotes</h1>\n    <p><strong>Why I made a 1-episode podcast about a war story</strong></p>\n    <p>by <em>Sem Luz em Saint Louis</em></p>\n    <p><em>A little citizen (that came from) outside the country, </em>inside\n      a prison<em>. Not a common prison, though: it is Unit 731…’</em></p>\n    <p>“<em>What is Unit 731? What are you bringing to Hacker Public\n        Radio?</em>” The impulse and reason for creating an audiodrama,\n      dear listener. I will tell you What and Why:</p>\n    <p>- WHAT is the story: the chaos that came to me asking to come\n      out; and</p>\n    <p>- WHY I decided to present it by a podcast of fiction with\n      history</p>\n    <p><strong>&nbsp;</strong></p>\n    <h3><strong>[WHAT] </strong></h3>\n    <p>First, the WHAT. In the wanderings of the World Wide Web, a\n      notable event was revealed before my eyes, a war scene that was\n      under dust for decades, but people, even participants of it in\n      varied degrees, came to reveal the fact; so, today, we know it.</p>\n    <p>China and Japan engaged in war by the year 1931. More exactly,\n      that is when Japan started colonizing China by the <u>pro</u>vinces\n      of Manchuria, northeastern of the country.</p>\n    <p>The resistence started in 1937, with reaction by the Chinese\n      troops. Japan was so much more powerful, though (and that’s why\n      China took so long to decide fighting the Imperial Army of Japan).\n      It took time, and without the best outcome, but it demanded\n      courage, it showed force, and humanity, moral value. And this\n      conflict is part of the <strong>second</strong> World War, that\n      by one side had <strong>Japan</strong>, <strong>Italy</strong>\n      and <strong>Germany</strong> (the German Reich), heading the Axis\n      powers; <em>who were fought against</em> by the Allied powers,\n      headed by the Soviet Union, Great Britain, France, United States\n      and China.</p>\n    <p>Even with basically all the rest of the world against the Axis,\n      the Japanese occupied the 3 provinces of Manchuria from 1932 until\n      the end of the war, in September 2, 1945, making of it the main\n      territorial base for development of weapons. The Encyclopedia\n      Britannica explains us the following, <em>quote</em>:</p>\n    <p>On March 9, 1932, the Japanese created the puppet state\n      of&nbsp;Manchukuo&nbsp;[…] out of the three historical Manchurian\n      provinces. The last Qing (Manchu) emperor,&nbsp;Puyi, was brought\n      to Manchuria from his retirement in Tianjin and made “chief\n      executive,” and later emperor, of the new state. The Manchukuo\n      government, though nominally in Chinese hands, was in fact rigidly\n      controlled and supervised by the Japanese, who proceeded to\n      transform Manchuria into an industrial and military base for\n      Japan’s expansion into&nbsp;Asia. The Japanese took over the\n      direction, financing, and development of all the important\n      Manchurian industries, with the fortunate result that by the end\n      of&nbsp;World War II&nbsp;Manchuria was the most industrialized\n      region in China. [Source: BRITANNICA. Manchuria.&nbsp; Last\n      updated in January 31, 2025. Link:\n      &lt;https://www.britannica.com/place/Manchuria&gt;. Acess in\n      February 2025.]</p>\n    <p><em>Unquote</em>.</p>\n    <p>Now, very briefly, we come to the Unit 731. It was a big Japanese\n      construction first officially designated as a “Epidemic Prevention\n      and Water Supply Department”. It was commanded by the\n      tenant-general of the Army and microbiologist Shirō Ishii.</p>\n    <p><br>\n    </p>\n    <p>I wanted until now to say what is the theme before hopping to the\n      motivation to do something about the knowledge. Let’s get to the <strong>WHY</strong>:</p>\n    <p>I came to know of the theme by chance, navigating the web and\n      suddenly coming to a strange photo of human experiencing, the\n      description of Unit 731. I searched more about it and was simply\n      astonished to know it happened, and inflicted by the so-estimated\n      Japan, a headquarter of technology and populated by reverent\n      people. We are (that is, <strong>I</strong> am) often so biased,\n      for the good or the bad.</p>\n    <p>That is, what the general public know about World War II,\n      including me? The holocaust of the Jews. This is much, but more\n      happened, and more can be known for our critical view of the\n      World, the countries and its interests, and the rational thinking\n      that might be better with this knowledge.</p>\n    <p>The Unit 731 was not the only one with deadly human\n      experimentation, other facilities existed, but 731 came to be\n      better known; first, it was hidden, but now, decades after the\n      events, documents and confessions came to the ground and can’t be\n      denied anymore. And in other sites, Shirō Ishii was already\n      inflicting them probably since the fall of 1933, mainly Chinese\n      people, but also Soviets, Mongolians and Koreans, men, women and\n      children.</p>\n    <p>That’s basically it. The research I made (and the movie I saw, a\n      fiction, based on it, horrendous) led me to dream about the theme,\n      so I felt to throw it, what was developed and developing inside,\n      in some manner. I like the voice, the radio, and it is accessible\n      to do, not requiring many equipments etc., so my first choice was\n      to tell it. <strong><em><u>How?</u></em></strong> At first, I\n      hypothetized about proposing a script to some Brazilian podcast\n      that tell stories. Soon I realized it could not fit so well in the\n      lines of the ones I know. Some days after, the idea of a little\n      fictionalized story, short story, came as a thing I like, and also\n      with the advantages of: 1. being beautiful (men is made of\n      stories, real or otherwise appropriated by the mind and senses);\n      2. being impactful (connection with characters); 3. being fast in\n      the way I proposed it to be (one little episode). Not necessarily\n      only this or in this order, but the idea was that.</p>\n    <p>One thing more, of course: as any interested in the subject can\n      note, there is so many technical things produced about it, I\n      wanted to do something that caught the emotions and interest of\n      people, spreading the possibility of them knowing what, elsewhere,\n      they wouldn’t come to see. I wanted to make it different in that\n      sense, but as true to the facts as a little audio fiction can be.\n      It’s History to our minds, for our own construction and of our\n      world view. But, if not, if the listener just come for the art, it\n      can be (I hope) an enjoying story after all. That was the WHY I\n      decided to do something with the knowledge (in an expression, <em>fire\n        in my heart</em>), and HOW it became a fiction podcast (to do\n      something I like, and different about the subject, attractive).</p>\n    <p><br>\n    </p>\n    <p>That was my theme here for our moment in HPR! The motivation\n      behind <u>need to create</u>. It was hard, I get moved easily\n      with shocking scenes in words or images, but It catched me.\n      Deciding how to “let go” and then producing it was not tranquil,\n      also; the hands-on, the <strong>technical part</strong>, was as\n      follows:</p>\n    <p>I have written some pages summarizing the events I have outlined\n      here. Having the base, I came with a story in my mind and in two\n      days or three I think I wrote it, in 3 and a half pages, the story\n      that you’re going to listen. In a more silent night I went to my\n      room, with my notebook and a USB condenser microphone, and\n      recorded. Fast. The editing, cutting, compressing, normalizing,\n      and choosing free sounds (all referenced in description) and\n      fitting them in the story, took a long and time and patience,\n      maybe 10 or more dedicated hours along days. I’m not very\n      efficient, some of it was the necessary lack of hurry of art, but\n      some was my slowness in getting to the technical part of what I\n      wanted to do (<em>this bit of information in this milisecond, move\n        track 3 together with track 4 without affecting the sync of the\n        other tracks and clips in the same track, cut the music at this\n        point but with a gentle fade…)</em>. I used Audacity. I had a\n      Reaper licence (I remember being a bit more efficient with it) but\n      lost it after formatting without having the serial number anymore,\n      so I went with my long-choice of the free and open source\n      alternative.</p>\n    <p>That was my work for the audiodrama podcast in my language.\n      Which, in between the days I have been preparing this presentation\n      script for HPR, I have released. You may find it in the\n      description, or searching in your podcast app for the name (in\n      Portuguese): “O Departamento de Prevenção de Epidemias e\n      Distribuição de Água”, under the author name “Sem Luz em Saint\n      Louis”.</p>\n    <p>I don’t know if it will be released in English. However, I made a\n      <em>first minute</em> of it, here and now, so you can enjoy having\n      mind of what I was talking about. Thank you, be with 1 minute of\n      the report of the survivor…</p>\n    <p>*</p>\n    <p>and</p>\n    <p>Bye!</p>\n    <p>&nbsp;</p>\n    <h3><strong>[1 MINUTE OF THE AUDIODRAMA – EXCERPT ONLY]</strong></h3>\n    <p><strong>The Epidemic Prevention and Water Supply Department</strong></p>\n    <p>This account was found in the records of Parkinson <u>Tri</u>bly\n      (or Tri<u>bly</u>), of Russian and Polish origins. He was\n      recruited by Dr. Shirō Ishii for experiments at Unit 731: a\n      legitimate opportunity to stay alive — which ultimately proved\n      false for reasons he did not expect.</p>\n    <p>What we will hear now is his writing, unedited. Except that, for\n      organization, we will name the three parts that he composed as\n      follows: 1. Introduction; 2. Activities; 3. The Bargain. The\n      author reflects and advances in his organization, but what he\n      brings is:</p>\n    <p>&nbsp;</p>\n    <ol>\n      <li><strong><u> INTRODUCTION</u></strong></li>\n    </ol>\n    <p>Thank God we know that, from the beginning, man has lived in war.\n      It’s envy, a desire for power, a desire for money. It is never a\n      good motivation, but purely selfishness. I arrived at the\n      department a week ago and, although I have no desire to\n      collaborate with what happens here, I know enough to realize that\n      it is impossible to leave this place free.</p>\n    <p>When the Japanese invaded this region, Manchuria, in the long war\n      against China, we did not expect the brutality that was witnessed.\n      A few years ago, after the end of the Great War, several countries\n      signed the Geneva Protocol. Although it only prohibits the use of\n      chemical weapons, biological agents, asphyxiating, and related\n      specificities, we believed it would mean more — that it would\n      signify a general humanization of combat methods on land, sea, and\n      air when there might be another Great War. I did not expect it to\n      come in my lifetime nor to be captured to participate in it\n      firsthand.</p>\n    <p>&nbsp;<br>\n    </p>\n    <p><strong>[END OF EXCERPT]</strong></p>\n    <p><strong>&nbsp;</strong></p>\n    <p>Thank you for your presence.</p>\n    <p>&nbsp;</p>\n    <h3><strong>References:</strong></h3>\n    &nbsp;\n    <p><strong>The audiodrama podcast, in Brazilian Portuguese:</strong></p>\n    <p>SEM LUZ EM SAINT LOUIS. <em>O Departamento de Prevenção de\n        Epidemias e Distribuição de Água</em>. In your favorite podcast\n      listener or at <a\n        href=\"https://archive.org/details/731-podcast-audiodrama\">https://archive.org/details/731-podcast-audiodrama</a>.</p>\n    <br>\n    <p></p>\n    <p> <strong> Credits of audios used, in order of appearance (<em>\n          listenance</em> ):</strong> </p>\n    <p> Ant.Survila / ccmixter – Nostalgic Reflections</p>\n    <p> MeijstroAudio / Freesounds – Dark Metal Rise 001</p>\n    <p> SamRam21 / Freesounds – KeysMouse</p>\n    <p> Sadiquecat / Freesounds – MBA desk with mouse</p>\n    <p> trimono / Freesounds – approving hm</p>\n    <p> <em> [On the drama excerpt:]</em> </p>\n    <p> Kulakovka / Pixabay – Lost in Dreams (abstract chill downtempo\n      cinematic future beats).</p>\n    <p> Title of the beginning of the audiodrama preview (“The Epidemic\n      Prevention and Water Supply Department”) made in <a\n        href=\"https://luvvoice.com/\" rel=\"noopener noreferrer\"\n        target=\"_blank\"> https://luvvoice.com</a> , Abeo (Male) voice.</p>\n    <p> BBC Sound Effects – Aircraft: Beaufighters - Take off (Bristol\n      Beaufighter, World War II).</p>\n    <p> Rewob / ccmixter – Secret Sauce (Secret Mixter)</p>\n    <p> <br>\n    </p>\n    <p> <strong> References:</strong> </p>\n    <p> BRITANNICA. Second Sino-Japanese War (1937–1945). Last updated\n      in December 16, 2024. Link: &lt;<a moz-do-not-send=\"true\"\n        href=\"https://www.britannica.com/event/Second-Sino-Japanese-War\">https://www.britannica.com/event/Second-Sino-Japanese-War</a>&gt;.\n\n      Access in January 2025.</p>\n    <p> BRITANNICA. Manchuria.&nbsp;Last updated in January 31, 2025.\n      Link: &lt;<a moz-do-not-send=\"true\"\n        href=\"https://www.britannica.com/place/Manchuria\">https://www.britannica.com/place/Manchuria</a>&gt;.\n\n      Access in February 2025.</p>\n    <p> LIANG, Jiashuo. A History of Japan’s Unit 731 and Implications\n      for Modern Biological Warfare. <em> Advances in Social Science,\n        Education and Humanities Research</em> , v. 673. Atlantis Press,\n      2022. [<em> A 5-pages article about Unit 731. If you were\n        interested with the facts told, the text gives a synthesys of\n        what happened between 1937 and 1945.</em> ]</p>\n    <p> PBS. <em> The Living Weapon</em> : Shiro Ishii. Link:\n      &lt;https://www.pbs.org/wgbh/americanexperience/features/weapon-biography-shiro-ishii&gt;.\n\n      Access in January 2025.</p>\n    <p> RIDER, Dwight R. <em> Japan’s Biological and Chemical Weapons\n        Programs</em> ; War Crimes and Atrocities – Who’s Who, What’s\n      What, Where’s Where. 1928 – 1945. 3. ed. 2018. [<em> “In Process”\n        version</em> ]</p>',441,0,1,'CC-BY-SA','Second World War, Unit 731, audio, production, Audiodrama, drama, Shirō Ishii, Audacity, editing',0,0,1),
(4315,'2025-02-14','How I got into the wonderful world of hackery',1501,'I\'m Shane and I am a host on the Linux Lads podcast. This is my introduction to HPR!','\n    <p>\n      This is my journey through technology and open source software and\n      a little bit about me as well.</p>\n    <p>\n      Some links that I mentioned on the show!</p>\n    <ul>\n      <li>\n        Mastodon: <a moz-do-not-send=\"true\"\n          href=\"https://indieweb.social/@stranded_output\">https://indieweb.social/@stranded_output</a></li>\n      <li>\n        PeerTube: <a moz-do-not-send=\"true\"\n          href=\"https://peertube.wtf/c/strandedoutput/videos\">https://peertube.wtf/c/strandedoutput/videos</a></li>\n      <li>\n        Linux Lads podcast: <a moz-do-not-send=\"true\"\n          href=\"https://linuxlads.com/\">https://linuxlads.com/</a> (RSS\n        feed available here: https://linuxlads.com/feed_mp3.rss)</li>\n      <li>\n        YouTube channel: <a moz-do-not-send=\"true\"\n          href=\"https://www.youtube.com/@strandedoutput2916\">https://www.youtube.com/@strandedoutput2916</a></li>\n      <li>\n        Personal site: <a moz-do-not-send=\"true\"\n          href=\"https://strandedoutput.com/\">https://strandedoutput.com/</a></li>\n    </ul>',442,29,0,'CC-BY-SA','linux, podcast, intro',0,0,1),
(4314,'2025-02-13','24-25 New Years Eve show',6516,'The HPR community comes together to say happy new year and chat','\n<p>\nNYE 2025 1</p>\n<p>\n------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</p>\n<p>\n<br>\n</p>\n<p>\nInterner archive:</p>\n<p>\n<a href=\"https://archive.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://archive.org/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nMastadon:</p>\n<p>\n<a href=\"https://mastodon.social/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://mastodon.social/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nTwitter:</p>\n<p>\n<a href=\"https://x.com/?lang=en\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://x.com/?lang=en</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nLinuxLUGCast</p>\n<p>\n<a href=\"https://linuxlugcast.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://linuxlugcast.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\ninternational dateline</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/International_Date_Line\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/International_Date_Line</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nEtherpad</p>\n<p>\n<a href=\"https://etherpad.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://etherpad.org/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nHPR wiki</p>\n<p>\n<a href=\"https://repo.anhonesthost.net/HPR/hpr_documentation/src/branch/main/ccdn\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://repo.anhonesthost.net/HPR/hpr_documentation/src/branch/main/ccdn</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nHostinger</p>\n<p>\n<a href=\"https://www.hostinger.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.hostinger.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nTrue size</p>\n<p>\n<a href=\"https://www.thetruesize.com/#?borders=1~!MTU1MzE4MTE.NDk1OTc5Ng\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.thetruesize.com/#?borders=1~!MTU1MzE4MTE.NDk1OTc5Ng</a>\n*MzI4MDg1NjQ(NDY4MzU2NA~!CONTIGUOUS_US*MTAwMjQwNzU.MjUwMjM1MTc(MTc1)Mg~!IN*NTI2NDA1MQ.Nzg2MzQyMQ)MQ~!CN*OTkyMTY5Nw.NzMxNDcwNQ(MjI1)MA</p>\n<p>\n<br>\n</p>\n<p>\nLord of the Rings movie series</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/The_Lord_of_the_Rings_(film_series)\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/The_Lord_of_the_Rings_(film_series)</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nHarry Potter movie series</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Harry_Potter_(film_series)\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Harry_Potter_(film_series)</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nUS real ID</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Real_ID_Act\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Real_ID_Act</a>\n</p>\n<p>\n<br>\n</p>\n<p>\ngeek pi server rack</p>\n<p>\n<a href=\"https://deskpi.com/products/deskpi-rackmate-t1-2\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://deskpi.com/products/deskpi-rackmate-t1-2</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nLG hbs headphones</p>\n<p>\n<a href=\"https://www.lg.com/us/wireless-headphones/lg-hbs-sl5-black-tone-style-headset\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.lg.com/us/wireless-headphones/lg-hbs-sl5-black-tone-style-headset</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nArtic 9 headphones</p>\n<p>\n<a href=\"https://steelseries.com/gaming-headsets/arctis-9?srsltid=AfmBOorSiJLP13h8xdNVApYHSKi7mK1aKF-PIIIxO3pq4-JFRjSZH9aa\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://steelseries.com/gaming-headsets/arctis-9?srsltid=AfmBOorSiJLP13h8xdNVApYHSKi7mK1aKF-PIIIxO3pq4-JFRjSZH9aa</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nRazor Nari Ultimate headphones</p>\n<p>\n<a href=\"https://www.razer.com/pc/gaming-headsets-and-audio/nari-family?srsltid=AfmBOoouVEXj-vsGWncHInJ8e-vj3gSZFTdKFEkqn3rsEkF6UcSdmqeg\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.razer.com/pc/gaming-headsets-and-audio/nari-family?srsltid=AfmBOoouVEXj-vsGWncHInJ8e-vj3gSZFTdKFEkqn3rsEkF6UcSdmqeg</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nNginx Proxy Manager</p>\n<p>\n<a href=\"https://nginxproxymanager.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://nginxproxymanager.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nTozo O2 open ear headphons</p>\n<p>\n<a href=\"https://www.amazon.com/TOZO-Lightweight-Multi-Angle-Long-Lasting-Crystal-Clear/dp/B0C746TY77\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.amazon.com/TOZO-Lightweight-Multi-Angle-Long-Lasting-Crystal-Clear/dp/B0C746TY77</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nOrange PI zero 3 4GB</p>\n<p>\n<a href=\"http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/details/Orange-Pi-Zero-3.html\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttp://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/details/Orange-Pi-Zero-3.html</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nUSB cable tester board</p>\n<p>\n<a href=\"https://treedix.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://treedix.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nPCM audio</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Pulse-code_modulation\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Pulse-code_modulation</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nWAV audio</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/WAV\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/WAV</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nSPX audio</p>\n<p>\n<a href=\"https://fileinfo.com/extension/spx\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://fileinfo.com/extension/spx</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nMini Cooper</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Mini_Cooper\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Mini_Cooper</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n68 plymouth Fury</p>\n<p>\n<a href=\"https://www.curbsideclassic.com/curbside-classics-american/roadside-classic-1968-plymouth-fury-iii-hip-to-be-square/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.curbsideclassic.com/curbside-classics-american/roadside-classic-1968-plymouth-fury-iii-hip-to-be-square/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n83 Mercury Marquis</p>\n<p>\n<a href=\"https://www.autoweek.com/car-life/classic-cars/a1857401/1983-mercury-marquis-welcome-land-ahhhs/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.autoweek.com/car-life/classic-cars/a1857401/1983-mercury-marquis-welcome-land-ahhhs/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n78 Grand Turino</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Ford_Torino\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Ford_Torino</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n78 Chevy Blazer</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Chevrolet_K5_Blazer\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Chevrolet_K5_Blazer</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nZoom</p>\n<p>\n<a href=\"https://www.zoom.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.zoom.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n01 Buick Century</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Buick_Century\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Buick_Century</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nCrown Victoria</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Ford_Crown_Victoria\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Ford_Crown_Victoria</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n\n\n',269,0,1,'CC-BY-SA','new years,HPR,community',0,0,1),
(4317,'2025-02-18','Recording an episode of HPR',687,'Kevie goes through the steps of recording your first HPR episode','\n    <p>\n      In this episode Kevie talks about the basic steps of recording an\n      HPR episode.</p>\n    <p>\n      The first step is to plan the episode. What will it be about and\n      also consider the purpose of the show: is it to introduce a topic,\n      give information, entertain, be a tutorial or instructional, an\n      informal yarn.</p>\n    <p>\n      Write down the points that you want to cover and any links that\n      you are going to reference. This will help you when it comes to\n      recording and also it can act as your show notes.</p>\n    <p>\n      For early stage simple and effective recording use your mobile\n      phone. I recommend <a\n        href=\"https://github.com/Dimowner/AudioRecorder\" rel=\"noopener\n        noreferrer\" target=\"_blank\">\n        <strong>\n          Audio Recorder</strong>\n      </a>\n      as it allows you to record in WAV, you can change the sample rate\n      and it doesn\'t include adverts or any features that are paid for\n      only.</p>\n    <p>\n      <img src=\"hpr4317_image_1.png\">\n    </p>\n    <p>\n      For recording on a Linux desktop I would recommend using something\n      simple like <a href=\"https://github.com/ryonakano/reco\"\n        rel=\"noopener noreferrer\" target=\"_blank\">\n        <strong>\n          Reco</strong>\n      </a>\n      .</p>\n    <p>\n      <img src=\"hpr4317_image_2.png\">\n    </p>\n    <p>\n      If you want to record a show with somebody else then you will need\n      to use a PC as Google banned applications that have the ability to\n      record calls. To do this with Reco you simply click on the <strong>\n        Record from</strong>\n      button and you are given the choice of microphone, system audio or\n      both. Set this to <strong>\n        both</strong>\n      and whichever way you chat Reco will record the conversation.</p>\n    <p>\n      Once you have recorded your file then simply head to the HPR\n      website: </p>\n    <ul>\n      <li>\n        Click upload (top left) </li>\n      <li>\n        Pick an available slot</li>\n      <li>\n        Complete the show notes</li>\n      <li>\n        Upload the file</li>\n      <li>\n        Click submit</li>\n    </ul>\n    <p>\n      That\'s it, we look forward to hearing your first show.</p>',296,45,0,'CC-BY-SA','recording, podcasting',0,0,1),
(4324,'2025-02-27','24-25 New Years Eve show episode 2',6439,'The HPR community comes together to say happy new year and chat','<p><a href=\"https://www.mumble.info/\">mumble:</a> Official website of the Mumble project</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Mumble_(software\">wikipedia:</a>) Mumble (software) from Wikipedia</p>\n<p><a href=\"https://pmc.ncbi.nlm.nih.gov/articles/PMC9378646/\">ncbi:</a> Generalisable 3D printing error detection and correction via multi-head neural networks</p>\n<p><a href=\"https://www.liqcreate.com/supportarticles/resin-cure-depth-ec-dp/\">liqcreate:</a> Resin 3D-printing: Ec, Dp, cure depth &amp; more explained</p>\n<p><a href=\"https://www.tomshardware.com/how-to/fix-3d-prints-not-sticking-to-the-bed\">tomshardware:</a> How to Fix 3D Prints Not Sticking to the Bed</p>\n<p><a href=\"https://www.simplify3d.com/resources/print-quality-troubleshooting/not-sticking-to-the-bed/\">simplify3d:</a> Not Sticking to the Bed</p>\n<p><a href=\"https://www.tinkercad.com/\">tinkercad:</a> Tinkercad is a free web app for 3D design, electronics, and coding.</p>\n<p><a href=\"https://etherpad.org/\">etherpad:</a> Etherpad is a highly customizable open source online editor providing collaborative editing in really real-time.</p>\n<p><a href=\"https://jitsi.org/\">jitsi:</a> More secure, more flexible, and completely free video conferencing</p>\n<p><a href=\"https://openai.com/index/whisper/\">openai:</a> Whisper is an automatic speech recognition (ASR) system</p>\n<p><a href=\"https://www.raspberrypi.com/\">raspberrypi:</a> We are Raspberry Pi. We make computers.</p>\n<p><a href=\"https://en.wikipedia.org/wiki/ESP32\">wikipedia:</a> ESP32</p>\n<p><a href=\"https://www.hamuniverse.com/toolsandtest.html\">hamuniverse:</a> Tools, test equipment and shack accessories for the new ham radio operator</p>\n<p><a href=\"https://www.dxzone.com/catalog/Software/Utilities/\">dxzone:</a> Radio Tools and Utilities for amateur radio operators</p>\n<p><a href=\"https://www.dxengineering.com/search/department/tools-and-supplies\">dxengineering:</a> Amateur Radio Equipment &amp; Tools</p>\n<p><a href=\"https://morsecode.world/international/keyer.html\">morsecode:</a> Morse Code Keyer</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Morse_code\">wikipedia:</a> Morse code</p>\n<p><a href=\"http://www.inksystem.com/\">inksystem:</a> CISS - continuous ink supply system</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Continuous_ink_system\">wikipedia:</a> Continuous ink system</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Three-phase_electric_power\">wikipedia:</a> Three-phase electric power</p>\n<p><a href=\"https://www.archives.govt.nz/discover-our-stories/housing-in-new-zealand\">archives:</a> Housing in New Zealand</p>\n<p><a href=\"https://teara.govt.nz/en/building-materials/page-1\">teara:</a> Early houses... of New Zealand</p>\n<p><a href=\"https://freedesktop.org/software/pulseaudio/pavucontrol/\">freedesktop:</a> PulseAudio Volume Control</p>\n<p><a href=\"https://kde.org/plasma-desktop/\">kde:</a> Plasma is a Desktop</p>\n<p><a href=\"https://f-droid.org/\">f-droid:</a> What is F-Droid?</p>\n<p><a href=\"https://i3wm.org/\">i3wm:</a> i3 is a tiling window manager, completely written from scratch.</p>\n<p><a href=\"https://www.samsung.com/us/smartphones/galaxy-s23/\">samsung:</a> Galaxy S23</p>\n<p><a href=\"https://developer.android.com/tools/adb\">android:</a> Android Debug Bridge (adb)</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Android_Debug_Bridge\">wikipedia:</a> Android Debug Bridge (adb)</p>\n<p><a href=\"https://www.dolby.com/apps/dolby-on/\">dolby:</a> Dolby On: Record Dolby Sound and Video</p>\n<p><a href=\"http://www.slackware.com/\">slackware:</a> The Slackware Linux Project</p>\n<p><a href=\"https://fedoraproject.org/\">fedoraproject:</a> Fedora Linux | The Fedora Project</p>\n<p><a href=\"https://qtractor.org/\">qtractor:</a> Qtractor An Audio/MIDI multi-track sequencer</p>\n<p><a href=\"https://ardour.org/features.html\">ardour:</a> Recording - Ardour DAW</p>\n<p><a href=\"https://snapcraft.io/\">snapcraft:</a> Snapcraft - Snaps are universal Linux packages</p>\n<p><a href=\"https://en.wikipedia.org/wiki/APT_(software\">wikipedia:</a>) Advanced Package Tool (APT) is a free-software user interface that works with core libraries...</p>\n<p><a href=\"https://discord.com/\">discord:</a> Discord - Group Chat That&#39;s All Fun &amp; Games</p>\n<p><a href=\"https://telegram.org/\">telegram:</a> Telegram Messenger</p>\n<p><a href=\"https://mumla-app.gitlab.io/\">mumla-app:</a> Mumble app for Android</p>\n<p><a href=\"https://www.kd4c.com/hamclock-a-shacks-best-friend/\">kd4c:</a> HamClock – A Shack’s Best Friend</p>\n<p><a href=\"https://en.wikipedia.org/wiki/New_Jersey_Pine_Barrens\">wikipedia:</a> New Jersey Pine Barrens</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Piney_(Pine_Barrens_resident\">wikipedia:</a>) Piney (Pine Barrens resident)</p>\n<p><a href=\"https://www.blackriflecoffee.com/coffee-club\">blackriflecoffee:</a> Veteran Founded - Black Rifle Coffee Company</p>\n<p><a href=\"https://gfs.com/en-us/products/food-products/beverages/\">gfs:</a> Beverages - Gordon Food Service</p>\n<p><a href=\"https://www.homegoods.com/\">homegoods:</a> Home Decor Store and More | HomeGoods</p>\n<p><a href=\"https://www.deathwishcoffee.com/\">deathwishcoffee:</a> Death Wish Coffee</p>\n<p><a href=\"https://www.creality.com/products/ender-5-pro-3d-printer\">creality:</a> Ender-5 Pro is a cubic-constructure 3D printer kit</p>\n<p><a href=\"https://www.oggcamp.org/\">oggcamp:</a> OGGCAMP</p>\n<p><a href=\"https://southeastlinuxfest.org/\">southeastlinuxfest:</a> SouthEast LinuxFest | Linux in the GNU/South</p>\n<p><a href=\"https://dev.events/bsd\">dev:</a> BSD / OS conferences 2025 / 2026</p>\n<p><a href=\"https://olfconference.org/about/\">olfconference:</a> OLF (formerly known as Ohio LinuxFest) is a grassroots conference for the GNU/Linux...</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Security_clearance\">wikipedia:</a> Security clearance</p>\n<p><a href=\"https://www.state.gov/securityclearances\">state:</a> Security Clearances - United States Department of State</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Underground_soft-rock_mining\">wikipedia:</a> Underground soft-rock mining</p>\n<p><a href=\"https://www.investopedia.com/articles/trading/05/011705.asp\">investopedia:</a> Day Trading: The Basics and How To Get Started</p>\n<p><a href=\"https://www.investor.gov/additional-resources/spotlight/directors-take/thinking-day-trading-know-risks\">investor:</a> Thinking of Day Trading? Know the Risks.</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Peter_Zeihan\">wikipedia:</a> Peter Zeihan</p>\n<p><a href=\"https://www.youtube.com/channel/UCsy9I56PY3IngCf_VGjunMQ\">youtube:</a> Zeihan on Geopolitics</p>\n<p><a href=\"https://www.britannica.com/technology/F-4\">britannica:</a> F-4, two-seat, twin-engine jet fighter-bomber</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Lockheed_C-130_Hercules\">wikipedia:</a> Lockheed C-130 Hercules</p>\n<p><a href=\"https://monroeengineering.com/blog/ball-bearings-inner-vs-outer-races-explained/\">monroeengineering:</a> Ball Bearings: Inner vs Outer Races Explained</p>\n<p><a href=\"https://www.ibm.com/tape-storage\">ibm:</a> Tape storage is used for data backup in case of...</p>\n<p><a href=\"https://www.q4os.org/\">q4os:</a> Q4OS - desktop operating system</p>\n<p><a href=\"https://www.opensuse.org/\">opensuse:</a> openSUSE is a Linux distribution that offers...</p>\n<p><a href=\"https://en.wikipedia.org/wiki/OS/2\">wikipedia:</a> OS/2 is a proprietary computer operating system for...</p>\n<p><a href=\"https://selinc.com/products/3351/\">selinc:</a> SEL-3351 System Computing Platform</p>\n<p><a href=\"https://en.wikipedia.org/wiki/List_of_Microsoft_Windows_versions\">wikipedia:</a> List of Microsoft Windows versions</p>\n<p><a href=\"https://mxlinux.org/\">mxlinux:</a> MX Linux is a Linux distribution based on Debian stable</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Squid_Game\">wikipedia:</a> Squid Game - Wikipedia</p>\n<p><a href=\"https://us.starlabs.systems/?shpxid=939dc538-13e5-423e-affd-643f74f37e91\">starlabs:</a> Linux Laptops - Powered by Open Source – Star Labs®</p>\n<p><a href=\"https://xubuntu.org/\">xubuntu:</a> Xubuntu is a stable, light and configurable desktop...</p>\n',269,0,1,'CC-BY-SA','new years,HPR,community',0,0,1),
(4337,'2025-03-18','Open Web UI',1885,'I go over how I have my local LLM server setup because I rm -Rf ed it ...','<h1>\nOpenWebUI notes ...\n</h1>\n<p>\nOpen WebUI installer: <a moz-do-not-send=\"true\"\nhref=\"https://github.com/freeload101/SCRIPTS/blob/master/Bash/OpenWebUI_Fast.bash\">https://github.com/freeload101/SCRIPTS/blob/master/Bash/OpenWebUI_Fast.bash</a></p>\n<p>\nOlder Professor synapse prompt you can use: <a\nmoz-do-not-send=\"true\"\nhref=\"https://raw.githubusercontent.com/freeload101/SCRIPTS/refs/heads/master/Prof%20Synapse%20Old.txt\">https://raw.githubusercontent.com/freeload101/SCRIPTS/refs/heads/master/Prof%20Synapse%20Old.txt</a></p>\n<p>\nFabric prompts you can import into openwebui !!! ( <a\nmoz-do-not-send=\"true\"\nhref=\"https://github.com/danielmiessler/fabric/tree/main/patterns\">https://github.com/danielmiessler/fabric/tree/main/patterns</a>\n) <a moz-do-not-send=\"true\"\nhref=\"https://github.com/freeload101/SCRIPTS/blob/master/MISC/Fabric_Prompts_Open_WebUI_OpenWebUI_20241112.json\">https://github.com/freeload101/SCRIPTS/blob/master/MISC/Fabric_Prompts_Open_WebUI_OpenWebUI_20241112.json</a></p>\n<p>\nExample AT windows task startup script to make it start and not\ndie on boot <a moz-do-not-send=\"true\"\nhref=\"https://github.com/freeload101/SCRIPTS/blob/master/MISC/StartKokoro.xml\">https://github.com/freeload101/SCRIPTS/blob/master/MISC/StartKokoro.xml</a></p>\n<p>\nOpen WebUI RAG fail sause ... <a moz-do-not-send=\"true\"\nhref=\"https://youtu.be/CfnLrTcnPtY\">https://youtu.be/CfnLrTcnPtY</a></p>\n<h2>\nOpen registration&nbsp;\n</h2>\n<p>\n<br>\n</p>\n<p>\n<a href=\"hpr4337_image_ext_1.png\">\n<img src=\"hpr4337_image_ext_1_tn.png\">\n</a>\n</p>\n<p>\nModel list / order\n</p>\n<pre>\nNAME &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ID&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SIZE&nbsp; &nbsp; &nbsp; MODIFIED\n</pre>\n<pre>hf.co/mradermacher/L3-8B-Stheno-v3.2-i1-GGUF:Q4_K_S&nbsp; &nbsp; 017d7a278e7e&nbsp; &nbsp; 4.7 GB&nbsp; &nbsp; 2 days ago\n</pre>\n<pre>qwen2.5:32b&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 9f13ba1299af&nbsp; &nbsp; 19 GB &nbsp; &nbsp; 3 days ago\n</pre>\n<pre>deepsex:latest &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; c83a52741a8a&nbsp; &nbsp; 20 GB &nbsp; &nbsp; 3 days ago\n</pre>\n<pre>HammerAI/openhermes-2.5-mistral:latest &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; d98003b83e17&nbsp; &nbsp; 4.4 GB&nbsp; &nbsp; 2 weeks ago\n</pre>\n<pre>Sweaterdog/Andy-3.5:latest &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; d3d9dc04b65a&nbsp; &nbsp; 4.7 GB&nbsp; &nbsp; 2 weeks ago\n</pre>\n<pre>nomic-embed-text:latest&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0a109f422b47&nbsp; &nbsp; 274 MB&nbsp; &nbsp; 2 weeks ago\n</pre>\n<pre>deepseek-r1:32b&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 38056bbcbb2d&nbsp; &nbsp; 19 GB &nbsp; &nbsp; 4 weeks ago\n</pre>\n<pre>psyfighter2:latest &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; c1b3d5e5be73&nbsp; &nbsp; 7.9 GB&nbsp; &nbsp; 2 months ago\n</pre>\n<pre>CognitiveComputations/dolphin-llama3.1:latest&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ed9503dedda9&nbsp; &nbsp; 4.7 GB&nbsp; &nbsp; 2 months ago\n</pre>\n<p>\n<br>\n</p>\n<p>\n<a href=\"hpr4337_image_ext_2.png\">\n<img src=\"hpr4337_image_ext_2_tn.png\">\n</a>\n</p>\n<p>\n<br>\n</p>\n<h2>\nDisable Arena models \n</h2>\n\n<p>\n<img src=\"hpr4337_image_ext_3.png\">\n</p>\n<h2>\nDocuments WIP RAG is not good .\n</h2>\n<p>\n<a href=\"hpr4337_image_ext_4.png\">\n<img src=\"hpr4337_image_ext_4_tn.png\">\n</a>\n</p>\n<p>\n<br>\n</p>\n<h2>\nDiscord notes;\n</h2>\n<p>\n<a moz-do-not-send=\"true\"\nhref=\"https://discord.com/channels/1170866489302188073/1340112218808909875\"><span\nstyle=\"background-color: transparent; color: rgb(0, 0, 0);\">\nhttps://discord.com/channels/1170866489302188073/1340112218808909875</a>\n</p>\n<p>\n<br>\n</p>\n<ul>\n<li>\nAbhi Chaturvedi:&nbsp; @(Operat0r) try this To reduce latency\nand improve accuracy, modify the .env file: Enable RAG\nENABLE_RAG=true\n</li>\n<li>\nUse Hybrid Mode (Retrieval + Reranking for better context)\n</li>\n<li>\nRAG_MODE=hybrid\n</li>\n<li>\nReduce the number of retrieved documents (default: 5)\n</li>\n<li>\nRETRIEVAL_TOP_K=3\n</li>\n<li>\nUse a Fast Embedding Model (instead of OpenAI\'s Ada-002)\n</li>\n<li>\nEMBEDDING_MODEL=all-MiniLM-L6-v2 # Faster and lightweight .\nOptimize the Vector Database VECTOR_DB_TYPE=chroma\nCHROMA_DB_IMPL=hnsw # Faster search\nCHROMA_DB_PATH=/root/open-webui/backend/data/vector_db.\nOptimize Backend Performance # Increase Uvicorn worker count\n(improves concurrency) UVICORN_WORKERS=4\n</li>\n<li>\nIncrease FastAPI request timeout (prevents RAG failures)\n</li>\n<li>\nFASTAPI_TIMEOUT=60\n</li>\n<li>\nOptimize database connection pool (for better query\nperformance)\n</li>\n<li>\nSQLALCHEMY_POOL_SIZE=10\n</li>\n\n<li>\nSo probably the first thing to do is increase the top K value\nin admin -&gt; settings -&gt; documents, or you could try the\nnew \"full context mode\" for rag documents. You may also need\nto increase the context size on the model, but it will make it\nslower, so you probably don\'t want to do that unless you start\nseeing the \"truncating input\" warnings.\n</li>\n<li>\n@JamesK\n</li>\n<li>\nSo probably the first thing to do is increase the top K value\nin admin -&gt; settings -&gt; documents, or you could try the\nnew \"full context mode\" for rag documents. You may also need\nto increase the context size on the model, but it will make it\nslower, so you probably don\'t want to do that unless you start\nseeing the \"truncating input\" warnings.\n</li>\n\n\n<li>\nM]\n</li>\n<li>\nJamesK:&nbsp; Ah, I see. The rag didn\'t work great for you in\nthis prompt. There are three hits and the first two are\nduplicates, so there isn\'t much data for the model to work\nwith\n</li>\n<li>\n[9:12 PM] JamesK:&nbsp; context section\n</li>\n<li>\nI see a message warning that you are using the default 2048\ncontext length, but not the message saying you\'ve hit that\nlimit (from my logs the warning looks like\n</li>\n<li>\nlevel=WARN source=runner.go:126 msg=\"truncating input prompt\"\nlimit=32768 prompt=33434 numKeep=5\n</li>\n<li>\n[6:06 AM] JamesK:&nbsp; If you set the env var OLLAMA_DEBUG=1\nbefore running ollama serve it will dump the full prompt being\nsent to the model, that should let you confirm what the rag\nhas put in the prompt\n</li>\n<li>\nJamesK: Watch the console output from ollama and check for\nwarnings about overflowing the context. If you have the\ndefault 2k context you may need to increase it until the\nwarnings go away\n</li>\n<li>\n[8:58 PM] JamesK:&nbsp; But also, if you\'re using the default\nrag, it chunks the input into small fragments, then matches\nthe fragments against your prompt and only inserts a few\nfragments into the context, not the entire document. So it\'s\neasily possible for the information you want to not be\npresent.\n</li>\n</ul>\n<p>\n<br>\n</p>\n<h2>\nAuto updates\n</h2>\n<pre>echo \'0,12 */4 * * * docker run --rm --volume /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --run-once open-webui\' &gt;&gt; /etc/crontab\n</pre>\n<h2>\nSearch\n</h2>\n<p>\nred note for API keys&nbsp;\n</p>\n<p>\n<a href=\"hpr4337_image_ext_5.png\">\n<img src=\"hpr4337_image_ext_5_tn.png\">\n</a>\n</p>\n<p>\n<br>\n</p>\n<ol>\n<li>\nGo to Google Developers, use \n<a href=\"https://developers.google.com/custom-search\"\nrel=\"noopener noreferrer\" target=\"_blank\"\nstyle=\"background-color: transparent; color: rgb(17, 85,\n204);\">\nProgrammable Search Engine</a>\n, and log on or create account.\n</li>\n<li>\nGo to \n<a\nhref=\"https://programmablesearchengine.google.com/controlpanel/all\"\nrel=\"noopener noreferrer\" target=\"_blank\"\nstyle=\"background-color: transparent; color: rgb(17, 85,\n204);\">\ncontrol panel</a>\nand click \nAdd\nbutton\n</li>\n<li>\nEnter a search engine name, set the other properties to suit\nyour needs, verify you\'re not a robot and click \nCreate\nbutton.\n</li>\n<li>\nGenerate \nAPI key\nand get the \nSearch engine ID\n. (Available after the engine is created)\n</li>\n<li>\nWith \nAPI key\nand \nSearch engine ID\n, open \nOpen WebUI Admin panel\nand click \nSettings\ntab, and then click \nWeb Search\n</li>\n<li>\nEnable \nWeb search\nand Set \nWeb Search Engine\nto \ngoogle_pse\n</li>\n<li>\nFill \nGoogle PSE API Key\nwith the \nAPI key\nand \nGoogle PSE Engine Id\n(# 4)\n</li>\n<li>\nClick \nSave\n</li>\n</ol>\n<p>\n<a href=\"hpr4337_image_ext_6.png\">\n<img src=\"hpr4337_image_ext_6_tn.png\">\n</a>\n</p>\n<h4>\nNote\n<a\nhref=\"https://docs.openwebui.com/tutorials/web-search/google-pse/#note\"\nrel=\"noopener noreferrer\" target=\"_blank\"\nstyle=\"background-color: transparent; color: rgb(17, 85, 204);\">\n​</a>\n</h4>\n<p>\nYou have to enable \nWeb search\nin the prompt field, using plus (\n+\n) button. Search the web ;-)\n</p>\n<p>\n<img src=\"hpr4337_image_ext_7.png\">\n</p>\n<p>\n<br>\n</p>\n<h2>\nKokoro / Open Webui&nbsp;\n</h2>\n<p>\n<a moz-do-not-send=\"true\"\nhref=\"https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html\">https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html</a>\n</p>\n<p>\n<a moz-do-not-send=\"true\"\nhref=\"https://github.com/remsky/Kokoro-FastAPI?tab=readme-ov-file\">https://github.com/remsky/Kokoro-FastAPI?tab=readme-ov-file</a>\n</p>\n<pre>apt update\n</pre>\n<pre>apt upgrade\n</pre>\n<pre>curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg &nbsp; &amp;&amp; curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | &nbsp; &nbsp; sed \'s#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g\' | &nbsp; &nbsp; sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list\n</pre>\n<pre>sed -i -e \'/experimental/ s/^#//g\' /etc/apt/sources.list.d/nvidia-container-toolkit.list\n</pre>\n<pre>sudo apt-get update\n</pre>\n<pre>sudo apt-get install -y nvidia-container-toolkit\n</pre>\n<pre>apt install docker.io -y\n</pre>\n<pre>docker run --gpus all -p 8880:8880 ghcr.io/remsky/kokoro-fastapi-gpu:v0.2.2\n</pre>\n<p>\n<a href=\"hpr4337_image_ext_8.png\">\n<img src=\"hpr4337_image_ext_8_tn.png\">\n</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nhttp://localhost:8880/v1\n</p>\n<p>\naf_bella\n</p>\n<p>\nImport fabric prompts\n</p>\n<p>\n<a\nhref=\"https://raw.githubusercontent.com/freeload101/Python/46317dee34ebb83b01c800ce70b0506352ae2f3c/Fabric_Prompts_Open_WebUI_OpenWebUI.py\"\nrel=\"noopener noreferrer\" target=\"_blank\"\nstyle=\"background-color: transparent; color: rgb(17, 85, 204);\">\nhttps://raw.githubusercontent.com/freeload101/Python/46317dee34ebb83b01c800ce70b0506352ae2f3c/Fabric_Prompts_Open_WebUI_OpenWebUI.py</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>',36,0,1,'CC-BY-SA','failsause,open webui,llm,ollma,rag,ai prompt',0,0,1),
(4327,'2025-03-04','Chatting with Sgoti',838,'Sgoti talks about SSH and Github.','<h1 id=\"chatting-wth-sgoti\">Chatting wth Sgoti</h1>\n<h3 id=\"sgoti-talks-about-ssh-and-github-\">Sgoti talks about SSH and Github.</h3>\n<ul>\n<li><p><a href=\"https://man.openbsd.org/ssh_config#PreferredAuthentications\">openbsd:</a> PreferredAuthentications \\</p>\n<ul>\n<li><p>Specifies the order in which the client should try authentication methods. \\</p>\n</li>\n<li><p><code>gssapi-with-mic,hostbased,publickey,keyboard-interactive,password</code></p>\n</li>\n</ul>\n</li>\n</ul>\n<ul>\n<li><a href=\"https://man.openbsd.org/ssh_config#HostKeyAlgorithms\">openbsd:</a> HostKeyAlgorithms \\</li>\n</ul>\n<pre><code class=\"lang-bash\">\n$ssh -Q HostKeyAlgorithms;\n\n\nssh-ed25519\n\nssh-ed25519-cert-v01@openssh.com\n\nsk-ssh-ed25519@openssh.com\n\nsk-ssh-ed25519-cert-v01@openssh.com\n\nssh-rsa\n\nrsa-sha2-256\n\nrsa-sha2-512\n\nssh-dss\n\necdsa-sha2-nistp256\n\necdsa-sha2-nistp384\n\necdsa-sha2-nistp521\n\nsk-ecdsa-sha2-nistp256@openssh.com\n\nwebauthn-sk-ecdsa-sha2-nistp256@openssh.com\n\nssh-rsa-cert-v01@openssh.com\n\nrsa-sha2-256-cert-v01@openssh.com\n\nrsa-sha2-512-cert-v01@openssh.com\n\nssh-dss-cert-v01@openssh.com\n\necdsa-sha2-nistp256-cert-v01@openssh.com\n\necdsa-sha2-nistp384-cert-v01@openssh.com\n\necdsa-sha2-nistp521-cert-v01@openssh.com\n\nsk-ecdsa-sha2-nistp256-cert-v01@openssh.com\n</code></pre>\n<ul>\n<li><p><a href=\"https://man.openbsd.org/ssh_config#IdentitiesOnly\">openbsd:</a> IdentitiesOnly \\</p>\n<ul>\n<li>Specifies that ssh(1) should only use the configured authentication identity and certificate files (either the default files, or those explicitly configured in the ssh_config files or passed on the ssh(1) command-line), even if ssh-agent(1) or a PKCS11Provider or SecurityKeyProvider offers more identities. The argument to this keyword must be yes or no (the default). This option is intended for situations where ssh-agent offers many different identities. \\</li>\n</ul>\n</li>\n</ul>\n<p>Sample ssh config. \\</p>\n<pre><code>\n<span class=\"hljs-meta\">#Github Primary Yubikey</span>\n\nHost github\n\n   User git\n\n   HostName github.com\n\n   Port <span class=\"hljs-number\">22</span>\n\n   IdentityFile ~/.ssh/github-yubikey<span class=\"hljs-number\">-0</span>\n\n\n<span class=\"hljs-meta\">#Github Secondary Yubikey</span>\n\nHost github\n\n   User git\n\n   HostName github.com\n\n   Port <span class=\"hljs-number\">22</span>\n\n   IdentityFile ~/.ssh/github-yubikey<span class=\"hljs-number\">-1</span>\n\n\n<span class=\"hljs-meta\">#Global properties.</span>\n\nHost *\n\n   PubkeyAuthentication=yes\n\n   PreferredAuthentications=publickey,keyboard-interactive\n\n   PubkeyAcceptedAlgorithms=sk-ssh-ed25519@openssh.com,ssh-ed25519,rsa-sha2<span class=\"hljs-number\">-512</span>\n\n\n<span class=\"hljs-meta\">#ssh-ed25519</span>\n\n<span class=\"hljs-meta\">#ssh-ed25519-cert-v01@openssh.com</span>\n\n<span class=\"hljs-meta\">#sk-ssh-ed25519@openssh.com</span>\n\n<span class=\"hljs-meta\">#sk-ssh-ed25519-cert-v01@openssh.com</span>\n\n<span class=\"hljs-meta\">#ssh-rsa</span>\n</code></pre><pre><code class=\"lang-bash\">\nssh-keygen -t ed25519-sk -C <span class=\"hljs-string\">\"user@domain.tld\"</span> -f ~<span class=\"hljs-regexp\">/.ssh/gi</span>thub-yubikey-<span class=\"hljs-number\">0</span>;\n\nssh-keygen -t ed25519-sk -C <span class=\"hljs-string\">\"user@domain.tld\"</span> -f ~<span class=\"hljs-regexp\">/.ssh/gi</span>thub-yubikey-<span class=\"hljs-number\">1</span>;\n\nchmod --change =<span class=\"hljs-number\">400</span> ~<span class=\"hljs-regexp\">/.ssh/gi</span>thub*; <span class=\"hljs-comment\">#Owner only!</span>\n</code></pre>\n<ul>\n<li><p><a href=\"https://forums.lawrencesystems.com/t/ssh-with-yubikey-fido-u2f-authentication/13024\">lawrencesystems:</a> SSH with YubiKey FIDO U2F Authentication. \\</p>\n</li>\n<li><p><a href=\"https://resources.yubico.com/53ZDUYE6/as/q3uxbe-6n9olc-9ywi4w/YubiKey_5_Series_Product_Brief.pdf\">yubico:</a> YubiKey 5 Series \\</p>\n</li>\n<li><p><a href=\"https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent\">github:</a> Generating a new SSH key and adding it to the ssh-agent. \\</p>\n</li>\n</ul>\n<p>EOF</p>',391,0,1,'CC-BY-SA','git, github, ssh, yubikey',0,0,1),
(4331,'2025-03-10','Re-inventing the light switch',576,'Lee does some home automation with Bash, Python and Apache Cordova','\n<h2 style=\"\">\nBulbs</h2>\n<p style=\"\">\n<br style=\"\">\n</p>\n<p style=\"color: rgb(209, 203, 199) !important;\">\n<a href=\"https://www.wizconnected.com/en-gb/products/bulbs\" rel=\"noopener noreferrer\" target=\"_blank\" style=\"color: rgb(0, 0, 0);\">\nWiz Connected smart light bulbs</a>\n</p>\n<p style=\"color: rgb(209, 203, 199) !important;\">\n<br style=\"\">\n</p>\n<h2 style=\"\">\nExploit</h2>\n<p style=\"\">\n<br style=\"\">\n</p>\n<p style=\"color: rgb(209, 203, 199) !important;\">\n<a href=\"https://medium.com/@R00tendo/exploiting-wiz-smart-lights-d42ba466c7ec\" rel=\"noopener noreferrer\" target=\"_blank\" style=\"color: rgb(0, 0, 0);\">\nArticle about hacking the lights</a>\n</p>\n<p style=\"color: rgb(209, 203, 199) !important;\">\n<br style=\"\">\n</p>\n<h2 style=\"\">\nSource Code</h2>\n<p style=\"\">\n<br style=\"\">\n</p>\n<p style=\"color: rgb(209, 203, 199) !important;\">\n<a href=\"https://github.com/R00tendo/wiz_exploit\" rel=\"noopener noreferrer\" target=\"_blank\" style=\"color: rgb(0, 0, 0);\">\nSource code of the hack</a>\n</p>\n<p style=\"color: rgb(209, 203, 199) !important;\">\n<br style=\"\">\n</p>\n<h2 style=\"\">\nCordova</h2>\n<p style=\"\">\n<br style=\"\">\n</p>\n<p style=\"color: rgb(209, 203, 199) !important;\">\n<a href=\"https://cordova.apache.org/\" rel=\"noopener noreferrer\" target=\"_blank\" style=\"color: rgb(0, 0, 0);\">\nApache Cordova framework for mobile apps</a>\n</p>\n<p style=\"color: rgb(209, 203, 199) !important;\">\n<br style=\"\">\n</p>\n<h2 style=\"\">\nCordova Plugin</h2>\n<p style=\"\">\n<br style=\"\">\n</p>\n<p style=\"color: rgb(209, 203, 199) !important;\">\n<a href=\"https://github.com/JosePerez27/cordova-plugin-ssh-connect\" rel=\"noopener noreferrer\" target=\"_blank\" style=\"color: rgb(0, 0, 0);\">\nSSH Connect Cordova Plugin</a>\n</p>\n<p style=\"color: rgb(209, 203, 199) !important;\">\n<br style=\"\">\n</p>\n<h2 style=\"\">\nKDE Widgets</h2>\n<p style=\"\">\n<br style=\"\">\n</p>\n<p style=\"color: rgb(209, 203, 199) !important;\">\n<span class=\"ql-font-monospace\" style=\"\">\n<a href=\"hpr4331_image_ext_1.png\">\n<img src=\"hpr4331_image_ext_1_tn.png\" />\n</a>\n</span>\n</p>\n<h2 style=\"color: rgb(209, 203, 199) !important;\">\n<br style=\"\">\n</h2>\n<h2 style=\"\">\nMobile Interface</h2>\n<p style=\"\">\n<br style=\"\">\n</p>\n<p style=\"color: rgb(209, 203, 199) !important;\">\n<span class=\"ql-font-monospace\" style=\"\">\n<a href=\"hpr4331_image_ext_2.png\">\n<img src=\"hpr4331_image_ext_2_tn.png\" />\n</a>\n</span>\n</p>\n<h2 style=\"color: rgb(209, 203, 199) !important;\">\n<br style=\"\">\n</h2>\n<h2 style=\"\">\nCode</h2>\n<p style=\"\">\n<br style=\"\">\n</p>\n<h3 style=\"\">\nPython Script</h3>\n<p style=\"color: rgb(209, 203, 199) !important;\">\n<br style=\"\">\n</p>\n<h4 style=\"\">\n<code style=\"background-color: var(--bg-color5);\">\nwiz-hack.py</code>\n</h4>\n<pre class=\"ql-syntax\" spellcheck=\"false\" style=\"\">\nimport socket\r\nimport time\r\nimport random\r\nimport sys\r\n​\r\nif len(sys.argv) &lt; 3:\r\n&nbsp; &nbsp;  print(help)\r\n&nbsp; &nbsp;  exit()\r\nIP = sys.argv[1]\r\n​\r\non = \"\"\"{\"params\":{\"orig\":\"andr\",\"state\":true},\"id\":6,\"method\":\"setPilot\"}\"\"\"\r\noff = \"\"\"{\"params\":{\"orig\":\"andr\",\"state\":false},\"id\":6,\"method\":\"setPilot\"}\"\"\"\r\n​\r\ns = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)\r\ns.connect((IP, 38899))\r\nif sys.argv[2] != \"on\" and sys.argv[2] != \"off\":\r\n&nbsp;  print(\"Changing lights color\")\r\n&nbsp;  b = sys.argv[2]\r\n&nbsp;  color_send = \"\"\"{\"method\":\"setPilot\",\"params\":{\"r\":\"\"\" + str(255) + \"\"\",\"g\":\"\"\" + str(255)  + \"\"\",\"b\":\"\"\" + str(255) + \"\"\",\"dimming\":\"\"\" + str(b) + \"\"\"}}\"\"\"\r\n&nbsp;  print(color_send)\r\n&nbsp;  s.sendall(bytes(color_send, \"utf-8\"))\r\n&nbsp;  s.close()\r\nelif sys.argv[2] == \"on\":\r\n&nbsp; &nbsp; print(\"Turning on the lights\")\r\n&nbsp; &nbsp; s.sendall(bytes(on, \"utf-8\"))\r\n&nbsp; &nbsp; s.close()\r\nelif sys.argv[2] == \"off\":\r\n&nbsp; &nbsp; print(\"Turning off the lights\")\r\n&nbsp; &nbsp; s.sendall(bytes(off, \"utf-8\"))\r\n&nbsp; &nbsp; s.close()\r\n</pre>\n<h3 style=\"color: rgb(209, 203, 199) !important;\">\n<br style=\"\">\n</h3>\n<h3 style=\"\">\nShell Scripts</h3>\n<p style=\"\">\n<br style=\"\">\n</p>\n<h4 style=\"\">\n<code style=\"background-color: var(--bg-color5);\">\non.sh</code>\n</h4>\n<pre class=\"ql-syntax\" spellcheck=\"false\" style=\"\">\n#!/bin/sh\r\n/usr/bin/python /usr/local/bin/wiz-hack.py 192.168.0.94 on\r\n/usr/bin/python /usr/local/bin/wiz-hack.py 192.168.0.177 on\r\n/usr/bin/python /usr/local/bin/wiz-hack.py 192.168.0.207 on\r\n/usr/bin/python /usr/local/bin/wiz-hack.py 192.168.0.254 on\r\n​\r\n</pre>\n<h4 style=\"color: rgb(209, 203, 199) !important;\">\n<br style=\"\">\n</h4>\n<h4 style=\"\">\n<code style=\"background-color: var(--bg-color5);\">\noff.sh</code>\n</h4>\n<pre class=\"ql-syntax\" spellcheck=\"false\" style=\"\">\n#!/bin/sh\r\n/usr/bin/python /usr/local/bin/wiz-hack.py 192.168.0.94 off\r\n/usr/bin/python /usr/local/bin/wiz-hack.py 192.168.0.177 off\r\n/usr/bin/python /usr/local/bin/wiz-hack.py 192.168.0.207 off\r\n/usr/bin/python /usr/local/bin/wiz-hack.py 192.168.0.254 off\r\n</pre>\n<h3 style=\"color: rgb(209, 203, 199) !important;\">\n<br style=\"\">\n</h3>\n<h4 style=\"\">\n<code style=\"background-color: var(--bg-color5);\">\nlight.sh</code>\n</h4>\n<pre class=\"ql-syntax\" spellcheck=\"false\" style=\"\">\n#!/bin/sh\r\n/usr/bin/python /usr/local/bin/wiz-hack.py 192.168.0.94 \"$1\"\r\n/usr/bin/python /usr/local/bin/wiz-hack.py 192.168.0.177 \"$1\"\r\n/usr/bin/python /usr/local/bin/wiz-hack.py 192.168.0.207 \"$1\"\r\n/usr/bin/python /usr/local/bin/wiz-hack.py 192.168.0.254 \"$1\"\r\n</pre>\n<h2 style=\"color: rgb(209, 203, 199) !important;\">\n<br style=\"\">\n</h2>\n<h2 style=\"\">\nMobile App</h2>\n<p style=\"\">\n<br style=\"\">\n</p>\n<h4 style=\"\">\n<code style=\"background-color: var(--bg-color5);\">\nindex.html (excerpt)</code>\n</h4>\n<pre class=\"ql-syntax\" spellcheck=\"false\" style=\"\">\n...\r\n&lt;h1&gt;Light Control&lt;/h1&gt;\r\n​\r\n&lt;button id=\"onButton\"&gt;On&lt;/button&gt;\r\n&lt;button id=\"offButton\"&gt;Off&lt;/button&gt;\r\n​\r\n&lt;br&gt;&lt;br&gt;\r\n​\r\n&lt;label for=\"brightnessSlider\"&gt;Brightness:&lt;/label&gt;\r\n&lt;input type=\"range\" id=\"brightnessSlider\" min=\"0\" max=\"100\" value=\"50\"&gt;\r\n​\r\n&lt;script src=\"cordova.js\"&gt;&lt;/script&gt;\r\n&lt;script src=\"js/index.js\"&gt;&lt;/script&gt;\r\n</pre>\n<h3 style=\"color: rgb(209, 203, 199) !important;\">\n<br style=\"\">\n</h3>\n<h4 style=\"\">\n<code style=\"background-color: var(--bg-color5);\">\nindex.js</code>\n</h4>\n<pre class=\"ql-syntax\" spellcheck=\"false\" style=\"\">\nconst user = \"user\";\r\nconst password = \"redacted_password\";\r\nconst host = \"192.168.0.218\";\r\nconst port = \"22\";\r\n​\r\nvar sshConnect;\r\n​\r\nfunction on() {\r\n&nbsp;  sshConnect.connect(user, password, host, port, () =&gt; {\r\n&nbsp; &nbsp; &nbsp;  sshConnect.executeCommand(\'on.sh\', function() {\r\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  sshConnect.disconnect();\r\n&nbsp; &nbsp; &nbsp;  });\r\n&nbsp;  });\r\n}\r\n​\r\nfunction off() {\r\n&nbsp;  sshConnect.connect(user, password, host, port, () =&gt; {\r\n&nbsp; &nbsp; &nbsp;  sshConnect.executeCommand(\'off.sh\', function() {\r\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  sshConnect.disconnect();\r\n&nbsp; &nbsp; &nbsp;  });\r\n&nbsp;  });\r\n}\r\n​\r\nfunction brightness(level) {\r\n&nbsp;  sshConnect.connect(user, password, host, port, () =&gt; {\r\n&nbsp; &nbsp; &nbsp;  sshConnect.executeCommand(\'light.sh \'+level, function() {\r\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  sshConnect.disconnect();\r\n&nbsp; &nbsp; &nbsp;  });\r\n&nbsp;  });\r\n} &nbsp; &nbsp;\r\n​\r\ndocument.addEventListener(\'deviceready\', onDeviceReady, false);\r\n​\r\nfunction onDeviceReady() {\r\n&nbsp;  sshConnect = cordova.plugins.sshConnect;\r\n​\r\n&nbsp;  document.getElementById(\"onButton\").addEventListener(\"click\", () =&gt; {\r\n&nbsp; &nbsp;  // Send \"on\" command to light\r\n&nbsp; &nbsp;  console.log(\"Light turned on\");\r\n&nbsp; &nbsp;  on();\r\n&nbsp;  });\r\n​\r\n&nbsp;  document.getElementById(\"offButton\").addEventListener(\"click\", () =&gt; {\r\n&nbsp; &nbsp;  // Send \"off\" command to light\r\n&nbsp; &nbsp;  console.log(\"Light turned off\");\r\n&nbsp; &nbsp;  off();\r\n&nbsp;  });\r\n​\r\n&nbsp;  document.getElementById(\"brightnessSlider\").addEventListener(\"input\", () =&gt; {\r\n&nbsp; &nbsp;  const level = document.getElementById(\"brightnessSlider\").value;\r\n&nbsp; &nbsp;  // Send brightness value to light\r\n&nbsp; &nbsp;  console.log(\"Brightness set to:\", level);\r\n&nbsp; &nbsp;  brightness(level);\r\n&nbsp;  });\r\n}\r\n</pre>\n<p style=\"color: rgb(209, 203, 199) !important;\">\n<br style=\"\">\n</p>\n\n\n',403,125,0,'CC-BY-SA','python, bash, cordova',0,0,1),
(4334,'2025-03-13','24-25 New Years Eve show episode 3',6691,'The HPR community comes together to say happy new year and chat','\n<p>\n<br>\n</p>\n<p>\n-----------------</p>\n<p>\nNYE 2025 3</p>\n<p>\n------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nViolin&nbsp;</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Violin\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Violin</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.yamaha.com/en/musical_instrument_guide/violin/structure/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.yamaha.com/en/musical_instrument_guide/violin/structure/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nViola&nbsp;</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Viola\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Viola</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nViolin Vs Viola&nbsp;</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.gear4music.com/blog/viola-vs-violin/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.gear4music.com/blog/viola-vs-violin/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nGuitar&nbsp;</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Guitar\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Guitar</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nGuitar Frets</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.liveabout.com/what-guitar-frets-are-and-why-they-matter-4686563\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.liveabout.com/what-guitar-frets-are-and-why-they-matter-4686563</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nNyckelharpa (aka Key Harp)</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.nyckelharpa.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.nyckelharpa.org/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Nyckelharpa\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Nyckelharpa</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nAspbergers Syndrome</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.webmd.com/brain/autism/mental-health-aspergers-syndrome\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.webmd.com/brain/autism/mental-health-aspergers-syndrome</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nMumble</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.mumble.info/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.mumble.info/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nJitsi</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://jitsi.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://jitsi.org/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nSweden and the relationship with the Nyckelharpa</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://ich.unesco.org/en/BSP/nyckelharpa-network-an-innovative-dissemination-of-a-music-and-instrument-building-tradition-with-roots-in-sweden-01976\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://ich.unesco.org/en/BSP/nyckelharpa-network-an-innovative-dissemination-of-a-music-and-instrument-building-tradition-with-roots-in-sweden-01976</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nClarinet</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.yamaha.com/en/musical_instrument_guide/clarinet/structure/structure002.html\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.yamaha.com/en/musical_instrument_guide/clarinet/structure/structure002.html</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nMandolin</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.britannica.com/art/mandolin\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.britannica.com/art/mandolin</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nLap Steel Guitar</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"http://www.frets.com/FretsPages/General/Glossary/LapSteel/lapsteel.html\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttp://www.frets.com/FretsPages/General/Glossary/LapSteel/lapsteel.html</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nJacksonville, Florida</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.jacksonville.gov/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.jacksonville.gov/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nBoston</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.boston.gov/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.boston.gov/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nUrban Sprawl</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://campuspress.yale.edu/ledger/urban-sprawl-a-growing-problem/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://campuspress.yale.edu/ledger/urban-sprawl-a-growing-problem/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nFort Myers, Florida</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.cityftmyers.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.cityftmyers.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nSouth Carolina</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.britannica.com/place/South-Carolina\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.britannica.com/place/South-Carolina</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nNorth Cackalacky</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://avltoday.6amcity.com/examining-the-origins-of-ncs-nickname-north-cackalacky\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://avltoday.6amcity.com/examining-the-origins-of-ncs-nickname-north-cackalacky</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nMissoula, Montana</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.ci.missoula.mt.us/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.ci.missoula.mt.us/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nCloud Chamber</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.iop.org/explore-physics/physics-around-you/understanding-surroundings/cloud-chamber\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.iop.org/explore-physics/physics-around-you/understanding-surroundings/cloud-chamber</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nVinyl Records</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://victrola.com/blogs/articles/how-do-vinyl-records-work\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://victrola.com/blogs/articles/how-do-vinyl-records-work</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nginx</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://nginx.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://nginx.org/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nPython</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.python.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.python.org/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nThe Linux Lugcast</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://linuxlugcast.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://linuxlugcast.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nArchive Dot Org</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://archive.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://archive.org/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nPine 64</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://pine64.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://pine64.org/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nWordpress</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://wordpress.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://wordpress.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nPowerPress</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://wordpress.org/plugins/powerpress/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://wordpress.org/plugins/powerpress/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nBluberry Press</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://blubrry.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://blubrry.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nRSS Feed</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://rss.com/blog/how-do-rss-feeds-work/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://rss.com/blog/how-do-rss-feeds-work/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nOrangePi Zero 3</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/details/Orange-Pi-Zero-3.html\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttp://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/details/Orange-Pi-Zero-3.html</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nOGG file format</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://xiph.org/ogg/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://xiph.org/ogg/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nMP3 file format</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.geeksforgeeks.org/mp3-file-format-mp3-extension/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.geeksforgeeks.org/mp3-file-format-mp3-extension/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nRaspberry Pi Pico / Pico W</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.raspberrypi.com/products/raspberry-pi-pico/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.raspberrypi.com/products/raspberry-pi-pico/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nNextcloud</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://nextcloud.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://nextcloud.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nNextcloud Calendar Plugin</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://apps.nextcloud.com/apps/calendar\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://apps.nextcloud.com/apps/calendar</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nHPR Episode 4058&nbsp;</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://hackerpublicradio.org/eps/hpr4058/index.html\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://hackerpublicradio.org/eps/hpr4058/index.html</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nReal ID</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.dhs.gov/real-id\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.dhs.gov/real-id</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nBank of America</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.bankofamerica.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.bankofamerica.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nKnow Your Customer Policy</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.investopedia.com/terms/k/knowyourclient.asp\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.investopedia.com/terms/k/knowyourclient.asp</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nBullet Button (firearms)</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.bulletbutton.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.bulletbutton.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nBrowning 50 caliber rifle</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/M2_Browning\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/M2_Browning</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nBarrett Arms</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.browning.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.browning.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nBarret 416&nbsp;</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://barrett.net/products/accessories/ammunition/416barrett/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://barrett.net/products/accessories/ammunition/416barrett/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nSoviet 8mm anti-tank rifle</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://warfarehistorynetwork.com/article/the-ptrs-41-and-other-russian-anti-tank-rifles/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://warfarehistorynetwork.com/article/the-ptrs-41-and-other-russian-anti-tank-rifles/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nTungstun Core German Bullet ( Spitzgeschoß mit Hartkern)</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://panzerworld.com/german-ammunition-nomenclature\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://panzerworld.com/german-ammunition-nomenclature</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nLargest Cal air rifle&nbsp;</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.outdoorlife.com/gear/aea-zeus-review/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.outdoorlife.com/gear/aea-zeus-review/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nArmy Core of Engineers</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.usace.army.mil/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.usace.army.mil/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nDeer Island Sewage Treatment Plant</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.mwra.com/your-sewer-system/sewer-treatment-facilities/deer-island-wastewater-treatment-plant\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.mwra.com/your-sewer-system/sewer-treatment-facilities/deer-island-wastewater-treatment-plant</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nMethane as an energy source</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://archive.epa.gov/climatechange/kids/solutions/technologies/methane.html\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://archive.epa.gov/climatechange/kids/solutions/technologies/methane.html</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nBeetlejuice Beetlejuice</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.rottentomatoes.com/m/beetlejuice_beetlejuice\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.rottentomatoes.com/m/beetlejuice_beetlejuice</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nGame of Thrones DVD Set</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://collider.com/game-of-thrones-complete-collection-review/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://collider.com/game-of-thrones-complete-collection-review/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nArmbian</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.armbian.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.armbian.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nEtherpad</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://etherpad.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://etherpad.org/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nYunohost</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://yunohost.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://yunohost.org/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nDocker</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.docker.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.docker.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nWyse Computer Thin Client</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Wyse\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Wyse</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nHarmonies (Board Game)</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://boardgamegeek.com/boardgame/414317/harmonies\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://boardgamegeek.com/boardgame/414317/harmonies</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nTapple (Board Game)</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://boardgamegeek.com/boardgame/129556/tapple\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://boardgamegeek.com/boardgame/129556/tapple</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nPeanut Butter Whiskey</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.skrewballwhiskey.com/en/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.skrewballwhiskey.com/en/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nSalted Caramel Whiskey - old Smokey brand</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://olesmoky.com/products/salty-caramel-flavored-whiskey\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://olesmoky.com/products/salty-caramel-flavored-whiskey</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nMaple Flavor Crown Royal</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.crownroyal.com/canadian-whisky/crown-royal-maple\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.crownroyal.com/canadian-whisky/crown-royal-maple</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nJack Daniels Tennessee Honey</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.jackdaniels.com/en-us/whiskey/tennessee-honey\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.jackdaniels.com/en-us/whiskey/tennessee-honey</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nJim Beam Honey Bourbon</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.jimbeam.com/en-us/bourbons/jim-beam-honey\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.jimbeam.com/en-us/bourbons/jim-beam-honey</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nJim Beam Vanilla Bourbon</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.jimbeam.com/en-us/bourbons/jim-beam-vanilla\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.jimbeam.com/en-us/bourbons/jim-beam-vanilla</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nMaine</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.maine.gov/portal/index.html\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.maine.gov/portal/index.html</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nRaspberry Pi 5</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.raspberrypi.com/products/raspberry-pi-5/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.raspberrypi.com/products/raspberry-pi-5/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nX2Go&nbsp;</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://wiki.x2go.org/doku.php\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://wiki.x2go.org/doku.php</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nUNIX</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://unix.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://unix.org/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nPFSense</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.pfsense.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.pfsense.org/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nVLAN</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.techtarget.com/searchnetworking/definition/virtual-LAN\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.techtarget.com/searchnetworking/definition/virtual-LAN</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nVPN</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://usa.kaspersky.com/resource-center/definitions/what-is-a-vpn\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://usa.kaspersky.com/resource-center/definitions/what-is-a-vpn</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nNord VPN</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://nordvpn.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://nordvpn.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nVerizon Cellular</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.verizon.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.verizon.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nGoogle Voice</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://voice.google.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://voice.google.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nGoogle Drive</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://drive.google.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://drive.google.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nThunderbird</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.thunderbird.net/en-US/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.thunderbird.net/en-US/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nUsenet&nbsp;</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Usenet\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Usenet</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nGoogle Groups</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://groups.google.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://groups.google.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nSymlinks</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.komprise.com/glossary_terms/symbolic-link/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.komprise.com/glossary_terms/symbolic-link/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nTubi</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.komprise.com/glossary_terms/symbolic-link/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.komprise.com/glossary_terms/symbolic-link/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nYoutube</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.youtube.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.youtube.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nuBlock Origin</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://ublockorigin.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://ublockorigin.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nPIE (Youtube/Twitch ad blocker)</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://pie.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://pie.org/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nBitcoin</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://bitcoin.org/en/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://bitcoin.org/en/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nElon Musk</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Elon_Musk\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Elon_Musk</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nPeter Dinklage</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Peter_Dinklage\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Peter_Dinklage</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nDothraki</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://dothraki.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://dothraki.org/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nValyrian</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://gameofthrones.fandom.com/wiki/High_Valyrian\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://gameofthrones.fandom.com/wiki/High_Valyrian</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\n<em>\nKhaleesi</em>\n</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://gameofthrones.fandom.com/wiki/Khaleesi\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://gameofthrones.fandom.com/wiki/Khaleesi</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nManscaping</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.usa.philips.com/c-e/mens-grooming/body-grooming/how-to-manscape.html\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.usa.philips.com/c-e/mens-grooming/body-grooming/how-to-manscape.html</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://gillette.com/en-us/shaving-tips/manscaping/pubic-area-grooming-guide\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://gillette.com/en-us/shaving-tips/manscaping/pubic-area-grooming-guide</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nCutting Back the Forest</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.brooklyngrooming.com/blogs/news/10984365-manscaping-cant-see-the-tree-for-the-forest\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.brooklyngrooming.com/blogs/news/10984365-manscaping-cant-see-the-tree-for-the-forest</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nHitler Stash</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.urbandictionary.com/define.php?term=hitlerstache\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.urbandictionary.com/define.php?term=hitlerstache</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nMr. T</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Mr._T\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Mr._T</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nMullet</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.urbandictionary.com/define.php?term=pubic%20mullet\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.urbandictionary.com/define.php?term=pubic%20mullet</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nMatrix</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://matrix.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://matrix.org/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nOld Growth Forest</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.fs.usda.gov/sites/default/files/mature-and-old-growth-forests-tech.pdf\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.fs.usda.gov/sites/default/files/mature-and-old-growth-forests-tech.pdf</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nBattle of Saipan</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.history.navy.mil/browse-by-topic/wars-conflicts-and-operations/world-war-ii/1944/saipan.html\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.history.navy.mil/browse-by-topic/wars-conflicts-and-operations/world-war-ii/1944/saipan.html</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\n60 Minutes special - Vietname war solider returns severed arm</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.bbc.com/news/world-asia-23124347\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.bbc.com/news/world-asia-23124347</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nBig and Rich - 8th of November song</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.8thofnovember.com/lyrics/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.8thofnovember.com/lyrics/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nJellyfin</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://jellyfin.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://jellyfin.org/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nRound Robin Load Balancer</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.f5.com/glossary/round-robin-load-balancing\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.f5.com/glossary/round-robin-load-balancing</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nWGET</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.gnu.org/software/wget/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.gnu.org/software/wget/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nSuper Mario Odyssey</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.mariowiki.com/Super_Mario_Odyssey\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.mariowiki.com/Super_Mario_Odyssey</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nCappy (Super Mario Odyssey)</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.mariowiki.com/Cappy\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.mariowiki.com/Cappy</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nMineTest</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.luanti.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.luanti.org/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nMineCraft</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.minecraft.net/en-us\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.minecraft.net/en-us</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nMastadon</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://joinmastodon.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://joinmastodon.org/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nBetter Bachlor Podcast (Youtube)</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.youtube.com/betterbachelor\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.youtube.com/betterbachelor</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nDistro Hoppers Digest</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://distrohoppersdigest.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://distrohoppersdigest.org/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nMintcast</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://mintcast.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://mintcast.org/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nProtonVPN</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://protonvpn.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://protonvpn.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nChromebook</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.google.com/chromebook/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.google.com/chromebook/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nAOSP</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://source.android.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://source.android.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nThorium Browser</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://thorium.rocks/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://thorium.rocks/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nThorium OS</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://thorium.rocks/thoriumos\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://thorium.rocks/thoriumos</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nBliss OS</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://blissos.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://blissos.org/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nReact OS</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://reactos.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://reactos.org/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nGNUHerd</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.gnu.org/software/hurd/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.gnu.org/software/hurd/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nPineTab2</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://pine64.com/product/pinetab2-10-1-8gb-128gb-linux-tablet-with-detached-backlit-keyboard/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://pine64.com/product/pinetab2-10-1-8gb-128gb-linux-tablet-with-detached-backlit-keyboard/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nArch Linux</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://archlinux.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://archlinux.org/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nDebian Linux</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.debian.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.debian.org/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nPlasma Mobile</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://plasma-mobile.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://plasma-mobile.org/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nKDE 4</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/KDE_Plasma_4\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/KDE_Plasma_4</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nKDE 5</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/KDE_Plasma_5\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/KDE_Plasma_5</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nI5 Processor</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.intel.com/content/www/us/en/products/details/processors/core/i5.html\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.intel.com/content/www/us/en/products/details/processors/core/i5.html</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nI7 Processor</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.intel.com/content/www/us/en/products/details/processors/core/i7.html\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.intel.com/content/www/us/en/products/details/processors/core/i7.html</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nBodhi Linux</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.bodhilinux.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.bodhilinux.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nMX Linux</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://mxlinux.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://mxlinux.org/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nSecure Boot</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://learn.microsoft.com/en-us/windows-hardware/design/device-experiences/oem-secure-boot\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://learn.microsoft.com/en-us/windows-hardware/design/device-experiences/oem-secure-boot</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nXubuntu</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://xubuntu.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://xubuntu.org/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nFull Circle Weekly News</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://fullcirclemagazine.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://fullcirclemagazine.org/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nRonnie Tucker&nbsp;</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://ronnietucker.co.uk/about\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://ronnietucker.co.uk/about</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nBandCamp</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://bandcamp.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://bandcamp.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nVentoy</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.ventoy.net/en/index.html\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.ventoy.net/en/index.html</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nChris Fisher</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.jupiterbroadcasting.com/hosts/chris/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.jupiterbroadcasting.com/hosts/chris/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nLibreBoot</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://libreboot.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://libreboot.org/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nSilicon Power USB&nbsp;</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.silicon-power.com/web/category/usbdrives\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.silicon-power.com/web/category/usbdrives</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nMoksha Desktop&nbsp;</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.bodhilinux.com/moksha-desktop/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.bodhilinux.com/moksha-desktop/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nEnlightenment Desktop</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.enlightenment.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.enlightenment.org/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nManjaro</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://manjaro.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://manjaro.org/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nRobert Wiley - Bodhi Linux Dev</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.bodhilinux.com/2019/06/11/new-lead-developer-robert-ylee-wiley/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.bodhilinux.com/2019/06/11/new-lead-developer-robert-ylee-wiley/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nEscuelas Linux</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://escuelaslinux.sourceforge.io/english/index.html\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://escuelaslinux.sourceforge.io/english/index.html</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nLeaf Browser</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://leafbrowser.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://leafbrowser.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nChromium</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.chromium.org/chromium-projects/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.chromium.org/chromium-projects/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n\n\n',269,0,1,'CC-BY-SA','new years,HPR,community',0,0,1),
(4344,'2025-03-27','24-25 New Years Eve show episode 4',6353,'The HPR community comes together to say happy new year and chat','\n<p>\n-----------------</p>\n<p>\nNYE 2025 4</p>\n<p>\n------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</p>\n<p>\n<br>\n</p>\n<p>\nJimmy Carter and the Govenor of Texas</p>\n<p>\n<a href=\"https://www.cbsnews.com/texas/news/texas-governor-greg-abbott-sends-condolences-to-rosalynn-carter-who-died-in-2023-following-jimmy-carters-death/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.cbsnews.com/texas/news/texas-governor-greg-abbott-sends-condolences-to-rosalynn-carter-who-died-in-2023-following-jimmy-carters-death/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nFinger Cot</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Finger_cot\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Finger_cot</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nFilk Music</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Filk_music\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Filk_music</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nMoss Bliss</p>\n<p>\n<a href=\"https://mordewis.bandcamp.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://mordewis.bandcamp.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nGeorgia Filk Convention</p>\n<p>\n<a href=\"https://www.gafilk.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.gafilk.org/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nLiquid Callus</p>\n<p>\n<a href=\"https://www.amazon.com/Rock-Tips-Liquid-Formula-Stringed-Instruments/dp/B008MY3VU2\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.amazon.com/Rock-Tips-Liquid-Formula-Stringed-Instruments/dp/B008MY3VU2</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nEnya Nextg Guitar</p>\n<p>\n<a href=\"https://www.enya-music.com/collections/guitar\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.enya-music.com/collections/guitar</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nGuitar Gloves</p>\n<p>\n<a href=\"https://www.amazon.com/guitar-glove/s?k=guitar+glove\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.amazon.com/guitar-glove/s?k=guitar+glove</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nSoju</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Soju\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Soju</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nBird Dog Whiskey</p>\n<p>\n<a href=\"https://birddogwhiskey.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://birddogwhiskey.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nDelta 8 vs Delta 9</p>\n<p>\n<a href=\"https://jcannabisresearch.biomedcentral.com/articles/10.1186/s42238-021-00115-8\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://jcannabisresearch.biomedcentral.com/articles/10.1186/s42238-021-00115-8</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nBodhi Linux</p>\n<p>\n<a href=\"https://www.bodhilinux.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.bodhilinux.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nInternet Archive</p>\n<p>\n<a href=\"https://archive.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://archive.org/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nTrump buy Greenland</p>\n<p>\n<a href=\"https://www.foxnews.com/politics/make-greenland-great-again-trumps-house-gop-allies-unveil-bill-authorize-countrys-purchase\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.foxnews.com/politics/make-greenland-great-again-trumps-house-gop-allies-unveil-bill-authorize-countrys-purchase</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nPierre Poilievre</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Pierre_Poilievre\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Pierre_Poilievre</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nChrystia Freeland</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Chrystia_Freeland\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Chrystia_Freeland</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nJustin Trudeau</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Justin_Trudeau\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Justin_Trudeau</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nNew Democratic Party</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/New_Democratic_Party\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/New_Democratic_Party</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nTrump Bankruptcies</p>\n<p>\n<a href=\"https://www.abi.org/feed-item/examining-donald-trump%E2%80%99s-chapter-11-bankruptcies\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.abi.org/feed-item/examining-donald-trump%E2%80%99s-chapter-11-bankruptcies</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nElmers Glue</p>\n<p>\n<a href=\"https://www.elmers.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.elmers.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nPentagon Federal Credit Union</p>\n<p>\n<a href=\"https://www.penfed.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.penfed.org/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nUS Draft</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Conscription_in_the_United_States\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Conscription_in_the_United_States</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nVienna Susages</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Vienna_sausage\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Vienna_sausage</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nVegan vs Vegetarian</p>\n<p>\n<a href=\"https://www.healthline.com/nutrition/vegan-vs-vegetarian\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.healthline.com/nutrition/vegan-vs-vegetarian</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nBeyond Meat sausage</p>\n<p>\n<a href=\"https://www.beyondmeat.com/en-US/products/beyond-sausage\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.beyondmeat.com/en-US/products/beyond-sausage</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nRaspberry PI 5</p>\n<p>\n<a href=\"https://www.raspberrypi.com/products/raspberry-pi-5/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.raspberrypi.com/products/raspberry-pi-5/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nMIT Open Course Ware</p>\n<p>\n<a href=\"https://ocw.mit.edu/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://ocw.mit.edu/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nHAM License</p>\n<p>\n<a href=\"http://www.arrl.org/getting-licensed\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttp://www.arrl.org/getting-licensed</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n89 Corolla</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Toyota_Corolla_(E90)#North_America\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Toyota_Corolla_(E90)#North_America</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nAutism</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Autism\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Autism</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nAsperger syndrome</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Asperger_syndrome\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Asperger_syndrome</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nNarcissistic</p>\n<p>\n<a href=\"https://www.helpguide.org/mental-health/personality-disorders/narcissistic-personality-disorder\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.helpguide.org/mental-health/personality-disorders/narcissistic-personality-disorder</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nThermal Paste</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Thermal_paste\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Thermal_paste</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n7-11</p>\n<p>\n<a href=\"https://www.7-eleven.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.7-eleven.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nMIT</p>\n<p>\n<a href=\"https://www.mit.edu/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.mit.edu/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nWild Pie</p>\n<p>\n<a href=\"https://www.wildpie.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.wildpie.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nFollow your Heart Cheese</p>\n<p>\n<a href=\"https://followyourheart.com/product_category/dairy-free-cheese/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://followyourheart.com/product_category/dairy-free-cheese/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nMorning Star&nbsp;</p>\n<p>\n<a href=\"https://www.morningstarfarms.com/en_US/products/veggie-burgers.html\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.morningstarfarms.com/en_US/products/veggie-burgers.html</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nBoca Burger</p>\n<p>\n<a href=\"https://www.kraftheinz.com/boca\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.kraftheinz.com/boca</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nNip/Tuck</p>\n<p>\n<a href=\"https://www.imdb.com/title/tt0361217/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.imdb.com/title/tt0361217/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nAmerican Cheese</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/American_cheese\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/American_cheese</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nBoxing Day</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Boxing_Day\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Boxing_Day</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nMumble</p>\n<p>\n<a href=\"https://www.mumble.info/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.mumble.info/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nVPN</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Virtual_private_network\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Virtual_private_network</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nPfsense</p>\n<p>\n<a href=\"https://www.pfsense.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.pfsense.org/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nOpen wrt</p>\n<p>\n<a href=\"https://openwrt.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://openwrt.org/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nAC wifi protocol</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/IEEE_802.11ac-2013\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/IEEE_802.11ac-2013</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nOpen Sense</p>\n<p>\n<a href=\"https://opnsense.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://opnsense.org/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nLinux</p>\n<p>\n<a href=\"https://www.linux.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.linux.org/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nWiindows 7</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Windows_7\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Windows_7</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nVAX system</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/VAX\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/VAX</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nNovell</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Novell\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Novell</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nPDP-11</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/PDP-11\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/PDP-11</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nLotus Notes</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Lotus_Software\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Lotus_Software</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nRed Hat Linux</p>\n<p>\n<a href=\"https://www.redhat.com/en\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.redhat.com/en</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nDebian Linux</p>\n<p>\n<a href=\"https://www.debian.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.debian.org/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nUbuntu Linux</p>\n<p>\n<a href=\"https://ubuntu.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://ubuntu.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nLinux Mint</p>\n<p>\n<a href=\"https://linuxmint.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://linuxmint.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nOpen Suse</p>\n<p>\n<a href=\"https://www.opensuse.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.opensuse.org/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n\n\n',269,0,1,'CC-BY-SA','new years,HPR,community',0,0,1),
(4354,'2025-04-10','24-25 New Years Eve show episode 5',6459,'The HPR community comes together to say happy new year and chat','\n<p>\n<br>\n</p>\n<p>\n-----------------</p>\n<p>\nNYE 2025 5</p>\n<p>\n------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nPulse Audio</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://pulse.audio/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://pulse.audio/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nTech and Coffee</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://techandcoffee.info/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://techandcoffee.info/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nNetgear Switch</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.netgear.com/business/wired/switches/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.netgear.com/business/wired/switches/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nMagiford Books by KM Shea</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.goodreads.com/series/367723-magiford-supernatural-city\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.goodreads.com/series/367723-magiford-supernatural-city</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nDan Willis Arcane Case Books</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://danwillisauthor.com/product-category/arcane-casebook-series/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://danwillisauthor.com/product-category/arcane-casebook-series/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nBrad Magnarella Prof Croft Books</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.goodreads.com/series/192507-prof-croft\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.goodreads.com/series/192507-prof-croft</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nAuld Lang Syne&nbsp;</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.themorgan.org/sites/default/files/images/exhibitions/AuldLangSyne.pdf\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.themorgan.org/sites/default/files/images/exhibitions/AuldLangSyne.pdf</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nBagpipes</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.getours.com/expert-travel-advice/history-traditions-celebrations/the-history-of-bagpipes-in-scotland\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.getours.com/expert-travel-advice/history-traditions-celebrations/the-history-of-bagpipes-in-scotland</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nUilleann<strong>\n Bag Pipes</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Uilleann_pipes\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Uilleann_pipes</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nGlasgow, Scotland</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.visitglasgow.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.visitglasgow.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nIBM</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.ibm.com/us-en\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.ibm.com/us-en</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nWells Fargo</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.wellsfargo.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.wellsfargo.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nFirst Union</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/First_Union\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/First_Union</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nWachovia</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Wachovia\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Wachovia</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nBank of America</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.bankofamerica.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.bankofamerica.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nDallas Fort Worth</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.tourtexas.com/texas-maps/dallas-fort-worth-map\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.tourtexas.com/texas-maps/dallas-fort-worth-map</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nLotus SmartSuite</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/IBM_Lotus_SmartSuite\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/IBM_Lotus_SmartSuite</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\nBlackberry</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.blackberry.com/us/en\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.blackberry.com/us/en</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nOpen Office</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"http://www.openoffice.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttp://www.openoffice.org/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\nLotus 1-2-3</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Lotus_1-2-3\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Lotus_1-2-3</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\n386/SX</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.computerworld.com/article/1488343/flashback-remembering-the-386sx.html\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.computerworld.com/article/1488343/flashback-remembering-the-386sx.html</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nWordPerfect</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.wordperfect.com/en/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.wordperfect.com/en/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nDbase III</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://winworldpc.com/product/dbase/iii-plus-v11\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://winworldpc.com/product/dbase/iii-plus-v11</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nBASIC</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://arstechnica.com/gadgets/2024/05/the-basic-programming-language-turns-60/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://arstechnica.com/gadgets/2024/05/the-basic-programming-language-turns-60/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nBipolar</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.mayoclinic.org/diseases-conditions/bipolar-disorder/symptoms-causes/syc-20355955\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.mayoclinic.org/diseases-conditions/bipolar-disorder/symptoms-causes/syc-20355955</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nAutism</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.autismspeaks.org/what-autism\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.autismspeaks.org/what-autism</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nMVS&nbsp;</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://openmainframeproject.org/blog/an-introduction-to-mvs-ibm-mainframe-and-z-os/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://openmainframeproject.org/blog/an-introduction-to-mvs-ibm-mainframe-and-z-os/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nLotus Notes</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://info.docxellent.com/blog/what-is-lotus-notes\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://info.docxellent.com/blog/what-is-lotus-notes</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nDeutsche Bank</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.db.com/index?language_id=1&amp;kid=sl.redirect-en.shortcut\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.db.com/index?language_id=1&amp;kid=sl.redirect-en.shortcut</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nIndex Funds</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.investor.gov/introduction-investing/investing-basics/investment-products/mutual-funds-and-exchange-traded-4\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.investor.gov/introduction-investing/investing-basics/investment-products/mutual-funds-and-exchange-traded-4</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nETFs</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.investopedia.com/terms/e/etf.asp\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.investopedia.com/terms/e/etf.asp</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nIIPR&nbsp;ETF</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.marketwatch.com/investing/stock/iipr\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.marketwatch.com/investing/stock/iipr</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nPIANO</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.yamaha.com/en/musical_instrument_guide/piano/structure/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.yamaha.com/en/musical_instrument_guide/piano/structure/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nCraigslist</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.craiglist.org\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.craiglist.org</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nmouth harp</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.carvedculture.com/blogs/articles/mouth-jaw-harp-the-complete-guide\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.carvedculture.com/blogs/articles/mouth-jaw-harp-the-complete-guide</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nAuto Harp</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://dulcimer.net/what-is-an-autoharp/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://dulcimer.net/what-is-an-autoharp/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nCeltic Lap Harp</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Celtic_harp\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Celtic_harp</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nKazoos</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://kazoos.com/pages/the-kazoo-its-physics-history-and-importance-for-modern-music\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://kazoos.com/pages/the-kazoo-its-physics-history-and-importance-for-modern-music</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nPenny Whistle (Tin Whistle)</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://blog.mcneelamusic.com/irish-tin-whistle-guide/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://blog.mcneelamusic.com/irish-tin-whistle-guide/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nMultiMeter</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.fluke.com/en-us/learn/blog/electrical/what-is-a-digital-multimeter\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.fluke.com/en-us/learn/blog/electrical/what-is-a-digital-multimeter</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nLight Saber</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://starwars.fandom.com/wiki/Lightsaber\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://starwars.fandom.com/wiki/Lightsaber</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nLight Saber Crystals</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://starwars.fandom.com/wiki/Kyber_crystal\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://starwars.fandom.com/wiki/Kyber_crystal</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\nCristal (Champagne)</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.louis-roederer.com/en/wine/cristal\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.louis-roederer.com/en/wine/cristal</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nGodwin\'s Law</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Godwin%27s_law\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Godwin%27s_law</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nHuey Magoo\'s Chicken Fingers</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://hueymagoos.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://hueymagoos.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nFort Lauderdale</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.fortlauderdale.gov/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.fortlauderdale.gov/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nPennsacola</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.visitpensacola.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.visitpensacola.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nNew Hampshire</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.nh.gov/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.nh.gov/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nNew Hampster</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.change.org/p/make-new-hampshire-new-hampster-a-call-for-a-state-nickname-change\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.change.org/p/make-new-hampshire-new-hampster-a-call-for-a-state-nickname-change</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nFuddruckers</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.fuddruckers.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.fuddruckers.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nHooters</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.hooters.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.hooters.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nTwin Peaks (restaurant)</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://twinpeaksrestaurant.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://twinpeaksrestaurant.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nTwin Peaks (TV Show)</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://twinpeaks.fandom.com/wiki/Twin_Peaks\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://twinpeaks.fandom.com/wiki/Twin_Peaks</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nBuc-ees</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://buc-ees.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://buc-ees.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nTampa</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.visittampabay.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.visittampabay.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nOklahoma</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.travelok.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.travelok.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nLawton, Oklahoma</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.lawtonok.gov/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.lawtonok.gov/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nBuc-ees Sandwiches&nbsp;</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.al.com/life/2021/09/whats-the-best-sandwich-at-buc-ees-spoiler-alert-its-not-bbq-brisket.html\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.al.com/life/2021/09/whats-the-best-sandwich-at-buc-ees-spoiler-alert-its-not-bbq-brisket.html</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\nBuc-ees Fudge&nbsp;</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.mashed.com/1414285/best-buc-ees-fudge-flavors-include-sampler-box/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.mashed.com/1414285/best-buc-ees-fudge-flavors-include-sampler-box/</a>\n&nbsp;</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\nBuc-ees Jerky</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.southernliving.com/best-buc-ees-jerky-flavors-7371168\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.southernliving.com/best-buc-ees-jerky-flavors-7371168</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nYogi Berra</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.baseball-reference.com/players/b/berrayo01.shtml\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.baseball-reference.com/players/b/berrayo01.shtml</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nSpartenburg, NC</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.cityofspartanburg.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.cityofspartanburg.org/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nIceland</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.visiticeland.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.visiticeland.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nGreenland</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://visitgreenland.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://visitgreenland.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nYueungling</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.yuengling.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.yuengling.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nHacker Pschorr</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.hacker-pschorr.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.hacker-pschorr.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nErdinger</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://us.erdinger.de/beer.html\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://us.erdinger.de/beer.html</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nWarsteiner</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.warsteiner.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.warsteiner.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nSchlitz</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"http://schlitzbrewing.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttp://schlitzbrewing.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nOld English 800</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.molsoncoors.com/brands/our-brands/olde-english-800?region=951\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.molsoncoors.com/brands/our-brands/olde-english-800?region=951</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nPabst Blue Ribbon</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://pabstblueribbon.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://pabstblueribbon.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nTotal Wine</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.totalwine.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.totalwine.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nRed Dwarf</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://reddwarf.co.uk/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://reddwarf.co.uk/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nDoctor Who</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.doctorwho.tv/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.doctorwho.tv/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nCosmic Background Radition</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Cosmic_background_radiation\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Cosmic_background_radiation</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nTV Static</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Noise_(video)\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Noise_(video)</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nRed Dwarf Books</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.goodreads.com/series/51701-red-dwarf\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.goodreads.com/series/51701-red-dwarf</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nPattya Thailand&nbsp;</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.tourismthailand.org/Destinations/Provinces/Pattaya/469\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.tourismthailand.org/Destinations/Provinces/Pattaya/469</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nKali Temple</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://wanderboat.ai/attractions/thailand/chon-buri-province/the-temple-of-the-goddess-kali-at-pattaya/frslAS6TRJ6wZruRHD0E5w\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://wanderboat.ai/attractions/thailand/chon-buri-province/the-temple-of-the-goddess-kali-at-pattaya/frslAS6TRJ6wZruRHD0E5w</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nKhao Kheow Open Zoo</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Khao_Kheow_Open_Zoo\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Khao_Kheow_Open_Zoo</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nMoo Deng Pygmi Hippo Baby</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.bbc.com/news/articles/cy848292dr4o\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.bbc.com/news/articles/cy848292dr4o</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nMoo Deng Keychains</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.etsy.com/market/moo_deng_keychain\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.etsy.com/market/moo_deng_keychain</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nMoo&nbsp;Deng Plushie</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://moodengplushie.com/product-category/moo-deng-plush/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://moodengplushie.com/product-category/moo-deng-plush/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nI Want A Hippopotamus For Christmas</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://youtu.be/OjPm0o04lGE\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://youtu.be/OjPm0o04lGE</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nPlural of Hippopotamus</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.grammarpalette.com/whats-the-plural-of-hippopotamus-is-it-hippopotamuses/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.grammarpalette.com/whats-the-plural-of-hippopotamus-is-it-hippopotamuses/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\n1913 Ingram Kitchen Clock&nbsp;</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://clockrepairstudio.com/brands-we-service/ingraham-clock-company-history/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://clockrepairstudio.com/brands-we-service/ingraham-clock-company-history/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nEscape Wheel (clock)</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Escapement\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Escapement</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nUrandom Podcast</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://urandom-podcast.info/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://urandom-podcast.info/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nImposter Syndrome</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Impostor_syndrome\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Impostor_syndrome</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nDEC</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Digital_Equipment_Corporation\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Digital_Equipment_Corporation</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nAARPA Net</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://cs.stanford.edu/people/eroberts/courses/soco/projects/distributed-computing/html/history.html\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://cs.stanford.edu/people/eroberts/courses/soco/projects/distributed-computing/html/history.html</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nSnowball Ice Microphone</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://cs.stanford.edu/people/eroberts/courses/soco/projects/distributed-computing/html/history.html\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://cs.stanford.edu/people/eroberts/courses/soco/projects/distributed-computing/html/history.html</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nPenguins Hockey Team</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.nhl.com/penguins/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.nhl.com/penguins/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nAvalanche Hockey Team</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.nhl.com/avalanche/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.nhl.com/avalanche/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nJets Hockey Team</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.nhl.com/jets/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.nhl.com/jets/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nLikebook Mars E-Reader</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://goodereader.com/blog/electronic-readers/boyue-likebook-mars-e-reader-review\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://goodereader.com/blog/electronic-readers/boyue-likebook-mars-e-reader-review</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nOnyx Boox Go Color 7 E-ink Reader</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://onyxboox.com/boox_gocolor7\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://onyxboox.com/boox_gocolor7</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nPinecil Soldering Iron</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://pine64.com/product/pinecil-smart-mini-portable-soldering-iron/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://pine64.com/product/pinecil-smart-mini-portable-soldering-iron/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nABS</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.simplify3d.com/resources/materials-guide/abs/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.simplify3d.com/resources/materials-guide/abs/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nPLA</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.simplify3d.com/resources/materials-guide/pla/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.simplify3d.com/resources/materials-guide/pla/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nCreality CR-10</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.creality.com/products/creality-cr-10-smart-3d-printer\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.creality.com/products/creality-cr-10-smart-3d-printer</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nCreality CR-10 Pro</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.creality.com/products/creality-cr-10-smart-pro-3d-printer\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.creality.com/products/creality-cr-10-smart-pro-3d-printer</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nBambu A1&nbsp;</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://us.store.bambulab.com/products/a1\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://us.store.bambulab.com/products/a1</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nDan Carlin Hardcore History Podcast</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.dancarlin.com/hardcore-history-series/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.dancarlin.com/hardcore-history-series/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nHistory That Doesn\'t Suck Podcast</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.htdspodcast.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.htdspodcast.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nBader Meinhoff Effect</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://science.howstuffworks.com/life/inside-the-mind/human-brain/baader-meinhof-phenomenon.htm\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://science.howstuffworks.com/life/inside-the-mind/human-brain/baader-meinhof-phenomenon.htm</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nDev Random Podcast</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://archive.org/details/devrandom\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://archive.org/details/devrandom</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nTail of the Dragon (motocycle enthusiast road)&nbsp;</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.dreamsabroad.com/exploring-us-129-the-tail-of-the-dragon/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.dreamsabroad.com/exploring-us-129-the-tail-of-the-dragon/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nVermont Maple Syrup</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://sapjack.com/vermont-maple-syrup/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://sapjack.com/vermont-maple-syrup/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nKing Syrup</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://king-syrup.com/about-king-syrup/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://king-syrup.com/about-king-syrup/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n\n\n',269,0,1,'CC-BY-SA','new years,HPR,community',0,0,1),
(4364,'2025-04-24','24-25 New Years Eve show 6',7347,'The HPR community comes together to say happy new year and chat','<hr>\n<h1>NYE 2025 6</h1>\n<hr>\n<p><a href=\"https://www.pdp8online.com/asr33/asr33.shtml\">pdp8online:</a> The ASR33 is a printing terminal and a program storage device (paper tape) used... </p>\n<p><a href=\"https://en.wikipedia.org/wiki/Radar_in_World_War_II\">wikipedia:</a> Radar in World War II greatly influenced many important aspects of the conflict... </p>\n<p><a href=\"https://www.ll.mit.edu/impact/commemorating-scr-584-radar-historical-pioneer\">ll:</a> SCR-584 radar developed at the MIT Radiation Laboratory in the 1940s... </p>\n<p><a href=\"https://en.wikipedia.org/wiki/PDP-1\">wikipedia:</a> The PDP-1 (Programmed Data Processor-1) is the first computer in... </p>\n<p><a href=\"https://w140.com/tekwiki/wiki/Intel_8086\">w140:</a> Intel 8086 is a 16-bit microprocessor monolithic integrated circuit introduced in 1978... </p>\n<p><a href=\"https://en.wikipedia.org/wiki/Chaosnet\">wikipedia:</a> Chaosnet is a local area network technology. It was first developed... </p>\n<p><a href=\"https://en.wikipedia.org/wiki/Hercules_Graphics_Card\">wikipedia:</a> The Hercules Graphics Card (HGC) is a computer graphics controller </p>\n<p><a href=\"https://en.wikipedia.org/wiki/ARPANET\">wikipedia:</a> The Advanced Research Projects Agency Network (ARPANET) was the first wide-area packet-switched network with... </p>\n<p><a href=\"https://www.goodreads.com/book/show/281818.Where_Wizards_Stay_Up_Late\">goodreads:</a> Where Wizards Stay Up Late: The Origins of the Internet </p>\n<p><a href=\"https://en.wikipedia.org/wiki/DTMF\">wikipedia:</a> Dual-tone multi-frequency signaling (DTMF) is a telecommunication signaling system. </p>\n<p><a href=\"https://en.wikipedia.org/wiki/Asperger_syndrome\">wikipedia:</a> Asperger syndrome (AS), also known as Asperger&#39;s syndrome or Asperger&#39;s, is a diagnostic label... </p>\n<p><a href=\"https://en.wikipedia.org/wiki/Autism\">wikipedia:</a> Autism spectrum disorder[a] (ASD), or simply autism, is a neurodevelopmental disorder... </p>\n<p><a href=\"https://en.wikipedia.org/wiki/Diagnostic_and_Statistical_Manual_of_Mental_Disorders\">wikipedia:</a> Diagnostic and Statistical Manual of Mental Disorders </p>\n<p><a href=\"https://en.wikipedia.org/wiki/DSM-5\">wikipedia:</a> The Diagnostic and Statistical Manual of Mental Disorders, Fifth Edition (DSM-5) </p>\n<p><a href=\"https://en.wikipedia.org/wiki/Agoraphobia\">wikipedia:</a> Agoraphobia[1] is a mental and behavioral disorder,[5] specifically an anxiety disorder characterized by </p>\n<p><a href=\"https://en.wikipedia.org/wiki/Nice_guy\">wikipedia:</a> &quot;Nice guy&quot; is an informal term, commonly used with either a literal or a sarcastic meaning... </p>\n<p><a href=\"https://pubmed.ncbi.nlm.nih.gov/31468149/\">ncbi:</a> Predictive utility of autistic traits in youth with ADHD </p>\n<p><a href=\"https://en.wikipedia.org/wiki/Causes_of_autism\">wikipedia:</a> Many causes of autism, including environmental and genetic factors... </p>\n<p><a href=\"https://www.massgeneral.org/psychiatry/treatments-and-services/clinical-and-research-program-for-autism-spectrum-disorder\">massgeneral:</a> Bressler Program for Autism Spectrum Disorder </p>\n<p><a href=\"https://en.wikipedia.org/wiki/International_Organization_for_Standardization\">wikipedia:</a> International Organization for Standardization </p>\n<p><a href=\"https://www.iso.org/home.html\">iso:</a> The International Organization for Standardization </p>\n<p><a href=\"https://en.wikipedia.org/wiki/Media_Transfer_Protocol\">wikipedia:</a> The Media Transfer Protocol (MTP) </p>\n<p><a href=\"https://en.wikipedia.org/wiki/Network_Time_Protocol\">wikipedia:</a> The Network Time Protocol (NTP) is a networking protocol for clock synchronization between... </p>\n<p><a href=\"https://en.wikipedia.org/wiki/OpenSSL\">wikipedia:</a> OpenSSL is a software library for applications that provide secure communications over computer networks... </p>\n<p><a href=\"https://en.wikipedia.org/wiki/Ntpd\">wikipedia:</a> The Network Time Protocol daemon (ntpd) is an operating system program that maintains the system time... </p>\n<p><a href=\"https://en.wikipedia.org/wiki/Eminent_domain\">wikipedia:</a> Eminent domain [a], also known as land acquisition, [b] compulsory purchase, [c] resumption... </p>\n<p><a href=\"https://www.amtrak.com/train-routes\">amtrak:</a> Amtrak Routes &amp; Destinations </p>\n<p><a href=\"https://en.wikipedia.org/wiki/Dragline_excavator\">wikipedia:</a> A dragline excavator is a heavy-duty excavator used in civil engineering and surface mining. </p>\n<p><a href=\"https://raleighcounty.gov/about-county-government-in-west-virginia/\">raleighcounty:</a> ...attempt to introduce the township system was made in West Virginia’s first constitution... </p>\n<p><a href=\"https://en.wikipedia.org/wiki/IRC\">wikipedia:</a> IRC (Internet Relay Chat) is a text-based chat system for instant messaging. </p>\n<p><a href=\"https://www.openstreetmap.org/\">openstreetmap:</a> OpenStreetMap is a free, open map database updated and maintained by a community of... </p>\n<p><a href=\"https://durham.wineauthorities.com/product/peirano-estate-red-blend-the-other-2021/\">wineauthorities:</a> Red Blend “The Other” </p>\n<p><a href=\"https://untappd.com/b/outer-range-brewing-rockies-alps-in-the-steep-ddh-mosaic/5675887\">untappd:</a> In the Steep DDH (Mosaic) </p>\n<p><a href=\"https://untappd.com/b/outer-range-brewing-rockies-alps-in-the-steep/2002572\">untappd:</a> In the Steep </p>\n<p><a href=\"https://amsterdambeer.com/products/boneshaker-ipa-473ml-can?variant=39251514654791\">amsterdambeer:</a> Boneshaker is brewed with copious amounts of hops balanced with... </p>\n<p><a href=\"https://bigskybrew.com/beers/moose-drool/\">bigskybrew:</a> Moose Drool </p>\n<p><a href=\"https://www.beeradvocate.com/beer/profile/1251/112788/\">beeradvocate:</a> Double Pig&#39;s Ear </p>\n<p><a href=\"https://www.beeradvocate.com/beer/profile/48912/41665/\">beeradvocate:</a> Pig&#39;s Eye Ice </p>\n<p><a href=\"https://theshedbrewery.com/\">theshedbrewery:</a> The Shed Brewery </p>\n<p><a href=\"https://en.wikipedia.org/wiki/Private_Stock_(malt_liquor\">wikipedia:</a>) Private Stock (malt liquor) </p>\n<p><a href=\"https://en.wikipedia.org/wiki/Colt_45_(malt_liquor\">wikipedia:</a>) Colt 45 (malt liquor) </p>\n<p><a href=\"https://www.ebay.it/itm/275280350569\">ebay:</a> Patch liquore di malto SINGOLA COLT 45 COOL </p>\n<p><a href=\"https://en.wikipedia.org/wiki/Haffenreffer_Brewery\">wikipedia:</a> Haffenreffer Brewery </p>\n<p><a href=\"https://www.beeradvocate.com/beer/profile/24964/669/\">beeradvocate:</a> Haffenreffer Private Stock </p>\n<p><a href=\"https://trademarks.justia.com/737/23/great-wall-vodka-imported-from-the-people-s-republic-of-china-73723624.html\">justia:</a> GREAT WALL VODKA IMPORTED FROM THE PEOPLE&#39;S REPUBLIC OF CHINA </p>\n<p><a href=\"https://en.wikipedia.org/wiki/Everclear\">wikipedia:</a> Everclear is an American brand name of a line of rectified spirit (also known as grain alcohol and neutral spirit) </p>\n<p><a href=\"https://en.wikipedia.org/wiki/Bacardi_151\">wikipedia:</a> Bacardi 151 is a discontinued brand of highly alcoholic rum... </p>\n<p><a href=\"https://www.caskers.com/vermont-ice-maple-bourbon-whiskey/\">caskers:</a> Vermont Ice Maple Bourbon Whiskey </p>\n<p><a href=\"https://www.greatamericanbeerfestival.com/\">greatamericanbeerfestival:</a> The Great American Beer Festival (GABF) </p>\n<p><a href=\"https://en.wikipedia.org/wiki/Great_American_Beer_Festival\">wikipedia:</a> The Great American Beer Festival (GABF) </p>\n<p><a href=\"https://www.vermontsalumi.com/\">vermontsalumi:</a> At Vermont Salumi, we embrace the art of salumi-making... </p>\n',269,0,1,'CC-BY-SA','new years,HPR,community',0,0,1),
(4374,'2025-05-08','24-25 New Years Eve show 7',8795,'The HPR community comes together to say happy new year and chat','\n<p>\n-----------------</p>\n<p>\nNYE 2025 7</p>\n<p>\n------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nMordancy Travel Blog</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://mordancy.blogspot.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://mordancy.blogspot.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nToast &amp; Cheese with Anchovy</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"http://www.confessionsofachocoholic.com/recipes/cheesy-anchovy-toast\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttp://www.confessionsofachocoholic.com/recipes/cheesy-anchovy-toast</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nRosemary Potatoes</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.foodnetwork.com/recipes/ina-garten/rosemary-roasted-potatoes-recipe-1943124\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.foodnetwork.com/recipes/ina-garten/rosemary-roasted-potatoes-recipe-1943124</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nLasagna</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.spendwithpennies.com/easy-homemade-lasagna/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.spendwithpennies.com/easy-homemade-lasagna/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nMango</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.mango.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.mango.org/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nThai Chili Peppers</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.chilipeppermadness.com/chili-pepper-types/medium-hot-chili-peppers/thai-chili-peppers/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.chilipeppermadness.com/chili-pepper-types/medium-hot-chili-peppers/thai-chili-peppers/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nFish Sauce</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://hot-thai-kitchen.com/fish-sauce-101/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://hot-thai-kitchen.com/fish-sauce-101/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nMortar &amp; Pestel</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Mortar_and_pestle\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Mortar_and_pestle</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nSriracha</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.huyfong.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.huyfong.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nMexican Chili Peppers</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.chilipeppermadness.com/chili-pepper-types/mexican-peppers/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.chilipeppermadness.com/chili-pepper-types/mexican-peppers/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nNew Orleans</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.neworleans.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.neworleans.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nGeneral Tso Chicken</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://natashaskitchen.com/general-tsos-chicken/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://natashaskitchen.com/general-tsos-chicken/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nMelinda\'s Green Hot Sauce</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://melindas.com/products/melinda-s-green-sauce\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://melindas.com/products/melinda-s-green-sauce</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nMelinda\'s Black Truffle Hot Sauce</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://melindas.com/products/melinda-s-black-truffle-hot-sauce?_pos=1&amp;_sid=5935dbdad&amp;_ss=r\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://melindas.com/products/melinda-s-black-truffle-hot-sauce?_pos=1&amp;_sid=5935dbdad&amp;_ss=r</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nA-1 Sauce</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.kraftheinz.com/a1\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.kraftheinz.com/a1</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nMelinda\'s Fire Roasted Jalapeno</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://melindas.com/products/melinda-s-fire-roasted-garlic-habanero-pepper-sauce-condiment\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://melindas.com/products/melinda-s-fire-roasted-garlic-habanero-pepper-sauce-condiment</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nGochujang</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.hungryhuy.com/gochujang-sauce/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.hungryhuy.com/gochujang-sauce/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nDollar General</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.dollargeneral.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.dollargeneral.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nDragon Fruit</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.healthline.com/nutrition/dragon-fruit\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.healthline.com/nutrition/dragon-fruit</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nStar Fruit</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.healthline.com/nutrition/star-fruit-101\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.healthline.com/nutrition/star-fruit-101</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nWest Virginia</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.wv.gov/Pages/default.aspx\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.wv.gov/Pages/default.aspx</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nCatskill Mountains</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://visitcatskills.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://visitcatskills.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nStop And Shop Grocery&nbsp;</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://stopandshop.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://stopandshop.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nHannaford Food Store</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.hannaford.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.hannaford.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nShaws Grocery</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.shaws.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.shaws.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nMarket Basket</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.shopmarketbasket.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.shopmarketbasket.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nArthurs Market&nbsp;</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://arthursmarketrochester.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://arthursmarketrochester.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nTrader Joes</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://locations.traderjoes.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://locations.traderjoes.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nWhole Foods</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.wholefoodsmarket.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.wholefoodsmarket.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nItalian Nougat</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.allrecipes.com/recipe/246463/torrone-italian-nut-and-nougat-confection/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.allrecipes.com/recipe/246463/torrone-italian-nut-and-nougat-confection/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nTaffy</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.allrecipes.com/recipe/67636/grandmas-taffy/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.allrecipes.com/recipe/67636/grandmas-taffy/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nMarshmellow</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://candyusa.com/marshmallows/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://candyusa.com/marshmallows/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nTorrone (Nougat)</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://torronecandy.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://torronecandy.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nBoston</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.meetboston.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.meetboston.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nSouth Shore Boston</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.lonelyplanet.com/usa/new-england/south-shore/attractions\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.lonelyplanet.com/usa/new-england/south-shore/attractions</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nSAMBA</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.samba.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.samba.org/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nEPSON V30&nbsp;Flatbed Scanner</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://epson.com/Support/Scanners/Perfection-Series/Epson-Perfection-V30/s/SPT_B11B193141\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://epson.com/Support/Scanners/Perfection-Series/Epson-Perfection-V30/s/SPT_B11B193141</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nFileZilla</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://filezilla-project.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://filezilla-project.org/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nFTP SSL&nbsp;</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.jscape.com/blog/what-is-an-ssl-file-transfer\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.jscape.com/blog/what-is-an-ssl-file-transfer</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nBoston Linux User Group</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://blu.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://blu.org/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nTech N Coffee</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://techandcoffee.info/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://techandcoffee.info/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nMastadon</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://joinmastodon.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://joinmastodon.org/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nThe Linux Lugcast</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://linuxlugcast.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://linuxlugcast.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nGoogle+</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Google%2B\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Google%2B</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nGoogle Groups</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://groups.google.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://groups.google.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nTwitter (Now X)</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://x.com/home\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://x.com/home</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nBlueSky</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://bsky.app/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://bsky.app/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nMatrix</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://matrix.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://matrix.org/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nIRC</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://web.libera.chat/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://web.libera.chat/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nTails OS</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://tails.net/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://tails.net/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nCertified NRA Pistol Instructor</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://firearmtraining.nra.org/become-an-instructor/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://firearmtraining.nra.org/become-an-instructor/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nPanera</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.panerabread.com/en-us/home.html\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.panerabread.com/en-us/home.html</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\n5G</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.qualcomm.com/5g/what-is-5g\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.qualcomm.com/5g/what-is-5g</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nDSL</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.spiceworks.com/tech/networking/articles/digital-subscriber-line/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.spiceworks.com/tech/networking/articles/digital-subscriber-line/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nSomething Wicked This Way Comes (Movie)</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.rottentomatoes.com/m/something_wicked_this_way_comes\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.rottentomatoes.com/m/something_wicked_this_way_comes</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nSpanish Moss</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://plants.usda.gov/documentlibrary/plantguide/pdf/cs_tius.pdf\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://plants.usda.gov/documentlibrary/plantguide/pdf/cs_tius.pdf</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nMoto G 5 2024 Model</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.gsmarena.com/motorola_moto_g5-8454.php\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.gsmarena.com/motorola_moto_g5-8454.php</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nZOOM</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.zoom.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.zoom.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nJSON</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.json.org/json-en.html\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.json.org/json-en.html</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nTSV</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Tab-separated_values\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Tab-separated_values</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nSQL</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.w3schools.com/sql/sql_intro.asp\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.w3schools.com/sql/sql_intro.asp</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nHTML</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.w3schools.com/html/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.w3schools.com/html/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nPHP Scripting</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.php.net/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.php.net/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nXML</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.w3schools.com/xml/xml_whatis.asp\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.w3schools.com/xml/xml_whatis.asp</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nGhost Pepper&nbsp;Spicy Chicken Black RAMAN</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://munchaddict.com/products/daebak-ghost-pepper-spicy-chicken-ramen-malaysia\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://munchaddict.com/products/daebak-ghost-pepper-spicy-chicken-ramen-malaysia</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nOne Chip Challenge</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.npr.org/2024/07/12/nx-s1-5037658/lawsuit-spicy-chip-social-media\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.npr.org/2024/07/12/nx-s1-5037658/lawsuit-spicy-chip-social-media</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nCarolina Reaper Pepper</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://puckerbuttpeppercompany.com/collections/carolina-reaper-worlds-hottest-pepper\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://puckerbuttpeppercompany.com/collections/carolina-reaper-worlds-hottest-pepper</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nTrinidad Scorpion Pepper</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://renaissancegardenguy.com/how-hot-are-trinidad-scorpion-peppers/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://renaissancegardenguy.com/how-hot-are-trinidad-scorpion-peppers/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nF-Troop</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://tvtropes.org/pmwiki/pmwiki.php/Series/FTroop\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://tvtropes.org/pmwiki/pmwiki.php/Series/FTroop</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nTibetan Prayer Beads</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://tnp.org/how-to-use-and-choose-a-tibetan-mala/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://tnp.org/how-to-use-and-choose-a-tibetan-mala/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nAl Gore</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://algore.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://algore.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nHarvard</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.harvard.edu/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.harvard.edu/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nVoyage Space Craft</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://science.nasa.gov/mission/voyager/mission-overview/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://science.nasa.gov/mission/voyager/mission-overview/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nPaper Computer Tape&nbsp;</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.computerhistory.org/revolution/memory-storage/8/326\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.computerhistory.org/revolution/memory-storage/8/326</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nPDP-10 Emulator</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://retrocomputingforum.com/t/the-pidp-10-is-finally-done-and-to-celebrate-i-put-up-a-web-site-covering-the-family-pidp-1-8-10-and-11/3981\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://retrocomputingforum.com/t/the-pidp-10-is-finally-done-and-to-celebrate-i-put-up-a-web-site-covering-the-family-pidp-1-8-10-and-11/3981</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nHoneywell 316</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://en.wikiversity.org/wiki/Honeywell_316_(computer)\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikiversity.org/wiki/Honeywell_316_(computer)</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nBitNet</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://bit.net/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://bit.net/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nDECnet</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://gunkies.org/wiki/DECnet\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://gunkies.org/wiki/DECnet</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nPDP 11</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://gunkies.org/wiki/PDP-11\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://gunkies.org/wiki/PDP-11</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nTCP/IP</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.geeksforgeeks.org/tcp-ip-model/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.geeksforgeeks.org/tcp-ip-model/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nVelcro Wallet</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.allthewallets.com/the-best-velcro-wallets/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.allthewallets.com/the-best-velcro-wallets/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nKnob and Tube Wiring</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.nachi.org/knob-and-tube.htm\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.nachi.org/knob-and-tube.htm</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nMIT Radar Program</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.ll.mit.edu/outreach/radar-introduction-radar-systems-online-course\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.ll.mit.edu/outreach/radar-introduction-radar-systems-online-course</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nGrim Reaper</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.britannica.com/story/where-does-the-concept-of-a-grim-reaper-come-from\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.britannica.com/story/where-does-the-concept-of-a-grim-reaper-come-from</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nFrench Roast Coffee</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://sfbaycoffee.com/blogs/articles/french-roast-coffee-a-complete-overview\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://sfbaycoffee.com/blogs/articles/french-roast-coffee-a-complete-overview</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nStatic Hot Water Radiator</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://usa.hudsonreed.com/info/blog/hot-water-radiators-explained-a-guide-to-the-best-radiators-for-your-home/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://usa.hudsonreed.com/info/blog/hot-water-radiators-explained-a-guide-to-the-best-radiators-for-your-home/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nHis Eyes Coffee</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.hiseyeshonduras.com/coffee.html\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.hiseyeshonduras.com/coffee.html</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nDouble Dutch Jump Rope</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Double_Dutch_(jump_rope)\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Double_Dutch_(jump_rope)</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nJellyfin</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://jellyfin.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://jellyfin.org/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nPolar Bear Jump</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Polar_bear_plunge\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Polar_bear_plunge</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nSausage Rolls</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.thekitchn.com/sausage-roll-recipe-23254758\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.thekitchn.com/sausage-roll-recipe-23254758</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nStarbucks Mug</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.starbucks.com/menu/merchandise/mugs\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.starbucks.com/menu/merchandise/mugs</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nGreat Dane</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.akc.org/dog-breeds/great-dane/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.akc.org/dog-breeds/great-dane/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nKentucky</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.kentuckytourism.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.kentuckytourism.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nHummus</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.inspiredtaste.net/15938/easy-and-smooth-hummus-recipe/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.inspiredtaste.net/15938/easy-and-smooth-hummus-recipe/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nPublix Grocery Store</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.publix.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.publix.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nEngine 15 Brewing</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://engine15.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://engine15.com/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nMC Chouffe Belgian Beer</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://chouffe.com/en-us/beer/mc-chouffe/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://chouffe.com/en-us/beer/mc-chouffe/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nSpider Man Pez Dispenser</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://us.pez.com/products/spider-man\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://us.pez.com/products/spider-man</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nJitsi</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://jitsi.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://jitsi.org/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nMumble</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.mumble.info/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.mumble.info/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nASMR</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://pmc.ncbi.nlm.nih.gov/articles/PMC4380153/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://pmc.ncbi.nlm.nih.gov/articles/PMC4380153/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nDavid Tipton (Radio Repair)</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.youtube.com/@DavidTipton101\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.youtube.com/@DavidTipton101</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nDonut Holes</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.justataste.com/easy-homemade-glazed-doughnut-holes-recipe/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.justataste.com/easy-homemade-glazed-doughnut-holes-recipe/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nLexington Kentucky</strong>\n</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://www.lexingtonky.gov/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.lexingtonky.gov/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n\n\n',269,0,1,'CC-BY-SA','new years,HPR,community',0,0,1),
(4352,'2025-04-08','Why grandma, what large language models you have.',597,'Sgoti talks about large lanuage models and enshittification.','<p> <strong>Title:</strong> A large language model (LLM).</p>\n<p><strong>License:</strong> Text is available under the Creative Commons Attribution-ShareAlike 4.0 License; additional terms may apply.</p>\n<p><strong>Source(s):</strong> <a href=\"https://en.wikipedia.org/wiki/Large_language_model\">https://en.wikipedia.org/wiki/Large_language_model</a></p>\n<p><strong>Title:</strong> Enshittification, also known as crapification and platform decay.</p>\n<p><strong>License:</strong> Text is available under the Creative Commons Attribution-ShareAlike 4.0 License; additional terms may apply.</p>\n<p><strong>Source(s):</strong> <a href=\"https://en.wikipedia.org/wiki/Enshittification\">https://en.wikipedia.org/wiki/Enshittification</a></p>\n<p><strong>Title:</strong> Technical debt.</p>\n<p><strong>License:</strong> Text is available under the Creative Commons Attribution-ShareAlike 4.0 License; additional terms may apply.</p>\n<p><strong>Source(s):</strong> <a href=\"https://en.wikipedia.org/wiki/Technical_debt\">https://en.wikipedia.org/wiki/Technical_debt</a></p>\n<p><strong>Title:</strong> Programming language.</p>\n<p><strong>License:</strong> Text is available under the Creative Commons Attribution-ShareAlike 4.0 License; additional terms may apply.</p>\n<p><strong>Source(s):</strong> <a href=\"https://en.wikipedia.org/wiki/Programming_language\">https://en.wikipedia.org/wiki/Programming_language</a></p>\n<p><strong>Title:</strong> bastardize</p>\n<p><strong>License:</strong> Copyright. All rights reserved.</p>\n<p><strong>Source(s):</strong> <a href=\"https://www.merriam-webster.com/dictionary/bastardization\">https://www.merriam-webster.com/dictionary/bastardization</a></p>',391,0,1,'CC-BY-SA','large language models, enshittification',0,0,1),
(4336,'2025-03-17','The Everything-I-Know 20-minutes Show',1198,'From Microsoft Word \"templates\" to Microphone types (starting with Embracing the Core)','\n<p>\nIn here:</p>\n<h1>\n1- Carrying weight more safely</h1>\n<p>\n- When picking up weight in front of your body, embrace the core (tighten the abdomen);</p>\n<p>\n- it gives you more stability, so you are more capable to do the task.</p>\n<p>\n<br>\n</p>\n<h1>\n2- Microphone types</h1>\n<h2>\na) by connection</h2>\n<p>\ni) USB: connects <strong>\ndirectly</strong>\nto the computer, in the universal serial bus port. Plug and use!</p>\n<p>\nii) XLR: <strong>\nneeds a USB audio interface</strong>\n, with XLR input, to connect to the computer. There are more options of microphones and, if you can spend on an interface, quality is generally better.</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"hpr4336_image_1.jpeg\">\n<img src=\"hpr4336_image_1_tn.jpeg\">\n</a>\n</p>\n<p>\n<em>\nXLR connectors: female (left) and male. (</em>\n<a href=\"https://en.wikipedia.org/wiki/File:Xlr-connectors.jpg\" rel=\"noopener noreferrer\" target=\"_blank\">\n<em>\nImage</em>\n</a>\n<em>\nby Michael Piotrowski / Wikimedia Commons – </em>\n<a href=\"https://creativecommons.org/licenses/by-sa/3.0/deed.en\" rel=\"noopener noreferrer\" target=\"_blank\">\n<em>\nCC BY-SA 3.0</em>\n</a>\n<em>\n.)</em>\n</p>\n<p>\n<br>\n</p>\n<h2>\nb) by diaphragm</h2>\n<p>\ni) condenser: captures the voice in more detail, with deeper bass, more detailed treble… Most of the USB microphones uses this technology. As a disadvantage, they catch even minimal sound details of the environment, vibrating with little sound waves around, even distant. That’s why you might get as recording result the clear details of noise from the street, or reverberation (echo) of an untreated room if you use it without the best environment. <em>\n(If it’s ok for you even in these situations, it’s a merit of other factors, not a merit of the condenser diaphragm)</em>\n. <strong>\nUsage</strong>\n: A favorite of singers in studio, among several other applications. As you can see on videos of professionals singing, one don’t talk on top of it (which might produce a low and undesired muffled sound) but on the side — and on the correct side, because most models of microphones have a cardioid pollar pattern.</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"hpr4336_image_2.jpeg\">\n<img src=\"hpr4336_image_2_tn.jpeg\">\n</a>\n</p>\n<p>\n<em>\nA side-adress microphone (captures the sound from one specific side), condenser-type. (Image by Arthur Fox / https://mynewmicrophone.com/diaphragm.)</em>\n</p>\n<p>\n<br>\n</p>\n<p>\nii) dynamic: responds to the audio source (voice, instrument) very close to the diaphragm, do not capture sound more than some centimeters (or some inches) away. It’s the best for amateur use, or in a room without acoustic treatment. <strong>\nUsage</strong>\n: <em>\nMusicians</em>\nperforming live use dynamic microphones so the instruments (and crowd) around don’t get their sound amplified by this artist’s microphone. <em>\nRadios</em>\nprefer dynamic mics, because it goes to a more impactful voice, rejects eventual sounds from noisy mixers or keyboards nearby that the radio host might be operating.</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"hpr4336_image_3.jpeg\">\n<img src=\"hpr4336_image_3_tn.jpeg\">\n</a>\n</p>\n<p>\n<em>\nA top-adress microphone (captures the sound from the top), dynamic-type. (Image by Arthur Fox / https://mynewmicrophone.com/diaphragm.)</em>\n</p>\n<p>\n<br>\n</p>\n<p>\nThe <a href=\"https://en.wikipedia.org/wiki/Electro-Voice_RE20\" rel=\"noopener noreferrer\" target=\"_blank\">\nRE20 from Electro-Voice</a>\n(not the photo above) is a favorite of radio stations, in part for being dynamic, in part for reducing the proximity effect (that is, the sound “exploding” when the source gets too near to the capsule) because of its technology, named Variable-D.</p>\n<p>\n<br>\n</p>\n<p>\nA word about captation pattern (no, the name is polar pattern): it says about the directional response. For example, some are omnidirectional (captures sound equally from all the sides); most of them are cardioid, capturing the sound coming from the front (the speaker, the instrument directed to it), but rejects sound from the rear.</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<h1>\n3- Microsoft Word (or Libreoffice Writer) “templates”</h1>\n<p>\n- So, you do use templates for text archives, to facilitate the doing of commonly used documents. To know what to change, you highlight in yellow, right? Or do you put the text in red?</p>\n<p>\n<br>\n</p>\n<p>\n- Well, my recommendation is to use, instead, * or {} : asterisk, curly brackets or any other symbol that you can type easily and not use as text in any document.</p>\n<p>\n. So you can easily find what is the part you have to change or write, and only delete the * when you do that part. At the end, you can check if there is any * remaining, if not, the document is ready.</p>\n<p>\n<br>\n</p>\n<p>\n- So, isnt’ it the same with colors, to indicate what to change in the document?</p>\n<p>\n. No. For formatting you need to use your vision (and may lose something) and have to remove the formatting manually. It’s possible to use the Find tool, but not as easily as finding a character.</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"hpr4336_image_4.png\">\n<img src=\"hpr4336_image_4_tn.png\">\n</a>\n</p>\n<p>\n<strong>\n<em>\nTo illustrate:</em>\n</strong>\n<em>\nprint of an official document template for the bidding process for information and communication technology services. (Author: Brazil, Advocacia-Geral da União. Modelos da Lei 14.133/21 para bens e serviços de TIC. Link: https://www.gov.br/agu/pt-br/composicao/cgu/cgu/modelos/licitacoesecontratos/14133/bens-e-servicos-de-tic). Changes to be made were marked in red and italics, but brackets [] and “XXXX” were used also.</em>\n</p>\n<p>\n<br>\n</p>\n<p>\n- Ah:</p>\n<p>\n. there are forms, real templates you can use, but, hey, if you\'re part of the 90% that saves “templates” in the common format (.docx, .odt) and does not use the very special tools for the template kind of document, knowing and using some tips like this is ok and is satisfying.</p>\n<p>\n<br>\n</p>\n<p>\n- Not on templates, but in editing, I have worked on the revision of books using this, to know where to come back later to check, or where I have stopped on some day, with good result. Extra: give a look on the comment options, they are easy to use and practical, see if you adapt with it for your necessities.</p>\n<p>\n<br>\n</p>\n<h1>\n4- A <em>\nrecooording</em>\ntip</h1>\n<p>\n- Always record at least 3 seconds, totally quiet, before starting the show (that is, before talking). This “silence” is the room tone, which you may use:</p>\n<p>\n. as adequate silence in the editing proccess (in place of a cut part), or</p>\n<p>\n. you may take it for noise reduction profile <strong>\nIF </strong>\nneeded, or</p>\n<p>\n. which you can only delete in the end if you don\'t find what to do with it.</p>\n<p>\n<br>\n</p>\n<p>\n- Recording knowledge number 2 and final: save an uncompressed version of the raw of your recording, and keep it intact. Work on copies, keep the original saved as .wav (or, if prefered, .flac).</p>\n<p>\n<br>\n</p>\n<h1>\n5- Permissions for apps</h1>\n<p>\nBe careful with free apps. Don’t install any and everything. See their permissions.</p>\n<p>\n<br>\n</p>\n<p>\n- Ads? Why more things being offered to you, trying to give insatisfaction? If there is an option without ads, you may prefer.</p>\n<p>\n. Also, the ad system of some apps uses more battery (downloading different ads, sending more information of you to personalize ads, using the notification system, meaning running in the background).</p>\n<p>\n<br>\n</p>\n<p>\n- In-app purchases: with it, you’ll get angry with an app, because it’s not free to do what you thought it would do when you installed. And it may use recurring payments, pay for each feature, and worst, you don’t know beforehand. If it’s to pay, prefer the ones you buy (once) in the download and has no in-app purchases.</p>\n<p>\n<br>\n</p>\n<p>\n- With apps in that you input your data (like e2ee, or “e2ee” communicating, or browsers): see permissions, what data they keep and share, or at least choose open source and well-renowed developers.</p>\n<p>\n<br>\n</p>\n<p>\n- Please don\'t download any app that promises performance enhancement. The system (Android or iOS) is already optimized for what it is, third party apps can do little or, most commonly, nothing, and is more space and features loading your system.</p>\n<p>\n. Want speed? Delete the apps that are not absolutely necessary (I’m talking to you, solitaire game with access to internet and that notifies you to play from time to time), or disable notifications of every app and put them to deep sleep (so they don’t run in background, only when you open them).</p>\n<p>\n<br>\n</p>\n<p>\n- So much said, let’s take it in one sentence: install only what needed, and see permissions and ads before choosing.</p>\n<p>\n<br>\n</p>\n<h1>\n6- Mobile phone battery</h1>\n<p>\n- You use your phone all day and still have more than 20% of battery? Or recharges 2 times a day? (or 3!)</p>\n<p>\n<br>\n</p>\n<p>\n- If it’s the last option, and your phone is less than 3 years old and you never use uncertified chargers, you can try to have a worry-free all-day phone usage doing what said before: disabling apps that run in the background (uninstall, or put to deep sleep). It’s a one by one process, but once for all.</p>\n<p>\n. If it’s this way because of intense use, nothing to do; enjoy your product!</p>\n<p>\n<br>\n</p>\n<h1>\n✶ Final word</h1>\n<p>\nWe did not enter on details: no explanations or reasons abounding, no. We didn’t even go to number <strong>\n7</strong>\n, which would be <em>\nperfection</em>\n; because I have not a seventh good idea.</p>\n<p>\n<br>\n</p>\n<p>\nOnly the bits of what I think I know &amp; that I value as precious. A hug!</p>\n<p>\n<br>\n</p>\n<p>\nbye!</p>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\n<strong>\nCredits: sound used (author – sound)</strong>\n</p>\n<p>\n<a href=\"https://luvvoice.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nluvvoice.com</a>\n, English (Nigeria), Abeo (Male) voice – tts “20 minutes show”.</p>\n<p>\n<a href=\"https://luvvoice.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nluvvoice.com</a>\n, English (UK), Ryan (Male) voice – tts on the paragraph about polar pattern of microphones.</p>\n<p>\nCrab_Audio / Pixabay – <a href=\"https://pixabay.com/music/funk-my-style-300590/\" rel=\"noopener noreferrer\" target=\"_blank\">\nMy Style</a>\n[Transitions]</p>\n<p>\nfreesound_community / Pixabay – <a href=\"https://pixabay.com/sound-effects/dictaphone-77992/\" rel=\"noopener noreferrer\" target=\"_blank\">\nDictaphone</a>\n.</p>\n<p>\nRobinhood76 / Freesound.org – <a href=\"https://freesound.org/people/Robinhood76/sounds/101889/\" rel=\"noopener noreferrer\" target=\"_blank\">\n01893 do it again spell</a>\n(CC-BY-NC 4.0).</p>\n<p>\nattic13 / Pixabay – <a href=\"https://pixabay.com/sound-effects/calm-background-piano-148405/\" rel=\"noopener noreferrer\" target=\"_blank\">\ncalm background piano</a>\n[beautiful, thank you; I hope the simple use here honors your work, friend].</p>\n<p>\nSieuAmThanh / Freesound.org – <a href=\"https://freesound.org/people/SieuAmThanh/sounds/546802/\" rel=\"noopener noreferrer\" target=\"_blank\">\nRớtĐônHổ</a>\n[angry expression] (CC0 1.0).</p>\n<p>\npatchen / Freesound.org – <a href=\"https://freesound.org/people/patchen/sounds/20155/\" rel=\"noopener noreferrer\" target=\"_blank\">\nBeautiful 85</a>\n(CC BY 4.0).</p>\n\n\n',441,0,0,'CC-BY-SA','Embrace the core, Android, how-to, Mobile phone tips, microphones, Word, Libreoffice Writer  The Eve',0,0,1),
(4318,'2025-02-19','What\'s up with the dates on the HPR future feed in AntennaPod?',416,'The HPR Future feed doesn\'t show dates properly. What\'s up with that?','\n<p>\nSome stuff I found out when I was trying to understand why the HPR Future feed in <a href=\"https://antennapod.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nAntenna Pod</a>\n shows the release date for each show as the date I refreshed the podcast, instead of the actual release date that\'s in the RSS file.</p>\n<p>\n<br>\n</p>\n<p>\nIt\'s because AntennaPod ignores dates whenever any future date appears in the RSS file...</p>\n<p>\n<br>\n</p>\n<p>\n<a href=\"https://forum.antennapod.org/t/filter-against-future-episodes/939\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://forum.antennapod.org/t/filter-against-future-episodes/939</a>\n</p>\n\n\n',399,0,0,'CC-BY-SA','antennapod',0,0,1),
(4319,'2025-02-20','Am Rande - on the edge',241,'On a science fiction book from Eastern Germay from the 1970s','\n<ul>\n<li>\n<a href=\"https://github.com/rhasspy/piper\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://github.com/rhasspy/piper</a>\n A fast, local neural text to speech system that sounds great and is optimized for the Raspberry Pi 4</li>\n<li>\n<a href=\"https://www.rockbox.org/ Rockbox\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.rockbox.org/ Rockbox</a>\n is a free replacement firmware for digital music players. </li>\n<li>\n<a href=\"https://en.wikipedia.org/wiki/Alexander_Volkov_(writer)\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Alexander_Volkov_(writer)</a>\n Alexander Melentyevich Volkov (Russian: Александр Мелентьевич Волков (14 June 1891 – 3 July 1977) was a Soviet novelist, playwright, university lecturer. He was an author of novels, short stories, plays and poems for children, mostly remembered for the Magic Land series of books, based on L. Frank Baum\'s The Wonderful Wizard of Oz. </li>\n<li>\n<a href=\"https://de.wikipedia.org/wiki/Klaus_Fr%C3%BChauf\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://de.wikipedia.org/wiki/Klaus_Fr%C3%BChauf</a>\n Klaus Frühauf (* 12 October 1933 in Halle (Saale) ; † 11 November 2005 in Rostock ) was a German author and one of the most important science fiction authors in the GDR.</li>\n</ul>\n\n\n',309,124,0,'CC-BY-SA','SF, SiFi, ScienceFiction, German, 1970s',0,0,1),
(4321,'2025-02-24','Crux Linux',3179,'Try Crux Linux','\n    <p>\n      Crux Linux is a minimal distribution using a BSD-style init, and a\n      BSD-style ports system with tarball packaging. Its install process\n      is very much a manual process, but it\'s fun! You should try it.</p>\n    <br>\n    <a moz-do-not-send=\"true\" href=\"https://crux.nu/Main/About\">https://crux.nu/Main/About</a><br>\n    <br>\n    <i>CRUX is a lightweight Linux distribution for the x86-64\n      architecture targeted at experienced Linux users. The primary\n      focus of this distribution is </i><em>keeping it simple</em><i>,\n      which is reflected in a straightforward tar.gz-based package\n      system, BSD-style initscripts, and a relatively small collection\n      of trimmed packages. The secondary focus is utilization of new\n      Linux features and recent tools and libraries. CRUX also has a\n      ports system which makes it easy to install and upgrade\n      applications.\n    </i>',78,0,0,'CC-BY-SA','linux',0,0,1),
(4347,'2025-04-01','\"Of my country!\" Brazil - in a Southern city viewing',635,'I tell you my sincere impressions about topics of my country, from my limited experience and studies','\n<p>\nI’m glad I’m here with you! I\'ll tell my impressions on things of my Brazilian country.</p>\n<p>\n<strong>\nPardon me for some high-volume transitions</strong>\n!&nbsp;Trying and testing the brickabrackis (<em>\npossibilities</em>\n). Pleasing or not.</p>\n<p>\nThanks!</p>\n<p>\n&nbsp;</p>\n<p>\n<em>\nTopics:</em>\n</p>\n<h1 >\n1- Sistema Único de Saúde (the national health system)</h1>\n<p>\nWorks!<br />\nAny citizen, any person, has access to health treatment: no payment, no check if the person has payed taxes on anything, if is a worker or not.<br />\nOf course, waiting time might be a problem if it\'s not an urgency or emergency, and quality varies (as any service, paid or not), according to city (capital or country town, more structured or smaller cities), hospital, the specific doctor and support team etc.\n</p>\n<h1 >\n2- Tap water</h1>\n<p>\nThe water from the tap is safe, recognized as drinking water (in my city, and maybe in many if not most). The water treatment company (\"Sanepar\") here even sells their water bottled, and sponsors events that distribute them (sports events) to show the quality.<br />\nBut people don\'t use to drink from the tap it directly. If they do not use a filter, it\'s common to buy water in 20 liters carboys <em>\n(big plastic bottles, 20L is a bit more than 5 gallons)</em>\n. I use this last option, but drink water under the shower also.<br />\nMost people (that I know, of course) simply&nbsp;<strong>\ndon\'t drink water</strong>\n! I don\'t know. I don\'t understand how it is, but they don\'t drink water, not even a liter per day. Coffee and soda are the most common \"substitutes\".\n</p>\n\n<h1 >\n3- Religion numbers</h1>\n<p>\nStatistics about religion are very misleading. You can find different numbers but it\'s generally: more than half identifying as Catholics. More than 20% evangelical, 10% without religion.<br />\nBut those numbers say nothing about reality of what you find in the streets. Maybe because in some areas it\'s embarassing to identify as an atheist, as if you\'re immoral and cannot be trusted; so, people without religion simply say the religion of the family, or the generic \"catholic, non-practicing\".\n</p>\n<h1 >\n4- Brazilian Law</h1>\n<p>\nOur law is written and detailed. Everything you could want to know about our judicial system, our rights and etc. are explicit in laws; and our Constitution, in force since 1988, with more than 200 articles, guides all.<br />\nThe Supreme Court can make and change interpretations and, thus, issue binding decisions that are not seem in the law, but this is the exception.\n</p>\n\n<p>\n<a href=\"hpr4347_image_1.jpeg\">\n<img src=\"hpr4347_image_1_tn.jpeg\">\n</a>\n</p>\n\n<p>\n<em>\nCover of the official edition of the Brazilian Constitution in the English Language. (Source: https://www.stf.jus.br/arquivo/cms/legislacaoConstituicao/anexo/Brazil_Federal_Constitution_EC_125.pdf. Accessed on February 2025.)</em>\n</p>\n<p>\nMost of the norms are federal and encompass the entire nation: it is a reason we are so \"equal\", in many senses, while living in a country with 212 million people (official estimation of IBGE, July 1st 2024<strong>\n*</strong>\n) and that represents 48% of the size of South America.\n</p>\n\n<h1 >\n5- Now something very specific to my city, a capital city on the south of the country</h1>\n<p>\nIt\'s not expected to say Good morning when you cross with a stranger on the street. No Hello or Good morning to the bus driver also. I mean, a lot of people greet, but many don\'t and it\'s common to not do so.<br />\nIn many other parts of the country, of course, it\'s different. For example, I lived in a capital city on the north, and everybody expected you to say&nbsp;<em>\nGood Morning!</em>\n&nbsp;when entering an elevator in the morning, behavior that generally makes people think you\'re strange here in my southern city.<br />\nIf I ask for the name of a seller on a store, to be more polite saying his or her name occasionally if I am making a lot of questions and demanding more attention time, they ask, you\'re not from here are you?<br />\nAnd I am.<br />\nIf anything here sounds not good, please reject and keep the good. It\'s only impressions that I wanted to share. Thank you.</p>\n\n<p>\n<strong>\n*</strong>\nThis news in English: From: Agência IBGE. Link:&nbsp;<a href=\"https://agenciadenoticias.ibge.gov.br/en/agencia-news/2184-news-agency/news/41122-populacao-estimada-do-pais-chega-a-212-6-milhoes-de-habitantes-em-2025\" rel=\"noopener noreferrer\" target=\"_blank\" >\nhttps://agenciadenoticias.ibge.gov.br/en/agencia-news/2184-news-agency/news/41122-populacao-estimada-do-pais-chega-a-212-6-milhoes-de-habitantes-em-2025</a>\n. Accessed on February 2025.</p>\n<h3>\nSound used, credits (author – sound):</sh3>\n<p>\nfreesound_community / Pixabay –&nbsp;<a href=\"https://pixabay.com/sound-effects/dictaphone-77992/\" data-mce-href=\"https://pixabay.com/sound-effects/dictaphone-77992/\" >\nDictaphone</a>\n.</p>\n<p>\nRobinhood76 / Freesound.org –&nbsp;<a href=\"https://freesound.org/people/Robinhood76/sounds/101889/\" data-mce-href=\"https://freesound.org/people/Robinhood76/sounds/101889/\" >\n01893 do it again spell</a>\n&nbsp;(CC-BY-NC 4.0)</p>\n<p>\nJavolenus / ccmixter –&nbsp;&nbsp;<a href=\"https://ccmixter.org/files/Javolenus/69384\" data-mce-href=\"https://ccmixter.org/files/Javolenus/69384\" >\nArctura (Polarpulse PS3300)</a>\n&nbsp;(CC-BY-NC 4.0)</p>\n<p>\nRobinhood76 / Freesound.org –&nbsp;<a href=\"https://freesound.org/people/Robinhood76/sounds/733146/\" data-mce-href=\"https://freesound.org/people/Robinhood76/sounds/733146/\" >\n13024 reel to reel fast forward with preview</a>\n&nbsp;(CC-BY-NC 4.0)</p>\n<p>\nZavier Brewer&nbsp;/&nbsp;Pixabay – Re(wind) [ending music before the outro].</p>\n\n\n',441,0,0,'CC-BY-NC','Brazil, Of my Country, Religion, Christianity, Capital cities, Paraná, Tap water',0,0,1),
(4322,'2025-02-25','Fighting smartphone addiction',690,'A time limit tool I\'m trying out and how I\'m using it','\n<p>\nDespite not having any social media, muscle memory in unlocking the screen and getting stuck watching the screen is harder to fight than I thought.</p>\n<p>\n\n<p>\nOpenTimeLimit can be found at F-droid <a href=\"https://f-droid.org/packages/io.timelimit.android.open/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://f-droid.org/packages/io.timelimit.android.open/</a>\n</p>\n<p>\n<br>\n</p>\n\n\n',407,100,0,'CC-BY-NC-SA','smartphone addiction,time limit,f-droid',0,0,1),
(4323,'2025-02-26','Good Samaritan laws, Duty to rescue in the Netherlands',548,'Ken talks with safety officer trainer, Johan about the laws covering providing first aid in Holland.','\n    <p>\n      This is a response show to <a\n        href=\"https://hackerpublicradio.org/eps/hpr4216/\" rel=\"noopener\n        noreferrer\" target=\"_blank\">\n        hpr4216 :: Down the rabbit hole.</a> \"Sgoti talks about Good\n      Samaritan laws. Good Heavens!\"</p>\n    <p>\n      We talk to <a href=\"mailto:irt.nospam@nospam.ziggo.nl\"\n        rel=\"noopener noreferrer\" target=\"_blank\">\n        Johan Audiffred</a> about the legal requirement to assist people\n      in need in the Netherlands.</p>\n    <ul>\n      <li>\n        You are required to assist people in need and can be prosecuted\n        if you do not.</li>\n      <li>\n        Expenses to the hospital are covered by the State.</li>\n      <li>\n        Expenses in the hospital are covered by the mandatory Health\n        Insurance, which is provided by the state for those that can\'t\n        afford it.</li>\n      <li>\n        Damages are covered by mandatory public liability insurance.</li>\n      <li>\n        As a citizen you do not need respect <a\n          href=\"https://www.niet-reanimeren.nl/\" rel=\"noopener\n          noreferrer\" target=\"_blank\">\n          Do Not Resuscitate</a> wishes, but medical professionals will.</li>\n    </ul>\n    <p>\n      This episode does not constitute legal advice. Listeners are urged\n      to consult a legal expert for more information.</p>',30,0,1,'CC-BY-SA','FirstAid, EABO',0,0,1),
(4325,'2025-02-28','Two Software I use- Futo Keyboard and Inoreader',838,'an Android Keyboard and an online feed reader, both free','\n    2 software recommendations: one online, one an Android app\n    <p>\n      No one is free software (important disclaimer for a community of\n      hackers)</p>\n    <h3>FUTO KEYBOARD for android\n    </h3>\n    <p>\n      Without internet permission, it has:</p>\n    <ul>\n      <li>word prediction</li>\n      <li>speech to text</li>\n      <li>swipe typing</li>\n    </ul>\n    <p>\n      Functions very well. =)</p>\n    <a moz-do-not-send=\"true\" href=\"https://keyboard.futo.org/\">https://keyboard.futo.org/</a>\n    (available at Google Play Store)\n    <h3>\n      INOREADER:</h3>\n    <p>\n      Free, online feed reader, and you have:</p>\n    <ul>\n      <li>no ads (essential!)</li>\n      <li>up to 150 feeds</li>\n      <li>beautiful and very customizable display, for clutter-free or\n        very cluttered experience, to your liking</li>\n      <li>as online, you can have a continuous experience between PC and\n        mobile</li>\n    </ul>\n    <p>\n      If that\'s not enough, you can get a paid plan to more. =)</p>\n    Link: <a moz-do-not-send=\"true\" href=\"https://www.inoreader.com/\">https://www.inoreader.com/\n    </a>\n    <p>\n      Mentioned service and link: <a moz-do-not-send=\"true\"\n        href=\"https://kill-the-newsletter.com/\">Kill-The-Newsletter</a><br>\n    </p>\n    <br>',441,98,0,'CC-BY-NC','software recommendation, inoreader, futo keyboard, offline keyboard for android',0,0,1),
(4372,'2025-05-06','The power of GNU Readline - part 4',686,'Sgoti talks about Vi settings in GNU Readline','    <p>\n      <strong>\n        Prerequisites</strong> are:</p>\n    <h3>\n      <strong>\n        Novice</strong> level.</h3>\n    <ul>\n      <li>Backup(s) of <strong>\n          ALL</strong> your data.</li>\n      <li>Confirm backup data works as desired.</li>\n    </ul>\n    <h3>\n      <strong>\n        Intermediate/Experienced</strong> level.</h3>\n    <ul>\n      <li>Understanding of *unix operating system.</li>\n      <li>Terminal use <em>\n          (without the need to immediately restore from backups)</em>\n        .</li>\n    </ul>\n    <h3>\n      <strong>\n        Expert</strong> Level.</h3>\n    <ul>\n      <li>How to exit vim.</li>\n    </ul>\n    <h3><strong>Resources</strong></h3>\n    <h3><strong></strong></h3>\n    <ul>\n      <li>In-Depth Series: GNU Readline (by Dave Morriss).<strong> <br>\n        </strong><a moz-do-not-send=\"true\"\n          href=\"https://hackerpublicradio.org/series/0102.html\">https://hackerpublicradio.org/series/0102.html</a><strong></strong></li>\n      <li>GNU Readline Library. <br>\n        <a moz-do-not-send=\"true\"\n          href=\"https://tiswww.cwru.edu/php/chet/readline/rluserman.html\">https://tiswww.cwru.edu/php/chet/readline/rluserman.html</a><strong></strong></li>\n      <li>It\'s too dangerous to go alone; take these (blessed configs).<br>\n        <a moz-do-not-send=\"true\"\n          href=\"https://github.com/sgoti-gpg/blessed-configs\">https://github.com/sgoti-gpg/blessed-configs</a><strong></strong></li>\n      <li>&nbsp;.inputrc: VI experience in the shell.<br>\n        <a moz-do-not-send=\"true\"\n          href=\"https://deut-erium.github.io/2024/01/28/inputrc.html\">https://deut-erium.github.io/2024/01/28/inputrc.html</a></li>\n    </ul>',391,102,0,'CC-BY-SA','GNU Readline, Vi mode',0,0,1),
(4381,'2025-05-19','What Omni-Instantness Makes To My Brain and Your Brain?',774,'Is Social Media Good To You? (Be It Fedi Or Not)','\n    PROBLEMS:\n    <ul>\n      <li>Infinite feeds</li>\n      <li>Notifications</li>\n    </ul>\n    <p>\n      Everything virtual...?</p>\n    <p>\n      I hope the program be conducive to make you think straightly about\n      this; short and long term.</p>\n    <p>\n      Links cited:</p>\n    <p>\n      Alzheimer’s Facts and Figures: <a moz-do-not-send=\"true\"\n        href=\"https://www.alzra.org/alzheimers/facts-and-figures/\">https://www.alzra.org/alzheimers/facts-and-figures/</a></p>\n    <p>\n      How Exercise Protects Your Brain’s Health: <a\n        moz-do-not-send=\"true\"\n        href=\"https://health.clevelandclinic.org/exercise-and-brain-health\">https://health.clevelandclinic.org/exercise-and-brain-health</a></p>\n    <p>\n      Switching off: Sweden says back-to-basics schooling works on\n      paper:</p>\n    <p>\n      <a moz-do-not-send=\"true\"\nhref=\"https://www.theguardian.com/world/2023/sep/11/sweden-says-back-to-basics-schooling-works-on-paper\">https://www.theguardian.com/world/2023/sep/11/sweden-says-back-to-basics-schooling-works-on-paper</a></p>\n    <p>\n      Brazil restricts use of smartphones in elementary and high\n      schools:</p>\n    <p>\n      <a moz-do-not-send=\"true\"\nhref=\"https://edition.cnn.com/2025/01/13/americas/brazil-restricts-smartphones-in-schools-intl-latam/index.html\">https://edition.cnn.com/2025/01/13/americas/brazil-restricts-smartphones-in-schools-intl-latam/index.html</a></p>\n    <p>\n      The Brazilian Classroom: Same same, but very different:</p>\n    <p>\n      <a moz-do-not-send=\"true\"\nhref=\"https://teachingacrossborders.ucalgaryblogs.ca/the-brazilian-classroom-same-same-but-very-different/\">https://teachingacrossborders.ucalgaryblogs.ca/the-brazilian-classroom-same-same-but-very-different/</a></p>',441,0,0,'CC-BY-NC','Social Media Usage, Opinion',0,0,1),
(4328,'2025-03-05','Use SELinux the easy way',1378,'You don\'t have to be an expert on SELinux to use it effectively',' <p>The most basic security toggle on your Linux computer is the <pre><code>setenforce</code></pre> command. Using just a single <pre><code>setenforce</code></pre> instruction, you can configure SELinux to allow a violation it would normally prevent.  There are two states: Enabled and Permissive.  By default, SELinux is <pre><code>Enabled</code></pre> (also represented as <pre><code>1</code></pre> when using Boolean values).  To set SELinux to permissive mode:</p>\r\n\r\n<p><pre><code>$ sudo setenforce Permissive</code></pre></p>\r\n<p>When something works in Permissive mode, you\'ve successfully identified the symptom, but you haven\'t fixed the problem yet.  Activate Enforcing mode again:</p>\r\n<p><pre><code>$ sudo setenforce Enforcing</code></pre></p>\r\n<h2>Check the status of SELinux</h2>\r\n<p>You can check the state of SELinux at any time using the <pre><code>sestatus</code></pre> command:</p>\r\n<p><pre><code>$ sestatus\r\nSELinux status:                 enabled\r\nSELinuxfs mount:                /sys/fs/selinux\r\nSELinux root directory:         /etc/selinux\r\nLoaded policy name:             targeted\r\nCurrent mode:                   enforcing\r\n[...]</code></pre></p>\r\n<h2>Look at labels and contexts</h2>\r\n<p>If you have a running Linux system, then you have an example of what SELinux requires for normal operation.  You don\'t have to learn about security contexts or memorize labels.  For most anything you try to do on your computer, there are likely already files doing something similar.  Use those files as templates.</p>\r\n<p>You can look at the security labels of any file you have access to by using the <pre><code>-Z</code></pre> (that\'s a capital Z) option of <pre><code>ls</code></pre>:</p>\r\n<p><pre><code>$ touch hellotouch hello.txt\r\n$ ls -Z hello.txt\r\nunconfined_u:object_r:user_home_t:s0 hello</code></pre></p>\r\n<p>An empty file created by a user in the user\'s own home directory has, as you might expect, a very specific security profile.  Even with the executable bit set, that file would not be permitted to run as a systemwide service.  It just doesn\'t have the correct security context.</p>\r\n<p>If you use an <pre><code>ll</code></pre> alias, try adding the <pre><code>-Z</code></pre> option to its option list so you get used to seeing SELinux labels.  The more you see what labels exist on your system, and how they relate to various system roles, you\'re more likely to recognize when they\'re wrong.</p>\r\n<h2>Copy contexts</h2>\r\n<p>Suppose you were developing a custom SELinux service for your laptop.  You\'ve written a shell script, a service file, and you\'ve placed them in the appropriate system locations.  You\'re also careful to set ownership and permissions correctly.  But no matter what you do, you get errors when attempting to start the service.</p>\r\n<p>You suspect that SELinux might be preventing an unrecognized service from running.  That would normally be appreciated, but in this case you want to make an exception.</p>\r\n<p>First, confirm that the service runs successfully with SELinux in Permissive mode:</p>\r\n<p><pre><code>$ sudo setenforce Permissive\r\n$ sestatus | grep Current\r\nCurrent mode:                 permissive\r\n$ sudo systemctl start hello.service || echo \"fail\"\r\n$\r\n$ sudo setenforce Enforcing</code></pre></p>\r\n<p>Then look at the files you\'ve created using the <pre><code>-Z</code></pre> and compare them with other files that you know to be working properly.  Note the differences:</p>\r\n<p><pre><code>$ ls -Z /usr/lib/systemd/system/hello.service\r\nunconfined_u:object_r:systemd_unit_file_t:s0\r\n$ ls -Z /usr/lib/systemd/system/rdisc.service\r\nsystem_u:object_r:rdisc_unit_file_t:s0</code></pre></p>\r\n<p>The working service (<pre><code>rdisc.service</code></pre> in this example, chosen at random) features the <pre><code>system_u</code></pre> label as well as a special <pre><code>rdisc_unit_file_t</code></pre> label.  Suppose you know from previous experience with <pre><code>ls -Z</code></pre> that a common SELinux label for systemd service files is <pre><code>systemd_unit_file_t</code></pre> so you ignore that difference.  However, <pre><code>unconfined_u</code></pre> and <pre><code>system_u</code></pre> seem to be important.</p>\r\n<p>Use the <pre><code>chcon</code></pre> (\"change context\") command to change the security context of your service file:</p>\r\n<pre>\r\n$ sudo chcon system_u:object_r:systemd_unit_file_t:s0 \\\r\n/usr/lib/systemd/system/hello.service\r\n$ ls -Z /usr/lib/systemd/system/hello.service\r\nsystem_u:object_r:systemd_unit_file_t:s0\r\n</pre>\r\n<p>Your systemd service is probably triggering some executable file on your system.  If you created that yourself, it probably also has the incorrect security context.  Comparing it to a known working script:</p>\r\n<p><pre><code>$ ls -Z /usr/bin/example.sh\r\nunconfined_u:object_r:gconf_home_t:s0\r\n$ ls -Z /usr/bin/brltty-prologue.sh\r\nsystem_u:object_r:bin_t:s0</code></pre></p>\r\n<p>Again, there\'s one obvious difference, which you can correct with <pre><code>chcon</code></pre>:</p>\r\n<p><pre><code>$ chcon system_u:object_r:bin_t:s0 \\\r\n\r\n/usr/bin/example.sh</code></pre></p>\r',78,0,0,'CC-BY-SA','linux, selinux, permissions',0,0,1),
(4332,'2025-03-11','Top 5 mistakes every new terminal user makes',1465,'And how to avoid them','\n    <div class=\"entry-content\">\n      <p>Learning to use the terminal is an important step in becoming a\n        true power user of Linux, but it’s easy (and normal) to make\n        mistakes along the way. Here are the top 5 mistakes new terminal\n        users make, and what you can learn from them.</p>\n      <h2 class=\"wp-block-heading\">1. Current working directory</h2>\n      <p>When you first open a terminal, your current working directory\n        is your home folder. You have access to all those directories\n        you see in your home directory every time you open a file\n        manager (<code>Desktop</code>, <code>Documents</code>, <code>Downloads</code>,\n        <code>Music</code>, <code>Pictures</code>, and <code>Videos</code>).\n        You can verify your location with the <code>pwd</code> command:</p>\n      <pre class=\"wp-block-code\"><code>$ pwd\n/home/seth</code></pre>\n      <p>You can list the files and folders within your current\n        directory with the <code>ls</code> or <code>dir</code> or <code>tree</code>\n        commands:</p>\n      <pre class=\"wp-block-code\"><code>$ ls\nDesktop  Documents  Downloads\nMusic    Pictures   Videos</code></pre>\n      <p>But you don’t usually stay in one place while using the\n        terminal. You frequently move from folder to folder so you can\n        open or modify or edit files. It’s easy to get lost, forgetting\n        what directory you’re in and what files are around you.</p>\n      <p><strong>Lesson learned:</strong> When working in the terminal,\n        it’s important to regularly verify your current working\n        directory with <code>pwd</code> so you don’t accidentally issue\n        a command you intended to run in a different location.</p>\n      <h2 class=\"wp-block-heading\">2. Use interactive options when using\n        wildcards</h2>\n      <p>Wildcards are great shorthand to make command entry faster, and\n        to perform bulk actions on lots of files. However, they can be\n        dangerous when you get them wrong.<br>\n        It’s easy to process hundreds of the wrong files by using a\n        wildcard in the wrong directory, or by using a wildcard that’s\n        too broad.</p>\n      <p>For example, suppose you want to run a <code>sed</code>\n        command on all HTML files in a directory, so you run this:</p>\n      <pre class=\"wp-block-code\"><code>$ sed --in-place \'s/day/night/g\' *ml</code></pre>\n      <p>Job done, until you find out that you accidentally ran that\n        command on all your XML files, too.</p>\n      <p><strong>Lesson learned:</strong> Run a safe test command on the\n        wildcard you <em>think</em> you want to target before making a\n        change. Some commands have a literal <code>--dry-run</code>\n        option. Others have an <code>--interactive</code> option that\n        forces the command to prompt you to confirm that you want to\n        carry out the action. Sometimes the logic is reversed: a command\n        refuses to make a major change unless you use a command (for\n        example, <code>sed</code> doesn’t write changes to a file\n        without the <code>--in-place</code> option or redirection).</p>\n      <p>When in doubt, improvise. You can always “expand” a wildcard\n        using the <code>echo</code> command:</p>\n      <pre class=\"wp-block-code\"><code>$ echo ./*ml\n./four.html ./one.xml ./three.html ./two.xml\n$ echo ./*tml\n./four.html ./three.html</code></pre>\n      <h2 class=\"wp-block-heading\">3. File paths</h2>\n      <p>Many new terminal users don’t understand where files are\n        located within the file system. It’s not a common mistake to\n        make on the desktop because there are visual reminders there.\n        You wouldn’t try to double-click on a document to open it if\n        there was no icon to double-click. It’s easy to assume that the\n        terminal application contains all your files all at once, but\n        the terminal is, by design, limited in scope. Were the terminal\n        to have access to every file everywhere on your system all at\n        once, you’d end up accidentally renaming and moving and copying\n        a lot more files than intended. Specificity is a super power,\n        and it’s defined by the <em>file path</em>.</p>\n      <p>A file path describes where a file exists in a file system. A\n        full (or “absolute”) file path always starts from the single\n        folder at the start of your operating system, indicated by just\n        a <code>/</code>, and then lists each folder within that folder\n        until it traces the path to a specific file. For example, I have\n        a file called <code>IMG_0001.JPG</code> in my <code>Pictures</code>\n        directory. You probably have a mental image of where that file\n        is and how you’d get there on the desktop. But for the terminal\n        to understand how to find it, the location must be expressed as\n        <code>/home/seth/Pictures/IMG_0001.JPG</code>.</p>\n      <p>An absolute file path is definitive. The terminal always\n        understands an absolute file path, no matter what your current\n        working directory is.</p>\n      <p>The absolute path to a file can be unwieldy, though. Once you\n        understand absolute paths, you can abbreviate any path to a <em>relative</em>\n        file path.</p>\n      <p>A relative file path is based on your current location in the\n        terminal. As long as you’re in the <code>Pictures</code>\n        folder, the full path <code>/home/seth/Pictures/IMG_0001.JPG</code>\n        can be shortened to just <code>IMG_0001.JPG</code>, or <code>./IMG_0001.JPG</code>\n        for added clarity (the <code>.</code> indicates no movement\n        from your current location, and the <code>/</code> is a\n        directory separator as usual).</p>\n      <p>But suppose your current working directory was your home\n        directory. Your <code>Pictures</code> folder is located in your\n        home directory, so to get to <code>IMG_0001.JPG</code> you have\n        to enter <code>Pictures</code> first. The relative path in that\n        case is <code>./Pictures/IMG_0001.JPG</code> or just <code>Pictures/IMG_0001.JPG</code>.</p>\n      <p><strong>Lesson learned:</strong> An absolute file path always\n        starts from the start of a file system. A relative file path\n        changes based on your location. The terminal understands both.\n        For new users, the absolute file path is the most explicit and\n        exact way to reference a file, so practice using them until\n        you’re comfortable with the concept of file paths.</p>\n      <h2 class=\"wp-block-heading\">4. Executable permissions</h2>\n      <p>By default, most files aren’t executable. You can’t run them\n        like an application, because most files are meant to be opened <em>in</em>\n        an application. That’s not true for shell scripts, though.</p>\n      <p>Shell scripts are text files containing a list of commands, and\n        they’re meant to be run like an application. They’re a powerful\n        way to string existing commands together to form a new custom\n        command. However, because a shell script starts out as a regular\n        text file, it’s not seen by your terminal as an executable\n        entity.</p>\n      <p>To execute a file as an application, you can grant it\n        executable permission with the <code>chmod</code> command:</p>\n      <pre class=\"wp-block-code\"><code>$ chmod +x ./example.sh</code></pre>\n      <p>Alternatively, you can run the file in a sub-shell:</p>\n      <pre class=\"wp-block-code\"><code>$ bash ./example.sh</code></pre>\n      <p>Notice that in these examples, I use the <code>./</code>\n        notation as if the <code>example.sh</code> shell script exists\n        in my current directory.</p>\n      <h2 class=\"wp-block-heading\">5. Typing errors</h2>\n      <p>It sometimes feels like the more you type, the more you’re\n        getting done. In a terminal, though, typing too much is one of\n        the best ways to introduce mistakes.</p>\n      <p>When you try to type a long and complex command, you’re liable\n        to spell something wrong or use the wrong option. When you try\n        to type a filename or a file path, you might forget to escape\n        special characters (like spaces). The errors aren’t usually\n        catastrophic, but they’re frustrating and time consuming.</p>\n      <p><strong>Lesson learned:</strong> There are several ways to\n        ensure you’re entering the correct commands into your terminal:</p>\n      <ul class=\"wp-block-list\">\n        <li><strong>Copy and paste:</strong> If you’re using a command\n          you found on a trusted website, copy it in your browser and\n          then paste it into your terminal using <strong>Ctrl</strong>+<strong>Shift</strong>+<strong>V</strong>\n          or right-click and select <strong>Paste</strong>.</li>\n        <li><strong>TAB:</strong> You can type part of a command or file\n          path, and then press the <strong>TAB</strong> key on your\n          keyboard for either auto-completion or for suggested\n          completions. Use it even when you don’t think you need it.\n          It’ll save you errors <em>every single time</em>, even when\n          it appears to not work (hint: it’s not working because you’re\n          trying to auto-complete something that’s not where you think\n          it is).</li>\n        <li><strong>Drag-and-drop:</strong> It’s the 21st century! You\n          can drag a file or folder from anywhere on your computer, and\n          drop it into your terminal. It gets replaced by its absolute\n          path automatically.</li>\n      </ul>\n      <h2 class=\"wp-block-heading\">Practice makes perfect</h2>\n      <p>To get good in the terminal, you have to use it as often as you\n        can. You don’t have to use it for “serious” work at first, and\n        you arguably shouldn’t, but you can and should do simple\n        exercises in the terminal. Understand file paths, get used to\n        wildcards, learn shortcuts, use the <strong>TAB</strong> key.\n        The biggest mistake you can make when learning the terminal is\n        to not use the terminal, so open it up every day, do your\n        exercise, and you’ll be an expert in the terminal in no time.</p>\n    </div>',78,0,0,'CC-BY-SA','linux, terminal',0,0,1),
(4356,'2025-04-14','Mirror Mirror On The Wall',765,'Lee talks about running a private Ubuntu mirror','\n    <h2>\n      <strong>\n        Running a private Ubuntu Mirror</strong>\n    </h2>\n    <p>\n      It is possible to set up a local server to keep a synchronized\n      copy of all the Ubuntu packages, allowing later installs of\n      packages for any local machine even in the absence of an internet\n      connection.</p>\n    <p>\n      To do this a script called <a\n        href=\"https://github.com/apt-mirror/apt-mirror\" rel=\"noopener\n        noreferrer\" target=\"_blank\" style=\"color: rgb(65, 131, 196);\">\n        apt-mirror</a> can be run on the server.</p>\n    <h2>\n      <strong>\n        crontab</strong>\n    </h2>\n    <pre class=\"ql-syntax\" spellcheck=\"false\">0 1 * * * /usr/local/bin/apt-mirror\n</pre>\n    <p>\n      The location of the mirror is specified in <code\n        style=\"background-color: rgb(243, 244, 244);\">\n        apt-mirror.conf</code>\n    </p>\n    <h2>\n      <strong>\n        /etc/apt/apt-mirror.conf</strong>\n    </h2>\n    <pre class=\"ql-syntax\" spellcheck=\"false\">set mirror_path /disk/ftp/Mirror\nset cleanup_freq daily\nset mirror_verbose yes\n</pre>\n    <p>\n      The origin servers are specified in <code\n        style=\"background-color: rgb(243, 244, 244);\">\n        mirror.list</code>\n      . It is possible to choose which architectures and Ubuntu releases\n      to fetch as well as whether to fetch just the binary packages or\n      also the sources.</p>\n    <h2>\n      <strong>\n        /etc/apt/mirror.list</strong>\n    </h2>\n    <pre class=\"ql-syntax\" spellcheck=\"false\">​\ndeb http://archive.ubuntu.com/ubuntu noble main restricted universe multiverse\ndeb http://security.ubuntu.com/ubuntu noble-security main restricted universe multiverse\ndeb http://archive.ubuntu.com/ubuntu noble-updates main restricted universe multiverse\ndeb http://archive.ubuntu.com/ubuntu noble-backports main restricted universe multiverse\n​\ndeb-i386 http://archive.ubuntu.com/ubuntu noble main restricted universe multiverse\ndeb-i386 http://security.ubuntu.com/ubuntu noble-security main restricted universe multiverse\ndeb-i386 http://archive.ubuntu.com/ubuntu noble-updates main restricted universe multiverse\ndeb-i386 http://archive.ubuntu.com/ubuntu noble-backports main restricted universe multiverse\n​\n#deb-src http://archive.ubuntu.com/ubuntu noble main restricted universe multiverse\n#deb-src http://security.ubuntu.com/ubuntu noble-security main restricted universe multiverse\n#deb-src http://archive.ubuntu.com/ubuntu noble-updates main restricted universe multiverse\n#deb-src http://archive.ubuntu.com/ubuntu noble-backports main restricted universe multiverse\n​\nclean http://archive.ubuntu.com/ubuntu\n</pre>\n    <p>\n      The mirrored packages could be served up to local machines in a\n      number of ways, I am using <a\n        href=\"https://security.appspot.com/vsftpd.html\" rel=\"noopener\n        noreferrer\" target=\"_blank\" style=\"color: rgb(65, 131, 196);\">\n        vsftpd</a> to serve the files via FTP.</p>\n    <h2>\n      <strong>\n        /etc/vsftp.conf</strong>\n    </h2>\n    <pre class=\"ql-syntax\" spellcheck=\"false\">anonymous_enable=YES\nanon_upload_enable=YES\nanon_mkdir_write_enable=YES\ndirmessage_enable=YES\nxferlog_enable=YES\nconnect_from_port_20=YES\nlisten=YES\npam_service_name=vsftpd\nseccomp_sandbox=NO\nisolate_network=NO\nanon_root=/disk/ftp/\nno_anon_password=YES\nhide_ids=YES\npasv_min_port=40000\npasv_max_port=50000\nwrite_enable=YES\n</pre>\n    <p>\n      On local machines, the mirror on the server can then be specified\n      as the source for <code style=\"background-color: rgb(243, 244,\n        244);\">\n        apt</code> to use to retrieve packages.</p>\n    <h2>\n      <strong>\n        /etc/apt/sources.list.d/ubuntu.sources</strong>\n    </h2>\n    <pre class=\"ql-syntax\" spellcheck=\"false\">​\nTypes: deb\nURIs: ftp://server/Mirror/mirror/archive.ubuntu.com/ubuntu\nSuites: noble noble-updates noble-backports\nComponents: main universe restricted multiverse\nSigned-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg\n​\n## Ubuntu security updates. Aside from URIs and Suites,\n## this should mirror your choices in the previous section.\nTypes: deb\nURIs: ftp://server/Mirror/mirror/security.ubuntu.com/ubuntu\nSuites: noble-security\nComponents: main universe restricted multiverse\nSigned-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg\n</pre>\n    <p>\n      <br>\n    </p>',403,0,0,'CC-BY-SA','linux, ubuntu, mirror',0,0,1),
(4335,'2025-03-14','Responce to Antoin\'s H P R 4 3 1 3 ',540,'Responce to Antoin\'s H P R 4 3 1 3 Converted to English Audio ','\n    <p>\n      Response to Antoin\'s <a moz-do-not-send=\"true\"\n        href=\"https://hackerpublicradio.org/eps/hpr4313/\">HPR4313</a>\n      \"Why I made a 1-episode podcast about a war story. \"<br>\n      Used <a moz-do-not-send=\"true\"\nhref=\"https://huggingface.co/Jmica/audiobook_maker/blob/main/audiobook_maker_v3.0.zip\">https://huggingface.co/Jmica/audiobook_maker/blob/main/audiobook_maker_v3.0.zip</a>\n      with trained model of NOT Jenna Ortega :P</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      <br>\n    </p>',36,0,1,'CC-BY-SA','tts,F5TTS,Transcoding,audio,AI',0,0,1),
(4345,'2025-03-28','Android 2025',554,'I talk about my current setup with locked down Android phone','<p>A collection of tips and tricks that operat0r uses to make a standard Android phone more custom. The secret block extension is \"11335506\" - tell \'em Ken sent ya.</p>\n\n<h3>Links</h3>\n<ul>\n<li><a href=\"https://play.google.com/store/apps/details?id=tech.ula\">UserLAnd - Linux on Andro</a> UserLAnd is an open-source app which allows you to run several Linux distributions like Ubuntu, Debian, and Kali.</li>\n<li><a href=\"https://play.google.com/store/apps/details?id=com.widgify.worldroid\">Widgify - DIY Live Wallpaper</a> Widgify is a well-designed beautification tool for phone, where you can experience a wide variety of screen widgets to easily match your super personalized phone home screen!</li>\n<li><a href=\"https://play.google.com/store/apps/details?id=com.teslacoilsw.launcher.prime\">Nova Launcher Prime</a> Nova Launcher is a powerful, customizable, and versatile home screen replacement.</li>\n<li><a href=\"https://play.google.com/store/apps/details?id=org.mozilla.fenix\">Firefox Nightly for Developers</a> Nightly is built for testers. Help us make Firefox the best browser it can be.</li>\n<li><a href=\"https://blog.mozilla.org/addons/2020/09/29/expanded-extension-support-in-firefox-for-android-nightly/\"> Expanded extension support in Firefox for Android Nightly </a> </li>\n<li><a href=\"https://support.mozilla.org/en-US/kb/how-use-collections-addonsmozillaorg\"> How to use collections on addons.mozilla.org</a> </li>\n<li><a href=\"https://sponsor.ajay.app/\">SponsorBlock</a> SponsorBlock is an open-source crowdsourced browser extension and open API for skipping sponsor segments in YouTube videos.</li>\n<li><a href=\"https://play.google.com/store/apps/details?id=com.wireguard.android\">WireGuard (VPN)</a> The official app for managing WireGuard VPN tunnels.</li>\n<li><a href=\"https://github.com/julian-klode/dns66\">DNS66</a> This is a DNS-based host blocker for Android. (Requires root)</li>\n<li><a href=\"https://f-droid.org/en/packages/org.pocketworkstation.pckeyboard/\">Hacker\'s Keyboard</a> Four- or five-row soft-keyboard </li>\n<li><a href=\"https://play.google.com/store/apps/details?id=com.dharmapoudel.tidypanel\">TidyPanel Notification Cleaner</a> Tidy up your notification panel with simple, minimal, beautiful and intuitive UI.</li>\n</ul>\n',36,0,0,'CC-BY-SA','hacking,android,ad blocking,youtube ads,smart phones',0,0,1),
(4338,'2025-03-19','328eforth',860,'a review of the book arduino and eforth','\n    <h1>Review of the book the Arduino controlled by eforth by dr\n      chen-hanson ting published in 2018</h1>\n    <h2>\n      written by chen-hanson ting</h2>\n    Late Dr. ting was a chemist turned engineer. he earned a phd in\n    chemistry at the U of Chicago in 1965. taught chemistry in Taiwan\n    until 1975. became a firmware engineer until hI retirement in 2000.\n    he was a forth advocate for more than 50 years, especially a forth\n    called eforth that has been ported to many devices, including the\n    micro chip atmega 328 found on the arduino uno board.\n    <p>I found this book while searching for forths for the arduino uno\n      boards. the source code and documentation for eforth is available\n      in a lot of places I will put a few links in the show notes.</p>\n    <p>\n      I believe I mentioned this forth in an earlier hpr where I talked\n      about choosing a forth.</p>\n    <p>\n      forth interest group <a moz-do-not-send=\"true\"\n        href=\"https://forth.org\">https://forth.org</a></p>\n    <p>\n      <a moz-do-not-send=\"true\" href=\"https://wiki.forth-ev.de\">https://wiki.forth-ev.de</a></p>\n    <p><a moz-do-not-send=\"true\" href=\"https://chochain.github.io\">https://chochain.github.io</a>\n      (pdf)</p>\n    <p>When I first encountered dr tings forth for arduino I was\n      interested for one reason, it was easily assembled using avra, the\n      gnu port of the atmel assembler. this was nice because using\n      atmels (now microchips) assemblers on Linux required installing\n      wine and installing wine, in the past, on a 64 bit Slackware meant\n      installing 32 bit libraries to have a multI lib Slackware. ( that\n      not an issue now). assembling the forth code in avra is quick, its\n      only a little bit over 5k in size in the end.</p>\n    After playing with eforth for a while I became frustrated because I\n    could create new words in the dictionary and the examples ran fine,\n    but nothing persisted across reboot. so I dropped eforth and ended\n    up using flashforth, which is a great, robust full featured forth. I\n    still recommend flashforth if your starting out with forth on a\n    microcontroller its solid software with good documentation.<br>\n    <br>\n    At the end of last year I thought it would be fun to write my own\n    forth. and after looking into doing that I revisited 328eforth and\n    thought, no how about I fix the problems with eforth on the arduino.\n    so I dug out the book and began reading.\n    <p>\n      Jones forth port at <a moz-do-not-send=\"true\"\n        href=\"https://ratfactor.com/nasmjf\">https://ratfactor.com/nasmjf</a></p>\n    The book has 6 parts.\n    <p>\n      part 1 is dr tings musings on how he ended up creating 328eforth.</p>\n    <p>\n      part 2 explains installing eforth.</p>\n    <p>\n      the 3rd part begins exercising the arduino board using forth in\n      the interactive interpreter.</p>\n    <p>\n      part 4 explains 328eforth implementation and design decisions.</p>\n    <p>\n      part 5 is the full commented source code of 328eforth and, this is\n      the best part, dr tings explanation of what is going on in the\n      code broken down by functional sections. a gold mine of\n      information!</p>\n    <p>\n      part 6 conclusions</p>\n    <p>The last part is his conclusions and examples to learn forth.</p>\n    <p>This is a great free software project. nothing is hidden. it is\n      accessible to anybody who would take the time to read and dig into\n      the code. its makes assembly language much less dark and\n      foreboding. </p>\n    I\'ll finish by reading a couple of paragraphs from dr tings book\n    <p>\n      dr ting concludes:</p>\n    <p>\n      People using computers are trained to be slaves.&nbsp;You are\n      taught to push certain buttons, and your are taught to push\n      certain keys.&nbsp;Then, you get employed to push buttons and keys\n      to work as slaves.&nbsp;Computers, programming languages, and\n      operating systems are made complicated to enslave people.</p>\n    <p>\n      Computers are not complicated beyond\n      comprehension.&nbsp;Programming languages and operating systems do\n      not have to be complicated.&nbsp;If you get a sharp knife, you can\n      be the master of your destination.&nbsp;328eforth is a sharp\n      knife.&nbsp;Go use it.</p>\n    <p>\n      The hacker ethos.</p>\n    The next podcast I produce will cover installing eforth on an\n    arduino board and solving that pesky loss of words between boots\n    problem.\n    <p>\n      <br>\n    </p>',326,0,0,'CC-BY-SA','arduino, forth, book review',0,0,1),
(4349,'2025-04-03','xbindkeys send keys for linux!',703,'I talk about my setup with x bind keys!','\n<p>\nWe\'re going to be talking about synth keys more specifically sending keystrokes and Linux\n</p>\n\n<pre>\ncat ~/.xbindkeysrc\n/bin/bash /home/plex/.local/bin/Plex.sh\n/bin/bash /home/plex/.local/bin/Steam.sh\n/usr/local/bin/kasa --host 192.168.1.239  --port 9999 --type dimmer on; /usr/local/bin/kasa --host 192.168.1.239  --port 9999 --type dimmer brightness 100\n/usr/local/bin/kasa --host 192.168.1.239  --port 9999 --type dimmer on; /usr/local/bin/kasa --host 192.168.1.239  --port 9999 --type dimmer brightness 40\n/usr/local/bin/kasa --host 192.168.1.239  --port 9999 --type dimmer on; /usr/local/bin/kasa --host 192.168.1.239  --port 9999 --type dimmer brightness 12\n/usr/local/bin/kasa --host 192.168.1.239  --port 9999 --type dimmer off;xrandr --output default --gamma 3:3:3\n</pre>\n\n<h3>Links</h3>\n<ul>\n<li><a href=\"https://www.nongnu.org/xbindkeys/\">https://www.nongnu.org/xbindkeys/</a></li>\n<li><a href=\"https://wiki.archlinux.org/title/Xbindkeys\">https://wiki.archlinux.org/title/Xbindkeys</a></li>\n</ul>',36,0,0,'CC-BY-SA','linux,scripting',0,0,1),
(4339,'2025-03-20','Review of the YR01 smart lock',836,'Rho`n reviews his recently installed Yamiry YR01 Fingerprint Smart Knob','\n    <p>\n      This episode gives a mini-review of the Yamiry YR01 Fingerprint\n      Smart Knob. This key less entry system replaces your door handles\n      and latch with a door handle and latch system that allows for\n      multiple ways to \'keylessly\' unlock your door via fingerprint, pin\n      codes, bluetooth fobs, your phone\'s bluetooth, or your phone\'s\n      wifi.</p>\n    <p>\n      References:</p>\n    <ul>\n      <li>\n        Yamiry Fingerprint Smart Knob - Keyless Entry Digital Lock for\n        Front Door (<a moz-do-not-send=\"true\"\nhref=\"https://www.amazon.com/Smart-Door-Handle-Lock-Keypad/dp/B0C66NCTXX\">https://www.amazon.com/Smart-Door-Handle-Lock-Keypad/dp/B0C66NCTXX</a>)</li>\n      <li>\n        NICE Digi (<a moz-do-not-send=\"true\"\n          href=\"https://nice-digi.com/\">https://nice-digi.com/</a>)</li>\n    </ul>\n    <p>\n      <br>\n    </p>',293,0,0,'CC-BY-SA','review, hardware review, keyless entry system, door lock',0,0,1),
(4342,'2025-03-25','How I use Git to blog on the web and gopherspace',2259,'How I use Git to blog on the web and gopherspace','    <p> First, I create a Git repository some place on the server. This\n      is the Git repo that\'s going to be populated with your content,\n      but it doesn\'t have to be in a world-viewable location on your\n      server. Instead, you can place this anywhere, and then use a Git\n      hook or a cronjob to copy files from it to a world-viewable\n      directory. I don\'t cover that here. I refer to this location as\n      the staging directory.</p>\n    <p> Next, create a bare repository on your server. In its hooks\n      directory, create a shell script called post-receive:</p>\n    <pre>#!/usr/bin/bash\n#\nwhile read oldrev newrev refname\ndo\n       BR=`git rev-parse --symbolic --abbrev-ref $refname`\n       if [ \"$BR\" == \"master\" ]; then\n               WEB_DIR=\"/my/staging/dir\"\n               export GIT_DIR=\"$WEB_DIR/.git\"\n               pushd $WEB_DIR &gt; /dev/null\n               git pull\n               popd &gt; /dev/null\n       fi\ndone \n</pre>\n    Now when you push to your bare repository, you are triggering the\n    post-receive script to run, which in turn triggers a git pull in\n    your staging directory.\n    <p> Once your staging directory contains the content you want to\n      distribute, you can copy them to live directories, or you could\n      make your staging directory live (remember to exclude the .git\n      directory though), or whatever you want.</p>\n    <p> For gopher, I create a file listing by date using a shell\n      script:</p>\n    <pre>#!/usr/bin/bash\nSED=/usr/bin/sed\nDIR_BASE=/my/live/dir\nDIR_LIVE=blog\nDIR_STAGING=staging\nDATE=${DATE:-`date --rfc-3339=date`}\nfor POST in `find \"$DIR_BASE\"/\"$DIR_STAGING\" \\\n-type f -name \"item.md\" -exec grep -Hl \"$DATE\" {} \\;`;\ndo \nPOSTDIR=`dirname \"$POST\"`\ncp \"$POST\" \"$DIR_BASE\"/\"$DIR_LIVE\"/`basename $POSTDIR`.txt\necho -e 0Latest\'\\t\'../\"$DIR_LIVE\"/`basename $POSTDIR`.txt &gt; /tmp/updater.tmp\n\necho -e 0\"$DATE\" `basename $POSTDIR`\'\\t\'../\"$DIR_LIVE\"/`basename $POSTDIR`.txt \\\n&gt;&gt; /tmp/updater.tmp\n\"${SED}\" -i \"/0Latest/ r /tmp/updater.tmp\" \"$DIR_BASE\"/date/gophermap\n\"${SED}\" -i \'0,/0Latest/{/0Latest/d;}\' \"$DIR_BASE\"/date/gophermap\n/usr/bin/rm /tmp/updater.tmp\ndone \n</pre>',78,0,0,'CC-BY-SA','git, gopher',0,0,1),
(4375,'2025-05-09','Long Chain Carbons,Eggs and Dorodango?',2026,'We make egg drop soup and talk about Dorodango W T F','\n    <p>\n    </p>\n    <p>\n      Let\'s make soup while talking about Dorodango.</p>\n    <p></p>\n    <p>\n    </p>\n    <p>\n      Dorodango (Japanese: 泥だんご, lit. \"mud dumpling\") is a Japanese art\n      form in which earth and water are combined and moulded, then\n      carefully polished to create a delicate shiny sphere. </p>\n    <p></p>\n    <p>\n    </p>\n    <p>\n      <a href=\"https://en.wikipedia.org/wiki/Dorodango\">\n        https://en.wikipedia.org/wiki/Dorodango</a>\n    </p>\n    <p></p>\n    <p>\n    </p>\n    <p>\n      <a title=\"Sharon Chen from Austin, United States, CC BY 2.0\n        &amp;lt;https://creativecommons.org/licenses/by/2.0&amp;gt;, via\n        Wikimedia Commons\"\nhref=\"https://commons.wikimedia.org/wiki/File:5-Minute_Egg_Drop_Soup-5_(32079790121).jpg\"></a><a\n        href=\"hpr4375_image_ext_1.jpeg\">\n        <img src=\"hpr4375_image_ext_1_tn.jpeg\">\n      </a>\n    </p>\n    <p></p>\n    <p>\n    </p>\n    <p>\n      <a title=\"Asturio Cantabrio, CC BY-SA 4.0\n        &amp;lt;https://creativecommons.org/licenses/by-sa/4.0&amp;gt;,\n        via Wikimedia Commons\"\nhref=\"https://commons.wikimedia.org/wiki/File:INAX_Clay_Works_big_dorodango_ac.jpg\"></a><a\n        href=\"hpr4375_image_ext_2.jpeg\">\n        <img src=\"hpr4375_image_ext_2_tn.jpeg\">\n      </a>\n    </p>\n    <p>\n      <img src=\"hpr4375_image_ext_3.jpeg\">\n    </p>\n    <h3>Links</h3>\n    <ul>\n      <li>\n        <a href=\"https://en.wikipedia.org/wiki/Egg_drop_soup\">\n          https://en.wikipedia.org/wiki/Egg_drop_soup</a>\n      </li>\n      <li>\n        <a href=\"https://en.wikipedia.org/wiki/Dorodango\">\n          https://en.wikipedia.org/wiki/Dorodango</a>\n      </li>\n      <li>\n        <a href=\"https://en.wikipedia.org/wiki/Ultisol\">\n          https://en.wikipedia.org/wiki/Ultisol</a>\n      </li>\n      <li>\n        <a href=\"https://en.wikipedia.org/wiki/Mason_jar\">\n          https://en.wikipedia.org/wiki/Mason_jar</a>\n      </li>\n      <p></p>\n      <p>\n      </p>\n    </ul>\n    <p></p>\n    <p>\n      <br>\n    </p>',36,0,1,'CC-BY-SA','Dorodango,crafts,cooking',0,0,1),
(4385,'2025-05-23','Cable un-managment lol',996,'operat0r talks about cable managment or the lack of...','\n    <p>\n      Some tips that I use for cable management, and keeping a track of\n      stuff. Featuring the elusive \"charge master 9000 NGX Pro\n      Enterprise Edition\".</p>\n    <h3>\n      Links</h3>\n    <ul>\n      <li>\n        <a href=\"https://en.wikipedia.org/wiki/Twist_tie\"\n          rel=\"noopener noreferrer\" target=\"_blank\">\n          https://en.wikipedia.org/wiki/Twist_tie</a>\n      </li>\n      <li>\n        <a href=\"https://en.wikipedia.org/wiki/Tweezers\" rel=\"noopener\n          noreferrer\" target=\"_blank\">\n          https://en.wikipedia.org/wiki/Tweezers</a>\n      </li>\n    </ul>\n    <p>\n      <a href=\"hpr4385_image_1.png\">\n        <img src=\"hpr4385_image_1_tn.png\" moz-do-not-send=\"true\" alt=\"A\n          rats nest of cables behind a desk.\" height=\"533\" border=\"0\"\n          width=\"400\">\n      </a>\n    </p>\n    <p>\n      <br>\n    </p>\n    <p>\n      <a href=\"hpr4385_image_2.png\">\n        <img src=\"hpr4385_image_2_tn.png\" moz-do-not-send=\"true\" alt=\"A\n          drawer full of assorted charging stations\" height=\"300\"\n          border=\"0\" width=\"400\">\n      </a>\n    </p>',36,0,1,'CC-BY-SA','computers,wires,electronics',0,0,1),
(4386,'2025-05-26','Silly Tavern Spicy Roll Play',1181,'Silly Tavern Spicy Roll Play for degenerates !','\n<p>\n<a href=\"https://jamboree.rmccurdy.com\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://jamboree.rmccurdy.com</a>\n</p>\n<p>\nProfiles top 100 M/F&nbsp;</p>\n<p>\n<a href=\"https://github.com/freeload101/SCRIPTS/tree/master/NODE\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://github.com/freeload101/SCRIPTS/tree/master/NODE</a>\n</p>\n<p>\n(Click the horde tab and use my key)</p>\n<p>\n<a href=\"https://agnai.chat/settings?tab=0\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://agnai.chat/settings?tab=0&nbsp;&nbsp;</a>\n</p>\n<p>\n<a href=\"https://lite.koboldai.net\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://lite.koboldai.net</a>\n</p>\n<p>\n<a href=\"https://sillytavernai.com\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://sillytavernai.com says </a>\nsays \"SillyTavern is an advanced, locally-deployed interface designed to facilitate deep, interactive role-playing experiences. Built on large language models (LLMs) such as <strong>\nClaude</strong>\n and <strong>\nGemini</strong>\n, SillyTavern allows users to engage with custom-built characters that they can mold according to their own preferences. The tool was created by <strong>\nCohee</strong>\n, <strong>\nRossAscends</strong>\n, and the <strong>\nSillyTavern community</strong>\n, evolving from an earlier version of TavernAI. Its core function is to serve as a front-end interface for AI models via API calls, which means it doesn\'t require users to host complex models themselves.\"</p>\n\n\n',36,0,1,'CC-BY-SA','ai,roll play,chat bots,bots',0,0,1),
(4341,'2025-03-24','Transferring Large Data Sets',630,'How to transfer large data sets using tar and bluray discs while preserving meta data.','\n    <h2>\n      Transferring Large Data Sets</h2>\n    <p>\n      Very large data sets present their own problems. Not everyone has\n      directories with hundreds of gigabytes of project files, but I do,\n      and I assume I\'m not the only one.</p>\n    <p>\n      For instance, I have a directory with over 700 radio shows, many\n      of these directories also have a podcast, and they also have\n      pictures and text files.</p>\n    <p>\n      Doing a properties check on the directory I see 450 gigabytes of\n      data.</p>\n    <p>\n      When I started envisioning Libre Indie Archive I wanted to move\n      the directories into archival storage using optical drives. My\n      first attempt at this didn\'t work because I lost metadata when I\n      wrote the optical drives since optical drives are read only.</p>\n    <p>\n      After further work and study I learned that tar files can preserve\n      meta data if they are created and uncompressed as root. In fact,\n      if you are running tar as root preserving file ownership and\n      permissions is the default.</p>\n    <p>\n      So this means that optical drives are an option if you write tar\n      archives onto the optical drives.</p>\n    <p>\n      I have better success rates with 25 GB Blue Ray Discs than with\n      the 50 GB discs. So, if your directory breaks up into projects\n      that fit on 25 GB discs, that\'s great.</p>\n    <p>\n      My data did not do this easily but tar does have an option to\n      write a data set to multiple tar files each with a maximum size,\n      labelling them -0 -1, etc. </p>\n    <p>\n      When using this multi volume feature you cannot use compression.\n      So you will get tar files, not tar.gz files.</p>\n    <p>\n      It\'s better to break the file sets up in more reasonable sizes so\n      I decided to divide the shows up alphabetically by title, so all\n      the shows starting with the letter a would be one data set and\n      then down the alphabet, one letter at a time.</p>\n    <p>\n      Most of the letters would result in a single tar file labeled -0\n      that would fit on the 25 GB disc. Many letters, however, took two\n      or even three tar files that would have to be written on different\n      disks and then concatenated on the primary system before they are\n      extracted to the correct location in primaryfiles.</p>\n    <p>\n      There is a companion program to tar, called tarcat, that I used to\n      combine 2 or 3 tar files split by length into a single tar file\n      that could be extracted.</p>\n    <p>\n      I ran engrampa as root to extract the files.</p>\n    <p>\n      So, I used a tar command on the working system where my Something\n      Blue radio shows are stored. Then I used K3b to burn these files\n      onto a 25 GB Blu Ray Disc carefully labeling the discs and writing\n      a text file that I used to keep up with which files I had already\n      copied to Disc.</p>\n    <p>\n      Then on the Libre Indie Archive primary system I copied from the\n      Blu Ray to the boot drive the file or files for that data set.\n      Then I would use tarcat to combine the files if there was more\n      than one file for that data set. And finally I would extract the\n      files to primaryfiles by running engrampa as root.</p>\n    <p>\n      Now I\'m going to go into details on each of these steps.</p>\n    <p>\n      First make sure that the Libre Indie Archive program, prep.sh, is\n      in your home directory on your workstation. Then from the data\n      directory to be archived, in my case the something_blue directory\n      run prep.sh like this.</p>\n    <pre>\n~/prep.sh</pre>\n    <p>\n      This will create a file named IA_Origin.txt that lists the date,\n      the computer and directory being archived, and the users and\n      userids on that system. All very helpful information to have if at\n      some time in the future you need to do a restore.</p>\n    <p>\n      Next create a tar data set for each letter of the alphabet. (You\n      may want to divide your data set in a different way.)</p>\n    <p>\n      Open a terminal in the same directory as the data directory, my\n      something_blue directory, so that ls displays something_blue (your\n      data directory). I keep the Something Blue shows and podcasts in\n      subdirectories in the something_blue directory.</p>\n    <p>\n      Here\'s the tar command.</p>\n    <p>\n      Example a:</p>\n    <pre>\nsudo tar -cv --tape-length=20000000 --file=somethingblue-a-{0..50}.tar /home/larry/delta/something_blue/a*</pre>\n    <p>\n      This is for the letter a so the --file parameter includes the\n      letter a. The numbers 0..50 in the squirelly brackets are the\n      sequence numbers for the files. I only had one file for the letter\n      a, somethingblue-a-0.tar.</p>\n    <p>\n      The last parameter is the source for the tar files, in this case</p>\n    <pre>\n/home/larry/delta/something_blue/a*</pre>\n    <p>\n      All of the files and directories in the something_blue directory\n      that start with the letter a.</p>\n    <p>\n      You may want to change the --tape-length parameter. As listed it\n      stores up to 19.1 GB. The maximum capacity of a 25 GB Blu-ray is\n      23.3GB for data storage. </p>\n    <p>\n      Example b:</p>\n    <p>\n      For the letter b, I ended up with three tar files.</p>\n    <pre>somethingblue-b-0.tar<br>somethingblue-b-1.tar<br>somethingblue-b-2.tar</pre>\n    <p>\n      I will use these files in the example below using tarcat to\n      combine the files.</p>\n    <p>\n      I use K3b to burn Blu-Ray data discs. Besides installing K3b you\n      have to install some other programs and then there is a particular\n      setup that needs to be done including selecting cdrecord and no\n      multisession. Here\'s an excellent article that will go step by\n      step&nbsp;through the installation and setup.</p>\n    <p>\n      How to burn Blu-ray discs on Ubuntu and derivatives using K3b?</p>\n    <p>\n      <a moz-do-not-send=\"true\"\nhref=\"https://en.ubunlog.com/how-to-burn-blu-ray-discs-on-ubuntu-and-derivatives-using-k3b/\">https://en.ubunlog.com/how-to-burn-blu-ray-discs-on-ubuntu-and-derivatives-using-k3b/</a></p>\n    <p>\n      I also always check Verify data and I use the Linux/Unix file\n      system, not windows which will rename your files if the filenames\n      are too long.</p>\n    <p>\n      I installed a Blu-Ray reader into the primary system and I used\n      thunar to copy the files from the Blu-Ray Disc to the boot drive.</p>\n    <p>\n      In the primaryfiles directory I make a subdirectory,\n      something_blue, to hold the archived shows.</p>\n    <p>\n      If there is only one file, like in example a above, you can skip\n      the concatenation step.</p>\n    <p>\n      If there is more than one file, like Example b above, you use\n      tarcat to concatenate these files into one tar file.</p>\n    <p>\n      You have to do this. If you try to extract from just one of the\n      numbered files when there is more than one you will get an error.\n      So if I try to extract from somethingblue-b-0.tar and I get an\n      error it doesn\'t mean that there\'s anything wrong with that file.\n      It just has to be concatenated with the other b files before it\n      can be extracted.</p>\n    <p>\n      There is a companion program to tar called tarcat that should be\n      used to concatenate the tar files.</p>\n    <p>\n      Here\'s the command I used for example b, above.</p>\n    <pre>\ntarcat somethingblue-b-0.tar somethingblue-b-1.tar somethingblue-b-2.tar &gt; sb-b.tar</pre>\n    <p>\n      This will concatenate the three smaller tar files into one bigger\n      tar file named sb-b.tar</p>\n    <p>\n      In order to preserve the meta data you have to extract the files\n      as root. In order to make it easier to select the files to be\n      extracted and where to store them I use the GUI archive manager,\n      engrampa. To run engrampa as root open a terminal with CTRL-ALT t\n      and use this command</p>\n    <pre>sudo -H engrampa</pre>\n    <p>\n      Click Open and select the tar file to extract. Then follow the\n      path until you are in the something_blue directory and you are\n      seeing the folders and files you want to extract. Type Ctrl a to\n      select them all. (instead of the something_blue directory you will\n      go to your_data directory)</p>\n    <p>\n      Then click Extract at the top of the window. Open the directory\n      where you want the files to go. In my case,\n      primaryfiles/something_blue</p>\n    <p>\n      Then click Extract again in the lower right.</p>\n    <p>\n      After the files are extracted go to your data directory in\n      primaryfiles and check that the directories and files are where\n      you expect them to be.</p>\n    <p>\n      You can also open a terminal in that directory and type</p>\n    <pre>\nls -l</pre>\n    <p>\n      to review the meta data.</p>\n    When dealing with data chunks sized 20 GB or more each one of these\n    steps takes time. The reason I like using an optical disk backup to\n    transfer the files from the working system to Libre Indie Archive is\n    because it gives me an easy to store backup that is not on a\n    spinning drive and that cannot be overwritten. Still optical disk\n    storage is not perfect either. It\'s just another belt to go with\n    your suspenders.\n    <p>\n      Another way to transfer directories into the primaryfiles\n      directory is with ssh over the network. This is not as safe as\n      using optical disks and it also does not provide the extra\n      snapshot backup. It also takes a long time but it is not as labor\n      intensive.</p>\n    <p>\n      After I spend some more time thinking about this and testing I\n      will do a podcast about transferring large data sets with ssh.</p>\n    <p>\n      Although I am transferring large data sets to move them into\n      archival storage using Libre Indie Archive there are many other\n      situations where you might want to move a large data set while\n      preserving the meta data. So what I have written about tar files,\n      optical discs, and running thunar and engrampa as root is\n      generally applicable.</p>\n    <p>\n      As always comments are appreciated. You can comment on Hacker\n      Public Radio or on Mastodon. Visit my blog at home.gamerplus.org\n      where I will post the show notes and embed the Mastodon thread for\n      comments about thie podcast.</p>\n    <p>\n      Thanks</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      <br>\n    </p>',436,25,0,'CC-BY-SA','libreindiearchive, archival, data, bash, tar',0,0,1),
(4396,'2025-06-09','AI and Sangria',1276,'operat0r talks about AI tools and troubble shooting while he makes Sangria with RUM!','\n<p>\nWe join operat0r in the kitchen for another cooking and AI discussion. Chock full of tasty tips of getting your LLM of choice up and running.</p>\n<h3>\nLinks</h3>\n<ul>\n<li>\n<a href=\"https://en.wikipedia.org/wiki/Sangria\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Sangria</a>\n</li>\n<li>\n<a href=\"https://www.anaconda.com/docs/getting-started/miniconda/install\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.anaconda.com/docs/getting-started/miniconda/install</a>\n</li>\n<li>\n<a href=\"https://duckduckgo.com/?t=ffab&amp;q=silly%20tagern%20install&amp;ia=web\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://duckduckgo.com/?t=ffab&amp;q=silly%20tagern%20install&amp;ia=web</a>\n</li>\n<li>\n<a href=\"https://docs.unsloth.ai/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://docs.unsloth.ai/</a>\n</li>\n<li>\n<a href=\"https://en.wikipedia.org/wiki/Windows_Subsystem_for_Linux\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Windows_Subsystem_for_Linux</a>\n</li>\n<li>\n<a href=\"https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html</a>\n</li>\n<li>\n<a href=\"https://pytorch.org/get-started/locally/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://pytorch.org/get-started/locally/</a>\n</li>\n</ul>\n\n\n',36,0,1,'CC-BY-SA','cooking,hacking,AI',0,0,1),
(4343,'2025-03-26','Interviewing the Redot engine Founder',3816,'Discussing the project birth, its future, other engines and diving into GPL licenses.','\n<p>\nInterview with one of the <em>\n\"Redot Engine\"</em>\n founders, Andrew.</p>\n<p>\nRedot Engine is a fork of the famous free and open source project \"Godot engine\".</p>\n<p>\n<br>\n</p>\n<p>\n<em>\nNOTE: </em>\nThis is my first time interviewing someone for a podcast, so feel free to point out any improvements and critiques I can learn from.</p>\n<p>\n<br>\n</p>\n<p>\nAfter an introduction about the reasons the project was created, we focus on other engines, on the videogame console situation, on a FOSS licensing debate, on Redot\'s future and on C language interoperability.</p>\n<p>\n<br>\n</p>\n<p>\nOfficial links:</p>\n<ul>\n<li>\n<a href=\"https://www.redotengine.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nRedot engine website</a>\n</li>\n</ul>\n<p>\n<br>\n</p>\n<p>\nProjects and links we\'ve talked about:</p>\n<ul>\n<li>\n<a href=\"https://www.redotengine.org/blog/redot-why-we-forked\" rel=\"noopener noreferrer\" target=\"_blank\">\nRedot: why we forked</a>\n</li>\n<li>\n<a href=\"https://defold.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nDefold engine</a>\n</li>\n<li>\n<a href=\"https://github.com/Redot-Engine/redot-proposals/issues/57\" rel=\"noopener noreferrer\" target=\"_blank\">\nRedot proposal for homebrew console support</a>\n</li>\n<li>\n<a href=\"https://en.wikipedia.org/wiki/Sonic_Colors\" rel=\"noopener noreferrer\" target=\"_blank\">\nSonic colors ultimate</a>\n</li>\n<li>\n<a href=\"https://upbge.org\" rel=\"noopener noreferrer\" target=\"_blank\">\nUPBGE: </a>\nFork of Blender game engine</li>\n<li>\n<a href=\"https://www.gnu.org/licenses/quick-guide-gplv3.html\" rel=\"noopener noreferrer\" target=\"_blank\">\nGPL</a>\n vs <a href=\"https://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License\" rel=\"noopener noreferrer\" target=\"_blank\">\nLGPL</a>\n license</li>\n<li>\n<a href=\"https://en.wikipedia.org/wiki/Application_binary_interface\" rel=\"noopener noreferrer\" target=\"_blank\">\nABI</a>\n Application Binary Interface</li>\n<li>\n<a href=\"https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2542.pdf\" rel=\"noopener noreferrer\" target=\"_blank\">\nproposal</a>\n for <strong>\ndefer</strong>\n operator in C; example of usage in <a href=\"https://www.digitalocean.com/community/tutorials/understanding-defer-in-go#using-defer-to-clean-up-resources\" rel=\"noopener noreferrer\" target=\"_blank\">\nGO</a>\n</li>\n</ul>\n<p>\n<br>\n</p>\n<p>\n<br>\n</p>\n<p>\nRedot slogan:</p>\n<p>\n&gt; \"Your game, your rules\"</p>\n<p>\n<br>\n</p>\n\n\n',407,78,1,'CC-BY-NC-SA','fork,FOSS,GPL,Redot,videogames,engine',0,0,1),
(4353,'2025-04-09','diff and patch',1826,'Learn how to use diff and patch','\r\n<p>Make a diff:</p>\r\n\r\n<pre><code>$ diff --unified --new-file --recursive original/ my-revision/ > my.patch</code></pre>\r\n\r\n<p>Send my.patch to somebody so they can use it as input for the patch command:</p>\r\n\r\n<pre><code>$ patch --strip 0 < my.patch</code></pre>\r\n\r\n\r\n\r',78,42,0,'CC-BY-SA','bash, linux, diff, patch',0,0,1),
(4346,'2025-03-31','A brief review of the Pinetab 2',682,'I go into some thoughts I have of the Pinetab 2','\n    <div class=\"mw-parser-output\">\n      <p>The <b>PineTab2</b> is PINE64\'s successor to the original <a\n          href=\"https://wiki.pine64.org/wiki/PineTab\" title=\"PineTab\">PineTab</a>\n        Linux tablet computer, featuring a faster processor and better\n        availability. The tablet is available in two configurations, 4GB\n        of RAM and 64GB of internal storage or 8GB of RAM and 128GB of\n        internal storage. The tablet ships with a detachable keyboard\n        that doubles as a protective cover.\n      </p>\n      <p>The tablet is designed around the Rockchip RK3566 processor,\n        which features 4 energy-efficient Cortex-A55 64-bit ARM cores\n        and enjoys good mainline Linux support. A similarly packaged\n        RISC-V tablet is the <a\n          href=\"https://wiki.pine64.org/wiki/PineTab-V\"\n          title=\"PineTab-V\">PineTab-V</a>.\n      </p>\n      <p>Pre-orders started on the 13th of April 2023, with pricing\n        starting at USD 159 for the 4GB/64GB version and USD 209 for the\n        8GB/128GB version. The PineTab2 began shipping on June 2, 2023.<br>\n      </p>\n      <p>Taken from<a moz-do-not-send=\"true\"\n          href=\"https://wiki.pine64.org/wiki/PineTab2\">\n          https://wiki.pine64.org/wiki/PineTab2</a></p>\n    </div>',297,0,0,'CC-BY-SA','linux, tablet, pine64, pinetab',0,0,1),
(4376,'2025-05-12','Re-research',698,'Lee talks about trying to do academic research','\n    <h3>Research Tools</h3>\n    <ul>\n      <li>Harvard Referencing - <a\nhref=\"https://en.wikipedia.org/wiki/Parenthetical_referencing#Author%E2%80%93date_(Harvard_referencing)\"\n          rel=\"noopener noreferrer\" target=\"_blank\">https://en.wikipedia.org/wiki/Parenthetical_referencing#Author%E2%80%93date_(Harvard_referencing)</a></li>\n      <li>Google Notebook LM - <a href=\"https://notebooklm.google/\"\n          rel=\"noopener noreferrer\" target=\"_blank\">https://notebooklm.google/</a></li>\n      <li>Google Scholar - <a href=\"https://scholar.google.co.uk/\"\n          rel=\"noopener noreferrer\" target=\"_blank\">https://scholar.google.co.uk/</a></li>\n      <li>Connected Papers - <a href=\"https://www.connectedpapers.com/\"\n          rel=\"noopener noreferrer\" target=\"_blank\">https://www.connectedpapers.com/</a></li>\n      <li>Zotero - <a href=\"https://www.zotero.org/\" rel=\"noopener\n          noreferrer\" target=\"_blank\">https://www.zotero.org/</a></li>\n    </ul>\n    <h3>Databases</h3>\n    <ul>\n      <li>SQL Databases - <a\n          href=\"https://en.wikipedia.org/wiki/Relational_database\"\n          rel=\"noopener noreferrer\" target=\"_blank\">https://en.wikipedia.org/wiki/Relational_database</a></li>\n      <li>NoSQL Databases - <a\n          href=\"https://en.wikipedia.org/wiki/NoSQL\" rel=\"noopener\n          noreferrer\" target=\"_blank\">https://en.wikipedia.org/wiki/NoSQL</a></li>\n      <li>Graph Databases - <a\n          href=\"https://en.wikipedia.org/wiki/Graph_database\"\n          rel=\"noopener noreferrer\" target=\"_blank\">https://en.wikipedia.org/wiki/Graph_database</a></li>\n    </ul>\n    <h3>Misc</h3>\n    <ul>\n      <li>Borland Graphics Interface - <a\n          href=\"https://en.wikipedia.org/wiki/Borland_Graphics_Interface\"\n          rel=\"noopener noreferrer\" target=\"_blank\">https://en.wikipedia.org/wiki/Borland_Graphics_Interface</a></li>\n      <li>Hough Transform - <a\n          href=\"https://en.wikipedia.org/wiki/Hough_transform\"\n          rel=\"noopener noreferrer\" target=\"_blank\">https://en.wikipedia.org/wiki/Hough_transform</a></li>\n      <li>Joplin - <a href=\"https://joplinapp.org/\" rel=\"noopener\n          noreferrer\" target=\"_blank\">https://joplinapp.org/</a></li>\n    </ul>',403,0,1,'CC-BY-SA','research, university, machine learning, databases',0,0,1),
(4348,'2025-04-02','Resizing the root partition on a PC',599,'What happened when I hastily resized the root partition on my DEL Optiplex PC.','<h1>\nBackground</h1>\n<p>\nIt all happened when I noticed that a disk space monitor sitting in the top right hand side on my Gnome desktop was red.</p>\n<p>\nOn inspection I discovered that my root filesystem was 87% full.</p>\n<p>\nThe root partition was only 37GB in size which meant there was less than 4GB of space left.</p>\n<p>\nWhen I thought back I remembered that my PC was running a bit slower than usual and that that the lack of space in the root partition could have been to blame.</p>\n<p>\nI had some tasks that I wanted to complete and thought I’d better do something about the lack of space before it became an even bigger problem.</p>\n\n<h1>\nWhat happened</h1>\n<p>\nAs per usual all this happened when I was short of time and I was in a bit of a hurry.</p>\n\n<ul>\n<li>\n<strong>\nLesson one don’t do this sort of thing when your in a bit of a hurry.</strong>\n</li>\n</ul>\n<p>\nBecause I was in a hurry I didn’t spend time doing a complete backup.</p>\n\n<ul>\n<li>\n<strong>\nLesson two do a backup.</strong>\n</li>\n</ul>\n<p>\nMy plan was to get some space back by shrinking my home partition leaving some empty space to allow me to increase the size of my root partition.</p>\n<p>\nFor speed and ease I decided to use Gparted as I have used this many times in the past.</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/GParted\" rel=\"noopener noreferrer\" target=\"_blank\">\nWikipedia article about Gparted</a>\n</p>\n<p>\n<a href=\"https://gparted.org/\" rel=\"noopener noreferrer\" target=\"_blank\">\nOfficial Gparted webpage </a>\n</p>\n<p>\nIt’s not a good idea to try and resize and or move a mounted filesystem so a bootable live version of Gparted would be a good idea. The reason for this is that if you run Gparted from your normal Linux OS and the OS decides to write something to the disk while Gparted is also trying to write or move things on the disk then as you could imagine very bad things could and probably would happen.</p>\n<p>\nI knew I had an old bootable live CDROM with Gparted on it as I had used this many times in the past though not for a few years. As I was short on time I thought this would be the quickest way to get the job done.</p>\n<p>\nI booted up the live CD and setup the various operations such as shrinking the home partitions, moving it to the right to leave space for the root partition then finally increasing the size of the almost full root partition.</p>\n<p>\nWhat I didn’t notice at the time is that there was a tiny explanation mark on at least one of the partitions. I probably missed this because I was in a hurry.</p>\n\n<ul>\n<li>\n<strong>\nLesson three don’t rush things and be on the lookout for any error messages.</strong>\n</li>\n</ul>\n<p>\nWhen I clicked the green tick button to carry out the operations it briefly seemed to start and almost instantly stopped saying that there were errors and that the operation was unsuccessful and something about unsupported 64 bit filesystems. At this point I thought / hoped that nothing had actually happened. My guess was that the old live Gparted distribution I was using didn’t support Ext4 though I could be completely wrong on this.</p>\n\n<ul>\n<li>\n<strong>\nLesson four don’t use old versions of Gparted particularly when performing operations on modern filesystems.</strong>\n</li>\n</ul>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Ext4\" rel=\"noopener noreferrer\" target=\"_blank\">\nWikipedia article about the Ext4 filesystem</a>\n</p>\n<p>\nI removed the Gparted bootable CD and rebooted my PC. At this point I got lots of errors scrolling up the screen</p>\n<p>\nI then got a message I’ve never see before from memory I think it said Journaling</p>\n<p>\nIt then said something about pass 1 pass 2 pass 3 and continued all the way to 5.</p>\n<p>\nThen it talked about recovering data blocks.</p>\n<p>\nAt this point I got very nervous. I had all sorts of fears going through my head. I imagined I may have lost all the contents of my hard-rive. The whole experience was very scary.</p>\n<p>\nI let it complete all operations and eventually my Ubuntu operating system came up and seemed okay.</p>\n<p>\nI rebooted the PC and this time it booted correctly with no error messages and everting was okay.</p>\n<p>\nI have often seen things said about Journaling filesystems and how good they are though until this point I had never seen any real examples of them repairing a filesystem.</p>\n<p>\nBoth my root and home partitions were EXT 4 and thankfully EXT 4 supports Journaling which I believe on this occasion saved me from a great deal of pain.</p>\n\n<ul>\n<li>\n<strong>\nLesson five it might be a good idea to use Journaling filesystems.</strong>\n</li>\n</ul>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Journaling_file_system\" rel=\"noopener noreferrer\" target=\"_blank\">\nWikipdeai article about Journaling filesystems</a>\n</p>\n<p>\nThis still left me with the original problem in that I had little free space on my root filesystems.</p>\n<p>\nThis time I decided to take my time and break the task up into smaller chunks and not to do it in one go.</p>\n<p>\nFirst I downloaded the newest Live distribution version of Gparted</p>\n<p>\nI performed the checksum test to make sure the download was successful with no errors.</p>\n<p>\nThe next day I tried to write it to a CD-ROM something I haven’t done for a very long time.</p>\n<p>\nI initially couldn’t understand why I couldn’t click on the write button then I looked at my blank CD-ROM using the UBUNTU GNOME DISKS application. It reported that the disk was read only.</p>\n<p>\nI did a bit of goggling and came across a post saying that they had come across this and that they solved this by installing the CD-ROM writing application Brasero.</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/Brasero_(software\" rel=\"noopener noreferrer\" target=\"_blank\">\nWikipedia article about Brasero</a>\n)</p>\n<p>\n<a href=\"https://wiki.gnome.org/Apps/Brasero\" rel=\"noopener noreferrer\" target=\"_blank\">\nOfficial website for Brasero</a>\n</p>\n<p>\nInstalling Brasero solved the problem and allowed me to write the image file to CD-ROM. I was actually surprised that it wasn’t installed as I’ve used this application in the past. Just goes to show how long it’s been since I’ve written anything to CD-ROM!</p>\n<p>\nI booted the CD-ROM to check that Gparted worked and didn’t see any explanation marks on any of my partitions. I was short on time and didn’t want to rush things so decided to stop at this point.</p>\n<p>\nLater on I popped the live bootable Gparted CD-ROM running version 1.6.0.3 AMD 64 version into my PC and booted it up.</p>\n<p>\nEverything seemed okay and there were no errors showing.</p>\n<p>\nI took my home partition SDA6 and shrunk it down by about 20 GB and then shifted it 20 GB to the right to the end of the disk.</p>\n<p>\nThis left a 20 GB gap at the end of my root partition.</p>\n<p>\nI then increased the size of my root partition SDA5 by approximately 20 GB to fill the empty space.</p>\n<p>\nIt took Gparted about one hour and 40 minutes to complete all the operations.</p>\n<p>\nThe root partition is now reporting 61% full rather than 86% full.</p>\n<p>\nThe root partition is now approximately 53 GB in size with 31 GB used. 22 GB is now free which is a bit more comfortable.</p>\n<p>\n<a href=\"hpr4348_image_1.jpeg\">\n<img src=\"hpr4348_image_1_tn.jpeg\" alt=\"\">\n</a>\n</p>\n\n<p>\n<strong>\nPicture 1 </strong>\nIs a screenshot of GParted showing the new sizes of my root and home partitions.</p>\n<p>\nI removed the GParted CD from my CD-ROM drive and rebooted the PC to thankfully find all was well and no errors reported.</p>\n\n<h1>\nConclusion</h1>\n<p>\nMy PC is now running more smoothly.</p>\n<p>\nAll I can say after all this is that I consider myself very lucky this time and I hope I learned some valuable lessons along the way.</p>\n\n',201,0,1,'CC-BY-SA','linux,GParted',0,0,1),
(4395,'2025-06-06','Second Life',1612,'Lee talks to Elsbeth about a persistent online virtual world','\n    <p>\n      <i><b>Second Life</b></i> is a multiplayer <a\n        href=\"https://en.wikipedia.org/wiki/Virtual_world\"\n        title=\"Virtual world\">virtual world</a> that allows people to\n      create an <a\n        href=\"https://en.wikipedia.org/wiki/Avatar_(computing)\"\n        title=\"Avatar (computing)\">avatar</a> for themselves and then\n      interact with other users and user-created content within a\n      multi-user online environment. <br>\n      <font size=\"-1\">From Wikipedia, the free encyclopedia</font></p>\n    <h3 style=\"\">Links<br>\n    </h3>\n    <ul>\n      <li>Second Life Official Website - <a moz-do-not-send=\"true\"\n          href=\"https://secondlife.com/\">https://secondlife.com/</a></li>\n      <li>\n        Second Life on Wikipedia - <a moz-do-not-send=\"true\"\n          href=\"https://en.wikipedia.org/wiki/Second_Life\">https://en.wikipedia.org/wiki/Second_Life</a></li>\n      <li>\n        Linden Lab - <a moz-do-not-send=\"true\"\n          href=\"https://lindenlab.com/\">https://lindenlab.com/</a></li>\n    </ul>',403,0,0,'CC-BY-SA','3d gaming, simulation',0,0,1),
(4355,'2025-04-11','Record player audio - Streaming with Darkice',614,'Archer72 has a brief overview of streaming a vinyl record to his laptop','\n    <h1 id=\"intro\">Intro</h1>\n    <p>Hello, this is your host, Archer72, for Hacker Public Radio.</p>\n    <p>In this episode, this is my third show involving my record\n      player.</p>\n    <p>I am using a <a\nhref=\"https://zoomcorp.com/en/us/handheld-recorders/handheld-recorders/h1essential\"\n        title=\"Zoom H1essential Stereo Handy Recorder\">Zoom H1essential\n        Stereo\n        Handy Recorder</a> microphone, recording into Audacity for this\n      show.</p>\n    <h1 id=\"why-visit-the-record-shop\">Why visit the record shop?</h1>\n    <p>Picking up a record at the record shop expands my music\n      choices.<br>\n      I get a chance to talk to the owner on the weekend when searching\n      for\n      new music. He is an archaeologist and a teacher at a local college\n      during\n      the week, and is knowledgeable on all the music in the store.</p>\n    <p><a\nhref=\"https://archive.org/details/scanned-document-2025-03-23-18-24-21-cynthiana-democrat-page-1-june-20-2024/Scanned_Document_2025-03-23_16-54-25%20Newspaper%20-%20One%20year%20with%20the%20Institute.png%20%22Newspaper%20Article%20-%20One%20Year%20With%20the%20Institute%20-%20on%20the%20Internet%20Archive%22\">One\nYear\n        With the Institute - Archive.org</a></p>\n    <p>I wanted a way to listen to the records while on my laptop,\n      preferably with headphones, as to not disturb the household.</p>\n    <h1 id=\"how-is-this-accomplished\">How is this accomplished?</h1>\n    <p>This is done using a combination of Darkice to capture the\n      stream,\n      and Icecast to stream it to the local network.</p>\n    <h1 id=\"what-is-icecast\">What is Icecast?</h1>\n    <blockquote>\n      <p>Icecast is a streaming media (audio/video) server which\n        currently\n        supports Ogg (Vorbis and Theora), Opus, WebM and MP3 streams. It\n        can be\n        used to create an Internet radio station or a privately running\n        jukebox\n        and many things in between. It is very versatile in that new\n        formats can\n        be added relatively easily and supports open standards for\n        communication\n        and interaction.</p>\n      <p>Icecast is distributed under the GNU GPL, version 2.</p>\n      <p>The default config file is located in</p>\n      <p><code>/usr/share/doc/icecast2/icecast.xml.dist.gz</code></p>\n    </blockquote>\n    <p><a\nhref=\"https://archive.org/download/icecast.xml/icecast.xml.dist\">icecast.xml.dist</a></p>\n    <p>if the default config gets mangled or corrupted by myself.\n      Several\n      other types of configs are also in <code>/usr/share/doc/icecast2/</code>\n      that include a bare bones config</p>\n    <p>and the installed icecast2 config is located in</p>\n    <p><code>/etc/icecast2/icecast.xml</code></p>\n    <h1 id=\"configuration-needed-to-be-personalized\">Configuration\n      needed to\n      be personalized</h1>\n    <pre><code>  &lt;location&gt;Cynthiana,KY&lt;/location&gt;\n  &lt;admin&gt;ricemark20.nospam@nospam.gmail.com&lt;/admin&gt;</code></pre>\n    <h1 id=\"change-the-passwords-from-hackme-to-a-more-secure-password\">Change\nthe\n      passwords from <code>hackme</code> to a more secure password</h1>\n    <pre><code>  &lt;authentication&gt;\n    &lt;!-- Sources log in with username \'source\' --&gt;\n    &lt;source-password&gt;hackme&lt;/source-password&gt;\n    &lt;!-- Relays log in with username \'relay\' --&gt;\n    &lt;relay-password&gt;hackme&lt;/relay-password&gt;\n\n    &lt;!-- Admin logs in with the username given below --&gt;\n    &lt;admin-user&gt;admin&lt;/admin-user&gt;\n    &lt;admin-password&gt;hackme&lt;/admin-password&gt;\n  &lt;/authentication&gt;\n\n  &lt;!-- In my case, this is the IP address of the Raspberry Pi --&gt;\n  &lt;hostname&gt;192.168.x.x&lt;/hostname&gt;\n\n  mountPoint   = live # mount point of this stream on the IceCast2 server\n  name      = DarkIce Vinyl Stream # name of the stream\n  description   = This is my Vinyl stream # description of the stream\n  url       = http://localhost # URL related to the stream\n  genre      = Podcast  # genre of the stream\n  public     = yes    # advertise this stream?\n  localDumpFile  = recording.ogg # Record also to a file\n  metadata    = yes   # enable metadata</code></pre>\n    <h1 id=\"what-is-darkice\">What is Darkice?</h1>\n    <blockquote>\n      <p>DarkIce is a live audio streamer designed to record audio from\n        an\n        audio interface, such as a sound card, encode it, and send it to\n        a\n        streaming server. It supports various streaming servers\n        including\n        IceCast 1 and 2, ShoutCast, and Darwin Streaming Server. DarkIce\n        can\n        encode audio in formats like MP3 and Ogg Vorbis. To use DarkIce,\n        you\n        configure it with settings such as the audio input device,\n        sample rate,\n        and streaming server details, including the server’s address,\n        port, and\n        authentication information.</p>\n    </blockquote>\n    <p>This description of Darkice is a result of using the Brave Search\n      LLM, or <a\nhref=\"https://search.brave.com/search?q=what+is+darkice+streaming&amp;source=web&amp;summary=1&amp;conversation=faf9981a2e1d8db1cc13b7\"\n        title=\"Brave LLM description for Darkice\">Large Language Model</a>.</p>\n    <p>\n    </p>\n    <p>The default config file is located in</p>\n    <p><code>/usr/share/doc/darkice/examples/darkice.cfg.gz</code> and\n      is\n      copied to the /etc directory. From there, use the <code>gunzip</code>\n      command, for example <code>gunzip darkice.cfg.gz</code></p>\n    <p>I used the config file from a blog by Steffen Müller on <a\nhref=\"https://stmllr.net/blog/live-mp3-streaming-from-audio-in-with-darkice-and-icecast2-on-raspberry-pi\"\n        title=\"stmllr.net - Icecast on a Raspberry Pi\">stmllr.net</a></p>\n    <p>August 10, 2012 as a template for my configuration</p>\n    <p><a href=\"https://archive.org/download/icecast.xml/darkice.cfg\"\n        title=\"darkice.cfg - Archive.org\">darkice.cfg</a></p>\n    <p>This is the configuration I used in the end.</p>\n    <a href=\"https://archive.org/download/icecast.xml/darkice-pi.cfg\"\n      title=\"darkice-pi.cfg - Archive.org\">darkice-pi.cfg</a>\n    <p></p>\n    <h1 id=\"changes-to-the-template\">Changes to the template</h1>\n    <p>\n      The audio device is configured in the <code>[input]</code>\n      section,\n      defined by <code>arecord</code> dash lowercase ‘L’ to list the\n      capture\n      device, which in my case is the <a\n        href=\"https://www.amazon.com/gp/product/B00SAV0VP0\"\n        title=\"Behringer UMC202HD USB Audio Interface\">Behringer\n        UMC202HD USB\n        Audio Interface</a>\n    </p>\n    <pre><code>[general]\nduration    = 0    # duration of encoding, in seconds. 0 means forever\nThe section of the config file for audio input looks like this.\n[input]\ndevice = plughw:0,0 # This refers to card 0, device 0</code></pre>\n    <h1 id=\"start-darkice\">Start Darkice</h1>\n    <p><code>darkice &amp;</code></p>\n    <h1 id=\"update-metadata\">Update Metadata</h1>\n    <p>\n    </p>\n    <p>I was looking for a way to update the Currently Playing metadata,\n      but\n      my coding skills are not too good. For this, I used <a\nhref=\"https://claude.site/artifacts/7fd552c4-ec67-43f7-9dd1-be22a01da271\"\n        title=\"Claude.ai artifact\">Claude.ai</a> to generate code from\n      the\n      prompt: BASH script to send HTTP request to change metadata on\n      icecast\n      stream</p>\n    <a\n      href=\"https://archive.org/download/icecast.xml/update-metadata.sh\"\n      title=\"update-metadata.sh - Archive.org\">update-metadata.sh</a>\n    <p></p>\n    <h2 id=\"default-values\">Default values</h2>\n    <pre><code>  HOST=\"localhost\" # 192.168.x.x\n  PORT=\"8000\"    # Default Icecast port\n  MOUNT=\"/stream\"\n  USER=\"admin\"\n  PASSWORD=\"hackme\" # Icecast admin password\n  SONG=\"Unknown\"</code></pre>\n    <h2 id=\"usage\">Usage</h2>\n    <p><code>update-metadata.sh -s \"HPR Test\"</code></p>\n<p>\n<a href=\"hpr4355_image_1.png\">\n<img src=\"hpr4355_image_1_tn.png\">\n</a>\n</p>\n    <p>\n      If there are any suggestions for improvements, please leave a\n      comment or\n      upload a show. I look forward to hearing about if an how other\n      people\n      are using a personal streaming server. Also, I am looking forward\n      to the\n      show from the Reserve Queue,\n    </p>\n    <p>2024-10-13 Fred Black What LP records do I have</p>\n    <h1 id=\"other-references\">Other References</h1>\n    <p><a href=\"https://www.streambox.org/elc/software/darkice.htm\"\n        title=\"Radiostreaming for Beginners\">Radiostreaming for\n        Beginners</a></p>\n',318,0,0,'CC-BY-SA','Record player, vinyl album, record album, record store, streaming, darkice, icecast, arecord',0,0,1),
(4357,'2025-04-15','Short introduction by murph.',98,'Simply a very brief introduction by murph.','<p>This is just an introduction, here is the rough text of the audio:</p>\n<p>Hello HPR:</p>\n<p>I&#39;m murph,  I&#39;ve been an HPR listener for a long-time, into the TWAT days.  I&#39;ll try to keep it quick.</p>\n<p>I started in computers in the early 80&#39;s with a VIC-20.  After a few of the Commodore 8-bits, I settled into the Amiga line, which I daily drove up into this century, and stll have a few.</p>\n<p>In college in the 90&#39;s, I had a dilemma.  I wanted to do C programming homework from home, but the expensive Amiga compiler wasn&#39;t compatible with the Sun workstations at school.  Another student introduced me to Linux, and I promptly ordered a set of Slackware CDs and figured out how to install.  I was looking for the compilers to complete my studies, but have stayed for the freedom, and the communities, like this one.  I&#39;ve used countless distros over the years, and use a few for different needs.</p>\n<p>I am still a Linux user, and system administrator.    I&#39;ve given a few talks on things like gnu/screen, mastodon, tmux ay conventions like Penguicon, SCaLE, HOPE and some more regional conferences.</p>\n<p>I was inspired by Lyle and Thaj Sera&#39;s HPR birds of a feather talk, and thought that it would make a good presentation, and asked them to let me base a talk off of it, which they encouraged.  Part of that is how to submit a show, which resulted in me finally, after all this time, finally submitting one of my own, as opposed to the occassional show I&#39;ve crassly barged into.</p>\n<p>If you want to reach me, the best ways would be by <a href=\"https://hackerpublicradio.org/correspondents/0444.html\">email</a> or on the fediverse, <a href=\"https://hackers.town/@murph\">@murph@hackers.town</a></p>\n<p>Thanks for listening.</p>\n\n\n\n',444,0,0,'CC-BY-SA','introduction, murph, amiga, linux, goofball',0,0,1),
(4358,'2025-04-16','My linux journey',450,'How Jerm got into linux','\n    Today I would like to share my journey into the world of Linux and\n    Free Software and how it has shaped my computing experience over the\n    years.<br>\n    <br>\n    <h3>Links</h3>\n    <ul>\n      <li><a moz-do-not-send=\"true\"\n          href=\"https://en.wikipedia.org/wiki/The_Elder_Scrolls_IV:_Oblivion\">https://en.wikipedia.org/wiki/The_Elder_Scrolls_IV:_Oblivion</a></li>\n      <li><a moz-do-not-send=\"true\"\n          href=\"https://en.wikipedia.org/wiki/GNU_Emacs\">https://en.wikipedia.org/wiki/GNU_Emacs</a></li>\n      <li><a moz-do-not-send=\"true\"\n          href=\"https://www.youtube.com/c/SystemCrafters\">https://www.youtube.com/c/SystemCrafters</a></li>\n      <li><a moz-do-not-send=\"true\"\n          href=\"https://en.wikipedia.org/wiki/ThinkPad_X_series#X230\">https://en.wikipedia.org/wiki/ThinkPad_X_series#X230</a><br>\n      </li>\n    </ul>',445,0,1,'CC-BY-SA','Introduction',0,0,1),
(4359,'2025-04-17','Fosdem 2025 - My Personal Experience',1346,'For the first time, I went to FOSDEM 2025. In this podcast, I share my experiences.','\n    <h2>\n      Links to presentation information</h2>\n    <h3>\n      aerc</h3>\n    <p>\n      Git repository here: <a moz-do-not-send=\"true\"\n        href=\"https://git.sr.ht/~rjarry/aerc\">https://git.sr.ht/~rjarry/aerc</a></p>\n    <p>\n      Slide deck here: <a moz-do-not-send=\"true\"\n        href=\"https://aerc-mail.org/fosdem-2025\">https://aerc-mail.org/fosdem-2025</a></p>\n    <p>\n      JMAP information: <a moz-do-not-send=\"true\"\n        href=\"https://jmap.io/\">https://jmap.io/</a></p>\n    <h3>\n      Building a watt-meter esp-rs and a rocket backend</h3>\n    <p>\n      Wattmeter code: <a moz-do-not-send=\"true\"\n        href=\"https://github.com/ssaavedra/esp32-amp-sensor\">https://github.com/ssaavedra/esp32-amp-sensor</a></p>\n    <p>\n      Backend code: <a moz-do-not-send=\"true\"\n        href=\"https://github.com/ssaavedra/amp-sensor-backend\">https://github.com/ssaavedra/amp-sensor-backend</a><br>\n    </p>\n    <h3>\n      Celebrating Open Standards: How Podcasting 2.0 Shaped the Future\n      of Podcasting</h3>\n    <p>\n      Description and links on the FOSDEM website: <a\n        moz-do-not-send=\"true\"\nhref=\"https://fosdem.org/2025/schedule/event/fosdem-2025-5630-celebrating-open-standards-how-podcasting-2-0-shaped-the-future-of-podcasting/\">https://fosdem.org/2025/schedule/event/fosdem-2025-5630-celebrating-open-standards-how-podcasting-2-0-shaped-the-future-of-podcasting/</a></p>\n    <h3>\n      Immich</h3>\n    <p>\n      Home page: <a moz-do-not-send=\"true\" href=\"https://immich.app\">https://immich.app</a></p>\n    <h3>\n      All the world\'s a stage:Running a theatre show on open source\n      software</h3>\n    <p><a moz-do-not-send=\"true\"\nhref=\"https://fosdem.org/2025/schedule/event/fosdem-2025-4290-all-the-world-s-a-stage-running-a-theatre-show-on-open-source-software/\">https://fosdem.org/2025/schedule/event/fosdem-2025-4290-all-the-world-s-a-stage-running-a-theatre-show-on-open-source-software/</a></p>\n    <h3>\n      LoRaMesher</h3>\n    <p>\n      Repository: <a moz-do-not-send=\"true\"\n        href=\"https://github.com/LoRaMesher/LoRaMesher\">https://github.com/LoRaMesher/LoRaMesher</a></p>\n    <p>\n      <br>\n    </p>',438,0,0,'CC-BY-SA','FOSDEM 2025, Open Source',0,0,1),
(4361,'2025-04-21','On my own time',854,'I express my frustrations at people who push their choice of distros onto others','\n    <p>Swift110 talks about installing and running Ubuntu back in the\n      day, and the journey many of us have in picking a distro<br>\n    </p>\n    <p><a moz-do-not-send=\"true\"\nhref=\"https://swift110.wordpress.com/2011/08/25/i-will-not-be-upgrading-from-ubuntu-10-10-to-11-04/\">https://swift110.wordpress.com/2011/08/25/i-will-not-be-upgrading-from-ubuntu-10-10-to-11-04/</a></p>\n    <p>\n      <br>\n    </p>',297,0,0,'CC-BY-SA','linux,people, ubuntu, linux mint, solus, swift110',0,0,1),
(4362,'2025-04-22','Elsbeth\'s First Episode',1444,'In this show Elsbeth talks about what got her into Tech, how she found HPR, and her special interest','\n    <p>\n      Elsbeth talks about how she got started with technology, the\n      issues she has faced as a female geek and gamer, aspects of her\n      career with building computers and software quality assurance as\n      well as other hobbies such as reading and yoga.</p>\n    <h3>\n      Links:<br>\n    </h3>\n    <ul>\n      <li>\n        Light aircraft: <a moz-do-not-send=\"true\"\n          href=\"https://en.wikipedia.org/wiki/Cessna\">https://en.wikipedia.org/wiki/Cessna</a></li>\n      <li>World War II Coding: <a moz-do-not-send=\"true\"\n          href=\"https://en.wikipedia.org/wiki/Enigma_machine\">https://en.wikipedia.org/wiki/Enigma_machine</a></li>\n      <li>Gaming: <br>\n      </li>\n      <ul>\n        <li><a moz-do-not-send=\"true\"\n            href=\"https://en.wikipedia.org/wiki/Women_and_video_games\">https://en.wikipedia.org/wiki/Women_and_video_games&nbsp;</a></li>\n        <li><a moz-do-not-send=\"true\"\n            href=\"https://en.wikipedia.org/wiki/Retro_gaming\">https://en.wikipedia.org/wiki/Retro_gaming</a></li>\n        <li><a moz-do-not-send=\"true\"\n            href=\"https://en.wikipedia.org/wiki/EarthBound\">https://en.wikipedia.org/wiki/EarthBound</a></li>\n        <li><a moz-do-not-send=\"true\"\n            href=\"https://en.wikipedia.org/wiki/Fallout_(video_game)\">https://en.wikipedia.org/wiki/Fallout_(video_game)</a></li>\n        <li><a moz-do-not-send=\"true\"\n            href=\"https://en.wikipedia.org/wiki/Leisure_Suit_Larry\">https://en.wikipedia.org/wiki/Leisure_Suit_Larry</a></li>\n      </ul>\n      <li>Other Interests:</li>\n      <ul>\n        <li><a moz-do-not-send=\"true\"\n            href=\"https://en.wikipedia.org/wiki/Linguistics\">https://en.wikipedia.org/wiki/Linguistics</a></li>\n        <li><a moz-do-not-send=\"true\"\n            href=\"https://en.wikipedia.org/wiki/Yoga_as_therapy\">https://en.wikipedia.org/wiki/Yoga_as_therapy</a></li>\n      </ul>\n      <li>Meta-verse / multiplayer virtual worlds:</li>\n      <ul>\n        <li><a moz-do-not-send=\"true\"\n            href=\"https://en.wikipedia.org/wiki/Second_Life\">https://en.wikipedia.org/wiki/Second_Life</a></li>\n        <li><a moz-do-not-send=\"true\"\n            href=\"https://en.wikipedia.org/wiki/Final_Fantasy_XIV\">https://en.wikipedia.org/wiki/Final_Fantasy_XIV</a></li>\n      </ul>\n      <li>Mental Health Awareness:</li>\n      <ul>\n        <li><a moz-do-not-send=\"true\"\nhref=\"https://www.nami.org/get-involved/awareness-events/mental-health-awareness-month/\">https://www.nami.org/get-involved/awareness-events/mental-health-awareness-month/</a></li>\n        <li><a moz-do-not-send=\"true\"\nhref=\"https://mentalhealth-uk.org/get-involved/mental-health-awareness-days/\">https://mentalhealth-uk.org/get-involved/mental-health-awareness-days/</a></li>\n        <li><a moz-do-not-send=\"true\" href=\"https://twloha.com/\">https://twloha.com/</a></li>\n        <li><a moz-do-not-send=\"true\"\n            href=\"https://www.projectsemicolon.com/\">https://www.projectsemicolon.com/</a></li>\n      </ul>\n      <li>Role models:</li>\n      <ul>\n        <li><a moz-do-not-send=\"true\"\n            href=\"https://en.wikipedia.org/wiki/Felicia_Day\">https://en.wikipedia.org/wiki/Felicia_Day</a></li>\n        <li><a moz-do-not-send=\"true\"\n            href=\"https://en.wikipedia.org/wiki/Marie_Curie\">https://en.wikipedia.org/wiki/Marie_Curie\n\n\n\n\n          </a></li>\n      </ul>\n    </ul>',446,29,1,'CC-BY-SA','Tech, intro, mental health, atari, cessna, ',0,0,1);
INSERT INTO `eps` (`id`, `date`, `title`, `duration`, `summary`, `notes`, `hostid`, `series`, `explicit`, `license`, `tags`, `version`, `downloads`, `valid`) VALUES (4409,'2025-06-26','H D R Ridiculous Monitor',1329,'The presenter discusses configuring monitor settings for development, emphasizing HDR calibration an','    <p><br>\n      <br>\n      Never fan of duel monitors <br>\n    </p>\n    <p> Mother inlaw had a better monitor then me <br>\n      <a moz-do-not-send=\"true\" href=\"https://slickdeals.net\">https://slickdeals.net</a><br>\n      <br>\n      4:3, 16:9, 21:9 (Ratio calculator)<br>\n      <br>\n      Samsung 49\" Class Odyssey G95C DQHD 240Hz Curved Gaming Monitor\n      LS49CG95DENXZA<br>\n      US $646.49<br>\n      <br>\n      posture / arms out / screen position / mouse shoulder <br>\n      <br>\n      For car sim and gaming not for DEV<br>\n      <br>\n      Virtual Monitor for Display Port connections<br>\n      <a moz-do-not-send=\"true\"\n        href=\"https://github.com/roshkins/IddSampleDriver\">https://github.com/roshkins/IddSampleDriver</a><br>\n      <br>\n      HDR profiles for windows HDR calibration <br>\n      <a moz-do-not-send=\"true\"\n        href=\"https://github.com/dylanraga/win11hdr-srgb-to-gamma2.2-icm\">\n        https://github.com/dylanraga/win11hdr-srgb-to-gamma2.2-icm</a><br>\n      <br>\n      avsforum HDR10 test patterns set<br>\n      <a moz-do-not-send=\"true\"\n        href=\"https://www.avsforum.com/threads/hdr10-test-patterns-set.2943380/\">\nhttps://www.avsforum.com/threads/hdr10-test-patterns-set.2943380/</a><br>\n      <br>\n      Set and Forget HDR on Win11. Works for Black Myth Wukong. Sdr Hdr\n      Trick<br>\n      <a moz-do-not-send=\"true\"\n        href=\"https://www.youtube.com/watch?v=EPUKW3xLTNM\">\n        https://www.youtube.com/watch?v=EPUKW3xLTNM</a><br>\n      <br>\n      Talk about Gameplay / Lighting /HDR / Bright<br>\n      <br>\n      High contrast<br>\n      <a moz-do-not-send=\"true\"\nhref=\"https://github.com/freeload101/SCRIPTS/blob/6059ce43696e3c8101926da7959bebafbd0ab3b6/AutoHotkey/C0ffee%20Anti%20Idle%20v2.ahk#L130\">https://github.com/freeload101/SCRIPTS/blob/6059ce43696e3c8101926da7959bebafbd0ab3b6/AutoHotkey/C0ffee%20Anti%20Idle%20v2.ahk#L130</a><br>\n      <br>\n    </p>\n    <h2 id=\"summary\">SUMMARY</h2>\n    <p>The presenter discusses configuring monitor settings for\n      development, emphasizing HDR calibration and multi-monitor\n      productivity.</p>\n    <h2 id=\"ideas\">IDEAS</h2>\n    <ol>\n      <li>\n        <p>Calibrating a monitor\'s HDR settings can significantly\n          improve image quality by adjusting brightness and color.</p>\n      </li>\n      <li>\n        <p>Using HDR (High Dynamic Range) enhances the visual experience\n          by improving contrast and color accuracy.</p>\n      </li>\n      <li>\n        <p>Adjusting black levels and brightness helps in achieving\n          optimal visibility for both bright and dark scenes.</p>\n      </li>\n      <li>\n        <p>The calibration of HDR settings involves fine-tuning various\n          parameters like gamma, whites, and blacks.</p>\n      </li>\n      <li>\n        <p>Multi-monitor setups can enhance productivity by allowing\n          more efficient workspace organization.</p>\n      </li>\n      <li>\n        <p>Curved monitors may benefit development tasks by providing a\n          larger visual area without needing multiple displays.</p>\n      </li>\n      <li>\n        <p>Managing dual monitors requires spatial awareness to\n          efficiently switch focus between screens.</p>\n      </li>\n      <li>\n        <p>Windows\' snapping features help in organizing windows on\n          multi-monitor setups, enhancing workflow efficiency.</p>\n      </li>\n      <li>\n        <p>The presenter finds the transition from dual monitors to a\n          single large curved monitor advantageous for productivity.</p>\n      </li>\n      <li>\n        <p>A larger screen real estate reduces the need for physical\n          separation of workspaces, easing multitasking.</p>\n      </li>\n    </ol>\n    <h2 id=\"quotes\">QUOTES</h2>\n    <ol>\n      <li>\n        <p>\"I will be looking at calibrating my monitor\'s HDR settings.\"</p>\n      </li>\n      <li>\n        <p>\"Let me know if you have any questions or suggestions in\n          regards to these videos...\"</p>\n      </li>\n      <li>\n        <p>\"HDR is an incredible technology that allows us to see better\n          contrast and colors on our screens.\"</p>\n      </li>\n      <li>\n        <p>\"That way we can achieve a much more dynamic range of colors\n          while playing games and watching media on our TVs, computer\n          monitors, phones, etc.\"</p>\n      </li>\n      <li>\n        <p>\"It will be a bit different between calibrating a normal\n          monitor with SDR to a HDR-enabled display.\"</p>\n      </li>\n      <li>\n        <p>\"So if the blacks are too bright then you won\'t really see\n          the black levels as well.\"</p>\n      </li>\n      <li>\n        <p>\"The idea is that your brightest whites should be at 100% and\n          your darkest blacks should be around 0%.\"</p>\n      </li>\n      <li>\n        <p>\"With this being said, I\'ve never had a lot of luck with\n          using my Windows HDR settings before.\"</p>\n      </li>\n      <li>\n        <p>\"A lot of people say don\'t buy a curved monitor for\n          production stuff.\"</p>\n      </li>\n      <li>\n        <p>\"And now I have like basically three monitors.\"</p>\n      </li>\n    </ol>\n    <h3 id=\"recommendations\">RECOMMENDATIONS</h3>\n    <ol>\n      <li>\n        <p>Calibrate your monitor\'s HDR settings to enhance color and\n          contrast.</p>\n      </li>\n      <li>\n        <p>Adjust brightness, gamma, whites, and blacks for optimal\n          visibility in various lighting conditions.</p>\n      </li>\n      <li>\n        <p>Utilize Windows snapping features for efficient window\n          management on multi-monitor setups.</p>\n      </li>\n      <li>\n        <p>Consider transitioning to a single curved monitor for\n          improved productivity and workspace real estate.</p>\n      </li>\n      <li>\n        <p>Familiarize yourself with the tabbing system to ensure input\n          is directed to the correct window.</p>\n      </li>\n      <li>\n        <p>Experiment with panel sizes in your multi-monitor setup to\n          find a configuration that suits your workflow.</p>\n      </li>\n      <li>\n        <p>Ensure proper calibration of both SDR and HDR displays to\n          achieve the best visual experience.</p>\n      </li>\n      <li>\n        <p>Adjust black levels so they are not too bright, maintaining\n          clear visibility of darker scenes.</p>\n      </li>\n      <li>\n        <p>Set whites to 100% for better representation of bright areas\n          in images and videos.</p>\n      </li>\n      <li>\n        <p>Explore different monitor configurations to determine what\n          enhances your productivity the most.</p>\n      </li>\n    </ol>\n    <h3 id=\"one-sentence-summary\">ONE SENTENCE SUMMARY</h3>\n    <p>The presenter shares insights on optimizing HDR monitor settings\n      and maximizing productivity with multi-monitor setups for\n      development tasks.</p>',36,0,0,'CC-BY-SA','HDR calibration, Monitor settings, Multi-monitor setup, Productivity tips, Development tools, Color ',0,0,1),
(4363,'2025-04-23','My First Episode for HPR ',103,'Long time listener first time contributor ','\n<p>\nShort introduction episode, on my journey with Linux, Python, FOSS &amp; Ham Radio</p>\n\n\n',447,0,0,'CC-BY-SA','python, linux, ham radio, foss',0,0,1),
(4366,'2025-04-28','My audio setup and editing',687,'Recording with a dynamic microphone, monitoring in real time with headphone, and then editing it all','\n<p>\nHi all!</p>\n<p>\n<br>\n</p>\n<h1>\nTopics</h1>\n<h2>\nTopic 1: Hello, my name is Antoine.</h2>\n<p>\n<br>\n</p>\n<h2>\nTopic 2: I listened to you!</h2>\n<p>\n<br>\n</p>\n<h3>\na) Comment from Archer72:</h3>\n<p>\n\"[...] Audio setups are *definitely* of interest to hackers :)\"</p>\n<p>\n<strong>\nLink:</strong>\n <a href=\"https://hackerpublicradio.org/eps/hpr4325/index.html#comment_4278\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://hackerpublicradio.org/eps/hpr4325/index.html#comment_4278</a>\n</p>\n<p>\n<br>\n</p>\n<h3>\nb) From hpr4351 :: HPR Community News for March 2025 </h3>\n<p>\n(on the show)</p>\n<p>\nSomething like: \'I\'m not going to read your (long) comments, give a show on it\'.</p>\n<p>\n<br>\n</p>\n<p>\nSorry for making you read my comments, dear HPR Janitors! (Specially you, good-voice Sgoti)</p>\n<p>\n<strong>\nLink:</strong>\n <a href=\"https://hackerpublicradio.org/eps/hpr4351/index.html\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://hackerpublicradio.org/eps/hpr4351/index.html</a>\n</p>\n<p>\n<br>\n</p>\n<h2>\nTopic 3: My audio setup</h2>\n<p>\n<em>\n(Also you can see written on a commentary of mine on the link on Topic 2 a).</em>\n</p>\n<p>\n<br>\n</p>\n<h2>\nTopic 4: My audio editing (when I do)</h2>\n<p>\nWith examples.</p>\n<p>\n<br>\n</p>\n<p>\n* On the sibilance (\"sss\") example, the adjustment settings for the to-be-better fragment was an agressive cut of -7.4 dB on frequency 5.8 kHz (for advanced curiosity: Q 4.73, threshold -36.3 dB, ratio 3.8:1). Did it only with some testing, and knowing that sibilance normally is at about 6 kHz (when it happens, because here the dynamic microphone ended up not capturing too much of it).</p>\n<p>\n<br>\n</p>\n<h2>\nTopic 5: I\'m in a new working time</h2>\n<p>\nIf you can, do a word of prayer to God in favour of me.</p>\n<p>\n<br>\n</p>\n<p>\nIf anything I said \"that is better\" is, actually, worse, don\'t worry thinking you are perceiving it wrongly, it\'s just that I\'m not a professional and can have made it wrong. Or it\'s only a matter of taste, it\'s fine also; the ideas are there, and I welcome your participation too.</p>\n<p>\n<br>\n</p>\n<p>\nThank you!</p>\n<p>\n<br>\n</p>\n<p>\nCredit of music I decided to use on the example after normalizing and compressing a fragment is from: EvanBoyerman: \"<em>\nHopeful Piano/String Cinematic Ambience Drama Background Music</em>\n\", CC-BY 4.0, link: <a href=\"https://freesound.org/people/EvanBoyerman/sounds/798705/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://freesound.org/people/EvanBoyerman/sounds/798705/</a>\n</p>\n\n\n',441,0,0,'CC-BY-SA','audio editing, audio recording, making an HPR show, comments, audacity, compression',0,0,1),
(4367,'2025-04-29','My first episode; 001 Introduction',1390,'Living in the Linux commandline, bash and scripting','\n    <p>\n      Hi listener!</p>\n    <p>\n      My name is oxo. In this first episode for HPR I will introduce\n      myself a little and present my plans for my future episodes on\n      this channel.</p>\n    <p>\n      My goal is to let you as a listener follow along while I am\n      learning new interesting things about Linux. This will be mainly\n      about how I manage to survive the commandline while having fun\n      doing so! :)</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      My main codebase is in the codeberg repository, which you can find\n      here: <a moz-do-not-send=\"true\" href=\"https://codeberg.org/oxo\">oxo\n        - Codeberg.org</a></p>\n    <p>\n      Comments are always welcome! Please contact me via Mastodon: <a\n        moz-do-not-send=\"true\" href=\"https://qoto.org/@oxo\">@oxo@qoto.org</a>\n      or email oxo at protonmail.com</p>',448,42,1,'CC-BY-SA','arch, linux, commandline, bash, zsh, script, scripting, oxo',0,0,1),
(4373,'2025-05-07','Rsync with stdin as source',1213,'Use find pipe it\'s the results into rsync to make a copy.','\n<p>\nIn today\'s show, oxo show us how you can use the output of the find command with <tt>-print0</tt> option to rsync files to another location.\n</p>\n<pre>\n<code>\nfind . -type f -mmin -230 -print0 | rsync -aAXv --info=progress2,stats --progress --from0 --files-from - . dst\n</code>\n</pre>\n\n\n\n',448,42,1,'CC-BY-SA','bash,commandline,find,rsync,pipe,stdout,stdin,backup,copy',0,0,1),
(4368,'2025-04-30','Lessons learned moderating technical discussion panels',1211,'Tips for effectively moderating tech panels, from preparation to audience engagement.','\n    <p>\n      Lessons I\'ve learned moderating 5+ tech panels:</p>\n    <h3>\n      Preparation:</h3>\n    <ul>\n      <li>\n        Be familiar with the panelists and their subject matter.</li>\n      <li>\n        Avoid asking common questions.</li>\n      <li>\n        Set up the stage using a semicircle arrangement rather than\n        formal tables to promote dialogue between panelists.</li>\n      <li>\n        Ensure that each panelist has their own microphone to prevent\n        any accidental dominance in the discussion.</li>\n    </ul>\n    <h3>\n      Execution:</h3>\n    <ul>\n      <li>\n        Set a friendly and informal tone before the panel starts to help\n        nervous panelists relax.</li>\n      <li>\n        Involve the audience by encouraging questions and conducting\n        polls to increase engagement.</li>\n      <li>\n        Use a central microphone for audience questions to avoid delays\n        and maintain a smooth flow.</li>\n      <li>\n        Listen carefully to questions and rephrase them if necessary to\n        ensure clarity for the panelists.</li>\n      <li>\n        Know when to politely wrap up discussions to keep the\n        conversation moving.</li>\n    </ul>\n    <p>\n      <br>\n    </p>',149,0,0,'CC-BY-SA','panels, discussion, conferences, talks',0,0,1),
(4369,'2025-05-01','What LP records do I have?',3368,'Fred counts up all their Long playing Vinyl Records by organization number','\n    <p>\n      Eventually I will add all my Records on Discogs, but I also\n      thought about posting about them on mastodon on: </p>\n    <p>\n      <a href=\"https://mastodon.social/@Freds_Vinyl_records\"\n        rel=\"noopener noreferrer\" target=\"_blank\">\n        https://mastodon.social/@Freds_Vinyl_records</a>\n    </p>\n    <p>\n      I will post them when I have time, and also add Records that I\n      have acquired since.</p>',422,0,0,'CC-BY-SA','Music, Vinyl records',0,0,1),
(4412,'2025-07-01','Parkinson Tribly\'s Story: The Prisoner of Unit 731',1214,'First 3 minutes: trailer; followed by the full show — an original audiodrama','\n    <p>\n      The program starts with a brief trailer, presenting the story,\n      before starting the full audiodrama...</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      <em>\n        I hope you have a good show, thanks in advance for listening.</em>\n    </p>\n    <p>\n      <br>\n    </p>\n    <p>\n      <strong>\n        References</strong> (some):</p>\n    <p>\n      LIANG, Jiashuo. A History of Japan’s Unit 731 and Implications for\n      Modern Biological Warfare. Advances in Social Science, Education\n      and Humanities Research, v. 673. Atlantis Press, 2022.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      PBS. The Living Weapon: Shiro Ishii. Link: <a\n        moz-do-not-send=\"true\"\nhref=\"https://www.pbs.org/wgbh/americanexperience/features/weapon-biography-shiro-ishii\">https://www.pbs.org/wgbh/americanexperience/features/weapon-biography-shiro-ishii</a>.\n      Accessed: January 2025.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      RIDER, Dwight R. Japan’s Biological and Chemical Weapons Programs;\n      War Crimes and Atrocities – Who’s Who, What’s What, Where’s Where.\n      1928 – 1945. 3rd ed., 2018 [“In Process” version].</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      <br>\n    </p>\n    <p>\n      <strong>\n        Credits of audio used</strong> — in order of appearance (or\n      “listenance”): </p>\n    <p>\n      Kulakovka / Pixabay – Lost in Dreams (abstract chill downtempo\n      cinematic future beats).</p>\n    <p>\n      BBC Sound Effects – Aircraft: Beaufighters - Take off. (Bristol\n      Beaufighter, World War II); Army: Parade Ground Manoeuvres -\n      Platoon strolls single-file on parade ground; Weather: Snow -\n      Blizzard - heard inside house, with banging shutters; Footsteps In\n      Snow - Footsteps in snow, 3 men departing; Water - Filling metal\n      bucket from pond and pouring water on to concrete.</p>\n    <p>\n      florianreichelt / Freesound ¬– quick woosh.</p>\n    <p>\n      Thalamus_Lab / Freesound – Vertical Noise_Chinese Folk Duo Decay.</p>\n    <p>\n      neolein / Freesound – Mystic chinese guzheng.</p>\n    <p>\n      BBC Sound Effects again – World War 2 - Enemy artillery (World War\n      II actuality) - 1975 (500S); Aircraft: Beaufighters - Exterior,\n      steep climb. (Bristol Beaufighter, World War II).</p>\n    <p>\n      JamesFarrell_97 / Freesound – Game Theme.</p>\n    <p>\n      Luke100000 / Freesound – turning old pages.</p>\n    <p>\n      BBC Sound Effects – Sirens &amp; Gunfire - World War II Air Raid\n      Siren, German, all clear sounded.</p>\n    <p>\n      Gvidon / Pixabay – Spinning Head.</p>\n    <p>\n      <br>\n    </p>\n    <p>\n      <br>\n    </p>\n    <p>\n      * <strong>\n        <em>\n          If you\'d like the script to read</em>\n      </strong> (along with a few other things, like the Audacity\n      project), you can obtain the text at the production\'s page on\n      Archive.org: <a\nhref=\"https://archive.org/details/the-prisioner-of-unit-731-audiodrama-final\"\n        rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://archive.org/details/the-prisioner-of-unit-731-audiodrama-final</a>\n    </p>\n    <p>\n      <br>\n    </p>\n    <p>\n      * As a post-show extra: you can listen to <strong>\n        <em>\n          the producer\'s motivation</em>\n      </strong> for producing this story on ep. 4313.</p>\n    <p>\n      hpr4313 :: Why I made a 1-episode podcast about a war story: <a\n        href=\"https://hackerpublicradio.org/eps/hpr4313/index.html\"\n        rel=\"noopener noreferrer\" target=\"_blank\">\n        https://hackerpublicradio.org/eps/hpr4313/index.html</a>\n    </p>',441,0,1,'CC-BY-SA','audiodrama, Shiro Ishii, World War II, Unit 731, Kwangtung Army, podcast production',0,0,1),
(4377,'2025-05-13','Password store and the pass command',1779,'Try a UNIX-like password manager','\n    <h1 id=\"standard-unix-password-manager\">Standard UNIX password\n      manager</h1>\n    <p>Password management is one of those computing problems you\n      probably don\'t think about often, because modern computing usually\n      has an obvious default solution built-in.</p>\n    <p>A website prompts you for a password, and your browser auto-fills\n      it in for you.</p>\n    <p>Problem solved.</p>\n    <p>However, not all browsers make it very easy to get to your\n      passwords store, which makes it complex to migrate passwords to a\n      new system without also migrating the rest of your user profile,\n      or to share certain passwords between different users.</p>\n    <p>There are several good open source options that offer\n      alternatives to the obvious defaults, but as a user of Linux and\n      UNIX, I love a minimal and stable solution when one is available.</p>\n    <p>The <code>pass</code> command is a password manager that uses\n      GPG encryption to keep your passwords safe, and it features\n      several system integrations so you can use it seamlessly with your\n      web browser of choice.</p>\n    <h2 id=\"install-pass\">Install pass</h2>\n    <p>The <code>pass</code> command is provided by the <a\n        href=\"https://www.passwordstore.org\">PasswordStore</a> project.</p>\n    <p>You can install it from your software repository or ports\n      collection.</p>\n    <p>For example, on Fedora:</p>\n    <pre><code>\n$ sudo dnf <span class=\"hljs-keyword\">install</span> pass\n</code></pre>\n    <p>On Debian and similar:</p>\n    <pre><code>\n$ sudo apt <span class=\"hljs-keyword\">install</span> pass\n</code></pre>\n    <p>Because the word <code>pass</code> is common, the name of the\n      package may vary, depending on your distribution and operating\n      system.</p>\n    <p>For example, <code>pass</code> is available on Slackware and\n      FreeBSD as <code>password-store</code>.</p>\n    <p>The <code>pass</code> command is open source, so the source code\n      is available at <a href=\"https://git.zx2c4.com/password-store\">git.zx2c4.com/password-store</a>.</p>\n    <h2 id=\"create-a-gpg-key\">Create a GPG key</h2>\n    <p>First, you must have a GPG key to use for encryption.</p>\n    <p>You can use a key you already have, or create a new one just for\n      your password store.</p>\n    <p>To create a GPG key, use the <code>gpg</code> command along with\n      the <code>--gen-key</code> option (if you already have a key you\n      want to use for your password store, you can skip this step):</p>\n    <pre><code>\n$ gpg <span class=\"hljs-comment\">--gen-key</span>\n</code></pre>\n    <p>Answer the prompts to generate a key.</p>\n    <p>When prompted to provide values for <strong>Real name</strong>,\n      <strong>Email</strong>, and <strong>Comment</strong>, you must\n      provide a response for each one, even though GPG allows you to\n      leave them empty.</p>\n    <p>In my experience, <code>pass</code> fails to initialize when one\n      of those values is empty.</p>\n    <p>For example, here are my responses for purposes of this article:</p>\n    <pre><code>\nReal name: Tux\n\nEmai<span class=\"hljs-variable\">l:</span> tux@example.<span class=\"hljs-keyword\">com</span>\n\nCommen<span class=\"hljs-variable\">t:</span> My <span class=\"hljs-keyword\">first</span> key\n</code></pre>\n    <p>This information is combined, in a different order, to create a\n      unique GPG ID.</p>\n    <p>You can see your GPG key ID at any time:</p>\n    <pre><code>\n$ gpg --<span class=\"hljs-keyword\">list</span>-secret-<span class=\"hljs-built_in\">keys</span> | <span class=\"hljs-keyword\">grep</span> uid\n\nuid:     Tux (My <span class=\"hljs-keyword\">first</span> key) tux@example.<span class=\"hljs-keyword\">com</span>\n</code></pre>\n    <p>Other than that, it\'s safe to accept the default and recommended\n      options for each prompt.</p>\n    <p>In the end, you have a GPG key to serve as the master key for\n      your password store.</p>\n    <p>You must keep this key safe.</p>\n    <p>Back it up, keep a copy of your GPG keyring on a secure device.</p>\n    <p>Should you lose this key, you lose access to your password store.</p>\n    <h2 id=\"initialize-a-password-store\">Initialize a password store</h2>\n    <p>Next, you must initialize a password store on your system.</p>\n    <p>When you do, you create a hidden directory where your passwords\n      are stored, and you define which GPG key to use to encrypt\n      passwords.</p>\n    <p>To initialize a password store, use the <code>pass init</code>\n      command along with your unique GPG key ID.</p>\n    <p>Using my example key:</p>\n    <pre><code>\n<span class=\"hljs-variable\">$ </span>pass init <span class=\"hljs-string\">\"Tux (My first key) &lt;tux@example.com&gt;\"</span>\n</code></pre>\n    <p>You can define more than one GPG key to use with your password\n      store, should you intend to share passwords with another user or\n      on another system using a different GPG key.</p>\n    <h2 id=\"add-and-edit-passwords\">Add and edit passwords</h2>\n    <p>To add a password to your password store, use the <code>pass\n        insert</code> command followed by the URL (or any string) you\n      want <code>pass</code> to keep.</p>\n    <pre><code>\n$ pass insert example<span class=\"hljs-meta\">.org</span>\n</code></pre>\n    <p>Enter the password at the prompt, and then again to confirm.</p>\n    <p>Most websites require more than just a password, and so <code>pass</code>\n      can manage additional data, like username, email, and any other\n      field.</p>\n    <p>To add extra data to a password file, use <code>pass edit</code>\n      followed by the URL or string you saved the password as:</p>\n    <pre><code>\n$ pass edit example<span class=\"hljs-meta\">.org</span>\n</code></pre>\n    <p>The first line of a password file must be the password itself.</p>\n    <p>After that first line, however, you can add any additional data\n      you want, in the format of the field name followed by a colon and\n      then the value.</p>\n    <p>For example, to save <code>tux</code> as the value of the <code>username</code>\n      field on a website:</p>\n    <pre><code>\nmyFakePassword123\n\n<span class=\"hljs-symbol\">username:</span> tux\n</code></pre>\n    <p>Some websites use an email address instead of a username:</p>\n    <pre><code>\n<span class=\"hljs-selector-tag\">myFakePassword123</span>\n\n<span class=\"hljs-selector-tag\">email</span>: <span class=\"hljs-selector-tag\">tux</span>@<span class=\"hljs-keyword\">example</span>.<span class=\"hljs-keyword\">com</span>\n</code></pre>\n    <p>A password file can contain any data you want, so you can also\n      add important notes or one-time recovery codes, and anything else\n      you might find useful:</p>\n    <pre><code>\nmyFake;_;Password123\n<span class=\"hljs-symbol\">\nemail:</span> tux<span class=\"hljs-meta\">@example</span>.com\n\nrecovery <span class=\"hljs-string\">email:</span> tux<span class=\"hljs-meta\">@example</span>.org\n\nrecovery <span class=\"hljs-string\">code:</span> <span class=\"hljs-number\">03</span>a5<span class=\"hljs-number\">-1992</span>-ee12<span class=\"hljs-number\">-238</span>c\n<span class=\"hljs-symbol\">\nnote:</span> This is your personal account, use company SSO at work\n</code></pre>\n    <h2 id=\"list-passwords\">List passwords</h2>\n    <p>To see all passwords in your password store:</p>\n    <pre><code>\n$ pass list\n\nPassword Store\n\n├── <span class=\"hljs-built_in\">example</span>.com\n\n├── <span class=\"hljs-built_in\">example</span>.org\n</code></pre>\n    <p>You can also search your password store:</p>\n    <pre><code>\n$ pass find bandcamp\n\nSearch Terms: bandcamp\n\n└── www<span class=\"hljs-selector-class\">.bandcamp</span><span class=\"hljs-selector-class\">.com</span>\n</code></pre>\n    <h2 id=\"integrating-your-password-store\">Integrating your password\n      store</h2>\n    <p>Your password store is perfectly usable from a terminal, but\n      that\'s not the only way to use it.</p>\n    <p>Using extensions, you can use <code>pass</code> as your web\n      browser\'s password manager.</p>\n    <p>There are several different applications that provide a bridge\n      between <code>pass</code> and your browser.</p>\n    <p>Most are listed in the <strong>CompatibleClients</strong>\n      section of <a href=\"https://www.passwordstore.org\">passwordstore.org</a>.</p>\n    <p>I use <a href=\"https://codeberg.org/PassFF/passff-host\">PassFF</a>,\n      which provides a <a\n        href=\"https://addons.mozilla.org/en-US/firefox/addon/passff/\">Firefox\n        extension</a>.</p>\n    <p>For browsers based on Chromium, you can use <a\n        href=\"https://github.com/browserpass/browserpass-native\">Browserpass</a>\n      with the <a\n        href=\"https://github.com/browserpass/browserpass-extension\">Browserpass\n        extension</a>.</p>\n    <p>In both cases, the browser extension requires a \"host\n      application\", or a background bridge service to allow your browser\n      to access the encrypted data in your password store.</p>\n    <p>For PassFF, download the install script:</p>\n    <pre><code>\n$ wget https:<span class=\"hljs-regexp\">//</span>codeberg.org<span class=\"hljs-regexp\">/PassFF/</span>passff-host<span class=\"hljs-regexp\">/releases/</span>download<span class=\"hljs-regexp\">/latest/i</span>nstall_host_app.sh\n</code></pre>\n    <p>Review the script to confirm that it\'s just installing the host\n      application, and then run it:</p>\n    <pre><code>\n$ bash ./install_host_app.<span class=\"hljs-keyword\">sh</span> firefox\n\nPython <span class=\"hljs-number\">3</span> <span class=\"hljs-built_in\">executable</span> located at /usr/bin/<span class=\"hljs-keyword\">python3</span>\n\nPass <span class=\"hljs-built_in\">executable</span> located at /usr/bin/pass\n\nInstalling Firefox host config\n\nNative messaging host <span class=\"hljs-keyword\">for</span> Firefox <span class=\"hljs-built_in\">has</span> been installed <span class=\"hljs-keyword\">to</span> /home/tux/.mozilla/native-messaging-hosts.\n</code></pre>\n    <p>Install the browser extension, and then restart your browser.</p>\n    <p>When you navigate to a URL with an file in your password store, a\n      <code>pass</code> icon appears in the relevant fields.</p>\n    <p>Click the icon to complete the form.</p>\n    <p>Alternately, a <code>pass</code> icon appears in your browser\'s\n      extension tray, providing a menu for direct interaction with many\n      <code>pass</code> functions (such as copying data directly to your\n      system clipboard, or auto-filling only a specific field, and so\n      on.)</p>\n    <h2 id=\"password-management-like-unix\">Password management like UNIX</h2>\n    <p>The <code>pass</code> command is extensible, and there are some\n      great add-ons for it.</p>\n    <p>Here are some of my favourites:</p>\n    <ul>\n      <li>\n        <p><a href=\"https://github.com/tadfisher/pass-otp#readme\">pass-otp</a>:\n          Add one-time password (OTP) functionality.</p>\n      </li>\n      <li>\n        <p><a href=\"https://github.com/roddhjav/pass-update#readme\">pass-update</a>:\n          Add an easy workflow for updating passwords that you\n          frequently change.</p>\n      </li>\n      <li>\n        <p><a href=\"https://github.com/roddhjav/pass-import#readme\">pass-import</a>:\n          Import passwords from chrome, 1password, bitwarden,\n          apple-keychain, gnome-keyring, keepass, lastpass, and many\n          more (including <code>pass</code> itself, in the event you\n          want to migrate a password store).</p>\n      </li>\n    </ul>\n    <p>The <code>pass</code> command and the password store system is a\n      comfortably UNIX-like password management solution.</p>\n    <p>It stores your passwords as text files in a format that doesn\'t\n      even require you to have <code>pass</code> installed for access.</p>\n    <p>As long as you have your GPG key, you can access and use the data\n      in your password store.</p>\n    <p>You own your data not only in the sense that it\'s local, but you\n      have ownership of how you interact with it.</p>\n    <p>You can sync your password stores between different machines\n      using rsync or syncthing, or even backup the store to cloud\n      storage.</p>\n    <p>It\'s encrypted, and only you have the key.</p>',78,0,0,'CC-BY-SA','password, security',0,0,1),
(4378,'2025-05-14','SQL to get the next_free_slot',1706,'norrist talks about SQL to find the next available HPR slot','\n<h1>\nSQL for find next available Episode</h1>\n<h2>\nProblem</h2>\n<p>\n<a href=\"https://repo.anhonesthost.net/HPR/hpr_hub/issues/71\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://repo.anhonesthost.net/HPR/hpr_hub/issues/71</a>\n</p>\n<p>\n<br>\n</p>\n<blockquote>\nWe need to get the next_free_slot, and this needs to take into account the Eps and reservations table.</blockquote>\n<ul>\n<li>\nEps table contain recorded and uploaded shows.</li>\n<li>\nreservations table reserve episodes that have not been recorded.</li>\n<li>\nThere are existing queries to find the next free slot, but it does not include reservations.</li>\n<li>\n<strong>\nHPR SQL dump</strong>\n - <a href=\"https://hackerpublicradio.org/hpr.sql\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://hackerpublicradio.org/hpr.sql</a>\n</li>\n</ul>\n<h2>\n<br>\n</h2>\n<h2>\nTLDR</h2>\n<ul>\n<li>\nCreate a list of all episode IDs from eps and reservations tables using SQL <code>\nUNION</code>\n</li>\n<li>\nJoin the union list + 1 with the IDs from the eps and reservation tables</li>\n<li>\nWHERE clause to select rows in the union list +1 that are not in eps and not in reservations</li>\n<li>\nOrder by and Limit to select the smallest</li>\n</ul>\n<h2>\n<br>\n</h2>\n<h2>\nTest Data</h2>\n<ul>\n<li>\nTest data to make developing query easier.</li>\n<li>\nSimpler numbers so it is easier to spot patterns</li>\n<li>\nSame table and column names, and store them in a different database.</li>\n</ul>\n<h3>\nCreate the test data tables</h3>\n<pre class=\"ql-syntax\" spellcheck=\"false\">\n-- Create eps\r\nCREATE TABLE IF NOT EXISTS eps (\r\n  id INT,\r\n  PRIMARY KEY (id)\r\n);\r\n\r\n\r\nCREATE TABLE IF NOT EXISTS reservations (\r\n  ep_num INT,\r\n  PRIMARY KEY (ep_num)\r\n);\r\n</pre>\n<h3>\nInsert the test data</h3>\n<pre class=\"ql-syntax\" spellcheck=\"false\">\n-- Inserts\r\nINSERT INTO eps (id) VALUES (1001);\r\nINSERT INTO eps (id) VALUES (1002);\r\nINSERT INTO eps (id) VALUES (1003);\r\nINSERT INTO eps (id) VALUES (1004);\r\nINSERT INTO eps (id) VALUES (1011);\r\nINSERT INTO eps (id) VALUES (1021);\r\nINSERT INTO eps (id) VALUES (1031);\r\nINSERT INTO eps (id) VALUES (1041);\r\n\r\nINSERT INTO reservations (ep_num) VALUES (1004);\r\nINSERT INTO reservations (ep_num) VALUES (1005);\r\nINSERT INTO reservations (ep_num) VALUES (1006);\r\nINSERT INTO reservations (ep_num) VALUES (1010);\r\nINSERT INTO reservations (ep_num) VALUES (1016);\r\n</pre>\n<h3>\nPrint the test data tables</h3>\n<pre class=\"ql-syntax\" spellcheck=\"false\">\n-- Episodes\r\nSELECT e.id as e_id FROM eps e order by e.id;\r\n+------+\r\n| e_id |\r\n+------+\r\n| 1001 |\r\n| 1002 |\r\n| 1003 |\r\n| 1004 |\r\n| 1011 |\r\n| 1021 |\r\n| 1031 |\r\n| 1041 |\r\n+------+\r\nSELECT r.ep_num as r_id FROM reservations r;\r\n+------+\r\n| r_id |\r\n+------+\r\n| 1004 |\r\n| 1005 |\r\n| 1006 |\r\n| 1010 |\r\n| 1016 |\r\n+------+\r\n</pre>\n<h2>\n<br>\n</h2>\n<h2>\nJoin Types</h2>\n<ul>\n<li>\nUNION - combine results of 2 queries</li>\n<li>\nINNER - Only records that are in both tables</li>\n<li>\nLEFT - All the Results in the Left column and matching results in the Right</li>\n</ul>\n<h3>\nTest data Join Examples</h3>\n<ul>\n<li>\nIn the test data, the ID <code>\n1004</code>\n is in both the episodes and reservations table.</li>\n<li>\nThis will not occur in the real HPR database, but is useful to how different join types work</li>\n<li>\nExample queries with <code>\nINNER</code>\n, <code>\nRIGHT</code>\n, and <code>\nLEFT</code>\n joins.</li>\n</ul>\n<pre class=\"ql-syntax\" spellcheck=\"false\">\nMariaDB [next_av]&gt; SELECT e.id ,r.ep_num  FROM eps e INNER JOIN reservations r ON e.id = r.ep_num;\r\n+------+--------+\r\n| id   | ep_num |\r\n+------+--------+\r\n| 1004 |   1004 |\r\n+------+--------+\r\n1 row in set (0.001 sec)\r\nMariaDB [next_av]&gt; SELECT e.id ,r.ep_num  FROM eps e RIGHT JOIN reservations r ON e.id = r.ep_num;\r\n+------+--------+\r\n| id   | ep_num |\r\n+------+--------+\r\n| 1004 |   1004 |\r\n| NULL |   1005 |\r\n| NULL |   1006 |\r\n| NULL |   1010 |\r\n| NULL |   1016 |\r\n+------+--------+\r\n5 rows in set (0.001 sec)\r\nMariaDB [next_av]&gt; SELECT e.id ,r.ep_num  FROM eps e LEFT JOIN reservations r ON e.id = r.ep_num;\r\n+------+--------+\r\n| id   | ep_num |\r\n+------+--------+\r\n| 1001 |   NULL |\r\n| 1002 |   NULL |\r\n| 1003 |   NULL |\r\n| 1004 |   1004 |\r\n| 1011 |   NULL |\r\n| 1021 |   NULL |\r\n| 1031 |   NULL |\r\n| 1041 |   NULL |\r\n+------+--------+\r\n8 rows in set (0.001 sec)\r\n</pre>\n<h2>\n<br>\n</h2>\n<h2>\nCombine episode and reserved IDs</h2>\n<ul>\n<li>\nCreate a single list of IDs from both tables with <code>\nUNION</code>\n</li>\n<li>\nUNION combines the results of 2 queries</li>\n<li>\nSQL <code>\nas</code>\n keyword renames query results</li>\n</ul>\n<pre class=\"ql-syntax\" spellcheck=\"false\">\nSELECT id as all_ids\r\nFROM eps\r\nUNION\r\nselect ep_num FROM  reservations\r\n;\r\n+---------+\r\n| all_ids |\r\n+---------+\r\n|    1001 |\r\n|    1002 |\r\n|    1003 |\r\n|    1004 |\r\n|    1011 |\r\n|    1021 |\r\n|    1031 |\r\n|    1041 |\r\n|    1005 |\r\n|    1006 |\r\n|    1010 |\r\n|    1016 |\r\n+---------+\r\n</pre>\n<h2>\n<br>\n</h2>\n<h2>\nJoin tables with the Union</h2>\n<ul>\n<li>\nLeft Joins Keep everything in the Left column</li>\n<li>\nUse the Union of all IDs and join with Eps and reservations</li>\n<li>\nThe SQL will print a table of all the ids</li>\n<li>\nthe eps and reservation columns will have the id if they match or NULL if there is not a match.</li>\n</ul>\n<pre class=\"ql-syntax\" spellcheck=\"false\">\nselect all_ids.id as all_ids ,eps.id as eps_ids , r.ep_num as reserved_ids FROM\r\n    (SELECT id\r\n    FROM eps\r\n    UNION\r\n    select ep_num FROM  reservations)\r\n    as all_ids\r\nLEFT JOIN eps\r\nON all_ids.id = eps.id\r\nLEFT JOIN reservations r\r\nON all_ids.id = r.ep_num\r\n;\r\n+---------+---------+--------------+\r\n| all_ids | eps_ids | reserved_ids |\r\n+---------+---------+--------------+\r\n|    1001 |    1001 |         NULL |\r\n|    1002 |    1002 |         NULL |\r\n|    1003 |    1003 |         NULL |\r\n|    1004 |    1004 |         1004 |\r\n|    1011 |    1011 |         NULL |\r\n|    1021 |    1021 |         NULL |\r\n|    1031 |    1031 |         NULL |\r\n|    1041 |    1041 |         NULL |\r\n|    1005 |    NULL |         1005 |\r\n|    1006 |    NULL |         1006 |\r\n|    1010 |    NULL |         1010 |\r\n|    1016 |    NULL |         1016 |\r\n+---------+---------+--------------+\r\n</pre>\n<h2>\n<br>\n</h2>\n<h2>\nJoin with union plus 1 -- All Results</h2>\n<ul>\n<li>\nAdd an additional column of the union ids +1</li>\n<li>\nJoin the Union plus one list with the episodes and reservations</li>\n<li>\nAvailable episodes will have NULL in the eps and reservations column</li>\n</ul>\n<pre class=\"ql-syntax\" spellcheck=\"false\">\nselect all_ids.id as all_ids,all_ids.id+1 as all_ids_plus ,eps.id as eps_ids , r.ep_num as reserved_ids FROM\r\n    (SELECT id\r\n    FROM eps\r\n    UNION\r\n    select ep_num FROM  reservations)\r\n    as all_ids\r\nLEFT JOIN eps\r\nON all_ids.id+1 = eps.id\r\nLEFT JOIN reservations r\r\nON all_ids.id +1 = r.ep_num\r\nORDER BY all_ids\r\n;\r\n+---------+--------------+---------+--------------+\r\n| all_ids | all_ids_plus | eps_ids | reserved_ids |\r\n+---------+--------------+---------+--------------+\r\n|    1001 |         1002 |    1002 |         NULL |\r\n|    1002 |         1003 |    1003 |         NULL |\r\n|    1003 |         1004 |    1004 |         1004 |\r\n|    1004 |         1005 |    NULL |         1005 |\r\n|    1005 |         1006 |    NULL |         1006 |\r\n|    1006 |         1007 |    NULL |         NULL |\r\n|    1010 |         1011 |    1011 |         NULL |\r\n|    1011 |         1012 |    NULL |         NULL |\r\n|    1016 |         1017 |    NULL |         NULL |\r\n|    1021 |         1022 |    NULL |         NULL |\r\n|    1031 |         1032 |    NULL |         NULL |\r\n|    1041 |         1042 |    NULL |         NULL |\r\n+---------+--------------+---------+--------------+\r\n</pre>\n<h2>\n<br>\n</h2>\n<h2>\nAdd a WHERE clause</h2>\n<ul>\n<li>\nAdd a where clause to only print rows were eps and reservations are null</li>\n<li>\nThe smallest number in the +1 column will be the next available</li>\n</ul>\n<pre class=\"ql-syntax\" spellcheck=\"false\">\nselect all_ids.id as all_ids,all_ids.id+1 as all_ids_plus ,eps.id as eps_ids , r.ep_num as reserved_ids FROM\r\n    (SELECT id\r\n    FROM eps\r\n    UNION\r\n    select ep_num FROM  reservations)\r\n    as all_ids\r\nLEFT JOIN eps\r\nON all_ids.id+1 = eps.id\r\nLEFT JOIN reservations r\r\nON all_ids.id +1 = r.ep_num\r\nWHERE eps.id is Null and r.ep_num is NULL\r\nORDER BY all_ids\r\n;\r\n+---------+--------------+---------+--------------+\r\n| all_ids | all_ids_plus | eps_ids | reserved_ids |\r\n+---------+--------------+---------+--------------+\r\n|    1006 |         1007 |    NULL |         NULL |\r\n|    1011 |         1012 |    NULL |         NULL |\r\n|    1016 |         1017 |    NULL |         NULL |\r\n|    1021 |         1022 |    NULL |         NULL |\r\n|    1031 |         1032 |    NULL |         NULL |\r\n|    1041 |         1042 |    NULL |         NULL |\r\n+---------+--------------+---------+--------------+\r\n6 rows in set (0.002 sec)\r\n</pre>\n<h2>\n<br>\n</h2>\n<h2>\nAdd a limit and only select the id</h2>\n<ul>\n<li>\nSort and select the 1st row</li>\n</ul>\n<pre class=\"ql-syntax\" spellcheck=\"false\">\nselect all_ids.id+1 as available_id FROM\r\n    (SELECT id\r\n    FROM eps\r\n    UNION\r\n    select ep_num FROM  reservations)\r\n    as all_ids\r\nLEFT JOIN eps\r\nON all_ids.id+1 = eps.id\r\nLEFT JOIN reservations r\r\nON all_ids.id +1 = r.ep_num\r\nWHERE eps.id is Null and r.ep_num is NULL\r\nORDER BY available_id\r\nLIMIT 1\r\n;\r\n+--------------+\r\n| available_id |\r\n+--------------+\r\n|         1007 |\r\n+--------------+\r\n</pre>\n<p>\n<br>\n</p>\n\n\n',342,0,0,'CC-BY-SA','sql,hpr',0,0,1),
(4379,'2025-05-15','Mapping Municipalities\' Digital Dependencies',800,'Asking your help in mapping public services of governmental websites','\n<p>\nIn this episode, I discuss my ongoing project aimed at mapping the dependencies municipalities have on major third-party digital services, particularly focusing on <strong>\nMicrosoft</strong>\n and <strong>\nGoogle</strong>\n, given their dominance in the market.</p>\n<p>\nThe aim of this research isn\'t about debating the quality of these products—it\'s assumed that with thousands of employees, these services meet most quality expectations. Instead, the focus is on the critical implications of widespread dependency and potential risks related to service interruptions or supply chain attacks.</p>\n<p>\n<br>\n</p>\n<h2>\nWhy is this important?</h2>\n<ul>\n<li>\n<strong>\nSupply Chain Attacks</strong>\n: High dependency means higher vulnerability to targeted disruptions.</li>\n<li>\n<strong>\nBusiness Continuity</strong>\n: Significant risks were illustrated by incidents such as the <strong>\nCrowdStrike outage in July 2024</strong>\n, which forced Brussels Airport back to pencil-and-paper operations temporarily.</li>\n</ul>\n<h2>\nMy Research Approach:</h2>\n<p>\nPrimarily, I analyze the <strong>\nDNS MX records</strong>\n of municipalities:</p>\n<p>\n<br>\n</p>\n<ul>\n<li>\nMX records typically reveal if mail services are hosted on Microsoft (Office 365/Exchange Online) or Google (Workspace).</li>\n<li>\nA high probability that using these providers for email also means municipalities likely depend on the respective cloud office suite (e.g., Word/Excel/SharePoint or Docs/Sheets/Drive).</li>\n</ul>\n<h2>\nPreliminary Observations:</h2>\n<ul>\n<li>\n<strong>\nBelgium, Finland, Netherlands</strong>\n: Over <strong>\n70% of municipalities</strong>\n rely heavily on Microsoft mail services, a significant warning sign of dependency.</li>\n<li>\n<strong>\nGermany, Hungary</strong>\n: Fewer than <strong>\n5% of municipalities</strong>\n use Microsoft or Google explicitly via MX records, though caution is necessary. Here’s why:</li>\n</ul>\n<h3>\nChallenges Identified:</h3>\n<ul>\n<li>\n<strong>\nLocal MS Exchange Servers</strong>\n: Municipally hosted local installations aren\'t externally identifiable via MX records.</li>\n<li>\n<strong>\nMail Proxies</strong>\n: Some municipalities use mail proxy services (spam/phishing filters) obscuring the actual mail service used behind proxy domains.</li>\n</ul>\n<h3>\nTechniques Tested:</h3>\n<ul>\n<li>\n<strong>\nSPF Records</strong>\n: Often reveal the underlying email service, though they may contain outdated information, lowering reliability.</li>\n<li>\n<strong>\nTelnet EHLO Commands</strong>\n: Municipalities commonly obscure their SMTP headers, limiting usefulness.</li>\n<li>\n<strong>\nCloud Provider IP-Ranges</strong>\n: Investigating if mail servers run on Google, Amazon, or Azure infrastructure. Even if identified, this alone doesn\'t clarify if proprietary or replaceable services are used.</li>\n<li>\n<strong>\nTXT Records</strong>\n: Occasionally contain subscription keys or mail-related settings (e.g., MS subscriptions, Mailjet), but again, could be historical remnants.</li>\n</ul>\n<p>\nUnfortunately, none of these get to show me all of the third party services.</p>\n<h2>\nCommunity Call:</h2>\n<p>\nI\'m reaching out to listeners and the broader community for ideas or techniques on reliably fingerprinting the actual digital service providers behind mail servers. Specifically:</p>\n<p>\n<br>\n</p>\n<ul>\n<li>\nHow to accurately determine if servers run <strong>\nMicrosoft or Google services</strong>\n?</li>\n<li>\nAny ideas to detect deployments of <strong>\nNextcloud</strong>\n or similar open-source alternatives?</li>\n</ul>\n<h2>\nResources:</h2>\n<ul>\n<li>\n<strong>\nProject Webpage</strong>\n: <a href=\"https://jurgen.gaeremyn.be/map.html\" rel=\"noopener noreferrer\" target=\"_blank\">\njurgen.gaeremyn.be/map.html</a>\n</li>\n<li>\n<strong>\nSource Code</strong>\n: <a href=\"https://gitlab.com/jurgeng/mxcheck\" rel=\"noopener noreferrer\" target=\"_blank\">\ngitlab.com/jurgeng/mxcheck</a>\n</li>\n</ul>\n<p>\n<br>\n</p>\n<p>\nI\'m looking forward to all your suggestions in the comments!</p>\n\n\n',433,0,0,'CC-BY-SA','hacktivism, dependency, autonomy, society',0,0,1),
(4382,'2025-05-20','Understanding Antenna Gain and the Decibel scale',504,'The use of decibels can be a bit confusing, so in this episode paulj will enlighten you!','\n    <h1>Power Measurement and Antenna Gain</h1>\n    <p>HPR show by Paulj, May 2025.</p>\n    <h2>1.0 Power expressed in dB (also written as dBW)</h2>\n    <p>&nbsp;&nbsp;&nbsp;&nbsp;Power P<sub>dB</sub> = 10 . log<sub>10</sub><b>P</b></p>\n    <p><br>\n    </p>\n    <p>Where <b>P</b> is the power expressed in Watts.</p>\n    <h2>2.0 Power expressed in dBm</h2>\n    <p>&nbsp;&nbsp;&nbsp;&nbsp;Power <b>P<sub>dBm</sub></b> = 10 . log<sub>10</sub><b>P</b></p>\n    <p><br>\n    </p>\n    <p>Where <b>P</b> is the power expressed in milliwatts.</p>\n    <p><br>\n      <br>\n    </p>\n    <p>1W = 1000mW<br>\n    </p>\n    <p>&nbsp;&nbsp;&nbsp;&nbsp;Power <b>P<sub>dBm</sub></b> = 10 . log<sub>10</sub><b>1000mW</b><br>\n    </p>\n    <p>&nbsp;&nbsp;&nbsp;&nbsp;Power <b>P<sub>dBm</sub></b> = <b>30\n        dBm</b><br>\n    </p>\n    <p>&nbsp;&nbsp;&nbsp;&nbsp;so:</p>\n    <ul>\n      <b>0 dB = 30 dBm</b>\n    </ul>\n    <h2>3.0 Power expressed relative to an isotropic antenna - dBi</h2>\n    <p>An Isotropic antenna is an theoretical ideal antenna which\n      radiates equally in all directions. Imagine the antenna is at the\n      centre of a sphere, the signal strength at the surface of the\n      sphere is equal at all points. The gain of an isotropic antenna is\n      defined as 1, meaning: <br>\n    </p>\n    <p>&nbsp;&nbsp;&nbsp;&nbsp;</p>\n    <ul>\n      <b>10 dB = 10 dBi</b>\n    </ul>\n    <h2>4.0 Power expressed relative to a half wave dipole antenna - dBd</h2>\n    <p>The simplest practical antenna is a half wave dipole antenna,\n      where each of the two legs is a quarter wave length long. The feed\n      is at the centre, and the two legs are generally horizontal, and\n      aligned away from the feed point 180 degrees apart. The dipole\n      antenna exhibits gain perpendicular to the legs. The maximum gain\n      is 1.64 times the isotropic antenna - a gain of approximately\n      2.15dBi. The gain off the ends of the dipole is much lower - the\n      total power radiated by the antenna can not exceed the power being\n      input, so if there is more radiation (gain) in one direction,\n      there must be a corresponding reduction in a different direction.\n      So:</p>\n    <p>&nbsp;&nbsp;&nbsp;&nbsp;</p>\n    <ul>\n      <b>2.15 dBi = 0 dBd</b>\n    </ul>\n    <h2>5.0 Effective Radiated Power - ERP and EIRP</h2>\n    <p>ERP and EIRP are both used to indicate the power achieved using\n      an antenna.ERP compares the antenna performance with a dipole, and\n      EIRP compares the performance with an isotropic antenna. So, the\n      ERP is the power which would need to be fed into a dipole antenna,\n      to get the same effect in the direction your antenna is pointing.\n      EIRP is the power required for an isotropic antenna to gain\n      equivalence.</p>\n    <p><br>\n    </p>\n    <p>Practical example: My KX3 can transmit 15W. using the formula\n      above, this is 11.77 dB. If I attach a Yagi-Uda antenna with a\n      gain of 10dB, the <b>ERP</b> is 21.77 dB. Using the formula\n      above, from this number you can calculate that this is the\n      equivalent of 150.3142 Watts ERP. To understand the EIRP, we need\n      to add 2.15 to the 21.77 dB value, giving 23.92 dB <b>EIRP</b>.\n      Again, converting to actual power gives 246.515 Watts EIRP.</p>\n    <p><br>\n    </p>\n    <ul>\n      <li>If you are comparing antennas, make sure the same units are\n        being used in all cases (either EIRP or ERP) - some sellers will\n        use EIRP, because the values are higher!\n      </li>\n      <li>Check your licence conditions. Power output limits are often\n        at the antenna, and don\'t include antenna gain. You can set your\n        transmitter to output sufficient power to overcome any feed line\n        losses, and present up to the power permitted to the antenna. A\n        good antenna can then be used to get the transmitted power out\n        and across the world. For feedline loses, the value is given in\n        dB per 10 metres. For example, RG58 is 2dB / 10 metres (at\n        100MHz - choose the right feeder coax for your target\n        frequency!). If you have 15 metres, then you will have 3 dB\n        feeder loss, so half of your transmitter power will be lost in\n        the feed line. If you know this and your transmitter can output\n        more, then you can increase the transmitter power accordingly.\n        So for 25W at the transmitter, with 3dB loss in the feeder, you\n        can set the output to 50W.\n      </li>\n      <li>Some transmit power limits are set in ERP or EIRP, so you will\n        need to calculate back from the antenna to see the maximum\n        allowable transmitter power, to stay within the rules.\n      </li>\n    </ul>\n    <h2>6.0 Combining values</h2>\n    <p>One result of the use of dB is that you can add the values\n      together to understand the whole system gain. So, with our example\n      above, if we have 11.77 dB of output power, then -1 dB insertion\n      loss for a bandpass filter, -3 dB loss for the feeder, and 5dB\n      gain on the antenna, the overall ERP is 12.77 dB. You can convert\n      this back to Watts, to get 18.92W ERP.</p>\n    <h2>7.0 Links</h2>\n    <ul>\n      <li><a href=\"https://www.antenna-theory.com/antennas/dipole.php\">Dipole\n          information</a>\n      </li>\n      <li><a\n          href=\"https://www.antenna-theory.com/antennas/travelling/yagi.php\">Yagi-Uda\n          information</a>\n      </li>\n      <li><a href=\"https://en.wikipedia.org/wiki/Decibel\">Wikipedia\n          information on Decibels</a>\n      </li>\n      <li><a\n          href=\"https://en.wikipedia.org/wiki/Effective_radiated_power\">Wikipedia\n          information on ERP and EIRP</a>\n      </li>\n      <li><a href=\"https://en.wikipedia.org/wiki/Gain_(antenna)\">Wikipedia\n          information on Antenna Gain</a>\n      </li>\n      <li><a href=\"https://m0ukd.com/calculators/erp-eirp-calculator\">ERP\n          &amp; EIRP calculator from M0UKD</a>\n      </li>\n    </ul>\n',438,43,0,'CC-BY-SA','Antenna gain, power measurement, antenna comparison',0,0,1),
(4383,'2025-05-21','Changing font in Arch Linux (Wayland)',643,'How I changed my default font for my system.','\n    <h1 id=\"font-selection\">font selection</h1>\n    <p><a href=\"https://www.nerdfonts.com/font-downloads\">Nerd Fonts -\n        Iconic font aggregator, glyphs/icons collection, &amp; fonts\n        patcher</a></p>\n    <p><a href=\"https://www.programmingfonts.org/#jetbrainsmono\">Programming\n        Fonts - Test Drive</a></p>\n    <h1 id=\"font-installation\">font installation</h1>\n    <h2 id=\"install-font-package\">install font package</h2>\n    <p>% yay -Sy $font_package</p>\n    <h2 id=\"update-font-database\">update font database</h2>\n    <p>% fc-cache --force --verbose</p>\n    <h2 id=\"verify-available-fonts\">verify available fonts</h2>\n    <p>% fc-list | grep $font_name</p>\n    <h2 id=\"change-font-in-application-configs\">change font in\n      application configs</h2>\n    <p>e.g.:</p>\n    <p>alacritty</p>\n    <p>emacs</p>\n    <p>sway</p>\n    <p>tofi</p>',448,42,1,'CC-BY-SA','linux,arch,system,font,default,oxo',0,0,1),
(4388,'2025-05-28','BSD Overview',2576,'norrist describes how you can be a real hacker and run BSD','\n<h1>\nIntro</h1>\n<ul>\n<li>\nHow I know BSD</li>\n<li>\nVery minimal NetBSD usage</li>\n<li>\nI\'m am leaving out Dragonfly BSD</li>\n<li>\nPrevious episodes</li>\n<li class=\"ql-indent-1\">\nSeveral by <code>\nClaudio Miranda</code>\n and others - check the <code>\ntags</code>\n page.</li>\n<li class=\"ql-indent-1\">\nhpr3799 :: My home router history</li>\n<li class=\"ql-indent-1\">\nhpr3187 :: Ansible for Dynamic Host Configuration Protocol</li>\n<li class=\"ql-indent-1\">\nhpr3168 :: FreeBSD Jails and iocage</li>\n<li class=\"ql-indent-1\">\nhpr2181 :: Install OpenBSD from Linux using Grub</li>\n</ul>\n<h1>\n<br>\n</h1>\n<h1>\nHistory and Overview</h1>\n<blockquote>\n<a href=\"https://en.wikipedia.org/wiki/History_of_the_Berkeley_Software_Distribution\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/History_of_the_Berkeley_Software_Distribution</a>\nThe history of the Berkeley Software Distribution began in the 1970s when University of California, Berkeley received a copy of Unix. Professors and students at the university began adding software to the operating system and released it as BSD to select universities.</blockquote>\n<ul>\n<li>\n<a href=\"https://en.wikipedia.org/wiki/Comparison_of_BSD_operating_systems\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Comparison_of_BSD_operating_systems</a>\n</li>\n</ul>\n<h1>\n<br>\n</h1>\n<h1>\nComparisons to Linux</h1>\n<ul>\n<li>\nNot better or worse, just different.</li>\n<li>\nBSD is a direct descendant of the original UNIX</li>\n<li>\nNot distributions - Separate projects with separate code bases.</li>\n<li>\nPermissive vs Copyleft</li>\n<li>\nOne Project vs Kernel + User land</li>\n<li>\nMost Open Source software is available on BSD</li>\n<li>\nports and packages</li>\n<li>\nNetwork Devices and DISKS will have different naming conventions. <strong>\nBE CAREFUL</strong>\n</li>\n</ul>\n<h1>\n<br>\n</h1>\n<h1>\nDistinctives</h1>\n<h2>\nFreeBSD</h2>\n<ul>\n<li>\nProbably most widely used</li>\n<li>\nBase OS Commercial products</li>\n<li>\nTightly integrated with ZFS</li>\n<li>\nJails</li>\n<li>\nOS for Firewall appliances - PFSense and Opensense</li>\n</ul>\n<h2>\nOpenBSD</h2>\n<ul>\n<li>\nFocus on Code Correctness and Security</li>\n<li>\nOften First to develop new security methodologies - ASLR and Kernel relinking at boot</li>\n<li>\nHome of OpenSSH, ...</li>\n<li>\nBase includes Xorg and a minimal Window Manager</li>\n<li>\nThe Best docs - man pages</li>\n</ul>\n<h2>\nNetBSD</h2>\n<ul>\n<li>\nSupports the most platforms</li>\n<li>\n<code>\npkgsrc</code>\n can be used on any UNIX like.</li>\n</ul>\n<h1>\n<br>\n</h1>\n<h1>\nHow I use BSD</h1>\n<h2>\nHome Router</h2>\n<ul>\n<li>\nRecently migrated from FreeBSD to OpenBSD</li>\n<li>\nBetter support for the cheap 2.5G network adapters in Ali express firewalls</li>\n</ul>\n<h2>\nWorkstations</h2>\n<ul>\n<li>\nOpenBSD Dual boot laptop - missing some nice features - Vscode and BT audio</li>\n<li>\nOpenBSD for Banking</li>\n</ul>\n<h2>\nNAS</h2>\n<ul>\n<li>\nFreeBSD</li>\n<li class=\"ql-indent-1\">\nWas physical by migrated to Proxmox VM with direct attached drives</li>\n<li class=\"ql-indent-1\">\nJails for some apps</li>\n<li class=\"ql-indent-1\">\nZFS pools for storage</li>\n</ul>\n<h1>\n<br>\n</h1>\n<h1>\nMy recommendations</h1>\n<ul>\n<li>\nRouter</li>\n<li class=\"ql-indent-1\">\nOpenBSD - Any BSD will work</li>\n<li class=\"ql-indent-1\">\nOpensense - similar experience to managing DD-WRT</li>\n<li>\nThinkpads - OpenBSD</li>\n<li>\nOther laptops / PC - FreeBSD desktop focus derivative. ghost or midnight</li>\n<li>\nServers/NAS FreeBSD</li>\n<li class=\"ql-indent-1\">\nZFS</li>\n<li class=\"ql-indent-1\">\nJails</li>\n<li>\nBSD is worth trying</li>\n<li>\nDual booting is supported but can be tricky if unfamiliar.</li>\n</ul>\n<p>\nr</p>\n\n\n',342,0,0,'CC-BY-SA','bsd,freebsd,openbsd,netbsd',0,0,1),
(4384,'2025-05-22','Browser and dedicated apps on the mobile phone',132,'The traditional browser can reduce the number of dedicated apps on the smart mobile phone.','\n<p>\nRecently I had a discussion on Mastodon about mobile phone applications. </p>\n<p>\n<br>\n</p>\n<p>\nThe other person stated \"the web belongs to web browsers\". I agreed to it as a general good approach. </p>\n<p>\n<br>\n</p>\n<p>\nSome dedicated apps cannot be substituted with the browser, but some can. I do not have so many apps myself, but anyway that statement got me to review a couple of my apps how they works in the Firefox browser. </p>\n<p>\n<br>\n</p>\n<p>\nAnd actually, I could delete three apps and all functions I needed from them can be managed from Firefox. </p>\n<p>\n<br>\n</p>\n<p>\nBeside traditional bookmarks, those pages can be pinned to the Firefox start page or placed like a webapp on the mobile screen, so they look like an ordinary app. </p>\n<p>\n<br>\n</p>\n<p>\nUsing the Firefox browser makes it easier to control the privacy. In addition to what is built into Firefox, I currently also have the two extensions, Privacy Badger and uBlock Origin in my Firefox browser. </p>\n<p>\n<br>\n</p>\n<p>\nBeside privacy and in general to be somewhat more in control, this approach also reduces the number of apps to keep updated and reduce storage need. </p>\n<p>\n<br>\n</p>\n<p>\nSometimes apps are necessary of otherwise beneficial. But I think the traditional browser should not be forgotten also on the smart mobile phone.</p>\n\n\n',429,0,0,'CC-BY-SA','phone, apps, browser',0,0,1),
(4387,'2025-05-27','Did she say she flew light aircraft?!',1766,'Wherein Elsbeth expounds on her experience with light aircraft and how it relates to her geekiness','<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n\n    <meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\">\n    <meta charset=\"utf-8\">\n  </head>\n  <body>\n    In this nostalgic episode, I share my personal experiences riding\n    and flying light aircraft during the 1980s and 1990s. From the hum\n    of a Cessna engine to the grace of a Bonanza slicing through the\n    clouds, it’s a journey through the skies filled with stories of\n    daring, faith, and the wonder of flight.\n    <h3><strong>Topics Covered:</strong>\n    </h3>\n    <ul>\n      <li>\n        <strong>\n          Light Aircraft Overview</strong>\n      </li>\n      <li>\n        General insight into what qualifies as light aircraft and why\n        they’re beloved by private pilots and hobbyists.</li>\n      <li><a\nhref=\"https://markdowntohtml.com/&quot;https://en.wikipedia.org/wiki/Light_aircraft/&quot;\"\n          rel=\"noopener noreferrer\" target=\"_blank\">Light aircraft –\n          Wikipedia</a>\n      </li>\n      <li>\n        <strong>\n          Flying in a Cessna</strong>\n      </li>\n      <li>\n        Memories of flying in various models of the iconic\n        Cessna—dependable, nimble, and a staple of personal aviation.</li>\n      <li><a\nhref=\"https://markdowntohtml.com/&quot;https://en.wikipedia.org/wiki/Cessna/&quot;\"\n          rel=\"noopener noreferrer\" target=\"_blank\">Cessna – Wikipedia</a>\n      </li>\n      <li>\n        <strong>\n          Bonanza Adventures</strong>\n      </li>\n      <li>\n        Experiences flying in the Beechcraft Bonanza, known for its\n        sleek design and comfort—especially memorable during\n        cross-country flights.</li>\n      <li><a\nhref=\"https://markdowntohtml.com/&quot;https://en.wikipedia.org/wiki/Beechcraft_Bonanza/&quot;\"\n          rel=\"noopener noreferrer\" target=\"_blank\">Beechcraft Bonanza –\n          Wikipedia</a>\n      </li>\n      <li>\n        <strong>\n          Missionary Aviation Stories</strong>\n      </li>\n      <li>\n        Recollections of missionary pilots and their vital roles in\n        reaching remote areas, often relying on small aircraft to\n        deliver aid, supplies, and hope.</li>\n      <li><a\nhref=\"https://markdowntohtml.com/&quot;https://en.wikipedia.org/wiki/Missionary_aviation/&quot;\"\n          rel=\"noopener noreferrer\" target=\"_blank\">Missionary aviation\n          – Wikipedia</a>\n      </li>\n      <li>\n        <strong>\n          Aviation in the 1980s and 1990s</strong>\n      </li>\n      <li>\n        A look back at the culture of general aviation during this\n        era—before GPS was common, when flight was guided more by\n        instinct, skill, and charts on your lap.</li>\n      <li><a\nhref=\"https://markdowntohtml.com/&quot;https://en.wikipedia.org/wiki/General_aviation/&quot;\"\n          rel=\"noopener noreferrer\" target=\"_blank\">General aviation –\n          Wikipedia</a>\n      </li>\n    </ul>\n    <p><strong>Listen now</strong> on your favourite platform and take\n      to the skies with me!</p>\n  </body>\n</html>',446,0,0,'CC-BY-SA','aircraft, light aircraft, flight, travel, instruments, navigation, freebird',0,0,1),
(4389,'2025-05-29','Comments on hpr4373',437,'Rho`n gives comments on oxo\'s HPR episode 4373','\n<h1>\nSynopsis</h1>\n<p>\nOn this episode, Rho`n talks about his experience with the *nix find command </p>\n<p>\nand the -print0 option in relation to oxo\'s experience. He also gives a </p>\n<p>\n&nbsp;brief explanation of the xargs command and its use with find -print0.</p>\n<h2>\nReferences:</h2>\n<ul>\n<li>\n<a href=\"https://www.howtogeek.com/435164/how-to-use-the-xargs-command-on-linux/\" rel=\"noopener noreferrer\" target=\"_blank\">\nHow to Use the xargs Command on Linux</a>\n</li>\n<li>\n<a href=\"https://www.man7.org/linux/man-pages/man1/xargs.1.html\" rel=\"noopener noreferrer\" target=\"_blank\">\nxargs(1) — Linux manual page</a>\n</li>\n</ul>\n<p>\n<br>\n</p>\n\n\n',293,0,0,'CC-BY-SA','bash, commandline, find, rsync, pipe, xargs',0,0,1),
(4421,'2025-07-14','Content Moderation',2569,'Lee talks to Elsbeth about the role of content moderation on the internet','\n<p>\nFrom Wikipedia - <a href=\"https://en.wikipedia.org/wiki/Content_moderation\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Content_moderation</a>\n</p>\n<p>\n<br>\n</p>\n<p>\n\"On websites that allow users to create content, content moderation is the process of detecting contributions that are irrelevant, obscene, illegal, harmful, or insulting. The purpose of content moderation is to remove or apply a warning label to problematic content or allow users to block and filter content themselves.\"</p>\n<p>\n<br>\n</p>\n<p>\nFacebook Community Standards - <a href=\"https://transparency.meta.com/en-gb/policies/community-standards/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://transparency.meta.com/en-gb/policies/community-standards/</a>\n</p>\n<p>\n<br>\n</p>\n<p>\nTikTok Community Guidelines - <a href=\"https://www.tiktok.com/community-guidelines/en\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://www.tiktok.com/community-guidelines/en</a>\n</p>\n\n\n',403,0,1,'CC-BY-SA','social media, online safety',0,0,1),
(4441,'2025-08-11','Voice Over IP',662,'Lee talks about using a Voice Over IP Telephone','\n    <p>\n      <em>\n        Voice over Internet Protocol (VoIP), also known as IP telephony,\n        is a set of technologies used primarily for voice communication\n        sessions over Internet Protocol (IP) networks, such as the\n        Internet. VoIP enables voice calls to be transmitted as data\n        packets, facilitating various methods of voice communication.</em>\n    </p>\n    <ul>\n      <li>\n        Voice over IP - <a\n          href=\"https://en.wikipedia.org/wiki/Voice_over_IP\"\n          rel=\"noopener noreferrer\" target=\"_blank\">\n          https://en.wikipedia.org/wiki/Voice_over_IP</a>\n      </li>\n      <li>\n        Plain Old Telephone System (POTS) - <a\n          href=\"https://en.wikipedia.org/wiki/Plain_old_telephone_service\"\n          rel=\"noopener noreferrer\" target=\"_blank\">\n          https://en.wikipedia.org/wiki/Plain_old_telephone_service</a>\n      </li>\n      <li>\n        Retirement of circuit-switched public switched telephone network\n        (in the UK) - <a\nhref=\"https://en.wikipedia.org/wiki/Telephony_copper_plant_retirement_in_the_United_Kingdom\"\n          rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://en.wikipedia.org/wiki/Telephony_copper_plant_retirement_in_the_United_Kingdom</a>\n      </li>\n      <li>\n        Session Initiation Protocol (SIP) - <a\n          href=\"https://www.ietf.org/rfc/rfc3261.txt\" rel=\"noopener\n          noreferrer\" target=\"_blank\">\n          https://www.ietf.org/rfc/rfc3261.txt</a>\n      </li>\n      <li>\n        Network Address Translator (NAT) - <a\n          href=\"https://datatracker.ietf.org/doc/html/rfc2663\"\n          rel=\"noopener noreferrer\" target=\"_blank\">\n          https://datatracker.ietf.org/doc/html/rfc2663</a>\n      </li>\n      <li>\n        Session Traversal Utilities for NAT (STUN) - <a\n          href=\"https://datatracker.ietf.org/doc/html/rfc5389\"\n          rel=\"noopener noreferrer\" target=\"_blank\">\n          https://datatracker.ietf.org/doc/html/rfc5389</a>\n      </li>\n      <li>\n        Voice over IP Companies - <a\n          href=\"https://en.wikipedia.org/wiki/List_of_VoIP_companies\"\n          rel=\"noopener noreferrer\" target=\"_blank\">\n          https://en.wikipedia.org/wiki/List_of_VoIP_companies</a>\n      </li>\n      <li>\n        Voice over IP Hacking - <a\n          href=\"https://en.wikipedia.org/wiki/VoIP_vulnerabilities\"\n          rel=\"noopener noreferrer\" target=\"_blank\">\n          https://en.wikipedia.org/wiki/VoIP_vulnerabilities</a>\n      </li>\n    </ul>\n    <p>\n      <br>\n    </p>\n    <p>\n      <br>\n    </p>',403,0,0,'CC-BY-SA','voip, telephony',0,0,1),
(4393,'2025-06-04','Journal like you mean it.',1860,'Sgoti talks about journaling with bujo, the bullet journal method.','\n    <p>Prerequisites:</p>\n    <ul>\n      <li>\n        <p>Novice</p>\n        <ul>\n          <li>\n            <p>Ability to read and write. </p>\n          </li>\n          <li>\n            <p>Access to pen and paper.</p>\n          </li>\n        </ul>\n      </li>\n    </ul>\n    <ul>\n      <li>\n        <p>Advanced/Expert</p>\n        <ul>\n          <li>Disc bound notebook (if you\'re cool you\'ll have one)</li>\n        </ul>\n      </li>\n    </ul>\n    <p>Title: BIC Soft Feel Retractable Ballpoint Pen, Medium Point\n      (1.0mm) </p>\n    <p>Source(s): <a\nhref=\"https://us.bic.com/en_us/bic-soft-feel-retractable-ball-point-pen-medium-assorted-36-pack.html\">https://us.bic.com/en_us/bic-soft-feel-retractable-ball-point-pen-medium-assorted-36-pack.html</a>\n    </p>\n    <p>UPC: 070330196506 </p>\n    <p>Item Number: SCSM361-AST </p>\n    <p>Commercial name: Soft Feel Retractable Ball Pen </p>\n    <p> Retractable pen </p>\n    <p> no-slip grip </p>\n    <p> Tungsten carbide ball </p>\n    <p> 1.0mm medium point </p>\n    <p>Title: BIC Cristal Xtra Smooth Black Ballpoint Pens, Medium Point\n      (1.0mm). </p>\n    <p>Source(s): <a\nhref=\"https://us.bic.com/en_us/bic-cristal-xtra-smooth-black-ballpoint-pens-medium-point-1-0mm-500-count-pack.html\">https://us.bic.com/en_us/bic-cristal-xtra-smooth-black-ballpoint-pens-medium-point-1-0mm-500-count-pack.html</a>\n    </p>\n    <p>UPC: 070330377226 </p>\n    <p>Item Number: MS500E-BLK </p>\n    <p>Commercial name: Cristal Xtra Smooth Ball Pen </p>\n    <p> Cap with pocket clip </p>\n    <p> Tungsten carbide ball </p>\n    <p> 1.0mm medium point </p>\n    <p> Translucent barrel for visible ink supply </p>\n    <p>Title: BIC Round Stic Xtra Comfort Black Ballpoint Pens, Medium\n      Point (1.0mm). </p>\n    <p>Source(s): <a\nhref=\"https://us.bic.com/en_us/bic-round-stic-xtra-comfort-black-ballpoint-pens-144-count-pack.html\">https://us.bic.com/en_us/bic-round-stic-xtra-comfort-black-ballpoint-pens-144-count-pack.html</a>\n    </p>\n    <p>UPC: 070330377325 </p>\n    <p>Item Number: GSMG144E-BLK </p>\n    <p>Commercial name: Round Stic Grip Xtra Comfort Ball Pen </p>\n    <p> Cap with pocket clip </p>\n    <p> Tungsten carbide ball </p>\n    <p> 1.0mm medium point </p>\n    <p>Title: BIC Round Stic Xtra Life, Ball Point Pen </p>\n    <p>Source(s): <a\nhref=\"https://us.bic.com/en_us/bic-round-stic-xtra-life-ball-point-pen-blue-60-pack.html\">https://us.bic.com/en_us/bic-round-stic-xtra-life-ball-point-pen-blue-60-pack.html</a>\n    </p>\n    <p> Cap with pocket clip </p>\n    <p> Tungsten carbide ball </p>\n    <p> 1.0mm medium point </p>\n    <p> Translucent barrel for visible ink supply </p>\n    <p>UPC: 070330131613 </p>\n    <p>Item Number: GSM609DC </p>\n    <p>Commercial name: Round Stic Xtra Life Ball Pen </p>\n    <p>Title: Pilot G2 Pens 0.7 mm </p>\n    <p>Source(s): <a href=\"https://www.target.com/s/pilot+g2+pens\">https://www.target.com/s/pilot+g2+pens</a>\n    </p>\n    <p>Source(s): <a\n        href=\"https://pilotpen.us/Product?0=41&amp;1=47&amp;cid=260\">https://pilotpen.us/Product?0=41&amp;1=47&amp;cid=260</a>\n    </p>\n    <p> Gel ink Rolling Ball </p>\n    <p> 0.7mm fine point </p>\n    <p> Translucent barrel for visible ink supply </p>\n    <p> Rubber grip </p>\n    <p> Refillable </p>\n    <p> Convenient clip</p>\n    <p>Title: Uniball Signo 207 </p>\n    <p>Source(s): <a href=\"https://www.unibrands.co/collections/207\">https://www.unibrands.co/collections/207</a>\n    </p>\n    <p> Gel ink </p>\n    <p> 0.7mm fine point </p>\n    <p> Translucent barrel for visible ink supply </p>\n    <p> Rubber grip </p>\n    <p> Refillable </p>\n    <p> Convenient clip</p>\n    <p>Title: uniball™ Roller, Rollerball Pens. </p>\n    <p>Source(s): <a\nhref=\"https://www.unibrands.co/collections/rollerball-pens/products/roller-rollerball-pens\">https://www.unibrands.co/collections/rollerball-pens/products/roller-rollerball-pens</a>\n    </p>\n    <p> Gel ink </p>\n    <p> 0.7mm fine point </p>\n    <p> Refillable </p>\n    <p> Cap with clip</p>\n    <p>Title: 8.5 x 11 dot grid paper, 100 sheets/200 pages. </p>\n    <p>Source(s): <a\nhref=\"https://www.amazon.com/Unpunched-Refills-Discbound-Notebook-Planner/dp/B08Q3DR7LX?th=1\">https://www.amazon.com/Unpunched-Refills-Discbound-Notebook-Planner/dp/B08Q3DR7LX?th=1</a>\n    </p>\n    <p>Title: Bullet Journal® (aka Bujo) is a simple life operating\n      system. </p>\n    <p>Source(s): <a href=\"https://bulletjournal.com/\">https://bulletjournal.com/</a></p>\n    <p>Source(s): <a href=\"https://youtu.be/fm15cmYU0IM\">https://youtu.be/fm15cmYU0IM</a></p>\n    <p>Source(s): <a href=\"https://www.youtube.com/bulletjournal\">https://www.youtube.com/bulletjournal</a></p>\n    <p>Title: hpr2415 :: bullet journal to org mode </p>\n    <p>Source(s): <a\n        href=\"https://hackerpublicradio.org/eps/hpr2415/index.html\">https://hackerpublicradio.org/eps/hpr2415/index.html</a>\n    </p>\n    <p>Title: Staples 1-Subject Customizable Notebook </p>\n    <p>Source(s): <a\nhref=\"https://www.staples.com/staples-arc-customizable-notebook-6-3-4-x-8-3-4-60-sheets-narrow-ruled-black-20000/product_886234\">https://www.staples.com/staples-arc-customizable-notebook-6-3-4-x-8-3-4-60-sheets-narrow-ruled-black-20000/product_886234</a>\n    </p>\n    <p>Title: Pen+Gear Soft Pencil Grip, Assort Color 20 Counts </p>\n    <p>Source(s): <a\nhref=\"https://www.walmart.com/ip/Pen-Gear-Soft-Pencil-Grip-Assort-Color-20-Counts/1214761626\">https://www.walmart.com/ip/Pen-Gear-Soft-Pencil-Grip-Assort-Color-20-Counts/1214761626</a></p>\n    <p>Title: Pen+Gear Silicone Pencil Grip, Multicolor, 6 Count </p>\n    <p>Source(s): <a\nhref=\"https://www.walmart.com/ip/Pen-Gear-Adaptive-Pencil-Grips-Assorted-Colors-6-Count/1663341728\">https://www.walmart.com/ip/Pen-Gear-Adaptive-Pencil-Grips-Assorted-Colors-6-Count/1663341728</a></p>\n    <p>Title: F-301 Retractable Ballpoint </p>\n    <p>Source(s): <a\nhref=\"https://www.zebrapen.com/collections/featured-products/products/f-301-retractable-ballpoint?variant=40832122126542\">https://www.zebrapen.com/collections/featured-products/products/f-301-retractable-ballpoint?variant=40832122126542</a></p>',391,0,1,'CC-BY-SA','Journal, Bullet journal, bujo, discbound',0,0,1),
(4392,'2025-06-03','The Water is Wide, and the sheet music should be too',583,'some ramblings about using opensource for printiing sheet music and helping with my timing','\n    <p>lilypond opensource music notation software <a\n        href=\"https://lilypond.org/\">https://lilypond.org/</a></p>\n    <p>dombra <a href=\"https://en.wikipedia.org/wiki/Dombra\">https://en.wikipedia.org/wiki/Dombra</a></p>',243,0,0,'CC-BY-SA','music, bagpipes, dumbra, lilypond ',0,0,1),
(4394,'2025-06-05','Digital Steganography Intro',1956,'I take a very high level look at digital stegnography. What is it? How is it used in practice?','\n<p>\nApologies for not introducing myself in the audio! I struggled a bit to take on this topic at a high enough level to keep it to about a half hour, because every subtopic is nuanced and the details are always technical.</p>\n<p>\n<br>\n</p>\n<p>\nNot sure how well it worked out but my intention was to focus mainly on the 2 most common examples - hiding messages in text and in images. </p>\n<p>\n<br>\n</p>\n<p>\nTopics I mentioned:</p>\n<ul>\n<li>\nencryption vs steganography</li>\n<li>\nwho uses steganography and for what purpose?</li>\n<li>\nhiding text in text</li>\n<li>\nhiding data in images using LSB encoding</li>\n<li>\nhiding data in other places</li>\n<li>\nsteganalysis</li>\n</ul>\n<p>\n<br>\n</p>\n<p>\nIf you want to leave feedback, consider saying whether you think it would be more useful to talk about:</p>\n<ul>\n<li>\nusing the most popular tools and software</li>\n<li>\ndetailed look at specific steganographic techniques</li>\n<li>\ncase studies</li>\n</ul>\n<p>\nin the unlikely case that I do a followup episode (I doubt there\'s a strong interest in this topic)</p>\n<p>\n<br>\n</p>\n\n\n',379,0,0,'CC-BY-SA','steganography',0,0,1),
(4397,'2025-06-10','Transfer files from desktop to phone with qrcp',557,'Use a QR encoded URL to quickly share a file on your local network','    <h2>How does it work?</h2>\n    <p><code><img moz-do-not-send=\"true\" src=\"hpr4397_image_1.png\"\n          alt=\"A terminal showing the command, a url and a ascii\n          rendered qrcode\">\n    </p>\n    <p>\n      qrcp</code> binds a web server to the address of your Wi-Fi\n      network interface on a random port and creates a handler for it.\n      The default handler serves the content and exits the program when\n      the transfer is complete. When used to receive files, <code>qrcp</code>\n      serves an upload page and handles the transfer.</p>\n    <p>The tool prints a QR code that encodes the text:</p>\n    <pre><code>http://{address}:{port}/{random_path}</code></pre>\n    Most QR apps can detect URLs in decoded text and act accordingly\n    (i.e. open the decoded URL with the default browser), so when the QR\n    code is scanned the content will begin downloading by the mobile\n    browser.\n    <p></p>\n    <font size=\"-1\">(Notes taken from <a moz-do-not-send=\"true\"\n        href=\"https://github.com/claudiodangelis/qrcp\">https://github.com/claudiodangelis/qrcp</a>\n      released under the <a\n        href=\"https://github.com/claudiodangelis/qrcp#MIT-1-ov-file\"\n        class=\"Link--muted\"\n        data-analytics-event=\"{&quot;category&quot;:&quot;Repository\nOverview&quot;,&quot;action&quot;:&quot;click&quot;,&quot;label&quot;:&quot;location:sidebar;file:license&quot;}\">MIT\n\n        license</a>. </font><br>\n    <h3>Links</h3>\n    <ul>\n      <li><a moz-do-not-send=\"true\"\n          href=\"https://github.com/claudiodangelis/qrcp/releases\">https://github.com/claudiodangelis/qrcp/releases</a></li>\n      <li><a moz-do-not-send=\"true\"\n          href=\"https://qrcp.sh/tutorials/secure-transfers-with-mkcert\">https://qrcp.sh/tutorials/secure-transfers-with-mkcert</a><br>\n      </li>\n    </ul>',78,0,0,'CC-BY-SA','phone, qr, httpd, netstat',0,0,1),
(4399,'2025-06-12','gpg-gen-key',1195,'Oxo is back! And today with an interesting script that automates the generation of gpg keys.','\n    <p> More than ten years ago I studied the lecture recordings of\n      \"Introduction to Cryptography\" <a\n        href=\"https://yewtu.be/channel/UC1usFRN4LCMcfIV7UjHNuQg\">Introduction\n        to Cryptography by Christof Paar - Invidious</a> by Professor\n      Paar <a href=\"https://en.wikipedia.org/wiki/Christof_Paar\">Christof\n        Paar - Wikipedia</a>, which are absolutely amazing! These\n      lectures will learn you how the most popular encryption algorithms\n      work.</p>\n    <p>The scripts I mentioned in their current versions are:</p>\n    <ul>\n      <li><a\n          href=\"https://codeberg.org/oxo/tool/src/branch/main/gpg-gen-key\">tool/gpg-gen-key\n          at main - oxo/tool - Codeberg.org</a></li>\n      <li><a\n          href=\"https://codeberg.org/oxo/tool/src/branch/main/gpg-bu-key\">tool/gpg-bu-key\n          at main - oxo/tool - Codeberg.org</a></li>\n      <li><a\n          href=\"https://codeberg.org/oxo/tool/src/branch/main/gpg-pass-vfy\">tool/gpg-pass-vfy\n          at main - oxo/tool - Codeberg.org</a></li>\n    </ul>\n    <p>Search the history for commit 95408d31c2 (gpg-gen-key) and\n      dd608f9bd6 (gpg-bukey and gpg-pass-vfy) for the versions at the\n      moment of recording.</p>',448,0,1,'CC-BY-SA','oxo,bash,commandline,script,gnupg,gpg,cryptography,keys',0,0,1),
(4401,'2025-06-16','hajime',1413,'Let\'s see how oxo is using hajime in order to install Arch Linux on a old netbook.','    <h1 id=\"user-content-hajime\" dir=\"auto\">hajime</h1>\n    <p dir=\"auto\">This installation script installs an Arch Linux system\n      on an x64 architecture. The installation can be done with or\n      without a network connection (internet).</p>\n    <ul>\n      <li><a href=\"https://codeberg.org/oxo/hajime#readme\">oxo/hajime -\n          Codeberg.org</a></li>\n      <li><a\n          href=\"https://codeberg.org/oxo/hajime/src/branch/main/make-recov\">hajime/make-recov\n\n\n          at main - oxo/hajime - Codeberg.org</a></li>\n      <li><a\n          href=\"https://codeberg.org/oxo/isolatest/src/branch/main/isolatest\">isolatest/isolatest\n\n\n          at main - oxo/isolatest - Codeberg.org</a></li>\n    </ul>',448,42,1,'CC-BY-SA','oxo,bash,commandline,archlinux,installation,script,hajime',0,0,1),
(4408,'2025-06-25','Lynx - Old School Browsing',1353,'Kevie takes a look at the Lynx command line browser','\n<p>\n<a href=\"https://mastodon.me.uk/@kevie\" rel=\"noopener noreferrer\" target=\"_blank\">\nKevie</a>\n, from the <a href=\"https://tuxjam.otherside.network\" rel=\"noopener noreferrer\" target=\"_blank\">\nTuxJam</a>\n podcast, takes a look at the <a href=\"https://lynx.invisible-island.net\" rel=\"noopener noreferrer\" target=\"_blank\">\nLynx</a>\n command line browser and briefly discusses it\'s uses and if it still has a place in our modern times.</p>\n<p>\n<br>\n</p>\n<h3>\nSome Useful Hot-keys:</h3>\n<p>\n<strong>\ng</strong>\n to go to a specific website</p>\n<p>\n<strong>\nm</strong>\n goes to your start page (Main screen is what Lynx calls it)</p>\n<p>\n<strong>\no</strong>\n for options</p>\n<p>\n<strong>\nh</strong>\n for help</p>\n<p>\n<strong>\np</strong>\n for print </p>\n<p>\n<strong>\nq</strong>\n to quit program</p>\n<p>\n<strong>\n/</strong>\n search for text on a page</p>\n<p>\n<br>\n</p>\n<p>\nNavigation</p>\n<p>\n<strong>\n&lt;</strong>\n previous page</p>\n<p>\n<strong>\n&gt;</strong>\n forward page</p>\n<p>\n<strong>\nup</strong>\n and <strong>\ndown</strong>\n move between links on the page. Down or left will also cancel a command if pressed accidentally.</p>\n<p>\n<strong>\nPg Up</strong>\n and <strong>\nPg Down</strong>\n scroll up or down a whole screen at a time.</p>\n<p>\n<strong>\nctrl n</strong>\n (down or next) and <strong>\nctrl p</strong>\n (up or previous) will move the page up and down a couple of lines</p>\n<p>\n<strong>\na</strong>\n will add the current page to the bookmarks list</p>\n<p>\n<strong>\nv</strong>\n views the list of bookmarks</p>\n<p>\n<strong>\n,</strong>\n open the current page in another browser</p>\n<p>\n<strong>\nG</strong>\n displays the URL and allows editing</p>\n<p>\n<strong>\nctrl L</strong>\n reloads the current page</p>\n<p>\n<br>\n</p>\n<h3>\nSome Basic Config Edits:</h3>\n<p>\nEdit the file /etc/lynx/lynx.cfg (You will need to used sudo privileges to edit a system file)</p>\n<p>\n<br>\n</p>\n<p>\nTo change the starting page go to Line 111 and add</p>\n<p>\nSTARTFILE:YOUR_CHOSEN_PAGE_URL</p>\n<p>\nI used https://duckduckgo.com/lite</p>\n<p>\n<br>\n</p>\n<p>\nDon\'t forget to comment out the default one at line 105</p>\n<p>\nTo change the browser to open a link, go to Line 3141 and add</p>\n<p>\nEXTERNAL:http:BROSWER_LAUNCH_COMMAND %s:TRUE</p>\n<p>\nTo use the default browser on modern Linux systems add xdg-open</p>\n\n\n',296,0,0,'CC-BY-SA','CLI, command line, browsing, Linux',0,0,1),
(4398,'2025-06-11','Command line fun: downloading a podcast',647,'Kevie goes through how to download from an RSS feed from the command','\n    <p>\n      Kevie, from the <a href=\"https://tuxjam.otherside.network\"\n        rel=\"noopener noreferrer\" target=\"_blank\">\n        TuxJam</a> podcast, continues his look at audio tools on the\n      command line; this time focusing on acquiring audio files from an\n      RSS feed.</p>\n    <p>\n      Save the latest file from a feed:</p>\n    <p>\n    </p>\n    <pre><code>wget `curl RSS_FEED | grep -o \'https*://[^\"]*FILE_EXTENSION\' | head -1`<p></p></code></pre>\n    <p>\n      To get the latest episode of TuxJam </p>\n    <p>\n    </p>\n    <pre><code>wget `curl https://tuxjam.otherside.network/feed/podcast/ | grep -o \'https*://[^\"]*ogg\' | head -1`<p></p></code></pre>\n    <p>\n      However if you want the files from the whole feed:</p>\n    <p>\n    </p>\n    <pre><code>wget `curl RSS_FEED | grep -Eo \'https*://[^\"]*FILE_EXTENSION\' | sort -u | xargs`<p></p></code></pre>\n    <p>\n      To get every episode of TuxJam:</p>\n    <p>\n    </p>\n    <pre><code>wget `curl https://tuxjam.otherside.network/feed/podcast/ | grep -Eo \'https*://[^\"]*ogg\' | sort -u | xargs`<p></p></code></pre>\n    <p>\n      If you wish to specify the directory to save the file in then use\n      -P /directory after wget. To download the TuxJam feed and place\n      the files in a directory called Podcasts in your home folder you\n      would use:</p>\n    <p>\n    </p>\n    <pre><code>wget -P ~/Podcasts `curl https://tuxjam.otherside.network/feed/podcast/ | grep -Eo \'https*://[^\"]*ogg\' | sort -u | xargs`<p></p></code></pre>\n    <p>\n      For more in this mini-series of audio command line tools then see:</p>\n    <ul>\n      <li>\n        <a\n          href=\"https://www.hackerpublicradio.org/eps/hpr4249/index.html\"\n          rel=\"noopener noreferrer\" target=\"_blank\">\n          hpr4249 :: Audio Streams on the Command Line</a>\n      </li>\n      <li>\n        <a\n          href=\"https://www.hackerpublicradio.org/eps/hpr4287/index.html\"\n          rel=\"noopener noreferrer\" target=\"_blank\">\n          hpr4287 :: Schedule audio recordings on the command line</a>\n      </li>\n      <li>\n        <a\n          href=\"https://www.hackerpublicradio.org/eps/hpr4294/index.html\"\n          rel=\"noopener noreferrer\" target=\"_blank\">\n          hpr4294 :: Schedule audio recordings on the command line - A\n          bit of fine tuning</a>\n      </li>\n    </ul>',296,0,0,'CC-BY-SA','CLI, command line, RSS, Linux, download',0,0,1),
(4402,'2025-06-17','pinetab2',1199,'how I\'m using the pinetab2','\n    <h1 id=\"1-intro\">1 intro</h1>\n    <ul>\n      <li>hpr 4346 swift 110</li>\n    </ul>\n    <h1 id=\"2-prior-tablet\">2 prior tablet</h1>\n    <ul>\n      <li>samsung tablet</li>\n      <li>lineageos</li>\n    </ul>\n    <h1 id=\"3-my-use-case\">3 my use case</h1>\n    <ul>\n      <li>reading pdfs/epubs</li>\n      <li>using emacs</li>\n      <li>forth developement on microcontrollers, serial port access was\n        a challenge</li>\n    </ul>\n    <h1 id=\"4-my-not-use-case\">4 my not use case</h1>\n    <ul>\n      <li>video media consumption</li>\n      <li>audio consumption</li>\n    </ul>\n    <h1 id=\"5-pinetab2\">5 pinetab2</h1>\n    <ul>\n      <li>tablet based on rockchip rk3566</li>\n      <li>4 gig and 8 gig models</li>\n      <li>community driven developement</li>\n    </ul>\n    <h1 id=\"6-impressions\">6 impressions</h1>\n    <ul>\n      <li>kids love rolling releases and glitzy desktops</li>\n      <li>this device needs minimum everything to be useful</li>\n      <li>stuck with arch</li>\n      <li>stuck with systemd</li>\n      <li>wayland</li>\n    </ul>\n    <h1 id=\"7-so-what-i-did\">7 so what i did</h1>\n    <ul>\n      <li>installed x11, better, mature system, virtual keyboards</li>\n      <li>installed fluxbox, low system resources needed. lots of\n        customization done by config files, yes suckless is no good</li>\n      <li>installed emacs-lucid (gtk no good), why you ask?</li>\n      <li>emacs is a lisp environment focused on text editing</li>\n      <li>emacs has mechanisms that allow intereaction with X</li>\n      <li>easy to build functions to get basic tablet motions</li>\n      <li>epub modes, pdf modes, terminal emulator , org mode!</li>\n      <li>installed xvkbd for virtual keyboard in tablet mode</li>\n      <li>installed xpdf</li>\n      <li>all programs in factory arch install available</li>\n    </ul>\n    <h1 id=\"8-where-this-is-at\">8 where this is at</h1>\n    <ul>\n      <li>functions ok</li>\n      <li>laptop mode is nice, keyboard case works well</li>\n      <li>tablet rotation is done via emacs commands (need to bind these\n        to\n        keys) and has three modes</li>\n      <li>tablet mode with virtual keyboard</li>\n      <li>tablet mode with external key board (full screen portrait\n        mode)</li>\n      <li>tablet mode using keyboard case, book mode</li>\n      <li>still suffer random crashes, still tracking that down</li>\n      <li>good battery life (battery status available on emacs modeline)</li>\n      <li>wifi works, bluetooth doesn\'t</li>\n      <li>easy access to serial ports using standard tools</li>\n    </ul>\n    <h1 id=\"9-what-i-d-like-to-do\">9 what i\'d like to do</h1>\n    <ul>\n      <li>install slackware</li>\n      <li>spify up the desktop</li>\n      <li>add functionality things like brightness control</li>\n    </ul>',326,0,0,'CC-BY-SA','pine64, tablets, fluxbox',0,0,1),
(4403,'2025-06-18','How to get your very own copy of the HPR database',172,'Commands to download and query the HPR database','\n<h1>\nGet your own copy of the HPR database</h1>\n<p>\n<br>\n</p>\n<p>\nreset_hpr.sh</p>\n<p>\n<br>\n</p>\n<pre class=\"ql-syntax\" spellcheck=\"false\">\nsystemctl start mariadb\r\ncurl https://hackerpublicradio.org/hpr.sql &gt; hpr.sql \r\nmariadb -e \'drop database hpr_hpr\'\r\nmariadb -e \'create database hpr_hpr\'\r\nmariadb hpr_hpr &lt; hpr.sql \r\nmariadb -e \'select  count(*) from eps\' hpr_hpr\r\nmariadb -e \'select * from comments where comment_author_name=\"Torin Doyle\" \\G\' hpr_hpr\r\n</pre>\n<p>\n<br>\n</p>\n\n\n',342,0,0,'CC-BY-SA','sql,hpr',0,0,1),
(4404,'2025-06-19','Kevie nerd snipes Ken by grepping xml',1579,'Grepping XML kills kittens, so Ken uses xmlstarlet to download a podcast','\n<h1>\nMore Command line fun: downloading a podcast</h1>\n<p>\nIn the show <a href=\"https://hackerpublicradio.org/eps/hpr4398/index.html\" rel=\"noopener noreferrer\" target=\"_blank\">\nhpr4398 :: Command line fun: downloading a podcast</a>\n Kevie walked us through a command to download a podcast.</p>\n<p>\nHe used some techniques here that I hadn\'t used before, and it\'s always great to see how other people approach the problem.</p>\n<p>\nLet\'s have a look at the script and walk through what it does, then we\'ll have a look at some \"traps for young players\" as the <a href=\"https://www.eevblog.com/\" rel=\"noopener noreferrer\" target=\"_blank\">\nEEVBlog</a>\n is fond of saying.</p>\n<p>\n<br>\n</p>\n<h2>\nAnalysis of the Script</h2>\n<pre class=\"ql-syntax\" spellcheck=\"false\">\nwget `curl https://tuxjam.otherside.network/feed/podcast/ | grep -o \'https*://[^\"]*ogg\' | head -1`\r\n</pre>\n<p>\nIt chains four different commands together to \"Save the latest file from a feed\".</p>\n<p>\nLet\'s break it down so we can have checkpoints between each step.</p>\n<p>\nI often do this when writing a complex one liner - first do it as steps, and then combine it.</p>\n<p>\n<br>\n</p>\n<ol>\n<li>\nThe curl command gets <a href=\"https://tuxjam.otherside.network/feed/podcast/\" rel=\"noopener noreferrer\" target=\"_blank\">\nhttps://tuxjam.otherside.network/feed/podcast/</a>\n.</li>\n</ol>\n<p>\nTo do this ourselves we will call <code>\ncurl https://tuxjam.otherside.network/feed/podcast/ --output tuxjam.xml</code>\n, as the default file name is index.html.</p>\n<p>\nThis gives us a xml file, and we can confirm it\'s valid xml with the <code>\nxmllint</code>\n command.</p>\n<p>\n<br>\n</p>\n<pre class=\"ql-syntax\" spellcheck=\"false\">\n$ xmllint --format tuxjam.xml &gt;/dev/null\r\n$ echo $?\r\n0\r\n</pre>\n<p>\nHere the output of the command is ignored by redirecting it to <code>\n/dev/null</code>\n Then we check the error code the last command had. As it\'s <code>\n0</code>\n it completed sucessfully.</p>\n<p>\n<br>\n</p>\n<ol>\n<li>\nKevie then passes the output to the <code>\ngrep</code>\n search command with the option <code>\n-o</code>\n and then looks for any string starting with https followed by anything then followed by two forward slashes, then</li>\n</ol>\n<pre class=\"ql-syntax\" spellcheck=\"false\">\n-o, --only-matching\r\n      Print only the matched (non-empty) parts of a matching line, with each such part on a separate output line\r\n</pre>\n<p>\nWe can do the same with. I was not aware that grep defaulted to regex, as I tend to add the <code>\n--perl-regexp</code>\n to explicitly add it.</p>\n<p>\n<br>\n</p>\n<pre class=\"ql-syntax\" spellcheck=\"false\">\ngrep --only-matching \'https*://[^\"]*ogg\' tuxjam.xml\r\n\r\n    http matches the characters http literally (case sensitive)\r\n    s* matches the character s literally (case sensitive)\r\n        Quantifier: * Between zero and unlimited times, as many times as possible, giving back as needed [greedy]\r\n    : matches the character : literally\r\n    / matches the character / literally\r\n    / matches the character / literally\r\n    [^\"]* match a single character not present in the list below\r\n        Quantifier: * Between zero and unlimited times, as many times as possible, giving back as needed [greedy]\r\n        \" a single character in the list \" literally (case sensitive)\r\n    ogg matches the characters ogg literally (case sensitive)\r\n</pre>\n<p>\nWhen we run this ourselves we get the following</p>\n<p>\n<br>\n</p>\n<pre class=\"ql-syntax\" spellcheck=\"false\">\n$ grep --only-matching \'https*://[^\"]*ogg\' tuxjam.xml \r\nhttps://archive.org/download/tuxjam-121/tuxjam_121.ogg\r\nhttps://archive.org/download/tuxjam-120/TuxJam_120.ogg\r\nhttps://archive.org/download/tux-jam-119/TuxJam_119.ogg\r\nhttps://archive.org/download/tuxjam_118/tuxjam_118.ogg\r\nhttps://archive.org/download/tux-jam-117-uncut/TuxJam_117.ogg\r\nhttps://tuxjam.otherside.network/tuxjam-115-ogg\r\nhttps://archive.org/download/tuxjam_116/tuxjam_116.ogg\r\nhttps://tuxjam.otherside.network/tuxjam-115-ogg\r\nhttps://tuxjam.otherside.network/tuxjam-115-ogg\r\nhttps://tuxjam.otherside.network/tuxjam-115-ogg\r\nhttps://ogg\r\nhttp://tuxjam.otherside.network/wp-content/uploads/sites/5/2024/10/tuxjam_115_OggCamp2024.ogg\r\nhttps://ogg\r\nhttps://archive.org/download/tuxjam_114/tuxjam_114.ogg\r\nhttps://archive.org/download/tuxjam_113/tuxjam_113.ogg\r\nhttps://archive.org/download/tuxjam_112/tuxjam_112.ogg\r\n</pre>\n<ol>\n<li>\nThe last command returns the first line, so therefore <code>\nhttps://archive.org/download/tuxjam-121/tuxjam_121.ogg</code>\n</li>\n<li>\nFinally that line is used as the input to the <code>\nwget</code>\n command.</li>\n</ol>\n<h2>\nProblems with the approach</h2>\n<p>\nRelying on grep with structured data like xml or json can lead to problems.</p>\n<p>\nWhen we looked at the output of the command in step 2, some of the results gave <code>\nhttps://ogg</code>\n.</p>\n<p>\nWhen run the same command without the <code>\n--only-matching</code>\n argument we see what was matched.</p>\n<p>\n<br>\n</p>\n<pre class=\"ql-syntax\" spellcheck=\"false\">\n$ grep \'https*://[^\"]*ogg\' tuxjam.xml \r\n                &lt;enclosure url=\"https://archive.org/download/tuxjam-121/tuxjam_121.ogg\" length=\"66760045\" type=\"audio/ogg\" /&gt;\r\n                &lt;enclosure url=\"https://archive.org/download/tuxjam-120/TuxJam_120.ogg\" length=\"71038808\" type=\"audio/ogg\" /&gt;\r\n                &lt;enclosure url=\"https://archive.org/download/tux-jam-119/TuxJam_119.ogg\" length=\"77851752\" type=\"audio/ogg\" /&gt;\r\n                &lt;enclosure url=\"https://archive.org/download/tuxjam_118/tuxjam_118.ogg\" length=\"87356918\" type=\"audio/ogg\" /&gt;\r\n                &lt;enclosure url=\"https://archive.org/download/tux-jam-117-uncut/TuxJam_117.ogg\" length=\"69092470\" type=\"audio/ogg\" /&gt;\r\n&lt;p&gt;This episode may not be live as in &lt;a href=\"https://tuxjam.otherside.network/tuxjam-115-oggcamp-2024/\"&gt;TuxJam 115 from Oggcamp&lt;/a&gt; but your friendly foursome of Al, Dave (thelovebug), Kevie and Andrew (mcnalu) are very much alive to treats of Free and Open Source Software and Creative Commons tunes.&lt;/p&gt;\r\n                &lt;enclosure url=\"https://archive.org/download/tuxjam_116/tuxjam_116.ogg\" length=\"80274046\" type=\"audio/ogg\" /&gt;\r\n                &lt;link&gt;https://tuxjam.otherside.network/tuxjam-115-oggcamp-2024/&lt;/link&gt;\r\n                &lt;comments&gt;https://tuxjam.otherside.network/tuxjam-115-oggcamp-2024/#respond&lt;/comments&gt;\r\n                &lt;wfw:commentRss&gt;https://tuxjam.otherside.network/tuxjam-115-oggcamp-2024/feed/&lt;/wfw:commentRss&gt;\r\n&lt;p&gt;With the group meeting up together for the first time in person, it was decided that a live recording would be an appropriate venture. With the quartet squashed around a table and a group of adoring fans crowded into a room at the &lt;a href=\"https://www.pendulumhotel.co.uk/\"&gt;Pendulum Hotel&lt;/a&gt; in Manchester, the discussion turns to TuxJam reviews that become regularly used applications, what we enjoyed about &lt;a href=\"https://oggcamp.org/\"&gt;OggCamp 2024&lt;/a&gt; and for the third section the gang put their reputation on the line and allow open questions from the sea of dedicated fans.&lt;/p&gt;\r\n                &lt;enclosure url=\"http://tuxjam.otherside.network/wp-content/uploads/sites/5/2024/10/tuxjam_115_OggCamp2024.ogg\" length=\"62603883\" type=\"audio/ogg\" /&gt;\r\n&lt;li&gt;&lt;a href=\"https://oggcamp.org/\"&gt;OggCamp 2024&lt;/a&gt; on Saturday 12 and Sunday 13 October 2024, Manchester UK.&lt;/li&gt;\r\n                &lt;enclosure url=\"https://archive.org/download/tuxjam_114/tuxjam_114.ogg\" length=\"75051959\" type=\"audio/ogg\" /&gt;\r\n                &lt;enclosure url=\"https://archive.org/download/tuxjam_113/tuxjam_113.ogg\" length=\"72892480\" type=\"audio/ogg\" /&gt;\r\n                &lt;enclosure url=\"https://archive.org/download/tuxjam_112/tuxjam_112.ogg\" length=\"82495846\" type=\"audio/ogg\" /&gt;\r\n</pre>\n<p>\nTwo of the hits are not enclosures at all, they are references in the text to OggCamp <code>\nwhat we enjoyed about &lt;a href=\"https://oggcamp.org/\"&gt;OggCamp 2024&lt;/a&gt;</code>\n</p>\n<p>\nNormally running <code>\ngrep</code>\n will only get one entry per line, and if the xml is minimised it can miss entries on a file that comes across as one big line.</p>\n<p>\nI did this myself using</p>\n<p>\n<br>\n</p>\n<pre class=\"ql-syntax\" spellcheck=\"false\">\nxmllint --noblanks tuxjam.xml &gt; tuxjam-min.xml\r\n</pre>\n<p>\nI then edited it and replaced the new lines with spaces. I have to say that the <code>\n--only-matching</code>\n argument is doing a great job at pulling out the matches.</p>\n<p>\nThat said the results were not perfect either.</p>\n<p>\n<br>\n</p>\n<pre class=\"ql-syntax\" spellcheck=\"false\">\n$ grep --only-matching \'https*://[^\"]*ogg\' tuxjam-min.xml\r\nhttps://archive.org/download/tuxjam-121/tuxjam_121.ogg\r\nhttps://archive.org/download/tuxjam-120/TuxJam_120.ogg\r\nhttps://archive.org/download/tux-jam-119/TuxJam_119.ogg\r\nhttps://archive.org/download/tuxjam_118/tuxjam_118.ogg\r\nhttps://archive.org/download/tux-jam-117-uncut/TuxJam_117.ogg\r\nhttps://tuxjam.otherside.network/tuxjam-115-ogg\r\nhttps://archive.org/download/tuxjam_116/tuxjam_116.ogg\r\nhttps://tuxjam.otherside.network/tuxjam-115-ogg\r\nhttps://tuxjam.otherside.network/?p=1029&lt;/guid&gt;&lt;comments&gt;https://tuxjam.otherside.network/tuxjam-115-oggcamp-2024/#respond&lt;/comments&gt;&lt;wfw:commentRss&gt;https://tuxjam.otherside.network/tuxjam-115-ogg\r\nhttps://ogg\r\nhttp://tuxjam.otherside.network/wp-content/uploads/sites/5/2024/10/tuxjam_115_OggCamp2024.ogg\r\nhttps://ogg\r\nhttps://archive.org/download/tuxjam_114/tuxjam_114.ogg\r\nhttps://archive.org/download/tuxjam_113/tuxjam_113.ogg\r\nhttps://archive.org/download/tuxjam_112/tuxjam_112.ogg\r\n</pre>\n<p>\nYou could fix it by modifying the <code>\ngrep</code>\n arguments and add additional searches looking for <code>\nenclosure</code>\n. The problem with that approach is that you\'ll forever and a day be chasing issues when someone changes something.</p>\n<p>\nSo the approach is officially \"Grand\", but it\'s a very likely to break if you\'re not babysitting it.</p>\n<p>\n<br>\n</p>\n<h2>\nSuggested Applications.</h2>\n<p>\nI recommend never parsing <a href=\"https://en.wikipedia.org/wiki/Structured_document\" rel=\"noopener noreferrer\" target=\"_blank\">\nstructured documents</a>\n, like xml or json with grep.</p>\n<p>\nYou should use dedicated parsers that understands the document markup, and can intelligently address parts of it.</p>\n<p>\nI recommend:</p>\n<p>\n<br>\n</p>\n<ul>\n<li>\n<code>\nxml</code>\n use <a href=\"https://en.wikipedia.org/wiki/XMLStarlet\" rel=\"noopener noreferrer\" target=\"_blank\">\nxmlstarlet</a>\n</li>\n<li>\n<code>\njson</code>\n use <a href=\"https://jqlang.org/download/\" rel=\"noopener noreferrer\" target=\"_blank\">\njq</a>\n</li>\n<li>\n<code>\nyaml</code>\n use <a href=\"https://github.com/mikefarah/yq\" rel=\"noopener noreferrer\" target=\"_blank\">\nyq</a>\n</li>\n</ul>\n<p>\nOf course anyone that looks at my code on the <a href=\"https://repo.anhonesthost.net/HPR\" rel=\"noopener noreferrer\" target=\"_blank\">\nhpr gittea</a>\n will know this is a case of \"do what I say, not what I do.\"</p>\n<p>\nNever parse xml with grep, where the only possible exception is to see if a string is in a file in the first place.</p>\n<p>\n<br>\n</p>\n<pre class=\"ql-syntax\" spellcheck=\"false\">\ngrep --max-count=1 --files-with-matches\r\n</pre>\n<p>\nThat\'s justified under the fact that <code>\ngrep</code>\n is going to be faster than having to parse, and build a <a href=\"https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model/Using_the_Document_Object_Model\" rel=\"noopener noreferrer\" target=\"_blank\">\nXML Document Object Model</a>\n when you don\'t have to.</p>\n<p>\n<br>\n</p>\n<h2>\nSome Tips</h2>\n<h3>\nAlways refer to examples and specification</h3>\n<p>\nA specification is just a set of rules that tell you how the document is formatted.</p>\n<p>\nThere is a danger in just looking at example files, and not reading the specifications. I had a situation once where a software developer raised a bug as the files didn\'t begin with <code>\nken-test-</code>\n followed by a <a href=\"https://en.wikipedia.org/wiki/Universally_unique_identifier\" rel=\"noopener noreferrer\" target=\"_blank\">\nuuid</a>\n. They were surprised when the supplied files did not follow this convention as per the examples. Suffice to say that was rejected.</p>\n<p>\nFor us there are the rules from the <a href=\"https://www.rssboard.org/rss-specification\" rel=\"noopener noreferrer\" target=\"_blank\">\nRSS specification</a>\n itself, but as it\'s a XML file there are <a href=\"https://www.w3.org/TR/REC-xml/\" rel=\"noopener noreferrer\" target=\"_blank\">\nXML Specifications</a>\n. While the RSS spec is short, the XML is not, so people tend to use dedicated libraries to parse XML. Using a dedicated tool like <a href=\"https://en.wikipedia.org/wiki/XMLStarlet\" rel=\"noopener noreferrer\" target=\"_blank\">\nxmlstarlet</a>\n will allow us to mostly ignore the details of XML.</p>\n<p>\n<br>\n</p>\n<blockquote>\n<a href=\"https://www.rssboard.org/rss-specification#whatIsRss\" rel=\"noopener noreferrer\" target=\"_blank\">\nRSS is a dialect of XML</a>\n. All RSS files must conform to the XML 1.0 specification, as published on the World Wide Web Consortium (W3C) website.</blockquote>\n<p>\nThe first line of the tuxjam feed shows it\'s an XML file.</p>\n<p>\n<br>\n</p>\n<pre class=\"ql-syntax\" spellcheck=\"false\">\n&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\r\n</pre>\n<p>\nThe specification goes on to say \"At the top level, a RSS document is a  element, with a mandatory attribute called version, that specifies the version of RSS that the document conforms to. If it conforms to this specification, the version attribute must be 2.0.\" And sure enough then the second line show that it\'s a RSS file.</p>\n<p>\n<br>\n</p>\n<pre class=\"ql-syntax\" spellcheck=\"false\">\n&lt;rss version=\"2.0\" ...\r\n</pre>\n<h3>\nUse the best tool for the job</h3>\n<p>\nYou wouldn\'t grep a Excel File ? Why would you grep an XML file ?</p>\n<p>\nWe could go on all day but I want to get across the idea that there is structure in the file. As XML is everywhere you should have a tool to process it. More than likely <code>\nxmlstarlet</code>\n is in all the distro repos, so just install it.</p>\n<p>\nThe help looks like this:</p>\n<p>\n<br>\n</p>\n<pre class=\"ql-syntax\" spellcheck=\"false\">\n$ xmlstarlet --help\r\nXMLStarlet Toolkit: Command line utilities for XML\r\nUsage: xmlstarlet [&lt;options&gt;] &lt;command&gt; [&lt;cmd-options&gt;]\r\nwhere &lt;command&gt; is one of:\r\n  ed    (or edit)      - Edit/Update XML document(s)\r\n  sel   (or select)    - Select data or query XML document(s) (XPATH, etc)\r\n  tr    (or transform) - Transform XML document(s) using XSLT\r\n  val   (or validate)  - Validate XML document(s) (well-formed/DTD/XSD/RelaxNG)\r\n  fo    (or format)    - Format XML document(s)\r\n  el    (or elements)  - Display element structure of XML document\r\n  c14n  (or canonic)   - XML canonicalization\r\n  ls    (or list)      - List directory as XML\r\n  esc   (or escape)    - Escape special XML characters\r\n  unesc (or unescape)  - Unescape special XML characters\r\n  pyx   (or xmln)      - Convert XML into PYX format (based on ESIS - ISO 8879)\r\n  p2x   (or depyx)     - Convert PYX into XML\r\n&lt;options&gt; are:\r\n  -q or --quiet        - no error output\r\n  --doc-namespace      - extract namespace bindings from input doc (default)\r\n  --no-doc-namespace   - don\'t extract namespace bindings from input doc\r\n  --version            - show version\r\n  --help               - show help\r\nWherever file name mentioned in command help it is assumed\r\nthat URL can be used instead as well.\r\n\r\nType: xmlstarlet &lt;command&gt; --help &lt;ENTER&gt; for command help\r\n\r\nXMLStarlet is a command line toolkit to query/edit/check/transform\r\nXML documents (for more information see http://xmlstar.sourceforge.net/)\r\n</pre>\n<p>\nYou can get more help on a given topic by calling the <code>\nxmlstarlet</code>\n <code>\ncommand</code>\n like this:</p>\n<p>\n<br>\n</p>\n<pre class=\"ql-syntax\" spellcheck=\"false\">\n$ xmlstarlet el --help\r\nXMLStarlet Toolkit: Display element structure of XML document\r\nUsage: xmlstarlet el [&lt;options&gt;] &lt;xml-file&gt;\r\nwhere\r\n  &lt;xml-file&gt; - input XML document file name (stdin is used if missing)\r\n  &lt;options&gt; is one of:\r\n  -a    - show attributes as well\r\n  -v    - show attributes and their values\r\n  -u    - print out sorted unique lines\r\n  -d&lt;n&gt; - print out sorted unique lines up to depth &lt;n&gt;\r\n\r\nXMLStarlet is a command line toolkit to query/edit/check/transform\r\nXML documents (for more information see http://xmlstar.sourceforge.net/)\r\n</pre>\n<p>\nTo prove that it\'s a structured document we can run the command <code>\nxmlstarlet el -u</code>\n - show me unique elements</p>\n<p>\n<br>\n</p>\n<pre class=\"ql-syntax\" spellcheck=\"false\">\n$ xmlstarlet el -u tuxjam.xml \r\nrss\r\nrss/channel\r\nrss/channel/atom:link\r\nrss/channel/copyright\r\nrss/channel/description\r\nrss/channel/generator\r\nrss/channel/image\r\nrss/channel/image/link\r\nrss/channel/image/title\r\nrss/channel/image/url\r\nrss/channel/item\r\nrss/channel/item/category\r\nrss/channel/item/comments\r\nrss/channel/item/content:encoded\r\nrss/channel/item/description\r\nrss/channel/item/enclosure\r\nrss/channel/item/guid\r\nrss/channel/item/itunes:author\r\nrss/channel/item/itunes:duration\r\nrss/channel/item/itunes:episodeType\r\nrss/channel/item/itunes:explicit\r\nrss/channel/item/itunes:image\r\nrss/channel/item/itunes:subtitle\r\nrss/channel/item/itunes:summary\r\nrss/channel/item/link\r\nrss/channel/item/pubDate\r\nrss/channel/item/slash:comments\r\nrss/channel/item/title\r\nrss/channel/item/wfw:commentRss\r\nrss/channel/itunes:author\r\nrss/channel/itunes:category\r\nrss/channel/itunes:explicit\r\nrss/channel/itunes:image\r\nrss/channel/itunes:owner\r\nrss/channel/itunes:owner/itunes:name\r\nrss/channel/itunes:subtitle\r\nrss/channel/itunes:summary\r\nrss/channel/itunes:type\r\nrss/channel/language\r\nrss/channel/lastBuildDate\r\nrss/channel/link\r\nrss/channel/podcast:guid\r\nrss/channel/podcast:license\r\nrss/channel/podcast:location\r\nrss/channel/podcast:medium\r\nrss/channel/podcast:podping\r\nrss/channel/rawvoice:frequency\r\nrss/channel/rawvoice:location\r\nrss/channel/sy:updateFrequency\r\nrss/channel/sy:updatePeriod\r\nrss/channel/title\r\n</pre>\n<p>\nThat is the <a href=\"https://en.wikipedia.org/wiki/XPath\" rel=\"noopener noreferrer\" target=\"_blank\">\nxpath</a>\n representation of the xml structure. It\'s very similar to a unix filesystem tree. There is one <code>\nrss</code>\n branch, of that is one <code>\nchannel</code>\n branch, and that can have many <code>\nitem</code>\n branches.</p>\n<p>\n<br>\n</p>\n<h3>\n\"Save the latest file from a feed\"</h3>\n<p>\nThe ask here is to \"Save the latest file from a feed\".</p>\n<p>\nThe solution Kevie gave gets the \"first entry in the feed\", which is correct for his feed but is not safe.</p>\n<p>\nHowever let\'s see how we could replace <code>\ngrep</code>\n with <code>\nxmlstarlet</code>\n.</p>\n<p>\nThe definition of <a href=\"https://www.rssboard.org/rss-specification#ltenclosuregtSubelementOfLtitemgt\" rel=\"noopener noreferrer\" target=\"_blank\">\nenclosure</a>\n is:</p>\n<p>\n<br>\n</p>\n<pre class=\"ql-syntax\" spellcheck=\"false\">\n&lt;enclosure&gt; is an optional sub-element of &lt;item&gt;.\r\n\r\nIt has three required attributes. url says where the enclosure is located, \r\nlength says how big it is in bytes, and type says what its type is, a standard MIME type.\r\n\r\nThe url must be an http url.\r\n\r\n&lt;enclosure url=\"http://www.scripting.com/mp3s/weatherReportSuite.mp3\" length=\"12216320\" type=\"audio/mpeg\" /&gt;\r\n</pre>\n<p>\nThe location of the files must be in <code>\nrss/channel/item/enclosure</code>\n or it\'s not a Podcast feed.</p>\n<p>\nIn each <code>\nenclosure</code>\n there has to be a xml attribute called <code>\nurl</code>\n which points to the media.</p>\n<p>\n<code>\nxmlstarlet</code>\n has the select command to select locations.</p>\n<p>\n<br>\n</p>\n<pre class=\"ql-syntax\" spellcheck=\"false\">\n$ xmlstarlet sel --help\r\nXMLStarlet Toolkit: Select from XML document(s)\r\nUsage: xmlstarlet sel &lt;global-options&gt; {&lt;template&gt;} [ &lt;xml-file&gt; ... ]\r\nwhere\r\n  &lt;global-options&gt; - global options for selecting\r\n  &lt;xml-file&gt; - input XML document file name/uri (stdin is used if missing)\r\n  &lt;template&gt; - template for querying XML document with following syntax:\r\n\r\n&lt;global-options&gt; are:\r\n  -Q or --quiet             - do not write anything to standard output.\r\n  -C or --comp              - display generated XSLT\r\n  -R or --root              - print root element &lt;xsl-select&gt;\r\n  -T or --text              - output is text (default is XML)\r\n  -I or --indent            - indent output\r\n  -D or --xml-decl          - do not omit xml declaration line\r\n  -B or --noblanks          - remove insignificant spaces from XML tree\r\n  -E or --encode &lt;encoding&gt; - output in the given encoding (utf-8, unicode...)\r\n  -N &lt;name&gt;=&lt;value&gt;         - predefine namespaces (name without \'xmlns:\')\r\n                              ex: xsql=urn:oracle-xsql\r\n                              Multiple -N options are allowed.\r\n  --net                     - allow fetch DTDs or entities over network\r\n  --help                    - display help\r\n\r\nSyntax for templates: -t|--template &lt;options&gt;\r\nwhere &lt;options&gt;\r\n  -c or --copy-of &lt;xpath&gt;   - print copy of XPATH expression\r\n  -v or --value-of &lt;xpath&gt;  - print value of XPATH expression\r\n  -o or --output &lt;string&gt;   - output string literal\r\n  -n or --nl                - print new line\r\n  -f or --inp-name          - print input file name (or URL)\r\n  -m or --match &lt;xpath&gt;     - match XPATH expression\r\n  --var &lt;name&gt; &lt;value&gt; --break or\r\n  --var &lt;name&gt;=&lt;value&gt;      - declare a variable (referenced by $name)\r\n  -i or --if &lt;test-xpath&gt;   - check condition &lt;xsl:if test=\"test-xpath\"&gt;\r\n  --elif &lt;test-xpath&gt;       - check condition if previous conditions failed\r\n  --else                    - check if previous conditions failed\r\n  -e or --elem &lt;name&gt;       - print out element &lt;xsl:element name=\"name\"&gt;\r\n  -a or --attr &lt;name&gt;       - add attribute &lt;xsl:attribute name=\"name\"&gt;\r\n  -b or --break             - break nesting\r\n  -s or --sort op xpath     - sort in order (used after -m) where\r\n  op is X:Y:Z, \r\n      X is A - for order=\"ascending\"\r\n      X is D - for order=\"descending\"\r\n      Y is N - for data-type=\"numeric\"\r\n      Y is T - for data-type=\"text\"\r\n      Z is U - for case-order=\"upper-first\"\r\n      Z is L - for case-order=\"lower-first\"\r\n</pre>\n<p>\nOptions we will need are:</p>\n<p>\n<br>\n</p>\n<pre class=\"ql-syntax\" spellcheck=\"false\">\n-T or --text              - output is text (default is XML)\r\n-t|--template &lt;options&gt; where &lt;options&gt;\r\n-m or --match &lt;xpath&gt;     - match XPATH expression\r\n-v or --value-of &lt;xpath&gt;  - print value of XPATH expression\r\n-n or --nl                - print new line\r\n</pre>\n<p>\nSo putting it together we will get:</p>\n<p>\n<br>\n</p>\n<pre class=\"ql-syntax\" spellcheck=\"false\">\n$ xmlstarlet sel --text --template --match \'rss/channel/item\' --value-of \'enclosure/@url\' --nl  tuxjam.xml \r\nhttps://archive.org/download/tuxjam-121/tuxjam_121.ogg\r\nhttps://archive.org/download/tuxjam-120/TuxJam_120.ogg\r\nhttps://archive.org/download/tux-jam-119/TuxJam_119.ogg\r\nhttps://archive.org/download/tuxjam_118/tuxjam_118.ogg\r\nhttps://archive.org/download/tux-jam-117-uncut/TuxJam_117.ogg\r\nhttps://archive.org/download/tuxjam_116/tuxjam_116.ogg\r\nhttp://tuxjam.otherside.network/wp-content/uploads/sites/5/2024/10/tuxjam_115_OggCamp2024.ogg\r\nhttps://archive.org/download/tuxjam_114/tuxjam_114.ogg\r\nhttps://archive.org/download/tuxjam_113/tuxjam_113.ogg\r\nhttps://archive.org/download/tuxjam_112/tuxjam_112.ogg\r\n</pre>\n<p>\nWe match for all the <code>\nrss/channel/item</code>\n and look for any <code>\nenclosure/@url</code>\ns, simple enough.</p>\n<p>\nWe could replace the grep in Kevie\'s script,</p>\n<p>\n<br>\n</p>\n<pre class=\"ql-syntax\" spellcheck=\"false\">\nwget `curl https://tuxjam.otherside.network/feed/podcast/ | grep -o \'https*://[^\"]*ogg\' | head -1`\r\n</pre>\n<p>\nwith,</p>\n<p>\n<br>\n</p>\n<pre class=\"ql-syntax\" spellcheck=\"false\">\nwget \"$( curl --silent https://tuxjam.otherside.network/feed/podcast/ | xmlstarlet sel --text --template --match \'rss/channel/item\' --value-of \'enclosure/@url\' --nl  - | head -1 )\"\r\n</pre>\n<p>\nWhich would guarantee to give the \"first entry in the feed\". Some additions is the use of <code>\n$()</code>\n instead of back ticks, as it\'s easier to nest them, and I think it\'s clearer that something is been executed. I also added <code>\n--silent</code>\n to <code>\ncurl</code>\n to suppress the progress bar. Also replaced the file name with <code>\n-</code>\n dash to tell <code>\nxmlstarlet</code>\n that the input will be piped from standard in.</p>\n<p>\n<br>\n</p>\n<h3>\nHow about the latest feed ?</h3>\n<p>\nThere is nothing to stop someone producing a RSS feed where the latest entries are at the end, or even sorted alphabetically, or random. They are all valid use cases and are allowed under the Specification. So how would we find the \"latest podcast\" ?.</p>\n<p>\nWhile defined as optional, the <code>\nitems</code>\n <a href=\"https://www.rssboard.org/rss-specification#ltpubdategtSubelementOfLtitemgt\" rel=\"noopener noreferrer\" target=\"_blank\">\npubDate</a>\n found at <code>\nrss/channel/item/pubDate</code>\n, is usually also always defined in podcast feeds.</p>\n<p>\n<br>\n</p>\n<pre class=\"ql-syntax\" spellcheck=\"false\">\n&lt;pubDate&gt; is an optional sub-element of &lt;item&gt;.\r\n\r\nIts value is a date, indicating when the item was published. If it\'s a date in the future, aggregators may choose to not display the item until that date.\r\n\r\n&lt;pubDate&gt;Sun, 19 May 2002 15:21:36 GMT&lt;/pubDate&gt;\r\n</pre>\n<p>\nUnfortunately they picked a completely stupid <a href=\"https://www.w3.org/Protocols/rfc822/\" rel=\"noopener noreferrer\" target=\"_blank\">\nemail date format</a>\n, as opposed to a <a href=\"https://en.wikipedia.org/wiki/Atom_%28web_standard%29%23Date_formats\" rel=\"noopener noreferrer\" target=\"_blank\">\nsane format</a>\n like <a href=\"https://www.rfc-editor.org/rfc/rfc3339\" rel=\"noopener noreferrer\" target=\"_blank\">\nrfc3339</a>\n a subset of <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" rel=\"noopener noreferrer\" target=\"_blank\">\niso8601</a>\n.</p>\n<p>\nSo if you want to get the \"latest podcast\" you need to parse then convert the <code>\npubDate</code>\n to sortable format like <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" rel=\"noopener noreferrer\" target=\"_blank\">\niso8601</a>\n or <a href=\"https://en.wikipedia.org/wiki/Unix_time\" rel=\"noopener noreferrer\" target=\"_blank\">\nUnix epoch</a>\n.</p>\n<p>\nI\'ll do the first part here, the second is it\'s own (series) of shows. <a href=\"https://www.youtube.com/watch?v=-5wpm-gesOY\" rel=\"noopener noreferrer\" target=\"_blank\">\nThe Problem with Time &amp; Timezones - Computerphile</a>\n</p>\n<p>\nSo could it be as simple as replacing the xpath <code>\nenclosure/@url</code>\n of with <code>\npubDate</code>\n ? Yes, yes it is.</p>\n<p>\n<br>\n</p>\n<pre class=\"ql-syntax\" spellcheck=\"false\">\n$ xmlstarlet sel --text --template --match \'rss/channel/item\' --value-of \'pubDate\' --nl  tuxjam.xml \r\nFri, 23 May 2025 17:54:17 +0000\r\nFri, 28 Feb 2025 15:48:57 +0000\r\nMon, 03 Feb 2025 09:57:26 +0000\r\nSat, 21 Dec 2024 17:08:26 +0000\r\nThu, 05 Dec 2024 12:57:52 +0000\r\nSat, 30 Nov 2024 20:31:20 +0000\r\nWed, 30 Oct 2024 08:10:58 +0000\r\nMon, 26 Aug 2024 15:11:51 +0000\r\nFri, 05 Jul 2024 18:15:44 +0000\r\nSat, 08 Jun 2024 09:21:50 +0000\r\n</pre>\n<p>\nBut we will need both the <code>\nenclosure/@url</code>\n and <code>\npubDate</code>\n, and we can do this using the <code>\nconcat</code>\n option. For more information on this see the <a href=\"https://xmlstar.sourceforge.net/doc/UG/xmlstarlet-ug.html\" rel=\"noopener noreferrer\" target=\"_blank\">\nXmlStarlet Command Line XML Toolkit User\'s Guide</a>\n</p>\n<p>\n<br>\n</p>\n<pre class=\"ql-syntax\" spellcheck=\"false\">\n$ xmlstarlet sel --text --template --match \'rss/channel/item\' --value-of \'concat(pubDate, \";\", enclosure/@url)\' --nl  tuxjam.xml \r\nFri, 23 May 2025 17:54:17 +0000;https://archive.org/download/tuxjam-121/tuxjam_121.ogg\r\nFri, 28 Feb 2025 15:48:57 +0000;https://archive.org/download/tuxjam-120/TuxJam_120.ogg\r\nMon, 03 Feb 2025 09:57:26 +0000;https://archive.org/download/tux-jam-119/TuxJam_119.ogg\r\nSat, 21 Dec 2024 17:08:26 +0000;https://archive.org/download/tuxjam_118/tuxjam_118.ogg\r\nThu, 05 Dec 2024 12:57:52 +0000;https://archive.org/download/tux-jam-117-uncut/TuxJam_117.ogg\r\nSat, 30 Nov 2024 20:31:20 +0000;https://archive.org/download/tuxjam_116/tuxjam_116.ogg\r\nWed, 30 Oct 2024 08:10:58 +0000;http://tuxjam.otherside.network/wp-content/uploads/sites/5/2024/10/tuxjam_115_OggCamp2024.ogg\r\nMon, 26 Aug 2024 15:11:51 +0000;https://archive.org/download/tuxjam_114/tuxjam_114.ogg\r\nFri, 05 Jul 2024 18:15:44 +0000;https://archive.org/download/tuxjam_113/tuxjam_113.ogg\r\nSat, 08 Jun 2024 09:21:50 +0000;https://archive.org/download/tuxjam_112/tuxjam_112.ogg\r\n</pre>\n<p>\nI use the <code>\n;</code>\n as delimiter.</p>\n<p>\nTo tackle the date we will need to use the <a href=\"https://www.man7.org/linux/man-pages/man1/date.1.html\" rel=\"noopener noreferrer\" target=\"_blank\">\ndate</a>\n command with the following options:</p>\n<p>\n<br>\n</p>\n<pre class=\"ql-syntax\" spellcheck=\"false\">\n-d, --date=STRING\r\n      display time described by STRING, not \'now\'\r\n-u, --utc, --universal\r\n      print or set Coordinated Universal Time (UTC)\r\n</pre>\n<p>\nThe once it\'s in a sane format we can use the <a href=\"https://www.man7.org/linux/man-pages/man1/sort.1.html\" rel=\"noopener noreferrer\" target=\"_blank\">\nsort</a>\n to sort them with the newest on the top.</p>\n<p>\n<br>\n</p>\n<pre class=\"ql-syntax\" spellcheck=\"false\">\n-n, --numeric-sort\r\n      compare according to string numerical value; see full documentation for supported strings\r\n-r, --reverse\r\n      reverse the result of comparisons\r\n</pre>\n<p>\nPutting that into a script</p>\n<p>\n<br>\n</p>\n<pre class=\"ql-syntax\" spellcheck=\"false\">\n#!/bin/bash\r\n# (c) CC-0 Ken Fallon 2025\r\n\r\npodcast=\"https://tuxjam.otherside.network/feed/podcast/\"\r\n\r\n\r\nwget --quiet $( curl --silent \"${podcast}\" | \\\r\nxmlstarlet sel --text --template --match \'rss/channel/item\' --value-of \'concat(pubDate, \";\", enclosure/@url)\' --nl - | \\\r\nwhile read item\r\ndo\r\n  pubDate=\"$( echo ${item} | awk -F \';\' \'{print $1}\' )\"\r\n  pubDate=\"$( \\date -d \"${pubDate}\" --universal +%Y-%m-%dT%H:%M:%S )\"\r\n  url=\"$( echo ${item} | awk -F \';\' \'{print $2}\' )\"\r\n  echo -e \"${pubDate}\\t${url}\"\r\ndone | \\\r\nsort --numeric-sort --reverse | \\\r\nhead -1 | \\\r\nawk \'{print $NF}\' )\r\n</pre>\n<p>\nAdmittedly it\'s a smidgen linger than Kevies in it\'s one liner format.</p>\n<p>\n<br>\n</p>\n<pre class=\"ql-syntax\" spellcheck=\"false\">\nwget \"$( curl --silent \"https://tuxjam.otherside.network/feed/podcast/\" | xmlstarlet sel --text --template --match \'rss/channel/item\' --value-of \'concat(pubDate, \";\", enclosure/@url)\' --nl - | while read item; do pubDate=\"$( echo ${item} | awk -F \';\' \'{print $1}\' )\"; pubDate=\"$( \\date -d \"${pubDate}\" --universal +%Y-%m-%dT%H:%M:%S )\"; url=\"$( echo ${item} | awk -F \';\' \'{print $2}\' )\"; echo -e \"${pubDate}\\t${url}\"; done | sort --numeric-sort --reverse | head -1 | awk \'{print $NF}\' )\"\r\n</pre>\n<p>\n<br>\n</p>\n\n\n',30,0,1,'CC-BY-SA','xml,xmlstarlet,rss,podcast',0,0,1),
