(3896,'2023-07-10','The Brochs of Glenelg',782,'A verbal tour in situ of one of the two brochs of Glenelg','In this episode I visit one of the best preserved <a href=\"https://en.wikipedia.org/wiki/Broch\">brochs</a> on the Scottish mainland called Dun Telve. It is one of two that are a few miles outside the village of Glenelg which is rare itself in that its name is a palindrome.\n\n<p><a href=\"https://hackerpublicradio.org/eps/hpr3896/hpr3896/20230701_200226_1000px.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3896/hpr3896/20230701_200226_1000px_thumbnail.jpg\" title=\"The broch Dun Telve from a distance.\" alt=\"The broch Dun Telve from a distance.\"></a></p>\n\n<p><a href=\"https://hackerpublicradio.org/eps/hpr3896/hpr3896/20230701_201912_1000px.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr3896/hpr3896/20230701_201912_1000px_thumbnail.jpg\" title=\"The broch Dun Telve from a distance.\" alt=\"The broch Dun Telve from a distance.\"></a></p>\n',268,101,0,'CC-BY-SA','history,scotland,prehistoric',0,0,1),
(3895,'2023-07-07','What\'s in my backpack',514,'Stache walks through the contents of his work backpack','<p>I have many things in my work backpack, to include a Raspberry Pico,\nmultiple USB drives, USB cables, two laptops, my glasses and a\nsunglasses case attached to the outside.</p>\n<p>It is a 5.11 RUSH MOAB 10 Sling Pack 18L, not because I want to be\n\"tacticool\" but because I like their products, and that they support\nveterans like myself.</p>\n',408,23,0,'CC-BY-SA','backpack contents, toolkit',0,0,1),
(3897,'2023-07-11','HPR AudioBook Club 22 - Murder at Avedon Hill',6119,'In this episode the HPR Audiobook Club discusses \"Murder at Avedon Hill\" by P.G. Holyfield','<h2\nid=\"in-this-episode-the-hpr-audiobook-club-discusses-the-audiobook-murder-at-avedon-hill-by-pg-holyfield\">In\nthis episode the HPR Audiobook Club discusses the audiobook <a\nhref=\"https://archive.org/details/podcast_murder-at-avedon-hill_280056756\">Murder\nat Avedon Hill</a> by P.G. Holyfield</h2>\n<hr />\n<h2 id=\"non-spoiler-thoughts\">Non-Spoiler Thoughts</h2>\n<hr />\n<ul>\n<li>Great reading, great audio quality, fun setting and setup. It had\nthe feel of a role playing adventure at the beginning, but was well\nfleshed out by the middle. It would have been slightly better if all of\nthe guest voices had had a pronunciation guide for the names.</li>\n</ul>\n<h2 id=\"beverage-reviews\">Beverage Reviews</h2>\n<hr />\n<ul>\n<li><strong>Thaj:</strong> A delicious regular chocolate malt from the\nlocal ice cream shop \"The Comfy Cow\"</li>\n<li><strong>x1101:</strong> Barton\'s 1795</li>\n<li><strong>Pokey</strong> Leinenkugel\'s: I have a fall variety pack,\nbut this is not the fall. I\'m not enjoying this beer as much as I\nexpected. It\'s good, and I can taste the high quality of the\ningredients, but I think it\'s just the wrong season for this.</li>\n</ul>\n<h2 id=\"things-we-talked-about\">Things We Talked About</h2>\n<hr />\n<ul>\n<li><p><a\nhref=\"https://boardgamegeek.com/boardgame/822/carcassonne\">Carcassonne</a></p></li>\n<li><p><a href=\"https://scribl.com/books/P8EE5/shadowmagic\">Shadow\nMagic</a></p></li>\n</ul>\n<h2 id=\"our-next-audiobook\">Our Next Audiobook</h2>\n<hr />\n<p><a\nhref=\"https://librivox.org/a-princess-of-mars-by-edgar-rice-burroughs-2/\">A\nPrincess of Mars</a> by Edgar Rice Burroughs</p>\n<h2 id=\"the-next-audiobook-club-recording\">The Next Audiobook Club\nRecording</h2>\n<hr />\n<p>Right now we are working through a backlog of older episodes that\nhave already been recorded. Once that ends we fully anticipate recording\nnew episodes with listener participation.</p>\n<h2 id=\"feedback\">Feedback</h2>\n<hr />\n<p>Thank you very much for listening to this episode of the HPR\nAudioBookClub. We had a great time recording this show, and we hope you\nenjoyed it as well. We also hope you\'ll consider joining us next time we\nrecord a new episode. Please leave a few words in the episode\'s comment\nsection.</p>\n<p>As always; remember to visit the HPR contribution page HPR could\nreally use your help right now.</p>\n<p>Sincerely, The HPR Audiobook Club</p>\n<p>P.S. Some people really like finding mistakes. For their enjoyment,\nwe always include a few.</p>\n<h2 id=\"our-audio\">Our Audio</h2>\n<hr />\n<p>This episode was processed using <a\nhref=\"https://www.audacityteam.org/\">Audacity</a>. We\'ve been making\nsmall adjustments to our audio mix each month in order to get the best\npossible sound. Its been especially challenging getting all of our\nvoices relatively level, because everyone has their own unique setup.\nMumble is great for bringing us all together, and for recording, but\nit\'s not good at making everyone\'s voice the same volume. We\'re pretty\nhappy with the way this month\'s show turned out, so we\'d like to share\nour editing process and settings with you and our future selves (who, of\ncourse, will have forgotten all this by then).</p>\n<p>We use the \"Truncate Silence\" effect with it\'s default settings to\nminimize the silence between people speaking. When used with it\'s\ndefault (or at least reasonable) settings, Truncate Silence is extremely\neffective and satisfying. It makes everyone sound smarter, it makes the\nfile shorter without destroying actual content, and it makes a\nconversations sound as easy and fluid during playback as it was while it\nwas recorded. It can be even more effective if you can train yourself to\nremain silent instead of saying \"uuuuummmm.\" Just remember to ONLY pass\nthe file through Truncate Silence ONCE. If you pass it through a second\ntime, or if you set it too aggressively your audio may sound sped up and\nchoppy.</p>\n<p>Next we use the \"Compressor\" effect with the following settings:</p>\n<pre><code>Threshold: -30db\n\nNoise Floor: -50db\n\nRatio: 3:1\n\nAttack Time: 0.2sec\n\nDecay Time: 1.0 sec`</code></pre>\n<p>\"Make-up Gain for 0db after compressing\" and \"compress based on\npeaks\" were both left un-checked.</p>\n<p>After compressing the audio we cut any pre-show and post-show chatter\nfrom the file and save them in a separate file for possible use as\nouttakes after the closing music.</p>\n<p>We adjust the Gain so that the VU meter in Audacity hovers around\n-12db while people are speaking, and we try to keep the peaks under\n-6db, and we adjust the Gain on each of the new tracks so that all\nvolumes are similar, and more importantly comfortable. Once this is done\nwe can \"Mix and Render\" all of our tracks into a single track for export\nto the .FLAC file which is uploaded to the HPR server.</p>\n<p>At this point we listen back to the whole file and we work on the\nshownotes. This is when we can cut out anything that needs to be cut,\nand we can also make sure that we put any links in the shownotes that\nwere talked about during the recording of the show. We finish the\nshownotes before exporting the .aup file to .FLAC so that we can paste a\ncopy of the shownotes into the audio file\'s metadata.</p>\n<p>At this point we add new, empty audio tracks into which we paste the\nintro, outro and possibly outtakes, and we rename each track\naccordingly.</p>\n<p>Remember to save often when using Audacity. We like to save after\neach of these steps. Audacity has a reputation for being \"crashy\" but if\nyou remember save after every major transform, you will wonder how it\never got that reputation.</p>\n',157,53,1,'CC-BY-SA','Audiobook club, audiobook, fantasy, fiction',0,0,1),
(3907,'2023-07-25','My introduction show',1153,'About me and computers','<p>The show notes</p>\n<ul>\n<li>Episode 3496: How I record HPR Episodes <a\nhref=\"http://hackerpublicradio.org/eps.php?id=3496\"\nclass=\"uri\">http://hackerpublicradio.org/eps.php?id=3496</a></li>\n<li>Source: <a href=\"https://gitlab.com/norrist/solocast\"\nclass=\"uri\">https://gitlab.com/norrist/solocast</a></li>\n<li>XFree86 <a href=\"http://en.wikipedia.org/wiki/XFree86\"\nclass=\"uri\">http://en.wikipedia.org/wiki/XFree86</a></li>\n<li>Quickemu, Quickly create and run optimised Windows, macOS and Linux\ndesktop virtual machines. <a\nhref=\"http://github.com/quickemu-project/quickemu\"\nclass=\"uri\">http://github.com/quickemu-project/quickemu</a></li>\n</ul>\n',421,0,0,'CC-BY-SA','introduction,solocast',0,0,1),
(3899,'2023-07-13','Repair corrupt video files for free with untruc',320,'This is how I fixed corrupt video files from my dash cam after an accident','<p>My original blog post on this topic: <a\nhref=\"https://pquirk.com/posts/corruptvideo/\"\nclass=\"uri\">https://pquirk.com/posts/corruptvideo/</a></p>\n<ul>\n<li>Untruc at Github: <a href=\"https://github.com/anthwlock/untrunc\"\nclass=\"uri\">https://github.com/anthwlock/untrunc</a></li>\n<li>Windows version: <a\nhref=\"https://github.com/anthwlock/untrunc/releases\"\nclass=\"uri\">https://github.com/anthwlock/untrunc/releases</a></li>\n<li>Arch linux version: <a\nhref=\"https://aur.archlinux.org/packages/untrunc-git\"\nclass=\"uri\">https://aur.archlinux.org/packages/untrunc-git</a></li>\n</ul>\n<p>Make your donations to:<br />\n<a href=\"https://www.paypal.com/paypalme/anthwlock\"\nclass=\"uri\">https://www.paypal.com/paypalme/anthwlock</a><br />\n<a href=\"https://vcg.isti.cnr.it/~ponchio/untrunc.php\"\nclass=\"uri\">https://vcg.isti.cnr.it/~ponchio/untrunc.php</a></p>\n',383,0,0,'CC-BY-NC-SA','video,corrupt,fix,file,linux',0,0,1),
(3921,'2023-08-14','HPR AudioBook Club 23 - John Carter of Mars (Books 1-3)',6516,'In this episode the HPR Audiobook Club discusses the first three books of John Carter of Mars','<h2\nid=\"in-this-episode-the-hpr-audiobook-club-discusses-the-audiobooks-a-princess-of-mars-the-gods-of-mars-and-the-warlord-of-mars-by-edgar-rice-burroughs\">In\nthis episode the HPR Audiobook Club discusses the audiobooks <a\nhref=\"https://librivox.org/a-princess-of-mars-by-edgar-rice-burroughs-2/\">A\nPrincess of Mars</a>, <a\nhref=\"https://librivox.org/the-gods-of-mars-version-3-by-edgar-rice-burroughs/\">The\nGods of Mars</a>, and <a\nhref=\"https://librivox.org/the-warlord-of-mars-version-3-by-edgar-rice-burroughs/\">The\nWarlord of Mars</a> by Edgar Rice Burroughs</h2>\n<hr />\n<h2 id=\"non-spoiler-thoughts\">Non-Spoiler Thoughts</h2>\n<hr />\n<ul>\n<li>Burroughs is kind of verbose, which is symbolic of the time period\nin which it was written.</li>\n</ul>\n<h2 id=\"beverage-reviews\">Beverage Reviews</h2>\n<hr />\n<ul>\n<li><strong>Thaj:</strong> Tempting fate with a tall glass of the highly\ntoxic, <a href=\"http://www.dhmo.org/facts.html\">Dihydrogen\nMonoxide</a></li>\n<li><strong>x1101:</strong> <a\nhref=\"https://www.beeradvocate.com/beer/profile/139/149716/\">Shipyard\nLittle Horror of Hops</a> Its a very amber IPA</li>\n<li><strong>Pokey:</strong> <a\nhref=\"http://www.yellowtailwine.com/chardonnay/\">Yellow Tail\nChardonay</a> Its definitely a chardonay in flavor. You can taste the\ncost effectiveness up front, but it mellows out on the finish, and is\npretty okay for the price on average.</li>\n<li><strong>FiftyOneFifty:</strong> <a\nhref=\"https://www.boulevard.com/beer/our-beers/\">Funky Pumpkin spiced\npumpkin ale</a></li>\n<li><strong>Mark:</strong> <a\nhref=\"https://lagunitas.com/beer/ipa/\">Lagunitas IPA</a></li>\n</ul>\n<h2 id=\"things-we-talked-about\">Things We Talked About</h2>\n<hr />\n<ul>\n<li><p><a href=\"https://chatsecure.org/\">Chat Secure</a> secure XMPP,\nThink of the children!!!</p></li>\n<li><p>Technology on Barsoom</p></li>\n<li><p>Deus Ex Machina much???</p></li>\n<li><p>Names in fantasy books</p></li>\n</ul>\n<h2 id=\"our-next-audiobook\">Our Next Audiobook</h2>\n<hr />\n<p><a href=\"https://scribl.com/books/P34C6/see-you-at-the-morgue\">See\nYou At The Morgue</a> by Lawrence Blochman</p>\n<h2 id=\"the-next-audiobook-club-recording\">The Next Audiobook Club\nRecording</h2>\n<hr />\n<p>Right now we are working through a backlog of older episode that have\nalready been recorded. Once that ends we fully anticipate recording new\nepisodes with listener participation.</p>\n<h2 id=\"feedback\">Feedback</h2>\n<hr />\n<p>Thank you very much for listening to this episode of the HPR\nAudioBookClub. We had a great time recording this show, and we hope you\nenjoyed it as well. We also hope you\'ll consider joining us next time we\nrecord a new episode. Please leave a few words in the episode\'s comment\nsection.</p>\n<p>As always; remember to visit the HPR contribution page HPR could\nreally use your help right now.</p>\n<p>Sincerely, The HPR Audiobook Club</p>\n<p>P.S. Some people really like finding mistakes. For their enjoyment,\nwe always include a few.</p>\n<h2 id=\"our-audio\">Our Audio</h2>\n<hr />\n<p>This episode was processed using <a\nhref=\"https://www.audacityteam.org/\">Audacity</a>. We\'ve been making\nsmall adjustments to our audio mix each month in order to get the best\npossible sound. Its been especially challenging getting all of our\nvoices relatively level, because everyone has their own unique setup.\nMumble is great for bringing us all together, and for recording, but\nit\'s not good at making everyone\'s voice the same volume. We\'re pretty\nhappy with the way this month\'s show turned out, so we\'d like to share\nour editing process and settings with you and our future selves (who, of\ncourse, will have forgotten all this by then).</p>\n<p>We use the \"Truncate Silence\" effect with it\'s default settings to\nminimize the silence between people speaking. When used with it\'s\ndefault (or at least reasonable) settings, Truncate Silence is extremely\neffective and satisfying. It makes everyone sound smarter, it makes the\nfile shorter without destroying actual content, and it makes a\nconversations sound as easy and fluid during playback as it was while it\nwas recorded. It can be even more effective if you can train yourself to\nremain silent instead of saying \"uuuuummmm.\" Just remember to ONLY pass\nthe file through Truncate Silence ONCE. If you pass it through a second\ntime, or if you set it too aggressively your audio may sound sped up and\nchoppy.</p>\n<p>Next we use the \"Compressor\" effect with the following settings:</p>\n<pre><code>Threshold: -30db\n\nNoise Floor: -50db\n\nRatio: 3:1\n\nAttack Time: 0.2sec\n\nDecay Time: 1.0 sec</code></pre>\n<p>\"Make-up Gain for 0db after compressing\" and \"compress based on\npeaks\" were both left un-checked.</p>\n<p>After compressing the audio we cut any pre-show and post-show chatter\nfrom the file and save them in a separate file for possible use as\nouttakes after the closing music.</p>\n<p>We adjust the Gain so that the VU meter in Audacity hovers around\n-12db while people are speaking, and we try to keep the peaks under\n-6db, and we adjust the Gain on each of the new tracks so that all\nvolumes are similar, and more importantly comfortable. Once this is done\nwe can \"Mix and Render\" all of our tracks into a single track for export\nto the .FLAC file which is uploaded to the HPR server.</p>\n<p>At this point we listen back to the whole file and we work on the\nshownotes. This is when we can cut out anything that needs to be cut,\nand we can also make sure that we put any links in the shownotes that\nwere talked about during the recording of the show. We finish the\nshownotes before exporting the .aup file to .FLAC so that we can paste a\ncopy of the shownotes into the audio file\'s metadata.</p>\n<p>At this point we add new, empty audio tracks into which we paste the\nintro, outro and possibly outtakes, and we rename each track\naccordingly.</p>\n<p>Remember to save often when using Audacity. We like to save after\neach of these steps. Audacity has a reputation for being \"crashy\" but if\nyou remember save after every major transform, you will wonder how it\never got that reputation.</p>\n<h2 id=\"attribution\">Attribution</h2>\n<hr />\n<p><a\nhref=\"https://freesound.org/people/ZeSoundResearchInc./sounds/117512/\">Record\nScratch</a> Creative Commons 0</p>\n',157,0,1,'CC-BY-SA','mars, audiobook club, fiction, scifi, audiobook',0,0,1),
(4151,'2024-07-01','HPR Community News for June 2024',0,'HPR Volunteers talk about shows released and comments posted in June 2024','',159,47,1,'CC-BY-SA','Community News',0,0,1),
(4176,'2024-08-05','HPR Community News for July 2024',0,'HPR Volunteers talk about shows released and comments posted in July 2024','',159,47,1,'CC-BY-SA','Community News',0,0,1),
(3902,'2023-07-18','Introduction to a new series on FFMPEG',474,'In this episode, I introduce FFMPEG, media containers, and codecs','<h2>Links</h2>\n\n<ul>\n<li><a href=\"https://ffmpeg.org\">FFMPEG Website</a></li>\n<li><a href=\"https://helpx.adobe.com/x-productkb/multi/formats-containers.html\">Adobe - containers vs encoders</a></li>\n<li>Containers: <a href=\"https://en.wikipedia.org/wiki/Comparison_of_video_container_formats\">Wikipedia</a></li>\n<li>Encoders/codecs\n\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Audio_coding_format\">Audio</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Video_coding_format\">Video</a></li>\n</ul>\n</li>\n<li><a href=\"https://s3-us-west-2.amazonaws.com/courses-images/wp-content/uploads/sites/4052/2019/04/08194049/CommunicationProcessModel1.jpg\">Encoding vs Decoding</a> ** attribution: <a href=\"https://courses.lumenlearning.com/wm-organizationalbehavior/chapter/the-process-of-communication/\">Learning Freedom Group</a></li>\n</ul>\n',300,0,0,'CC-BY-SA','ffmpeg,video streaming,audio streaming',0,0,1),
(3903,'2023-07-19','Why I don\'t love systemd (yet)',396,'Klaatu reads a script by Deepgeek about systemd','<p>I\'ve been meaning to put down my thoughts about SystemD for the HPR\ncommunity for some while, so here goes.</p>\n<p>I want to say that I am not a SystemD hater. When SystemD was a hot\ntopic of debate, many became irrational over it, but I want to start by\nsaying that I don\'t think it\'s a bad technology. I think it is a rather\ngood technology. I just don\'t want it on my personal computer. So I\nwould like to run things down in this order: what is it (as in, what is\nit really,) what makes it a good technology, why I don\'t want it now\n(but might later,) and a few tips for you if you decide that you don\'t\nwant it currently.</p>\n<p>SystemD Is not an init system. SystemD includes an init system.\nSystemD Init was faster than SysVInit, but SystemD Init isn\'t the\nfastest init system, and SysVInit now has a parallelization helper, at\nleast on Debian.</p>\n<p>So, if SystemD Init is not SystemD, than what is SystemD? To\nunderstand this we must first understand something about Linux. Linux\noperates under a model where there are root processes, and there are\nuser processes. These two kinds of processes are usually called\n\"layers.\" SystemD is actually a third layer, that can be called a system\nlayer. So when SystemD is added to a Linux system, that changes the\nsystem so that there are three layers, a root layer, a user layer, and a\nsystem layer. As such, you now ask SystemD to set how the system runs.\nThis is why SystemD includes things like an init system, because if you\nwant to change what the system is running, you ask SystemD to change it.\nSystemD then messages an appropriate system to implement the change,\nlike messaging its init system to bring up or bring down a system\ndaemon. Once you play out this in your head a bit, you really realize\nthat SystemD acts more like a message passing system in this regard.</p>\n<p>So why do I say SystemD is a good technology? Because this can\nstandardize system control. Without SystemD a fleet of computers becomes\nlike individual fingerprints or unique snowflakes. If you manage many\ncomputers, as many professional IT people do, you want them to all run\nthe same, all have the same profiles and general configurations. So if\nyou have a bunch of computers you are running, you can run a lot more if\nthey are all run the same way. If your job requires you to run 10,000\nwebservers, you want them to run identically because it is impossible to\nkeep an understanding of 10,000 unique configurations in a human\nhead.</p>\n<p>SystemD really shines in its support of virtualization as well. So\nto speak of servers, I used to run an email server for a few friends.\nEach of us had a userid and number as unix users. The mapping of unix\nuserids and postfix userids can get confusing when it gets big. Thanks\nto SystemD\'s virtualization work, you can actually put a service like\nemail into a namespace situation so that it has only the users root and\nthe daemon user id (like \"postfix\"), so SystemD greatly enhances\nsecurity for server installations. This might help explain its\ndominance in linux distributions that have been traditionally\nserver-centric, such as debian and redhat.</p>\n<p>So why don\'t I don\'t want it? Well, I\'ve been doing a lot of talking\nabout professional computer work and corporate work environments, but I\nuse a \"Personal Computer\" as a hobby. I\'ve been out-of-industry for\ndecades now. And when I say \"Personal Computer\" I\'m not talking a\nhardware specification, rather I\'m talking about \"This is my personal\ncomputer where I do things my way, as opposed to my work computer where\nI do things my companies way\". Dear listener, please remember that I did\nthe first community show contribution to HPR, and my topic was about\npersonalization. For me, a hobbyist interested in operating system\nexperimentation, I don\'t want a system layer, I want a traditional\nunix-like system that operates on a two-layer model and does things my\nway, nobody else\'s way.</p>\n<p>So, what advice can I give to those who don\'t want SystemD now? Well,\nrecently I\'ve left Debian. Debian, you see, supports init system\ndiversity, but as you now know dear listener, that is different than\nbeing without SystemD. You may have heard that SystemD is\nlinux-specific, that is to say that it runs only on linux, not anything\nlike a BSD system or a Windows system. But you may be curious to know\nthat it is also Gnu-libC specific. Which means that the C compiler must\nuse GNU\'s libC standard library. Thus, if you have a system built around\nthe Musl C standard library like Alpine or Void, or a system like\nAndroid that runs on the Bionic C Standard library, you wont have a\nSystemD system. I\'m personally learning Void as its package manager\nsupports both binary and a ports collection much like the BSD\'s. But\nthat is what I\'m doing on my personal computer, I leave you in the\nfreedom to do things your way on your personal computer!</p>\n\n',73,99,0,'CC-BY-SA','systemd,linux',0,0,1),
(3904,'2023-07-20','How to make friends',2861,'This topic is being actively researched. Not for production use.','<p>Show notes</p>\n<ul>\n<li>\n<p>No clear mark of when friendship starts</p>\n</li>\n<li>\n<p>often feels \"right\" when mutual</p>\n</li>\n<li>\n<p>to some people friendship is a persistent state. once you have it, it&#39;s forever unless explicitly dissolved.</p>\n</li>\n<li>\n<p>for other people, it&#39;s something requiring maintenance. arguable this suggests that there are degrees of friendship, based on when you last spoke to one another.</p>\n</li>\n<li>\n<p>degrees of friendship also suggests progression. friend → close friend → best friend.</p>\n</li>\n</ul>\n<h2 id=\"_how_to_make_a_friend\">how to make a friend</h2>\n<p>friendship requires communication.</p>\n<ul>\n<li>\n<p>start by communicating in some way that makes the other person feel not unpleasant</p>\n</li>\n<li>\n<p>you&#39;re not supposed to target a friend. this can be a frustrating rule, because if you&#39;re trying to make a friend, you have to target somebody, but the general consensus is that you&#39;re not supposed to \"try too hard\".  target lots of people in the hopes of stumbling across somebody to befriend.</p>\n</li>\n<li>\n<p>complimenting something they have done, even if it&#39;s something simple like wearing a cool shirt, is a very easy start</p>\n</li>\n<li>\n<p>finding ground common allows for repeated communication</p>\n</li>\n<li>\n<p>repetition of this is what builds friendship. this is why friendships often develop at work, but can dissolve quickly after a job change.</p>\n</li>\n<li>\n<p>the situation matters. chatting with someone who&#39;s being paid to interact with you, like somebody working at a store, doesn&#39;t count because in context they more or less cannot choose to stop communicating with you until you leave the store. chatting with someone who has anything to gain by chatting with you doesn&#39;t count (like an intern at work).</p>\n</li>\n<li>\n<p>to speed up a developing friendship, you can invite the person to interact with you on something with a clearly defined goal. You like coding? I like coding! Would you care to collaborate for 4 hours on a script that would help me find my Raspberry Pi on my network?</p>\n</li>\n<li>\n<p>during the activity, continue to communicate. this can be difficult because you&#39;re doing an activity that you both claim to enjoy, so in theory the activity should be sufficient to further the friendship. However, the activity doesn&#39;t build the friendship, it only builds a partnership. It&#39;s the communication that builds friendship.</p>\n</li>\n</ul>\n<p>unfortunately, there&#39;s no clear point during this process at which you know you have made a friend. so you have to define what a friend is, to you, and then work toward that goal.</p>\n<p>Here are some examples of definitions for friendship. There is no right or wrong here, it&#39;s really just setting your own expectations and requirements:</p>\n<ul>\n<li>\n<p>A friend is someone to hang out with on sundays.</p>\n</li>\n<li>\n<p>A friend is someone I can call when I&#39;ve got some free time to kill.</p>\n</li>\n<li>\n<p>A friend is someone I can play video games with online.</p>\n</li>\n<li>\n<p>A friend is someone I can call, day or night, when I need help.</p>\n</li>\n<li>\n<p>A friend is someone who has come over for dinner, and has met my family, and who I see at least once a month.</p>\n</li>\n</ul>\n<p>There&#39;s no official definition, so you must define it yourself.\nYour definition may differ from the other person&#39;s definition.\nYou might say \"we are best friends\" but they might say \"no, I already have a best friend, but you&#39;re a <em>good</em> friend\" and THAT&#39;S OK.</p>\n<p>If it helps, classify what kinds of friends you have so you understand what kinds of relationships you are maintaining.\nCommunicate with your friends, even if it&#39;s only to let them know that you&#39;re bad at communicating on a regular basis, or ask them how frequently they need to communicate to maintain a healthy friendship.</p>\n',78,108,0,'CC-BY-SA','autism,friendship,relationship,social engineering',0,0,1),
(3905,'2023-07-21','Presenting Fred Black',1105,'I have a short talk to present Fred Black.','<ul>\n<li><strong>IB-program</strong> <a href=\"https://ibo.org/\"\nclass=\"uri\">https://ibo.org/</a></li>\n<li><strong>Animals To The Max</strong> <a\nhref=\"https://corbinmaxey.com/podcast-1\"\nclass=\"uri\">https://corbinmaxey.com/podcast-1</a></li>\n<li><strong>I Spend A Day With...</strong> <a\nhref=\"https://feeds.megaphone.fm/ispentadaywith\"\nclass=\"uri\">https://feeds.megaphone.fm/ispentadaywith</a></li>\n<li><strong>The Vinyl Guide</strong> <a\nhref=\"https://www.thevinylguide.com/\"\nclass=\"uri\">https://www.thevinylguide.com/</a></li>\n<li><strong>NSOD - Norsken, Svensken og Dansken</strong> <a\nhref=\"https://podkast.nrk.no/program/norsken_svensken_og_dansken.rss\"\nclass=\"uri\">https://podkast.nrk.no/program/norsken_svensken_og_dansken.rss</a></li>\n</ul>\n',309,0,0,'CC-BY-SA','school,podcasts,instrument,quiz',0,0,1),
(3906,'2023-07-24','The Oh No! News.',1741,'Sgoti discusses the threat of convenience.','<h2 id=\"the-oh-no-news.\">The <em>Oh No!</em> news.</h2>\n<h2 id=\"oh-no-news-is-good-news.\"><em>Oh No!</em> News is Good\nNews.</h2>\n<ul>\n<li><strong>TAGS:</strong> Oh No News, InfoSec, browser security,\nsession tokens, session id</li>\n</ul>\n<hr />\n<h3 id=\"infosec-the-language-of-security.\"><strong>InfoSec; the language\nof security.</strong></h3>\n<ul>\n<li><strong>Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Session_ID\">Session ID.</a><br />\n</li>\n<li><strong>Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/JSON_Web_Token\">JSON Web\nToken.</a><br />\n\n<ul>\n<li><strong><a\nhref=\"https://foundation.wikimedia.org/wiki/Policy:Terms_of_Use\">Terms\nof Use:</a></strong> Copyleft, free content<br />\n</li>\n</ul></li>\n<li><strong>Source:</strong> <a\nhref=\"https://www.geeksforgeeks.org/session-vs-token-based-authentication/\">Session\nvs Token Based Authentication.</a><br />\n\n<ul>\n<li><strong><a\nhref=\"https://www.geeksforgeeks.org/legal/copyright-information/\">Terms\nof Use:</a></strong> CC-BY-SA (with CC-BY-NC-SA elements).<br />\n</li>\n</ul></li>\n<li><strong>Source:</strong> <a\nhref=\"https://attack.mitre.org/techniques/T1528/\">Steal Application\nAccess Token.</a> Adversaries can steal application access tokens as a\nmeans of acquiring credentials to access remote systems and resources.\nApplication access tokens are used to make authorized API requests on\nbehalf of a user or service and are commonly used as a way to access\nresources in cloud and container-based applications and\nsoftware-as-a-service (SaaS).<br />\n\n<ul>\n<li><strong><a\nhref=\"https://attack.mitre.org/resources/terms-of-use/\">Terms of\nUse:</a></strong> Similar to CC-BY-SA<br />\n</li>\n</ul></li>\n<li><strong>Source:</strong> <a\nhref=\"https://blog.isc2.org/isc2_blog/2023/02/analysis-circleci-attackers-stole-session-cookie-to-bypass-mfa.html\">Analysis:\nCircleCI attackers stole session cookie to bypass MFA.</a><br />\n\n<ul>\n<li><strong><a href=\"https://www.typepad.com/tos\">Terms of\nUse:</a></strong> Section 8. CONTENT AND CONTENT LICENSES. NOT\ncertain<br />\n</li>\n</ul></li>\n<li><strong>Source:</strong> <a\nhref=\"https://www.baeldung.com/cs/session-hijacking\">How to Prevent\nSession Hijacking?</a><br />\n\n<ul>\n<li><strong><a href=\"https://www.baeldung.com/terms-of-service\">Terms of\nUse:</a></strong> Copyright, restrictive<br />\n</li>\n</ul></li>\n</ul>\n<hr />\n<ul>\n<li><strong>Additional Information.</strong>\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Data_breach\"\ntitle=\"From Wikipedia, the free encyclopedia.\">What is a \"Data\nBreach\"?</a> A data breach is a security violation, in which sensitive,\nprotected or confidential data is copied, transmitted, viewed, stolen,\naltered or used by an individual unauthorized to do so.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Malware\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is \"Malware\"?</a>\nMalware (a <a href=\"https://en.wikipedia.org/wiki/Portmanteau\"\ntitle=\"From Wikipedia, the free encyclopedia\">portmanteau</a> for\nmalicious software) is any software intentionally designed to cause\ndisruption to a computer, server, client, or computer network, leak\nprivate information, gain unauthorized access to information or systems,\ndeprive access to information, or which unknowingly interferes with the\nuser\'s computer security and privacy.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Payload_(computing)\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is a \"Payload\"?</a>\nIn the context of a computer virus or worm, the payload is the portion\nof the malware which performs malicious action; deleting data, sending\nspam or encrypting data. In addition to the payload, such malware also\ntypically has overhead code aimed at simply spreading itself, or\navoiding detection.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Phishing\"\ntitle=\"From Wikipedia, the free encyclopedia.\">What is \"Phishing\"?</a>\nPhishing is a form of <a\nhref=\"https://en.wikipedia.org/wiki/Social_engineering_(security)\"\ntitle=\"From Wikipedia, the free encyclopedia\">social engineering</a>\nwhere attackers deceive people into revealing sensitive information or\ninstalling malware such as <a\nhref=\"https://en.wikipedia.org/wiki/Ransomware\"\ntitle=\"From Wikipedia, the free encyclopedia\">ransomware</a>. Phishing\nattacks have become increasingly sophisticated and often transparently\nmirror the site being targeted, allowing the attacker to observe\neverything while the victim is navigating the site, and transverse any\nadditional security boundaries with the victim.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Social_engineering_(security)\">Social\nengineering (security)</a> In the context of information security,\nsocial engineering is the <a\nhref=\"https://en.wikipedia.org/wiki/Psychological_manipulation\">psychological\nmanipulation</a> of people into performing actions or divulging\nconfidential information. A type of confidence trick for the purpose of\ninformation gathering, fraud, or system access, it differs from a\ntraditional \"con\" in that it is often one of many steps in a more\ncomplex fraud scheme.<br />\n</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Information_security\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is \"Information\nSecurity\" (InfoSec)?</a> Information security, sometimes shortened to\nInfoSec, is the practice of protecting information by mitigating <a\nhref=\"https://en.wikipedia.org/wiki/Information\"\ntitle=\"From Wikipedia, the free encyclopedia\">information</a> risks. It\nis part of <a\nhref=\"https://en.wikipedia.org/wiki/Risk_management_information_systems\"\ntitle=\"From Wikipedia, the free encyclopedia\">information risk\nmanagement</a>.\n<ul>\n<li><strong>Information Security Attributes:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Confidentiality\"\ntitle=\"From Wikipedia, the free encyclopedia\">Confidentiality</a>, <a\nhref=\"https://en.wikipedia.org/wiki/Data_integrity\"\ntitle=\"From Wikipedia, the free encyclopedia\">Integrity</a> and <a\nhref=\"https://en.wikipedia.org/wiki/Availability\"\ntitle=\"From Wikipedia, the free encyclopedia\">Availability</a> (C.I.A.).\nInformation Systems are composed in three main portions, hardware,\nsoftware and communications with the purpose to help identify and apply\ninformation security industry standards, as mechanisms of protection and\nprevention, at three levels or layers: physical, personal and\norganizational. Essentially, procedures or policies are implemented to\ntell administrators, users and operators how to use products to ensure\ninformation security within the organizations.</li>\n</ul></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Risk_management\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is \"Risk\nmanagement\"?</a> Risk management is the identification, evaluation, and\nprioritization of risks followed by coordinated and economical\napplication of resources to minimize, monitor, and control the\nprobability or impact of unfortunate events or to maximize the\nrealization of opportunities.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Vulnerability_(computing)\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is a \"Vulnerability\"\n(computing)?</a> Vulnerabilities are flaws in a computer system that\nweaken the overall security of the device/system. Vulnerabilities can be\nweaknesses in either the hardware itself, or the software that runs on\nthe hardware.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Attack_surface\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is an \"Attack\nSurface\"?</a> The attack surface of a software environment is the sum of\nthe different points (for \"attack vectors\") where an unauthorized user\n(the \"attacker\") can try to enter data to or extract data from an\nenvironment. Keeping the attack surface as small as possible is a basic\nsecurity measure.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Attack_vector\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is an \"Attack\nVector\"?</a> In computer security, an attack vector is a specific path,\nmethod, or scenario that can be exploited to break into an IT system,\nthus compromising its security. The term was derived from the\ncorresponding notion of vector in biology. An attack vector may be\nexploited manually, automatically, or through a combination of manual\nand automatic activity.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Standardization\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is\n\"Standardization\"?</a> Standardization is the process of implementing\nand developing technical standards based on the consensus of different\nparties that include firms, users, interest groups, standards\norganizations and governments. Standardization can help maximize\ncompatibility, interoperability, safety, repeatability, or quality. It\ncan also facilitate a normalization of formerly custom processes.\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/List_of_computer_standards\"\ntitle=\"From Wikipedia, the free encyclopedia\">List of computer\nstandards.</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/List_of_technical_standard_organizations\"\ntitle=\"From Wikipedia, the free encyclopedia\">List of technical standard\norganizations.</a></li>\n</ul></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Replay_attack\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is a \"Replay\nattack\"?</a> A replay attack is a form of network attack in which valid\ndata transmission is maliciously or fraudulently repeated or delayed.\nAnother way of describing such an attack is: \"an attack on a security\nprotocol using a replay of messages from a different context into the\nintended (or original and expected) context, thereby fooling the honest\nparticipant(s) into thinking they have successfully completed the\nprotocol run.\"</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Man-in-the-middle_attack\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is a\n\"Man-in-the-middle attack\"?</a> In cryptography and computer security, a\nman-in-the-middle, ..., attack is a cyberattack where the attacker\nsecretly relays and possibly alters the communications between two\nparties who believe that they are directly communicating with each\nother, as the attacker has inserted themselves between the two\nparties.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Transport_Layer_Security\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is \"Transport Layer\nSecurity\" (TLS)?</a> Transport Layer Security (TLS) is a cryptographic\nprotocol designed to provide communications security over a computer\nnetwork. The protocol is widely used in applications such as email,\ninstant messaging, and voice over IP, but its use in securing HTTPS\nremains the most publicly visible.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Handshake_(computing)\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is a \"Handshake\"\n(computing)?</a>. In computing, a handshake is a signal between two\ndevices or programs, used to, e.g., authenticate, coordinate. An example\nis the handshaking between a hypervisor and an application in a guest\nvirtual machine.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Security_theater\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is Security\ntheater?</a> The practice of taking security measures that are\nconsidered to provide the feeling of improved security while doing\nlittle or nothing to achieve it.<br />\n</li>\n</ul></li>\n</ul>\n<hr />\n<ul>\n<li><strong>License:</strong> <a\nhref=\"https://creativecommons.org/licenses/by-sa/4.0/legalcode\">Creative\nCommons Attribution-ShareAlike 4.0 International</a>\n<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-sa/4.0/\"><img alt=\"Creative Commons License\" style=\"border-width:0\" src=\"https://i.creativecommons.org/l/by-sa/4.0/88x31.png\" /></a><br />This\nwork is licensed under a\n<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-sa/4.0/\">Creative\nCommons Attribution-ShareAlike 4.0 International License</a>.</li>\n</ul>\n',391,74,0,'CC-BY-SA','Oh No News, InfoSec, browser security, session tokens, session id',0,0,1),
(3908,'2023-07-26','Emacs package curation, part 2',667,'Let\'s go through every single package installed in my Emacs configuration. File 2 of 3.','<p>We discuss the packages installed in the second of three files that\nmake up my emacs config.</p>\n<pre class=\"elisp\"><code>;;; init-base.el ---  The basics\n;;; Commentary:\n;;; Packages for my personal and work laptop, but not termux.\n\n;;; Code:\n\n;;;;;;;;;;;;;;;\n;;; Writing ;;;\n;;;;;;;;;;;;;;;\n\n;; Focused writing mode\n(use-package olivetti\n  :hook (olivetti-mode . typewriter-mode-toggle)\n  :bind (&quot;C-x C-w&quot; . olivetti-mode)\n  :custom (olivetti-body-width 64)\n  :config\n      (defvar-local typewriter-mode nil\n      &quot;Typewriter mode, automatically scroll down to keep cursor in\n      the middle of the screen. Setting this variable explicitly will\n      not do anything, use typewriter-mode-on, typewriter-mode-off\n      and typewriter-mode-toggle instead.&quot;)\n      (defun typewriter-mode-on()\n      &quot;Automatically scroll down to keep cursor in the middle of screen.&quot;\n        (interactive)\n        (setq-local typewriter-mode t)\n        (centered-cursor-mode +1))\n      (defun typewriter-mode-off()\n      &quot;Automatically scroll down to keep cursor in the middle of screen.&quot;\n        (interactive)\n        (kill-local-variable &#39;typewriter-mode)\n        (centered-cursor-mode -1))\n      (defun typewriter-mode-toggle()\n        &quot;Toggle typewriter scrolling mode on and off.&quot;\n        (interactive)\n        (if typewriter-mode (typewriter-mode-off) (typewriter-mode-on))))\n\n(use-package centered-cursor-mode)\n\n;; Check for weasel words and some other simple rules\n(use-package writegood-mode\n  :bind (&quot;C-c g&quot; . writegood-mode))\n\n;; spellchecking\n(use-package flyspell-correct\n  :after flyspell\n  :bind (:map flyspell-mode-map\n              (&quot;C-;&quot; . flyspell-correct-wrapper)))\n\n;; show correction options in a popup instead of the minibuffer\n(use-package flyspell-correct-popup\n  :after (flyspell-correct))\n\n;online thesaurus service from powerthesaurus.org\n(use-package powerthesaurus)\n\n;; WordNet Thesaurus replacement\n(use-package synosaurus\n  :custom (synosaurus-choose-method &#39;default)\n  :config (when window-system\n            (if (string= (x-server-vendor) &quot;Microsoft Corp.&quot;)\n              (setq synosaurus-wordnet--command &quot;C:\\\\Program Files (x86)\\\\WordNet\\\\2.1\\\\bin\\\\wn.exe&quot;))))\n\n;; WordNet search and view\n(use-package wordnut\n  :bind (&quot;C-c s&quot; . wordnut-search)\n  :config (when window-system\n            (if (string= (x-server-vendor) &quot;Microsoft Corp.&quot;)\n                (setq wordnut-cmd &quot;C:\\\\Program Files (x86)\\\\WordNet\\\\2.1\\\\bin\\\\wn.exe&quot;))))\n\n;; fill and unfill with the same key\n(use-package unfill\n  :bind (&quot;M-q&quot; . unfill-toggle))\n\n;; Markdown...\n(use-package markdown-mode)\n\n;;;;;;;;;;;;;;\n;;; Coding ;;;\n;;;;;;;;;;;;;;\n\n;; Syntax checking\n(use-package flycheck\n  :diminish\n  :init (global-flycheck-mode))\n\n(use-package flycheck-popup-tip\n  :after (flycheck)\n  :hook (flycheck-mode-hook . flycheck-popup-tip-mode))\n\n;; Web design\n(use-package emmet-mode\n  :hook (sgml-mode . emmet-mode) ;; Auto-start on any markup modes\n        (css-mode . emmet-mode)) ;; enable Emmet&#39;s css abbreviation.\n\n(use-package sass-mode)\n\n(use-package web-mode)\n\n;; Python\n(use-package python\n  :mode (&quot;\\\\.py\\\\&#39;&quot; . python-mode)\n  :interpreter (&quot;python&quot; . python-mode))\n\n;; highlight todo items everywhere\n(use-package hl-todo\n  :straight (:host github :repo &quot;tarsius/hl-todo&quot;)\n  :custom (hl-todo-keyword-faces\n             `((&quot;FIXME&quot; error bold)\n             (&quot;STUB&quot; error bold)\n             (&quot;REPLACETHIS&quot; error bold)\n             (&quot;REVISIT&quot; error bold)))\n          (hl-todo-exclude-modes nil)\n  :config (add-to-list &#39;hl-todo-include-modes &#39;org-mode)\n  :init (global-hl-todo-mode))\n\n;; git\n(use-package magit)\n\n(use-package git-timemachine)\n\n;; rest APIs via org source block\n(use-package ob-restclient)\n\n;;; END ;;;\n\n(provide &#39;init-base)\n;;; init-base.el ends here</code></pre>\n',399,0,0,'CC-BY-SA','emacs,elisp',0,0,1),
(3918,'2023-08-09','Emacs package curation, part 3',864,'Let\'s go through every single package installed in my Emacs configuration. The last one.','<p>We discuss the packages installed in the second of three files that\nmake up my emacs config.</p>\n<p>Since recording, I pulled in some EXWM (the Emacs X Window Manager,\nthat\'s right), even though I\'m not actually using it, I\'m still using\nstumpWM.</p>\n<p>I have also added pass, the password manager, khardel, an emacs\npackage for the khard CLI address book application.</p>\n<p>I also moved (server-start) to this file, so that it\'ll only happen\nwhen I\'m on linux.</p>\n<pre class=\"elisp\"><code>;;; init-extra.el --- Extra init stuff\n;;; Commentary:\n;;; Stuff just for my personal laptop, not for my work laptop or termux, for example.\n\n;;; Code:\n\n;;;;;;;;;;;;;;;;\n;;; org-roam ;;;\n;;;;;;;;;;;;;;;;\n\n(use-package org-roam\n  :demand t\n  :straight (:host github :repo &quot;org-roam/org-roam&quot;\n             :files (:defaults &quot;extensions/*&quot;))\n  :custom (org-roam-mode-sections (list #&#39;org-roam-backlinks-section\n                                        #&#39;org-roam-reflinks-section\n                                        #&#39;org-roam-unlinked-references-section))\n  :init (setq org-roam-directory &quot;~/org/roam/&quot;\n              org-roam-capture-templates\n                 &#39;((&quot;o&quot; &quot;outline&quot; plain\n                     &quot;%?&quot;\n                     :if-new\n                     (file+head &quot;${slug}.org&quot; &quot;#+title: ${title}\\n#+filetags: :outline:\\n&quot;)\n                     :immediate-finish t\n                     :unnarrowed t)\n                  (&quot;r&quot; &quot;reference&quot; plain &quot;%?&quot;\n                     :if-new\n                     (file+head &quot;${slug}.org&quot; &quot;#+title: ${title}\\n&quot;)\n                     :immediate-finish t\n                     :unnarrowed t)\n                  (&quot;m&quot; &quot;memo&quot; entry &quot;* ${title}\\n%?&quot;\n                     :if-new\n                     (file &quot;memos.org&quot;)\n                     :immediate-finish t\n                     :unnarrowed t)))\n  :bind ((&quot;C-c n l&quot; . org-roam-buffer-toggle)\n         (&quot;C-c n f&quot; . org-roam-node-find)\n         (&quot;C-c n g&quot; . org-roam-graph)\n         (&quot;C-c n i&quot; . org-roam-node-insert)\n         (&quot;C-c n c&quot; . org-roam-capture)\n         ;; Dailies\n         (&quot;C-c n j&quot; . org-roam-dailies-capture-today))\n  :config\n  ;; If you&#39;re using a vertical completion framework, you might want a more informative completion interface\n  (setq org-roam-node-display-template (concat &quot;${title:*} &quot; (propertize &quot;${tags:10}&quot; &#39;face &#39;org-tag)))\n  (org-roam-db-autosync-mode)\n  ;; If using org-roam-protocol\n  (require &#39;org-roam-protocol))\n\n;; citations\n(use-package citar\n  :after org-roam\n  :custom (org-cite-insert-processor &#39;citar)\n          (org-cite-follow-processor &#39;citar)\n          (org-cite-activate-processor &#39;citar)\n          (citar-bibliography &#39;(&quot;~/org/biblio.bib&quot;))\n          (citar-notes-paths &#39;(&quot;~/org/roam&quot;))\n          (citar-file-note-extensions &#39;(&quot;org&quot;))\n  :hook (LaTeX-mode . citar-capf-setup)\n        (org-mode . citar-capf-setup)\n  :bind ((&quot;C-c n b&quot; . #&#39;citar-open-notes)\n          :map org-mode-map :package org\n          (&quot;C-c b&quot; . #&#39;org-cite-insert)))\n\n;; view your org-roam notes on a map\n(use-package org-roam-ui\n  :after org-roam\n  :custom (org-roam-ui-sync-theme t)\n          (org-roam-ui-follow t)\n          (org-roam-ui-update-on-save t)\n          (org-roam-ui-open-on-start t))\n\n;; archive web pages in org attachments\n(use-package org-board\n  :after org\n  :custom (org-board-default-browser #&#39;browse-url)\n          (org-board-property &quot;ROAM_REFS&quot;)\n  :bind (:map org-mode-map\n          (&quot;C-c B a&quot; . org-board-archive)\n          (&quot;C-c B o&quot; . org-board-open)\n          (&quot;C-c B D&quot; . org-board-delete-all)))\n\n;;;;;;;;;;;;;;;\n;;; Writing ;;;\n;;;;;;;;;;;;;;;\n\n; something like grammarly, but open source\n(use-package langtool)\n\n;; better than docview, for pdf\n(use-package pdf-tools)\n\n;; annotating docs in org files\n(use-package org-noter)\n\n;; epub\n(use-package nov\n :mode (&quot;\\\\.epub$&quot; . nov-mode))\n\n;;; Invoke quick emacs windows to edit anything anywhere.\n;;; bind a key in xorg to ~emacsclient -c (emacs-everywhere)~\n(use-package emacs-everywhere)\n\n;;;;;;;;;;;;;;\n;;; Auctex ;;;\n;;;;;;;;;;;;;;\n(straight-use-package &#39;( auctex\n  :host nil :repo &quot;https://git.savannah.gnu.org/git/auctex.git&quot;\n  :pre-build ((&quot;./autogen.sh&quot;)\n                  (&quot;./configure&quot; &quot;--without-texmf-dir&quot; &quot;--with-lispdir=.&quot;)\n                  (&quot;make&quot;))))\n\n  (setq TeX-data-directory (expand-file-name &quot;straight/repos/auctex&quot; user-emacs-directory)\n      TeX-lisp-directory TeX-data-directory)\n\n  (eval-after-load &#39;info\n      &#39;(add-to-list &#39;Info-additional-directory-list\n          (expand-file-name &quot;straight/repos/auctex/doc&quot; user-emacs-directory)))\n  (load (expand-file-name &quot;straight/repos/auctex/auctex.el&quot; user-emacs-directory) nil t t)\n  (load (expand-file-name &quot;straight/repos/auctex/preview-latex.el&quot; user-emacs-directory) nil t t)\n\n(use-package evil-tex)\n\n(use-package latex-preview-pane\n  :custom (latex-preview-pane-use-frame t))\n\n(use-package adaptive-wrap)\n\n;;; END AUCTEX ;;;\n\n;;;;;;;;;;;;;;;;;;;\n;;; Programming ;;;\n;;;;;;;;;;;;;;;;;;;\n\n;; downloading and viewing Dash documentation files\n(use-package dash-docs\n  :init (defun elisp-doc ()\n            (setq-local consult-dash-docsets &#39;(&quot;Emacs Lisp&quot;)))\n        (add-hook &#39;emacs-lisp-mode-hook &#39;elisp-doc)\n  :custom (dash-docs-docsets-path (expand-file-name &quot;docsets&quot; user-emacs-directory))\n          (dash-docs-browse-func &#39;eww))\n\n(use-package consult-dash\n  :straight (:host codeberg :repo &quot;rahguzar/consult-dash&quot;)\n  :bind ((&quot;M-s d&quot; . consult-dash))\n  :after consult\n  :config\n  ;; Use the symbol at point as initial search term\n  (consult-customize consult-dash :initial (thing-at-point &#39;symbol)))\n\n;;;;;;;;;;;;;\n;;; Email ;;;\n;;;;;;;;;;;;;\n\n(use-package notmuch\n  :commands notmuch\n  :config (defun notmuch-show-view-html ()\n            &quot;Open the text/html part of the current message using\n            `notmuch-show-view-part&#39;. From https://emacs.stackexchange.com/a/63457&quot;\n            (interactive)\n            (save-excursion\n                (goto-char (prop-match-beginning\n                            (text-property-search-forward\n                            :notmuch-part &quot;text/html&quot;\n                            (lambda (value notmuch-part)\n                                (equal (plist-get notmuch-part :content-type)\n                            value)))))\n            (notmuch-show-view-part)))\n          ;; Enable link to message via org-store-link\n          (load-file (expand-file-name &quot;org-notmuch.el&quot; user-emacs-directory))\n          (require &#39;org-notmuch)\n  :bind (:map notmuch-show-mode-map\n              (&quot;. v&quot; . notmuch-show-view-html))\n  :custom (notmuch-draft-folder &quot;local/drafts&quot;)\n          (notmuch-search-oldest-first nil)\n          (notmuch-fcc-dirs &quot;fastmail/sent&quot;)\n          (notmuch-tagging-keys &#39;((&quot;r&quot; (&quot;+receipt&quot; &quot;-inbox&quot;) &quot;Receipt&quot;)))\n          (sendmail-program (executable-find &quot;msmtp&quot;))\n          (message-sendmail-f-is-evil t)\n          (message-sendmail-extra-arguments &#39;(&quot;--read-envelope-from&quot;)))\n\n(use-package khardel\n  :after notmuch\n  :bind (:map notmuch-message-mode-map\n         (&quot;C-c M-k&quot; . khardel-insert-email)))\n\n;;;;;;;;;;;;\n;;; PASS ;;;\n;;;;;;;;;;;;\n\n(use-package pass)\n\n;;;;;;;;;;;;\n;;; EXWM ;;;\n;;;;;;;;;;;;\n\n(use-package xelb\n  :disabled t\n  :straight (:host github :repo &quot;ch11ng/xelb&quot;))\n\n(use-package exwm\n  :disabled t\n  :straight (:host github :repo &quot;ch11ng/exwm&quot;)\n  :defer t\n  :config (require &#39;exwm-systemtray)\n          (require &#39;exwm-randr)\n          (setq xcb:connection-timeout 20)\n          (exwm-systemtray-enable)\n          (add-hook &#39;exwm-update-class-hook\n                  (lambda ()\n                  (exwm-workspace-rename-buffer exwm-class-name)))\n          (add-hook &#39;exwm-randr-screen-change-hook\n                    (lambda ()\n                      (start-process-shell-command\n                       &quot;autorandr&quot; nil &quot;autorandr -c&quot;)))\n          (defun exwm-randr-mobile()\n          &quot;Load a xrandr profile to use only the laptop screen.&quot;\n          (interactive)\n          (start-process-shell-command &quot;xrandr&quot; nil &quot;xrandr --output eDP-1 --auto --output DP-1 --off&quot;))\n          (defun exwm-randr-docked()\n          &quot;Load a xrandr profile to use only the connected external screen DP-1.&quot;\n          (interactive)\n          (start-process-shell-command &quot;xrandr&quot; nil &quot;xrandr --output eDP-1 --off --output DP-1 --auto&quot;))\n          (defun exwm-randr-chair()\n          &quot;Load a xrandr profile to use both the laptop screen and the connected screen.&quot;\n          (interactive)\n          (start-process-shell-command &quot;xrandr&quot; nil &quot;xrandr --output HDMI-1 --auto --scale 1.3 --output eDP-1 --off&quot;))\n          (defun exwm-randr-all()\n          &quot;Load a xrandr profile to use both the laptop screen and the connected screen.&quot;\n          (interactive)\n          (start-process-shell-command &quot;xrandr&quot; nil &quot;xrandr --output eDP-1 --primary --output DP-1 --above eDP-1&quot;)\n          (setq exwm-randr-workspace-output-plist &#39;(0 &quot;eDP-1&quot; 1 &quot;DP-1&quot;))\n          )\n          (exwm-randr-enable)\n    :custom (exwm-input-global-keys\n              `((,(kbd &quot;s-r&quot;) . exwm-reset)\n                (,(kbd &quot;s-w&quot;) . exwm-workspace-switch)\n                (,(kbd &quot;s-a&quot;) . exwm-randr-all)\n                (,(kbd &quot;s-c&quot;) . exwm-randr-chair)\n                (,(kbd &quot;s-d&quot;) . exwm-randr-docked)\n                (,(kbd &quot;s-m&quot;) . exwm-randr-mobile)\n                (,(kbd &quot;s-k&quot;) . exwm-input-release-keyboard)\n                (,(kbd &quot;s-f&quot;) . exwm-layout-toggle-fullscreen)\n                (,(kbd &quot;s-p&quot;) . pass)\n                (,(kbd &quot;s-t&quot;) . exwm-workspace-switch-to-buffer)\n                (,(kbd &quot;s-&amp;&quot;) . (lambda (command)\n                                       (interactive (list (read-shell-command &quot;$ &quot;)))\n                                       (start-process-shell-command command nil command)))\n                ,@(mapcar (lambda (i)\n                       `(,(kbd (format &quot;s-%d&quot; i)) .\n                           (lambda ()\n                               (interactive)\n                               (exwm-workspace-switch-create ,i))))\n                     (number-sequence 0 9))\n                ))\n          )\n\n;; start emacs server\n(server-start)\n\n;;; END ;;;\n\n(provide &#39;init-extra)\n;;; init-extra.el ends here</code></pre>\n',399,0,0,'CC-BY-SA','emacs,elisp',0,0,1),
(3909,'2023-07-27','Permission tickets. ',688,'Collective delusions of elective conclusions. ','<p>No special knowledge nor resources.<br />\nThis is a preview show for some future, self referential tangle of\ncryptographic distraction.</p>\n<p>So far, I see money as some social credit by proxy.<br />\nI recognise the utility of keeping track of resource recipes.<br />\nI also see dangers in over abstracting relations beyond robustly\nprovable outcomes.</p>\n',398,0,1,'CC-BY-SA','ledger,cryptographic,consensus,permission,integrity',0,0,1),
(3911,'2023-07-31','An overview of the \'ack\' command',1255,'A Perl-based \'grep\'-like tool that can search by file type','<article>\n<h2 id=\"introduction\">Introduction</h2>\n<p>I have occasionally been using a tool called <code>ack</code> for a\nfew years now. It’s billed as <em>“an alternative to grep for\nprogrammers”</em>.</p>\n<p>There are several features I find particularly useful:</p>\n<ul>\n<li><p>It can restrict text searches to files of a particular\n<em>type</em></p></li>\n<li><p>It uses Perl regular expressions which may be the most powerful\nand feature rich types of RE’s available at present</p></li>\n<li><p>You can limit the search area within a file if desired</p></li>\n</ul>\n<p>It is a very comprehensive and useful tool, though maybe quite\ncomplex to use. Personally I use it in special cases where I need its\npower, and otherwise use the usual <code>grep</code>.</p>\n<p>In this episode I will give you the flavour of its capabilities and\notherwise leave you to research more if it sounds interesting.</p>\n<h2 id=\"installing-ack\">Installing <code>ack</code></h2>\n<p>The tool can be found in repositories. I use Debian, and\n<code>ack</code> is in the Debian repo and can be installed with:</p>\n<pre><code>sudo apt install ack</code></pre>\n<p>Installing it this way the version I have (and am describing here) is\n3.6.0. There is a new version, 3.7.0 available from the <a\nhref=\"https://beyondgrep.com/\">website</a>.</p>\n<p>The documentation on the website suggests installing it as a Perl\nmodule using <code>CPAN</code>, which is something I will do soon I\nthink.</p>\n<h2 id=\"perl-regular-expressions\">Perl regular expressions</h2>\n<p>These are very sophisticated.</p>\n<p>A project to convert the Perl regular expression capabilities into a\nportable library form was undertaken by Philip Hazel of Cambridge\nUniversity in 1997, and was called <em>Perl Compatible Regular\nExpressions</em> or PCRE.</p>\n<p>Philip Hazel was the originator of the <code>exim</code> mail\ntransfer agent (MTA, or mail server), and wanted to use PCRE within\nit.</p>\n<p>Since then PCRE (and later PCRE2) is the way regular expressions are\nimplemented in a lot of other software, which shows how widespread use\nof the Perl RE has become.</p>\n<p>The <code>ack</code> documentation refers to the Perl manual for\ndetails of this type of regular expression, and to a tutorial, if you\nwish to gain a deeper understanding.</p>\n<p>It should be noted that GNU <code>grep</code> can use Perl compatible\nregular expressions when matching lines in files, but this feature is\nmarked as experimental.</p>\n<h2 id=\"file-types\">File types</h2>\n<p>The <code>ack</code> command has rules for recognising file types. It\ndoes this by looking at the name extensions (<code>\'.html\'</code> or\n<code>\'.py\'</code> for example), and in some cases by examining their\ncontents. The complete list of types can be found by running:</p>\n<pre><code>ack --help-types</code></pre>\n<p>… or, for a more detailed but less readable list:</p>\n<pre><code>ack --dump</code></pre>\n<p>Some examples are:</p>\n<ul>\n<li><code>cc</code> for C files</li>\n<li><code>haskell</code> for Haskell files</li>\n<li><code>lua</code> for Lua files</li>\n<li><code>python</code> for Python files</li>\n<li><code>shell</code> for Bash, and other shell command files</li>\n</ul>\n<p>These names can be used with the options <code>-t TYPE</code> and\n<code>--type=TYPE</code> and also by simply preceding them with two\ndashes (<code>--TYPE</code>). There are also ways of requesting files\nnot of a given type: <code>-T TYPE</code>, <code>--type=noTYPE</code>\nand <code>--noTYPE</code>.</p>\n<p>To check files in the current directory of type <code>shell</code> an\n<code>ack</code> command like the following might be used and the\nfollowing type of output produced:</p>\n<pre><code>$ ack --shell declare\nBash_snippet__using_coproc_with_SQLite/examples/coproc_test.sh\n11:declare -a com=(&#39;date +%F&#39; &#39;whoami&#39; &#39;id&#39; &#39;echo &quot;$BASH_VERSION&quot;&#39;</code></pre>\n<p>Note that <code>ack</code> reports the file path and numbered lines\nwithin it that match.</p>\n<p>You can add your own file types to <code>ack</code>. There is a\nconfiguration file called <code>.ackrc</code> in which new types can be\ndeclared. See below for more information.</p>\n<p>The file type feature is one that makes me use <code>ack</code> again\nand again.</p>\n<h2 id=\"the-.ackrc-file\">The <code>.ackrc</code> file</h2>\n<p>This file contains <em>“command-line options that are prepended to\nthe command line before processing”</em>.</p>\n<p>It’s a useful way to add new types (or even modify existing\nones).</p>\n<p>It can be located in a number of places. Mine is\n<code>~/.ackrc</code> with other configuration files in my home\ndirectory.</p>\n<p>It’s possible to generate a new <code>.ackrc</code> with the option\n<code>--create-ackrc</code>. This saves all the default settings in the\nfile which makes it simple to adjust anything you need to change.</p>\n<p>As an example of a change, I have Markdown files with the extension\n<code>.mkd</code>. However, by default <code>ack</code> only recognises\n<code>.md</code>, and <code>.markdown</code>. To add <code>.mkd</code>\nto the list I can add one of the following to the\n<code>.ackrc</code>:</p>\n<pre><code># Either add `.mkd` to the list\n--type-add=markdown:ext:mkd\n# or replace the list with a new one\n--type-set=markdown:ext:md,mkd,markdown</code></pre>\n<p>Note that lines beginning with <code>#</code> are comments. Note also\nthat <code>--type-add</code> and <code>--type-set</code> have to be\nfollowed by an <code>=</code> sign, not a space in this file.</p>\n<p>If you examine the settings with <code>ack --dump</code> you will see\nthe default command and the one you have added. If you use\n<code>ack --help-types</code> you will see the new extension added to\nthe default list.</p>\n<pre><code>markdown     .md .markdown; .mkd</code></pre>\n<p>If I use this to search files in the directory where I keep my HPR\nepisodes I see:</p>\n<pre><code>$ ack --markdown &#39;inner ear&#39;\nHacking_my_inner_ear/hpr2109_full_shownotes.mkd\n24:became fascinated by the structure of the human [inner ear][2], and studied it\n28:The human inner ear performs two major functions:\n.\n.\n.</code></pre>\n<h2 id=\"quick-review-of-selected-ack-options\">Quick review of selected\n<code>ack</code> options</h2>\n<h3 id=\"usage\">Usage</h3>\n<p>The <code>ack</code> command is designed to be similar in as many\nrespects as possible to <code>grep</code>. The command is used in\ngeneral as follows:</p>\n<pre><code>ack [OPTION]... PATTERN [FILES OR DIRECTORIES]</code></pre>\n<p>The <code>[OPTION]</code> part denotes any options (some discussed\nbelow) and <code>PATTERN</code> is the PCRE search pattern. There are\nsome cases where this must be omitted - such as when files of a\nparticular type are being listed. See example 1 below for such a\ncase.</p>\n<p>In some cases a particular file is being searched, or all files in\ncertain directories, and that is what\n<code>[FILES OR DIRECTORIES]</code> denotes.</p>\n<p>The full documentation for <code>ack</code> can be seen with the\nusual <code>man ack</code> command, and also using\n<code>ack --man</code>. There is also an option <code>--help</code>\nwhich gives a summary of all of the available options.</p>\n<h3 id=\"options\">Options</h3>\n<p>There are many options specific to <code>ack</code> and some in\ncommon with <code>grep</code>, and we’ll look at just a few here:</p>\n<ul>\n<li><p><code>-i</code> - like <code>grep</code> this makes the matched\npattern case insensitive.</p></li>\n<li><p><code>-f</code> - Only print the files that would be searched,\nwithout actually doing any searching. See example 1 below.</p></li>\n<li><p><code>-g</code> - Same as -f, but only select files whose names\nmatch PATTERN. This interacts with file type searches like\n<code>--html</code>, so beware.</p></li>\n<li><p><code>-l</code> - reports the file names which contain matches\nfor a given pattern</p></li>\n<li><p><code>-L</code> - reports the file names which <em>do not</em>\ncontain matches for a given pattern</p></li>\n<li><p><code>-c</code> - reports file names and the number of matches;\nused on its own it reports <em>all</em> files, those that match and\nthose that do not. If used with <code>-l</code> then you only see the\nnames of file that have matches, as well as a count of matches. See\nexample 2 below.</p></li>\n<li><p><code>-w</code> - forces the search pattern to match only whole\nwords. See example 3 below. (Note: there is an equivalent in GNU grep,\nwhich I had not checked when I recorded the audio).</p></li>\n</ul>\n<h2 id=\"examples\">Examples</h2>\n<h3 id=\"find-all-markdown-files-in-a-directory\">1. Find all Markdown\nfiles in a directory</h3>\n<p>Using the <code>-f</code> option:</p>\n<pre><code>$ ack --markdown -f Nitecore_Tube_torch/\nNitecore_Tube_torch/README.mkd\nNitecore_Tube_torch/container.mkd\nNitecore_Tube_torch/index.mkd\nNitecore_Tube_torch/shownotes.mkd</code></pre>\n<p>Using the <code>-g</code> option:</p>\n<pre><code>$ ack -g &#39;&bsol;.mkd$&#39; Nitecore_Tube_torch/\nNitecore_Tube_torch/README.mkd\nNitecore_Tube_torch/container.mkd\nNitecore_Tube_torch/index.mkd\nNitecore_Tube_torch/shownotes.mkd</code></pre>\n<h3 id=\"names-of-files-that-contain-a-match-with-a-match-count\">2. Names\nof files that contain a match, with a match count</h3>\n<p>Using the <code>-l</code> and <code>-c</code> options:</p>\n<pre><code>$ ack --markdown -lci &#39;&bsol;bear&bsol;b&#39;\nHacking_my_inner_ear/hpr2109_full_shownotes.mkd:11\nHacking_my_inner_ear/shownotes.mkd:3\nAn_overview_of_the_ack_command/shownotes.mkd:6</code></pre>\n<p>The sequence <code>\'&bsol;b\'</code> in Perl regular expressions is a\nboundary such as a word boundary. So the pattern is looking for the word\n<code>\'ear\'</code> as opposed to the characters <code>\'ear\'</code> (as\nin <code>\'pearl\'</code> for example).</p>\n<p>Note how the single-letter options <code>-l</code>, <code>-c</code>\nand <code>-i</code> can be concatenated.</p>\n<h3 id=\"searching-for-words-in-a-simpler-way\">3. Searching for words in\na simpler way</h3>\n<p>In example 2 the <code>&bsol;b</code> boundaries ensured the pattern\nmatched words rather than letter sequences. This can be simplified by\nusing the <code>-w</code> option:</p>\n<pre><code>$ ack --markdown -lci -w &#39;ear&#39;\nHacking_my_inner_ear/hpr2109_full_shownotes.mkd:11\nHacking_my_inner_ear/shownotes.mkd:3\nAn_overview_of_the_ack_command/shownotes.mkd:6</code></pre>\n<h2 id=\"links\">Links</h2>\n<ul>\n<li>The <code>ack</code> website:\n<ul>\n<li><a href=\"https://beyondgrep.com/\">ack!</a></li>\n</ul></li>\n</ul>\n<ul>\n<li>Perl regular expressions:\n<ul>\n<li><a href=\"https://perldoc.perl.org/perlreref.html\">RE reference\nmanual</a></li>\n<li><a href=\"https://perldoc.perl.org/perlretut.html\">RE\ntutorial</a></li>\n</ul></li>\n</ul>\n<ul>\n<li>PCRE: <em>Perl Compatible Regular Expressions</em>:\n<ul>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Perl_Compatible_Regular_Expressions\">Wikipedia\narticle on PCRE</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Philip_Hazel\">Wikipedia\narticle on Philip Hazel</a></li>\n</ul></li>\n</ul>\n</article>\n',225,11,1,'CC-BY-SA','search,grep,regular expression,Perl',0,0,1),
(3912,'2023-08-01','Emergency Show: Biltong and Rooibos',233,'Shane brings us a taste of South Africa with some local tea and jerky','<p><a href=\"https://en.wikipedia.org/wiki/Biltong\">Biltong</a><br />\n<small>From Wikipedia, the free encyclopedia</small></p>\n\n<p><b>Biltong</b> is a form of <a href=\"https://en.wikipedia.org/wiki/Drying_(food)\" class=\"mw-redirect\" title=\"Drying (food)\">dried</a>, <a href=\"https://en.wikipedia.org/wiki/Curing_(food_preservation)\" title=\"Curing (food preservation)\">cured</a> <a href=\"https://en.wikipedia.org/wiki/Meat\" title=\"Meat\">meat</a> which originated in <a href=\"https://en.wikipedia.org/wiki/Southern_African\" class=\"mw-redirect\" title=\"Southern African\">Southern African</a> countries (<a href=\"https://en.wikipedia.org/wiki/South_Africa\" title=\"South Africa\">South Africa</a>, <a href=\"https://en.wikipedia.org/wiki/Zimbabwe\" title=\"Zimbabwe\">Zimbabwe</a>, <a href=\"https://en.wikipedia.org/wiki/Malawi\" title=\"Malawi\">Malawi</a>, <a href=\"https://en.wikipedia.org/wiki/Namibia\" title=\"Namibia\">Namibia</a>, <a href=\"https://en.wikipedia.org/wiki/Botswana\" title=\"Botswana\">Botswana</a>, Eswatini and <a href=\"https://en.wikipedia.org/wiki/Zambia\" title=\"Zambia\">Zambia</a>). Various types of meat are used to produce it, ranging from <a href=\"https://en.wikipedia.org/wiki/Beef\" title=\"Beef\">beef</a> to <a href=\"https://en.wikipedia.org/wiki/Game_(food)\" class=\"mw-redirect\" title=\"Game (food)\">game</a> meats such as <a href=\"https://en.wikipedia.org/wiki/Ostrich\" title=\"Ostrich\">ostrich</a> or <a href=\"https://en.wikipedia.org/wiki/Kudu\" title=\"Kudu\">kudu</a>. The cut may also vary being either <a href=\"https://en.wikipedia.org/wiki/Fillet_(cut)\" title=\"Fillet (cut)\">fillets</a> of meat cut into strips following the grain of the muscle, or flat pieces sliced across the grain. It is related to beef <a href=\"https://en.wikipedia.org/wiki/Jerky\" title=\"Jerky\">jerky</a>; both are spiced, dried meats; however the typical ingredients, taste, and production processes may differ.</p><p>The word \"biltong\" is from the <a href=\"https://en.wikipedia.org/wiki/Dutch_(language)\" class=\"mw-redirect\" title=\"Dutch (language)\">Dutch</a> <span title=\"Dutch-language text\"><i lang=\"nl\">bil</i></span> (\"buttock\") and <i><span title=\"Dutch-language text\"><i lang=\"nl\">tong</i></span></i> (\"strip\" or \"tongue\").</a><p><a href=\"https://en.wikipedia.org/wiki/File:Sliced_Biltong.jpg\"><img src=\"https://upload.wikimedia.org/wikipedia/commons/thumb/9/9f/Sliced_Biltong.jpg/220px-Sliced_Biltong.jpg\" decoding=\"async\" class=\"mw-file-element\" srcset=\"//upload.wikimedia.org/wikipedia/commons/thumb/9/9f/Sliced_Biltong.jpg/330px-Sliced_Biltong.jpg 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/9/9f/Sliced_Biltong.jpg/440px-Sliced_Biltong.jpg 2x\" data-file-width=\"2421\" data-file-height=\"1715\" width=\"220\" height=\"156\"></a></p>\n\n<hr />\n\n<p><a href=\"https://en.wikipedia.org/wiki/Rooibos\">Rooibos</a><br />\n<small>From Wikipedia, the free encyclopedia</small></p>\n\n<p>\n<b>Rooibos, meaning \"red bush\")</b>, or <i><b>Aspalathus linearis</b></i>, is a\n<a href=\"https://en.wikipedia.org/wiki/Broom_(shrub)\" class=\"mw-redirect\" title=\"Broom (shrub)\">broom\n</a>-like member of the plant family\n<a href=\"https://en.wikipedia.org/wiki/Fabaceae\" title=\"Fabaceae\">Fabaceae\n</a> that grows in\n<a href=\"https://en.wikipedia.org/wiki/South_Africa\" title=\"South Africa\">South Africa\n</a>\'s\n<a href=\"https://en.wikipedia.org/wiki/Fynbos\" title=\"Fynbos\">fynbos\n</a> biome.\n\n</p>\n<p>The leaves are used to make a\n<a href=\"https://en.wikipedia.org/wiki/Herbal_tea\" title=\"Herbal tea\">herbal tea\n</a> that is called\n<b>rooibos\n</b> (especially in Southern Africa),\n<b>bush tea\n</b>,\n<b>red tea\n</b>, or\n<b>redbush tea\n</b> (predominantly in Great Britain).\n\n</p>\n<p>The tea has been popular in\n<a href=\"https://en.wikipedia.org/wiki/Southern_Africa\" title=\"Southern Africa\">Southern Africa\n</a> for generations, and since the 2000s has gained popularity internationally.\nThe tea has an earthy flavour that is similar to\n<a href=\"https://en.wikipedia.org/wiki/Yerba_mate\" title=\"Yerba mate\">yerba mate\n</a> or\n<a href=\"https://en.wikipedia.org/wiki/Tobacco\" title=\"Tobacco\">tobacco\n</a>.\n</p>\n<p>Rooibos was formerly classified as\n<i>\n<a href=\"https://en.wikipedia.org/wiki/Psoralea\" title=\"Psoralea\">Psoralea\n</a>\n</i> but is now thought to be part of\n<i>\n<a href=\"https://en.wikipedia.org/wiki/Aspalathus\" title=\"Aspalathus\">Aspalathus\n</a>\n</i> following\n<a href=\"https://en.wikipedia.org/wiki/Rolf_Dahlgren\" title=\"Rolf Dahlgren\">Dahlgren\n</a> (1980).\nThe\n<a href=\"https://en.wikipedia.org/wiki/Specific_name_(botany)\" class=\"mw-redirect\" title=\"Specific name (botany)\">specific name\n</a> of\n<i>linearis\n</i> was given by\n<a href=\"https://en.wikipedia.org/wiki/Nicolaas_Laurens_Burman\" title=\"Nicolaas Laurens Burman\">Burman\n</a> (1759)\nfor the plant\'s linear growing structure and needle-like leaves.\n\n</p>\n<p>\n<a href=\"https://en.wikipedia.org/wiki/File:Rooibos_geschnitten.jpg\" class=\"mw-file-description\">\n<img src=\"https://upload.wikimedia.org/wikipedia/commons/thumb/4/46/Rooibos_geschnitten.jpg/220px-Rooibos_geschnitten.jpg\" decoding=\"async\" class=\"mw-file-element\" srcset=\"//upload.wikimedia.org/wikipedia/commons/thumb/4/46/Rooibos_geschnitten.jpg/330px-Rooibos_geschnitten.jpg 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/4/46/Rooibos_geschnitten.jpg/440px-Rooibos_geschnitten.jpg 2x\" data-file-width=\"1920\" data-file-height=\"1280\" width=\"220\" height=\"147\">\n</a>\n</p>\n\n',250,0,0,'CC-BY-SA','South Africa,Biltong,Rooibos,Afrikaans',0,0,1),
(3913,'2023-08-02','Lurking Prion Q and A',316,'Lurking Prion answers questions about his name, former career field as an MM','<p>Add to reserve queue</p>\n<p>Lurking <a href=\"https://en.wikipedia.org/wiki/Prion\">Prion</a> answers questions about his name, former career field as an <a href=\"https://en.wikipedia.org/wiki/Machinist%27s_mate\">Machinist\'s mate</a>, and breaks down a short bio of his security path thus far.</p>\n\n',405,74,1,'CC-BY-SA','bio,backgrown,questions,mm,Machinist\'s mate',0,0,1),
(3914,'2023-08-03','how to deal with blisters',262,'a technique my father taught me, for dealing with blisters','<p>Many years ago, my father taught me how to deal with blisters using a\nneedle and thread.</p>\n',399,0,0,'CC-BY-SA','first aid',0,0,1),
(3915,'2023-08-04','Why the hell is my audio clipping?',802,'MrX has audio that is clipping but will he be able to fix it?','<p>This is an emergency show as we are short of shows. I was going to do\nthis show anyway as I noticed my audio was clipping on the last few\nshows I sent in yet I didn\'t notice it on the files I sent to HPR.</p>\n<p>In this episode I waffle a bit and read out some of the stuff on the\nHPR site about giving shows. During the recording I introduce increasing\namounts of attenuation each decrease in volume signified by a gong. I\nhope this will allow me to stop the clipping from my audio.</p>\n',201,0,1,'CC-BY-SA','audio, podcasting, Audacity',0,0,1),
(3924,'2023-08-17','Mass Quick Tips for August 2023',1549,'operat0r will never get to some of these as full eps so here you go!','<ul>\n<li><p>yakake :<br />\n<a href=\"https://hackerpublicradio.org/eps/hpr3446/index.html\"\nclass=\"uri\">https://hackerpublicradio.org/eps/hpr3446/index.html</a><br />\n<a\nhref=\"https://github.com/freeload101/SCRIPTS/blob/master/Bash/Movie2Text.sh\"\nclass=\"uri\">https://github.com/freeload101/SCRIPTS/blob/master/Bash/Movie2Text.sh</a></p></li>\n<li><p>OLD : <a\nhref=\"https://github.com/freeload101/SCRIPTS/blob/master/Bash/Stream_to_Text_with_Keywords.sh\"\nclass=\"uri\">https://github.com/freeload101/SCRIPTS/blob/master/Bash/Stream_to_Text_with_Keywords.sh</a><br />\n</p></li>\n<li><p><a href=\"https://rmccurdy.com/stuff/NLP/?C=M;O=A\"\nclass=\"uri\">https://rmccurdy.com/stuff/NLP/?C=M;O=A</a></p></li>\n<li><p><a\nhref=\"https://rmccurdy.com/.scripts/downloaded/parentingadhdandautism.com/\"\nclass=\"uri\">https://rmccurdy.com/.scripts/downloaded/parentingadhdandautism.com/</a></p></li>\n<li><p>HighContract Blk Backfround :<br />\n<a\nhref=\"https://github.com/freeload101/SCRIPTS/tree/master/AutoHotkey/High%20Contrast%20Chrome\"\nclass=\"uri\">https://github.com/freeload101/SCRIPTS/tree/master/AutoHotkey/High%20Contrast%20Chrome</a></p></li>\n<li><p>VLC Compress audio quite/LOUD\n<code>load-module module-ladspa-sink sink_name=compressor plugin=sc1_1425 label=sc1 control=5,100,-25,8,2.5,0</code>\n<a\nhref=\"https://docs.google.com/document/d/1E1xAwWpq-C4vEh8LCRw7MD7jnaclX9Faf2L3dZWiqQY/edit\"\nclass=\"uri\">https://docs.google.com/document/d/1E1xAwWpq-C4vEh8LCRw7MD7jnaclX9Faf2L3dZWiqQY/edit</a></p></li>\n<li><p>VLC .vlcrc config file and yatse custom commands:<br />\n<a\nhref=\"https://github.com/freeload101/SCRIPTS/tree/789bbf9969ae10975549ee4617a039967573c92b/MISC\"\nclass=\"uri\">https://github.com/freeload101/SCRIPTS/tree/789bbf9969ae10975549ee4617a039967573c92b/MISC</a></p></li>\n<li><p><a\nhref=\"https://kinkeadtech.com/how-to-prevent-fire-tv-stick-from-going-to-sleep/\"\nclass=\"uri\">https://kinkeadtech.com/how-to-prevent-fire-tv-stick-from-going-to-sleep/</a>\n/ ads sleep mode</p></li>\n<li><p>Sponsorblock for Android:<br />\n<a\nhref=\"https://www.youtube.com/watch?v=JKUmM9r63F8&amp;feature=youtu.be\"\nclass=\"uri\">https://www.youtube.com/watch?v=JKUmM9r63F8&amp;feature=youtu.be</a></p></li>\n</ul>\n',36,0,1,'CC-BY-SA','hacking,computers,Android,quick tips',0,0,1),
(3917,'2023-08-08','Response to \"Permission Tickets\" by oneofspoons',408,'Hopefully a useful provocation, in response to a recent intriguing show by another HPR host','<p>A response show to oneofspoons\' <a\nhref=\"https://hackerpublicradio.org/eps/hpr3909/index.html\">hpr3909 ::\nPermission Tickets\"</a>.</p>\n<p>Reference: <a\nhref=\"https://harpersmagazine.substack.com/p/the-writers-strike-or-the-writers#details\">Harper\'s\nPodcast -The Writers&#x2019; Strike, or: the Writers Strike</a></p>\n',399,0,0,'CC-BY-SA','crypto',0,0,1),
(3925,'2023-08-18','Uncommon tools and social media',329,'Daniel Persson talks about some of the tools he uses for video production and social media','<p>Before I used common tools and Windows, I was present on Facebook and\nso on. But I\'ve changed and I don\'t think the difference is that\nlarge.</p>\n',382,0,0,'CC-BY-SA','social media, linux',0,0,1),
(3919,'2023-08-10','How I hacked my voice',959,'Tuula talks about what she\'s doing to change her voice','<p>Resource mentioned in the episode: <a\nhref=\"https://www.youtube.com/@TransVoiceLessons\"\nclass=\"uri\">https://www.youtube.com/@TransVoiceLessons</a></p>\n',364,0,0,'CC-BY-SA','voice, trans',0,0,1),
(3922,'2023-08-15','Silent Key',241,'A brief history of the term \"Silent Key\" as applied to amateur radio','<p>Hacker Public Radio &#x2013; Silent Key HPR3922</p>\n<p>Hello this is Trey, and I am recording this in the shadow of the loss\nof a good friend and mentor who helped guide me in my career and in\nhobbies like electronics, aviation, and amateur radio. The amateur radio\narea is what I will be discussing today.</p>\n<p>Many terms within amateur radio find their origins from the days of\ntelegraph, when operators would use Morse code to send messages across\ngreat distances using wires strung from pole to pole. The telegraph\n&#x201C;key&#x201D; (or code key) was basically a momentary contact switch which would\nclose an electrical connection when pressed. Pressing the key down for a\nshort period of time would send a short pulse down the line, which is\nreferred to as a &#x201C;dit&#x201D; (Sometimes the term &#x201C;dot&#x201D; is used). This may be\nwritten using the period &#x201C;.&#x201D; symbol. Holding the key down for a bit\nlonger would send a longer pulse down the line, called a &#x201C;dash&#x201D;\n(Sometimes the term &#x201C;dah&#x201D; is used) and it may be written using the\nhyphen &#x201C;-&#x201D; symbol.</p>\n<p>Telegraph operators became a close knit community, even though they\nwere geographically separated. Often one operator could identify another\noperator by subtleties in the style or personality of how they sent\ntheir messages. This was known as the operator&#x2019;s &#x201C;fist&#x201D; and today we\nwould describe it as a &#x201C;behavioral biometric&#x201D;. As the community of\ntelegraph operators moved around or were replaced, new &#x201C;fists&#x201D; would be\nidentified, as new personalities of code sending were tapped out on the\ntelegraph keys.</p>\n<p>When an operator passed away, it was a loss to the community, and a\nloss of someone who might have been befriended remotely by other\noperators. The term of respect created for this situation was &#x201C;Silent\nKey&#x201D; sent as the abbreviation &#x201C;SK&#x201D; ( &#x2026; -.- ). It meant that the\nparticular operator would never send code again. His telegraph key would\nbe silent.</p>\n<p>This tradition has been carried on among amateur radio operators or\n&#x201C;Hams&#x201D;. This is also a close knit community of people. While some still\nuse Morse code to communicate (Referred to as &#x201C;CW&#x201D; for continuous wave),\nthere are many other forms in use, including voice and digital modes.\nBut regardless of how we communicated with them, when we lose one of our\nown, we still say they are SK. Silent key. No longer able to\ntransmit.</p>\n<p>Organizations like the American Radio Relay League (ARRL) and QRZ.com\ntry to update their records when a Ham passes away. There are also\ndatabases like silentkeyhq.com which keep records and memories of\ndeceased operators.</p>\n<p>So, it is with great sadness that I have been updating the records\nfor my close friend and mentor KV4YD. Thank you for your friendship and\nsupport, and for sharing your wisdom over the years. You will be\nmissed.</p>\n<p><a\nhref=\"https://www.silentkeyhq.com/main.php?p=bin/NSKALookup.php&amp;call=KF8F&amp;uid=1111688122977783\"\nclass=\"uri\">https://www.silentkeyhq.com/main.php?p=bin/NSKALookup.php&amp;call=KF8F&amp;uid=1111688122977783</a></p>\n<p>(Note: There is intentionally 5 seconds of recorded silence at the\nend of this recording as a moment of silence to remember our silent\nkeys)</p>\n<p>KV4YD 73 VA E E</p>\n',394,43,0,'CC-BY-SA','morse code, cw, amateur radio, telegraph, memorial',0,0,1),
(3923,'2023-08-16','Meal preparation.',2488,'Sgoti chats with Bumble Bee about meal preparation.','<h2 id=\"meal-preparation-with-bumble-bee.\">Meal preparation with Bumble\nBee.</h2>\n<ul>\n<li><strong>Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Meal_preparation\">Meal\npreparation</a><br />\n\n<ul>\n<li>Meal preparation involves preparing meals ahead of time for a short\nor period of time. This practice may occur among people who desire to\nlose weight, gain muscle mass, or maintain a healthy lifestyle. Advance\npreparation can serve to standardize food portions. Meals preparation\nare fully cooked. Meals may be prepared in small containers such as\nTupperware, and are sometimes labeled and dated to remain\norganized.<br />\n</li>\n</ul></li>\n<li><strong>Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Onion\">Onions</a><br />\n\n<ul>\n<li>Freshly cut onions often cause a stinging sensation in the eyes of\npeople nearby, and often uncontrollable tears. This is caused by the\nrelease of a volatile liquid, syn-propanethial-S-oxide and its aerosol,\nwhich stimulates nerves in the eye. This gas is produced by a chain of\nreactions which serve as a defence mechanism: chopping an onion causes\ndamage to cells which releases enzymes called alliinases. These break\ndown amino acid sulfoxides and generate sulfenic acids. A specific\nsulfenic acid, 1-propenesulfenic acid, is rapidly acted on by a second\nenzyme, the lacrimatory factor synthase (LFS), producing the\nsyn-propanethial-S-oxide. This gas diffuses through the air and soon\nreaches the eyes, where it activates sensory neurons. Lacrimal glands\nproduce tears to dilute and flush out the irritant.<br />\n</li>\n<li>Cooking onions and sweet onions are better stored at room\ntemperature, optimally in a single layer, in large mesh bags in a dry,\ncool, dark, well-ventilated location. In this environment, cooking\nonions have a shelf life of three to four weeks and sweet onions one to\ntwo weeks. Cooking onions will absorb odours from apples and pears.\nAlso, they draw moisture from vegetables with which they are stored\nwhich may cause them to decay.<br />\n</li>\n<li>Sweet onions have a greater water and sugar content than cooking\nonions. This makes them sweeter and milder tasting, but reduces their\nshelf life. Sweet onions can be stored refrigerated; they have a shelf\nlife of around 1 month. Irrespective of type, any cut pieces of onion\nare best tightly wrapped, stored away from other produce, and used\nwithin two to three days.<br />\n</li>\n</ul></li>\n<li><strong>Source:</strong> <a\nhref=\"https://www.momswhothink.com/what-are-dump-dinners-and-which-recipes-are-easiest/\">What\nAre Dump Dinners, And Which Recipes Are Easiest?</a><br />\n</li>\n<li><strong>Source:</strong> <a\nhref=\"https://www.tasteofhome.com/collection/slow-cooker-dump-dinners/\">55\nDump Dinners for Your Slow Cooker</a><br />\n</li>\n<li><strong>Source:</strong> <a\nhref=\"https://www.pinterest.com/\">Pinterest</a><br />\n</li>\n<li><strong>Source:</strong> <a\nhref=\"https://www.amazon.com/mug-warmer/s?k=mug+and+warmer\">Mug\nwarmers.</a><br />\n</li>\n</ul>\n<p>This work is licensed under a <a\nhref=\"https://creativecommons.org/licenses/by-sa/4.0/\"\ntitle=\"CC-BY-SA 4.0 International\">Creative Commons\nAttribution-ShareAlike 4.0 International License</a>.</p>\n',391,0,0,'CC-BY-SA','Bumble Bee, Meal Prep',0,0,1),
(3933,'2023-08-30','Planning for a planner.',2852,'Sgoti and Bumble Bee discuss discbound planners, agendas, ink pens and more.','<h2 id=\"discbound-planners-and-notebooks.\">Discbound Planners and\nNotebooks.</h2>\n<ul>\n<li><strong>Source:</strong> <a\nhref=\"https://www.staples.com/discbound+notebook/directory_discbound%2520notebook\">Staples.com\ndiscbound notebook search</a><br />\n</li>\n<li><strong>Supporting Source:</strong> <a\nhref=\"https://www.staples.com/Staples-Arc-Customizable-Leather-Notebook-System-Black-6-3-4-x-8-3-4-Each-20000/product_886234\">Staples\nArc Customizable Notebook, 6-3/4\" x 8-3/4\", 60 Sheets, Narrow Ruled,\nBlack</a><br />\n</li>\n<li><strong>Source:</strong> <a\nhref=\"https://thehappyplanner.com/\">Happy Planner.</a><br />\n</li>\n<li><strong>Source:</strong> <a\nhref=\"https://www.joann.com/search/?q=planners&amp;lang=default\">JoAnn</a><br />\n</li>\n</ul>\n<p>Don\'t listen to Bumble Bee, the caps are what you want; get the one\nwith the cap.<br />\nAlso these are the fat boys, they are 1.0 mm, not 0.7mm.<br />\n- <strong>Source:</strong> <a\nhref=\"https://www.walmart.com/ip/BIC-Round-Stic-Xtra-Life-Ballpoint-Pens-Medium-Point-1-0mm-60-Count-Black-Pens/14914643?athbdg=L1102\">BIC\nRound Stic Xtra Life Ballpoint Pens, Medium Point (1.0mm), 60 Count,\nBlack Pens</a><br />\n- <strong>Source:</strong> <a\nhref=\"https://www.walmart.com/ip/BIC-Round-Stic-Xtra-Life-Ballpoint-Pens-Medium-Point-1-0mm-Blue-60-Count/14972251?athbdg=L1102\">BIC\nRound Stic Xtra Life Ballpoint Pens, Medium Point (1.0mm), Blue, 60\nCount</a><br />\n</p>\n<p>These feel so good in the hand but they have high dry times; just not\nworth it.<br />\n- <strong>Source:</strong> <a\nhref=\"https://www.walmart.com/ip/uni-ball-Signo-Gel-207-Retractable-Roller-Ball-Pen-Medium-Point-Translucent-Barrel-Black-Ink-12-Pack-33950/193383509\">uni-ball\nSigno Gel 207 Retractable Roller Ball Pen, Medium Point, Translucent\nBarrel, Black Ink, 12-Pack (33950)</a><br />\n</p>\n<p>I use these for drawing lines. Dry times are not bad, but there is a\ndry time.<br />\n- <strong>Source:</strong> <a\nhref=\"https://www.walmart.com/ip/uni-ball-Roller-Ball-Stick-Dye-Based-Pen-Micro-Point-0-5-mm-498774/39250950\">uni-ball\nRoller Ball Stick Dye-Based Pen Micro Point 0.5 mm 498774</a><br />\n- <strong>Source:</strong> <a\nhref=\"https://www.walmart.com/ip/Uni-Ball-SAN60101-Classic-Rollerball-Pens/15066664?athcpid=15066664&amp;athpgid=AthenaItempage&amp;athcgid=null&amp;athznid=si&amp;athieid=v0_eeMjAuMCw5ODAuMCwwLjAyMjI3OTk4OTAwMjgwOTQ1NCwwLjVf&amp;athstid=CS055&amp;athguid=r3SSXQ4jq9E5eaSeRk1eXSeM7L7VDd4--1ZS&amp;athancid=39250950&amp;athposb=0&amp;athena=true\">Uni-Ball,\nSAN60101, Classic Rollerball Pens</a><br />\n</p>\n<p>Color pack, because why not!<br />\n- <strong>Source:</strong> <a\nhref=\"https://www.walmart.com/ip/BIC-Cristal-Xtra-Bold-Ball-Point-Pens-Bold-Point-1-6mm-Assorted-Colors-24-Count/27932641?athbdg=L1103\">BIC\nCristal Xtra Bold Ball Point Pens, Bold Point (1.6mm), Assorted Colors,\n24-Count</a><br />\n</p>\n<p>This work is licensed under a <a\nhref=\"https://creativecommons.org/licenses/by-sa/4.0/\"\ntitle=\"CC-BY-SA 4.0 International\">Creative Commons\nAttribution-ShareAlike 4.0 International License</a>.</p>\n',391,0,0,'CC-BY-SA','Discbound, Notebooks, Planners, Happy Planner, Ink Pens.',0,0,1),
(3935,'2023-09-01','Server build retrospective',586,'Daniel Persson goes through his experience of building his first server','<p>I have a lot of smaller PC\'s running as servers at home but now I\nfinally bought my first server chassis to install a real server in my\nrack. I ran into a lot of complications and that\'s covered in this\nepisode.</p>\n',382,0,0,'CC-BY-SA','server, hardware, rack',0,0,1),
(3945,'2023-09-15','My chrome plugins',271,'Daniel Persson summarize the essential plugins he uses every day','<p>We all use plugins in order to facilitate our work this is my\nfavorite picks.</p>\n',382,0,0,'CC-BY-SA','chrome, plugins',0,0,1),
(3955,'2023-09-29','airgradient measurement station',356,'Daniel Persson talks about a hardware measurement station he\'s installed','<p>AirGradient is an open-source solution to measure the air in your\nliving area. In my case, I need to keep track of the air in my office,\nso I have a healthy working environment.</p>\n',382,0,0,'CC-BY-SA','airgradient, measurement, air quality',0,0,1),
(3965,'2023-10-13','I\'ve taken the Conqueror Virtual Challenge',285,'Daniel Persson talks about a service where you challenge yourself for better health','<p>This service will help you keep track of your walks and incentivize\nyou to walk more and stay healthy.</p>\n',382,0,0,'CC-BY-SA','challenge, walk',0,0,1),
(3934,'2023-08-31','Crusader Kings II',2292,'Tuula rambles about her all time favourite strategy game Crusader Kings II','<h2 id=\"crusader-kings-ii\">Crusader Kings II</h2>\n<p>Crusader Kings II is a dynasty simulator, where your goal is to guide\nyour dynasty through the middle ages. It\'s very large game and this\nepisode can only scratch the surface.</p>\n<p>You\'re a ruler of some kind, like count, duchess, king or empress to\nname a few. You need to manage vassals in your realm and keep your\nneighbours at bay. When you\'re not busy with that, you can relax and go\nhunting, build an observatory or join a secret society (to name just a\nfew).</p>\n<p>Couple first games will be overwhelming, but it\'ll get easier when\nyou start realizing how things affect to each other and what kinds of\nthings you can do.</p>\n<p>If you\'re interested to learn more, have a look at the wiki: <a\nhref=\"https://ck2.paradoxwikis.com/Crusader_Kings_II_Wiki\"\nclass=\"uri\">https://ck2.paradoxwikis.com/Crusader_Kings_II_Wiki</a></p>\n',364,122,0,'CC-BY-SA','Crusader Kings, Paradox',0,0,1),
(3942,'2023-09-12','RE: How to make friends.',763,'Sgoti replies to Klaatu\'s show, \"How to make friends.\"','<h2 id=\"re-how-to-make-friends.\">RE: How to make friends.</h2>\n<ul>\n<li><p><strong>Source:</strong> <a\nhref=\"https://hackerpublicradio.org/eps/hpr3904/index.html\">hpr3904 ::\nHow to make friends</a><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Friendship\">Friendship</a><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Interpersonal_relationship\">Interpersonal\nrelationship</a><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Affection\">Affection</a><br />\n</p></li>\n</ul>\n',391,0,0,'CC-BY-SA','Friends, reply show',0,0,1),
(3946,'2023-09-18','Planning for a planner, part 02.',2168,'Sgoti and Bumble Bee discuss discbound planners, agendas, ink pens and more.','<h2 id=\"discbound-planners-and-notebooks.\">Discbound Planners and\nNotebooks.</h2>\n<ul>\n<li><p><strong>Source:</strong> <a\nhref=\"https://www.staples.com/discbound+notebook/directory_discbound%2520notebook\">Staples.com\ndiscbound notebook search</a><br />\n</p></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://www.staples.com/Staples-Arc-Customizable-Leather-Notebook-System-Black-6-3-4-x-8-3-4-Each-20000/product_886234\">Staples\narc customizable notebook, 6.3/4in x 8.3/4in, 60 sheets, narrow ruled,\nblack</a><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://thehappyplanner.com/\">Happy Planner.</a><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://www.joann.com/search/?q=planners&amp;lang=default\">JoAnn</a><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://www.staples.com/post-it-transparent-notes-2-7-8-x-2-7-8-clear-36-sheets-pad-600-trspt/product_24471514\">Transparent\nnotes, 36 sheets/pad, 1 pad/pack $5.19.</a><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://www.amazon.com/Discbound-Notebook-Envelope-Supplies-Organizer/dp/B0BNDDFRPS/ref=sr_1_15?keywords=Disc+bound+notebook&amp;qid=1690948654&amp;sr=8-15\">6\npack discbound pocket letter size envelope organizer</a><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://www.amazon.com/ZGMJ-Discbound-Pre-punched-100Sheets-Loose-Leaf/dp/B0BDVQWDKF/ref=sr_1_2?crid=BLOS1P737715&amp;keywords=planner+paper+7+x+9.25&amp;qid=1690948924&amp;s=office-products&amp;sprefix=planner+paper+7+x+9.25%2Coffice-products%2C78&amp;sr=1-2\">Zgmj\nclassic size discbound lined refill paper, happy planner inserts,\n100sheets/200pages loose-leaf paper, 100gsm white paper, 7x9.25\nin</a><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://www.amazon.com/Classic-Discbound-Pre-punched-200Sheets-400Pages/dp/B0BW9LLHTW/ref=sr_1_9?crid=BLOS1P737715&amp;keywords=planner%2Bpaper%2B7%2Bx%2B9.25&amp;qid=1690949003&amp;s=office-products&amp;sprefix=planner%2Bpaper%2B7%2Bx%2B9.25%2Coffice-products%2C78&amp;sr=1-9&amp;th=1\">Classic\nsize discbound daily planner refill paper, happy planners insert,\n200sheets/400pages to do list planner refill, 100gsm white paper, 7x9.25\nin</a><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://www.amazon.com/Discbound-Undated-Planner-Pre-Punched-Scheduling/dp/B0C1QRMZXP/ref=sr_1_30?crid=BLOS1P737715&amp;keywords=planner%2Bpaper%2B7%2Bx%2B9.25&amp;qid=1690949044&amp;s=office-products&amp;sprefix=planner%2Bpaper%2B7%2Bx%2B9.25%2Coffice-products%2C78&amp;sr=1-30&amp;th=1\">Discbound\nundated daily plan paper refill, 120 gsm, 80 sheets, happy planner 9\ndisc pre-punched inserts, 7x9.25 inch, daily to-do, notes, and\nscheduling</a><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://www.etsy.com/listing/824849113/leather-personalized-discbound-planner?ga_order=most_relevant&amp;ga_search_type=all&amp;ga_view_type=gallery&amp;ga_search_query=discbound+notebook&amp;ref=sr_gallery-1-17&amp;pro=1&amp;sts=1&amp;organic_search_click=1\">Leather\npersonalized discbound planner cover</a><br />\n</p></li>\n</ul>\n<p>This work is licensed under a <a\nhref=\"https://creativecommons.org/licenses/by-sa/4.0/\"\ntitle=\"CC-BY-SA 4.0 International\">Creative Commons\nAttribution-ShareAlike 4.0 International License</a>.</p>\n',391,0,0,'CC-BY-SA','Discbound, Notebooks, Planners, Happy Planner, Ink Pens.',0,0,1),
(3957,'2023-10-03','The Oh No! News.',2201,'Sgoti talks about investment and recovery scams.','<h2 id=\"the-oh-no-news.\">The <em>Oh No!</em> news.</h2>\n<h2 id=\"oh-no-news-is-good-news.\"><em>Oh No!</em> News is Good\nNews.</h2>\n<ul>\n<li><strong>TAGS:</strong> User space, investment scams, recovery\nscams</li>\n</ul>\n<hr />\n<h3 id=\"user-space.\"><strong>User space.</strong></h3>\n<ul>\n<li><p><strong>Source:</strong> <a\nhref=\"https://consumer.ftc.gov/scams\">Avoiding and Reporting\nScams.</a><br />\n</p></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://consumer.ftc.gov/articles/refund-and-recovery-scams\">Refund\nand Recovery Scams.</a><br />\n</p></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://consumer.ftc.gov/scams?items_per_page=20&amp;search=investment&amp;field_cfg_scams_target_id%5B2236%5D=2236\">Investment\nopportunity scams.</a><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://www.reddit.com/r/Scams/\">Reddit Community:\nr/Scams</a><br />\n</p></li>\n</ul>\n<hr />\n<ul>\n<li><strong>Additional Information.</strong>\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Data_breach\"\ntitle=\"From Wikipedia, the free encyclopedia.\">What is a \"Data\nBreach\"?</a> A data breach is a security violation, in which sensitive,\nprotected or confidential data is copied, transmitted, viewed, stolen,\naltered or used by an individual unauthorized to do so.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Malware\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is \"Malware\"?</a>\nMalware (a <a href=\"https://en.wikipedia.org/wiki/Portmanteau\"\ntitle=\"From Wikipedia, the free encyclopedia\">portmanteau</a> for\nmalicious software) is any software intentionally designed to cause\ndisruption to a computer, server, client, or computer network, leak\nprivate information, gain unauthorized access to information or systems,\ndeprive access to information, or which unknowingly interferes with the\nuser\'s computer security and privacy.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Payload_(computing)\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is a \"Payload\"?</a>\nIn the context of a computer virus or worm, the payload is the portion\nof the malware which performs malicious action; deleting data, sending\nspam or encrypting data. In addition to the payload, such malware also\ntypically has overhead code aimed at simply spreading itself, or\navoiding detection.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Phishing\"\ntitle=\"From Wikipedia, the free encyclopedia.\">What is \"Phishing\"?</a>\nPhishing is a form of <a\nhref=\"https://en.wikipedia.org/wiki/Social_engineering_(security)\"\ntitle=\"From Wikipedia, the free encyclopedia\">social engineering</a>\nwhere attackers deceive people into revealing sensitive information or\ninstalling malware such as <a\nhref=\"https://en.wikipedia.org/wiki/Ransomware\"\ntitle=\"From Wikipedia, the free encyclopedia\">ransomware</a>. Phishing\nattacks have become increasingly sophisticated and often transparently\nmirror the site being targeted, allowing the attacker to observe\neverything while the victim is navigating the site, and transverse any\nadditional security boundaries with the victim.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Social_engineering_(security)\">Social\nengineering (security)</a> In the context of information security,\nsocial engineering is the <a\nhref=\"https://en.wikipedia.org/wiki/Psychological_manipulation\">psychological\nmanipulation</a> of people into performing actions or divulging\nconfidential information. A type of confidence trick for the purpose of\ninformation gathering, fraud, or system access, it differs from a\ntraditional \"con\" in that it is often one of many steps in a more\ncomplex fraud scheme.<br />\n</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Information_security\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is \"Information\nSecurity\" (InfoSec)?</a> Information security, sometimes shortened to\nInfoSec, is the practice of protecting information by mitigating <a\nhref=\"https://en.wikipedia.org/wiki/Information\"\ntitle=\"From Wikipedia, the free encyclopedia\">information</a> risks. It\nis part of <a\nhref=\"https://en.wikipedia.org/wiki/Risk_management_information_systems\"\ntitle=\"From Wikipedia, the free encyclopedia\">information risk\nmanagement</a>.\n<ul>\n<li><strong>Information Security Attributes:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Confidentiality\"\ntitle=\"From Wikipedia, the free encyclopedia\">Confidentiality</a>, <a\nhref=\"https://en.wikipedia.org/wiki/Data_integrity\"\ntitle=\"From Wikipedia, the free encyclopedia\">Integrity</a> and <a\nhref=\"https://en.wikipedia.org/wiki/Availability\"\ntitle=\"From Wikipedia, the free encyclopedia\">Availability</a> (C.I.A.).\nInformation Systems are composed in three main portions, hardware,\nsoftware and communications with the purpose to help identify and apply\ninformation security industry standards, as mechanisms of protection and\nprevention, at three levels or layers: physical, personal and\norganizational. Essentially, procedures or policies are implemented to\ntell administrators, users and operators how to use products to ensure\ninformation security within the organizations.</li>\n</ul></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Risk_management\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is \"Risk\nmanagement\"?</a> Risk management is the identification, evaluation, and\nprioritization of risks followed by coordinated and economical\napplication of resources to minimize, monitor, and control the\nprobability or impact of unfortunate events or to maximize the\nrealization of opportunities.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Vulnerability_(computing)\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is a \"Vulnerability\"\n(computing)?</a> Vulnerabilities are flaws in a computer system that\nweaken the overall security of the device/system. Vulnerabilities can be\nweaknesses in either the hardware itself, or the software that runs on\nthe hardware.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Attack_surface\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is an \"Attack\nSurface\"?</a> The attack surface of a software environment is the sum of\nthe different points (for \"attack vectors\") where an unauthorized user\n(the \"attacker\") can try to enter data to or extract data from an\nenvironment. Keeping the attack surface as small as possible is a basic\nsecurity measure.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Attack_vector\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is an \"Attack\nVector\"?</a> In computer security, an attack vector is a specific path,\nmethod, or scenario that can be exploited to break into an IT system,\nthus compromising its security. The term was derived from the\ncorresponding notion of vector in biology. An attack vector may be\nexploited manually, automatically, or through a combination of manual\nand automatic activity.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Standardization\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is\n\"Standardization\"?</a> Standardization is the process of implementing\nand developing technical standards based on the consensus of different\nparties that include firms, users, interest groups, standards\norganizations and governments. Standardization can help maximize\ncompatibility, interoperability, safety, repeatability, or quality. It\ncan also facilitate a normalization of formerly custom processes.\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/List_of_computer_standards\"\ntitle=\"From Wikipedia, the free encyclopedia\">List of computer\nstandards.</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/List_of_technical_standard_organizations\"\ntitle=\"From Wikipedia, the free encyclopedia\">List of technical standard\norganizations.</a></li>\n</ul></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Replay_attack\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is a \"Replay\nattack\"?</a> A replay attack is a form of network attack in which valid\ndata transmission is maliciously or fraudulently repeated or delayed.\nAnother way of describing such an attack is: \"an attack on a security\nprotocol using a replay of messages from a different context into the\nintended (or original and expected) context, thereby fooling the honest\nparticipant(s) into thinking they have successfully completed the\nprotocol run.\"</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Man-in-the-middle_attack\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is a\n\"Man-in-the-middle attack\"?</a> In cryptography and computer security, a\nman-in-the-middle, ..., attack is a cyberattack where the attacker\nsecretly relays and possibly alters the communications between two\nparties who believe that they are directly communicating with each\nother, as the attacker has inserted themselves between the two\nparties.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Transport_Layer_Security\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is \"Transport Layer\nSecurity\" (TLS)?</a> Transport Layer Security (TLS) is a cryptographic\nprotocol designed to provide communications security over a computer\nnetwork. The protocol is widely used in applications such as email,\ninstant messaging, and voice over IP, but its use in securing HTTPS\nremains the most publicly visible.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Handshake_(computing)\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is a \"Handshake\"\n(computing)?</a>. In computing, a handshake is a signal between two\ndevices or programs, used to, e.g., authenticate, coordinate. An example\nis the handshaking between a hypervisor and an application in a guest\nvirtual machine.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Security_theater\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is Security\ntheater?</a> The practice of taking security measures that are\nconsidered to provide the feeling of improved security while doing\nlittle or nothing to achieve it.<br />\n</li>\n</ul></li>\n</ul>\n<hr />\n<ul>\n<li><strong>License:</strong> <a\nhref=\"https://creativecommons.org/licenses/by-sa/4.0/legalcode\">Creative\nCommons Attribution-ShareAlike 4.0 International</a>\n<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-sa/4.0/\"><img alt=\"Creative Commons License\" style=\"border-width:0\" src=\"https://i.creativecommons.org/l/by-sa/4.0/88x31.png\" /></a><br />This\nwork is licensed under a\n<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-sa/4.0/\">Creative\nCommons Attribution-ShareAlike 4.0 International License</a>.</li>\n</ul>\n',391,74,0,'CC-BY-SA','User space, investment scams, recovery scams',0,0,1),
(3926,'2023-08-21','Karate Do: An Overview',2706,'Hipernike talks about Karate, its meaning and some of the things he has learnt','<p>Sorry for my English, I\'m still improving it, and specially for\nconfusing kicks with hand strikes.</p>\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Gichin_Funakoshi\">Gichin\nFunakoshi</a>: The father of modern karate and the founder of Shotokan\nstyle\n<ul>\n<li>Book Karate-Do Kyohan</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Nij%C5%AB_kun\">Nij&#x16B; kun</a>:\nHis 20 precepts</li>\n</ul></li>\n<li>In Karate your main enemy is yourself</li>\n<li>Three pillars of Karate:\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Karate_kata\">Kata</a>: Series\nof movements that symbolize a combat</li>\n<li>In Shotokan Style, there are 27 kata practiced</li>\n<li>Kihon: Practice of the basic techniques</li>\n<li>Kumite: Combat</li>\n</ul></li>\n<li>Dashi (Stances)</li>\n<li><a href=\"https://en.wikipedia.org/wiki/D%C5%8Dj%C5%8D_kun\">D&#x14D;j&#x14D;\nkun</a>: Training hall rules</li>\n<li><a href=\"https://thekarateblog.com/karate-belt-order\">Karate belt\norder</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Sensei\">Sensei</a>: \"One who\ncomes before\"</li>\n<li>Four main Karate styles\n<ul>\n<li>Goju-ryu, Shotokan-ryu, Wado-ryu, and Shito-ryu</li>\n</ul></li>\n<li><a href=\"https://www.youtube.com/watch?v=SFxfnjBYmv8\">Taikyoku\nShodan</a></li>\n<li><a href=\"https://www.youtube.com/watch?v=Jkv8Ks_fEqk\">Kanku\nDai</a></li>\n<li><a href=\"https://www.youtube.com/watch?v=tXPZFarJMh0\">Bassai\nDai</a></li>\n<li><a href=\"https://www.youtube.com/watch?v=DOfMJtZqn0U\">Tekki Shodan\nperformed by Gichin Funakoshi</a></li>\n<li><a href=\"https://youtu.be/rXk-rYwcYno\">The Last Samurai: No mind\nscene</a>\n<ul>\n<li><a href=\"https://youtu.be/aX97OF1p4nU\">And another scene</a></li>\n</ul></li>\n<li>The outcome of a battle depends on how one handles emptiness and\nfullness (Gichin Funakoshi, Nij&#x16B; kun)</li>\n<li>Defense techniques\n<ul>\n<li>Age uke</li>\n<li>Soto uke</li>\n<li>Uchi uke</li>\n<li>Shuto uke</li>\n</ul></li>\n<li>Attack techniques\n<ul>\n<li>Empi uchi</li>\n<li>Uraken uchi</li>\n<li>Shuto uchi</li>\n<li>Kentsui uchi (hammer strike with your fist)</li>\n</ul></li>\n</ul>\n',410,0,0,'CC-BY-SA','karate, martial arts, sports',0,0,1),
(3961,'2023-10-09','RERE: How to make friends.',2495,'Sgoti and Mugs Up chat about, \"How to make friends womans edition\".','<h2 id=\"rere-how-to-make-friends.\">RERE: How to make friends.</h2>\n<ul>\n<li><p><strong>Source:</strong> <a\nhref=\"https://hackerpublicradio.org/eps/hpr3904/index.html\">hpr3904 ::\nHow to make friends</a><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://hackerpublicradio.org/eps/hpr3942/index.html\">hpr3942 ::\nRE: How to make friends.</a><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Friendship\">Friendship</a><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Interpersonal_relationship\">Interpersonal\nrelationship</a><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Affection\">Affection</a><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Blood_brother\">Blood\nbrother.</a><br />\n</p></li>\n</ul>\n<p>I thought this was funny: <a\nhref=\"https://www.wikihow.com/Ask-a-Friend-to-Hang-Out\">How to Ask a\nFriend to Hang Out.</a></p>\n',391,0,1,'CC-BY-SA','Make friends, Mugsup, Klaatu',0,0,1),
(3927,'2023-08-22','Audacity Update 20230702',372,'RESERVE SHOW. Audacity has been having problems lately.','<p>Audacity seems to have developed some sensitivity problems of late\nand that has affected my ability to process my podcast files as\nexplained in HPR 3900. I have found some evidence that the Audacity team\nis aware of this, but for now this is how I work around the problem.</p>\n<h2 id=\"links\">Links</h2>\n<ul>\n<li><a href=\"https://hackerpublicradio.org/eps/hpr3900/index.html\"\nclass=\"uri\">https://hackerpublicradio.org/eps/hpr3900/index.html</a></li>\n<li><a\nhref=\"https://www.palain.com/miscellaneous-technical-notes/preparing-podcasts-for-listening/\"\nclass=\"uri\">https://www.palain.com/miscellaneous-technical-notes/preparing-podcasts-for-listening/</a></li>\n<li><a href=\"https://convertio.co/\"\nclass=\"uri\">https://convertio.co/</a></li>\n<li><a href=\"https://online-audio-converter.com/\"\nclass=\"uri\">https://online-audio-converter.com/</a></li>\n</ul>\n',198,0,0,'CC-BY-SA','Audacity, MP3, transcoding',0,0,1),
(3928,'2023-08-23','RE: Klaatu.',1467,'Sgoti confuses everyone with bash nonsense.','<p>HPR Shows by Klaatu.</p>\n<ul>\n<li><strong>Source:</strong> <a\nhref=\"https://hackerpublicradio.org/eps/hpr3887/index.html\">hpr3887 ::\n10 must-know commands for a new cloud admin.</a></li>\n<li><strong>Source:</strong> <a\nhref=\"https://hackerpublicradio.org/eps/hpr3882/index.html\">hpr3882 ::\nAlternatives to the cd command.</a></li>\n</ul>\n<p>Hot sauce lady.</p>\n<ul>\n<li><strong>Source:</strong> <a\nhref=\"https://www.youtube.com/watch?v=BpX_qT7Vefk\">Franks Red Hot Queen\n2011.</a></li>\n</ul>\n<pre><code>pwd &amp;&amp; ls --group-directories-first --classify --almost-all\n\n# some more ls aliases\nalias la=&#39;ls -l --human-readable --group-directories-first --classify --almost-all&#39;\nalias ll=&#39;ls --group-directories-first --classify --almost-all&#39;\nalias lr=&#39;ls -l --human-readable --group-directories-first --classify --recursive&#39;\nalias lar=&#39;ls -l --human-readable --group-directories-first --classify --almost-all --recursive&#39;\nalias lap=&#39;ls -l --human-readable --group-directories-first --classify --almost-all | less&#39;\n\n# safety first ;)\nalias rmi=&#39;rm --interactive --verbose&#39;\nalias mvi=&#39;mv --interactive --verbose&#39;\nalias cpi=&#39;cp --interactive --verbose&#39;\nalias .shred=&#39;bleachbit --shred&#39;\n\n# cd multi dir\nalias ..=&#39;cd ..;&#39;\nalias .2=&#39;cd ../..;&#39;\nalias .3=&#39;cd ../../..;&#39;\nalias .4=&#39;cd ../../../..;&#39;\nalias .5=&#39;cd ../../../../..;&#39;\n\n# Directory controls.\nfunction cd () {\nclear;\nbuiltin cd &quot;$@&quot; &amp;&amp; ls --group-directories-first --classify --almost-all;\n\nhistory -w;\n}\n\n#function pp () {\n#builtin pushd +$@ &amp;&amp; ls --group-directories-first --classify --almost-all\n#}\n\nfunction pushup (){\nbuiltin pushd $HOME/.config/vim/sessions/\nbuiltin pushd $HOME/.local/bin/\nbuiltin pushd $HOME/.thunderbird/*.default-release/\nbuiltin pushd $HOME/Documents/non-of-your-business/\nbuiltin pushd $HOME/Downloads/in/\nbuiltin pushd $HOME/Downloads/out/\nbuiltin pushd $HOME/Downloads/playground/\nbuiltin pushd $HOME/Music/hpr/shows/\nbuiltin pushd $HOME/projects/\nbuiltin pushd $HOME/projects/hprbank/bp/\nbuiltin pushd $HOME/symlinks/\nbuiltin pushd $HOME/tmp/\nbuiltin pushd +11\n\nbuiltin dirs -v\n}\n\nalias pd=&#39;pushd&#39;\nalias dirs=&#39;dirs -v&#39;\n\n# Update\nalias .upg=&#39;sudo apt update &amp;&amp; sudo apt upgrade -y;&#39;\n\n# shutdown | reboot\nalias .sd=&#39;sudo shutdown -P now;&#39;\nalias .rs=&#39;sudo reboot;&#39;\n\n# Misc\nalias ccb=&#39;cat $HOME/cb | xsel --input --clipboard &amp;&amp; echo &quot;Copy. $(date &quot;+%F %T&quot;)&quot;;&#39;\nalias pcb=&#39;xsel --output --clipboard &gt; $HOME/cb &amp;&amp; echo &quot;Copy. $(date &quot;+%F %T&quot;)&quot;;&#39;\nalias zz=&#39;xsel -c -b &amp;&amp; echo &quot;Clipboard Cleared. $(date &quot;+%F %T&quot;)&quot;;&#39;\n\n# File Mods\nalias 700=&#39;chmod --verbose =700&#39;\nalias 600=&#39;chmod --verbose =600&#39;\nalias 400=&#39;chmod --verbose =400&#39;\n\n###############################################################################\n# Functions\n###############################################################################\n\nfunction .s () {\nln --symbolic --verbose --target-directory=$HOME/symlinks/ $(pwd)/${1};\n}\n\nfunction extract () {\nif [ -f $1 ]\nthen\n    case $1 in\n    *.tar.bz2) tar -vxjf $1 ;;\n    *.tar.gz) tar -vxzf $1 ;;\n    *.tar) tar -xvf $1 ;;\n    *.bz2) bunzip2 $1 ;;\n    *.rar) unrar -x $1 ;;\n    *.gz) gunzip $1 ;;\n    *.tar) tar -vxf $1 ;;\n    *.tbz2) tar -vxjf $1 ;;\n    *.tgz) tar -vxzf $1 ;;\n    *.zip) unzip $1 ;;\n    *.Z) uncompress $1 ;;\n    *.7z) 7z -x $1 ;;\n    *) echo &quot;Good Heavens, &#39;$1&#39; will NOT extract...&quot; ;;\n    esac\nelse\n    echo &quot;Good Heavens, &#39;$1&#39; is NOT a valid file.&quot;\nfi\n}\n\nfunction myip () {\nip addr | grep &#39;state UP&#39; -A2 | tail -n1 | awk &#39;{print $2}&#39; | cut -f1  -d&#39;/&#39;;\n}\n\nfunction .mkd (){\nmkdir -v $(date +%F) &amp;&amp; pushd $(date +%F);\n}\n\nfunction .mkt (){\ntmpdir=$(mktemp -d /tmp/$(date +%F).XXXXXXXX) &amp;&amp; pushd ${tmpdir}\n}\n\nfunction .d (){\necho $(date +%F)$1 | xsel -i -b;\n}\n\n\nfunction .sh () {\nNEWSCRIPT=${1}.sh\n\ncat &gt;&gt; ${NEWSCRIPT} &lt;&lt; EOS\n#!/bin/bash\n# License: GPL v3\n# This program is free software: you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation, either version 3 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program.  If not, see &lt;https://www.gnu.org/licenses/&gt;.\n\n#Name: ${NEWSCRIPT}\n#Purpose:\n#Version: beta 0.01\n#Author: SGOTI (Some Guy On The Internet)\n#Date: $(date +%F)\n\n#variables:\n\n#start:\n\nexit;\nEOS\n\nif [ -f &quot;${NEWSCRIPT}&quot; ]\nthen\n    chmod 700 ${NEWSCRIPT}\nelse\n    echo &quot;Good Heavens! There isn&#39;t a &quot;${NEWSCRIPT}&quot;&quot;\nfi\n}\n\nfunction .fmd () {\nxsel -o -b | fmt -w 76 | sed &#39;s/$/  /g\ns/  /    /g\ns/   /    /g\ns/     /    /g\ns/$/  /g\ns/  *$/  /g\ns/&#xA0;/ /g&#39; | xsel -i -b;\n}\n</code></pre>\n<pre><code>#!/bin/bash\n# License: GPL v3\n# This program is free software: you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation, either version 3 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program.  If not, see &lt;https://www.gnu.org/licenses/&gt;.\n\n#Name: bfn.sh\n#Purpose: Create better file names.\n#Version: beta 0.01\n#Author: SGOTI (Some Guy On The Internet)\n#Date: 2022-11-08\n\n#variables:\noldname=$(echo ${1%.*})\nnewname=$(echo $oldname | sed &#39;s/ /-/g;s/_/-/g;s/./-/g;s/--*/-/g;/\\/d&#39; | tr [:upper:] [:lower:])\next1=&quot;.$(echo ${1##*.})&quot;\next2=&quot;.$(echo ${1##*.} | tr [:upper:] [:lower:])&quot;\n\n#start:\nfunction bcase () {\n    if [ -f $1 ]\n    then\n        echo -e &quot;renaming $oldnamen&quot;;\n        mv -v &quot;$oldname$ext1&quot; &quot;$newname$ext2&quot;;\n    else\n        mv -v &quot;$oldname&quot; &quot;$newname&quot;;\n    fi\n}\n\nbcase\nexit;</code></pre>\n<pre><code>#!/bin/bash\n# License: GPL v3\n# This program is free software: you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation, either version 3 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program.  If not, see &lt;https://www.gnu.org/licenses/&gt;.\n\n#Name: perm.sh\n#Purpose:\n#Version: beta 0.01\n#Author: SGOTI (Some Guy On The Internet)\n#Date: 2023-01-13\n\n#variables:\nvar_dir=${1}\n\n#start:\nfunction bfp () {\n    find &quot;${var_dir}&quot; -type d -exec chmod -R =700 {} +\n    find &quot;${var_dir}&quot; -type f -exec chmod -R =600 {} +\n}\n\nbfp\n\nexit;</code></pre>\n<p>This work is licensed under a <a\nhref=\"https://creativecommons.org/licenses/by-sa/4.0/\"\ntitle=\"CC-BY-SA 4.0 International\">Creative Commons\nAttribution-ShareAlike 4.0 International License</a>.</p>\n',391,42,1,'CC-BY-SA','Bash scripting, bash commands, bash_aliases',0,0,1),
(3929,'2023-08-24','Some experiences with different notes apps',587,'About apps that store notes as markdown','<ul>\n<li><a href=\"https://simplenote.com/\"\nclass=\"uri\">https://simplenote.com/</a></li>\n<li><a href=\"https://standardnotes.com/\"\nclass=\"uri\">https://standardnotes.com/</a></li>\n<li><a href=\"https://www.inkdrop.app/\"\nclass=\"uri\">https://www.inkdrop.app/</a></li>\n<li><a href=\"https://www.qownnotes.org/\"\nclass=\"uri\">https://www.qownnotes.org/</a></li>\n<li><a href=\"https://joplinapp.org/\"\nclass=\"uri\">https://joplinapp.org/</a></li>\n<li><a href=\"https://urltomarkdown.com/\"\nclass=\"uri\">https://urltomarkdown.com/</a></li>\n</ul>\n',403,0,0,'CC-BY-SA','markdown, notes',0,0,1),
(3931,'2023-08-28','What Instrument was played in hpr3905?',2040,'I reveal what instrument was played in hpr3905','<p>If you didn\'t really understand my mumbling and stuttering, here is\nthe page ;-)</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Nyckelharpa\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Nyckelharpa</a></p>\n',422,0,0,'CC-BY-SA','Music, quiz, Instrument, Nyckelharpa',0,0,1),
(3938,'2023-09-06','An open directory of web audio stream',1116,'I was looking for an open directory of web audio streams and found radio hyphen browser dot info.','<h2 id=\"references\">References</h2>\n<p><a\nhref=\"https://www.radio-browser.info\">https://www.radio-browser.info</a>\nthe site has good searching features, and even has a player. It has a\nmap view that\'s cute but not too useful because it doesn\'t zoom in\nenough. Still fun to fly around the world and tune in simply by clicking\nthe balloons, you should try it.</p>\n<p>Mobile apps that use this directory are found on <a\nhref=\"https://www.radio-browser.info/users\">https://www.radio-browser.info/users</a>.\nThe ones I\'ve used are TuneFM (with ads, pay what you want (I think) to\nremove ads, but very good Android Auto), and Transistor (no Android\nAuto, otherwise perfect). Open Radio is pretty good but the Android Auto\nis buggy. I have not tried any others.</p>\n<p>The episode in which Ken Fallon interviewed one of the maintainers of\nFunkwhale was <a\nhref=\"https://hackerpublicradio.org/eps/hpr3808/index.html\">hpr3808</a>.</p>\n<p>Some stations I\'ve been listening to:</p>\n<ul>\n<li><a\nhref=\"https://www.radio-browser.info/history/05fa3620-96fe-4386-8ba8-3b793ee2ba44\">Radio\nMEC</a>: Brazilian state-controlled. Located in Rio de Janeiro. Plays\nmore uppity stuff.</li>\n<li><a\nhref=\"https://www.radio-browser.info/history/ee5b9ae4-52d6-4136-b731-fdb3f02e99fb\">Radio\nNacional Rio de Janeiro</a>: Brazilian state-controlled, located in Rio\nde Janeiro. Plays more popular music, football broadcasts. A good show\ncomes on every saturday at 11:00 BRT.</li>\n<li><a\nhref=\"https://www.radio-browser.info/history/b746312d-1fd9-44c5-9db2-de69a8db009f\">Radio\nLiga Samba</a>: Samba.</li>\n<li><a\nhref=\"https://www.radio-browser.info/history/abd4c17c-32eb-11e9-8f31-52543be04c81\">Kansas\nCity Online Radio</a>: an online-only Blues station. Seems to mostly\nsyndicate podcasts.</li>\n</ul>\n',399,0,0,'CC-BY-SA','\"internet radio\", \"free culture\"',0,0,1),
(3951,'2023-09-25','Cell Phone Screen Protectors',1720,'I talk about how I fail at Cell Phone Screen Protectors','<p>I talk about how I fail at Cell Phone Screen Protectors</p>\n',36,0,1,'CC-BY-SA','tech,phone repair,cell phones,Screen Protectors',0,0,1),
(3932,'2023-08-29','Short introduction to inxi',437,'folky gives the show about inxi that Ken wished for','<h2 id=\"link\">Link:</h2>\n<ul>\n<li><a href=\"https://github.com/smxi/inxi\">inxi - a command line system\ninformation tool</a></li>\n</ul>\n',309,23,0,'CC-BY-SA','shell,inxi,forum',0,0,1),
(3971,'2023-10-23','RERERE: How to make friends.',2164,'Sgoti and Mugs chat with friends about how to make friends on the internet.','<h2 id=\"rerere-how-to-make-friends.\">RERERE: How to make friends.</h2>\n<p>We could make a series of this?<br />\n</p>\n<ul>\n<li><p><strong>Source:</strong> <a\nhref=\"https://hackerpublicradio.org/eps/hpr3904/index.html\">hpr3904 ::\nHow to make friends</a><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://hackerpublicradio.org/eps/hpr3942/index.html\">hpr3942 ::\nRE: How to make friends.</a><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Friendship\">Friendship</a><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Interpersonal_relationship\">Interpersonal\nrelationship</a><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Affection\">Affection</a><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Blood_brother\">Blood\nbrother.</a><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Honour\">Honour</a><br />\n</p>\n<ul>\n<li>If one\'s honour is questioned, it can thus be important to disprove\nany false accusations or slander. In some cultures, the practice of\ndueling arose as a means to settle such disputes firmly, though by\nphysical dominance in force or skill rather than by objective\nconsideration of evidence and facts.<br />\n</li>\n</ul></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Ted_Bundy\">Ted Bundy</a><br />\n</p></li>\n</ul>\n<p>I thought this was funny: <a\nhref=\"https://www.wikihow.com/Ask-a-Friend-to-Hang-Out\">How to Ask a\nFriend to Hang Out.</a></p>\n',391,0,1,'CC-BY-SA','making friends, Mugsup, group chat',0,0,1),
(3944,'2023-09-14','Race for the Galaxy',947,'Tuula explains very basics of card game called Race for the Galaxy','<p>Race for the galaxy</p>\n<p>Race for the galaxy is a four player card game published by Rio\nGrande Games.</p>\n<p>The goal of the game is to build a space imperium and the player with\nmost victory points wins.</p>\n<p>There\'s also a computer version of the game, which saves you from\npacking up the game after playing.</p>\n<h1 id=\"turn-sequence\">Turn sequence</h1>\n<p>There are five phases in turn:</p>\n<ul>\n<li>Explore</li>\n<li>Develop</li>\n<li>Settle</li>\n<li>Consume</li>\n<li>Produce</li>\n</ul>\n<p>At the beginning of turn, every player selects one of these phases\nand selections are revealed simultaneously. Only selected phases will be\nplayed. Player who selected a phase gets a small bonus.</p>\n<p>Explore</p>\n<ul>\n<li>draw two cards and keep one</li>\n<li>bonus: draw five cards and keep one</li>\n<li>bonus: draw one additional card and keep one additional card</li>\n</ul>\n<p>Develop</p>\n<ul>\n<li>place development card in play and discard cards from your hand to\ncover the cost</li>\n<li>bonus: -1 to cost</li>\n</ul>\n<p>Settle</p>\n<ul>\n<li>place a planet card in play and discard cards from your hand to\ncover the cost</li>\n<li>except military planets, which you\'ll conquer with your military\nscore</li>\n<li>if it\'s a windfall world, produce on it</li>\n</ul>\n<p>Consume:</p>\n<ul>\n<li>use consume powers on cards to turn good into victory points</li>\n<li>you have to keep consuming until you can\'t anymore</li>\n<li>bonus: trade one goods card for 2-5 cards</li>\n<li>bonus: 2xVPs gain twice the victory points</li>\n</ul>\n<p>Produce:</p>\n<ul>\n<li>produce on regular planets</li>\n<li>bonus: produce on windfall planet</li>\n</ul>\n<p>repeat until:</p>\n<ul>\n<li>one empire is 12 cards big</li>\n<li>VP tokes run out</li>\n</ul>\n<p>score:</p>\n<ul>\n<li>points for cards on the table</li>\n<li>cards in the hand (+1 for each)</li>\n<li>VPs earned</li>\n</ul>\n<h1 id=\"special-rules\">special rules</h1>\n<ul>\n<li>cards on the table</li>\n<li>draw extra cards</li>\n<li>trade goods on planets</li>\n<li>add up your military score</li>\n<li>settle planets for cheaper</li>\n<li>have bigger empire limit</li>\n<li>produce on a windfall planet after discarding a card</li>\n<li>etc.</li>\n</ul>\n<h1 id=\"examples-of-cards\">Examples of cards</h1>\n<h2 id=\"star-nomad-raiders\">Star nomad raiders</h2>\n<ul>\n<li>military 2 planet, worth 1 vp</li>\n<li>+1 to military</li>\n<li>+2 cards when trading goods</li>\n</ul>\n<h2 id=\"terraforming-robots\">Terraforming robots</h2>\n<ul>\n<li>development 3, worth 2 vp</li>\n<li>draw 1 card after placing a world</li>\n<li>discard 1 rare elements good to gain 1 card and 1 vp</li>\n</ul>\n<h2 id=\"public-works\">Public works</h2>\n<ul>\n<li>development 1, worth 1 vp</li>\n<li>draw 1 card after placing a development</li>\n<li>discard 1 good to gain 1 vp</li>\n</ul>\n<h1 id=\"expansions\">Expansions</h1>\n<p>All expansions add new cards.</p>\n<h2 id=\"the-gathering-storm\">The gathering storm</h2>\n<blockquote>\n<ul>\n<li>goals (first and most)</li>\n<li>extra player</li>\n</ul>\n</blockquote>\n<h2 id=\"rebel-vs.-imperium\">Rebel vs. Imperium</h2>\n<blockquote>\n<ul>\n<li>solo play</li>\n<li>take over (conquer other player\'s worlds)</li>\n<li>extra player</li>\n</ul>\n</blockquote>\n<h2 id=\"brink-of-war\">Brink of War</h2>\n<blockquote>\n<dl>\n<dt>- prestige</dt>\n<dd>\n<ul>\n<li>counts as VP in the end</li>\n<li>can be used to perform actions</li>\n</ul>\n</dd>\n</dl>\n<ul>\n<li>requires two previous expansions</li>\n</ul>\n</blockquote>\n<h2 id=\"alien-artifacts\">Alien Artifacts</h2>\n<blockquote>\n<ul>\n<li>incompatible with previous expansions</li>\n<li>49 cards representing alien orb players can explore</li>\n<li>balance between expanding and exploring</li>\n</ul>\n</blockquote>\n<h1 id=\"verdict\">Verdict</h1>\n<ul>\n<li>fun and quick game</li>\n<li>every player concentrates on their own imperium</li>\n<li>keep an eye what opponent is doing (trading / military)</li>\n<li>cards are dense with information</li>\n</ul>\n<h1 id=\"example\">Example</h1>\n<ul>\n<li>I recorded myself playing against computer: [Race for the galaxy -\nthree medium AIs](<a\nhref=\"https://diode.zone/w/rw8z8pqeqAauENSufmgkjV\">https://diode.zone/w/rw8z8pqeqAauENSufmgkjV</a>).</li>\n<li>for some reason, you can\'t follow me outside of the instance</li>\n</ul>\n<h1 id=\"in-closing\">In closing</h1>\n<dl>\n<dt>- questions, comments, feedback?</dt>\n<dd>\n<ul>\n<li><a href=\"mailto:Tuula@mastodon.art\">Tuula@mastodon.art</a></li>\n<li>or even better, record your own episode</li>\n</ul>\n</dd>\n</dl>\n',364,0,0,'CC-BY-SA','race for the galaxy, card game',0,0,1),
(3953,'2023-09-27','Large language models and AI don\'t have any common sense',1090,'Learn how to load and run GPT-2 or Llama2 to test it with common sense questions.','<p>Hobson and Greg are working with volunteers to develop an open source\nAI that we call Qary (QA for question answering). We\'re adding plugins\nto support open source large language models (LLMs) like GPT-2 and\nLlama2. Here\'s how you can use LLMs in your own Python Programs.</p>\n<ol type=\"1\">\n<li>Create a Hugging Face account:</li>\n</ol>\n<ul>\n<li><a href=\"https://huggingface.co/join\">huggingface.co/join</a></li>\n</ul>\n<ol start=\"2\" type=\"1\">\n<li>Create and copy your access token:</li>\n</ol>\n<ul>\n<li><a href=\"https://huggingface.co/settings/tokens\">Your user\nprofile</a></li>\n</ul>\n<ol start=\"3\" type=\"1\">\n<li>Create a .env file with your access token string:</li>\n</ol>\n<pre class=\"bash\"><code>echo &quot;HUGGINGFACE_ACCESS_TOKEN=hf_...&quot; &gt;&gt; .env</code></pre>\n<ol start=\"4\" type=\"1\">\n<li>Load the <code>.env</code> variables in your python script using\n<code>dotenv</code> package and os.environ:</li>\n</ol>\n<ul>\n<li>TIP: Use <code>os.environ</code> to retrieve the dict of variable\nvalues rather than <code>dotenv.load_values</code>- Otherwise other\nenvironment variables that have been set by other shell scripts such as\n<code>.bashrc</code> will be ignored.</li>\n<li>This confused us when we were getting our GitLab CI-CD pipeline\nworking and deploying to Render.com.</li>\n<li>Each of your cloud services will have different approaches to\nsetting environment variables.</li>\n<li>This token string can be passed as a keyword argument to most of the\npipeline and model classes.</li>\n</ul>\n<pre class=\"python\"><code>import dotenv\ndotenv.load_dotenv()\nimport os\nenv = dict(os.environ)\ntoken = env[&#39;HUGGINGFACE_ACCESS_TOKEN&#39;]</code></pre>\n<ol start=\"5\" type=\"1\">\n<li>Find the path and name for the model on Hugging Face hub you want to\nuse:</li>\n</ol>\n<ul>\n<li>search for \"llama2\" in the top search bar on <a\nhref=\"https://huggingface.co/\">huggingface.co/</a></li>\n<li>TIP: don\'t hit enter at the end of your search, instead click on\n\"See 3958 model results for llama2\"</li>\n<li>I clicked on <a\nhref=\"https://huggingface.co/meta-llama/Llama-2-7b-chat-hf\">meta-llama/Llama-2-7b-chat-hf</a>\nto see the documentation</li>\n</ul>\n<ol start=\"6\" type=\"1\">\n<li>On the documentation page for your model you may have to apply for a\nlicense if it\'s not really open source but business source like Meta\ndoes with its AI so you can\'t use their models to compete with them</li>\n</ol>\n<ul>\n<li>Apply for a license to use Llama2 on <a\nhref=\"https://ai.meta.com/resources/models-and-libraries/llama-downloads/\">ai.meta.com</a>\nusing the same e-mail you used for your Hugging Face account.</li>\n</ul>\n<ol start=\"7\" type=\"1\">\n<li>Follow the <a\nhref=\"https://huggingface.co/docs/hub/security-tokens\">instructions on\nhuggingface.co</a> to authenticate your python session</li>\n</ol>\n<ul>\n<li>TIP: You\'ll need to use the kwarg <code>use_auth_token</code> in the\n<code>AutoModel.from_pretrained</code> or <code>pipeline</code>\nfunctions.</li>\n<li>And it should be set to the token from your Hugging Face profile\npage. The hugging face documentation says to use the <code>token</code>\nkwarg, but that never worked for me.</li>\n</ul>\n<pre class=\"python\"><code>from transformers import pipeline, set_seed\ngenerator = pipeline(&#39;text-generation&#39;, model=&#39;openai-gpt&#39;)\nq = &quot;2+2=&quot;\nresponses = generator(\n    q,\n    max_length=10,\n    num_return_sequences=10\n    )\nresponses</code></pre>\n<pre class=\"text\"><code>[{&#39;generated_text&#39;: &#39;2+2= 2.2, 1.1 and&#39;},\n {&#39;generated_text&#39;: &#39;2+2= 3336 miles. they&#39;},\n {&#39;generated_text&#39;: &#39;2+2= 2, = 2 = 2&#39;},\n {&#39;generated_text&#39;: &#39;2+2= 4 = 2 = 5 \\n&#39;},\n {&#39;generated_text&#39;: &#39;2+2= 0 ( 1 ) = =&#39;},\n {&#39;generated_text&#39;: &#39;2+2= 6 times the speed of sound&#39;},\n {&#39;generated_text&#39;: &#39;2+2= 2 times 5, 865&#39;},\n {&#39;generated_text&#39;: &#39;2+2= 3 / 7 / 11 =&#39;},\n {&#39;generated_text&#39;: &#39;2+2= 2 2 \\n 2 of 2&#39;},\n {&#39;generated_text&#39;: &#39;2+2= 1, 9 = 1,&#39;}]</code></pre>\n<p>Here\'s the cow leg counting question:</p>\n<pre class=\"python\"><code>    q = &quot;There are 2 cows and 2 bulls, how many legs are there?&quot;\n    responses = generator(\n        f&quot;Question: {q}\\nAnswer: &quot;,\n        max_length=30,\n        num_return_sequences=10)\n    answers = []\n    for resp in responses:\n        text = resp[&#39;generated_text&#39;]\n        answers.append(text[text.find(&#39;Answer: &#39;)+9:])\n    answers</code></pre>\n<pre class=\"text\"><code>     &#39;four. \\n &quot; let me see if i have this straight&#39;,\n     &#39;only 3. and three cows and 2 bulls are bigger than&#39;,\n     &#39;2, 2, 1, 2. \\n &quot; not yet&#39;,\n     &quot;one per cow, that&#39;s all there is. in fact&quot;,\n     &#39;30. and what am i? oh, yes, about&#39;,\n     &#39;one. the big, white bull that is bigger than 1&#39;,\n     &#39;three. they need to be introduced to the cow population before&#39;,\n     &quot;1. i don&#39;t know how many and where exactly ;&quot;,\n     &#39;no 2. 2. two bulls for 1 bull and 2&#39;,\n     &#39;1, there are 1.2, and 2, there are&#39;]</code></pre>\n',424,0,0,'CC-BY-SA','AI, GPT, GPT-2, Llama2, Hugging Face, Machine Learning, Deep Learning, Natural Language Processing',0,0,1),
(3937,'2023-09-05','Adventures in Pi-Hole',497,'Noodlez recounts their experience getting a pi-hole server','<h1 id=\"adventures-in-pi-hole\">Adventures in Pi-Hole</h1>\n<p>Hi all! Today I\'m gonna be talking about my adventures in setting up\nPi-hole. This will be without screenshots, but instead in all text,\nsorry! Also this is all written as kind of an \"Aftermath\" story. This is\nbeing written after the fact, so this might be missing some details, but\nmost of it is there.</p>\n<h2 id=\"intro-what-is-pi-hole\">Intro: What is Pi-hole</h2>\n<p><a href=\"https://pi-hole.net/\">Pi-hole</a> is a DNS/DHCP server that\nallows for easy network-wide ad-blocking, along with all the nice\ncustomizations that come with being a DNS server, such as custom\ndomains.</p>\n<h2 id=\"first-step-get-it-running\">First Step: Get it running</h2>\n<p>The first step was getting Pi-hole running. I did this using Docker\nCompose on a \"NAS\" which is honestly a full on server at this point. A\nquick copy/paste from <a\nhref=\"https://github.com/pi-hole/docker-pi-hole/#quick-start\">Pi-hole\'s\nREADME</a> and I was up and running! I set a singular system to use this\nas a DNS server, and after that, I figured I was set and ready to\ngo.</p>\n<h2 id=\"second-step-dhcp-town\">Second Step: DHCP town</h2>\n<p>Of course, I wasn\'t satisfied just finishing there. I want automatic\nDNS setting for any device that connects to my network. Of course, I\ncould just set the DNS upstream in my <a\nhref=\"https://openwrt.org/\">OpenWRT</a> router to use the IP address of\nmy server, but that isn\'t good enough for me. This means I\'d be missing\nout on automatic per-client information, since when setting a DNS server\nfor OpenWRT, it only sets itself to forward any DNS requests up to the\nDNS server, which means from Pi-hole\'s perspective, all the requests are\ncoming from the router and nowhere else. The solution is to set up\nPi-Hole as a DHCP server. Keep in mind this isn\'t a tutorial, so let\'s\ngo through what I did first. The first step was to turn on the DHCP\nserver in Pi-Hole. This was super easy, just a checkbox and click save.\nCool! Then I disabled the DHCP server in OpenWRT, and that was all set.\nA few restarting of network devices later, like my phone, and they\nautomatically connected to the Pi-Hole server, and worked like a charm.\nNext up, I set up Tailscale. I use <a\nhref=\"https://headscale.net/\">Headscale</a>, but the setup is\nessentially the same as if you were using Tailscale\'s UI. Set in the\nconfig to override local DNS, set the nameserver to the Tailscale IP\naddress of the server, and turn on magic DNS, et voila! Now to restart\nthe Tailscale nodes, and make sure that on the server, you set it to not\naccept the DNS from Tailscale. If you don\'t do that, it\'ll get in an\nendless loop of trying to use itself as the DNS server, and it\'s just no\ngood. Okay! It\'s all set, and I check the dashboard, and it\'s already\nblocking DNS requests. Perfect!</p>\n<h2 id=\"third-step-whoopsies\">Third Step: Whoopsies!</h2>\n<p>This was fine and great, but when I went to reboot my server, which I\ndo weekly, something bad happened. The interface for the server didn\'t\ncome up. This is a problem, since it\'s the DHCP server for my network,\nso without that working, the network was dead in the water. It can\'t\ngive out IP addresses. What\'s going on? I go ahead and access my server\ndirectly. No matter how hard I try, it can\'t connect to the interface.\nWhat\'s the big deal? Well this is pretty simple, and a question popped\nin my head that go me there. \"How does this server even get its IP\naddress?\" You see when I set up pi-hole, it just kept using the IP\naddress that the router gave it, which it was more than happy to use,\nbut the moment the router didn\'t have a DHCP server, the NAS didn\'t have\na way to get an IP address anymore. So what do you do then? The answer\nis pretty simple. Give the server a static IP. Make sure in the DHCP\nserver of pi-hole, you set a reservation in it for the server, then in\nNetworkManager, which I use, set it to have a static IP, and set its DNS\nto point to localhost. Perfect! This works like a charm!</p>\n<h2 id=\"fourth-step-adlists\">Fourth Step: Adlists</h2>\n<p>Okay, phew! Crisis averted. Just some missing networking knowledge.\nSo what\'s next up on the list? Hmmm... Let\'s see... The default adlist\nis kinda small, let\'s go see if we can find some new adlists. Apparently\nthis is more difficult than you\'d think. A quick search on DDG only came\nup with an equivalent search in GitHub. Not useful! I have no idea the\ntrustworthiness and stability of these adlists. Let\'s see. Another\nsearch leads to a Reddit article that then links to a different list.\nBingo! <a href=\"https://firebog.net/\">An Adlist list</a>. Exactly what I\nneeded. I went ahead and looked into these lists, and added a few of\nthem. Perfect!</p>\n<h2 id=\"fifth-step-maintenance\">Fifth Step: Maintenance</h2>\n<p><code>docker compose pull &amp;&amp; docker compose up -d</code><br />\nOf course, this isn\'t it. I actually use an a/b update scheme, but you\nget the gist. Updates are taken care of, and just make sure you try and\nkeep the server up as long as possible, and keep downtime to a\nminimum.</p>\n<h2 id=\"sixth-step-moving-off-the-nas\">Sixth Step: Moving off the\nNAS.</h2>\n<p>After a while of running this, the necessity of having the NAS on the\nwhole time was starting to get frustrating. The answer there was to move\nit off the NAS. I did this by installing it on a Raspberry Pi 3B,\nrunning Arch Linux ARM. The setup was identical to before once I had\ngotten ALARM running.</p>\n',423,0,0,'CC-BY-SA','pi-hole,linux,networking,self-hosting',0,0,1),
(3939,'2023-09-07','How I got into tech and hacking',1238,'Getting interested in tech can start in both odd and familiar places. This is Trixter\'s story.','<p>In the show, I mention that leaving Mark Williams Company was \"a\nstory for another time\", but the short answer is that Linux crushed\nthem. Coherent Unix had to make a choice to compete with either Windows,\nSCO Unix, or Linux, and had enough budget to add either X Windows or\nTCP/IP networking. They chose X11, and IMO that killed any chance of\nCoherent Unix being useful in a world of Linux and FreeBSD.</p>\n',149,29,0,'CC-BY-SA','demoscene, hacking, programming, assembly, gaming',0,0,1),
(3943,'2023-09-13','Why my Dell does it better on Linux.',745,'Knightwise talks about how he uses his Dell XPS 15 with Linux.','<p>The Config of my Dell XPS 15</p>\n<pre><code>          .-:/++oooo++/:-.               knightwise@Hawking\n        `:/oooooooooooooooooo/-`           ------------------\n      -/oooooooooooooooooooo+ooo/-         OS: Ubuntu Cinnamon 22.04.3 LTS x86_\n    .+oooooooooooooooooo+/-`.ooooo+.       Host: XPS 15 7590\n   :oooooooooooo+//:://++:. .ooooooo:      Kernel: 6.2.0-26-generic\n  /oooooooooo+o:`.----.``./+/oooooooo/     Uptime: 4 mins\n /ooooooooo+. +ooooooooo+:``/ooooooooo/    Packages: 2457 (dpkg), 19 (snap)\n.ooooooooo: .+ooooooooooooo- -ooooooooo.   Shell: bash 5.1.16\n/oooooo/o+ .ooooooo:`+oo+ooo- :oooooooo/   Resolution: 1920x1080\nooo+:. .o: :ooooo:` .+/. ./o+:/ooooooooo   DE: Cinnamon 5.2.7\noooo/-`.o: :ooo/` `/+.     ./.:ooooooooo   WM: Mutter (Muffin)\n/oooooo+o+``++. `:+-          /oooooooo/   WM Theme: Yaru-Cinnamon-Dark (Yaru-C\n.ooooooooo/``  -+:`          :ooooooooo.   Theme: Yaru-Cinnamon-Dark [GTK2/3]\n /ooooooooo+--+/`          .+ooooooooo/    Icons: Yaru-Cinnamon [GTK2/3]\n  /ooooooooooo+.`      `.:++:oooooooo/     Terminal: gnome-terminal\n   :oooooooooooooo++++oo+-` .ooooooo:      CPU: Intel i7-9750H (12) @ 4.500GHz\n    .+ooooooooooooooooooo+:..ooooo+.       GPU: Intel CoffeeLake-H GT2 [UHD Gra\n      -/oooooooooooooooooooooooo/-         GPU: NVIDIA GeForce GTX 1650 Mobile\n        `-/oooooooooooooooooo/:`           Memory: 2736MiB / 31723MiB\n</code></pre>\n',111,0,0,'CC-BY-SA','linux, ',0,0,1),
(3949,'2023-09-21','How I use virtualisation to tame my Social Media addiction.',937,'Knightwise talks about the command line applications he uses to fight his Social Media addiction.','<p>Apps I talk about</p>\n<ul>\n<li><p>Irssi: <a href=\"https://irssi.org/\"\nclass=\"uri\">https://irssi.org/</a></p></li>\n<li><p>Tuir: <a href=\"https://gitlab.com/ajak/tuir\"\nclass=\"uri\">https://gitlab.com/ajak/tuir</a></p></li>\n<li><p>Discordo: <a href=\"https://github.com/ayn2op/discordo\"\nclass=\"uri\">https://github.com/ayn2op/discordo</a></p></li>\n<li><p>Tailscale: <a href=\"https://tailscale.com/\"\nclass=\"uri\">https://tailscale.com/</a></p></li>\n<li><p>HyperV : <a\nhref=\"https://learn.microsoft.com/en-us/virtualization/hyper-v-on-windows/about/\"\nclass=\"uri\">https://learn.microsoft.com/en-us/virtualization/hyper-v-on-windows/about/</a></p></li>\n</ul>\n',111,0,0,'CC-BY-SA','linux, tailscale, vpn, social media, reddit, irc, discord,',0,0,1),
(3947,'2023-09-19','Archiving Floppy Disks',1009,'This show describes how I go about archiving old floppy disks.','<h1>Archiving Floppy Disks</h1>\n\n<h2>Summary</h2>\n\n<p>This show describes how I go about archiving old floppy\ndisks. These disks date back to the early 90s when floppy disks were a\ncommon way of installing software on personal computers. They were\nalso used as a portable storage mechanism for data files.</p>\n\n<h2>Equipment That I\'m Using</h2>\n\n<ul>\n<li>IBM ThinkCentre desktop computer with a 3.5in floppy disk drive</li>\n<li>Installed the 32-bit version of Slackware 14.2</li>\n</ul>\n\n<h2>Making an image of an entire floppy disk</h2>\n<code>dd if=/dev/fd0 of=filename.dsk</code>\n\n<h2>Making a floppy disk from a disk image</h2>\n<code>dd if=filename.dsk of=/dev/fd0</code>\n\n<h2>Copy files from a floppy disk</h2>\n<code>\nmount -t msdos /dev/fd0 /mnt/floppy<br>\ncd /mnt/floppy<br>\ncp filename /some/destination/path/filename<br>\ncd<br>\numount /mnt/floppy\n</code>\n\n',334,0,0,'CC-BY-SA','floppy, disk, archive, linux, commands',0,0,1),
(3948,'2023-09-20','Cleaning up my mancave and talking about Creativity',1591,'Knightwise sets up his podcast rig in a messy attic and talks about the stuff lying around','<p>Just a Random babble as I setup my podcasting rig in the office,\nclearing out some old stuff and telling you about what I encounter.</p>\n',111,0,0,'CC-BY-SA','linux, podcasting, retro',0,0,1),
(3958,'2023-10-04','Bikepacking in 1993 without technology',1163,'Knightwise looks back at his very first bikepacking adventure and its absence of technology','<p>My 5 day Ride from Oostende to Le Havre (540km)</p>\n<ul>\n<li>Oostende: <a href=\"https://goo.gl/maps/1CFXuHeBcHpHX3RZ8\"\nclass=\"uri\">https://goo.gl/maps/1CFXuHeBcHpHX3RZ8</a></li>\n<li>Calais: <a href=\"https://goo.gl/maps/1CFXuHeBcHpHX3RZ8\"\nclass=\"uri\">https://goo.gl/maps/1CFXuHeBcHpHX3RZ8</a></li>\n<li>Boulogne: <a href=\"https://goo.gl/maps/1CFXuHeBcHpHX3RZ8\"\nclass=\"uri\">https://goo.gl/maps/1CFXuHeBcHpHX3RZ8</a></li>\n<li>Le Treport: <a href=\"https://goo.gl/maps/1CFXuHeBcHpHX3RZ8\"\nclass=\"uri\">https://goo.gl/maps/1CFXuHeBcHpHX3RZ8</a></li>\n<li>Dieppe: <a href=\"https://goo.gl/maps/Pn4K2DuATVAFoCPV8\"\nclass=\"uri\">https://goo.gl/maps/Pn4K2DuATVAFoCPV8</a></li>\n<li>Yvetot: <a href=\"https://goo.gl/maps/Pn4K2DuATVAFoCPV8\"\nclass=\"uri\">https://goo.gl/maps/Pn4K2DuATVAFoCPV8</a></li>\n<li>Le-Havre : <a href=\"https://goo.gl/maps/Pn4K2DuATVAFoCPV8\"\nclass=\"uri\">https://goo.gl/maps/Pn4K2DuATVAFoCPV8</a></li>\n</ul>\n',111,0,0,'CC-BY-SA','cycling, soundseeing, travel, technology, ',0,0,1),
(3952,'2023-09-26','Making the Case for Markdown',404,'Keith discusses the background and applications for Markdown.','<p>Links to things mentioned in this episode:</p>\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/LAMP_(software_bundle)\">LAMP\nStack</a> (wikipedia)</li>\n<li><a\nhref=\"https://wordpress.org/news/2023/05/celebrating-20-years-of-wordpress/\">WordPress\nis 20 years old</a></li>\n<li><a href=\"https://daringfireball.net/projects/markdown/\">Daring\nFireball Markdown Page</a></li>\n<li><a href=\"https://jekyllrb.com/\">Jekyll</a></li>\n<li><a href=\"https://obsidian.md/\">Obsidian</a></li>\n<li><a\nhref=\"https://pandoc.org/chunkedhtml-demo/8.22-markdown-variants.html\">Variants\nof Markdown syntax</a></li>\n</ul>\n',266,0,0,'CC-BY-SA','markdown,plain text,writing,text editors,file formats',0,0,1),
(3954,'2023-09-28','Sedating HPR at the Steading',4462,'MrX and Dave Morriss have lunch and record another chat','<article>\n<h2 id=\"introduction\">Introduction</h2>\n<p>Hosts:</p>\n<ul>\n<li><a\nhref=\"https://hackerpublicradio.org/correspondents/0201.html\">MrX</a></li>\n<li><a\nhref=\"https://hackerpublicradio.org/correspondents/0225.html\">Dave\nMorriss</a></li>\n</ul>\n<p>We recorded this on Sunday September 3<sup>rd</sup> 2023. We met in\nperson again, and as before first visited the pub called <em>The\nSteading</em> where we had lunch. Then we adjourned to Dave\'s car in the\ncar park, and recorded a chat.</p>\n<p>The name \"Steading\" is another (Scots?) version of \"Farmstead\", and\nmeans the same. It\'s also an anagram of \"Sedating\"<a href=\"#fn1\"\nclass=\"footnote-ref\" id=\"fnref1\" role=\"doc-noteref\"><sup>1</sup></a>, so\n...</p>\n<h2 id=\"topics-discussed\">Topics discussed</h2>\n<ul>\n<li>Vaccines:\n<ul>\n<li>Dave has an appointment for <a\nhref=\"https://en.wikipedia.org/wiki/COVID-19_vaccine\">COVID-19</a> and\ninfluenza vaccines. The new <a\nhref=\"https://en.wikipedia.org/wiki/SARS-CoV-2_Omicron_variant\">Omicron\nvariant</a> BA.2.86 has prompted another booster for some people.</li>\n<li>Discussion of <a\nhref=\"https://en.wikipedia.org/wiki/Smallpox_vaccine\">Smallpox</a>\nvaccination</li>\n<li>MrX has an appointment for an influenza vaccine</li>\n</ul></li>\n</ul>\n<ul>\n<li>Glasgow:\n<ul>\n<li>MrX and <em>MrsX</em> recently stayed in Glasgow for a holiday</li>\n<li><a href=\"https://www.pointahotels.com/our-hotels/glasgow/\">Point A\nHotel</a> - boutique hotel</li>\n<li><a href=\"https://glasgow.junglerumble.co.uk/\">Jungle Rumble</a> -\nindoor golf with UV lighting!</li>\n<li>Wikipedia: <a\nhref=\"https://en.wikipedia.org/wiki/Glasgow_Subway\">Glasgow\nSubway</a></li>\n</ul></li>\n</ul>\n<ul>\n<li>Edinburgh:\n<ul>\n<li>Dave took a trip on the recently extended <a\nhref=\"https://edinburghtrams.com/\">Edinburgh tram</a>\n<ul>\n<li>There is only one route, from the airport to Leith (port).</li>\n<li>Older residents get free access.</li>\n</ul></li>\n<li>MrX and MrsX recently walked from the centre of Edinburgh along the\n<a href=\"https://www.waterofleith.org.uk/\">Water of Leith</a> to the\narea where the tram terminus is at Newhaven.</li>\n</ul></li>\n</ul>\n<ul>\n<li>Email:\n<ul>\n<li>Dave is using version <a\nhref=\"https://www.thunderbird.net/en-GB/\">Thunderbird</a> 115.1.1 which\nis a rewrite of the original series where the API has now changed a\nlot.</li>\n<li>Long-used add-ons now no longer work:\n<ul>\n<li>A favourite was <em>Mailbox Alert</em> which triggered sound alerts\n(or others) then mail arrived in a folder - so this could be after\nfiltering. This was much more useful than the traditional \"You have\nmail\" type alerts.</li>\n</ul></li>\n<li>Discussion of tags:\n<ul>\n<li>MrX mentions tags, meaning bits of text that can be attached to\nmessages and used to classify them and to search for them.</li>\n<li>In Gmail there are <em>labels</em> which can do this and these can\nbe used to group messages regardless of folders</li>\n<li>Thunderbird also has this concept which it calls <em>tags</em>. It\ncomes with pre-defined tags such as <strong>Important</strong> and\n<strong>To Do</strong>, but more tags can be added. Any message can be\ngiven one or more tags. The filtering system can add tags as a message\nis processed. Searches can be performed on tags also.</li>\n<li>Dave is an enthusiast of nested folders with filters to classify\nmessages. MrX is keen on using tags for the same purpose. Dave mentioned\nThunderbird\'s <em>saved search</em> feature (which he wrongly called\n<em>virtual mailboxes</em>) which can collect messages according to many\ncriteria, including tags.</li>\n<li>Some discussion about mail message storage strategies: file per\nmessage, <em>mbox</em> format, etc.</li>\n</ul></li>\n</ul></li>\n</ul>\n<ul>\n<li>Ticks:\n<ul>\n<li>MrX\'s dog has brought some ticks back from recent walks.</li>\n<li>Scotland seems to be a bit worse off for ticks in recent years.</li>\n<li>Hikers need to protect against them and to perform checks that they\nare not on clothes. Wearing long socks or gaiters over long trousers can\nhelp.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Lyme_disease\">Lyme\nDisease</a> is a bacterial infection that can be passed by ticks.</li>\n<li><a href=\"https://www.microbe.tv/twip/\">This Week in Parasitism</a>\nrecently talked about an unpleasant disease caught from ticks, <a\nhref=\"https://en.wikipedia.org/wiki/Babesiosis\"><em>Babesiosis</em></a>\n(not bacterial as Dave thought, but caused by a protozoan). This was in\nthe USA; the disease doesn\'t seem to be in the UK at the moment.</li>\n<li><a\nhref=\"https://www.lymediseaseaction.org.uk/about-ticks/tick-removal/\">Removal\nof ticks</a> needs a tool or a fine pair of tweezers.</li>\n</ul></li>\n</ul>\n<ul>\n<li>Audacity:\n<ul>\n<li><a\nhref=\"https://hackerpublicradio.org/correspondents/0198.html\">Ahuka</a>\ndid a recent show (<a\nhref=\"https://hackerpublicradio.org/eps/hpr3927/index.html\">hpr3927 ::\nAudacity Update 20230702</a>) on some problems he\'d encountered.</li>\n<li>Video on YouTube: <a\nhref=\"https://www.youtube.com/watch?v=QfmDn1IaDmY\">What Ever Happened to\nAudacity?</a></li>\n<li>Audacity-like tool in the browser: <a\nhref=\"https://wavacity.com/\">Wavacity</a></li>\n</ul></li>\n</ul>\n<ul>\n<li><a href=\"https://www.eif.co.uk/\">Edinburgh Festival</a> and <a\nhref=\"https://www.edfringe.com/\">Festival Fringe</a>:\n<ul>\n<li>MrX attended a show by Michael Shafar, the comedian</li>\n<li>Dave hasn\'t been to much at the Festival/Fringe in recent years. He\nsaw the <a\nhref=\"https://en.wikipedia.org/wiki/Doug_Anthony_All_Stars\">Doug Anthony\nAll Stars</a> when they were active many years ago, and found them funny\nbut intimidating!</li>\n</ul></li>\n</ul>\n<ul>\n<li>HPR changes:\n<ul>\n<li>Mentioned on the recent <a\nhref=\"https://hackerpublicradio.org/eps/hpr3936/index.html#site-migration\">HPR\nCommunity News</a></li>\n<li>Problem reports can be sent by email to <code>admin</code> at\n<code>HPR</code>, as messages to <code>@hpr@botsin.space</code> on\nMastodon, and to the <code>#hpr:matrix.org</code> channel on\nMatrix.</li>\n</ul></li>\n</ul>\n<ul>\n<li>Watching and listening:\n<ul>\n<li>MrX has been watching the YouTube channel <a\nhref=\"https://www.youtube.com/@littlechineseeverywhere\">Little Chinese\nEverywhere</a>, recommended in the last of these chats.</li>\n<li>MrX has also been listening to the BBC radio show <a\nhref=\"https://www.bbc.co.uk/programmes/b06bq6j1\">Computing Britain</a>.\nIt consists of 12 15-minute episodes, from 2015, and is available as a\npodcast.</li>\n</ul></li>\n</ul>\n<ul>\n<li>YouTube recommendations:\n<ul>\n<li>Dave:\n<ul>\n<li><a href=\"https://www.youtube.com/c/NotJustBikes\">Not Just Bikes</a>:\n<ul>\n<li>A channel about cycling and city design. The channel owner is\nCanadian but has moved to Amsterdam for a better life for himself and\nhis family. He highlights the differences between North American city\ndesign and the design of many European cities.</li>\n<li>Example video: <a\nhref=\"https://www.youtube.com/watch?v=ztpcWUqVpIg\">Even Small Towns are\nGreat Here (5 Years in the Netherlands)</a></li>\n</ul></li>\n<li><a href=\"https://www.youtube.com/c/BicycleDutch\">BicycleDutch</a>:\n<ul>\n<li>Another channel about cycling in the Netherlands. This channel host,\nMark Wagenbuur, is Dutch and does videos about cycle routes, and their\ndevelopment. Lots of videos made as he cycles a route. He is based in <a\nhref=\"https://en.wikipedia.org/wiki/%27s-Hertogenbosch\">’s-Hertogenbosch</a>\n(<a\nhref=\"https://www.google.com/maps/place/&#39;&#39;s-Hertogenbosch,+Netherlands&#39;/@51.6639276,5.3834025,9.08z/data=!4m6!3m5!1s0x47c6ee37ad3edd37:0x400de5a8d1e7c50!8m2!3d51.6978162!4d5.3036748!16zL20vMGQ5dGo?entry=ttu\">map</a>)\nand cycles in the region and to and from Utrecht.</li>\n</ul></li>\n</ul></li>\n</ul></li>\n</ul>\n<h2 id=\"links\">Links</h2>\n<ul>\n<li>Vaccines:\n<ul>\n<li>Wikipedia: <a\nhref=\"https://en.wikipedia.org/wiki/COVID-19_vaccine\">COVID-19\nvaccines</a></li>\n<li>Wikipedia: <a\nhref=\"https://en.wikipedia.org/wiki/SARS-CoV-2_Omicron_variant\">SARS-CoV-2\nOmicron variant</a></li>\n<li>Wikipedia: <a\nhref=\"https://en.wikipedia.org/wiki/Smallpox_vaccine\">Smallpox\nvaccine</a></li>\n</ul></li>\n</ul>\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Glasgow\">Glasgow</a>:\n<ul>\n<li>Wikipedia: <a\nhref=\"https://en.wikipedia.org/wiki/Glasgow_Subway\">Glasgow\nSubway</a></li>\n<li><a href=\"https://www.pointahotels.com/our-hotels/glasgow/\">Point A\nHotel</a></li>\n<li><a href=\"https://glasgow.junglerumble.co.uk/\">Jungle Rumble</a></li>\n</ul></li>\n</ul>\n<ul>\n<li>Edinburgh:\n<ul>\n<li><a href=\"https://edinburghtrams.com/\">Edinburgh trams</a></li>\n<li><a href=\"https://www.waterofleith.org.uk/\">Water of Leith</a></li>\n</ul></li>\n</ul>\n<ul>\n<li>Thunderbird:\n<ul>\n<li><a href=\"https://www.thunderbird.net/en-GB/\">Website</a></li>\n</ul></li>\n</ul>\n<ul>\n<li>Ticks:\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Lyme_disease\">Lyme\nDisease</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Babesiosis\">Babesiosis</a></li>\n<li><a\nhref=\"https://www.lymediseaseaction.org.uk/about-ticks/tick-removal/\">Removal\nof ticks</a></li>\n</ul></li>\n</ul>\n<ul>\n<li>Audacity:\n<ul>\n<li>YouTube: <a href=\"https://www.youtube.com/watch?v=QfmDn1IaDmY\">What\nEver Happened to Audacity?</a></li>\n<li><a href=\"https://wavacity.com/\">Wavacity</a></li>\n</ul></li>\n</ul>\n<ul>\n<li>More Edinburgh:\n<ul>\n<li><a href=\"https://www.eif.co.uk/\">Edinburgh Festival</a></li>\n<li><a href=\"https://www.edfringe.com/\">Edinburgh Festival\nFringe</a></li>\n</ul></li>\n</ul>\n<ul>\n<li>HPR:\n<ul>\n<li>Site migration update (<a\nhref=\"https://hackerpublicradio.org/eps/hpr3936/index.html#site-migration\">Community\nNews for August 2023</a>)</li>\n</ul></li>\n</ul>\n<ul>\n<li>YouTube recommendations:\n<ul>\n<li><a href=\"https://www.youtube.com/c/NotJustBikes\">Not Just\nBikes</a></li>\n<li><a\nhref=\"https://www.youtube.com/c/BicycleDutch\">BicycleDutch</a></li>\n</ul></li>\n</ul>\n<aside id=\"footnotes\" class=\"footnotes footnotes-end-of-document\"\nrole=\"doc-endnotes\">\n<hr />\n<ol>\n<li id=\"fn1\"><p>Other anagrams are also available: <em>gin sated</em>,\n<em>gent said</em>, <em>sang tide</em>, etc.<a href=\"#fnref1\"\nclass=\"footnote-back\" role=\"doc-backlink\">↩︎</a></p></li>\n</ol>\n</aside>\n</article>\n',225,0,1,'CC-BY-SA','Edinburgh, The Steading, discussion',0,0,1),
(3964,'2023-10-12','Hacker Public Radio at OLF',3078,'Friends from Hacker Public Radio meetup to record an episode from the conference.','<p><a href=\"https://olfconference.org/\">Ohio Linux Fest, or Open, Libre,\nFree...we\'re not sure</a></p>\n<p><a\nhref=\"https://olfconference.org/olf-2023-slides-and-stream-videos/\">Conference\nVideos and Presentations</a></p>\n<p><a href=\"https://northmarket.org/merchant/momo-ghar/\">Momo\nGhar</a></p>\n',270,0,1,'CC-BY-SA','OLF, Linux Fest, Conference',0,0,1),
(4196,'2024-09-02','HPR Community News for August 2024',0,'HPR Volunteers talk about shows released and comments posted in August 2024','',159,47,1,'CC-BY-SA','Community News',0,0,1),
(3966,'2023-10-16','Vim Hints: 006',1503,'Various contributors lead us on a journey of discovery of the Vim (and vi) editors.','<h2 id=\"my-.vimrc-config.\">My <code>.vimrc</code> config.</h2>\n<pre><code>&quot; General\nset confirm                                                      &quot; Display confirmation dialog when closing unsaved files\nset number                                                       &quot; Show line numbers\nset number relativenumber                                        &quot; Show line numbers relative to curser\nset cursorline                                                   &quot; Highlight the current line\nset guicursor=\nset scrolloff=23                                                 &quot; Number of screen lines above and below the cursor\nset colorcolumn=80                                               &quot; Line 76 and 80 are colored\n:hi ColorColumn ctermbg=Magenta                                  &quot; Column colors\nset nowrap                                                       &quot; Do not wrap lines\nset list\nset listchars=eol:\n,tab:&#x2B7E;&#x2B7E;,trail:~,extends:&gt;,precedes:&lt;,space:&#x23B5;\nset showmatch                                                    &quot; Highlight matching brace\nset visualbell                                                   &quot; Use visual bell (no beeping)\nset showcmd                                                      &quot; Show partial commands in the last line\n\nset hlsearch                                                     &quot; Highlight all search results\nset smartcase                                                    &quot; Enable smart-case search\nset ignorecase                                                   &quot; Always case-insensitive\nset incsearch                                                    &quot; Searches for strings incrementally\nset wildmenu                                                     &quot; Display tab complete options menu\nset encoding=utf-8                                               &quot; Use an encoding that supports unicode\n\n&quot;set autoindent                                                  &quot; Auto-indent new lines\n&quot;set smartindent                                                 &quot; Enable smart-indent\n&quot;set smarttab                                                    &quot; Enable smart-tabs\nset shiftwidth=4                                                 &quot; Number of auto-indent spaces\nset softtabstop=4                                                &quot; Number of spaces per Tab\nset tabstop=4                                                    &quot; Indent using four spaces\nset expandtab                                                    &quot; Convert tabs to spaces.\n\n&quot; Advanced\nset ruler                                                        &quot; Show row and column ruler information\n&quot;set showtabline=2                                               &quot; Show tab bar\nset cmdheight=2                                                  &quot; Command line height\n\nset undolevels=1000                                              &quot; Number of undo levels\nset backspace=indent,eol,start                                   &quot; Backspacing over indention, line breaks and insertion start\nset dir=~/.cache/vim                                             &quot; Directory to store swap files\nset backupdir=~/.cache/vim                                       &quot; Directory to store backup files\nset undodir=~/.cache/vim/undo                                    &quot; Directory to store undo cache\n\nnnoremap &lt;silent&gt; &lt;C-l&gt; :nohl&lt;CR&gt;\nnnoremap &lt;silent&gt; &lt;C-s&gt; :term&lt;CR&gt;\nnnoremap &lt;silent&gt; &lt;leader&gt;[ :bp&lt;CR&gt;\nnnoremap &lt;silent&gt; &lt;leader&gt;] :bn&lt;CR&gt;\nnnoremap &lt;leader&gt;so :so ~/.config/vim/sessions/\nnnoremap &lt;silent&gt; &lt;F3&gt; :set list!&lt;CR&gt;\nnnoremap &lt;silent&gt; &lt;leader&gt;cc :set cc-=5&lt;CR&gt;:set cc-=76&lt;CR&gt;\nnnoremap &lt;silent&gt; &lt;leader&gt;cc1 :set cc+=5&lt;CR&gt;:set cc-=76&lt;CR&gt;\nnnoremap &lt;silent&gt; &lt;leader&gt;cc2 :set cc+=76&lt;CR&gt;:set cc-=5&lt;CR&gt;\nvnoremap &lt;silent&gt; &lt;F6&gt; :w !xsel -ib&lt;CR&gt;&lt;CR&gt;\nnnoremap &lt;silent&gt; &lt;F7&gt; :-r !xsel -ob&lt;CR&gt;\n\nnnoremap &lt;leader&gt;7 :setlocal spell spelllang=en_us&lt;CR&gt;\nnnoremap &lt;leader&gt;8 :setlocal nospell&lt;CR&gt;</code></pre>\n<h3 id=\"my-markdown.vim-custom-session.\">My <code>markdown.vim</code>\ncustom session.</h3>\n<pre><code>iabbr 3* * * *\n\nnnoremap &lt;leader&gt;1 I- &lt;Esc&gt;\nnnoremap &lt;leader&gt;2 I    - &lt;Esc&gt;\nnnoremap &lt;leader&gt;3 I        - &lt;Esc&gt;\nnnoremap &lt;leader&gt;f3 :%s/&#x2013;/-/ge &lt;bar&gt; s/[d*]//ge &lt;bar&gt; %s/&#x2014;/-/ge &lt;bar&gt; w &lt;CR&gt;\nnnoremap &lt;leader&gt;h1 I# &lt;Esc&gt;A #&lt;Esc&gt;02o&lt;Esc&gt;\nnnoremap &lt;leader&gt;h2 I## &lt;Esc&gt;A ##&lt;Esc&gt;02o&lt;Esc&gt;\nnnoremap &lt;leader&gt;h3 I### &lt;Esc&gt;A ###&lt;Esc&gt;02o&lt;Esc&gt;\nnnoremap &lt;leader&gt;l1 1k0v$hdI- **Source:** [&lt;Esc&gt;pA](&lt;Esc&gt;gJA) &lt;Esc&gt;0:w&lt;CR&gt;\nnnoremap &lt;leader&gt;l2 1k0v$hdI- **Supporting Source:** [&lt;Esc&gt;pA](&lt;Esc&gt;gJA) &lt;Esc&gt;0:w&lt;CR&gt;\nnnoremap &lt;leader&gt;l3 i[]()  &lt;Esc&gt;b\nvnoremap &lt;leader&gt;n1 :s/  *$/ \\/e &lt;bar&gt; .v/ \\$/norm A &lt;CR&gt;:nohl&lt;CR&gt;\nvnoremap &lt;leader&gt;n2 :s/ \\$/  /e &lt;bar&gt; .v/  $/norm A  &lt;CR&gt;:nohl&lt;CR&gt;\n\nvnoremap &lt;leader&gt;c1 di``&lt;Esc&gt;1hp\nvnoremap &lt;leader&gt;c2 di```&lt;CR&gt;```&lt;Esc&gt;1kp\nvnoremap &lt;leader&gt;f1 :s/  */ /g &lt;bar&gt; w &lt;bar&gt; :nohl &lt;bar&gt;, !fmt -w 76 &lt;CR&gt;:w&lt;CR&gt;\nvnoremap &lt;leader&gt;f2 :s/  */ /g &lt;bar&gt; w &lt;bar&gt; :nohl &lt;bar&gt;, !fmt -w 76 &lt;CR&gt;VG:s/$/ \\/ &lt;bar&gt; w &lt;bar&gt; :nohl&lt;CR&gt;2o&lt;Esc&gt;:w&lt;CR&gt;\n\nvnoremap &lt;C-b&gt; di****&lt;Esc&gt;2hp\nvnoremap &lt;C-i&gt; di**&lt;Esc&gt;1hp</code></pre>\n<p>Just source this file.<br />\n<code>:so ~/path/to/file.vim</code></p>\n<p>Just because I don\'t want to be a tease; here is the Thunderbird\none-liner. Don\'t die on that hill!<br />\n<code>nnoremap &lt;leader&gt;1 2dw$x0:s/ OR /rOR /g&lt;CR&gt;gg02f,&lt;C-v&gt;G$ugg02f,&lt;C-v&gt;G$:sort u&lt;CR&gt;gg0VG:s/$/ /&lt;CR&gt;gg0VG:s/  *$/ /&lt;CR&gt;ggVGJIcondition=\"&lt;Esc&gt;A\"&lt;Esc&gt;0:s/ \"$/\"/&lt;CR&gt;:w&lt;CR&gt;</code></p>\n',391,82,0,'CC-BY-SA','RESERVE SHOW,Vim, :mksessions, :source, .vimrc, vim hints',0,0,1),
(3967,'2023-10-17','Unsolicited thoughts on running open source software projects',451,'A man talks to himself during his drive home from work.','<p>Some thoughts on the different ways you can run an open source\nsoftware project, comparing projects like password-store, which are\nbased on a mailing list and use a minimal forge platform, and others\nthat are based on a fancy forge like Github.</p>\n<p>I think the fancy forge gives the open source software project a vibe\nthat we\'re more used to, in our capitalist society. It\'s a more\ncentralized structure that feels more like a service that\'s being\noffered to the public, mostly in one direction. Meanwhile software\nprojects that don\'t have a platform for creating road maps, issues, pull\nrequests etc actually foster a stronger and more open community\nstructure, rather counter-intuitively, because the software is free and\neveryone is able to contribute and modify the software for their own\nuse, and they in fact do. The idea of a canonical version of the\nsoftware is only a convenience, not a defining feature of it.</p>\n<p>Let me know your thoughts on this.</p>\n',399,0,0,'CC-BY-SA','RESERVE SHOW,software governance',0,0,1),
(3968,'2023-10-18','About USBimager - part 1/2',681,'Why you should be using USBimager too, an introduction.','<p>USBImager is a really really simple GUI application that writes\ncompressed disk images to USB drives and creates backups.</p>\n<p>Available platforms: Windows, MacOSX and Linux. <a\nhref=\"http://gitlab.com/bztsrc/usbimager\"\nclass=\"uri\">http://gitlab.com/bztsrc/usbimager</a></p>\n<p>Just for Windows</p>\n<ul>\n<li>Rufus - Windows only <a href=\"http://github.com/pbatard/rufus\"\nclass=\"uri\">http://github.com/pbatard/rufus</a></li>\n<li>USB Image Tool - Windows only <a\nhref=\"http://www.alexpage.de/tag/usb-image-tool/\"\nclass=\"uri\">http://www.alexpage.de/tag/usb-image-tool/</a></li>\n<li>WIN32 Disk Imager - Windows only last update 2017-03-08 <a\nhref=\"http://sourceforge.net/projects/win32diskimager/\"\nclass=\"uri\">http://sourceforge.net/projects/win32diskimager/</a></li>\n</ul>\n<p>Don\'t miss part 2!</p>\n',421,0,0,'CC-BY-SA','RESERVE SHOW,flash,writing,software,usb',0,0,1),
(3969,'2023-10-19','Game Sales',865,'I have recently found some bargains and wanted the share that with the community.','<p>There are some games I will buy for the full prices as soon as they\nare released, such as any of the Civilization games. But I also like to\nfind bargains, and I recently scored a fantastic deal on Steam that\nmotivated me to share this information with the community since I know\nthere are other people out there who enjoy computer games.</p>\n<h2 id=\"links\">Links</h2>\n<ul>\n<li><a href=\"https://store.steampowered.com/\"\nclass=\"uri\">https://store.steampowered.com/</a></li>\n<li><a href=\"https://www.gog.com/en/games\"\nclass=\"uri\">https://www.gog.com/en/games</a></li>\n<li><a href=\"https://www.youtube.com/@JumboPixel\"\nclass=\"uri\">https://www.youtube.com/@JumboPixel</a></li>\n<li><a href=\"https://www.humblebundle.com/games\"\nclass=\"uri\">https://www.humblebundle.com/games</a></li>\n<li><a href=\"https://www.palain.com/travel/colorado-2023/\"\nclass=\"uri\">https://www.palain.com/travel/colorado-2023/</a></li>\n</ul>\n',198,122,0,'CC-BY-SA','RESERVE SHOW,Computer Games, Bargains, Sales',0,0,1),
(3972,'2023-10-24','Thunderbird inbox filtering: keeping a clean/orderly inbox.',662,'Sgoti talks about filtering your inbox.','<h2\nid=\"thunderbird-inbox-filtering-keeping-a-cleanorderly-inbox.\">Thunderbird\ninbox filtering: keeping a clean/orderly inbox.</h2>\n<ul>\n<li><strong>Source:</strong> <a\nhref=\"https://www.thunderbird.net/en-US/\">Thunderbird: Free Your\nInbox.</a>\n<ul>\n<li><strong>Supporting Source:</strong> <a\nhref=\"https://support.mozilla.org/en-US/kb/organize-your-messages-using-filters\">Organize\nYour Messages by Using Filters.</a>\n<ul>\n<li>Message filters allow you to set up Thunderbird to organize your\nmessages automatically. Each account has its own set of filters. Filters\ncan move messages to folders, delete them, forward them to other email\naddresses, and more.</li>\n<li>When you receive new mail - This is when Getting New Mail is\nselected (the default). Filters are applied to new mail in the inbox.\nThis can occur either before Thunderbird does its assessment of the mail\nas junk, or after. If you have difficulty with filtering the message\nbody, select after classification.</li>\n<li>Automatically applied filters are applied only to the inbox, with\nthe exception of Archive and after send filters, which apply only to the\nmails involved in the action to send or archive. Other folder types are\nnot affected.</li>\n</ul></li>\n<li><strong>Supporting Source:</strong> <a\nhref=\"https://support.mozilla.org/en-US/kb/protect-your-thunderbird-passwords-primary-password\">Protect\nyour Thunderbird passwords with a Primary Password.</a>\n<ul>\n<li>Thunderbird can save passwords for each account, so you don\'t have\nto re-enter them when you check for new messages. You can view them and\nremove the ones you don\'t use anymore.</li>\n<li><strong>Do you want to prevent others from seeing your\nmessages?</strong> If you are sharing a computer, the most secure way is\nto create a separate OS user account on the operating system for each\nperson, and make sure your OS account requires a password. Thunderbird\nstores accounts, messages and password information separately for each\noperating system account.</li>\n</ul></li>\n</ul></li>\n</ul>\n<p>This work is licensed under a <a\nhref=\"https://creativecommons.org/licenses/by-sa/4.0/\"\ntitle=\"CC-BY-SA 4.0 International\">Creative Commons\nAttribution-ShareAlike 4.0 International License</a>.</p>\n',391,0,0,'CC-BY-SA','Thunderbird, email filters, inbox filters',0,0,1),
(3974,'2023-10-26','About USBimager - part 2/2',938,'Why you should be using USBimager too, an introduction.','<p>Because you want to make changes on a storage device, you are asked\nto enter your password. You can add your user to the group: disk to\navoid this.</p>\n<p>who or whoami - my login-name</p>\n<p>id - more details</p>\n<p>groups - all your groups</p>\n<p>less /etc/group | grep disk - focus on disk</p>\n<p>Add an existing user to another group, like this:</p>\n<pre><code>sudo usermod -aG disk LOGIN-NAME</code></pre>\n<p>I saw my entry not immediately check it with:\n<code>cat /etc/group</code></p>\n<hr />\n<p>Under releases <a\nhref=\"http://gitlab.com/bztsrc/usbimager\">http://gitlab.com/bztsrc/usbimager</a>\nyou may find your preferred pre built binary, if not, I recommend this\nlink <a\nhref=\"http://gitlab.com/bztsrc/usbimager/tree/binaries\">http://gitlab.com/bztsrc/usbimager/tree/binaries</a></p>\n',421,0,0,'CC-BY-SA','flash, writing, software, usb',0,0,1),
(3975,'2023-10-27','Mesa Verde 20230618',649,'Our story of a day tour in Mesa Verde, Colorado','<p>We had occasion to travel to Colorado for a wedding, and took a\nlittle extra time to visit Mesa Verde. This is a site originally\ninhabited by the Puebloan people (as the Spanish called them) that was\nlocated on a Mesa in the vicinity of the Rocky Mountains. The site is\nnot far from New Mexico, and our tour was fascinating, so I am sharing\nit with you.</p>\n<h2 id=\"links\">Links</h2>\n<ul>\n<li><a href=\"https://www.nps.gov/meve/index.htm\"\nclass=\"uri\">https://www.nps.gov/meve/index.htm</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjAKVdo\"\nclass=\"uri\">https://flic.kr/s/aHBqjAKVdo</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjAKX1y\"\nclass=\"uri\">https://flic.kr/s/aHBqjAKX1y</a></li>\n<li><a href=\"https://www.palain.com/travel/colorado-2023/\"\nclass=\"uri\">https://www.palain.com/travel/colorado-2023/</a></li>\n</ul>\n',198,119,0,'CC-BY-SA','Travel, Native Americans, Colorado',0,0,1),
(3976,'2023-10-30','The Evolution of Windows\' Snipping Tool',348,'KD gives some history of the evolution of screenshot capabilities on Windows.','<p>Some links to items discussed on this episode:</p>\n<ul>\n<li><a\nhref=\"https://support.eset.com/en/kb2727-how-do-i-take-a-screenshot\">The\n\"Old\" Screenshot Method</a></li>\n<li><a href=\"https://learn.microsoft.com/en-us/windows/powertoys/\">What\nare Windows PowerToys?</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Windows_Ink\">Windows Ink\nWorkspace</a></li>\n<li><a\nhref=\"https://www.makeuseof.com/how-to-screen-record-with-windows-11-snipping-tool/\">How\nto Screen Record</a></li>\n<li><a\nhref=\"https://kdmurray.com/2023/09/24/the-evolution-of-windows-snipping-tool/\">Accompanying\nBlog Post and quasi-transcript</a></li>\n</ul>\n',266,0,0,'CC-BY-SA','software, screenshot, screen capture, technology, utilities, windows',0,0,1),
(3977,'2023-10-31','Creative Commons Search Engine',277,'There is a new search engine for Creative Commons content','<p>Creative Commons has a new search engine available called Openverse.\nThis is the evolution of the old CC Search developed by Creative\nCommons, which was taken over by WordPress, and now has further\nevolved.</p>\n<h2 id=\"links\">Links</h2>\n<ul>\n<li><a href=\"https://openverse.org/\"\nclass=\"uri\">https://openverse.org/</a></li>\n<li><a href=\"https://openverse.org/sources\"\nclass=\"uri\">https://openverse.org/sources</a></li>\n<li><a\nhref=\"https://make.wordpress.org/openverse/handbook/new-contributor-guide/\"\nclass=\"uri\">https://make.wordpress.org/openverse/handbook/new-contributor-guide/</a></li>\n<li><a\nhref=\"https://www.ahuka.com/a-search-engine-for-creative-commons-content/\"\nclass=\"uri\">https://www.ahuka.com/a-search-engine-for-creative-commons-content/</a></li>\n</ul>\n',198,0,0,'CC-BY-SA','Creative Commons, public domain, licensed content',0,0,1),
(3978,'2023-11-01','Driving in Virginia.',1813,'Sgoti talks about driving in the state of Virginia.','<ul>\n<li><p><strong>Source:</strong> <a\nhref=\"https://law.lis.virginia.gov/vacode/title18.2/chapter6/\">Code of\nVirginia - Chapter 6. Crimes Involving Fraud.</a></p></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://law.lis.virginia.gov/vacodefull/title8.01/chapter3/article7/\">Article\n7. Motor Vehicle Accidents.</a></p></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://law.lis.virginia.gov/vacodefull/title46.2/chapter8/article11/\">Article\n11. Accidents.</a></p></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://law.lis.virginia.gov/vacode/title46.2/chapter8/section46.2-896/\">&#xA7;\n46.2-896. Duties of driver in event of accident involving damage only to\nunattended property.</a></p></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://law.lis.virginia.gov/vacode/title46.2/chapter3/section46.2-373/\">&#xA7;\n46.2-373. Report by law-enforcement officer investigating\naccident.</a></p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://www.dmv.virginia.gov/about/#law_enf.asp\">DMV Law\nEnforcement Division.</a> DMV special agents have offices inside the\ncustomer service centers where they respond immediately to concerns,\nsuch as individuals who attempt to pass counterfeit documents. Their\npresence serves not only to deter attempts of criminal activity, but\nalso to facilitate partnerships with DMV customer service\nrepresentatives as a first line defense in the detection of fraudulent\ndocuments and apprehension of offenders. Field Investigations agents\nalso are charged with enforcing the Virginia Code section intended to\nprotect Virginia consumers from unsafe vehicles and vehicle fraud\narising from the illegal sale of vehicles without the required business\nand motor vehicle dealer licenses, safety inspections, warranties,\ntitling, or taxes. This statute also protects licensed motor vehicle\ndealers from unfair and illegal competition and ensures that the state\nand localities collect appropriate revenues.</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://www.dmv.virginia.gov/#/\">Virginia Department of Motor\nVehicles.</a></p></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://www.google.com/url?client=internal-element-cse&amp;cx=004021148943282517298:oscb2opeqqq&amp;q=https://www.dmv.virginia.gov/webdoc/pdf/dmv39.pdf&amp;sa=U&amp;ved=2ahUKEwjJqvWpmPj_AhWgEmIAHQ2bC0AQFnoECAEQAQ&amp;usg=AOvVaw2ZeF0W0UPD9mRmstXxVtEZ\">Virginia\nDriver\'s Manual.</a></p></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://www.dmv.virginia.gov/drivers/#manual.asp\">Interactive\nDriver\'s Manual With Practice Questions.</a></p></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://www.google.com/url?client=internal-element-cse&amp;cx=004021148943282517298:oscb2opeqqq&amp;q=https://www.dmv.virginia.gov/webdoc/pdf/dmv60a.pdf&amp;sa=U&amp;ved=2ahUKEwjJqvWpmPj_AhWgEmIAHQ2bC0AQFnoECAgQAQ&amp;usg=AOvVaw2Yu09sDKcw8ZxpzycZgSTr\">Commercial\nDriver License Manual.</a></p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://www.dmv.virginia.gov/safety/#crash_data/crash_facts/index.asp\">Virginia\nTraffic Crash Facts.</a></p></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://www.dmv.virginia.gov/safety/#crash_data/index.asp\">Related\nCrash Data.</a></p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://www.nicb.org/prevent-fraud-theft/staged-auto-accident-fraud\">Staged\nAuto Accident Fraud.</a></p></li>\n</ul>\n<p>This work is licensed under a <a\nhref=\"https://creativecommons.org/licenses/by-sa/4.0/\"\ntitle=\"CC-BY-SA 4.0 International\">Creative Commons\nAttribution-ShareAlike 4.0 International License</a>.</p>\n',391,0,0,'CC-BY-SA','Virginia, Driving, CDL, Fraud',0,0,1),
(3979,'2023-11-02','FireStick and ad blocking',1501,'operat0r talks about recent apps for firestick and blocking ads','<p>I talk about recent apps for firestick and blocking ads</p>\n',36,0,1,'CC-BY-SA','streaming,tv,ad blocking,youtube',0,0,1),
(3982,'2023-11-07','Conversation with ChatGPT',218,'Conversation with ChatGPT about EU Cookie banners','<h2 id=\"the-following-conversation-is-from-my-query-to-chatgpt\">The\nfollowing conversation is from my query to ChatGPT</h2>\n<p><a\nhref=\"https://hackerpublicradio.org/eps/hpr3982/hpr3982/conversation.html\"\ntitle=\"Conversation with ChatGPT\">conversation.html</a></p>\n',318,0,0,'CC-BY-SA','ChatGPT, EU, GDPR, cookies',0,0,1),
(3983,'2023-11-08','ChatGPT Output is not compatible with CC-BY-SA',536,'Ken is not a lawyer but is fairly sure that ChatGPT is not compatible with Creative Commons','<p>When uploading to HPR you are\n<a href=\"https://hackerpublicradio.org/about.html#agreement\">You are\nagreeing to license your show CC-BY-SA.</a></p>\n<blockquote>\n<p>All our shows are now released under a Creative Commons\nAttribution-ShareAlike 4.0 International (CC BY-SA 4.0) license, which\nmeans that while you continue to retain the copyright to your show, you\nare allowing us (and everyone else) to use it provided we give you\nattribution and that we release it under the same license. Click the\nlink for more information.</p>\n</blockquote>\n<p>The\n<a href=\"https://creativecommons.org/licenses/by-sa/4.0/\">Creative\nCommons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)\nlicense</a> itself says that sharing (the S in CC-BY-SA), allows you to\n\"copy and redistribute the material in any medium or format for any\npurpose, even commercially\".</p>\n<p>On the face of it the\n<a href=\"https://openai.com/policies/terms-of-use#3-content\">OpenAI\nChatGPT Terms of use</a> seem similar, with Section 3 saying \"you can\nuse Content for any purpose, including commercial purposes\".\nUnfortunately they then go on to say \"Subject to your compliance with\nthese Terms\":</p>\n<pre><code>      3. Content\n\n      (a) Your Content. You may provide input to the Services (&#x201C;Input&#x201D;), and\n      receive output generated and returned by the Services based on the Input\n      (&#x201C;Output&#x201D;). Input and Output are collectively &#x201C;Content.&#x201D; As between the\n      parties and to the extent permitted by applicable law, you own all\n      Input. Subject to your compliance with these Terms, OpenAI hereby\n      assigns to you all its right, title and interest in and to Output. This\n      means you can use Content for any purpose, including commercial purposes\n      such as sale or publication, if you comply with these Terms. OpenAI may\n      use Content to provide and maintain the Services, comply with applicable\n      law, and enforce our policies. You are responsible for Content,\n      including for ensuring that it does not violate any applicable law or\n      these Terms.</code></pre>\n<p>The same document lists some restrictions...</p>\n<pre><code>      2. Usage Requirements\n\n      (c) Restrictions. You may not (i) use the Services in a way that\n      infringes, misappropriates or violates any person&#x2019;s rights; (ii) reverse\n      assemble, reverse compile, decompile, translate or otherwise attempt to\n      discover the source code or underlying components of models, algorithms,\n      and systems of the Services (except to the extent such restrictions are\n      contrary to applicable law); (iii) use output from the Services to\n      develop models that compete with OpenAI;</code></pre>\n<p>... while the\n<a href=\"https://openai.com/policies/usage-policies\">Usage policies</a>\nlist more.</p>\n<p>So in my opinion, and I am not a lawyer (IANAL) the\n<a href=\"https://openai.com/policies/terms-of-use#3-content\">OpenAI\nChatGPT Terms of use</a> is not compatible with the\n<a href=\"https://creativecommons.org/licenses/by-sa/4.0/\">Creative\nCommons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)\nlicense</a>.</p>\n<p>You can of course refer to ChatGPT as you would any other non\nCreative Commons site.</p>\n<p>If you disagree or would like to weigh in please discuss this on the\nmail list.</p>\n',30,0,0,'CC-BY-SA','CreativeCommons, CC-BY-SA, ChatGPT, HPR, CC',0,0,1),
(3984,'2023-11-09','Whoppers. How Archer72 and I made moonshine. Volume one.',1730,'Sgoti assists Archer72 with his crazy plan to make moonshine.','<p>What is a whopper?<br />\n<a href=\"https://www.merriam-webster.com/dictionary/whopper\">an\nextravagant or monstrous lie</a><br />\n<a href=\"https://dictionary.cambridge.org/dictionary/english/whopper\">a\nbig lie</a><br />\n</p>\n<p>A work of <a href=\"https://en.wikipedia.org/wiki/Fiction\">Fiction</a>\nis any creative work, chiefly any narrative work, portraying\nindividuals, events, or places that are imaginary or in ways that are\nimaginary.<br />\n</p>\n<ul>\n<li><strong>Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Moonshine\">Moonshine</a> is\nhigh-proof liquor, generally whiskey, traditionally made, or at least\ndistributed, illegally.<br />\n</li>\n<li><strong>Supporting Source:</strong> <a\nhref=\"https://katexic.com/word/busthead-bust-head/\">busthead\n(bust-head).</a> noun. Cheap, strong liquor, usually of the illegal\nvariety. Moonshine. Hooch. Poteen. Pop-skull. Bumblings. The origin is\nobvious to anyone who&#x2019;s hit the busthead a little hard themselves.<br />\n</li>\n</ul>\n<p>The Bureau of Alcohol, Tobacco, Firearms and Explosives (<a\nhref=\"https://en.wikipedia.org/wiki/Bureau_of_Alcohol,_Tobacco,_Firearms_and_Explosives\">BATFE</a>),\ncommonly referred to as the ATF, is a domestic law enforcement agency\nwithin the United States Department of Justice.<br />\n</p>\n<ul>\n<li><strong>Source:</strong> <a\nhref=\"https://hackerpublicradio.org/correspondents/0318.html\">Archer72</a><br />\n</li>\n<li><strong>Source:</strong> <a\nhref=\"https://hackerpublicradio.org/correspondents/0401.html\">Mechatroniac</a><br />\n</li>\n<li><strong>Source:</strong> <a\nhref=\"https://hackerpublicradio.org/correspondents/0078.html\">Klaatu</a><br />\n</li>\n<li><strong>Source:</strong> <a\nhref=\"https://hackerpublicradio.org/correspondents/0377.html\">Zen_Floater2</a><br />\n</li>\n</ul>\n',391,0,1,'CC-BY-SA','Whoppers, Moonshine, Archer72',0,0,1),
(3985,'2023-11-10','Bash snippet - be careful when feeding data to loops',1644,'A loop in a pipeline runs in a subshell','<article>\n<h2 id=\"overview\">Overview</h2>\n<p>Recently Ken Fallon did a show on HPR, <a\nhref=\"https://hackerpublicradio.org/eps/hpr3962/index.html\">number\n3962</a>, in which he used a <a\nhref=\"https://www.gnu.org/software/bash/manual/html_node/Pipelines.html\">Bash\npipeline</a> of multiple commands feeding their output into a\n<code>while</code> loop. In the loop he processed the lines produced by\nthe pipeline and used what he found to download audio files belonging to\na series with <code>wget</code>.</p>\n<p>This was a great show and contained some excellent advice, but the\nuse of the format:</p>\n<pre><code>pipeline | while read variable; do ...</code></pre>\n<p>reminded me of the \"gotcha\" I mentioned in my own <a\nhref=\"https://hackerpublicradio.org/eps/hpr2699/index.html\">show\n2699</a>.</p>\n<p>I thought it might be a good time to revisit this subject.</p>\n<h2 id=\"so-whats-the-problem\">So, what\'s the problem?</h2>\n<p>The problem can be summarised as a side effect of pipelines.</p>\n<h3 id=\"what-are-pipelines\">What are pipelines?</h3>\n<p>Pipelines are an amazingly useful feature of Bash (and other shells).\nThe general format is:</p>\n<pre><code>command1 | command2 ...</code></pre>\n<p>Here <code>command1</code> runs in a subshell and produces output (on\nits <em>standard output</em>) which is connected via the pipe symbol\n(<code>|</code>) to <code>command2</code> where it becomes its\n<em>standard input</em>. Many commands can be linked together in this\nway to achieve some powerful combined effects.</p>\n<p>A very simple example of a pipeline might be:</p>\n<pre><code>$ printf &#39;World&bsol;nHello&bsol;n&#39; | sort\nHello\nWorld</code></pre>\n<p>The <code>printf</code> command (≡<code>\'command1\'</code>) writes two\nlines (separated by newlines) on <em>standard output</em> and this is\npassed to the <code>sort</code> command\'s <em>standard input</em>\n(≡<code>\'command2\'</code>) which then sorts these lines\nalphabetically.</p>\n<p>Commands in the pipeline can be more complex than this, and in the\ncase we are discussing we can include a loop command such as\n<code>while</code>.</p>\n<p>For example:</p>\n<pre><code>$ printf &#39;World&bsol;nHello&bsol;n&#39; | sort | while read line; do echo &quot;($line)&quot;; done\n(Hello)\n(World)</code></pre>\n<p>Here, each line output by the <code>sort</code> command is read into\nthe variable <code>line</code> in the <code>while</code> loop and is\nwritten out enclosed in parentheses.</p>\n<p>Note that the loop is written on one line. The semi-colons are used\ninstead of the equivalent newlines.</p>\n<h3 id=\"variables-and-subshells\">Variables and subshells</h3>\n<p>What if the lines output by the loop need to be numbered?</p>\n<pre><code>$ i=0; printf &#39;World&bsol;nHello&bsol;n&#39; | sort | while read line; do ((i++)); echo &quot;$i) $line&quot;; done\n1) Hello\n2) World</code></pre>\n<p>Here the variable <code>\'i\'</code> is set to zero before the\npipeline. It could have been done on the line before of course. In the\n<code>while</code> loop the variable is incremented on each iteration\nand included in the output.</p>\n<p>You might expect <code>\'i\'</code> to be 2 once the loop exits but it\nis not. It will be zero in fact.</p>\n<p>The reason is that there are two <code>\'i\'</code> variables. One is\ncreated when it\'s set to zero at the start before the pipeline. The\nother one is created in the loop as a \"clone\". The expression:</p>\n<pre><code>((i++))</code></pre>\n<p>both creates the variable (where it is a copy of the one in the\nparent shell) and increments it.</p>\n<p>When the subshell in which the loop runs completes, it will delete\nthis version of <code>\'i\'</code> and the original one will simply\ncontain the zero that it was originally set to.</p>\n<p>You can see what happens in this slightly different example:</p>\n<pre><code>$ i=1; printf &#39;World&bsol;nHello&bsol;n&#39; | sort | while read line; do ((i++)); echo &quot;$i) $line&quot;; done\n2) Hello\n3) World\n$ echo $i\n1</code></pre>\n<p>These examples are fine, assuming the contents of variable\n<code>\'i\'</code> incremented in the loop are not needed outside it.</p>\n<p>The thing to remember is that the same variable name used in a\nsubshell is a different variable; it is initialised with the value of\nthe \"parent\" variable but any changes are not passed back.</p>\n<h2 id=\"how-to-avoid-the-loss-of-changes-in-the-loop\">How to avoid the\nloss of changes in the loop</h2>\n<p>To solve this the loop needs to be run in the original shell, not a\nsubshell. The pipeline which is being read needs to be attached to the\nloop in a different way:</p>\n<pre><code>$ i=0; while read line; do ((i++)); echo &quot;$i) $line&quot;; done &lt; &lt;(printf &#39;World&bsol;nHello&bsol;n&#39; | sort)\n1) Hello\n2) World\n$ echo $i\n2</code></pre>\n<p>What is being used here is <a\nhref=\"https://www.gnu.org/software/bash/manual/html_node/Process-Substitution.html\"><em>process\nsubstitution</em></a>. A list of commands or pipelines are enclosed with\nparentheses and a <code>\'less than\'</code> sign prepended to the list\n(with no intervening spaces). This is functionally equivalent to a\n(temporary) file of data.</p>\n<p>The <em>redirection</em> feature allows for data being read from a\nfile in a loop. The general format of the command is:</p>\n<pre><code>while read variable\n    do\n       # Use the variable\n    done &lt; file</code></pre>\n<p>Using process substitution instead of a file will achieve what is\nrequired if computations are being done in the loop and the results are\nwanted after it has finished.</p>\n<h3 id=\"beware-of-this-type-of-construct\">Beware of this type of\nconstruct</h3>\n<p>The following one-line command sequence looks similar to the version\nusing process substitution, but is just another form of pipeline:</p>\n<pre><code>$ i=0; while read line; do echo $line; ((i++)); done &lt; /etc/passwd | head -n 5; echo $i\nroot:x:0:0:root:/root:/bin/bash\ndaemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin\nbin:x:2:2:bin:/bin:/usr/sbin/nologin\nsys:x:3:3:sys:/dev:/usr/sbin/nologin\nsync:x:4:65534:sync:/bin:/bin/sync\n0</code></pre>\n<p>This will display the first 5 lines of the file but does it by\nreading and writing the entire file and only showing the first 5 lines\nof what is written by the loop.</p>\n<p>What is more, because the <code>while</code> is in a subshell in a\npipeline changes to variable <code>\'i\'</code> will be lost.</p>\n<h2 id=\"advice\">Advice</h2>\n<ul>\n<li><p>Use the <em>pipe-connected-to-loop</em> layout if you\'re aware of\nthe pitfalls, but will not be affected by them.</p></li>\n<li><p>Use the <em>read-from-process-substitution</em> format if you\nwant your loop to be complex and to read and write variables in the\nscript.</p></li>\n<li><p>Personally, I always use the second form in scripts, but if I\'m\nwriting a temporary one-line thing on the command line I usually use the\nfirst form.</p></li>\n</ul>\n<h2 id=\"tracing-pipelines-advanced\">Tracing pipelines (advanced)</h2>\n<p>I have always wondered about processes in Unix. The process you log\nin to, normally called a <em>shell</em> runs a <em>command language\ninterpreter</em> that executes commands read from the standard input or\nfrom a file. There are several such interpreters available, but we\'re\ndealing with <em>bash</em> here.</p>\n<p>Processes are fairly lightweight entities in Unix/Linux. They can be\ncreated and destroyed quickly, with minimal overhead. I used to work\nwith Digital Equipment Corporation\'s <em>OpenVMS</em> operating system\nwhich also uses processes - but these are much more expensive to create\nand destroy, and therefore slow and less readily used!</p>\n<p>Bash pipelines, as discussed, use <em>subshells</em>. The description\nin the Bash man page says:</p>\n<blockquote>\n<p>Each command in a multi-command pipeline, where pipes are created, is\nexecuted in a subshell, which is a separate process.</p>\n</blockquote>\n<p>So a <em>subshell</em> in this context is basically another child\nprocess of the main login process (or other parent process), running\nBash.</p>\n<p>Processes (subshells) can be created in other ways. One is to place a\ncollection of commands in parentheses. These can be simple Bash\ncommands, separated by semi-colons, or pipelines. For example:</p>\n<pre><code>$ (echo &quot;World&quot;; echo &quot;Hello&quot;) | sort\nHello\nWorld</code></pre>\n<p>Here the strings <code>\"World\"</code> and <code>\"Hello\"</code>, each\nfollowed by a newline are created in a subshell and written to standard\noutput. These strings are piped to <code>sort</code> and the end result\nis as shown.</p>\n<p>Note that this is different from this example:</p>\n<pre><code>$ echo &quot;World&quot;; echo &quot;Hello&quot; | sort\nWorld\nHello</code></pre>\n<p>In this case <code>\"World\"</code> is written in a separate command,\nthen <code>\"Hello\"</code> is written to a pipeline. All\n<code>sort</code> sees is the output from the second <code>echo</code>,\nwhich explains the output.</p>\n<p>Each process has a unique numeric id value (the <em>process id</em>\nor <em>PID</em>). These can be seen with tools like <code>ps</code> or\n<code>htop</code>. Each process holds its own PID in a Bash variable\ncalled <code>BASHPID</code>.</p>\n<p>Knowing all of this I decided to modify Ken\'s script from <a\nhref=\"https://hackerpublicradio.org/eps/hpr3962/index.html\">show\n3962</a> to show the processes being created - mainly for my interest,\nto get a better understanding of how Bash works. I am including it here\nin case it may be of interest to others.</p>\n<pre><code>#!/bin/bash\n\nseries_url=&quot;https://hackerpublicradio.org/hpr_mp3_rss.php?series=42&amp;full=1&amp;gomax=1&quot;\ndownload_dir=&quot;./&quot;\n\npidfile=&quot;/tmp/hpr3962.sh.out&quot;\ncount=0\n\necho &quot;Starting PID is $BASHPID&quot; &gt; $pidfile\n\n(echo &quot;[1] $BASHPID&quot; &gt;&gt; &quot;$pidfile&quot;; wget -q &quot;${series_url}&quot; -O -) |&bsol;\n    (echo &quot;[2] $BASHPID&quot; &gt;&gt; &quot;$pidfile&quot;; xmlstarlet sel -T -t -m &#39;rss/channel/item&#39; -v &#39;concat(enclosure/@url, &quot;→&quot;, title)&#39; -n -) |&bsol;\n    (echo &quot;[3] $BASHPID&quot; &gt;&gt; &quot;$pidfile&quot;; sort) |&bsol;\n    while read -r episode; do\n\n        [ $count -le 1 ] &amp;&amp; echo &quot;[4] $BASHPID&quot; &gt;&gt; &quot;$pidfile&quot;\n        ((count++))\n\n        url=&quot;$( echo &quot;${episode}&quot; | awk -F &#39;→&#39; &#39;{print $1}&#39; )&quot;\n        ext=&quot;$( basename &quot;${url}&quot; )&quot;\n        title=&quot;$( echo &quot;${episode}&quot; | awk -F &#39;→&#39; &#39;{print $2}&#39; | sed -e &#39;s/[^A-Za-z0-9]/_/g&#39; )&quot;\n        #wget &quot;${url}&quot; -O &quot;${download_dir}/${title}.${ext}&quot;\n    done\n\necho &quot;Final value of &bsol;$count = $count&quot;\necho &quot;Run &#39;cat $pidfile&#39; to see the PID numbers&quot;</code></pre>\n<p>The point of doing this is to get information about the pipeline\nwhich feeds data into the <code>while loop</code>. I kept the rest\nintact but commented out the <code>wget</code> command.</p>\n<p>For each component of the pipeline I added an <code>echo</code>\ncommand and enclosed it and the original command in parentheses, thus\nmaking a multi-command process. The <code>echo</code> commands write a\nfixed number so you can tell which one is being executed, and it also\nwrites the contents of <code>BASHPID</code>.</p>\n<p>The whole thing writes to a temporary file\n<code>/tmp/hpr3962.sh.out</code> which can be examined once the script\nhas finished.</p>\n<p>When the script is run it writes the following:</p>\n<pre><code>$ ./hpr3962.sh\nFinal value of $count = 0\nRun &#39;cat /tmp/hpr3962.sh.out&#39; to see the PID numbers</code></pre>\n<p>The file mentioned contains:</p>\n<pre><code>Starting PID is 80255\n[1] 80256\n[2] 80257\n[3] 80258\n[4] 80259\n[4] 80259</code></pre>\n<p>Note that the PID values are incremental. There is no guarantee that\nthis will be so. It will depend on whatever else the machine is\ndoing.</p>\n<p>Message number 4 is the same for every loop iteration, so I stopped\nit being written after two instances.</p>\n<p>The initial PID is the process running the script, not the login\n(parent) PID. You can see that each command in the pipeline runs in a\nseparate process (<em>subshell</em>), including the loop.</p>\n<p>Given that a standard pipeline generates a process per command, I was\nslightly surprised that the PID numbers were consecutive. It seems that\nBash optimises things so that only one process is run for each element\nof the pipe. I expect that it would be possible for more processes to be\ncreated by having pipelines within these parenthesised lists, but I\nhaven\'t tried it!</p>\n<p>I found this test script quite revealing. I hope you find it useful\ntoo.</p>\n<h2 id=\"links\">Links</h2>\n<ul>\n<li>Bash pipelines:\n<ul>\n<li><a\nhref=\"https://www.gnu.org/software/bash/manual/html_node/Pipelines.html\">GNU\nBash manual: 3.2.3 Pipelines</a></li>\n</ul></li>\n</ul>\n<ul>\n<li>Bash loops:\n<ul>\n<li><a\nhref=\"https://www.gnu.org/software/bash/manual/html_node/Looping-Constructs.html\">GNU\nBash manual: 3.2.5.1 Looping Constructs</a></li>\n</ul></li>\n</ul>\n<ul>\n<li>Bash process substitution:\n<ul>\n<li><a\nhref=\"https://www.gnu.org/software/bash/manual/html_node/Process-Substitution.html\">GNU\nBash manual: 3.5.6 Process Substitution</a></li>\n</ul></li>\n</ul>\n<ul>\n<li>HPR shows referenced:\n<ul>\n<li><a\nhref=\"https://hackerpublicradio.org/eps/hpr2045/index.html\">hpr2045 ::\nSome other Bash tips</a></li>\n<li><a\nhref=\"https://hackerpublicradio.org/eps/hpr2699/index.html\">hpr2699 ::\nBash Tips - 15</a></li>\n<li><a\nhref=\"https://hackerpublicradio.org/eps/hpr3962/index.html\">hpr3962 ::\nIt\'s your data</a></li>\n</ul></li>\n</ul>\n</article>\n',225,42,1,'CC-BY-SA','Bash,loop,process,shell',0,0,1),
(3992,'2023-11-21','Test recording on a wireless mic',223,'Archer72 tests out a wireless mic with a USB C receiver','<h2 id=\"lekato-2-pack-wireless-microphone-with-charging-case\">LEKATO 2\nPack Wireless Microphone with Charging Case</h2>\n<p><a href=\"https://www.amazon.com/gp/product/B0C4SNT6QK\"\nclass=\"uri\">https://www.amazon.com/gp/product/B0C4SNT6QK</a></p>\n<ul>\n<li>USB C</li>\n<li>Two microphones in a charging case</li>\n<li>Charge phone and use the receiver simultaneously</li>\n</ul>\n<h3 id=\"claims\">Claims</h3>\n<ul>\n<li>75 ft. transmission range</li>\n<li>Wireless Mic can work continuously for 5 hours, and the charging box\ncan quickly charge the device 4 times. The total usage time reaches 25\nhours</li>\n</ul>\n<h2 id=\"axet-audio-recorder-on-f-droid\">Axet Audio recorder on\nF-Droid</h2>\n<p><a href=\"https://f-droid.org/packages/com.github.axet.audiorecorder\"\nclass=\"uri\">https://f-droid.org/packages/com.github.axet.audiorecorder</a></p>\n<ul>\n<li>Works to record stereo with this mic set</li>\n</ul>\n',318,0,0,'CC-BY-SA','Recording, Microphone, Wireless, USB \'C\', F-droid, Android App',0,0,1),
(4221,'2024-10-07','HPR Community News for September 2024',0,'HPR Volunteers talk about shows released and comments posted in September 2024','',159,47,1,'CC-BY-SA','Community News',0,0,1),
(4241,'2024-11-04','HPR Community News for October 2024',0,'HPR Volunteers talk about shows released and comments posted in October 2024','',159,47,1,'CC-BY-SA','Community News',0,0,1),
(3986,'2023-11-13','Optical media is not dead',435,'Archer72 shows command line options for creating and writing iso files','<h2 id=\"brought-up-by-klaatu-on-gnuworldorder.info\">Brought up by Klaatu\non GnuWorldOrder.info</h2>\n<h3 id=\"media-size\">Media size</h3>\n<p>4.7Gb DVD - Actual capacity: 4.377Gb</p>\n<p><a\nhref=\"https://www.cdrom2go.com/blog/what-is-the-actual-storage-capacity-of-a-dvd-disc\"\ntitle=\"What is the actual storage capacity of a dvd disc\">What is the\nactual storage capacity of a dvd disc</a></p>\n<p>A disc with a 25GB capacity is the equivalent of 23.28 gigabytes\nNormally rated at 50GB, in practice they can record about 46.57GB of\ndata</p>\n<p><a\nhref=\"https://www.cdrom2go.com/blog/what-is-the-maximum-capacity-of-a-blu-ray-disc\"\ntitle=\"What is the maximum capacity of a blu ray disc\">What is the\nmaximum capacity of a blu ray disc</a></p>\n<p>Generate ISO image from directory</p>\n<pre><code>genisoimage -U -R -allow-lowercase -allow-multidot -o mydvd.iso &quot;$1&quot;</code></pre>\n<p>Alternative is <em>mkisofs</em></p>\n<pre><code>-U\n\nAllows &quot;untranslated&quot; filenames, completely violating the ISO9660 standards described above. Enables the following flags: -d -l -N -allow-leading-dots -relaxed-filenames -allow-lowercase -allow-multidot -no-iso-translate. Allows more than one `.&#39; character in the filename, as well as mixed-case filenames. This is useful on HP-UX, where the built-in cdfs filesystem does not recognize any extensions. Use with extreme caution.\n\n-R\n\nGenerate SUSP and RR records using the Rock Ridge protocol to further describe the files on the ISO9660 filesystem.\n\n[Wikipedia - ISO 9660](https://en.wikipedia.org/wiki/ISO_9660#SUSP &quot;Wikipedia - ISO 9660&quot;)</code></pre>\n<h3 id=\"corrected-command\">Corrected command</h3>\n<pre><code>genisoimage -R -o mydvd.iso &quot;$1&quot;</code></pre>\n<p>Burning data to a DVD or Blu-ray</p>\n<p>Note:</p>\n<p>Make sure that the medium is not mounted when you begin to write to\nit. Mounting may happen automatically if the medium contains a readable\nfile system. In the best case, it will prevent the burn programs from\nusing the burner device. In the worst case, there will be misburns\nbecause read operations disturbed the drive. So if in doubt, do:</p>\n<pre><code>umount /dev/sr0</code></pre>\n<p>growisofs has a small bug with blank BD-R media. It issues an error\nmessage after the burning is complete. Programs like k3b then believe\nthe whole burn run failed. To prevent this, either format the blank BD-R\nby dvd+rw-format /dev/sr0 before submitting it to growisofs or use\ngrowisofs option</p>\n<pre><code>-use-the-force-luke=spare:none</code></pre>\n<p><a\nhref=\"https://wiki.archlinux.org/title/Optical_disc_drive#Burning_an_ISO_image_to_CD,_DVD,_or_BD\"\ntitle=\"Archwiki - Optical disk burning\">Archwiki - Optical disk\nburning</a></p>\n<h2 id=\"burning-an-iso-image-to-cd-dvd-or-bd\">Burning an ISO image to\nCD, DVD, or BD</h2>\n<h3\nid=\"to-burn-a-readily-prepared-iso-image-file-isoimage.iso-onto-an-optical-medium-run-for-cd\">To\nburn a readily prepared ISO image file isoimage.iso onto an optical\nmedium, run for CD:</h3>\n<pre><code>cdrecord -v -sao dev=/dev/sr0 isoimage.iso</code></pre>\n<h3 id=\"and-for-dvd-or-bd\">and for DVD or BD:</h3>\n<pre><code>growisofs -dvd-compat -Z /dev/sr0=isoimage.iso</code></pre>\n<h3 id=\"for-cd-dvd-bd\">for CD, DVD, BD:</h3>\n<pre><code>xorriso -as cdrecord -v dev=/dev/sr0 -dao isoimage.iso</code></pre>\n<h2 id=\"other-reading\">Other reading</h2>\n<h3 id=\"archwiki---optical-disk-drive\">Archwiki - Optical disk\ndrive</h3>\n<p><a href=\"https://wiki.archlinux.org/title/Optical_disc_drive\"\ntitle=\"Archwiki - Optical disk drive\">Archwiki - Optical disk\ndrive</a></p>\n<h3 id=\"debian---gensisoimage-man-page\">Debian - Gensisoimage man\npage</h3>\n<p><a\nhref=\"https://manpages.debian.org/bookworm/genisoimage/genisoimage.1.en.html#U\"\ntitle=\"Debian - Gensisoimage man page\">Debian - Gensisoimage man\npage</a></p>\n<h3 id=\"debian-wiki---genisoimage-and-xorrisofs\">Debian wiki -\ngenisoimage and xorrisofs</h3>\n<p><a href=\"https://wiki.debian.org/genisoimage\"\ntitle=\"Debian wiki\">Debian wiki</a></p>\n<h3 id=\"archiving-data-on-blu-ray-discs\">Archiving data on Blu-ray\ndiscs</h3>\n<p><a href=\"https://briantomasik.com/archiving-data-on-blu-ray-discs/\"\ntitle=\"Archiving data\">Archiving data</a></p>\n<h3\nid=\"mount-an-iso-file-and-burning-it-to-cd-rdvd-rbluray-in-linux\">Mount\nan ISO file and Burning it to CD-R/DVD-R/BluRay in Linux</h3>\n<p><a href=\"https://linux.m2osw.com/mount-iso-file-linux\"\ntitle=\"Mount an ISO file and Burning\">Mount an ISO file and\nBurning</a></p>\n<h3\nid=\"what-is-the-size-capacity-of-my-dvd-dual-layer-dvd-or-blu-ray-disc\">What\nis the size capacity of my DVD, Dual Layer DVD or Blu-ray disc?</h3>\n<p><a\nhref=\"http://kb.primera.com/article/21426/45024/what-is-the-size-capacity-of-my-dvd-dual-layer-dvd-or-bluray-disc-how-much-space-room\"\ntitle=\"What is the size capacity of my DVD\">What is the size capacity of\nmy DVD</a></p>\n<h3 id=\"wikipedia-iso9660\">Wikipedia ISO9660</h3>\n<p><a href=\"https://en.wikipedia.org/wiki/ISO_9660\"\ntitle=\"Wikipedia ISO9660\">Wikipedia ISO9660</a></p>\n',318,0,0,'CC-BY-SA','Command line, Create ISO, Burn ISO, Optical media, DVD, CD, Blu-ray',0,0,1),
(3987,'2023-11-14','The Grim Dawn',2391,'Sgoti rambles about a video game called Grim Dawn.','<ul>\n<li><p><strong>Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Action_role-playing_game\">Action\nrole-playing game.</a></p></li>\n<li><p><strong>Source:</strong> <a href=\"https://www.grimdawn.com/\">Grim\nDawn.</a></p></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://www.grimdawn.com/guide/\">Grim Dawn Game\nGuide.</a></p></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://store.steampowered.com/app/219990/Grim_Dawn/\">Steam page\nfor Grim Dawn.</a></p></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://www.grimtools.com/\">Grim Dawn Tools (Third party\nsite).</a></p></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://www.grimdawn.com/guide/character/masteries/soldier/\">Soldier\nClass.</a> Soldiers readily charge into the carnage and unleash crushing\nmight upon their foes. Their physical prowess is unmatched and their\nability to survive through the most brutal conflicts makes them an\nexcellent choice for defense-oriented players.</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://diablo4.blizzard.com/en-us/\">Diablo 4</a></p></li>\n</ul>\n<p>This work is licensed under a <a\nhref=\"https://creativecommons.org/licenses/by-sa/4.0/\"\ntitle=\"CC-BY-SA 4.0 International\">Creative Commons\nAttribution-ShareAlike 4.0 International License</a>.</p>\n',391,0,0,'CC-BY-SA','Grim Dawn, ARPG, Diablo 4, Video Games',0,0,1),
(3988,'2023-11-15','Beeper.com',750,'operat0r talks about Beeper dot com a multi chat client','<p>I talk about Beeper dot com a multi chat client</p>\n<p>Beeper is a universal messaging app that lets you chat with anyone on\nany chat app, including Whatsapp, iMessage, Telegram and 12 other\nnetworks.</p>\n<h2 id=\"links\">Links</h2>\n<ul>\n<li><a href=\"https://www.beeper.com/\">https://www.beeper.com/</a></li>\n<li><a\nhref=\"https://github.com/beeper\">https://github.com/beeper</a></li>\n</ul>\n',36,0,1,'CC-BY-SA','chat,messaging,mobile',0,0,1),
(3989,'2023-11-16','LastPass Security Update 1 November 2023',553,'LastPass was hacked, what should you do?','<p>In 2022, LastPass disclosed that it had been hacked, and I think by\nnow just about everyone has heard about it. Now we have evidence that\npassword vaults have been hacked. So what does this mean, and what\nshould you do?</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a\nhref=\"https://krebsonsecurity.com/2023/09/experts-fear-crooks-are-cracking-keys-stolen-in-lastpass-breach/\"\nclass=\"uri\">https://krebsonsecurity.com/2023/09/experts-fear-crooks-are-cracking-keys-stolen-in-lastpass-breach/</a></li>\n<li><a\nhref=\"https://www.zwilnik.com/security-and-privacy/lastpass-hacked-what-does-this-mean/\"\nclass=\"uri\">https://www.zwilnik.com/security-and-privacy/lastpass-hacked-what-does-this-mean/</a></li>\n<li><a\nhref=\"https://wtop.com/tech/2023/01/data-doctors-should-i-stop-using-lastpass-for-password-management/\"\nclass=\"uri\">https://wtop.com/tech/2023/01/data-doctors-should-i-stop-using-lastpass-for-password-management/</a></li>\n<li><a href=\"http://hackerpublicradio.org/eps.php?id=1810\"\nclass=\"uri\">http://hackerpublicradio.org/eps.php?id=1810</a></li>\n</ul>\n',198,74,0,'CC-BY-SA','LastPass, password vault',0,0,1),
(3993,'2023-11-22','z80 membership card',934,'review of a kit','<ul>\n<li>intro\n<ul>\n<li>bought a couple of z80 old style computers</li>\n<li>found this searching youtube</li>\n<li>cosmac elf-rca 1802</li>\n<li><a href=\"https://www.sunrise-ev.com/\"\nclass=\"uri\">https://www.sunrise-ev.com/</a></li>\n</ul></li>\n<li>lee hart\n<ul>\n<li>electrical engineer</li>\n<li>was there at the beginning of the computer revolution</li>\n<li>life long love of electric vehicles</li>\n</ul></li>\n<li>the kit\n<ul>\n<li>piece of art</li>\n<li>z80 membership, minimum computer</li>\n<li>front panel gives self contained system</li>\n<li>boards, all parts and altoid tin</li>\n<li>great documentation, schematics, assembly guide and getting\nstarted</li>\n</ul></li>\n<li>the assembly\n<ul>\n<li>great instructions</li>\n<li>easy to solder</li>\n<li>a few tricks to get the boards to fit in the tin</li>\n<li>i made a dedicated serial cable by modifying ftdi cable</li>\n<li>i made a battery pack</li>\n</ul></li>\n<li>usage\n<ul>\n<li>front panel takes a bit of practice to use (locations of keys)</li>\n<li>found a z80 assembly language tutorial, hand assembly</li>\n<li>portable z80 machine to learn</li>\n</ul></li>\n<li>take away\n<ul>\n<li>excellent kit</li>\n<li>if your looking for a gift, many to choose from</li>\n<li>excellent quality</li>\n</ul></li>\n</ul>\n<p><em>01 membership card</em><br />\n<a\nhref=\"https://hackerpublicradio.org/eps/hpr3993/hpr3993/01-membership-card.jpg\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3993/hpr3993/01-membership-card_thumbnail.jpg\"\nalt=\"01 membership card\" /></a> <br/><small><small><em>Click the\nthumbnail to see the full-sized image</em></small></small></p>\n<p><em>02 membership card back</em><br />\n<a\nhref=\"https://hackerpublicradio.org/eps/hpr3993/hpr3993/02-membership-card--back.jpg\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3993/hpr3993/02-membership-card--back_thumbnail.jpg\"\nalt=\"02 membership card back\" /></a> <br/><small><small><em>Click the\nthumbnail to see the full-sized image</em></small></small></p>\n<p><em>03 front panel card</em><br />\n<a\nhref=\"https://hackerpublicradio.org/eps/hpr3993/hpr3993/03-front-panel-card.jpg\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3993/hpr3993/03-front-panel-card_thumbnail.jpg\"\nalt=\"03 front panel card\" /></a> <br/><small><small><em>Click the\nthumbnail to see the full-sized image</em></small></small></p>\n<p><em>04 front card back</em><br />\n<a\nhref=\"https://hackerpublicradio.org/eps/hpr3993/hpr3993/04-front-card-back.jpg\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3993/hpr3993/04-front-card-back_thumbnail.jpg\"\nalt=\"04 front card back\" /></a> <br/><small><small><em>Click the\nthumbnail to see the full-sized image</em></small></small></p>\n<p><em>05 assembled</em><br />\n<a\nhref=\"https://hackerpublicradio.org/eps/hpr3993/hpr3993/05-assembled.jpg\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3993/hpr3993/05-assembled_thumbnail.jpg\"\nalt=\"05 assembled\" /></a> <br/><small><small><em>Click the thumbnail to\nsee the full-sized image</em></small></small></p>\n<p><em>06 in the can</em><br />\n<a\nhref=\"https://hackerpublicradio.org/eps/hpr3993/hpr3993/06-in-the-can.jpg\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3993/hpr3993/06-in-the-can_thumbnail.jpg\"\nalt=\"06 in the can\" /></a> <br/><small><small><em>Click the thumbnail to\nsee the full-sized image</em></small></small></p>\n<p><em>07 things added</em><br />\n<a\nhref=\"https://hackerpublicradio.org/eps/hpr3993/hpr3993/07-things-added.jpg\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3993/hpr3993/07-things-added_thumbnail.jpg\"\nalt=\"07 things added\" /></a> <br/><small><small><em>Click the thumbnail\nto see the full-sized image</em></small></small></p>\n<p><em>08 fits inside</em><br />\n<a\nhref=\"https://hackerpublicradio.org/eps/hpr3993/hpr3993/08-fits-inside.jpg\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3993/hpr3993/08-fits-inside_thumbnail.jpg\"\nalt=\"08 fits inside\" /></a> <br/><small><small><em>Click the thumbnail\nto see the full-sized image</em></small></small></p>\n<p><em>09 compleat</em><br />\n<a\nhref=\"https://hackerpublicradio.org/eps/hpr3993/hpr3993/09-compleat.jpg\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3993/hpr3993/09-compleat_thumbnail.jpg\"\nalt=\"09 compleat\" /></a> <br/><small><small><em>Click the thumbnail to\nsee the full-sized image</em></small></small></p>\n<p><em>10 docs</em><br />\n<a\nhref=\"https://hackerpublicradio.org/eps/hpr3993/hpr3993/10-docs.jpg\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr3993/hpr3993/10-docs_thumbnail.jpg\"\nalt=\"10 docs\" /></a> <br/><small><small><em>Click the thumbnail to see\nthe full-sized image</em></small></small></p>\n',326,103,0,'CC-BY-SA','z80, retro computing',0,0,1),
(3994,'2023-11-23','Lastpass Response',790,'I talk about lastpass','<p>I talk about <a href=\"https://www.lastpass.com/\">LastPass</a>.</p>\n',36,0,1,'CC-BY-SA','security,computers,internet',0,0,1),
(3995,'2023-11-24','Creating Your Own Internet Radio Streaming Device',570,'Claudio talks about a couple of streaming radio solutions to make your own internet radio device.','<p>aNONradio: <a href=\"https://anonradio.net\"\nclass=\"uri\">https://anonradio.net</a><br />\nTildeRadio: <a href=\"https://tilderadio.org\"\nclass=\"uri\">https://tilderadio.org</a></p>\n<p>Volumio: <a href=\"https://volumio.com/\"\nclass=\"uri\">https://volumio.com/</a><br />\nmoOde Audio: <a href=\"https://moodeaudio.org/\"\nclass=\"uri\">https://moodeaudio.org/</a></p>\n',152,0,0,'CC-BY-SA','moode,raspberrypi,audio,internetradio,streamingradio,multimedia,volumio,anonradio,tilderadio',0,0,1),
(3996,'2023-11-27','Holiday Challenges Series - Ep 1 - Advent of Code',221,'Discussing challenges to help you enjoy the holiday season','<h2 id=\"holiday-challenges-series---ep-1---advent-of-code\">Holiday\nChallenges Series - Ep 1 - Advent of Code</h2>\n<p>Since some of the information you are about to hear is time specific,\nI want to let you know that I am recording this near the end of November\nin 2023.</p>\n<p>Whichever holidays you celebrate this time of year, life generally\ngets busy and stressful.</p>\n<p>It could be shopping<br />\nor cooking<br />\nor cleaning<br />\nor school activities<br />\nor buying, assembling, wrapping, and delivering gifts<br />\nor planning time with family<br />\nor dealing with visiting family<br />\nor scheduling time off from work<br />\nor managing extra work while others have scheduled time off<br />\nor a whole plethora of other things.<br />\nThis time of year can be stressful.</p>\n<p>A few years ago, I discovered a fun activity, which challenged my\nmind and helped me focus and detach from the stress for a little while\neach day, through the month of December. It helped me manage the stress\nin an enjoyable way.</p>\n<p>Since then, I have found and tried several other similar activities,\nso I wanted to share a little about them with you for the next few\nepisodes so you can see what might work for you.</p>\n<p>The first I would like to share is called the Advent of Code\nChallenge (<a href=\"https://adventofcode.com/\"\nclass=\"uri\">https://adventofcode.com/</a>). In HPR episodes 2973 (<a\nhref=\"https://hackerpublicradio.org/eps/hpr2973/index.html\"\nclass=\"uri\">https://hackerpublicradio.org/eps/hpr2973/index.html</a>)\nand 3744 (<a href=\"https://hackerpublicradio.org/eps/hpr3744/index.html\"\nclass=\"uri\">https://hackerpublicradio.org/eps/hpr3744/index.html</a>),\nDaniel Perrson shared some great details about this challenge. I\nencourage you to go review his episodes.</p>\n<p>But the TLDR (Or maybe the TLDL -- Too Long Didn\'t Listen?) for\nAdvent of Code is that it is a 25 day challenge which begins on December\n1. Once you register at adventofcode.com, Each day, you will be\npresented with a problem to solve and some sample data to use for\nverification that your program works. You can choose to use any\nprogramming language or application you desire produce the answer. Last\nyear, I used this to brush up on my Python skills. Others use Visual\nBasic, C (and all its variants), Rust, Go, etc. I have seen people use\nCobol, Fortran, and Pascal, or even Microsoft Excel. It is really up to\nyou. You are then presented a dataset which is unique to your login, and\nagainst which you run your code. When complete, you submit the answer\ncame up with on the adventofcode.com web site and they will tell you if\nyou are correct or not.</p>\n<p>If you are competitive (And REALLY GOOD) there is a Global\nLeaderboard. If you want to compete with a group of friends, you can\nbuild your own leaderboard and invite others to take part with you.</p>\n<p>There are tons of resources online, from youtube channels to reddit\n(<a href=\"https://www.reddit.com/r/adventofcode/\"\nclass=\"uri\">https://www.reddit.com/r/adventofcode/</a>), to Discord (<a\nhref=\"https://discord.gg/tXJh262\"\nclass=\"uri\">https://discord.gg/tXJh262</a>)</p>\n<p>So, if you are looking for a way to challenge your mind and detach\nfrom holiday stress, Advent of Code may be something you might try.</p>\n<p>If this is not your cup of tea, I will be sharing several other\noptions for holiday challenges in future episodes.</p>\n',394,0,0,'CC-BY-SA','Advent of Code, holiday, challenge',0,0,1),
(3999,'2023-11-30','Holiday Challenges Series Ep 02 TryHackMe Advent of Cyber Challenge',183,'Discussing the TryHackMe Advent of Cyber challenge to help you enjoy the holiday season','<h2\nid=\"holiday-challenges-series---ep-2---tryhackme-advent-of-cyber-challenge\">Holiday\nChallenges Series - Ep 2 - TryHackMe Advent of Cyber Challenge</h2>\n<p>Since some of the information you are about to hear is time specific,\nI want to let you know that I am recording this near the end of November\nin 2023.</p>\n<p>If you missed the first episode, which introduces this series, you\ncan go back and listen to HPR3996</p>\n<p>I have been using TryHackMe for several years, and I recommend it to\nall of my students. It is a great environment where people can get hands\non experience with technology that relates to cyber security, all from\nthe comfort of their browser and free year-round.</p>\n<p>The TryHackMe Advent of Cyber challenge is a free gamified\nenvironment which focuses on penetration testing, security\noperations/engineering, forensics/incident response, malware analysis,\nmachine learning, and more!</p>\n<p>This year\'s challenge opens on December 1, 2023 (Which is the reason\nwhy I am posting twice this week). Typically, the Advent of Cyber\nchallenge includes daily beginner-friendly exercises for people new to\ncybersecurity. These can consist of walkthroughs, video tutorials, and\nchallenges. There are also prizes available based on random drawings and\non participant success.</p>\n<p>Infosec personalities like John Hammond, Gerald Auger, InsiderPHD,\nand InfoSec Pat are featured in this year\'s challenge.</p>\n<p>You can play with last year\'s Advent of Cyber challenge by visiting\n<a href=\"https://tryhackme.com/room/adventofcyber4\"\nclass=\"uri\">https://tryhackme.com/room/adventofcyber4</a>. It outlines\nthe overall story and shows all of the tasks last year\'s participants\nexperienced, including both offensive and defensive topics like: log\nanalysis, OSINT, scanning, brute force attacks, email analysis,\nCyberChef, blockchain smart contracts, malware analysis, memory\nforensics, packet analysis, web application hacking, and more!</p>\n<p>Everything can be done with a free account from within a browser.</p>\n<p>If you want to learn more about cybersecurity, transition your career\ninto infosec, or just have fun playing with cyber challenges, you can\ngive it a try by visiting tryhackme.com or <a\nhref=\"https://tryhackme.com/r/christmas\"\nclass=\"uri\">https://tryhackme.com/r/christmas</a></p>\n<p>Please note: I am not affiliated with TryHackMe in any way, other\nthan having been a paying member for many years. Students and others who\nhave participated in previous year\'s Advent of Cyber challenges have\ntold me how much they enjoyed it and learned from it. Even though I have\nbeen an infosec practitioner for more years than I would like to admit,\nI also have enjoyed taking part in this challenge.</p>\n<p>If this is not for you, I will be sharing another option for a\nholiday challenge in my next episode.</p>\n',394,0,0,'CC-BY-SA','Advent of Cyber, TryHackMe, Hands on, cyber, cybersecurity, infosec, holiday, challenge',0,0,1),
(4006,'2023-12-11','Holiday Challenges Ep 3 SANS Holiday Hack Challenge and KringleCon',160,'Discussing the SANS Holiday Hack Challenge and KringleCon to help you enjoy the holiday season','<h2\nid=\"holiday-challenges-series---ep-3---sans-holiday-hack-challenge-with-kringlecon\">Holiday\nChallenges Series - Ep 3 - SANS Holiday Hack Challenge with\nKringleCon</h2>\n<p>Since some of the information you are about to hear is time specific,\nI want to let you know that I am recording this near the end of November\nin 2023.</p>\n<p>If you missed the first episode, which introduces this series, you\ncan go back and listen to HPR3996</p>\n<p>The SANS Holiday Hack Challenge is an interactive online technology\nand hacking game combined with a virtual security conference, beginning\nin the second week of December. By the time this episode drops, it may\nalready be live. You can tour the North Pole conference facilities,\nmeeting people, interactive non-player characters (NPC), and maybe even\nsome villains from Holiday Hack Challenges past, as you solve problems\nand gather clues which you use to help save Christmas.</p>\n<p>Everything can be done from within the browser, and did I mention\nthere is a virtual security conference, called KringleCon? Some of the\nbiggest rock stars (and most humble and brilliant people) in\nCyberSecurity speak each year at KringleCon. Many of their talks also\nprovide clues to solving game challenges.</p>\n<p>Ed Skoudis and his team (The same people who build SANS NetWars) work\ntirelessly year after year to create the most amazing experience,\ncomplete with custom music! This has become one of my favorite holiday\ntraditions each year. You can learn more about the 2023 challenge by\nwatching Ed\'s Inside SANS Holiday Hack Challenge 2023 YouTube video at\n<a href=\"https://www.youtube.com/watch?v=X9Gmdr_CxzQ\"\nclass=\"uri\">https://www.youtube.com/watch?v=X9Gmdr_CxzQ</a></p>\n<p>You can access this year\'s challenge by visiting sans.org/holidayhack\nor <a href=\"https://www.sans.org/mlp/holiday-hack-challenge-2023/\"\nclass=\"uri\">https://www.sans.org/mlp/holiday-hack-challenge-2023/</a></p>\n<p>There, you will learn more about all things Holiday Hack before the\ngame opens in the second week of December. If you want to play now, or\njust get a feel for it, you can access three of the previous years\'\nchallenges right now at the same site.</p>\n<p>I am not associated with SANS or the Holiday Hack Challenge in any\nway, other than to have participated for several years now, and I have\nwatched other people learn and grow by taking part in it.</p>\n<p>I hope that you have enjoyed this short series. If there are other\nonline challenges you find interesting or informative, I encourage you\nto record a show about them.</p>\n<p>Have a wonderful day.</p>\n',394,0,0,'CC-BY-SA','SANS, KringleCon, holiday, challenge',0,0,1),
(3997,'2023-11-28','The Oh No! News.',875,'Sgoti talks about Malware distributed via Google\'s Dynamic Ads and more.','<h2 id=\"the-oh-no-news.\">The <em>Oh No!</em> news.</h2>\n<h2 id=\"oh-no-news-is-good-news.\"><em>Oh No!</em> News is Good\nNews.</h2>\n<ul>\n<li><strong>TAGS:</strong> Oh No, News, Threat analysis, InfoSec, Google\nDynamic Search Ads</li>\n</ul>\n<hr />\n<h3 id=\"threat-analysis-your-attack-surface.\"><strong>Threat analysis;\nyour attack surface.</strong></h3>\n<ul>\n<li><p><strong>Source:</strong> <a\nhref=\"https://ico.org.uk/about-the-ico/media-centre/news-and-blogs/2023/11/former-nhs-secretary-found-guilty-of-illegally-accessing-medical-records/\">Former\nNHS secretary found guilty of illegally accessing medical\nrecords</a><br />\n</p>\n<ul>\n<li>A former NHS employee has been found guilty and fined for illegally\naccessing the medical records of over 150 people.<br />\n</li>\n<li>Loretta Alborghetti, from Redditch, worked as a medical secretary\nwithin the Ophthalmology department at Worcestershire Acute Hospitals\nNHS Trust when she illegally accessed the records.<br />\n</li>\n</ul></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://www.openstreetmap.org/relation/1875340#map=12/52.2917/-1.9485\">Open\nStreet Map link to Redditch Worcestershire.</a><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://thehackernews.com/2023/11/netsupport-rat-infections-on-rise.html\">NetSupport\nRAT Infections on the Rise. Targeting Government and Business\nSectors</a><br />\n</p>\n<ul>\n<li>While NetSupport Manager started off as a legitimate remote\nadministration tool for technical assistance and support, malicious\nactors have misappropriated the tool to their own advantage, using it as\na beachhead for subsequent attacks.<br />\n</li>\n</ul></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://thehackernews.com/2023/11/beware-malicious-google-ads-trick.html\">Beware:\nMalicious Google Ads Trick WinSCP Users into Installing\nMalware</a><br />\n</p>\n<ul>\n<li>The threat actors are believed to leverage Google\'s Dynamic Search\nAds (DSAs), which automatically generates ads based on a site\'s content\nto serve the malicious ads that take the victims to the infected\nsite.<br />\n</li>\n</ul></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://thehackernews.com/2023/10/trojanized-pycharm-software-version.html\">Trojanized\nPyCharm Software Version Delivered via Google Search Ads.</a><br />\n</p>\n<ul>\n<li>Victims who clicked on the ad were taken to a hacked web page with a\nlink to download the application, which turned out to install over a\ndozen different pieces of malware instead.<br />\n</li>\n</ul></li>\n</ul>\n<hr />\n<h3 id=\"infosec-the-language-of-security.\"><strong>InfoSec; the language\nof security.</strong></h3>\n<ul>\n<li><strong>Source:</strong> <a\nhref=\"https://thehackernews.com/2023/11/why-defenders-should-embrace-hacker.html\">Why\nDefenders Should Embrace a Hacker Mindset</a><br />\n</li>\n</ul>\n<hr />\n<ul>\n<li><strong>Additional Information.</strong>\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Data_breach\"\ntitle=\"From Wikipedia, the free encyclopedia.\">What is a \"Data\nBreach\"?</a> A data breach is a security violation, in which sensitive,\nprotected or confidential data is copied, transmitted, viewed, stolen,\naltered or used by an individual unauthorized to do so.<br />\n</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Malware\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is \"Malware\"?</a>\nMalware (a <a href=\"https://en.wikipedia.org/wiki/Portmanteau\"\ntitle=\"From Wikipedia, the free encyclopedia\">portmanteau</a> for\nmalicious software) is any software intentionally designed to cause\ndisruption to a computer, server, client, or computer network, leak\nprivate information, gain unauthorized access to information or systems,\ndeprive access to information, or which unknowingly interferes with the\nuser\'s computer security and privacy.<br />\n</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Payload_(computing)\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is a \"Payload\"?</a>\nIn the context of a computer virus or worm, the payload is the portion\nof the malware which performs malicious action; deleting data, sending\nspam or encrypting data. In addition to the payload, such malware also\ntypically has overhead code aimed at simply spreading itself, or\navoiding detection.<br />\n</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Phishing\"\ntitle=\"From Wikipedia, the free encyclopedia.\">What is \"Phishing\"?</a>\nPhishing is a form of <a\nhref=\"https://en.wikipedia.org/wiki/Social_engineering_(security)\"\ntitle=\"From Wikipedia, the free encyclopedia\">social engineering</a>\nwhere attackers deceive people into revealing sensitive information or\ninstalling malware such as <a\nhref=\"https://en.wikipedia.org/wiki/Ransomware\"\ntitle=\"From Wikipedia, the free encyclopedia\">ransomware</a>. Phishing\nattacks have become increasingly sophisticated and often transparently\nmirror the site being targeted, allowing the attacker to observe\neverything while the victim is navigating the site, and transverse any\nadditional security boundaries with the victim.<br />\n</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Social_engineering_(security)\">Social\nengineering (security)</a> In the context of information security,\nsocial engineering is the <a\nhref=\"https://en.wikipedia.org/wiki/Psychological_manipulation\">psychological\nmanipulation</a> of people into performing actions or divulging\nconfidential information. A type of confidence trick for the purpose of\ninformation gathering, fraud, or system access, it differs from a\ntraditional \"con\" in that it is often one of many steps in a more\ncomplex fraud scheme.<br />\n</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Information_security\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is \"Information\nSecurity\" (InfoSec)?</a> Information security, sometimes shortened to\nInfoSec, is the practice of protecting information by mitigating <a\nhref=\"https://en.wikipedia.org/wiki/Information\"\ntitle=\"From Wikipedia, the free encyclopedia\">information</a> risks. It\nis part of <a\nhref=\"https://en.wikipedia.org/wiki/Risk_management_information_systems\"\ntitle=\"From Wikipedia, the free encyclopedia\">information risk\nmanagement</a>.\n<ul>\n<li><strong>Information Security Attributes:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Confidentiality\"\ntitle=\"From Wikipedia, the free encyclopedia\">Confidentiality</a>, <a\nhref=\"https://en.wikipedia.org/wiki/Data_integrity\"\ntitle=\"From Wikipedia, the free encyclopedia\">Integrity</a> and <a\nhref=\"https://en.wikipedia.org/wiki/Availability\"\ntitle=\"From Wikipedia, the free encyclopedia\">Availability</a> (C.I.A.).\nInformation Systems are composed in three main portions, hardware,\nsoftware and communications with the purpose to help identify and apply\ninformation security industry standards, as mechanisms of protection and\nprevention, at three levels or layers: physical, personal and\norganizational. Essentially, procedures or policies are implemented to\ntell administrators, users and operators how to use products to ensure\ninformation security within the organizations.<br />\n</li>\n</ul></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Risk_management\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is \"Risk\nmanagement\"?</a> Risk management is the identification, evaluation, and\nprioritization of risks followed by coordinated and economical\napplication of resources to minimize, monitor, and control the\nprobability or impact of unfortunate events or to maximize the\nrealization of opportunities.<br />\n</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Vulnerability_(computing)\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is a \"Vulnerability\"\n(computing)?</a> Vulnerabilities are flaws in a computer system that\nweaken the overall security of the device/system. Vulnerabilities can be\nweaknesses in either the hardware itself, or the software that runs on\nthe hardware.<br />\n</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Attack_surface\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is an \"Attack\nSurface\"?</a> The attack surface of a software environment is the sum of\nthe different points (for \"attack vectors\") where an unauthorized user\n(the \"attacker\") can try to enter data to or extract data from an\nenvironment. Keeping the attack surface as small as possible is a basic\nsecurity measure.<br />\n</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Attack_vector\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is an \"Attack\nVector\"?</a> In computer security, an attack vector is a specific path,\nmethod, or scenario that can be exploited to break into an IT system,\nthus compromising its security. The term was derived from the\ncorresponding notion of vector in biology. An attack vector may be\nexploited manually, automatically, or through a combination of manual\nand automatic activity.<br />\n</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Standardization\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is\n\"Standardization\"?</a> Standardization is the process of implementing\nand developing technical standards based on the consensus of different\nparties that include firms, users, interest groups, standards\norganizations and governments. Standardization can help maximize\ncompatibility, interoperability, safety, repeatability, or quality. It\ncan also facilitate a normalization of formerly custom processes.\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/List_of_computer_standards\"\ntitle=\"From Wikipedia, the free encyclopedia\">List of computer\nstandards.</a><br />\n</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/List_of_technical_standard_organizations\"\ntitle=\"From Wikipedia, the free encyclopedia\">List of technical standard\norganizations.</a><br />\n</li>\n</ul></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Replay_attack\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is a \"Replay\nattack\"?</a> A replay attack is a form of network attack in which valid\ndata transmission is maliciously or fraudulently repeated or delayed.\nAnother way of describing such an attack is: \"an attack on a security\nprotocol using a replay of messages from a different context into the\nintended (or original and expected) context, thereby fooling the honest\nparticipant(s) into thinking they have successfully completed the\nprotocol run.\"<br />\n</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Man-in-the-middle_attack\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is a\n\"Man-in-the-middle attack\"?</a> In cryptography and computer security, a\nman-in-the-middle, ..., attack is a cyberattack where the attacker\nsecretly relays and possibly alters the communications between two\nparties who believe that they are directly communicating with each\nother, as the attacker has inserted themselves between the two\nparties.<br />\n</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Transport_Layer_Security\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is \"Transport Layer\nSecurity\" (TLS)?</a> Transport Layer Security (TLS) is a cryptographic\nprotocol designed to provide communications security over a computer\nnetwork. The protocol is widely used in applications such as email,\ninstant messaging, and voice over IP, but its use in securing HTTPS\nremains the most publicly visible.<br />\n</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Handshake_(computing)\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is a \"Handshake\"\n(computing)?</a>. In computing, a handshake is a signal between two\ndevices or programs, used to, e.g., authenticate, coordinate. An example\nis the handshaking between a hypervisor and an application in a guest\nvirtual machine.<br />\n</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Security_theater\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is Security\ntheater?</a> The practice of taking security measures that are\nconsidered to provide the feeling of improved security while doing\nlittle or nothing to achieve it.<br />\n</li>\n</ul></li>\n</ul>\n<hr />\n<ul>\n<li><strong>License:</strong> <a\nhref=\"https://creativecommons.org/licenses/by-sa/4.0/legalcode\">Creative\nCommons Attribution-ShareAlike 4.0 International</a><br />\n<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-sa/4.0/\"><img alt=\"Creative Commons License\" style=\"border-width:0\" src=\"https://i.creativecommons.org/l/by-sa/4.0/88x31.png\" /></a><br />This\nwork is licensed under a\n<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-sa/4.0/\">Creative\nCommons Attribution-ShareAlike 4.0 International License</a>.</li>\n</ul>\n',391,74,0,'CC-BY-SA','Oh No News, Threat analysis, InfoSec, Google Dynamic Search Ads',0,0,1),
(4005,'2023-12-08','Sgoti\'s reply to multiple shows.',893,'Sgoti replies to a few HPR Shows.','<h1 id=\"sgotis-reply-to-multiple-shows.\">Sgoti\'s reply to multiple\nshows.</h1>\n<h2 id=\"sgoti-replies-to-a-few-hpr-shows.\">Sgoti replies to a few HPR\nShows.</h2>\n<ul>\n<li><p>Tags: Reply show, password managers, lastpass.</p></li>\n<li><p>Reply to: <a\nhref=\"https://hackerpublicradio.org/eps/hpr3988/index.html\"\ntitle=\"operat0r talks about Beeper dot com a multi chat client\">hpr3988\n:: Beeper.com</a><br />\n</p></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://www.beeper.com/\">Beeper chat application</a><br />\n</p></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://github.com/beeper\">Beeper Github page</a><br />\n</p></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://github.com/beeper#work-with-us-at-beeper\">Work with us at\nBeeper</a><br />\n</p></li>\n<li><p>Reply to: <a\nhref=\"https://hackerpublicradio.org/eps/hpr3989/index.html\"\ntitle=\"LastPass was hacked, what should you do?\">hpr3989 :: LastPass\nSecurity Update 1 November 2023</a><br />\n</p></li>\n<li><p>Reply to: <a\nhref=\"https://hackerpublicradio.org/eps/hpr3994/index.html\">hpr3994 ::\nLastpass Response</a><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://youtu.be/IY84DvdPQaw?si=VFDyfM6YSh1IEs3N&amp;t=602\">The\nTHREE STOOGES - A Plumbing We Will Go</a><br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://www.youtube.com/watch?v=UWQoK506xkQ\">Whitest Kids U Know:\nLeg Peeing</a><br />\n</p>\n<ul>\n<li>This was just funny. I found it while searching for, \"why the\nBritish say things like taking a piss\".</li>\n</ul></li>\n</ul>\n<p>This work is licensed under a <a\nhref=\"https://creativecommons.org/licenses/by-sa/4.0/\"\ntitle=\"CC-BY-SA 4.0 International\">Creative Commons\nAttribution-ShareAlike 4.0 International License</a>.</p>\n',391,0,0,'CC-BY-SA','reply show, password managers, lastpass',0,0,1),
(3998,'2023-11-29','Using open source OCR to digitize my mom\'s book',1847,'How I used open source tools such as gphoto2 and the OCR software tesseract to digitize pages','<p>To improve the speed of my workflow, I wrote a bash script that uses the\nopen source programs <code>gphoto2</code>, <code>tesseract</code>,\n<code>grep</code> and <code>ImageMagick</code> to digitize my mom\'s 338 page\nbook. Here is the link to the script:\n<a href=\"https://github.com/deltaray/ocr-script\">https://github.com/deltaray/ocr-script</a></p>\n',194,0,0,'CC-BY-SA','ocr,opensource,grep,scripts,programming',0,0,1),
(4002,'2023-12-05','Today I learnt - 2023-11-24',477,'Some odds and ends I learnt today','<article>\n<h2 id=\"whats-this\">What\'s this?</h2>\n<p>I enjoy finding out about things. Now I\'m retired (I have been for 14\nyears), I have time to research subjects I find interesting. So I\ndo!</p>\n<p>The HPR project is going through a phase where the queue can get very\nlow, so I thought having a subject where I could fire off short shows\nfrom time to time would help with this. Maybe we can make a series where\nothers who like the idea can contribute when the mood takes them!</p>\n<p>My plan is to keep details to a minimum and provide links to sources\nof more information if you\'re someone who likes to dig deeper!</p>\n<h2 id=\"til-1---is-it-learnt-or-learned\">TIL 1 - is it <em>learnt</em>\nor <em>learned</em>?</h2>\n<p>I discovered that both are acceptable. Both are the past tense (and\npast participle) of the verb \"to learn\":</p>\n<ul>\n<li><em>learnt</em> is an older form which is more common in British\nEnglish</li>\n<li><em>learned</em> is more common in US English, and is becoming more\npopular in the UK</li>\n</ul>\n<h3 id=\"links\">Links</h3>\n<ul>\n<li><a\nhref=\"https://grammarist.com/spelling/learned-learnt/\">Grammarist:\nLearned vs. learnt</a></li>\n<li><a\nhref=\"https://www.bbc.co.uk/worldservice/learningenglish/radio/specials/1535_questionanswer/page50.shtml\">BBC\nAsk About English</a></li>\n</ul>\n<h2 id=\"til-2---the-french-word-for-piggy-bank\">TIL 2 - the French word\nfor <em>piggy bank</em></h2>\n<p>I watch a YouTube channel from a Canadian woodworker who produces\nEnglish and French versions of his episodes. His latest one is about\nmaking a wooden piggy bank, or <em>tirelire</em> in French.</p>\n<p>I learnt French at school (though I wasn\'t much good at it), but have\nnever come across this word. My questions are:</p>\n<ul>\n<li>Where does it come from?</li>\n<li>How do you say it?</li>\n</ul>\n<p>The Wiktionary page below has answers to both.</p>\n<ul>\n<li>It\'s of <em>onomatopoeic origin (representing the rattling of\ncoins)</em>.</li>\n<li>There\'s audio on the page showing how to say it (as well as the IPA\nversion [International Phonetic Alphabet], see below).</li>\n</ul>\n<h3 id=\"links-1\">Links</h3>\n<ul>\n<li>YouTube channel - <em>The Woodpecker</em>:\n<ul>\n<li><a href=\"https://www.youtube.com/watch?v=Nsla1NB-Q40\">L\'gosseux\nd\'bois EP 305 - Une tirelire en bois</a></li>\n<li><a href=\"https://www.youtube.com/watch?v=2r739TM_ru8\">The Woodpecker\nEP 305 - A wooden piggybank</a></li>\n</ul></li>\n<li><a href=\"https://en.wiktionary.org/wiki/tirelire\">Wiktionary:\ntirelire</a></li>\n</ul>\n<h2 id=\"til-3---how-to-pronounce-ipa-coded-words\">TIL 3 - how to\npronounce IPA coded words</h2>\n<p>I actually learnt about this a while ago, but I thought now would be\na good time to share.</p>\n<p>The IPA form of <em>tirelire</em> is <code>/tiʁ.liʁ/</code> (I\nincluded the enclosing slash delimiters which aren\'t part of the IPA but\nhave significance; see the IPA Wikipedia page for details). I have seen\nthese symbols for years but have never managed to decode them\nreliably.</p>\n<p>A few months ago I wondered how to deal with them reliably (and\neasily). There are many sites offering to transcribe English (and other\nlanguages) to IPA, a few of which are free. I only found one that would\nattempt to speak IPA, and that is <a href=\"http://ipa-reader.xyz\">IPA\nReader</a>.</p>\n<p>Paste the IPA into the form, select a reader voice, and click \"Read\".\nSome of the voices seem a bit odd. I settled on \"Brian\" for British\nEnglish, and it seems fine.</p>\n<h3 id=\"links-2\">Links</h3>\n<ul>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/International_Phonetic_Association\">International\nPhonetic Association</a> - creators of the <a\nhref=\"https://en.wikipedia.org/wiki/International_Phonetic_Alphabet\">International\nPhonetic Alphabet</a></li>\n<li><a href=\"http://ipa-reader.xyz\">IPA Reader</a></li>\n</ul>\n</article>\n',225,123,1,'CC-BY-SA','learning,learned,learnt,TIL,English,French,phonetics,IPA,tirelire',0,0,1),
(4004,'2023-12-07','Wayland to X11 bridge',285,'Ken found out about x prop and x wayland video bridge','<p>After a strange unnamed window appeared on my desktop, I used\n<code>xprop</code> to identify it and a search lead me to\n<code>xwaylandvideobridge</code>.</p>\n<p>From the man page of</p>\n<blockquote>\n<p>xprop - property displayer for X</p>\n<p>SUMMARY<br />\nThe xprop utility is for displaying window and font properties in an X\nserver. One window or font is selected using the command line arguments\nor possibly in the case of a window, by clicking on the desired window.\nA list of properties is then given, possibly with formatting\ninformation.</p>\n</blockquote>\n<p>From <a href=\"https://github.com/KDE/xwaylandvideobridge\">GitHub KDE\n/ xwaylandvideobridge </a></p>\n<blockquote>\n<h2 id=\"about\">About</h2>\n<p>By design, X11 applications can\'t access window or screen contents\nfor wayland clients. This is fine in principle, but it breaks screen\nsharing in tools like Discord, MS Teams, Skype, etc and more.</p>\n<p>This tool allows us to share specific windows to X11 clients, but\nwithin the control of the user at all times.</p>\n<h2 id=\"how-to-use\">How to use</h2>\n<p>xwaylandvideobridge should autostart on login. It will run in the\nbackground. Next time you try to share a window a prompt will appear.\nThe previously selected window should now be available for sharing. The\ntitle will always be \"Wayland to X11 bridge\" no matter what window is\nselected.</p>\n<p>The system tray icon provides finer control.</p>\n</blockquote>\n',30,123,0,'CC-BY-SA','TodayILearned, xprop, XwaylandVideoBridge',0,0,1),
(4003,'2023-12-06','My road recording setup',1199,'Sgoti swerves around the city while recording an episode.','<p>I don\'t really have notes for this episode.</p>\n<p><a\nhref=\"https://www.consumerfinance.gov/about-us/blog/you-have-protections-when-it-comes-to-automatic-debit-payments-from-your-account/\">You\nhave protections when it comes to automatic debit payments from your\naccount</a></p>\n<p><a\nhref=\"https://financeband.com/who-can-access-my-bank-account-without-my-permission\">Who\ncan access my bank account without my permission?</a></p>\n<p><a href=\"https://www.samsclub.com/s/thomas%20bagels\">Thomas\nbagels</a></p>\n',391,0,1,'CC-BY-SA','driving, Thomas bagels',0,0,1),
(4007,'2023-12-12','Advent of code day 1-5 catchup',390,'I talk through the first 5 challenges of this years advent of code.','<ul>\n<li><p><a href=\"https://adventofcode.com/2023\"\nclass=\"uri\">https://adventofcode.com/2023</a></p></li>\n<li><p><a href=\"https://github.com/kalaspuffar/advent2023\"\nclass=\"uri\">https://github.com/kalaspuffar/advent2023</a></p></li>\n<li><p><a\nhref=\"https://www.youtube.com/playlist?list=PLP2v7zU48xOI8D3cVaPCKHixvXT2e_R5u\"\nclass=\"uri\">https://www.youtube.com/playlist?list=PLP2v7zU48xOI8D3cVaPCKHixvXT2e_R5u</a></p></li>\n</ul>\n',382,0,0,'CC-BY-SA','advent of code, 2023, challenge',0,0,1),
(4017,'2023-12-26','Advent of code day 6-10 catchup',429,'I talk through the second 5 challenges of this years advent of code.','<ul>\n<li><p><a href=\"https://adventofcode.com/2023\"\nclass=\"uri\">https://adventofcode.com/2023</a></p></li>\n<li><p><a href=\"https://github.com/kalaspuffar/advent2023\"\nclass=\"uri\">https://github.com/kalaspuffar/advent2023</a></p></li>\n<li><p><a\nhref=\"https://www.youtube.com/playlist?list=PLP2v7zU48xOI8D3cVaPCKHixvXT2e_R5u\"\nclass=\"uri\">https://www.youtube.com/playlist?list=PLP2v7zU48xOI8D3cVaPCKHixvXT2e_R5u</a></p></li>\n</ul>\n',382,0,0,'CC-BY-SA','advent of code, 2023, challenge',0,0,1),
(4008,'2023-12-13','Sextortion. Good Heavens!',1046,'Sgoti talks about sextortion.','<h1 id=\"sextortion\">Sextortion</h1>\n<ul>\n<li><p><strong>Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Sextortion\">Sextortion employs\nnon-physical forms of coercion to extort sexual favors from the\nvictim.</a> Sextortion refers to the broad category of sexual\nexploitation in which abuse of power is the means of coercion, as well\nas to the category of sexual exploitation in which threatened release of\nsexual images or information is the means of coercion.</p></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://www.fbi.gov/video-repository/newss-what-is-sextortion/view\">What\nis Sextortion? An FBI special agent defines sextortion.</a></p></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://www.fbi.gov/how-we-can-help-you/safety-resources/scams-and-safety/common-scams-and-crimes/sextortion\">Sextortion\ncan start on any site, app, messaging platform, or game where people\nmeet and communicate.</a> The FBI has seen a huge increase in the number\nof cases involving children and teens being threatened and coerced into\nsending explicit images online; a crime called sextortion.</p>\n<ul>\n<li><strong>Supporting Source:</strong> <a\nhref=\"https://youtu.be/KkCrtqr2h-g\">FBI Special Agent Brian Herrick\ndefines sextortion...</a></li>\n<li><strong>Supporting Source:</strong> <a\nhref=\"https://youtu.be/ixAYkkub4Pw\">Ashley Reynolds was 14 when she was\nvictimized...</a></li>\n</ul></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://sos.fbi.gov/en/\">Welcome to FBI-SOS (Safe Online Surfing)\nCyber Surf Island!</a> Here you will learn all about cyber safety and\ndigital citizenship.</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://www.reddit.com/r/Scams/\">r/Scams: This is a help forum -\nbad advice will get you banned.</a></p></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://www.reddit.com/r/Scams/comments/16coqdy/i_am_being_sextorted_please_help_me_i_feel/\">Post:\nI am being sextorted. Please help me, I feel helpless.</a></p></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://www.reddit.com/r/Scams/comments/16cu6lw/rando_threatening_to_leak_nude_picture/\">Post:\nrando threatening to leak nude picture.</a></p></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://www.reddit.com/r/Scams/comments/16cz740/hi_i_am_a_14_year_old_male_i_was_dumb_enough_to/\">Post:\nHi, I am a 14 year old male, I was dumb enough to send someone nudes on\nInstagram and now they threaten to ruin me by posting this\neverywhere.</a></p></li>\n<li><p>Similar sex related scams.</p>\n<ul>\n<li><strong>Supporting Source:</strong> <a\nhref=\"https://www.reddit.com/r/Scams/comments/16csydm/help/\">Post: It&#x2019;s\nsaying that my device got infested with a R.A.T. And they want $1600 usd\nin bitcoin within 48 hours.</a></li>\n<li><strong>Supporting Source:</strong> <a\nhref=\"https://www.reddit.com/r/Scams/comments/16cwkkj/death_threat_scam/\">Post:\ndeath threat scam today after sending 3 escorts text messages to see if\nthey\'d be open to nude modeling...</a></li>\n</ul></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://www.reddit.com/r/Sextortion/\">r/Sextortion: Are you a\ncurrent or former victim of sextortion or online blackmail?</a></p></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://www.reddit.com/r/Sextortion/comments/16cobyo/someone_please_talk_to_me/\">Post:\nSomeone please talk to me.</a></p></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://www.reddit.com/r/Sextortion/comments/16ckaxb/107_hours_since_the_incident_im_safe_right/\">Post:\n107 hours since the incident. I&#x2019;m safe right?</a></p></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://www.reddit.com/r/Sextortion/comments/16cr8ga/just_got_scammed_im_shaking/\">Post:\nJust got scammed.. I\'m shaking!!</a></p></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://www.reddit.com/r/Sextortion/comments/16cb2rz/new_victim_pls_help_panicking_so_much/\">Post:\nnew victim pls help panicking so much!!</a></p></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://www.reddit.com/r/Sextortion/comments/16c5s2d/either_made_the_biggest_mistake_of_my_life_or_the/\">Post:\nEither made the biggest mistake of my life or the best</a></p></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://www.reddit.com/r/Sextortion/comments/16a0d0h/after_11_months_the_person_that_scammed_me_sent/\">Post:\nafter 11 months, the person that scammed me sent photos to my\nfamily.</a></p></li>\n</ul>\n',391,0,1,'CC-BY-SA','Sextortion, FBI help, Blackmail',0,0,1),
(4009,'2023-12-14','Reolink CCTV Cams',1956,'operat0r talks about Reolink CCTV Cams','<p>I talk about Reolink CCTV Cams</p>\n<ul>\n<li><a href=\"https://reolink.com/\"\nclass=\"uri\">https://reolink.com/</a></li>\n</ul>\n',36,0,1,'CC-BY-SA','CCTV,security',0,0,1),
(4011,'2023-12-18','The Intel Hex file format',137,'A synopsis of this old but far from dead file format','<p>notes:<br />\n<a href=\"https://en.wikipedia.org/wiki/Intel_HEX\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Intel_HEX</a></p>\n<p>an example intel hex file with 1 record containing 3 data bytes (02h\n33h 7ah) and an end of file marker:</p>\n<pre><code>:03|0030|00|02337A|1E\n:00000001FF</code></pre>\n<p>espeak incantation:</p>\n<pre><code>espeak-ng -v mb-us3 -s 163 -p 38 -f intel-hex.org -w intel-hex.wav</code></pre>\n<p>script:<br />\nHello Hacker Public Radio, Brian in Ohio here. I am out from under my\nrock and this episode is about an old file format that despite its age\nis still in use in many places today.</p>\n<p>That format is the Intel Hex format. What is this format? Glad you\nasked.</p>\n<p>From the book of knowledge we read,</p>\n<p>Intel hexadecimal object file format, Intel hex format or Intellec\nHex is a file format that conveys binary information in ASCII text\nform.</p>\n<p>If you have ever programmed an arduino board the file that is used to\nprogram the board.</p>\n<p>The file generated by the arduino eye dee eee is an intel hex\nfile.</p>\n<p>The format consists of any number of lines, called records.</p>\n<p>Intel HEX consists of lines of ASCII text that are separated by line\nfeed or carriage return characters or both.</p>\n<p>Each text line contains uppercase hexadecimal characters that encode\nmultiple binary numbers.</p>\n<p>The binary numbers may represent data, memory addresses, or other\nvalues, depending on their position in the line and the type and length\nof the line.</p>\n<p>Each text line is called a record.</p>\n<p>A record consists of six fields that appear in order from left to\nright</p>\n<ol type=\"1\">\n<li>Start code, one character, an ASCII colon.</li>\n<li>Byte count, indicating the number of bytes in the data field.</li>\n<li>Address, four hex digits, representing the 16-bit beginning memory\naddress offset of the data.</li>\n<li>Record type two hex digits, 00 to 05, defining the meaning of the\ndata field.</li>\n<li>Data, a sequence of bytes of data</li>\n<li>Checksum, a computed value that can be used to verify the record has\nno errors.</li>\n</ol>\n<p>An end of file record must occur exactly once per file in the last\nrecord of the file. The byte count is 00, the address field is typically\n0000 and the data field is omitted.</p>\n<p>A record\'s checksum byte is the two\'s complement of the least\nsignificant byte of the sum of all decoded byte values in the record\npreceding the checksum.</p>\n<p>It is computed by summing the decoded byte values and extracting the\nleast significant byte of the sum, and then calculating the two\'s\ncomplement of the sum, by inverting its bits and adding one.</p>\n<p>I have included in the show notes an example of a record with pipes\nused to break up the line.</p>\n<p>Hope you enjoyed the espeak episode.</p>\n<p>There are so many ways to produce shows, there is no excuse not\nto!</p>\n<p>This is Brian in Ohio signing off reminding everyone.</p>\n<p>We are all creatures of ego.</p>\n',326,0,0,'CC-BY-SA','hobby electronics, retrocomputing, espeak',0,0,1),
(4012,'2023-12-19','RE: show comments.',1258,'Sgoti replies to a comment or two.','<h2 id=\"re-show-comments.\">RE: show comments.</h2>\n<h2 id=\"sgoti-replies-to-a-comment-or-two.\">Sgoti replies to a comment\nor two.</h2>\n<ul>\n<li><a\nhref=\"https://hackerpublicradio.org/eps/hpr3972/index.html\">hpr3972 ::\nThunderbird inbox filtering: keeping a clean/orderly inbox.</a><br />\n</li>\n<li><strong>Source:</strong> <a\nhref=\"https://hackerpublicradio.org/eps/hpr3972/index.html#comments\"\ntitle=\"Why unsubscribe?\">Comment By: frank</a><br />\n</li>\n</ul>\n<blockquote>\n<p>Why unsubscribe?</p>\n<blockquote>\n<p>I don\'t know how it is in the US, but in Europe, a newsletter by law\nneeds to have a clear way of unsubscribing by providing a link\nsomewhere.<br />\nWhy unsubscribe? 1. For the environment. It is dirt cheap to spam\ne-mails around. But the amount adds up in electricity and traffic. 2.\nFor your own privacy. 2a. If you use a commercial mail provider that\nscans your mails, then each time you get one of those, it is scanned and\nthe profile on you grows. 2b. In case the sender of the newsletter is\never hacked (chances are it will at a certain point), your address will\nleak to the crackers. 2c. The sender has your address and can (and\nprobably will) trade it for money. In an ideal world (we all like to\nthink that hope dies last) they delete your address when you\nunsubscribe. If not, it\'s probably a violation of GDPR.</p>\n</blockquote>\n</blockquote>\n<ul>\n<li><a\nhref=\"https://hackerpublicradio.org/eps/hpr4008/index.html\">hpr4008 ::\nSextortion. Good Heavens!</a><br />\n</li>\n<li><strong>Source:</strong> <a\nhref=\"https://hackerpublicradio.org/eps/hpr4008/index.html#comments\"\ntitle=\"This show is very opinionated\">Comment By: Another Guy on the\ninternet</a><br />\n</li>\n</ul>\n<blockquote>\n<p>This show is very opinionated</p>\n<blockquote>\n<p>The nice thing about podcasts and radio is that you can monologue\nwhatever nonsense you like and act like it is the single truth in the\nuniverse. That is exactly what is going on this show. First there is\nsome useful information about sextortion, the forms it manifests in and\nconsequences it can have in real life, that\'s the good stuff. Then comes\nthe bad and the straight-out ugly bit. While the speaker starts of with\na pretty factual analysis, eventually he slides into a very much\nopinionated stance against any form of digital eroticism. Don\'t do\n<code>*****</code> kids! Where have we heard that before, right?\nSeriously, if you are an adult having a problem with the fact that\npeople exchange nudes in their sexual discovery journey then that is\njust your own moral problem, do not project that on the rest of the\nworld please. People have done that about sex, drugs, music, religious\nbelieves, cultural habits, and pretty much everything we humans design\nto entertain ourselves and to carry out our identity into the world.\nSaying \"Don\'t do that\" really is totally random moral stance since what\nis found to be offensive in your part of the world might be totally\ninnocent behavior where I live and vice versa. So, again, because\nrepetition seems to work for Coca-Cola: don\'t project your own random\nmoral objections onto the world. They are legit, they are rightfully\nyours to keep. But don\'t try to push them further than that, because\nthat\'s just randomly stupid.</p>\n</blockquote>\n</blockquote>\n<ul>\n<li><a\nhref=\"https://hackerpublicradio.org/eps/hpr4008/index.html\">hpr4008 ::\nSextortion. Good Heavens!</a><br />\n</li>\n<li><strong>Source:</strong> <a\nhref=\"https://hackerpublicradio.org/eps/hpr4008/index.html#comments\"\ntitle=\"Poor quality.\">Comment By: hpr listener</a><br />\n</li>\n</ul>\n<blockquote>\n<p>Poor quality.</p>\n<blockquote>\n<p>SGOTY. Up to this point, your shows have been of good quality and\nwell considered.<br />\nI will preface this with the fact that yes, sexstortion is something\nthat exists. Observing some basic safety measures when using the\ninternet could easily prevent it. It is a societal problem in,\nespecially in the age of social media.<br />\nThis show however, was a hideous disappointment.<br />\nUtterly condescending to other human beings, particularly victims of\nthis. Moral-panic ridden pearl clutching nonsense.<br />\nYou opted not to :- Actually speak with any victim of the phenomenon\nabout their lived experience.<br />\nNor did you cite any <em>actual</em> subject matter expert, such as Eva\nGalperin (Cybersecurity director at the EFF, works with sextortion\nvictims), Violet Blue (an author and journalist who covers the\nphenomenon and adjacent social/tech matters extensively)<br />\nYour sources amount to :-<br />\nThe FBI, a government agency known globally for utter incompetence in\nunderstanding social phenomena, and known to frequently lie to further\nits own, often ill-considered goals. and Reddit. REDDIT.<br />\nThats a fairly clear cut case of source bias.<br />\nRepeated mentions of \'evidence\' that you opt not to cite directly or\nclearly.<br />\nNothing whatsoever besides moral grandstanding and a baseless belief you\nhave any right to tell others how to conduct their personal lives.<br />\nSeriously, DO. BETTER.</p>\n</blockquote>\n</blockquote>\n',391,0,1,'CC-BY-SA','reply show, sextortion, unsubscribing',0,0,1),
(4013,'2023-12-20','Smart Watches gross',1814,'Operator talks about his setup and issues with smart watches','<p>I talk about my setup and issues with smart watches</p>\n',36,0,1,'CC-BY-SA','hacking,smart watches,wearables,android,samsung',0,0,1),
(4014,'2023-12-21','Post-Quantum Cryptography Update 1st November 2023',606,'An NIST guide is published aimed at IT and Security professionals','<p>In May of 2023 a guide was published by NIST that aimed to guide IT\nProfessionals and Security Officers on steps to take as we move into a\nworld where Quantum computing has made traditional cryptography and\nsecurity measures obsolete. This is their take on a best practices\nmanual, and if you are in security or are an IT professional it merits a\ngood look. And it is only 4 pages long, so you can do it easily.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a\nhref=\"https://www.nccoe.nist.gov/sites/default/files/2023-04/pqc-migration-nist-sp-1800-38a-preliminary-draft.pdf\"\nclass=\"uri\">https://www.nccoe.nist.gov/sites/default/files/2023-04/pqc-migration-nist-sp-1800-38a-preliminary-draft.pdf</a></li>\n</ul>\n',198,74,0,'CC-BY-SA','quantum computing, post-quantum computing, post-quantum cryptography, cryptography',0,0,1),
(4015,'2023-12-22','Value of life, part 0.',1104,'Wear your secret hat. Sgoti talks about putting a dollar value on a human life.','<h2 id=\"value-of-life-part-0.\">Value of life, part 0.</h2>\n<h3\nid=\"wear-your-secret-hat.-sgoti-talks-about-putting-a-dollar-value-on-a-human-life.\">Wear\nyour secret hat. Sgoti talks about putting a dollar value on a human\nlife.</h3>\n<ul>\n<li><strong>Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Value_of_life\">Value of life</a>\n<ul>\n<li>The value of life is an economic value used to quantify the benefit\nof avoiding a fatality. It is also referred to as the cost of life,\nvalue of preventing a fatality (VPF), implied cost of averting a\nfatality (ICAF), and value of a statistical life (VSL).</li>\n</ul></li>\n<li><strong>Supporting Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Cost%E2%80%93benefit_analysis\">Cost-benefit\nanalysis</a>\n<ul>\n<li>Cost-benefit analysis (CBA), sometimes also called benefit-cost\nanalysis, is a systematic approach to estimating the strengths and\nweaknesses of alternatives. It is used to determine options which\nprovide the best approach to achieving benefits while preserving savings\nin, for example, transactions, activities, and functional business\nrequirements.</li>\n</ul></li>\n<li><strong>Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Social_Credit_System\">Social Credit\nSystem</a>\n<ul>\n<li>The Social Credit System is a national credit rating and blacklist\nbeing developed by the government of China. The social credit initiative\ncalls for the establishment of a record system so that businesses,\nindividuals and government institutions can be tracked and evaluated for\ntrustworthiness. There are multiple forms of the social credit system\nbeing experimented with, while the national regulatory method is based\non whitelisting (termed redlisting in China) and blacklisting.</li>\n</ul></li>\n<li><strong>Source:</strong> <a\nhref=\"https://www.thesenagroup.com/2022/05/03/body-part-insurance/\">What\nis Body Part Insurance?</a>\n<ul>\n<li>Insuring body parts isn\'t anything new in the world of celebrities,\nbut it is a rare type of insurance that now counts athletes among its\nnumbers. The entire point of insuring a body part is to supplement a\nloss of income should that body part become injured, damaged, scarred,\nhandicapped or lost, preventing the individual from continuing to use it\nto generate income.</li>\n</ul></li>\n<li><strong>Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Pre-existing_condition\">Pre-existing\ncondition</a>\n<ul>\n<li>The University of Pittsburgh Medical Center defines a pre-existing\ncondition as a \"medical condition that occurred before a program of\nhealth benefits went into effect\". J. James Rohack, president of the\nAmerican Medical Association, has stated on a Fox News Sunday interview\nthat exclusions, based upon these conditions, function as a form of\n\"rationing\" of health care.</li>\n</ul></li>\n<li><strong>Supporting Source:</strong> <a\nhref=\"https://www.hhs.gov/healthcare/about-the-aca/pre-existing-conditions/index.html\">The\nU.S. Department of Health &amp; Human Services</a></li>\n</ul>\n',391,0,1,'CC-BY-SA','secret hat, value of life',0,0,1),
(4016,'2023-12-25','Today I learnt',421,'Today I learnt how to remove a password from a pdf file','<h1 id=\"introduction\">Introduction:</h1>\n<p>In this episode I continue the series \"Today I learnt..\" which was\nstarted by <a\nhref=\"https://hackerpublicradio.org/correspondents/0225.html\">Dave\nMorriss</a> in <a\nhref=\"hackerpublicradio.org/eps/hpr4002/index.html\">HPR 4002</a></p>\n<h1 id=\"show-notes\">Show notes:</h1>\n<p>I mention that I first tried to remove the password from my pdf using\nthe excellent pdf manipulation program <a\nhref=\"https://okular.kde.org/en-gb/\">Okular</a> recommended to me by <a\nhref=\"https://hackerpublicradio.org/correspondents/0225.html\">Dave\nMorriss</a>.</p>\n<p>After some googling I found the following <a\nhref=\"https://www.cyberciti.biz/faq/removing-password-from-pdf-on-linux/\">solution\nto my password protected PDF.</a></p>\n<p>The command line program I used to remove the password from my pdf\nwas <a href=\"https://qpdf.sourceforge.io\">qpdf</a>.</p>\n<p>This is <a href=\"https://qpdf.readthedocs.io/en/stable/cli.html\">the\nMan page documentation for qpdf</a></p>\n<p>This is the command I used to remove the password in my pdf</p>\n<pre><code>Qpdf &#x2014;decrypt protected.pdf unprotected.pdf</code></pre>\n',201,123,1,'CC-BY-SA','cli, pdf',0,0,1),
(4018,'2023-12-27','A comment about other shows and Aliases',794,'About the use of the Aliases and bashrc in Linux to better use your commandline.','<p><a href=\"https://hackerpublicradio.org/eps/hpr4018/hpr4018_my_personal_Aliases_list.txt\">https://hackerpublicradio.org/eps/hpr4018/hpr4018_my_personal_Aliases_list.txt</a></p>',421,0,0,'CC-BY-SA','bash commands, bash_aliases',0,0,1),
(4024,'2024-01-04','Experiences with Graphene OS and why I use it',1193,'How and why I live with a de-Googled phone','<p>Peer-reviewed paper on iOS and Android\'s practice of sending data\nfrom the device:<br />\n<a href=\"https://www.scss.tcd.ie/doug.leith/apple_google.pdf\"\nclass=\"uri\">https://www.scss.tcd.ie/doug.leith/apple_google.pdf</a>\n[PDF]</p>\n<p>The go-to, default no-/low-Google choice for many:<br />\n<a href=\"https://lineageos.org/\"\nclass=\"uri\">https://lineageos.org/</a></p>\n<p>The Ubuntu-based phone OS:<br />\n<a href=\"https://ubports.com/\" class=\"uri\">https://ubports.com/</a></p>\n<p>The e/ foundation:<br />\n<a href=\"https://e.foundation/e-os/\"\nclass=\"uri\">https://e.foundation/e-os/</a></p>\n<p>Sailfish OS developers, Jolla:<br />\n<a href=\"https://jolla.com/\" class=\"uri\">https://jolla.com/</a></p>\n<p>Calyx OS (not tested by the author/presenter):<br />\n<a href=\"https://calyxos.org/\" class=\"uri\">https://calyxos.org/</a></p>\n<p>enistello\'s choice of \'best\' de-Googled phone OS:<br />\n<a href=\"https://grapheneos.org/\"\nclass=\"uri\">https://grapheneos.org/</a></p>\n<p>The F-Droid repository for FOSS applications:<br />\n<a href=\"https://f-droid.org/\" class=\"uri\">https://f-droid.org/</a></p>\n<p>The DuckDuckGo web browser:<br />\n<a href=\"https://duckduckgo.com/duckduckgo-help-pages/mobile/android/\"\nclass=\"uri\">https://duckduckgo.com/duckduckgo-help-pages/mobile/android/</a></p>\n',415,74,0,'CC-BY-SA','grapheneOS,Google,data privacy,security',0,0,1),
(4019,'2023-12-28','Fairy lights and Powerful Pixies',4703,'Ken is visited by the ghost of procrastination, desperation and rambling','<blockquote>\n<p>\'Twas the night before Christmas, when all through the house Not a\ncreature was stirring, not even a mouse;</p>\n</blockquote>\n<p>OK wrong story.</p>\n<blockquote>\n<p>In his lonely man cave, a HPR Janitor is visited by the ghost of\nprocrastination. Two years later he is again visited, but this time by\nthe ghost of desperation. And then finally by the ghost of rambling.</p>\n</blockquote>\n<p>Today we learn about AC and DC voltage, about Ohms Law and how to\nwire up a LED to a USB connector.</p>\n<p>A long rambling show which in the end came down to using ohms law to\nfind the value of the resister.</p>\n<p>Knowing any 2 of the 3 values in Ohms law will give us the resistor\nwe need.</p>\n<p>The current will be the same, so we can just measure, and it turns\nout to be 22 mA (milliamperes) or 0.022 amp. This is measured in Amps,\nand has the symbol I</p>\n<p>The voltage we need to use up is 2 volts as we are going from 5 Volts\nUSB AC Adapter to 3 Volts used by the two AA battery in series. Giving\nus 2 Volts with unit of V.</p>\n<p>We can then find the Resistance measured in Ohms by dividing 2 Volts,\nby 0.022 Amps to give us 90 Ohms of Resistance.</p>\n<p>The V is always on top of the triangle with I and R underneath.</p>\n<p>So not having a 90 Ohm resistor a 100 Ohm would work just as\nwell.</p>\n<p>\n<a href=\"https://commons.wikimedia.org/w/index.php?curid=92402754\" alt=\"Fairy lights as described at the end of show\">\n<img src=\"https://upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Ohm_law_mnemonic_principle.svg/160px-Ohm_law_mnemonic_principle.svg.png\" /></a>\n</p>\n\n<p>\n<a href=\"https://hackerpublicradio.org/eps/hpr4019/hpr4019/fairy-lights-and-pixies-1.jpg\" alt=\"Fairy lights as described at the end of show\">\n<img src=\"https://hackerpublicradio.org/eps/hpr4019/hpr4019/fairy-lights-and-pixies-1-thumbnail.jpg\" /></a>\n</p>\n<p>\n<a href=\"https://hackerpublicradio.org/eps/hpr4019/hpr4019/fairy-lights-and-pixies-2.jpg\" alt=\"Fairy lights lit in a plastic cookie jar with an external powerbank\">\n<img src=\"https://hackerpublicradio.org/eps/hpr4019/hpr4019/fairy-lights-and-pixies-2-thumbnail.jpg\" /></a>\n</p>\n\n<ul>\n<li><a\nhref=\"https://www.electronics-tutorials.ws/diode/diode_8.html\">https://www.electronics-tutorials.ws/diode/diode_8.html</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Light-emitting_diode\">https://en.wikipedia.org/wiki/Light-emitting_diode</a></li>\n<li><a\nhref=\"https://www.wolframalpha.com/input?i=.022+amp\">https://www.wolframalpha.com/input?i=.022+amp</a></li>\n<li><a\nhref=\"https://www.eevblog.com/forum/projects/smd-led-size-for-beginners/\">https://www.eevblog.com/forum/projects/smd-led-size-for-beginners/</a></li>\n<li><a\nhref=\"https://learn.sparkfun.com/tutorials/light-emitting-diodes-leds/all\">https://learn.sparkfun.com/tutorials/light-emitting-diodes-leds/all</a></li>\n<li><a\nhref=\"https://www.electronicshub.org/led-light-emitting-diode/\">https://www.electronicshub.org/led-light-emitting-diode/</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Resistor\">https://en.wikipedia.org/wiki/Resistor</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Coulomb\">https://en.wikipedia.org/wiki/Coulomb</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Ampere\">https://en.wikipedia.org/wiki/Ampere</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Georg_Ohm\">https://en.wikipedia.org/wiki/Georg_Ohm</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Ohm\">https://en.wikipedia.org/wiki/Ohm</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/AA_battery\">https://en.wikipedia.org/wiki/AA_battery</a></li>\n</ul>\n',30,0,0,'CC-BY-SA','Volts, Amps, Ohms, Resistance, Current, Potential Energy, Ohms Law, AngryPixies',0,0,1),
(4023,'2024-01-03','Information Transparency for world peace',1914,'An idea based on the New world order ideology and the morality of Edward Snowden.','<p>I do not know what if any kind of licence I need or where to find\none. I made this myself while a little tipsy, and if I hadn\'t been I\nwould have been too nervous to do so. What can I say it was xmas day and\ni was feeling lonely.</p>\n<p>All material in the podcast was thought of as I recorded. Nothing was\nplanned.</p>\n<p>The basis of it came to light after recording it.</p>\n',426,0,0,'CC-BY-SA','information, transparency, world, peace',0,0,1),
(4022,'2024-01-02','dumping roms for fun and profit',1039,'using forth to do something useful','<p>disassembling - hex2bin is used for converting hexadecimal files into\na binary file. - used z80dasm to disassemble machine code into\nhexadecimal - use xxd to view the hex code and machine code side by side\n- ghidra, reverse engineering suite used for analysis</p>\n<p><a href=\"https://www.noagendashow.net/\"\nclass=\"uri\">https://www.noagendashow.net/</a> <a\nhref=\"https://twostopbits.com/\" class=\"uri\">https://twostopbits.com/</a>\n<a href=\"https://en.wikipedia.org/wiki/Programmable_ROM\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Programmable_ROM</a> <a\nhref=\"https://en.wikipedia.org/wiki/Dual_in-line_package\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Dual_in-line_package</a> <a\nhref=\"https://www.tablix.org/~avian/blog/articles/z80dasm/\"\nclass=\"uri\">https://www.tablix.org/~avian/blog/articles/z80dasm/</a> <a\nhref=\"https://ghidra-sre.org/\" class=\"uri\">https://ghidra-sre.org/</a>\n<a href=\"https://hex2bin.sourceforge.net/\"\nclass=\"uri\">https://hex2bin.sourceforge.net/</a></p>\n<p>1.prom-location-on-board.jpg 2.prom-ready-to-read.jpg</p>\n<p>Intelhex file snipet:</p>\n<pre><code>:100600003E0FCD8E043E0ECD8E04211441360023C4\n:1006100036003A6341326A41CDB204CDC404CD61A3\n:1006200005215541CB46C46306210F41CB6E281CE2\n:10063000210241CB4E28CE210F41CB7E2809FEEC72\n:10064000CAC306FEED287CCD45071849CB66284570\n:10065000210741CB76203B21154134CB8ECB9ECB5D\n:10066000961832FEFFC8CB4E2808FEE42004CB8E3D\n:10067000D1C9211941BED0FE31D8215541CB6628C0\n:1006800003FE31C8321341CBA7CBAF215541CBD6A6\n:10069000D1C9CD45072114413400003A2E41BEC2D4\n:1006A0001E0636000000211541CB46216B417E2BF2\n:1006B0002016BE200F3E132B772124413600210F38\n:1006C000413EFFC934C31806BE28EA3EC9CD8E0498\n:1006D0002115417EC60477CB5E200CCBA6AF01006E\n:1006E00041CD9104C31E063E2018F3210F41CB6675\n:1006F000202DCB6E28093A1341FEE4CCD107C93E28\n:10070000FFC9CDEB06210F41CB662013CB6E28EF3E\n:100710003A1341FEE12804FEE22004CDD107C93A94\n:100720001341C93E200614219042772310FCC921B1\n:100730002541367C233614CD5207C9212541362068\n:1007400023362018F2FB2125413680233601CD5374\n:1007500007C9F31680211241CBCECB964E0640CB73</code></pre>\n<p>xxd output showing text that\'s displayed on the screen when the\ndevice boots</p>\n<pre><code>000025d0: f4f5 f6f7 f9ef e1e2 0ded e8f8 30e4 3d3b  ............0.=;\n000025e0: 272f e550 3839 4f4b 4c2c 2e49 3637 5548  &#39;/.P89OKL,.I67UH\n000025f0: 4a4e 4d59 3435 5446 4756 4252 3233 4553  JNMY45TFGVBR23ES\n00002600: 4458 4357 e631 5141 5ae7 20ec ebea 2020  DXCW.1QAZ. ...\n00002610: 2020 2020 0f53 454c 4543 5420 4143 5449      .SELECT ACTI\n00002620: 5649 5459 1053 454c 4543 5420 434c 4153  VITY.SELECT CLAS\n00002630: 5320 312d 3906 4c45 5353 4f4e 1053 454c  S 1-9.LESSON.SEL\n00002640: 4543 5420 4c45 5645 4c20 312d 3405 4c45  ECT LEVEL 1-4.LE\n00002650: 5645 4c12 5345 4c45 4354 2053 4543 5449  VEL.SELECT SECTI\n00002660: 4f4e 2031 2d32 1231 2d45 5841 4d50 4c45  ON 1-2.1-EXAMPLE\n00002670: 2050 524f 4752 414d 5310 322d 4241 5349   PROGRAMS.2-BASI\n00002680: 4320 434f 4d50 5554 4552 1045 5841 4d50  C COMPUTER.EXAMP\n00002690: 4c45 2050 524f 4752 414d 530e 5052 452d  LE PROGRAMS.PRE-\n000026a0: 4241 5349 4320 5631 2e30 1253 454c 4543  BASIC V1.0.SELEC</code></pre>\n<p>z80dasm output:</p>\n<pre><code>    push af         ;0040   f5  .\n    push bc         ;0041   c5  .\n    push de         ;0042   d5  .\n    push hl         ;0043   e5  .\n    ld hl,0410fh        ;0044   21 0f 41    ! . A\n    res 4,(hl)      ;0047   cb a6   . .\n    res 5,(hl)      ;0049   cb ae   . .\n    set 6,(hl)      ;004b   cb f6   . .\n    bit 0,(hl)      ;004d   cb 46   . F\n    jr nz,27        ;004f   20 19     .\n    bit 1,(hl)      ;0051   cb 4e   . N\n    jr z,41     ;0053   28 27   ( &#39;\n    ld hl,0410eh        ;0055   21 0e 41    ! . A\n    inc (hl)            ;0058   34  4\n    ld a,(hl)           ;0059   7e  ~\n    cp 032h     ;005a   fe 32   . 2\n    jr nz,32        ;005c   20 1e     .\n    ld (hl),000h        ;005e   36 00   6 .\n    ld hl,0410ch        ;0060   21 0c 41    ! . A\n    inc (hl)            ;0063   34  4\n    jr nz,24        ;0064   20 16     .\n    inc hl          ;0066   23  #\n    inc (hl)            ;0067   34  4\n    jr 20       ;0068   18 12   . .\n    ld hl,0410ch        ;006a   21 0c 41    ! . A\n    inc (hl)            ;006d   34  4\n    jr nz,14        ;006e   20 0c     .\n    inc hl          ;0070   23  #\n    inc (hl)            ;0071   34  4\n    ld a,(hl)           ;0072   7e  ~\n    cp 00ch     ;0073   fe 0c   . .\n    jr nz,7     ;0075   20 05     .\n    ld hl,0410fh        ;0077   21 0f 41    ! . A\n    set 2,(hl)      ;007a   cb d6   . .</code></pre>\n<p>If you\'ve gotten this far, the forth code, read bottom up:</p>\n<pre><code>-promreader\nmarker -promreader\n\n2variable low-mem\n2variable high-mem\n\n\\ 22-29\n$22 constant LOW-BYTE\n$21 constant DDRA\n$20 constant PINA\n\n\\ 53=PB0, 52=PB1\n$25 constant PAGE\n$24 constant DDRB\n$23 constant PINB\n%0000.0001 constant PAGE-SELECT\n%0000.0010 constant CHIP-ENABLE\n\n\\ 37-30 (reversed on board)\n$28 constant HIGH-BYTE\n$27 constant DDRC\n$26 constant PINC\n\n\\ 49-42 (reversed on board)\n$10b constant  PORTL\n$10a constant  DDRL\n$109 constant  DATA\n\nvariable LineFeed\nvariable Address\nvariable CheckSum\n\n$10 constant ByteCount\n0 constant RecordType\n\n: port-init ( -- )\n  PAGE-SELECT DDRB mset\n  CHIP-ENABLE DDRB mset\n  $ff DDRA mset\n  $ff DDRC mset\n  $ff DDRL mclr\n  $ff PORTL mset\n  CHIP-ENABLE PAGE mset\n  PAGE-SELECT PAGE mclr\n;\n\n: hex&gt;ascii ( n -- c c ) dup $f0 and 4 rshift swap $0f and digit swap digit ;\n\n: checksum+ ( n -- )  CheckSum @ + CheckSum ! ;\n\n: .output ( n -- )  ( dup ) ( checksum+ ) emit emit ;\n\n: address ( n -- )\n  Address @\n  dup $ff00 and 8 rshift swap\n  $00ff and swap\n  dup checksum+\n  hex&gt;ascii\n  .output\n  hex&gt;ascii\n  .output\n;\n\n: add&gt;bytes ( n -- n n ) dup $ff00 and 8 rshift swap $00ff and ;\n\n: build-record ( n -- ) dup checksum+ hex&gt;ascii .output ;\n\n: header ( -- )\n    .&quot; :&quot;\n    ByteCount build-record\n    Address @ add&gt;bytes swap build-record build-record\n    RecordType build-record\n;\n\n: .checksum ( -- )\n  CheckSum @ invert 1+\n  build-record\n  0 CheckSum !\n  cr\n;\n\n\n: address+ ( -- n ) Address @ 1+ dup Address ! ;\n\n: line-feed+ ( -- )\n  LineFeed @ 1+\n  dup\n  ByteCount = if\n    ( .checksum )\n    0 LineFeed !\n    cr\n  else\n    LineFeed !\n  then\n;\n\n: read-data ( -- d )\n  CHIP-ENABLE PAGE mclr 10 ms\n  DATA c@ 10 ms\n  CHIP-ENABLE PAGE mset 10 ms\n  ;\n\n: set-high-byte HIGH-BYTE c! ;\n\n: set-low-byte LOW-BYTE c! ;\n\n: get-data ( -- n )\n  Address @ add&gt;bytes\n  set-low-byte\n  set-high-byte\n  read-data\n  build-record\n;\n\n: page-read ( -- )\n  0 CheckSum ! 0 Address ! cr\n  begin\n    0\n    header\n    begin\n      get-data\n      Address @ 1+ Address !\n      1+\n      dup 16 =\n    until\n    drop\n    .checksum\n    Address @\n    0=\n  until\n  .&quot; :00000001FF&quot; cr\n;\n\n\n: dump-prom ( -- )\n  port-init\n  .&quot; Page 1&quot; cr\n  page-read\n  PAGE-SELECT PAGE mset\n  .&quot; Page 2&quot; cr\n  page-read\n  ;</code></pre>\n<p><em>PROM location on board</em><br />\n<img\nsrc=\"https://hackerpublicradio.org/eps/hpr4022/hpr4022/1.prom-location-on-board.jpg\"\nalt=\"PROM location on board\" /></p>\n<p><em>PROM ready to read</em><br />\n<img\nsrc=\"https://hackerpublicradio.org/eps/hpr4022/hpr4022/2.prom-ready-to-read.jpg\"\nalt=\"PROM ready to read\" /></p>\n',326,0,0,'CC-BY-SA','z80, retro computing, forth',0,0,1),
(4025,'2024-01-05','Testing V language',1012,'I tried V, a new experimental programming language','<h2 id=\"pros\">Pros</h2>\n<ul>\n<li>Strong static typing</li>\n<li>compiles to C, no useless complexity like the JVM. Strong\nfoundation, C is here to stay and compiles to most obscure\narchitectures</li>\n<li>small binary size</li>\n<li>pattern matching and sum types</li>\n<li>immutability by default</li>\n<li>option/result types</li>\n<li>compile time reflection</li>\n<li>most Rust features, but memory management is automatic via GC or\n-autofree. Really useful for GUI programs</li>\n</ul>\n<h2 id=\"cons\">Cons</h2>\n<ul>\n<li>still in beta</li>\n<li>wants to be \"clean\", but they\'re adding too many features\n<ul>\n<li>database ORM into the language</li>\n<li>GPU shaders</li>\n</ul></li>\n</ul>\n<h2 id=\"links\">Links</h2>\n<ul>\n<li>Official website <a\nhref=\"https://vlang.io/\">https://vlang.io/</a></li>\n<li>The test I did on porting a library to V <a\nhref=\"https://gitlab.com/MassiminoilTrace/airone_v\">https://gitlab.com/MassiminoilTrace/airone_v</a></li>\n</ul>\n',407,25,0,'CC-BY-NC-SA','v,programming,experimental',0,0,1),
(4026,'2024-01-08','Using NLP to get better answer options for language learning',994,'Levenshtein distance may help language learning apps improve answer options for better learning.','<h2 id=\"code-snippets\">Code snippets</h2>\n<p>Install the Levenshtein package.</p>\n<pre class=\"bash\"><code>&gt;&gt;&gt; pip install levenshtein</code></pre>\n<p>Use the Levenshtein package to calculate the edit distance.</p>\n<pre class=\"python\"><code>&gt;&gt;&gt; import Levenshtein\n&gt;&gt;&gt; Levenshtein.distance(&quot;cat&quot;, &quot;dog&quot;)\n3\n&gt;&gt;&gt; Levenshtein.distance(&quot;cat&quot;, &quot;can&quot;)\n1</code></pre>\n<p>Install the TheFuzz package.</p>\n<pre class=\"bash\"><code>&gt;&gt;&gt; pip install thefuzz</code></pre>\n<p>Use TheFuzz to calculate the similarity ratio.</p>\n<pre class=\"python\"><code>&gt;&gt;&gt; from thefuzz import fuzz\n&gt;&gt;&gt; fuzz.ratio(&quot;cat&quot;, &quot;dog&quot;)\n0\n&gt;&gt;&gt; fuzz.ratio(&quot;cat&quot;, &quot;can&quot;)\n67</code></pre>\n<p>Use TheFuzz to calculate the similarity ratio for each item in a\nlist.</p>\n<pre class=\"python\"><code>&gt;&gt;&gt; from thefuzz import process\n&gt;&gt;&gt; options = [&quot;dog&quot;, &quot;can&quot;]\n&gt;&gt;&gt; process.extract(&quot;cat&quot;, options, limit=2)\n[(&#39;can&#39;, 67), (&#39;dog&#39;, 0)]\n&gt;&gt;&gt; process.extract(&quot;cat&quot;, options, limit=1)\n[(&#39;can&#39;, 67)]\n&gt;&gt;&gt; process.extract(&quot;cat&quot;, options, limit=2, scorer=fuzz.ratio)\n[(&#39;can&#39;, 67), (&#39;dog&#39;, 0)]</code></pre>\n<h2 id=\"other-resources\">Other resources</h2>\n<ul>\n<li>Ethan Nam\'s <a\nhref=\"https://medium.com/@ethannam/understanding-the-levenshtein-distance-equation-for-beginners-c4285a5604f0\">Understanding\nthe Levenshtein Distance Equation for Beginners</a></li>\n<li><a href=\"https://pypi.org/project/thefuzz/\">Levenstein\npackage</a></li>\n<li><a href=\"https://pypi.org/project/thefuzz/\">TheFuzz</a></li>\n</ul>\n',427,0,0,'CC-BY-SA','levenshtein, nlp, language learning, education',0,0,1),
(4027,'2024-01-09','Today I learnt (2023-12-18)',620,'Three random things I discovered in the recent past','<article>\n<h2\nid=\"til-1-and-2---a-cure-for-sickle-cell-anemia-fetal-hemoglobin\">TIL 1\nand 2 - a cure for Sickle Cell Anemia / fetal hemoglobin</h2>\n<p><small><strong>Note</strong>: many of the words used here have\nalternative UK (and Commonwealth) spellings versus USA spellings. I am\nusing the USA versions throughout, though I personally prefer the UK\nversions with their <a\nhref=\"https://en.wikipedia.org/wiki/Diphthong\">diphthongs</a> and <a\nhref=\"https://en.wikipedia.org/wiki/Ligature_(writing)\">ligatures</a>\nlike <code>fœtal</code>, but I blame my education for the\nbias!</small></p>\n<p><u>TLDR 1: A potential cure was approved in the UK in November 2023\nfor the blood disorder called <em>Sickle Cell Anemia</em>.</u></p>\n<p><u>TLDR 2: The oxygen-carrying pigment in fetuses is different from\nthat in adults, and changes after birth.</u></p>\n<ul>\n<li>I am interested in all types of science, but particularly in Biology\nof all sorts (I have a BSc degree in Zoology).</li>\n<li>I was listening to a podcast where the subject of a potential\ntreatment for Sickle Cell Anemia was discussed:\n<ul>\n<li>Sickle Cell Disease is an inherited blood disorder resulting in\nanemia which has many complications and can be fatal. It is caused by an\nabnormality in haemoglobin. It\'s a rather complex subject which we will\nnot go into here, though the <a\nhref=\"https://en.wikipedia.org/wiki/Sickle_cell_disease\">Wikipedia</a>\npage has a lot of useful information.</li>\n<li>A new treatment has been developed using genetic manipulation (<a\nhref=\"https://en.wikipedia.org/wiki/CRISPR_gene_editing\">CRISPR</a>),\nwhich increases the amount of fetal hemoglobin (Hemoglobin F) produced\nby the stem cells in the bone marrow.</li>\n<li>Red blood cells with Hemoglobin F do not form the sickle shape.</li>\n</ul></li>\n<li>A \"foetus\" (UK) or \"fetus\" (US) is the unborn offspring that\ndevelops from an animal embryo.</li>\n<li>Hemoglobin is the oxygen-carrying protein in red blood cells. In the\nfetus it is different from that in the adult, and is called\n<em>Hemoglobin F</em>. Normally the fetal form is replaced by the adult\nform after birth in the first 2-4 months.</li>\n<li>Quote from Wikipedia: <em>Hemoglobin F has a different composition\nthan adult forms of hemoglobin, allowing it to bind (or attach to)\noxygen more strongly; this in turn enables the developing fetus to\nretrieve oxygen from the mother\'s bloodstream, which occurs through the\nplacenta found in the mother\'s uterus.</em></li>\n<li>The change from fetal to adult haemoglobin has been known about for\nmany years (75+?) but I had never heard of it until recently.</li>\n</ul>\n<h3 id=\"links\">Links</h3>\n<ul>\n<li>About the words \"foetal\", \"fœtal\" and \"fetal\":\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Diphthong\">Wikipedia:\nDiphthong</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Ligature_(writing)\">Wikipedia:\nLigature (writing)</a></li>\n</ul></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Sickle_cell_disease\">Wikipedia:\nSickle Cell Disease</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/CRISPR_gene_editing\">Wikipedia:\nCRISPR gene editing</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Fetus\">Wikipedia:\nFetus</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Hemoglobin\">Wikipedia:\nHemoglobin</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Fetal_hemoglobin\">Wikipedia:\nFetal hemoglobin</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Malaria\">Wikipedia:\nMalaria</a></li>\n</ul>\n<h2 id=\"til-3---perls-birthday\">TIL 3 - Perl\'s birthday</h2>\n<ul>\n<li>The Perl scripting language was \"born\" in 1987 on December\n18<sup>th</sup>.</li>\n<li>See the <a\nhref=\"https://github.com/Perl/perl5/commit/8d063cd8450e59ea1c611a2f4f5a21059a2804f1\">Github\ncommit</a> for the first released version</li>\n<li>I\'m a long-time devotee of Perl, and my birthday is the same day! I\ndidn\'t know this until today ☺<br />\nI\'m more than twice as old though...</li>\n<li>I find it quite interesting to look at the original ideas behind\nPerl, which you can see on Github.</li>\n</ul>\n<h3 id=\"links-1\">Links</h3>\n<ul>\n<li><a href=\"https://www.perl.org/\">Perl website</a></li>\n<li><a\nhref=\"https://github.com/Perl/perl5/commit/8d063cd8450e59ea1c611a2f4f5a21059a2804f1\">First\nGithub commit</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Perl\">Wikipedia:\nPerl</a></li>\n</ul>\n</article>\n',225,123,1,'CC-BY-SA','human physiology, hemoglobin, Sickle Cell Disease, fetus, Perl',0,0,1),
(4028,'2024-01-10','Passwords with a Pi Pico',1044,'norrist uses a raspberry pi pico to type passwords','<h1 id=\"norrist-uses-a-raspberry-pi-pico-to-type-passwords\">norrist uses\na raspberry pi pico to type passwords</h1>\n<h2 id=\"password-managers\">Password Managers</h2>\n<ul>\n<li>I like using a password managers</li>\n<li>Every site has a different complex password</li>\n<li>I use the browser plugin or copy paste.</li>\n<li>I recently switched from last pass to bit warden.\n<ul>\n<li>I was one of the users that did not get prompted to increase the\nnumber of password iterations from 1000.</li>\n</ul></li>\n<li>They work basically the same.</li>\n</ul>\n<h2 id=\"my-stupid-bank\">My stupid bank</h2>\n<ul>\n<li>The normal procedure for changing passwords is\n<ul>\n<li>fill in old password</li>\n<li>generate new random password</li>\n<li>copy paste new password into the new password field</li>\n</ul></li>\n<li>For some reason, my bank\'s site uses JavaScript to block paste into\nthe new password fields</li>\n<li>I don\'t know why banks or anyone disable pasting into a browser\nfield</li>\n<li>The only way I could change my password, was to generate a password\nsimple enough that it could be manually typed into the change\nfields</li>\n</ul>\n<h2 id=\"first-solution\">First solution</h2>\n<ul>\n<li>I wanted to find something like a programmable keyboard where you\ncould input an input string and have the device type out the\ncharacters</li>\n<li>I found a few keyboards that used macros, but they seemed too simple\nto use for a complex password.</li>\n<li>I saw somewhere online that you could use a micro-controller to\nemulate a keyboard.</li>\n<li>I had a circuit playground express that I wasn\'t using for\nanything.</li>\n<li>The circuit playground express has 2 built in buttons</li>\n<li>I found a circuit python tutorial for emulating keystrokes and\nmodified it so it would emulate the keystrokes for a password.</li>\n<li>Button A would output a password and button B would output a\ndifferent password.</li>\n</ul>\n<h2 id=\"problems\">Problems</h2>\n<ul>\n<li>The passwords were stored as variables in the code</li>\n<li>The circuit playground express has a lot of built in LED\'s and touch\npads. It was really being wasted to only use it as a keyboard emulation\ndevice</li>\n<li>I have another project I want to use the playground express for</li>\n</ul>\n<h2 id=\"next-solution\">Next Solution</h2>\n<ul>\n<li>Raspberry Pi Pico - $4 micro controller</li>\n<li>I was able to get circuit python to micro controller a keyboard on\nthe pi pico</li>\n<li>Not many ways to get physically interact with board.</li>\n<li>No buttons and only one LED.</li>\n<li>I decided the best way was to have a count down timer</li>\n<li>blink the led to indicate where the timer was in the countdown</li>\n<li>output the keystrokes when the countdown timer reached zero</li>\n</ul>\n<h2 id=\"more-problems\">More problems</h2>\n<ul>\n<li>Circuit python devices work by exposing a small file system when\nplugged in via USB.</li>\n<li>You can mount the file system and edit the code running on the micro\ncontroller</li>\n<li>Once the device is powered on, it starts emulating keystrokes every\ntime the countdown timer cycles</li>\n<li>to keep the micro controller keystrokes from interfering with any\nwork you were doing I would have to mount the device and quickly comment\nout part of the code so it would stop sending keystrokes</li>\n<li>As a fix, I added a check to only send keystrokes if a file named\n<code>send_keys</code> exists</li>\n<li>Now, I can work on the code and only add the <code>send_keys</code>\nfile when I an ready.</li>\n</ul>\n<h2 id=\"storing-the-password\">Storing the password</h2>\n<ul>\n<li>I didn\'t like that the password I want to send as keystrokes was\nstored as a variable in the code.</li>\n<li>I modified that python to read the password from a separate file\nnamed pw.txt</li>\n</ul>\n<h2 id=\"setup-the-pi-pico\">Setup the Pi Pico</h2>\n<h3 id=\"install-circuit-python\">Install circuit python</h3>\n<ul>\n<li><a\nhref=\"https://learn.adafruit.com/getting-started-with-raspberry-pi-pico-circuitpython/circuitpython\"\nclass=\"uri\">https://learn.adafruit.com/getting-started-with-raspberry-pi-pico-circuitpython/circuitpython</a></li>\n</ul>\n<h3 id=\"bundle\">Bundle</h3>\n<ul>\n<li><code>https://github.com/adafruit/Adafruit_CircuitPython_Bundle</code>\n-&gt; Releases</li>\n<li>Download <code>adafruit-circuitpython-bundle-py-20231219.zip</code>\nor current version.</li>\n<li>Create a <code>lib</code> directory on the circuit python\ndrive.</li>\n<li>Copy the directory <code>lib/adafruit_hid</code> from the zip to\n<code>lib</code> on the circuit python drive.</li>\n</ul>\n<h3 id=\"code.py\">Code.py</h3>\n<ul>\n<li>Circuit python execute <code>code.py</code></li>\n<li>Copy the code to send the passwords to the file\n<code>code.py</code></li>\n</ul>\n<h2 id=\"how-to-use\">How to use</h2>\n<ul>\n<li>Plug in the pico to your PC and mount the drive</li>\n<li>The LED will blink - 1 second on and 1 second off</li>\n<li>Save the password you want to input as keystrokes in the file\n<code>pw.txt</code></li>\n<li>When you are ready for the pico to do the typing, create the file\n<code>send_keys</code></li>\n<li>The LED\'s will blink fast 5 times, then 4 times, ...</li>\n<li>Wait for the LED flashes to count down.</li>\n<li>The pico will send the keystrokes and restart the countdown.</li>\n<li>Remove the file <code>send_keys</code> so stop the input.</li>\n<li>Overwrite pw.txt to be extra secure.</li>\n</ul>\n<h2 id=\"adapted-from-ada-fruit-circuit-python-examples\">Adapted from Ada\nfruit circuit python examples</h2>\n<ul>\n<li><a\nhref=\"https://github.com/adafruit/Adafruit_Learning_System_Guides/blob/main/LICENSE\">MIT\nLicensed</a></li>\n<li><a\nhref=\"https://github.com/adafruit/Adafruit_Learning_System_Guides/blob/main/Introducing_CircuitPlaygroundExpress/CircuitPlaygroundExpress_HIDKeyboard/code.py\">Keyboard\nExample</a></li>\n</ul>\n<h2 id=\"code\">Code</h2>\n<p><a href=\"https://gitlab.com/norrist/pico_pw_paste\">Gitlab\nRepo</a></p>\n<hr />\n<pre class=\"py\"><code>import os\nimport time\n\nimport board\nimport digitalio\nimport usb_hid\n\n# https://github.com/adafruit/Adafruit_CircuitPython_Bundle\nfrom adafruit_hid.keyboard import Keyboard\nfrom adafruit_hid.keyboard_layout_us import KeyboardLayoutUS\nfrom adafruit_hid.keycode import Keycode\n\nled = digitalio.DigitalInOut(board.LED)\nled.direction = digitalio.Direction.OUTPUT\n\nwith open(&quot;pw.txt&quot;, &quot;r&quot;) as pw_file:\n    pw = pw_file.read()\n\na_keys_pressed = [Keycode.A, pw]\ncontrol_key = Keycode.SHIFT\n\n# The keyboard object!\ntime.sleep(1)  # Sleep for a bit to avoid a race condition on some systems\nkeyboard = Keyboard(usb_hid.devices)\nkeyboard_layout = KeyboardLayoutUS(keyboard)  # We&#39;re in the US :)\n\ndef blink_count(i, delay):\n    for _ in range(i):\n        led.value = True\n        time.sleep(delay)\n        led.value = False\n        time.sleep(delay)\n    time.sleep(1)\n\ndef countdown_and_send():\n    for i in reversed(range(6)):\n        print(i)\n        blink_count(i, delay=0.2)\n    print(f&quot;Sending {a_keys_pressed} as keystrokes&quot;)\n    for key in a_keys_pressed:\n        if isinstance(key, str):  # If it&#39;s a string...\n            keyboard_layout.write(key)  # ...Print the string\n\nwhile True:\n    print(&quot;Hello, CircuitPython!&quot;)\n    try:\n        os.stat(&quot;send_keys&quot;)\n        countdown_and_send()\n    except OSError:\n        blink_count(1, 1)\n        print(&quot;touch send_keys to enable keypresses&quot;)</code></pre>\n<h3 id=\"playground-express-version\">Playground express version</h3>\n<pre class=\"python\"><code># SPDX-FileCopyrightText: 2018 Kattni Rembor for Adafruit Industries\n#\n# SPDX-License-Identifier: MIT\n\n&quot;&quot;&quot;CircuitPython Essentials HID Keyboard example&quot;&quot;&quot;\nimport time\n\nimport usb_hid\nfrom adafruit_circuitplayground import cp\nfrom adafruit_hid.keyboard import Keyboard\nfrom adafruit_hid.keyboard_layout_us import KeyboardLayoutUS\nfrom adafruit_hid.keycode import Keycode\n\na_keys_pressed = [Keycode.A, &quot;aaaabbbbccccdddd@@&quot;]\nb_keys_pressed = [Keycode.A, &quot;eeeeffffgggghhhh@@&quot;]\n\n\ncontrol_key = Keycode.SHIFT\n\ntime.sleep(1)  # Sleep for a bit to avoid a race condition on some systems\nkeyboard = Keyboard(usb_hid.devices)\nkeyboard_layout = KeyboardLayoutUS(keyboard)  # We&#39;re in the US :)\n\n\nprint(&quot;Waiting for key pin...&quot;)\n\nwhile True:\n    if cp.button_a:\n        print(&quot;A&quot;)\n        for key in a_keys_pressed:\n            if isinstance(key, str):  # If it&#39;s a string...\n                keyboard_layout.write(key)  # ...Print the string\n    elif cp.button_b:\n        print(&quot;B&quot;)\n        for key in b_keys_pressed:\n            if isinstance(key, str):  # If it&#39;s a string...\n                keyboard_layout.write(key)  # ...Print the string\n\n    time.sleep(0.1)</code></pre>\n<h2 id=\"links\">Links</h2>\n<ul>\n<li><a href=\"https://circuitpython.org/\"\nclass=\"uri\">https://circuitpython.org/</a></li>\n<li><a\nhref=\"https://learn.adafruit.com/adafruit-circuit-playground-express/overview\"\nclass=\"uri\">https://learn.adafruit.com/adafruit-circuit-playground-express/overview</a></li>\n<li><a href=\"https://www.raspberrypi.com/products/raspberry-pi-pico/\"\nclass=\"uri\">https://www.raspberrypi.com/products/raspberry-pi-pico/</a></li>\n</ul>\n',342,0,0,'CC-BY-SA','python, raspberry pi pico, passwords',0,0,1),
(4029,'2024-01-11','The product.',735,'Good Heavens, it\'s secret hat time with Sgoti.','<h2 id=\"the-product.\">The product.</h2>\n<h3 id=\"secret-hat-time-with-sgoti.\">Secret hat time with Sgoti.</h3>\n<ul>\n<li><strong>Source:</strong> <a\nhref=\"https://www.wordnik.com/words/product\">What is a \"product\":?</a>\n<ul>\n<li>noun; Something produced by human or mechanical effort or by a\nnatural process, as.</li>\n<li>noun; An item that is made or refined and marketed.</li>\n</ul></li>\n<li><strong>Supporting Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Product_(business)#Product_model\">The\nProduct model:</a>\n<ul>\n<li>... In addition, a specific unit of a product is often (and in some\ncontexts must be) identified by a serial number, which is necessary to\ndistinguish products with the same product definition.</li>\n</ul></li>\n<li><strong>Supporting Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Commodification\">What is\nCommodification?</a>\n<ul>\n<li>Within a capitalist economic system, commodification is the\ntransformation of things such as goods, services, ideas, nature,\npersonal information, people or animals into objects of trade or\ncommodities. A commodity at its most basic, according to Arjun\nAppadurai, is \"anything intended for exchange,\" or any object of\neconomic value.</li>\n<li>Commodification is often criticized on the grounds that some things\nought not to be treated as commodities-for example, water, education,\ndata, information, knowledge, human life, and animal life.</li>\n</ul></li>\n<li><strong>Supporting Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Attention_economy\">What is Attention\neconomy?</a>\n<ul>\n<li>Attention economics is an approach to the management of information\nthat treats human attention as a scarce commodity and applies economic\ntheory to solve various information management problems. According to\nMatthew Crawford, \"Attention is a resource-a person has only so much of\nit.\" Thomas H. Davenport and John C. Beck add to that definition:</li>\n<li>Attention is focused mental engagement on a particular item of\ninformation. Items come into our awareness, we attend to a particular\nitem, and then we decide whether to act.</li>\n</ul></li>\n<li><strong>Supporting Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Surveillance_capitalism\">What is\nSurveillance capitalism?</a>\n<ul>\n<li>Surveillance capitalism is a concept in political economics which\ndenotes the widespread collection and commodification of personal data\nby corporations. This phenomenon is distinct from government\nsurveillance, though the two can reinforce each other. The concept of\nsurveillance capitalism, as described by Shoshana Zuboff, is driven by a\nprofit-making incentive, and arose as advertising companies, led by\nGoogle\'s AdWords, saw the possibilities of using personal data to target\nconsumers more precisely.</li>\n</ul></li>\n<li><strong>Source:</strong> <a\nhref=\"https://www.npr.org/2022/02/18/1080944193/apple-airtags-theft-stalking-privacy-tech\">AirTags\nare being used to track people and cars...</a></li>\n<li><strong>Source:</strong> <a\nhref=\"https://www.google.com/covid19/exposurenotifications/\">Exposure\nNotifications: Help slow the spread of COVID-19...</a></li>\n<li><strong>Source:</strong> <a\nhref=\"https://fox8.com/news/ftc-ring-employees-spied-on-users-cameras-were-unsecure/\">FTC:\nRing employees spied on users; cameras were unsecure...</a></li>\n<li><strong>Source:</strong> <a\nhref=\"https://www.fda.gov/news-events/press-announcements/fda-takes-additional-action-fight-against-covid-19-issuing-emergency-use-authorization-second-covid\">FDA\nTakes Additional Action in Fight Against COVID-19 By Issuing Emergency\nUse Authorization...</a></li>\n</ul>\n<p>This work is licensed under a <a\nhref=\"https://creativecommons.org/licenses/by-sa/4.0/\"\ntitle=\"CC-BY-SA 4.0 International\">Creative Commons\nAttribution-ShareAlike 4.0 International License</a>.</p>\n',391,0,1,'CC-BY-SA','Secret hat, Commodification, product',0,0,1),
(4031,'2024-01-15','ClaudioM\'s Laptops - Evoo EVC141-12BK Review',613,'Claudio talks about his Evoo EVC141-12BK laptop.','<p>About Evoo, the brand: <a\nhref=\"https://best.kevin.games/evoo-company-review\"\nclass=\"uri\">https://best.kevin.games/evoo-company-review</a></p>\n<p>Chris G\'s EVC141-12 Review: <a\nhref=\"https://www.youtube.com/watch?v=olPUSDFY9MQ\"\nclass=\"uri\">https://www.youtube.com/watch?v=olPUSDFY9MQ</a></p>\n<p>Motile M142: <a\nhref=\"https://www.pcworld.com/article/398581/motile-m142-review-ryzen-finds-a-home-in-this-surprisingly-good-budget-notebook.html\"\nclass=\"uri\">https://www.pcworld.com/article/398581/motile-m142-review-ryzen-finds-a-home-in-this-surprisingly-good-budget-notebook.html</a></p>\n<p>Evoo EVC141-12BK listing - BrandsMart: <a\nhref=\"https://www.brandsmartusa.com/evoo/249126/14-1-elite-series-amd-ryzen-5-3500u-processor-8gb-ram-256gb-ssd-ultra-slim-laptop-black.htm\"\nclass=\"uri\">https://www.brandsmartusa.com/evoo/249126/14-1-elite-series-amd-ryzen-5-3500u-processor-8gb-ram-256gb-ssd-ultra-slim-laptop-black.htm</a></p>\n<p>Evoo EVC141-12BK listing - Walmart: <a\nhref=\"https://www.walmart.com/ip/EVOO-14-1-Ultra-Slim-Notebook-Elite-Series-FHD-Display-AMD-Ryzen-5-3500U-Processor-Radeon-Vega-8-Graphics-8GB-RAM-256GB-SSD-HD-Webcam-Windows-10-Home/419496306\"\nclass=\"uri\">https://www.walmart.com/ip/EVOO-14-1-Ultra-Slim-Notebook-Elite-Series-FHD-Display-AMD-Ryzen-5-3500U-Processor-Radeon-Vega-8-Graphics-8GB-RAM-256GB-SSD-HD-Webcam-Windows-10-Home/419496306</a></p>\n<h3 id=\"evoo-evc141-12-laptop-specs\">Evoo EVC141-12 Laptop Specs:</h3>\n<ul>\n<li>Windows 10 Home</li>\n<li>14.1&#x201D; FHD Display, 1920 x 1080, 60Hz</li>\n<li>AMD Ryzen&#x2122; 5 3500U Mobile Processor with Radeon&#x2122; Vega 8 Graphics\n(2.1GHz, Up to 3.7GHz)</li>\n<li>256GB Solid State Drive</li>\n<li>8GB Memory (RAM)</li>\n<li>HD Front Camera</li>\n<li>Up to 10 hours of battery life</li>\n<li>Bluetooth 4.2</li>\n<li>HDMI Port x 1</li>\n<li>USB 2.0 x 1</li>\n<li>USB 3.1 x 2</li>\n<li>USB Type-C x 1 (Data Transfer Only)</li>\n<li>Kensington Lock x 1</li>\n<li>Ethernet Port x 1</li>\n</ul>\n',152,0,0,'CC-BY-SA','laptops,evoo,walmart,amd,ryzen,technology',0,0,1),
(4032,'2024-01-16','Drive Casting: an opinion on advertising',896,'Sgoti gives his opinion on advertising, while driving.','<h2 id=\"drive-casting-an-opinion-on-advertising\">Drive Casting: an\nopinion on advertising</h2>\n<h3 id=\"sgoti-gives-his-opinion-on-advertising-while-driving.\">Sgoti\ngives his opinion on advertising, while driving.</h3>\n<ul>\n<li><p>Tags: Drive casting, advertising, marketing</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Advertising\">Advertising</a></p>\n<ul>\n<li>Advertising is the practice and techniques employed to bring\nattention to a product or service. Advertising aims to put a product or\nservice in the spotlight in hopes of drawing it attention from\nconsumers. It is typically used to promote a specific good or service,\nbut there are wide range of uses, the most common being the commercial\nadvertisement.</li>\n</ul></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Marketing\">Marketing</a></p>\n<ul>\n<li>Marketing is the process of identifying customers and \"creating,\ncommunicating, delivering, and exchanging\" goods and services for the\nsatisfaction and retention of those customers. It is one of the primary\ncomponents of business management and commerce.</li>\n</ul></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Consumer\">Consumer</a></p>\n<ul>\n<li>A consumer is a person or a group who intends to order, or use\npurchased goods, products, or services primarily for personal, social,\nfamily, household and similar needs, who is not directly related to\nentrepreneurial or business activities. The term most commonly refers to\na person who purchases goods and services for personal use.</li>\n</ul></li>\n<li><p><a\nhref=\"https://duckduckgo.com/?q=you%27re+the+product&amp;t=ffab&amp;ia=web\">A\nduck duck go search result of: you\'re the product</a></p></li>\n</ul>\n<p>This work is licensed under a <a\nhref=\"https://creativecommons.org/licenses/by-sa/4.0/\"\ntitle=\"CC-BY-SA 4.0 International\">Creative Commons\nAttribution-ShareAlike 4.0 International License</a>.</p>\n',391,0,0,'CC-BY-SA','Drivecast, advertising, marketing',0,0,1),
(4033,'2024-01-17','Using playerctl to control media players',351,'Ken maps some playerctl commands to keyboard shortcuts in lxqt','<h2 id=\"about-mpris\">About MPRIS</h2>\n<blockquote>\n<p>The Media Player Remote Interfacing Specification is a standard D-Bus\ninterface which aims to provide a common programmatic API for\ncontrolling media players.</p>\n</blockquote>\n<blockquote>\n<p>It provides a mechanism for discovery, querying and basic playback\ncontrol of compliant media players, as well as a tracklist interface\nwhich is used to add context to the active media item.</p>\n</blockquote>\n<h2 id=\"man-playerctl\">man playerctl</h2>\n<blockquote>\n<p><strong>DESCRIPTION</strong></p>\n<p>The playerctl utility controls MPRIS-enabled media players. In\naddition to offering play, pause and stop control, playerctl also offers\nprevious and next track support, the ability to seek backwards and\nforwards in a track, and volume control. playerctl also supports\ndisplaying metadata (e.g., artist, title, album) for the current track,\nand showing the status of the player.</p>\n<p>Players that can be controlled using playerctl include audacious(1),\ncmus(1), mopidy(1), mpd(1), quodlibet(1), rhythmbox(1), vlc(1) and\nxmms2(1). However, any player that implements the MPRIS interface\nspecification can be controlled using playerctl including web\nbrowsers.</p>\n</blockquote>\n<h2 id=\"command-summary\">Command Summary</h2>\n<ul>\n<li>\"playerctl status\" Get the current status of the player.</li>\n<li>\"playerctl play\" Command the player to play.</li>\n<li>\"playerctl pause\" Command the player to pause.</li>\n<li>\"playerctl play-pause\" Command the player to toggle between play and\npause.</li>\n<li>\"playerctl stop\" Command the player to stop.</li>\n<li>\"playerctl next\" Command the player to skip to the next track.</li>\n<li>\"playerctl previous\" Command the player to skip to the previous\ntrack.</li>\n</ul>\n<h2 id=\"links\">Links</h2>\n<ul>\n<li><a\nhref=\"https://support.mozilla.org/en-US/kb/control-audio-or-video-playback-your-keyboard\">https://support.mozilla.org/en-US/kb/control-audio-or-video-playback-your-keyboard</a></li>\n<li><a\nhref=\"https://specifications.freedesktop.org/mpris-spec/2.2/\">https://specifications.freedesktop.org/mpris-spec/2.2/</a></li>\n<li><a\nhref=\"https://www.addictivetips.com/ubuntu-linux-tips/fix-media-keys-not-working-on-linux/\">https://www.addictivetips.com/ubuntu-linux-tips/fix-media-keys-not-working-on-linux/</a></li>\n</ul>\n',30,123,0,'CC-BY-SA','playerctl, mpris, lxqt',0,0,1),
(4034,'2024-01-18','Sleep Tips',676,'Go with operat0r on his journey to sleepy town','<p><a href=\"https://www.sleepfoundation.org/circadian-rhythm\"\nclass=\"uri\">https://www.sleepfoundation.org/circadian-rhythm</a></p>\n<p><a href=\"https://en.wikipedia.org/wiki/Circadian_rhythm\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Circadian_rhythm</a></p>\n<p>From Wikipedia, the free encyclopedia</p>\n<p>A circadian rhythm (/s&#x259;r&#x2C8;ke&#x26A;di&#x259;n/), or circadian cycle, is a natural\noscillation that repeats roughly every 24 hours. Circadian rhythms can\nrefer to any process that originates within an organism (i.e.,\nendogenous) and responds to the environment (is entrained by the\nenvironment). Circadian rhythms are regulated by a circadian clock whose\nprimary function is to rhythmically co-ordinate biological processes so\nthey occur at the correct time to maximise the fitness of an individual.\nCircadian rhythms have been widely observed in animals, plants, fungi\nand cyanobacteria and there is evidence that they evolved independently\nin each of these kingdoms of life.</p>\n',36,0,1,'CC-BY-SA','mental health',0,0,1),
(4035,'2024-01-19','Processing podcasts with sox',1361,'A poorly edited recording that was headed for the bin, but HPR needs shows','<h1 id=\"processing-podcasts\">Processing Podcasts</h1>\n<p>Ahuka\'s recent episodes about pre processing podcasts with audacity\nreminded me that I have been wanting to do an episode about\npre-processing podcasts with sox.</p>\n<p>I no longer need to use sox to change the podcast tempo since now, I\nuse Antena Pod on my phone</p>\n<hr />\n<p>When I started listening to podcasts the only playback options were\neither a PC or a mp3 player. I started out just downloading the podcasts\nto my PC from the podcast\'s web page.</p>\n<hr />\n<p>My first podcast automation was using bashpodder. bashpodder was\nsimple to set up and run via cron. It would: - read a file to get a list\nof RSS feeds - Track previous downloads in a log - Download new\nepisodes</p>\n<p><a href=\"https://lincgeek.org/bashpodder/\"\nclass=\"uri\">https://lincgeek.org/bashpodder/</a></p>\n<hr />\n<p>A few of the podcasts I listened to were panels of a few hosts that\nwere recorded live and released later as a podcast. Some of those shows\nwere unedited and had some <em>dead air</em> that I wanted to remove. It\ntook me a few tries, but I eventually figured out how to truncate\nsilence with <code>sox</code></p>\n<hr />\n<p>Many of the podcast players I used did not have the ability to alter\nthe playback speed. So I also figured out how to change the tempo using\nsox.</p>\n<hr />\n<p>I stuck to using dedicated mp3 players for several years. Before the\nsansa clips came out, my favorite was the sansa e200 series <a\nhref=\"https://en.wikipedia.org/wiki/Sansa_e200_series\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Sansa_e200_series</a> They\ncould run the alternative firmware, rockbox. <a\nhref=\"https://www.rockbox.org/\" class=\"uri\">https://www.rockbox.org/</a>\nI remember wasting hours playing frozen bubble on my mp3 player.</p>\n<hr />\n<p>The sansa clips were a big innovation. Small, light, and cheap. They\nwere my preferred player until I eventually switched to phones.</p>\n<hr />\n<p>I had a workflow set up - cron bashpodder - script to process with\nsox - script to reload podcast - mount - move from player to archive -\nmove new files to player - unmount</p>\n<hr />\n<p>I did a HPR episode a few months ago about my first tech job. When I\nstarted there, I was given in iPhone. It was my first smart phone. While\nthere, I had started taking walks on by lunch break. And I would get to\nlisten to podcast while out.</p>\n<hr />\n<p>There were a few times where I would run out of episodes to listen\nto. So I decided to add some podcasts to my work iPhone. For most of the\ntime I worked there, I would take my sansa with me and listen to every\nthing on it. Then if I ran out, I had my phone with me, so I would\nlisten to podcasts on it.</p>\n<hr />\n<p>This process meant I had 2 sets of podcasts - provided by mashpodder\n- iPhone app.</p>\n<hr />\n<p>I kept this practice of having 2 podcast sources for a few years, but\nI eventual stopped using the sansa. Phones were getting better, and the\nsansa devices were getting harder to find.</p>\n<hr />\n<p>I wanted to start listening to my bashpodder podcasts on my phone. I\nlooked for a few file transfer solutions, but eventually settled on\nmaking my own RSS feed of files I had downloaded.</p>\n<hr />\n<p>I found a python script that would take a directory listing of mp3s\nand build a RSS feed. Now I had a cron job that would - download -\nprocess with sox - create the RSS feed - rsync RSS XML file on podcast\nfiles to a VPS</p>\n<p><a href=\"https://genrss.readthedocs.io/en/latest/\"\nclass=\"uri\">https://genrss.readthedocs.io/en/latest/</a></p>\n<hr />\n<p>I used a VPS so I could download new episodes to my phone from\nanywhere. After a while, I experimented with using a AWS S3 to host the\nfiles. I stopped using S3 when the free tier ran out, and I started\ngetting charged for storage and bandwidth.</p>\n<hr />\n<p>Eventually, when I started working at home I no longer needed the RSS\nfeed to be available from anywhere. So I just started using a http\nserver in my home lab to host my RSS feed and files. I can update my\nphone with the files I download and process as long as I am on my home\nnetwork</p>\n<hr />\n<p>Also, one other change I made at some point was switching from\nbashpodder to mashpodder. There were a few podcast that bashpodder was\nnot able to parse.</p>\n<hr />\n<p>Today, I listen to podcasts via antenna pod Most of of the podcasts I\nsearched for and subscribed to via the app. There are still a few\npodcasts that I get via mashpodder and pre-process with sox. Since the\nphone app is good at altering the tempo (I like 2x), I no longer have to\nuse sox for speeding up. But I still use sox for leveling the audio and\ntruncating silence.</p>\n<p>My tendency is to have the podcasts that are produced by\nstudios/companies via the app and podcasts produced by enthusiasts via\nmashpodder/sox</p>\n<hr />\n<pre class=\"bash\"><code>set -euo pipefail\nIFS=$&#39;nt&#39;\nSOX=&quot;/usr/local/bin/sox&quot;\ncd /mashpodder/podcasts/files\nif [ -z &quot;$(ls -A )&quot; ]; then\n   echo &quot;Empty&quot;\n   exit 0\nelse\n   echo &quot;Not Empty&quot;\nfi\nfor i in *\n    do\n    $SOX  -v 0.5 $i &quot;/mashpodder/podcasts/faster/$i.mp3&quot; compand 0.3,1 6:-70,-60,-20 -5 -90  remix - silence 1 0.1 1% -1 0.1 1%  stat\n    mv -v $i ../archive/\ndone</code></pre>\n<hr />\n<ul>\n<li>Delete old file from the Archive</li>\n<li>Generate a RSS feed of the faster <code>directlry</code></li>\n</ul>\n<pre class=\"bash\"><code>find  /mashpodder/podcasts/archive/ -name &quot;*mp3&quot; -mtime +30 -delete\ncd /mashpodder/podcasts\n  &amp;&amp; python2.7 ../genRSS/genRSS.py\n  -v\n  -e mp3\n  -i &#39;faster/faster.gif&#39;\n  -t Faster\n  -p &quot;Faster Podcasts&quot;\n  -d faster\n  -H http://address.of.web.host\n  --sort-creation\n  -o faster/faster.xml</code></pre>\n',342,0,0,'CC-BY-SA','podcast, sox, bash',0,0,1),
(4036,'2024-01-22','The Tildeverse',242,'Claudio introduces HPR listeners to the Tildeverse.','<p>SDF Public Access Unix System<br />\n<a href=\"https://sdf.org\" class=\"uri\">https://sdf.org</a></p>\n<p>Tildeverse<br />\n<a href=\"https://tildeverse.org\"\nclass=\"uri\">https://tildeverse.org</a></p>\n<p>Tilde.institute<br />\n<a href=\"https://tilde.institute/\"\nclass=\"uri\">https://tilde.institute/</a></p>\n',152,0,0,'CC-BY-SA','unix,sdf,tilde,tildeverse,bsd,linux,windows',0,0,1),
(4037,'2024-01-23','What is Overlanding?',491,'We talk to George of south west Idaho Overlanding about his obsession with Overlanding','<p>I sit down with George about his love and passion for Overlanding and\nask the important questions about getting into this popular hobby.</p>\n<p>You can see more from George at <a\nhref=\"https://www.youtube.com/@swidahooverlanding2867/videos\"\nclass=\"uri\">https://www.youtube.com/@swidahooverlanding2867/videos</a>\nand <a href=\"https://www.youtube.com/@bugouttrailers7964/featured\"\nclass=\"uri\">https://www.youtube.com/@bugouttrailers7964/featured</a></p>\n<p>Please post content to HPR!</p>\n',110,0,0,'CC-BY-SA','Overlanding,camping,hobby,truck',0,0,1),
(4038,'2024-01-24','Network Attach Storage Options I Use Everyday',2341,'A quick overview of the NAS systems/technology I use today and what I have used in the past.','<h1 id=\"hpr-podcast-january-19-2024\">HPR Podcast January 19, 2024</h1>\n<p>Here is a quick overview of the NAS systems/technology I use today\nand what I have used in the past. Some NAS systems don&#x2019;t have all the\nfeatures you want but today it&#x2019;s becoming easier to make them do it with\na few configurations. Overall, NAS technology has grown over the years\nand it&#x2019;s blurred the lines in what we use to think of individual systems\nnow bundled up into single devices.</p>\n<p>Network Attached Storage I use</p>\n<ul>\n<li>What is a NAS and why do I use one</li>\n<li>Compare NAS options I use</li>\n<li>Talk about some of the old things I used</li>\n<li>Conclusions about which NAS are right and why</li>\n</ul>\n<p>List of NAS I use</p>\n<ul>\n<li>Synology\n<ul>\n<li><a\nhref=\"https://mariushosting.com/\">https://mariushosting.com/</a></li>\n</ul></li>\n<li>OMV\n<ul>\n<li><a\nhref=\"https://www.openmediavault.org/\">https://www.openmediavault.org/</a></li>\n</ul></li>\n<li>TrueNas Scale\n<ul>\n<li><a\nhref=\"https://www.truenas.com/truenas-scale/\">https://www.truenas.com/truenas-scale/</a></li>\n</ul></li>\n<li>TrueNas Core\n<ul>\n<li><a\nhref=\"https://www.truenas.com/truenas-core/\">https://www.truenas.com/truenas-core/</a></li>\n</ul></li>\n<li>Individual Drives</li>\n<li>Windows Storage Spaces\n<ul>\n<li><a\nhref=\"https://support.microsoft.com/en-us/windows/storage-spaces-in-windows-b6c8b540-b8d8-fb8a-e7ab-4a75ba11f9f2\">https://support.microsoft.com/en-us/windows/storage-spaces-in-windows-b6c8b540-b8d8-fb8a-e7ab-4a75ba11f9f2</a></li>\n</ul></li>\n</ul>\n<p>Why do I use or have so many?</p>\n<ul>\n<li>I tinker a lot.</li>\n<li>I&#x2019;m paranoid about backups.</li>\n<li>I enjoy spreading the load over different systems</li>\n</ul>\n<p>Old Ones</p>\n<ul>\n<li>Drobo\n<ul>\n<li><a\nhref=\"https://www.drobo.com/docs/start-drobo-5n/\"><span>https://www.drobo.com/docs/start-drobo-5n/</span></a></li>\n</ul></li>\n<li>FreeNas</li>\n<li>OwnCloud</li>\n<li>SAMBA</li>\n<li>Raid Enclosures</li>\n<li>Pogoplug\n<ul>\n<li><a\nhref=\"https://www.reddit.com/r/pogoplug/comments/adcxfs/can_i_still_use_pogoplug_now_without_their_cloud/\">https://www.reddit.com/r/pogoplug/comments/adcxfs/can_i_still_use_pogoplug_now_without_their_cloud/</a></li>\n</ul></li>\n<li>DLink 2323\n<ul>\n<li><a\nhref=\"https://eu.dlink.com/uk/en/products/dns-323-sharecenter-2-bay-network-storage-enclosure\">https://eu.dlink.com/uk/en/products/dns-323-sharecenter-2-bay-network-storage-enclosure</a></li>\n</ul></li>\n</ul>\n',231,61,0,'CC-BY-SA','Network Attached Storage, TrueNas, Synology, NAS, Windows, Linus, FreeBSD',0,0,1),
(4039,'2024-01-25','3 ways to keep up with Youtube Channels',604,'norrist blasts out a quick episode about 3 ways he keeps up with youtube channels','<h2 id=\"yt-3-ways\">YT 3 ways</h2>\n<ul>\n<li>Watch everything - subscribe</li>\n<li>Watch some - RSS reader</li>\n<li>binge a topic - moonmoon</li>\n</ul>\n<h2 id=\"rss-bridge\">RSS Bridge</h2>\n<p><a\nhref=\"https://github.com/RSS-Bridge/rss-bridge\">https://github.com/RSS-Bridge/rss-bridge</a></p>\n<pre><code>http://lamp.local.lan/rss-bridge/?action=display&amp;bridge=YoutubeBridge&amp;context=By+custom+name&amp;custom=%40BenEater&amp;duration_min=&amp;duration_max=&amp;format=Html</code></pre>\n<pre><code>http://lamp.local.lan/rss-bridge/?action=display&amp;bridge=YoutubeBridge&amp;context=By+username&amp;u=cnn&amp;duration_min=&amp;duration_max=&amp;format=Html</code></pre>\n<h2 id=\"planets\">planets</h2>\n<ul>\n<li><a href=\"http://fedoraplanet.org/\">http://fedoraplanet.org/</a></li>\n<li><a\nhref=\"https://fedoraproject.org/wiki/Planet\">https://fedoraproject.org/wiki/Planet</a></li>\n</ul>\n<h2 id=\"moonmoon\">moonmoon</h2>\n<ul>\n<li><a href=\"http://moonmoon.org/\">http://moonmoon.org/</a></li>\n<li><a\nhref=\"https://github.com/moonmoon/moonmoon\">https://github.com/moonmoon/moonmoon</a></li>\n</ul>\n',342,0,0,'CC-BY-SA','youtube, php, rss',0,0,1),
(4041,'2024-01-29','Using grepcidr to find IPs in a netblock',680,'An introduction to the grepcidr command, which makes finding IPs from a netblock in log files easier','<p>grepcidr is usually available from your distribution\'s default repositories, so on Debian based systems you could install it with:</p>\n\n<pre><code>sudo apt install grepcidr</code></pre>\n\n<p>Example of grepcidr use:</p>\n\n<pre><code>grepcidr 40.10.32.0/22 /var/log/syslog</code></pre>\n\n<p>You can read more about CIDR notation on the <a href=\"https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing\">Wikipedia page for CIDR</a></p>\n',194,0,0,'CC-BY-SA','cli,command line,linux,sysadmin,networking',0,0,1),
(4044,'2024-02-01','Advent of code day 11-21 catchup',757,'I talk through the last challenges of this years advent of code that I actually did.','<p><a href=\"https://adventofcode.com/2023\"\nclass=\"uri\">https://adventofcode.com/2023</a></p>\n<p><a href=\"https://github.com/kalaspuffar/advent2023\"\nclass=\"uri\">https://github.com/kalaspuffar/advent2023</a></p>\n<p><a\nhref=\"https://www.youtube.com/playlist?list=PLP2v7zU48xOI8D3cVaPCKHixvXT2e_R5u\"\nclass=\"uri\">https://www.youtube.com/playlist?list=PLP2v7zU48xOI8D3cVaPCKHixvXT2e_R5u</a></p>\n',382,0,0,'CC-BY-SA','advent of code, 2023, challenge',0,0,1),
(4054,'2024-02-15','CyberPunk 2077',417,'My experience playing CyberPunk 2077','<p>I love the story-based games and experiences. CyberPunk 2077 is based\nin the future, and you will be following this bounty hunter and their\nstruggles to make a difference in Night City.</p>\n<h3 id=\"links\">Links</h3>\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Cyberpunk_2077\">Wikipedia\npage: CyberPunk 2077</a></li>\n</ul>\n',382,0,0,'CC-BY-SA','games, story, experience',0,0,1),
(4064,'2024-02-29','Large Language Models',758,'What are they good for?','<p>In this episode I talk about different machine learning models and\ntheir application and what I think is good about the situation we have\nnow and where I think we will end up in the future if we aren\'t\ncareful</p>\n',382,0,0,'CC-BY-SA','machine learning, large language models',0,0,1),
(4074,'2024-03-14','Jade Empire',365,'My experience playing Jade Empire','<p>I love the story-based games and experiences. Jade Empire is based in\nthe past in China or Japan, and you will be following this martial\nartist searching for their kidnapped trainer.</p>\n<h3 id=\"links\">Links</h3>\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Jade_Empire\">Wikipedia page:\nJade Empire</a></li>\n</ul>\n',382,0,0,'CC-BY-SA','games, story, experience',0,0,1),
(4084,'2024-03-28','Cloud learning',614,'My experience trying to train a model online','<p>I talk about my experience trying to run some GPU tasks online in\norder to train a model. I\'ve tried all the large cloud providers we have\nout there and some of them were easier to work with, and some of them\nimpossible.</p>\n',382,0,0,'CC-BY-SA','machine learning, cloud learning',0,0,1),
(4042,'2024-01-30','Debugging directly in vim',1998,'Debug directly in vim using termdebug bundled with vim since vim 8.1','<h1 id=\"debug-directly-in-vim\">Debug directly in vim</h1>\n<p>TL;DL you can use gdb directly from vim without installing any\nextensions. Just compile your program with debug options and do:</p>\n<pre><code>    :packadd termdebug\n    :TermdebugCommand path-to-my-program</code></pre>\n<h3 id=\"now-the-actual-notes\">Now the actual notes:</h3>\n<p>If you actually listened to the show, I am sorry for how long it took\nme to realize that I was compiling without debug flags.</p>\n<p>This is not a good overview of <code>gdb</code>, I don\'t think, for\nthat I would recommend <a href=\"https://gnuworldorder.info/#415\">episode\n415 on Klaatu\'s Gnu World Order podcast</a>.</p>\n<p>The program that we build up to is this:</p>\n<pre><code>// file: main.c\n#include &lt;stdio.h&gt;\n#include &lt;string.h&gt;\n\nvoid greet(char* greeting)\n{\n-    int end = strlen(greeting);\n+    int end = strlen(greeting) - 1;\n    if (greeting[end] == &#39;\n&#39;)\n        printf(&quot;%s&quot;, greeting);\n    else\n        printf(&quot;%s\n&quot;, greeting);\n}\n\nint main ()\n{\n    greet( &quot;Hello world!\n&quot;);\n    return 0;\n}</code></pre>\n<p>Where we use gdb to find out that we are checking one character past\nthe end in the if-condition rather than the last character, this then\nresults in a double new-line.</p>\n<p>Once the debugger is launched within vim, termdebug offers a few ways\nto control the debugging, namely:</p>\n<p><code>:Source</code> - focus on source window. <code>:Gdb</code> -\nfocus on debugger window. <code>:Program</code> - focus on program\noutput window <code>:Break</code> - introduce a break point in line\nunder the cursor (in the source window) <code>:Clear</code> - clear the\nbreak point in the line under the cursor. <code>:Evaluate</code> - show\nthe value of the expression under the cursor.</p>\n<p>... And a good deal more, if you\'re interested just have a gander at\n<code>:help termdebug</code>.</p>\n<p>I hope this helps someone make their debugging experience slightly\nless painful, as it has helped me recently :)</p>\n',385,0,1,'CC-BY-SA','gdb,vim,debug,C',0,0,1),
(4043,'2024-01-31','Uncommon Commands, Episode 1',616,'A summary of the three command line commands, look, shuf, and xargs','<p>\nCommands covered in this episode:\n</p>\n<ul>\n<li>\nlook\n</li>\n<li>\nshuf\n</li>\n<li>\nxargs\n</li>\n</ul>\n<p>\nThe find command for running file:\n</p>\n<pre><code>find . -type f -size +10M | xargs file</code></pre>\n<p>\nThe grep syntax for matching 4 to 8 character long words:\n</p>\n<pre><code>grep -E \"^[a-z]{4,8}$\"</code></pre>\n<p>\nThe full diceware making command:\n</p>\n<pre><code>look . | grep -E \"^[a-z]{4,8}$\" | shuf | xargs -n4 | head</code></pre>\n',194,0,0,'CC-BY-SA','cli,command line,linux,uncommon commands',0,0,1),
(4045,'2024-02-02','My Macbook Pro 15\" 2015',604,'I discuss the specs and why I love this machine so much','<p>The specs of the machine are given</p>\n<p>Some of the open source programs I use on it are given</p>\n<p>A few criticisms of Apple are present as well</p>\n',297,0,0,'CC-BY-SA','Apple, laptops, Macbook pro, computers',0,0,1),
(4047,'2024-02-06','Change your passwords once in a while',938,'Deltaray provides compelling arguments for why you should change your passwords periodically','<p>Passphrase generating command:</p>\n<pre><code>look . | grep -E \"^[a-z]{4,8}$\" | shuf | xargs -n4 | head</code></pre>\n\n<p>Tony Hunt\'s have I been pwned website:</p>\n<a href=\"https://haveibeenpwned.com/\">https://haveibeenpwned.com/</a>\n\n<p>Some password managers that I can recommend:</p>\n<ul>\n<li><a href=\"https://keepassxc.org/\">KeepassXC</a> (offline password manager and fixes issues with KeepassX)</li>\n<li><a href=\"https://bitwarden.com/\">Bitwarden</a> (open source commercial option)</li>\n<li><a href=\"https://1password.com/\">1Password</a>  (commercial, but well established and well vetted)</li>\n</ul>\n',194,0,0,'CC-BY-SA','passwords,security,cybersecurity,passphrases,password managers,advice',0,0,1),
(4049,'2024-02-08','What\'s in my bag January 2024',600,'I describe what I carry on a day to day basis','<p>I talk about what I currently carry in my bag, as well as some\nchanges to make in the future</p>\n',297,0,0,'CC-BY-SA','bag, apple, laptop',0,0,1),
(4048,'2024-02-07','Today I learnt: Ship’s Bells',400,'A brief history and description of ship\'s bells for timekeeping','<p>Today I learnt: Ship&#x2019;s Bells</p>\n<p>Ahoy thar maties. Eight bells and all&#x2019;s well! (Spoken with an abysmal\npirate accent).</p>\n<p>Alright, enough of me poorly impersonating a pirate. As you may or\nmay not know, based on comments in one or more of my previous episodes,\nI dabble a bit in clock repair. Specifically, mechanical clocks, powered\nby springs or gravity. My grandfather was a clockmaker, and I remember\nsitting, as still and quietly as I could, in his shop watching him work.\nI was fascinated, but I could not ask any questions, make any noise, or\ntouch anything at risk of being told to leave. So, I learned very\nlittle, but it did plant a seed deep inside me which would flourish many\nyears after my grandfather passed away.</p>\n<p>I plan to do a series about mechanical clocks and some of my\nexperiences with clock repair in upcoming months. This has been\nsimmering on the back burner for quite a while as I debated if it would\nreally be of interest to hackers. My mind creates stories of listeners\nshouting &#x201C;Oh for crying out loud! First six episodes about plumbing and\nnow clocks? Get to something interesting!&#x201D; However, I am pressing on. If\nyou like this episode and want more in the series, please leave a\ncomment. If you would prefer other types of content on HPR, then skip\nthe rest of this episode and record one more suited to your desires or\ndetailing what you would like to hear and why.</p>\n<p>Also, you will probably hear the ticking (and maybe striking) of\nvarious different clocks in the background of this recording. My new\nhome office space is also the home for close to a dozen clocks in\nvarious states of repair. It is challenging to remove their sounds from\nthe recording, and given the subject matter of this series, I am not\neven going to try to remove them.</p>\n<p>Back to the topic. A couple of years ago, I purchased a very\ninexpensive box of assorted clocks and clock parts from a local seller.\nThese were in various states of disrepair. One item in the advertisement\nfor this box immediately caught my eye. It was a brass Urgos brand\n&#x201C;Ship&#x2019;s Bell&#x201D; clock. This timepiece was literally dripping with oil, but\nseemed to be intact, and I started working on it. In a later podcast, I\nwill describe my approach to items like this and what is involved in\ninitially cleaning and evaluating them. Due to life challenges, it took\nme over a year to get this clock reassembled and working.</p>\n<p>With this clock, I learned that ship&#x2019;s bells do not strike a normal\nhour count like traditional striking clocks. Instead, their strike\ndirectly relates to the time of an historic ship&#x2019;s watch schedule.\nAccording to &#x201C;The Ship&#x2019;s Bell&#x201D;, an article from Naval History and\nHeritage Command (<a\nhref=\"https://www.history.navy.mil/browse-by-topic/heritage/customs-and-traditions0/the-ship-s-bell.html\"\nclass=\"uri\">https://www.history.navy.mil/browse-by-topic/heritage/customs-and-traditions0/the-ship-s-bell.html</a>),\nearly shipboard timekeeping was done through the use of a half-hour\nglass. The job for one of the ship&#x2019;s boys was to watch the glass, turn\nit when it ran out, and then strike the ship&#x2019;s bell so all onboard would\nbe aware of the time every half hour.</p>\n<p>On sea vessels, various persons on duty &#x201C;Keep watch&#x201D; at, or around,\ntheir station. These include the &#x201C;Lookout&#x201D; who was constantly &#x201C;watching&#x201D;\nall around the ship to ensure there was no danger and to alert of any\nsightings of land or other vessels. (<a\nhref=\"https://en.wikipedia.org/wiki/Watchkeeping\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Watchkeeping</a> )</p>\n<p>The ship&#x2019;s bell had many other uses beyond timekeeping, and those are\ndescribed in detail in the previously mentioned Naval History article.\nWith all this bell ringing, patterns were developed. For timekeeping,\nthis basically broke down to a specific pattern of incrementing strikes\nevery half hour, throughout the ship&#x2019;s watch. Each watch is a 4 hour\nlong shift, the first five of which are broken down as follows:</p>\n<ul>\n<li>First Watch, 8pm to Midnight (20:00 to 00:00 hours)</li>\n<li>Middle Watch, Midnight to 4am (00:00 to 04:00 hours)</li>\n<li>Morning Watch, 4am to 8am (04:00 to 08:00 hours)</li>\n<li>Forenoon Watch, 8am to Noon (08:00 to 12:00 hours)</li>\n<li>Afternoon Watch, Noon to 4pm (12:00 to 16:00 hours)</li>\n</ul>\n<p>The remaining 4 hours are broken up into two &#x201C;Dog Watches&#x201D;, but those\nare outside the scope of this discussion. You can learn more about these\ndetails in Tom Burden&#x2019;s article titled &#x201C;Ship&#x2019;s Bell Time&#x201D; and found at\n<a href=\"https://www.westmarine.com/west-advisor/Ships-Bell-Time.html\"\nclass=\"uri\">https://www.westmarine.com/west-advisor/Ships-Bell-Time.html</a></p>\n<p>Ship&#x2019;s bell strikes increment every half hour. At the beginning/end\nof a 4-hour watch, the bell strikes 8 times, in groups of 2 strikes with\na tiny pause in between. Here is an example from my (now working) ship&#x2019;s\nbell clock.</p>\n<pre><code>{ding}{ding} pause {ding}{ding} pause {ding}{ding} pause {ding}{ding} pause</code></pre>\n<p>One half hour into the watch, the ship&#x2019;s bell will sound a single\nstrike</p>\n<p>One hour into the watch, the ship&#x2019;s bell will sound two strikes</p>\n<p>An hour and an half into the watch, the ship&#x2019;s bell will sound three\nstrikes in the following pattern:</p>\n<pre><code>{ding}{ding} {pause} {ding}</code></pre>\n<p>At the two hour mark, there will be four strikes, following that same\npattern:</p>\n<pre><code>{ding}{ding} {pause} {ding}{ding}</code></pre>\n<p>Etc&#x2026; I will not list all of these, but you get the idea. Because the\nstrikes are paired in groups of two, an even number of strikes denotes\nthe top of the hour, and it is easy to count the number of pairs (1, 2,\n3, or 4). If the bells end in a single strike (odd number total), you\nknow it is the bottom of the hour.</p>\n<p>It seems strange at first, but it can be easily learned in a short\namount of time. And now, the phrase I used at the beginning of this\npodcast, &#x201C;Eight bells and all&#x2019;s well&#x201D; should make sense. Eight bells\nindicates the end of the watch, and an individual on watch duty is\nstating that their shift is finished and there was nothing to\nreport.</p>\n<p>I hope that you have enjoyed this episode. Your feedback is\nencouraged, through comments and especially by recording your own HPR\nepisode.</p>\n<p>Have an awesome day!</p>\n',394,123,0,'CC-BY-SA','ships bells, time, naval, clocks, timekeeping',0,0,1),
(4051,'2024-02-12','MSI Gungnir 110R Review',1338,'A review of the Gungnir 110R PC case by MSI','<p>\nKevie from the <a href=\"https://tuxjam.otherside.network\">TuxJam</a>\npodcast takes a look at the PC case offering from MSI called\n<a href=\"https://uk.msi.com/PC-Case/MPG-GUNGNIR-110R\">Gungnir 110R</a>.\n</p>\n<p>\nFollowing his search for a new case, Kevie went over the pros and cons\nof this particular model. The hope is that following this show you will\ndecide if this is a suitable case for you.\n</p>\n<p>\nIn true TuxJam fashion, the show includes a creative commons music\ntrack:\n<a href=\"https://www.jamendo.com/track/1545199/cased-in-a-shell\">Cased -\nCased in a Shell</a>\n</p>\n',296,0,0,'CC-BY-SA','PC,Hardware,computer',0,0,1),
(4052,'2024-02-13','How I got in to Linux / Micro Edition',304,'A slightly boring story of my introduction in to Linux ','<p>Just a really short show on how I got started in Linux back in the\nolden days.</p>\n',428,0,0,'CC-BY-SA','linux, open source, creative commons',0,0,1),
(4056,'2024-02-19','Helping with back pain',567,'My experience using the CopperFit Advanced Back Pro','<p>For years Kevie, a co-host of <a href=\"https://tuxjam.otherside.network\">TuxJam</a>, has suffered from lower back pain, and for the first time he\'s discovered something that actually helps. Hear his thoughts on the <a href=\"https://copperfitusa.com/collections/all/products/advanced-back-pro\">Advanced Back Pro: Back Support Belt</a> by Copper Fit.</p>\n<p>The track included on this show is <a href=\"https://www.jamendo.com/track/680711/triple-paf\">Blackpaper - Triple Paf</a></p>\n',296,0,0,'CC-BY-SA','aches, sore back, back support',0,0,1),
(4061,'2024-02-26','Setup a Pi-hole',1391,'Setting an ad blocker and extra security using a Raspberry Pi with Pi-hole','<p>Kevie, a co-host of <a href=\"https://tuxjam.otherside.network\">TuxJam</a>, talks about setting up a Raspberry Pi as a network wide ad and domain blocker using the <a href=\"https://pi-hole.net/\">Pi-hole</a> project.</p>\n<p>Before starting this project you will need:</p>\n<ul>\n<li>A Raspberry Pi with Raspberry Pi OS installed and SSH enabled</li>\n<li>A basic knowledge of changing the settings on your router. I can\'t talk you through this as every router is different. Specifically you need to know how to give a device a static IP address and set a DNS server</li>\n<li>The ability to use SSH</li>\n</ul>\n<p>Once we have SSH\'d into the Pi the first thing we should do is update it:</p>\n<pre><code>sudo apt update &amp;&amp; sudo apt upgrade -y</code></pre>\n<p>Then we need to install the Pi-hole software itself. We can do this with the command:</p>\n<pre><code>curl -sSL https://install.pi-hole.net | bash</code></pre>\n<p>This will start an installation wizard</p>\n<p>Once this has completed, it is recommended that you set a new admin password:</p>\n<pre><code>pihole -a -p</code></pre>\n<p>Exit the Pi and go to the admin web page by entering <i>{the_IP_of_your_Pi}</i>/admin in your browser\'s address bar.</p>\n<p>Click on <b>Adlist</b> on the left side and you should see 2 input boxes. The <b>address</b> is where we can enter our adlist, the comment box is purely optional. Go to <a href=\"https://firebog.net/\">firebog.net/</a> Choose one or two from each category, but make sure that these are active (the ones in green).</p>\n<p>Add the following two addresses to Adlist if you wish to block pornographic site:</p>\n<ul>\n<li>https://raw.githubusercontent.com/Sinfonietta/hostfiles/master/pornography-hosts</li>\n<li>https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/porn/hosts</li>\n</ul>\n<p>For a list of specific types of sites to block then visit <a href=\"https://blocklistproject.github.io/Lists/\">https://blocklistproject.github.io/Lists/</a></p>\n<p>If using Cloudflare, you can add another pornography filter. Click on <b>Settings</b> on the left and then the <b>DNS</b> tab at the top. In <b>Custom 1 (IPv4)</b> enter the value <b>1.1.1.3</b>, make sure that it is ticked.</p>\n<p>If there is a specific site that you want to block then click on <b>Domains</b> in the menu on the left and add the domain. If you want to block it, then click <b>Blacklist</b> or if Pi-hole is blocking a site that you want to access then click on <b>Whitelist</b>.</p>\n<p>Before we exit we must apply these changes or they will not take effect. On the left click on <b>tools</b> and then <b>Update Gravity</b> from the drop down menu. Press the Update button (it will take a couple of minutes to complete). You must do this every time that you make a change. Any time you add a new Adlist, Domain, Whitelist or Blacklist, it will not take effect until you do this.</p>\n<p>Go to your Router\'s homepage, <b>set the DNS server to the IP address of the Pi</b>. This means that all traffic will run through the Pi-hole. Don\'t forget to hit apply if necessary before exiting.</p>\n<p>One final task: <b>reboot your router</b>. This will force every device to reconnect and everything will be running through the Pi-hole. </p>\n\n',296,0,0,'CC-BY-SA','security, adverts, filters, home network, router',0,0,1),
(4055,'2024-02-16','Four agalmic AI applications to protect you from greedy corporations',1148,'4 open source AI apps to protect you from BigTech: Fawkes, Glaze, Nightshade, Agalmic organizations','<p>4 AI applications I learned about today.</p>\n<ul>\n<li>Fawkes: an application that can protect you from facial recognition\nsoftware. It\'s named for Guy Fawkes, the face of hackers that call\nthemselves Anonymous.\n<ul>\n<li>page <a\nhref=\"https://sandlab.cs.uchicago.edu/fawkes/\">https://sandlab.cs.uchicago.edu/fawkes/</a></li>\n<li>code <a\nhref=\"https://github.com/Shawn-Shan/fawkes\">https://github.com/Shawn-Shan/fawkes</a></li>\n</ul></li>\n<li>Glaze: a digital artwork hardening application to protect artists\nfrom deep fakes\n<ul>\n<li>code <a\nhref=\"https://github.com/EspacioLatente/Glaze\">https://github.com/EspacioLatente/Glaze</a></li>\n<li>paper <a\nhref=\"https://people.cs.uchicago.edu/~ravenben/publications/pdf/glaze-usenix23.pdf\">https://people.cs.uchicago.edu/~ravenben/publications/pdf/glaze-usenix23.pdf</a></li>\n<li>Mist: (image to image instead of text to image) page: <a\nhref=\"https://mist-project.github.io/index_en.html\">https://mist-project.github.io/index_en.html</a></li>\n</ul></li>\n<li>Nightshade: a blue pill for anyone that tries to steal your digital\ncreations.\n<ul>\n<li>paper: <a\nhref=\"https://arxiv.org/pdf/2310.13828.pdf\">https://arxiv.org/pdf/2310.13828.pdf</a></li>\n<li>nightshade detector code: <a\nhref=\"https://github.com/RichardAragon/NightshadeAntidote\">https://github.com/RichardAragon/NightshadeAntidote</a></li>\n</ul></li>\n<li>Agalmic organizations: the future of AI facilitating cooperation and\nsharing of intellectual property and knowledge</li>\n</ul>\n',424,0,0,'CC-BY-SA','AI, NLP, open source, image watermarking, facial recognition, post scarcity, economics, copyrights, ',0,0,1),
(4063,'2024-02-28','Re: ChatGPT Output is not compatible with CC-BY-SA ',1601,'A response to hpr3983, in which Ken argued that shows using chatGPT output can\'t be posted to HPR','<p>dnt offers an opinion on Ken\'s show about ChatGPT content being\nincompatible with the CC-BY-SA license. I don\'t disagree that it is\nincompatible, but I don\'t think it means a show containing chatGPT\noutput can\'t be licensed under CC-BY-SA and posted on HPR, because not\nonly is the host not able to place any restrictions over the chatGPT\noutput, but rather no one is.</p>\n<h1 id=\"references-in-order-of-appearance\">References, in order of\nappearance:</h1>\n<ul>\n<li><a href=\"https://hackerpublicradio.org/eps/hpr3983/index.html\"\nclass=\"uri\">https://hackerpublicradio.org/eps/hpr3983/index.html</a></li>\n<li><a\nhref=\"https://web.archive.org/web/20240124235805/https://www.forbes.com/sites/joemckendrick/2022/12/21/who-ultimately-owns-content-generated-by-chatgpt-and-other-ai-platforms/?sh=343906bc5423\"\nclass=\"uri\">https://web.archive.org/web/20240124235805/https://www.forbes.com/sites/joemckendrick/2022/12/21/who-ultimately-owns-content-generated-by-chatgpt-and-other-ai-platforms/?sh=343906bc5423</a></li>\n<li><a\nhref=\"https://web.archive.org/web/20231108090650/https://openai.com/policies/usage-policies\"\nclass=\"uri\">https://web.archive.org/web/20231108090650/https://openai.com/policies/usage-policies</a></li>\n<li><a\nhref=\"https://web.archive.org/web/20240118231615/https://www.govinfo.gov/content/pkg/FR-2023-03-16/pdf/2023-05321.pdf\"\nclass=\"uri\">https://web.archive.org/web/20240118231615/https://www.govinfo.gov/content/pkg/FR-2023-03-16/pdf/2023-05321.pdf</a></li>\n</ul>\n',399,0,0,'CC-BY-SA','chatgpt, copyright',0,0,1),
(4261,'2024-12-02','HPR Community News for November 2024',0,'HPR Volunteers talk about shows released and comments posted in November 2024','',159,47,1,'CC-BY-SA','Community News',0,0,1),
(4053,'2024-02-14','Third Party Integrations',703,'Connecting your application with others','<ul>\n<li>Oauth 2 - <a href=\"https://oauth.net/\"\nclass=\"uri\">https://oauth.net/</a></li>\n<li>Public APIs - <a href=\"https://github.com/public-apis/public-apis\"\nclass=\"uri\">https://github.com/public-apis/public-apis</a></li>\n<li>Zapier - <a href=\"https://zapier.com/\"\nclass=\"uri\">https://zapier.com/</a></li>\n<li>Postman - <a href=\"https://www.postman.com/\"\nclass=\"uri\">https://www.postman.com/</a></li>\n</ul>\n',403,0,0,'CC-BY-SA','api, programming',0,0,1),
(4057,'2024-02-20','Raspberry Pi and astro imaging',1855,'On how to build a cheap astro imager using a raspberry pi','<p>As I mentioned back in HPR 3857 \"Yesterday I saw a flare\" I have put together a way to take images and video through my telescopes, and more. You can do so too for under £100, assuming you have your own telescope, or add on another £40 for a nice lens for the HQ camera instead of a telescope.</p>\n\n<p>Items mentioned during this recording include:</p>\n<ul>\n<li><a href=\"https://www.raspberrypi.com/products/raspberry-pi-zero-w/\">Raspberry Pi Zero W</a></li>\n<li><a href=\"https://shop.pimoroni.com/products/raspberry-pi-high-quality-camera?variant=31675712241747\">Raspberry Pi HQ Camera</a></li>\n<li><a href=\"https://shop.pimoroni.com/products/wide-angle-2-8-12mm-lens-for-the-raspberry-pi-high-quality-camera?variant=32337957650515\">C/CS mount lens for HQ Camera</a></li>\n<li><a href=\"https://www.firstlightoptics.com/telescopes-in-stock/coronado-personal-solar-telescope-pst.html\">Coronado PST Solar telescope</a></li>\n<li>Meade ETX-90EC - a good telescope in its day and worth using if you have one lying around but not something I\'d recommend buying these days. Only available second hand.</li>\n</ul>\n\n<p>Here are some images I took with the above kit:</p>\n\n<p>The Sun in H&alpha; using a Coronado PST solar telescope. 50 or so stacked with exposures of 20ms for the disk and one 100ms to pick out the outer, coronal features.</p>\n<img src=\"https://hackerpublicradio.org/eps/hpr4057/hpr4057/sun_halpha.jpg\" alt=\"The Sun in H alpha\">\n\n<p>Jupiter using stacked images from a Meade ETX-90EC showing its spot and the moons Ganymede, Io and Europa.</p>\n<!-- <img src=\"https://hackerpublicradio.org/eps/hpr4057/hpr4057/jupiter.png\" alt=\"Jupiter with three moons\"> -->\n<p><a href=\"https://hackerpublicradio.org/eps/hpr4057/hpr4057/jupiter.png\"><img src=\"https://hackerpublicradio.org/eps/hpr4057/hpr4057/jupiter_thumbnail.png\" title=\"Jupiter with three moons\" alt=\"Jupiter with three moons\" /></a><br/>Click the image for the full-sized version</p>\n\n<p>Star trails using the C/CS mount lens. The bright white and red blobs are due to my headtorch and during the end fog rolled in and coated the observatory in ice in under fifteen minutes!</p>\n<!-- <img src=\"https://hackerpublicradio.org/eps/hpr4057/hpr4057/star_trails.jpg\" alt=\"Star trails as fog rolls in\"> -->\n<p><a href=\"https://hackerpublicradio.org/eps/hpr4057/hpr4057/star_trails.jpg\"><img src=\"https://hackerpublicradio.org/eps/hpr4057/hpr4057/star_trails_thumbnail.jpg\" title=\"Star trails as fog rolls in\" alt=\"Star trails as fog rolls in\" /></a><br/>Click the image for the full-sized version</p>\n',268,0,0,'CC-BY-SA','astronomy,telescope,camera,raspberrypi',0,0,1),
(4058,'2024-02-21','Radio Thermometer',321,'Stache talks about building a thing to solve an issue at work','<pre><code>\n# If you ever want to make this code better, please do\n# but for the love of God, please save this code first.\n# It is written in circuitpython to prevent the need\n# to compile code, and the RFM69 does not work with\n# micropython.\n\nimport board\nimport analogio\nimport digitalio\nfrom time import sleep\nimport math\nimport adafruit_rfm69\nimport busio\n\nRoomNum = 10 # What room number is this in\nSenderRoom = 10 # What room number reports to the receiver\nRoomQuant = 12 # How many rooms are there\nRecAddr = 254 # What\'s the address of the receiver\nRadio_Freq_Mhz = 915.0 # What\'s the frequency of the radio\nRetryAmount = 3 # How many times to retry sending the packet\nmin_okay = 12493 # Approx 20 deg C\nmax_okay = 9571 # Approx 26 deg C\nled = digitalio.DigitalInOut(board.GP25) # Onboard LED\nled.direction = digitalio.Direction.OUTPUT\nCS = digitalio.DigitalInOut(board.GP13) # Pin 17\nCS.direction = digitalio.Direction.OUTPUT\nRESET = digitalio.DigitalInOut(board.GP6) # Pin 9\nRESET.direction = digitalio.Direction.OUTPUT\nSCK = board.GP10 # Pin 14\nMOSI = board.GP11 # Pin 15\nMISO = board.GP12 # Pin 16\nspi = busio.SPI(SCK, MOSI, MISO)\nrfm69 = adafruit_rfm69.RFM69(spi, CS, RESET, Radio_Freq_Mhz, baudrate=1000000)\n#rfm69.reset()\nrfm69.xmit_timeout = 10.0\n#rfm69.freq_mhz = Radio_Freq_Mhz\nrfm69.tx_power = 20\nrfm69.node = RoomNum\nrfm69.destination = RecAddr\n#rfm69.encryption_key = (b\'\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\')\n\nadcpin = board.GP26 # Pin 31\nthermistor = analogio.AnalogIn(adcpin)\n\nresend_time = 1\n\ndef ask_all(radio):\n    send_packet = \'\'\n    temp_list = []\n    room_packet = \'\'\n    for a in range(RoomQuant):\n        temp_list.append(\'\')\n    for b in range(RoomQuant):\n        digitnum = str(b + 1)\n        if len(digitnum) == 1:\n            digitnum = \'0\' + str(b + 1)\n        if not int(digitnum) == RoomNum:\n            radio.send(bytes(\'query\',\'utf-8\'), destination = int(digitnum))\n            sleep(.5)\n            room_packet = radio.receive(timeout = 1.0)\n            if room_packet == None:\n                room_packet = str(\'0\')\n        else:\n            room_packet = temp_retrieve()\n        temp_list[b] = digitnum+room_packet\n    for c in range(RoomQuant):\n        send_packet = send_packet + temp_list[c]\n    return send_packet\n\ndef temp_retrieve():\n    #Voltage dividor\n    Vin = 3.3 # Pin 35\n    Ro = 7500 # 10k resistor 10000 was initial setting, changed for calibration\n\n    #Steinhart constants\n    A = 0.00110683\n    B = 0.000238464\n    C = 0.00000006507394\n\n    # Get voltage value from ADC\n    adc = thermistor.value\n    print(adc)\n    Vout = (Vin/65535)*adc\n\n    # Calculate resistance\n    Rt = round((Vout * Ro) / (Vin - Vout),0)\n    # Rt = 10000 # Used for testing. Setting Rt to 10k equates approx 25C\n\n    # Steinhart - Hart equation\n    TempK = 1 / (A + (B * math.log(Rt)) + C * math.pow(math.log(Rt), 3))\n\n    # Convert from K to C\n    TempC = TempK - 273.15\n    TempF = (TempC * (9/5)) + 32\n    print(Rt, TempC, TempF)\n    return temp_check(Rt)\n\ndef temp_check(digis):\n    if digis < max_okay:\n        return \'1\'\n    elif digis >= max_okay and digis < min_okay:\n        return \'2\'\n    elif digis >= min_okay:\n        return \'3\'\n\ntemp_retrieve()\nwhile True:\n    led.value = True\n    if SenderRoom == RoomNum:\n        tx_packet = ask_all(rfm69)\n        print(tx_packet)\n        for x in range(RetryAmount):\n            rfm69.send(bytes(tx_packet, \'utf-8\'))\n            sleep(5)\n    else:\n        rx_packet = rfm69.receive(timeout = 10, keep_listening = False)\n        if not rx_packet == None:\n            tx_packet = temp_retrieve()\n            print(tx_packet)\n    sleep(.2)\n    led.value = False\n</code></pre>\n\n<p><a href=\"https://hackerpublicradio.org/eps/hpr4058/hpr4058/pic01.png\"> <img src=\"https://hackerpublicradio.org/eps/hpr4058/hpr4058/pic01_thumbnail.png\" title=\"Schematic\" alt=\"Schematic\" /></a><br/>Click the image for the full-sized version</p>\n<!-- <img src=\"pic01.png\" alt=\"Schematic\"> -->\n<p><img src=\"https://hackerpublicradio.org/eps/hpr4058/hpr4058/pic02.png\" alt=\"PCB Layout\"></p>\n<p><img src=\"https://hackerpublicradio.org/eps/hpr4058/hpr4058/pic03.png\" alt=\"PCB 3D Rendering\"></p>\n',408,103,0,'CC-BY-SA','Hobby electronics, circuit python',0,0,1),
(4059,'2024-02-22','the southern cross',745,'another retro computer','<h2 id=\"intro\">intro</h2>\n<ul>\n<li>trying to keep hpr going</li>\n<li>encourage people not to be content is better than quality</li>\n<li>last show audio</li>\n</ul>\n<h2 id=\"southern-cross-brief-history\">southern cross brief history</h2>\n<ul>\n<li><p>talking electronics TEC-1, 1983, i think it was influenced by\nkim-1 although the kim-1 was released by MOS the 6502 designers in 1976\nas a way to get people using the 6502 processor. TEC-1 was designed\nspecifically to get the ordinary bloke involved with computers.</p></li>\n<li><p>Cris Jones<br />\n<a href=\"https://github.com/crsjones/Southern-Cross-Computer-z80\"\nclass=\"uri\">https://github.com/crsjones/Southern-Cross-Computer-z80</a><br />\n<a href=\"https://youtu.be/AK2FOw1ilg0?si=KX0ocEpk_fV6x-ry\"\nclass=\"uri\">https://youtu.be/AK2FOw1ilg0?si=KX0ocEpk_fV6x-ry</a><br />\nI developed the Z80 Southern Cross Computer for Hong Kong based Kitsrus\nin 1992/93. The kit was based on the TEC-1 Computer that was designed by\nJohn Hardy and Ken Stone in 1983 and appeared in Australia\'s Talking\nElectronics Magazine Issue 10 March 1983.</p></li>\n<li><p>Kitsrus distributed the kit into the US and the UK and was sold\nonline from Hong Kong.</p></li>\n<li><p>The Southern Cross Computer appeared in Australia\'s Silicon Chip\nMagazine in the August 1993 edition</p></li>\n</ul>\n<h2 id=\"my-southern-cross\">my southern cross</h2>\n<ul>\n<li>i found this southern cross on ebay. its revision 3, and it came\nassembled.</li>\n<li>description<br />\nthis is easier to program, still hand assembled machine code, but\nencourages building bit banged serial interface<br />\ngood documentation at the github page<br />\neasy to interface too, plenty of projects out there</li>\n</ul>\n<h2 id=\"outro\">outro</h2>\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Sturgeon%27s_law\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Sturgeon%27s_law</a><br />\nsturgeons law<br />\n\"Ninety percent of [science fiction] is crud, but then, ninety percent\nof everything is crud.\"</li>\n</ul>\n<p><em>Southern Cross</em><br />\n<img\nsrc=\"https://hackerpublicradio.org/eps/hpr4059/hpr4059/southerncross.jpg\"\nalt=\"Southern Cross\" /></p>\n',326,0,0,'CC-BY-SA','hobby electronics, retrocomputing, z80',0,0,1),
(4286,'2025-01-06','HPR Community News for December 2024',0,'HPR Volunteers talk about shows released and comments posted in December 2024','',159,47,1,'CC-BY-SA','Community News',0,0,1),
(4306,'2025-02-03','HPR Community News for January 2025',0,'HPR Volunteers talk about shows released and comments posted in January 2025','',159,47,1,'CC-BY-SA','Community News',0,0,1),
(4062,'2024-02-27','HPR Music Series? - How will it go for the girl and me?',1043,'Fred Black Pitches an idea for a Series of music being shared, and teaches a tune','<p>Fred Black teaches a tune called \"Hur ska det g&#xE5; f&#xF6;r j&#xE4;nta och mig\",\nwhich translates to \"How will it go for the girl and me\"</p>\n<p>It was played on a <a\nhref=\"https://en.wikipedia.org/wiki/Nyckelharpa\">Nyckelharpa</a>, or Key\nfiddle, and the key is G major</p>\n',422,0,1,'CC-BY-SA','Music',0,0,1),
(4090,'2024-04-05','Playing Civilization III, Part 1',904,'We begin to look at the details of playing this game','<p>This starts our look at the details of playing Civilization III. This\nwas a great advance on Civilization II, and we will see how this happens\nas we look at the Cities, and at the terrain types on the tiles.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a href=\"https://www.civfanatics.com/\"\nclass=\"uri\">https://www.civfanatics.com/</a></li>\n<li><a\nhref=\"https://civilization.fandom.com/wiki/Apolyton_Civilization_Site\"\nclass=\"uri\">https://civilization.fandom.com/wiki/Apolyton_Civilization_Site</a></li>\n<li><a\nhref=\"https://strategywiki.org/wiki/Sid_Meier%27s_Civilization_III/Terrain\"\nclass=\"uri\">https://strategywiki.org/wiki/Sid_Meier%27s_Civilization_III/Terrain</a></li>\n<li><a\nhref=\"https://www.palain.com/gaming/civilization-iii/playing-civilization-iii-part-1/\"\nclass=\"uri\">https://www.palain.com/gaming/civilization-iii/playing-civilization-iii-part-1/</a></li>\n</ul>\n',198,122,0,'CC-BY-SA','Computer games, strategy games, Civilization III',0,0,1),
(4100,'2024-04-19','Charleston, South Carolina',685,'We visit Charleston, South Carolina, and meet up with some friends','<p>Charleston, South Carolina is a classic Southern city which had a\npast as a wealthy city, in large part due to slavery, and was active in\nthe American Revolution before becoming the starting place of the Civil\nWar.</p>\n<h2 id=\"links\">Links</h2>\n<ul>\n<li><a href=\"https://flic.kr/s/aHBqjAvQKR\"\nclass=\"uri\">https://flic.kr/s/aHBqjAvQKR</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjAvQY6\"\nclass=\"uri\">https://flic.kr/s/aHBqjAvQY6</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjAvS82\"\nclass=\"uri\">https://flic.kr/s/aHBqjAvS82</a></li>\n<li><a\nhref=\"https://www.palain.com/travel/rv-trip-2022-2023-southeast-us/charleston-south-carolina/\"\nclass=\"uri\">https://www.palain.com/travel/rv-trip-2022-2023-southeast-us/charleston-south-carolina/</a></li>\n</ul>\n',198,119,0,'CC-BY-SA','RV, travel, southeast US, Charleston, South Carolina',0,0,1),
(4110,'2024-05-03','Playing Civilization III, Part 2',914,'We continue to look at the details of playing this game.','<p>This starts our look at the details of playing Civilization III. In\nthis episode we look at the Early game, which sets the stage for\neverything that follows. Then we look at Revenue and Resources.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a\nhref=\"https://civilization.fandom.com/wiki/List_of_resources_in_Civ3\"\nclass=\"uri\">https://civilization.fandom.com/wiki/List_of_resources_in_Civ3</a></li>\n<li><a\nhref=\"https://www.palain.com/gaming/civilization-iii/playing-civilization-iii-part-2/\"\nclass=\"uri\">https://www.palain.com/gaming/civilization-iii/playing-civilization-iii-part-2/</a></li>\n</ul>\n',198,122,0,'CC-BY-SA','Computer games, strategy games, Civilization III',0,0,1),
(4120,'2024-05-17','South Carolina to Home',741,'We leave Charleston, South Carolina, and head back home.','<p>We finish our South Carolina visit touring a plantation, and then go\nto see a magnificent live oak tree. After that, it is time for us to\nhead back home.</p>\n<h2 id=\"links\">Links</h2>\n<ul>\n<li><a href=\"https://flic.kr/s/aHBqjAvW57\"\nclass=\"uri\">https://flic.kr/s/aHBqjAvW57</a></li>\n<li><a href=\"https://flic.kr/s/aHBqjAvWaN\"\nclass=\"uri\">https://flic.kr/s/aHBqjAvWaN</a></li>\n<li><a\nhref=\"https://www.palain.com/travel/rv-trip-2022-2023-southeast-us/south-carolina-to-home/\"\nclass=\"uri\">https://www.palain.com/travel/rv-trip-2022-2023-southeast-us/south-carolina-to-home/</a></li>\n</ul>\n',198,119,0,'CC-BY-SA','RV, travel, southeast US, Charleston, South Carolina',0,0,1),
(4130,'2024-05-31','Playing Civilization III, Part 3',1186,'We continue to look at the details of playing this game.','<p>This continues our look at the details of playing Civilization III.\nHere we move into a discussion of the Expansion Phase, how to improve\nyour cities, whether or not to build Wonders, the role of Technologies,\nand finally the different Victory types.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a\nhref=\"https://www.civfanatics.com/content/civ3/strategy/cracker/civ3_starts/index.htm\"\nclass=\"uri\">https://www.civfanatics.com/content/civ3/strategy/cracker/civ3_starts/index.htm</a></li>\n<li><a href=\"https://www.youtube.com/watch?v=YZDmlnJSVdE\"\nclass=\"uri\">https://www.youtube.com/watch?v=YZDmlnJSVdE</a></li>\n<li><a href=\"https://www.youtube.com/watch?v=MnfWobW2zyc\"\nclass=\"uri\">https://www.youtube.com/watch?v=MnfWobW2zyc</a></li>\n<li><a\nhref=\"https://www.palain.com/gaming/civilization-iii/playing-civilization-iii-part-3/\"\nclass=\"uri\">https://www.palain.com/gaming/civilization-iii/playing-civilization-iii-part-3/</a></li>\n</ul>\n',198,122,0,'CC-BY-SA','Computer games, strategy games, Civilization III',0,0,1),
(4140,'2024-06-14','Battery and Charging Technology 2024',939,'Interesting new developments in batteries and charging','<p>It is obvious to most people that we need to stop burning fossil\nfuels to prevent even worse global climate change. Options like solar\npanels and windmills are options for providing clean renewable\nelectricity, but since so much of our fossil fuel use is for\ntransportation, we need to make strides in improving batteries and\ncharging. Fortunately there have been some very positive developments\nthat will show up within just a few years</p>\n<h2 id=\"links\">Links</h2>\n<ul>\n<li><a\nhref=\"https://fortune.com/2023/11/23/us-electric-vehicle-sales-2023-record/\"\nclass=\"uri\">https://fortune.com/2023/11/23/us-electric-vehicle-sales-2023-record/</a></li>\n<li><a\nhref=\"https://www.caranddriver.com/news/a45942785/toyota-future-ev-battery-plans/\"\nclass=\"uri\">https://www.caranddriver.com/news/a45942785/toyota-future-ev-battery-plans/</a></li>\n<li><a\nhref=\"https://global.honda/en/tech/All-solid-state_battery_technology/\"\nclass=\"uri\">https://global.honda/en/tech/All-solid-state_battery_technology/</a></li>\n<li><a\nhref=\"https://seas.harvard.edu/news/2024/01/solid-state-battery-design-charges-minutes-lasts-thousands-cycles\"\nclass=\"uri\">https://seas.harvard.edu/news/2024/01/solid-state-battery-design-charges-minutes-lasts-thousands-cycles</a></li>\n<li><a\nhref=\"https://www.newscientist.com/article/2398896-what-are-solid-state-batteries-and-why-do-we-need-them\"\nclass=\"uri\">https://www.newscientist.com/article/2398896-what-are-solid-state-batteries-and-why-do-we-need-them</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Solid-state_battery\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Solid-state_battery</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Blade_battery\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Blade_battery</a></li>\n<li><a\nhref=\"https://www.theguardian.com/business/2023/nov/21/breakthrough-battery-from-sweden-may-cut-dependency-on-china\"\nclass=\"uri\">https://www.theguardian.com/business/2023/nov/21/breakthrough-battery-from-sweden-may-cut-dependency-on-china</a></li>\n<li><a\nhref=\"https://www.palain.com/battery-and-charging-technology-20240128/\"\nclass=\"uri\">https://www.palain.com/battery-and-charging-technology-20240128/</a></li>\n</ul>\n',198,0,0,'CC-BY-SA','Battery, Electric Vehicles, EV charging',0,0,1),
(4150,'2024-06-28','Playing Civilization III, Part 4',937,'We continue to look at the details of playing this game','<p>This continues our look at the details of playing Civilization III.\nHere we tackle a favorite topic, war and conquest. Many people play\ngames like this just to enjoy sending their armies out to wreak havoc on\ntheir enemies. So we\'ll look at how that can be done in Civilization\nIII.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a href=\"https://civilization.fandom.com/wiki/List_of_units_in_Civ3\"\nclass=\"uri\">https://civilization.fandom.com/wiki/List_of_units_in_Civ3</a></li>\n<li><a href=\"https://civilization.fandom.com/wiki/Unique_unit_(Civ3)\"\nclass=\"uri\">https://civilization.fandom.com/wiki/Unique_unit_(Civ3)</a></li>\n<li><a\nhref=\"https://www.palain.com/gaming/civilization-iii/playing-civilization-iii-part-4/\"\nclass=\"uri\">https://www.palain.com/gaming/civilization-iii/playing-civilization-iii-part-4/</a></li>\n</ul>\n',198,122,0,'CC-BY-SA','Computer games, strategy games, Civilization III',0,0,1),
(4067,'2024-03-05','Hacking AI Models to Protect your Livelihood',1148,'Listening to a TWIML AI podcast and reading Accelerondo (SciFi novel) I learned of 4 ways to hack AI','<p>I wanted to share with HPR peeps four ways to hack our\nrobot/corporate overlords:</p>\n<ol type=\"1\">\n<li><em>Fawkes</em> - named for Guy Fawkes, the face mask of anonymous\nand hackers around the world</li>\n<li><em>Glaze</em> - a digital paint curing process to protect your\nart</li>\n<li><em>Nightshade</em>, a software blue pill you can hide in your\ndigital creations so that any AI consuming your work without your\npermission will also consume your blue pill and be sucked into a world\nof endless hallucinations</li>\n<li><em>Agalmic organizations</em>, the future of AI business, invented\nby Charles Stross in his second most famous SciFi novel\n<em>Accelerando</em>, written in 2005 but set in the years 2025-2040\nduring what he called the singularity and others now call the #pancrisis\nor post-truth era or <em>21 Lessons of the 21st Century</em></li>\n</ol>\n<p>Those first three applications were invented by Ben Zhao a <a\nhref=\"https://neubauercollegium.uchicago.edu/research#\">Neubauer\nprofessor</a> at the University of Chicago</p>\n<p>Here are links to more resources about each one:</p>\n<ol type=\"1\">\n<li>Fawkes <a\nhref=\"https://sandlab.cs.uchicago.edu/fawkes/\">sandlab.cs.uchicago.edu/fawkes/</a>\nto cloak your selfies, can it be made to work on video? <a\nhref=\"https://github.com/Shawn-Shan/fawkes\">github.com/Shawn-Shan/fawkes</a></li>\n<li>Glaze <a\nhref=\"https://github.com/EspacioLatente/Glaze%20https://people.cs.uchicago.edu/~ravenben/publications/pdf/glaze-usenix23.pdf\">glaze-usenix23.pdf</a>\nto make it difficult to do style transfer on your images. All your art\nwill look like pollucks If someone asked models to imitate your store.\nAnime and graphic novels are hard.</li>\n<li>NightShade <a\nhref=\"https://arxiv.org/pdf/2310.13828.pdf\">arxiv.org/pdf/2310.13828.pdf</a>\nonly needs to poison pill 50 of your images so they will destroy the\nfeature space of any AI model that tries to learn your style from them,\nthey cause models trained on them to hallucinate. Fill in the vacuum of\nthe Swiss cheese holes of your feature space (embedding vectors). There\nis someone developing an antidote: <a\nhref=\"https://github.com/RichardAragon/NightshadeAntidote\">github.com/RichardAragon/NightshadeAntidote</a></li>\n<li>Your local used book store is the best place to find copies of\nAccelerando or the Lobsters short story released in several periodicals\nand SciFi compendiums over the years.</li>\n</ol>\n',424,0,1,'CC-BY-SA','AI, malware, stablediffusion, image generation, art, copyright, AI ethics, hacking, steganography',0,0,1),
(4065,'2024-03-01','Framework 13 (13th gen Intel) review',1157,'I give a review of the Framework 13 laptop (13th gen Intel). The review is very positive.','<h1 id=\"framework-13-13th-gen-intel-edition-review\">Framework 13 (13th\ngen Intel edition) Review</h1>\n<h2 id=\"general-takeaways\">General Takeaways</h2>\n<ul>\n<li>Overall very good</li>\n<li>Hackable</li>\n<li>Good build quality</li>\n<li>Good keyboard</li>\n<li>Good screen</li>\n<li>Okay webcam and microphone</li>\n<li>A bit noisy fan, but not obnoxious</li>\n<li>Good performance</li>\n<li>Good OS compatibility</li>\n<li>Okay trackpad</li>\n<li>Great portability</li>\n<li>I love the expandability the expansion cards provide.</li>\n<li>USB-C everywhere!</li>\n</ul>\n<h2\nid=\"possible-cons-for-people-looking-into-it-non-issues-for-me\">Possible\nCons for people looking into it (non-issues for me)</h2>\n<ul>\n<li>Expansion cards can be difficult to remove, so those who struggle\nwith those kinds of things beware.</li>\n<li>No touchscreen options for the laptop.</li>\n<li>No OLED screen options.</li>\n<li>No hot-swappable battery</li>\n<li>The Ethernet expansion card is bulky</li>\n</ul>\n<h2 id=\"other-suggestions\">Other suggestions</h2>\n<p>I didn\'t mention this while recording (sorry), but if the Framework\n13 isn\'t enough laptop, the Framework 16 is releasing <em>very</em> soon\nas of writing and recording this (As of Feb 09 2024) and is open for\npre-order now. The Framework 16 includes a replaceable GPU along with\nmore expansion and a larger screen. This should provide a better gaming\nexperience and more power.</p>\n<h2\nid=\"links-to-find-more-info-on-the-framework-13-laptop-along-with-other-reviews\">Links\nto find more info on the Framework 13 laptop (Along with other\nreviews)</h2>\n<ul>\n<li><a\nhref=\"https://frame.work/products/laptop-diy-13-gen-intel\">Framework\'s\nWebsite for the Framework 13</a></li>\n<li><a\nhref=\"https://www.phoronix.com/review/framework-13-amd\">Phoronix\'s\nReview of the Framework 13 AMD Edition</a></li>\n<li><a\nhref=\"https://www.pcmag.com/reviews/framework-laptop-13-2023\">PCMag\'s\nreview of the Framework 13 Intel Edition</a></li>\n</ul>\n',423,0,0,'CC-BY-SA','framework,laptop,review',0,0,1),
(4160,'2024-07-12','Passkeys',1082,'We take a look at passkeys and ask if this is what you should be using','<p>Passkeys are the latest proposal to improve security online by\nreplacing Usernames and Passwords. They have both advantages and\ndisadvantages, of course. So in this episode we take a look at both\nsides and answer the question \"Is this what you should be doing?\"</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a href=\"https://fidoalliance.org/overview/leadership/\"\nclass=\"uri\">https://fidoalliance.org/overview/leadership/</a></li>\n<li><a href=\"https://www.w3.org/TR/webauthn-2/\"\nclass=\"uri\">https://www.w3.org/TR/webauthn-2/</a></li>\n<li><a\nhref=\"https://www.zwilnik.com/security-and-privacy/encryption-and-e-mail/\"\nclass=\"uri\">https://www.zwilnik.com/security-and-privacy/encryption-and-e-mail/</a></li>\n<li><a href=\"https://hackerpublicradio.org/eps/hpr1481/index.html\"\nclass=\"uri\">https://hackerpublicradio.org/eps/hpr1481/index.html</a></li>\n<li><a href=\"https://www.zwilnik.com/security-and-privacy/tls-1-3/\"\nclass=\"uri\">https://www.zwilnik.com/security-and-privacy/tls-1-3/</a></li>\n<li><a href=\"https://hackerpublicradio.org/eps/hpr2540/index.html\"\nclass=\"uri\">https://hackerpublicradio.org/eps/hpr2540/index.html</a></li>\n<li><a\nhref=\"https://www.zwilnik.com/security-and-privacy/ssh-and-tunneling/\"\nclass=\"uri\">https://www.zwilnik.com/security-and-privacy/ssh-and-tunneling/</a></li>\n<li><a href=\"https://www.yubico.com/\"\nclass=\"uri\">https://www.yubico.com/</a></li>\n<li><a href=\"https://1password.com/product/passkeys\"\nclass=\"uri\">https://1password.com/product/passkeys</a></li>\n<li><a href=\"https://bitwarden.com/passwordless-passkeys/\"\nclass=\"uri\">https://bitwarden.com/passwordless-passkeys/</a></li>\n<li><a\nhref=\"https://www.lastpass.com/features/passwordless-authentication\"\nclass=\"uri\">https://www.lastpass.com/features/passwordless-authentication</a></li>\n<li><a href=\"https://www.zwilnik.com/security-and-privacy/passkeys/\"\nclass=\"uri\">https://www.zwilnik.com/security-and-privacy/passkeys/</a></li>\n</ul>\n',198,74,0,'CC-BY-SA','Passkeys, encryption, passwords, security',0,0,1),
(4170,'2024-07-26','Playing Civilization III, Part 5',794,'We wrap up our look at the details of playing this game.','<p>This finishes our look at the details of playing Civilization III.\nHere we add to our previous discussion of wars and combat.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a\nhref=\"https://civilization.fandom.com/wiki/Difficulty_level_(Civ3)\"\nclass=\"uri\">https://civilization.fandom.com/wiki/Difficulty_level_(Civ3)</a></li>\n<li><a\nhref=\"https://civilization.fandom.com/wiki/Gameplay_(Civ3)#Resources\"\nclass=\"uri\">https://civilization.fandom.com/wiki/Gameplay_(Civ3)#Resources</a></li>\n<li><a\nhref=\"https://www.civfanatics.com/civ3/strategy/game-mechanics/how-does-war-weariness-work/\"\nclass=\"uri\">https://www.civfanatics.com/civ3/strategy/game-mechanics/how-does-war-weariness-work/</a></li>\n<li><a\nhref=\"https://www.palain.com/gaming/civilization-iii/playing-civilization-iii-part-5/\"\nclass=\"uri\">https://www.palain.com/gaming/civilization-iii/playing-civilization-iii-part-5/</a></li>\n</ul>\n',198,122,0,'CC-BY-SA','Computer games, strategy games, Civilization III',0,0,1),
(4180,'2024-08-09','Intro to Science Fiction Series',952,'I\'m starting a new series on science fiction and fantasy, and this introduces it','<p>This introduction takes us through my history of both reading and\nwatching science fiction and fantasy, and perforce introduces many of\nthe topics I will explore in more depth.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Tom_Swift\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Tom_Swift</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Robert_A._Heinlein_bibliography\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Robert_A._Heinlein_bibliography</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Isaac_Asimov\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Isaac_Asimov</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/E._E._Smith\"\nclass=\"uri\">https://en.wikipedia.org/wiki/E._E._Smith</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Lensman_series\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Lensman_series</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Skylark_(series)\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Skylark_(series)</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Family_D%27Alembert\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Family_D%27Alembert</a></li>\n<li><a href=\"http://www.stephengoldin.com/\"\nclass=\"uri\">http://www.stephengoldin.com/</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Gordon_Eklund\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Gordon_Eklund</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/The_Lord_of_the_Rings\"\nclass=\"uri\">https://en.wikipedia.org/wiki/The_Lord_of_the_Rings</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/The_Hobbit\"\nclass=\"uri\">https://en.wikipedia.org/wiki/The_Hobbit</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Andre_Norton\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Andre_Norton</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Dragonriders_of_Pern\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Dragonriders_of_Pern</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Anne_McCaffrey\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Anne_McCaffrey</a></li>\n<li><a\nhref=\"https://www.merriam-webster.com/wordplay/retcon-history-and-meaning\"\nclass=\"uri\">https://www.merriam-webster.com/wordplay/retcon-history-and-meaning</a></li>\n<li><a href=\"https://www.imdb.com/title/tt0052520/\"\nclass=\"uri\">https://www.imdb.com/title/tt0052520/</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/The_Outer_Limits_(1963_TV_series)\"\nclass=\"uri\">https://en.wikipedia.org/wiki/The_Outer_Limits_(1963_TV_series)</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Lost_in_Space\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Lost_in_Space</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Star_Trek\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Star_Trek</a></li>\n<li><a href=\"https://www.imdb.com/title/tt0062622/\"\nclass=\"uri\">https://www.imdb.com/title/tt0062622/</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Doctor_Who\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Doctor_Who</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Star_Wars\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Star_Wars</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Star_Trek:_The_Motion_Picture\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Star_Trek:_The_Motion_Picture</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/The_Chronicles_of_Amber\"\nclass=\"uri\">https://en.wikipedia.org/wiki/The_Chronicles_of_Amber</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Roger_Zelazny\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Roger_Zelazny</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/A_Night_in_the_Lonesome_October\"\nclass=\"uri\">https://en.wikipedia.org/wiki/A_Night_in_the_Lonesome_October</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Sapphire_%26_Steel\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Sapphire_%26_Steel</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Thomas_Piketty\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Thomas_Piketty</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Capital_in_the_Twenty-First_Century\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Capital_in_the_Twenty-First_Century</a></li>\n<li><a href=\"https://www.palain.com/science-fiction/\"\nclass=\"uri\">https://www.palain.com/science-fiction/</a></li>\n</ul>\n',198,124,0,'CC-BY-SA','Science fiction, fantasy, books, TV, movies',0,0,1),
(4190,'2024-08-23','Civilization IV',1226,'We start our look at the next game in the Civilization franchise, Civilization IV','<p>Civilization IV brings in some interesting advancements in the\nfranchise, and is a great game. We look here at how it came to be and\nwhat they did on a high level, before getting into the details in\nfurther installments</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a href=\"https://www.civfanatics.com/misc/one-civ-many-worlds/\"\nclass=\"uri\">https://www.civfanatics.com/misc/one-civ-many-worlds/</a></li>\n<li><a href=\"https://apolyton.net/\"\nclass=\"uri\">https://apolyton.net/</a></li>\n<li><a href=\"https://www.civfanatics.com/\"\nclass=\"uri\">https://www.civfanatics.com/</a></li>\n<li><a href=\"https://www.youtube.com/watch?v=K_D1KxQpqVk\"\nclass=\"uri\">https://www.youtube.com/watch?v=K_D1KxQpqVk</a></li>\n<li><a\nhref=\"https://www.gamespot.com/articles/civilization-iv-feature-preview-a-bigger-better-civ/1100-6129411/\"\nclass=\"uri\">https://www.gamespot.com/articles/civilization-iv-feature-preview-a-bigger-better-civ/1100-6129411/</a></li>\n<li><a href=\"https://www.youtube.com/watch?v=pUbHzlT-Tm4\"\nclass=\"uri\">https://www.youtube.com/watch?v=pUbHzlT-Tm4</a></li>\n<li><a href=\"https://www.youtube.com/watch?v=CgBnpbaQFo4\"\nclass=\"uri\">https://www.youtube.com/watch?v=CgBnpbaQFo4</a></li>\n<li><a href=\"https://www.youtube.com/watch?v=ZzrOkaAp6VY\"\nclass=\"uri\">https://www.youtube.com/watch?v=ZzrOkaAp6VY</a></li>\n<li><a href=\"https://www.palain.com/gaming/civilization-iv/\"\nclass=\"uri\">https://www.palain.com/gaming/civilization-iv/</a></li>\n</ul>\n',198,122,0,'CC-BY-SA','Computer games, strategy games, Civilization IV',0,0,1),
(4200,'2024-09-06','Intro to Doctor Who',1128,'An introduction to one of my favorites, Doctor Who','<p>This introduction is an overview of Doctor Who from its beginnings in\n1963 right up to the end of 2023. We look at the television series and\nmovies, as well as appearances in other media. Many of these will be\nthings we go into more detail about later, but this helps to put the\npieces in place first.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a href=\"https://bbvproductions.co.uk/\"\nclass=\"uri\">https://bbvproductions.co.uk/</a></li>\n<li><a\nhref=\"https://bbvproductions.co.uk/products/The-Airzone-Solution-DOWNLOAD-p347805251\"\nclass=\"uri\">https://bbvproductions.co.uk/products/The-Airzone-Solution-DOWNLOAD-p347805251</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Reeltime_Pictures\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Reeltime_Pictures</a></li>\n<li><a href=\"http://www.dwasonline.co.uk/\"\nclass=\"uri\">http://www.dwasonline.co.uk/</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Nicholas_Briggs\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Nicholas_Briggs</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Big_Finish_Productions\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Big_Finish_Productions</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Doctor_Who_Magazine\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Doctor_Who_Magazine</a></li>\n<li><a href=\"https://www.doctorwhostore.com/target-episode-novels/\"\nclass=\"uri\">https://www.doctorwhostore.com/target-episode-novels/</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Russell_T_Davies\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Russell_T_Davies</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Bad_Wolf_(production_company)\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Bad_Wolf_(production_company)</a></li>\n<li><a\nhref=\"https://www.hollywoodreporter.com/tv/tv-news/doctor-who-disneyplus-streaming-1235248110/\"\nclass=\"uri\">https://www.hollywoodreporter.com/tv/tv-news/doctor-who-disneyplus-streaming-1235248110/</a></li>\n<li><a\nhref=\"https://www.doctorwho.tv/news-and-features/welcome-to-the-whoniverse-and-tales-of-the-tardis\"\nclass=\"uri\">https://www.doctorwho.tv/news-and-features/welcome-to-the-whoniverse-and-tales-of-the-tardis</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/UNIT\"\nclass=\"uri\">https://en.wikipedia.org/wiki/UNIT</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Torchwood\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Torchwood</a></li>\n<li><a\nhref=\"https://www.britbox.com/us/show/Classic_Doctor_Who_b006q2x0\"\nclass=\"uri\">https://www.britbox.com/us/show/Classic_Doctor_Who_b006q2x0</a></li>\n<li><a href=\"https://tubitv.com/search/Doctor%20Who\"\nclass=\"uri\">https://tubitv.com/search/Doctor%20Who</a></li>\n<li><a\nhref=\"https://tv.apple.com/us/season/season-9/umc.cmc.4ctfz8vsniw72o5sa63wmbobh?showId=umc.cmc.1jtpx2ub10fc2kc8a3st7jnaq\"\nclass=\"uri\">https://tv.apple.com/us/season/season-9/umc.cmc.4ctfz8vsniw72o5sa63wmbobh?showId=umc.cmc.1jtpx2ub10fc2kc8a3st7jnaq</a></li>\n<li><a\nhref=\"https://www.palain.com/science-fiction/intro-to-doctor-who/\"\nclass=\"uri\">https://www.palain.com/science-fiction/intro-to-doctor-who/</a></li>\n</ul>\n',198,124,0,'CC-BY-SA','Science fiction, Doctor Who, TV, movies',0,0,1),
(4210,'2024-09-20','Playing Civilization IV, Part 1',914,'We start our dive into the mechanics of this game','<p>Civilization IV made some changes, and in this episode we look at the\nVictory types, how the tiles work, and how the game can be modded.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a href=\"https://www.fandomspot.com/civ4-best-mods/\"\nclass=\"uri\">https://www.fandomspot.com/civ4-best-mods/</a></li>\n<li><a href=\"https://www.moddb.com/games/civilization-iv/mods\"\nclass=\"uri\">https://www.moddb.com/games/civilization-iv/mods</a></li>\n<li><a\nhref=\"https://www.gamewatcher.com/games/civilization-iv-beyond-the-sword/mods/best\"\nclass=\"uri\">https://www.gamewatcher.com/games/civilization-iv-beyond-the-sword/mods/best</a></li>\n<li><a href=\"http://razinghel.com/5-best-mods-for-civilization-4/\"\nclass=\"uri\">http://razinghel.com/5-best-mods-for-civilization-4/</a></li>\n<li><a href=\"https://sourceforge.net/projects/civ4bug/\"\nclass=\"uri\">https://sourceforge.net/projects/civ4bug/</a></li>\n<li><a href=\"https://sourceforge.net/projects/civ4bat/\"\nclass=\"uri\">https://sourceforge.net/projects/civ4bat/</a></li>\n<li><a href=\"https://www.civfanatics.com/civ4/downloads/\"\nclass=\"uri\">https://www.civfanatics.com/civ4/downloads/</a></li>\n<li><a href=\"https://www.gog.com/connect\"\nclass=\"uri\">https://www.gog.com/connect</a></li>\n<li><a\nhref=\"https://sourceforge.net/projects/civ4bat/files/The%20BAT%20Mod%20%28BTS%20v.319%29/BAT%20Mod%204.1/BAT%20Mod%204.1.zip/download\"\nclass=\"uri\">https://sourceforge.net/projects/civ4bat/files/The%20BAT%20Mod%20%28BTS%20v.319%29/BAT%20Mod%204.1/BAT%20Mod%204.1.zip/download</a></li>\n<li><a\nhref=\"https://civilization.fandom.com/wiki/Tile_improvement_(Civ4)\"\nclass=\"uri\">https://civilization.fandom.com/wiki/Tile_improvement_(Civ4)</a></li>\n<li><a\nhref=\"https://www.palain.com/gaming/civilization-iv/playing-civilization-iv-part-1/\"\nclass=\"uri\">https://www.palain.com/gaming/civilization-iv/playing-civilization-iv-part-1/</a></li>\n</ul>\n',198,122,0,'CC-BY-SA','Computer games, strategy games, Civilization IV',0,0,1),
(4068,'2024-03-06','Replacing a lightbulb in a microwave Oven',1248,'In this episode I record myself replacing a blown lightbulb in a microwave Oven.','<h2 id=\"warning\">Warning:</h2>\n<p>Microwave Ovens contain lethal voltages and components within the\nmicrowave oven can store lethal voltages for many hours after it is\nunplugged. Please only attempt this if you are qualified to do so.</p>\n<h2 id=\"show-notes\">Show Notes:</h2>\n<p>As I explained in the episode the bulb within our microwave oven\nfailed after 10 years of use. It is surprising how difficult it is to\ndetermine how well the food is cooked without illumination. I therefore\ndecided to have a go at replacing the internal light bulb.</p>\n<p>Picture 1 shows the complete microwave<br />\n<em>Complete microwave</em><br />\n<a href=\"https://hackerpublicradio.org/eps/hpr4068/hpr4068/1.jpeg\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr4068/hpr4068/1_thumbnail.jpeg\"\nalt=\"Complete microwave\" /></a> <br/><small><small><em>Click the\nthumbnail to see the full-sized image</em></small></small></p>\n<p>Picture 2 shows the location and fitment of the faulty bulb in our\nmicrowave oven<br />\n<em>Location and fitment of faulty bulb</em><br />\n<a href=\"https://hackerpublicradio.org/eps/hpr4068/hpr4068/2.jpeg\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr4068/hpr4068/2_thumbnail.jpeg\"\nalt=\"Location and fitment of faulty bulb\" /></a>\n<br/><small><small><em>Click the thumbnail to see the full-sized\nimage</em></small></small></p>\n<p>Picture 3 shows the faulty bulb removed<br />\n<em>Faulty bulb removed</em><br />\n<a href=\"https://hackerpublicradio.org/eps/hpr4068/hpr4068/3.jpeg\"><img\nsrc=\"https://hackerpublicradio.org/eps/hpr4068/hpr4068/3_thumbnail.jpeg\"\nalt=\"Faulty bulb removed\" /></a> <br/><small><small><em>Click the\nthumbnail to see the full-sized image</em></small></small></p>\n<p>Markings found on the faulty bulb revealed it was rated at 230v 20w\nbulb (I incorrectly stated in my podcast show that it was 30w).</p>\n<p>Typing 230v 20w into google provided an amazon link for a replacement\nuniversal microwave bulb from Poweka. Two were provided in the packet\nthough this wasn\'t clear from the description.</p>\n<p><a\nhref=\"https://www.amazon.co.uk/Wadoy-Microwave-Universal-Include-Panasonic/dp/B07F8PGJCQ\">Replacement\nbulb from amazon</a></p>\n',201,0,1,'CC-BY-SA','repair, electrical, DIY',0,0,1),
(4073,'2024-03-13','Is the 1990 documentary \"Cyberpunk\" worth watching today?',380,'In which Trixter covers the pros and cons of an old hacker watching old hacker media','<p>In the podcast episode, I mention my HD restoration on archive.org,\nhowever I found an even better restoration on YouTube at <a\nhref=\"https://youtu.be/ZsbMXYigewI\"\nclass=\"uri\">https://youtu.be/ZsbMXYigewI</a> for those not allergic to\nthe platform.</p>\n',149,0,1,'CC-BY-SA','cyberpunk, documentary, review',0,0,1),
(4220,'2024-10-04','How Doctor Who Began',877,'A look at the very first serial of Doctor Who','<p>This is a look at the very first serial of Doctor who, and how the\ncast was first put in place. It is in many ways an unlikely story for a\nshow that has gone on for 60 years and counting. I find the early\nstories to be charming and worth a look, and many things from these\nearly stories come back in later stories as well.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Sydney_Newman\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Sydney_Newman</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/The_Avengers_(TV_series)\"\nclass=\"uri\">https://en.wikipedia.org/wiki/The_Avengers_(TV_series)</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Diana_Rigg\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Diana_Rigg</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Verity_Lambert\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Verity_Lambert</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Doctor_Who_Magazine\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Doctor_Who_Magazine</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Waris_Hussein\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Waris_Hussein</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/William_Hartnell\"\nclass=\"uri\">https://en.wikipedia.org/wiki/William_Hartnell</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Carole_Ann_Ford\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Carole_Ann_Ford</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Jacqueline_Hill\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Jacqueline_Hill</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/William_Russell_(English_actor)\"\nclass=\"uri\">https://en.wikipedia.org/wiki/William_Russell_(English_actor)</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Sacha_Dhawan\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Sacha_Dhawan</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Thirteenth_Doctor\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Thirteenth_Doctor</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/An_Adventure_in_Space_and_Time\"\nclass=\"uri\">https://en.wikipedia.org/wiki/An_Adventure_in_Space_and_Time</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/An_Unearthly_Child\"\nclass=\"uri\">https://en.wikipedia.org/wiki/An_Unearthly_Child</a></li>\n<li><a href=\"https://doctorwhoconcordance.fandom.com/wiki/100,000_BC\"\nclass=\"uri\">https://doctorwhoconcordance.fandom.com/wiki/100,000_BC</a></li>\n<li><a href=\"https://tardis.fandom.com/wiki/Coal_Hill_School\"\nclass=\"uri\">https://tardis.fandom.com/wiki/Coal_Hill_School</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/TARDIS\"\nclass=\"uri\">https://en.wikipedia.org/wiki/TARDIS</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Control_of_fire_by_early_humans\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Control_of_fire_by_early_humans</a></li>\n<li><a\nhref=\"https://www.palain.com/science-fiction/intro-to-doctor-who/how-doctor-who-began/\"\nclass=\"uri\">https://www.palain.com/science-fiction/intro-to-doctor-who/how-doctor-who-began/</a></li>\n</ul>\n',198,124,0,'CC-BY-SA','Science fiction, Doctor Who, William Hartnell',0,0,1),
(4230,'2024-10-18','Playing Civilization IV, Part 2',749,'We continue our look at the mechanics of this game','<p>Civilization IV made some changes, and in this episode we look at\nBuild Queues, Research, and Wonders.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a\nhref=\"https://www.palain.com/gaming/civilization-iv/playing-civilization-iv-part-2/\"\nclass=\"uri\">https://www.palain.com/gaming/civilization-iv/playing-civilization-iv-part-2/</a></li>\n</ul>\n',198,122,0,'CC-BY-SA','Computer games, strategy games, Civilization IV',0,0,1),
(4240,'2024-11-01','The First Doctor, Part 1',921,'A look at the first season of Doctor Who','<p>This is a look at the rest of the first season of Doctor Who. We look\nat the problems of producing weekly show on a year-round schedule, and\nthen give a brief description of each of the stories.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Doctor_Who_missing_episodes\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Doctor_Who_missing_episodes</a></li>\n<li><a href=\"https://tardis.fandom.com/wiki/Loose_Cannon_Productions\"\nclass=\"uri\">https://tardis.fandom.com/wiki/Loose_Cannon_Productions</a></li>\n<li><a href=\"https://tardis.fandom.com/wiki/Planet_55\"\nclass=\"uri\">https://tardis.fandom.com/wiki/Planet_55</a></li>\n<li><a href=\"https://www.youtube.com/watch?v=Wl_ePl5Z41Q\"\nclass=\"uri\">https://www.youtube.com/watch?v=Wl_ePl5Z41Q</a></li>\n<li><a href=\"https://www.youtube.com/watch?v=caASarWP0p4\"\nclass=\"uri\">https://www.youtube.com/watch?v=caASarWP0p4</a></li>\n<li><a href=\"https://www.youtube.com/watch?v=mLMXY_nG-fs\"\nclass=\"uri\">https://www.youtube.com/watch?v=mLMXY_nG-fs</a></li>\n<li><a href=\"https://www.youtube.com/watch?v=KhCc66Y2o4Y\"\nclass=\"uri\">https://www.youtube.com/watch?v=KhCc66Y2o4Y</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Doctor_Who_(season_1)\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Doctor_Who_(season_1)</a></li>\n<li><a\nhref=\"https://www.palain.com/science-fiction/intro-to-doctor-who/the-first-doctor-part-1/\"\nclass=\"uri\">https://www.palain.com/science-fiction/intro-to-doctor-who/the-first-doctor-part-1/</a></li>\n</ul>\n',198,124,0,'CC-BY-SA','Science fiction, Doctor Who, William Hartnell',0,0,1),
(4250,'2024-11-15','Playing Civilization IV, Part 3',904,'We continue our look at the mechanics of this game','<p>Civilization IV made some changes, and in this episode we look at\nReligion. This is one of the big changes from previous versions of the\ngame and is something that will continue to be important in future\nversions.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a\nhref=\"https://www.palain.com/gaming/civilization-iv/playing-civilization-iv-part-3/\"\nclass=\"uri\">https://www.palain.com/gaming/civilization-iv/playing-civilization-iv-part-3/</a></li>\n</ul>\n',198,122,0,'CC-BY-SA','Computer games, strategy games, Civilization IV',0,0,1),
(4069,'2024-03-07','Passwords and Bitwarden news.',722,'Sgoti talks about passwords and Bitwarden.','<h2 id=\"passwords-and-bitwarden-news.\">Passwords and Bitwarden\nnews.</h2>\n<h2 id=\"sgoti-talks-about-passwords-and-bitwarden.\">Sgoti talks about\npasswords and Bitwarden.</h2>\n<ul>\n<li><p><strong>TAGS:</strong> Bitwarden, Passwords, News</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://bitwarden.com/blog/bitwarden-adds-auto-fill-option-inside-form-fields/\">Bitwarden\nadds a new auto-fill option right inside form fields</a></p></li>\n</ul>\n<blockquote>\n<p>Highly requested by the Bitwarden community, the new inline autofill\nmenu greatly enhances the user experience, enabling users to fill login\ncredentials faster than ever. Extensive third-party penetration testing\nwas conducted to identify security gaps prior to release.</p>\n</blockquote>\n<ul>\n<li><strong>Source:</strong> <a\nhref=\"https://bitwarden.com/blog/how-password-security-best-practices-safeguard-against-ransomware/\">How\npassword security best practices safeguard against ransomware</a></li>\n</ul>\n<blockquote>\n<p>Passkeys prevent the reuse of passwords across services or platforms\nbecause they are created uniquely to each user and service. Thanks to\nencrypted authentication protocols like WebAuthn, passkeys offer\nprotection against phishing attacks, one of the most common initiation\npoints for breaches and ransomware attacks.</p>\n</blockquote>\n<ul>\n<li><p><strong>Source:</strong> <a\nhref=\"https://hackerpublicradio.org/eps/hpr4047/index.html\">hpr4047 ::\nChange your passwords once in a while</a><br />\n</p></li>\n<li><p><strong>License:</strong> <a\nhref=\"https://creativecommons.org/licenses/by-sa/4.0/legalcode\">Creative\nCommons Attribution-ShareAlike 4.0 International</a><br />\n<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-sa/4.0/\"><img alt=\"Creative Commons License\" style=\"border-width:0\" src=\"https://i.creativecommons.org/l/by-sa/4.0/88x31.png\" /></a><br />This\nwork is licensed under a\n<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-sa/4.0/\">Creative\nCommons Attribution-ShareAlike 4.0 International License</a>.</p></li>\n</ul>\n',391,74,0,'CC-BY-SA','Bitwarden, Passwords, News',0,0,1),
(4260,'2024-11-29','The Golden Age',933,'A look at the early history of science fiction','<p>This is a look at the early history of science fiction, focusing on\nthe Golden Age, which is roughly the decade from 1939-1950. This is when\nmany of the great authors developed their craft and became famous, and\nin turn set the ground for science fiction going forward.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Lucian\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Lucian</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/A_True_Story\"\nclass=\"uri\">https://en.wikipedia.org/wiki/A_True_Story</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Frankenstein\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Frankenstein</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Journey_to_the_Center_of_the_Earth\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Journey_to_the_Center_of_the_Earth</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Twenty_Thousand_Leagues_Under_the_Seas\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Twenty_Thousand_Leagues_Under_the_Seas</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Around_the_World_in_Eighty_Days\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Around_the_World_in_Eighty_Days</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/The_Time_Machine\"\nclass=\"uri\">https://en.wikipedia.org/wiki/The_Time_Machine</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/The_Island_of_Doctor_Moreau\"\nclass=\"uri\">https://en.wikipedia.org/wiki/The_Island_of_Doctor_Moreau</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/The_Invisible_Man\"\nclass=\"uri\">https://en.wikipedia.org/wiki/The_Invisible_Man</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/The_War_of_the_Worlds\"\nclass=\"uri\">https://en.wikipedia.org/wiki/The_War_of_the_Worlds</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Edward_Bellamy\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Edward_Bellamy</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Looking_Backward\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Looking_Backward</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Hugo_Gernsback\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Hugo_Gernsback</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Modern_Electrics\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Modern_Electrics</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/The_Electrical_Experimenter\"\nclass=\"uri\">https://en.wikipedia.org/wiki/The_Electrical_Experimenter</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Radio_News\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Radio_News</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Ralph_124C_41%2B\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Ralph_124C_41%2B</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Amazing_Stories\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Amazing_Stories</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Amazing_Stories\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Amazing_Stories</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Hugo_Award\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Hugo_Award</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/John_W._Campbell\"\nclass=\"uri\">https://en.wikipedia.org/wiki/John_W._Campbell</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Who_Goes_There%3F\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Who_Goes_There%3F</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/The_Thing_from_Another_World\"\nclass=\"uri\">https://en.wikipedia.org/wiki/The_Thing_from_Another_World</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Analog_Science_Fiction_and_Fact\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Analog_Science_Fiction_and_Fact</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Penny_dreadful\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Penny_dreadful</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Isaac_Asimov\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Isaac_Asimov</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Autobiographies_of_Isaac_Asimov\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Autobiographies_of_Isaac_Asimov</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Frederik_Pohl\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Frederik_Pohl</a></li>\n<li><a\nhref=\"https://www.goodreads.com/book/show/1117714.The_Way_the_Future_Was\"\nclass=\"uri\">https://www.goodreads.com/book/show/1117714.The_Way_the_Future_Was</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Sad_Puppies\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Sad_Puppies</a></li>\n<li><a\nhref=\"https://www.vulture.com/article/hugo-awards-china-censorship-controversy.html\"\nclass=\"uri\">https://www.vulture.com/article/hugo-awards-china-censorship-controversy.html</a></li>\n<li><a href=\"https://www.dragoncon.org/\"\nclass=\"uri\">https://www.dragoncon.org/</a></li>\n<li><a href=\"https://boskone.org/\"\nclass=\"uri\">https://boskone.org/</a></li>\n<li><a href=\"https://2024.penguicon.org/\"\nclass=\"uri\">https://2024.penguicon.org/</a></li>\n<li><a href=\"https://www.palain.com/science-fiction/the-golden-age/\"\nclass=\"uri\">https://www.palain.com/science-fiction/the-golden-age/</a></li>\n</ul>\n',198,124,0,'CC-BY-SA','Science fiction, Golden Age, history',0,0,1),
(4270,'2024-12-13','Playing Civilization IV, Part 4',951,'We continue our look at the mechanics of this game','<p>Civilization IV made some changes, and in this episode we look at the\nLeaders and Civs in the game. They matter a lot to your playing style,\nand again they will matter even more in future versions of the game.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a\nhref=\"https://www.civfanatics.com/civ4/civilopedia/civilizations/\"\nclass=\"uri\">https://www.civfanatics.com/civ4/civilopedia/civilizations/</a></li>\n<li><a\nhref=\"https://www.civfanatics.com/civ4/strategy/game-mechanics/unit-maintenance-explained/\"\nclass=\"uri\">https://www.civfanatics.com/civ4/strategy/game-mechanics/unit-maintenance-explained/</a></li>\n<li><a\nhref=\"https://www.palain.com/gaming/civilization-iv/playing-civilization-iv-part-4/\"\nclass=\"uri\">https://www.palain.com/gaming/civilization-iv/playing-civilization-iv-part-4/</a></li>\n</ul>\n',198,122,0,'CC-BY-SA','Computer games, strategy games, Civilization IV',0,0,1),
(4071,'2024-03-11','Migration to digiKam as Digital Asset Management (DAM)',501,'I describe how I migrated from Adobe Photoshop Elements to digiKam as my photo catalog software. ','<p>I talk about my migration from Adobe Photoshop Elements to digiKam as\nphoto catalog software, or DAM Digital Asset Management as it often is\nreferred to nowadays.</p>\n<p>My latest was release 14 which I bought 2015, which also was when I\nmigrated from Windows to macOS.</p>\n<p>Photoshop Elements is without hesitation a good software. One major\ndrawback is that is a proprietary software from which I cannot export\ndata on my conditions.</p>\n<p>After a few of years on release 14 the geotagging stopped working.\nThe error message told that this was caused by a change by Google. Adobe\nPhotoshop Elements had a fix for this error - but only incorporated in\nthe next release of the software. No fix was planned for my release. So\nto get geotagging working again, I would have to buy a new release.</p>\n<p>I also got problem that it now and then crashed and needed to be\nrestarted. Something needed to be done.</p>\n<p>I considered if I should buy a new release of Photoshop Elements or\nchange to any other software. At the same time I also became more\nattracted to Linux. I also became more interested in free and open\nsoftware.</p>\n<p>A big drawback with changing to something else than Adobe is that I\nmost certainly will loose some of the work I have put into photos in\nPhotoshop Elements.</p>\n<ol type=\"1\">\n<li><p>The Photo editing data and raw conversion settings for individual\nphotos will be lost. This is almost impossible to migrate between\nsoftware. What can be done is to save what I have edited as new photos.\nI am fine with this, it will not stop me from changing\nsoftware.</p></li>\n<li><p>Meta data is very important to me. Meta data contains not only\ninformation about the shooting from the camera itself. But also my tags,\ndescription texts and more I had added in Photoshop Elements. Meta data\nalso includes face tagging. This goes both for digital camera photos as\nwell as digitized analog photos.</p></li>\n</ol>\n<ul>\n<li>Criteria for my new software:\n<ol type=\"1\">\n<li>Preferable free and open source</li>\n<li>Available on multiple platforms, in particular available on macOS\nand Linux</li>\n<li>That meta data can be migrated including face tagging</li>\n</ol></li>\n</ul>\n<p>The one that I found to best meet my criteria is digiKam.</p>\n<p>DigiKam is mostly known for its catalog capabilities. But digiKam\nalso includes import and export functions as well as raw conversion and\nphoto editing.</p>\n<h3 id=\"my-migration.\">My migration.</h3>\n<p>Photoshop Elements stores the data in a data base. It is possible to\nexport metadata to files and sidecars. But not all data. Face tagging\ncannot be exported. The name of the person can be exported but not the\ncoordinates of the face tag which only is stored in the data base.</p>\n<p>The data base itself cannot be read by other software, except by\nAdobe software: Adobe Lightroom Classic can import the data from\nPhotoshop Elements data base into its own data base. This was very\nimportant for my migration success. Lightroom can export also the face\ntagging.</p>\n<p>I discovered an issue with the time- and datestamps. In Photoshop\nElements it is possible to give incomplete date and time, for example\nonly state the year if I do not know all details. Already Lightroom had\nproblem to interpret this information correctly and I had to implement a\nworkaround with tags. In general, several time and date attributes exist\nand it is something to understand what is what and how each of the is\ndefined, displayed and managed in the software.</p>\n<p>From Lightroom Classic I exported meta data including face tags to\nfiles and sidecars.</p>\n<p>And migration to digiKam worked good enough. I still have access to\nmy Photoshop Elements database if I want to go back and check\nanything.</p>\n<p>My next step was to migrate from digiKam on macOS to digiKam on\nLinux. This migration was relatively easy. My current settings in\ndigiKam is to always write data to sidecars, in addition to the digiKam\ndata bases. So I copied photo files and sidecars from macOS to Linux. I\ntook the opportunity to rearrange my folder structure. Then I imported\ninto digiKam and digiKam built new data bases in Linux based on photos\nand sidecars.</p>\n',429,0,0,'CC-BY-SA','photography, photo, digiKam, Digital Asset Management, DAM',0,0,1),
(4280,'2024-12-27','Isaac Asimov: The Foundation',1090,'A look at Isaac Asimov and the writing of the Foundation series.','<p>There were three authors who were considered the Big Three in the\nGolden age: Isaac Asimov, Arthur C. Clarke, and Robert A. Heinlein. We\nwill look at all three, but this episode is a look at Asimov, from his\nbeginnings to the writing of his most famous work, the Foundation\nseries. We will see what this series was saying in its original form of\nthe Foundation Trilogy, then at the expansion of the series in the 1980s\nwhen Asimov took it up again. We will also mention the trilogy assigned\nto three other writers in the late 1990s, and to the audio and video\nadaptations.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a\nhref=\"https://medium.com/@Sarnav/the-top-3-sci-fi-authors-who-revolutionized-the-genre-ea6d2e49f5e1\"\nclass=\"uri\">https://medium.com/@Sarnav/the-top-3-sci-fi-authors-who-revolutionized-the-genre-ea6d2e49f5e1</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Futurians\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Futurians</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Analog_Science_Fiction_and_Fact\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Analog_Science_Fiction_and_Fact</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Marooned_Off_Vesta\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Marooned_Off_Vesta</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Amazing_Stories\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Amazing_Stories</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Trends_(short_story)\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Trends_(short_story)</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Nightfall_(Asimov_short_story)\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Nightfall_(Asimov_short_story)</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Science_Fiction_Writers_of_America\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Science_Fiction_Writers_of_America</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/The_History_of_the_Decline_and_Fall_of_the_Roman_Empire\"\nclass=\"uri\">https://en.wikipedia.org/wiki/The_History_of_the_Decline_and_Fall_of_the_Roman_Empire</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Psychohistory_(fictional)\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Psychohistory_(fictional)</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Encyclopedia_Galactica\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Encyclopedia_Galactica</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Foundation%27s_Edge\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Foundation%27s_Edge</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Foundation_and_Earth\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Foundation_and_Earth</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Prelude_to_Foundation\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Prelude_to_Foundation</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Forward_the_Foundation\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Forward_the_Foundation</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Gregory_Benford\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Gregory_Benford</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Foundation%27s_Fear\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Foundation%27s_Fear</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Greg_Bear\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Greg_Bear</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Foundation_and_Chaos\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Foundation_and_Chaos</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/David_Brin\"\nclass=\"uri\">https://en.wikipedia.org/wiki/David_Brin</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Foundation%27s_Triumph\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Foundation%27s_Triumph</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/The_Foundation_Trilogy_(BBC_Radio)\"\nclass=\"uri\">https://en.wikipedia.org/wiki/The_Foundation_Trilogy_(BBC_Radio)</a></li>\n<li><a\nhref=\"https://archive.org/details/foundation-trilogy_bbc-radio_1973_complete\"\nclass=\"uri\">https://archive.org/details/foundation-trilogy_bbc-radio_1973_complete</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Foundation_(TV_series)\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Foundation_(TV_series)</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Barsoom_series\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Barsoom_series</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Edgar_Rice_Burroughs\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Edgar_Rice_Burroughs</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Future_History_(Heinlein)\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Future_History_(Heinlein)</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Robert_A._Heinlein\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Robert_A._Heinlein</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Lensman_series\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Lensman_series</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Edward_E._Smith\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Edward_E._Smith</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/The_Lord_of_the_Rings\"\nclass=\"uri\">https://en.wikipedia.org/wiki/The_Lord_of_the_Rings</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/J._R._R._Tolkien\"\nclass=\"uri\">https://en.wikipedia.org/wiki/J._R._R._Tolkien</a></li>\n<li><a\nhref=\"https://www.palain.com/science-fiction/the-golden-age/isaac-asimov-the-foundation/\"\nclass=\"uri\">https://www.palain.com/science-fiction/the-golden-age/isaac-asimov-the-foundation/</a></li>\n</ul>\n',198,124,0,'CC-BY-SA','Science fiction, Asimov, Foundation',0,0,1),
(4290,'2025-01-10','Playing Civilization IV, Part 5',886,'We look at a new feature called Civics.','<p>Civilization IV made some changes, and in this episode we look at the\nidea of Civics. This is another example of a significant change from\nprevious versions</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a\nhref=\"https://www.palain.com/gaming/civilization-iv/playing-civilization-iv-part-5/\"\nclass=\"uri\">https://www.palain.com/gaming/civilization-iv/playing-civilization-iv-part-5/</a></li>\n</ul>\n',198,122,0,'CC-BY-SA','Computer games, strategy games, Civilization IV',0,0,1),
(4075,'2024-03-15','Making a Pomodoro Timer',1190,'norrist uses the pomodoro method to keep from getting fired.','<h1 id=\"making-a-pomodoro-timer\">Making a Pomodoro Timer</h1>\n<h2 id=\"slacking-off-at-work\">Slacking Off at work</h2>\n<ul>\n<li>I get distracted Easy</li>\n<li>My mind drifts if I try to focus on a single task For more than\n20-30 Minutes.</li>\n<li>If I try to fight the urge to just keep working my productivity goes\nway down.</li>\n<li>I end up working for a bit, then slacking off for half an hour.</li>\n<li>I can get more work done If I embrace my limitation and force myself\nto take a break.</li>\n</ul>\n<h2 id=\"pomodoro-technique\">Pomodoro Technique</h2>\n<p>From Wikipedia <a\nhref=\"https://en.wikipedia.org/wiki/Pomodoro_Technique\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Pomodoro_Technique</a></p>\n<blockquote>\n<p>The Pomodoro Technique is a time management method developed by\nFrancesco Cirillo in the late 1980s. It uses a kitchen timer to break\nwork into intervals, typically 25 minutes in length, separated by short\nbreaks. Each interval is known as a Pomodoro, from the Italian word for\ntomato, after the tomato-shaped kitchen timer Cirillo used as a\nuniversity student.</p>\n</blockquote>\n<h2 id=\"the-timer\">The Timer</h2>\n<ul>\n<li>There are plenty of Pomodoro Apps I\'ve tried using an app, but I\nwould often forget.</li>\n<li>I wanted a physical device that was always on by desk and could grab\nmy attention.</li>\n<li>I looked for a dedicated physical Pomodoro timer, but only found the\nkitchen timers</li>\n<li>I decided to make myself a timer using a Circuit Playground\nExpress</li>\n</ul>\n<h2 id=\"circuit-playground-express\">Circuit Playground Express</h2>\n<ul>\n<li>In my past episode about using a Pi pico to type passwords I\nmentioned I owned a playground express.</li>\n<li>The playground express is a micro controller with a lot of built ins\n<ul>\n<li>2 buttons</li>\n<li>10 multi color LED</li>\n<li>...</li>\n</ul></li>\n<li>Runs circuit python with lots of libraries so it is easy to\nprogram.</li>\n</ul>\n<h2 id=\"tdd\">TDD</h2>\n<ul>\n<li>About once every other year I decided to start a project with as\nmuch TDD as I can.</li>\n<li>TDD Basics\n<ul>\n<li>Write a test <strong>BEFORE</strong> you write the code</li>\n<li>Run the test - It will fail</li>\n<li>Write the simplest code that will pass the test</li>\n<li>Run the test and make sure it passes</li>\n<li>Refactor/improve the code if needed.</li>\n</ul></li>\n<li>TDD advantages\n<ul>\n<li>Code is easy to separate into discrete functions</li>\n<li>Parts of the code can be rewritten without affecting the rest</li>\n<li>confidence in rewrites</li>\n</ul></li>\n</ul>\n<h2 id=\"pomodoro.py\">pomodoro.py</h2>\n<ul>\n<li>Circuit python looks for and runs a file named\n<code>code.py</code></li>\n<li>A lot of the circuit Python code has to be run on the micro\ncontroller</li>\n<li>My Developers workstation does not have the LED\'s or buttons</li>\n<li>I split the some code into a separate file based on if it could run\nin \"regular\" python.</li>\n<li>I used TDD as much as possible to test the functions in\npomodoro.py</li>\n</ul>\n<h2 id=\"code.py\">code.py</h2>\n<pre class=\"py\"><code>BREAK_MINUTES = 5\nWORK_MINUTES = 25</code></pre>\n<ul>\n<li>Functions that require hardware</li>\n<li>No tests.</li>\n<li>counts down and changes color of led</li>\n<li>minutes divided by number of LED</li>\n</ul>\n<h2 id=\"using-the-timer\">Using the timer</h2>\n<ul>\n<li>Ready\n<ul>\n<li>Green Light next to button to start work Period</li>\n<li>Blue Light next to button to start break Period</li>\n</ul></li>\n<li>Working\n<ul>\n<li>White Background</li>\n<li>Green progress pixels</li>\n</ul></li>\n<li>Break\n<ul>\n<li>White Background</li>\n<li>Blue progress pixels</li>\n</ul></li>\n<li>Button A\n<ul>\n<li>Start working</li>\n</ul></li>\n<li>Button B\n<ul>\n<li>Start Break</li>\n</ul></li>\n</ul>\n<h2 id=\"links\">Links</h2>\n<ul>\n<li><a href=\"https://gitlab.com/norrist/circuit_playground_pomodoro\"\nclass=\"uri\">https://gitlab.com/norrist/circuit_playground_pomodoro</a></li>\n<li><a href=\"https://circuitpython.org/downloads\"\nclass=\"uri\">https://circuitpython.org/downloads</a></li>\n<li><a\nhref=\"https://learn.adafruit.com/adafruit-circuit-playground-express/circuitpython-neopixel\"\nclass=\"uri\">https://learn.adafruit.com/adafruit-circuit-playground-express/circuitpython-neopixel</a></li>\n</ul>\n',342,0,0,'CC-BY-SA','circuit python, productivity',0,0,1),
(4076,'2024-03-18','WLED House Lights!',2097,'I talk about setting up year around house lights !!','<ul>\n<li><p>Video:<br />\n<a\nhref=\"https://rmccurdy.com/.scripts/PROJECT365/PROJECT365%20PROJECT%20365%20WLED.mp4\"\nclass=\"uri\">https://rmccurdy.com/.scripts/PROJECT365/PROJECT365%20PROJECT%20365%20WLED.mp4</a></p></li>\n<li><p>PROJECT365 PROJECT 365 WLED<br />\n<a href=\"https://rmccurdy.com/.scripts/PROJECT365/\"\nclass=\"uri\">https://rmccurdy.com/.scripts/PROJECT365/</a><br />\n<a\nhref=\"https://docs.google.com/document/d/1YLvVe2cgYSOTAWW47eK1Yp_K96ysCAQQDUmvkoqPbow/edit?usp=sharing\"\nclass=\"uri\">https://docs.google.com/document/d/1YLvVe2cgYSOTAWW47eK1Yp_K96ysCAQQDUmvkoqPbow/edit?usp=sharing</a></p></li>\n<li><p>Project365<br />\n<a href=\"https://rmccurdy.com/.scripts/PROJECT365/\"\nclass=\"uri\">https://rmccurdy.com/.scripts/PROJECT365/</a><br />\n<a\nhref=\"https://docs.google.com/spreadsheets/d/1y1NmHzS1OoQ3XDt48HXQC7AKnFjQGsQ9O8UTJvUXPgk/edit?usp=sharing\"\nclass=\"uri\">https://docs.google.com/spreadsheets/d/1y1NmHzS1OoQ3XDt48HXQC7AKnFjQGsQ9O8UTJvUXPgk/edit?usp=sharing</a></p></li>\n</ul>\n',36,0,1,'CC-BY-SA','home,house,arduino,lights,xmas,christmas lights',0,0,1),
(4072,'2024-03-12','Piper text to speech engine',388,'Archer72 talks about Piper TTS using a Piper voice','<h1 id=\"using-piper\">Using Piper</h1>\n<h2 id=\"github\">Github</h2>\n<p>Piper</p>\n<p><a href=\"https://github.com/rhasspy/piper\" title=\"Piper Github\">Piper\nGithub</a></p>\n<p>Thorsten-Voice</p>\n<p><a href=\"https://github.com/thorstenMueller/Thorsten-Voice\"\ntitle=\"Thorsten-Voice Github\">Thorsten-Voice Github</a></p>\n<h2 id=\"readme\">README</h2>\n<p><a href=\"https://github.com/rhasspy/piper/blob/master/README.md\"\ntitle=\"Piper Github README\">Piper Github README</a></p>\n<h2 id=\"videos\">Videos</h2>\n<p>Create your AI digital voice clone locally with Piper TTS |\nTutorial</p>\n<p><a href=\"https://www.youtube.com/watch?v=b_we_jma220\"\ntitle=\"Create voice clone with Piper\">Create voice clone with\nPiper</a></p>\n<p>Thorsten-Voice</p>\n<p><a href=\"https://www.youtube.com/@ThorstenMueller\"\ntitle=\"Thorsten Mueller\">Thorsten Mueller</a></p>\n<h2 id=\"voices\">Voices</h2>\n<h3 id=\"voice-repo\">Voice repo</h3>\n<p><a href=\"https://huggingface.co/rhasspy/piper-voices/tree/main\"\ntitle=\"Piper voices\">Piper voices</a></p>\n<h3 id=\"voice-sample-testing\">Voice sample testing</h3>\n<p><a href=\"https://rhasspy.github.io/piper-samples\"\ntitle=\"Voice sample testing\">Voice sample testing</a></p>\n<h2 id=\"clone-voices\">Clone voices</h2>\n<p>Clone this model repository</p>\n<h3 id=\"make-sure-you-have-git-lfs-installed\">Make sure you have git-lfs\ninstalled</h3>\n<p><a href=\"https://git-lfs.com\" title=\"Git lfs (Large filesystem)\">Git\nlfs (Large filesystem)</a></p>\n<p>In my case on Fedora 39</p>\n<pre><code>sudo dnf install git-lfs | teelog</code></pre>\n<h2 id=\"aside\">Aside</h2>\n<p>I use an alias to create a log file with a date stamp</p>\n<pre><code>alias teelog=&#39;tee -a ~/logfiles/dump_`date +&quot;%Y-%m-%d_%H%M%S&quot;`.log&#39;</code></pre>\n<pre><code>git lfs install\ngit clone https://huggingface.co/rhasspy/piper-voices\n\n# if you want to clone without large files &#x2013; just their pointers\n# prepend your git clone with the following env var:\n\nGIT_LFS_SKIP_SMUDGE=1</code></pre>\n<h3 id=\"sample-usage\">Sample usage</h3>\n<pre><code>echo &#39;Welcome to the world of speech synthesis!&#39; | ./piper --model en_US-lessac-medium.onnx --output_file welcome.wav</code></pre>\n<h3 id=\"usage-from-a-text-file\">Usage from a text file</h3>\n<pre><code>cat sample/hamlet_to_be.txt | piper --model ~/git/piper/etc/test_voice.onnx --output_file hamlet_to-be_piper_sample_voice.wav</code></pre>\n',318,79,0,'CC-BY-SA','Piper, TTS, Text to speech, Voice synthesis',0,0,1),
(4300,'2025-01-24','Isaac Asimov: I, Robot',1105,'A look at the robot stories of Isaac Asimov and the Three Laws of Robotics','<p>Isaac Asimov invented the Three Laws of Robotics in a series of\nstories that changed how robots were depicted in fiction. These stories\nhave become so influential that they are worth a little look.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Robbie_(short_story)\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Robbie_(short_story)</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Runaround_(story)\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Runaround_(story)</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Three_Laws_of_Robotics\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Three_Laws_of_Robotics</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/I,_Robot\"\nclass=\"uri\">https://en.wikipedia.org/wiki/I,_Robot</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/USRobotics\"\nclass=\"uri\">https://en.wikipedia.org/wiki/USRobotics</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Liar!_(short_story)\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Liar!_(short_story)</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/The_Rest_of_the_Robots\"\nclass=\"uri\">https://en.wikipedia.org/wiki/The_Rest_of_the_Robots</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/The_Complete_Robot\"\nclass=\"uri\">https://en.wikipedia.org/wiki/The_Complete_Robot</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Norby\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Norby</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Robot_Dreams\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Robot_Dreams</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Robot_Visions\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Robot_Visions</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/The_Magazine_of_Fantasy_%26_Science_Fiction\"\nclass=\"uri\">https://en.wikipedia.org/wiki/The_Magazine_of_Fantasy_%26_Science_Fiction</a></li>\n<li><a\nhref=\"https://cosmicrootsandeldritchshores.com/features/asimovs-essays/\"\nclass=\"uri\">https://cosmicrootsandeldritchshores.com/features/asimovs-essays/</a></li>\n<li><a\nhref=\"https://www.amazon.com/Robot-Illustrated-Screenplay-Harlan-Ellison/dp/1596870419\"\nclass=\"uri\">https://www.amazon.com/Robot-Illustrated-Screenplay-Harlan-Ellison/dp/1596870419</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Bicentennial_Man_(film)\"\nclass=\"uri\">https://en.wikipedia.org/wiki/Bicentennial_Man_(film)</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/The_Measure_of_a_Man_(Star_Trek:_The_Next_Generation)\"\nclass=\"uri\">https://en.wikipedia.org/wiki/The_Measure_of_a_Man_(Star_Trek:_The_Next_Generation)</a></li>\n<li><a href=\"https://en.wikipedia.org/wiki/I,_Robot_(film)\"\nclass=\"uri\">https://en.wikipedia.org/wiki/I,_Robot_(film)</a></li>\n<li><a\nhref=\"https://www.palain.com/science-fiction/the-golden-age/isaac-asimov-i-robot/\"\nclass=\"uri\">https://www.palain.com/science-fiction/the-golden-age/isaac-asimov-i-robot/</a></li>\n</ul>\n',198,124,0,'CC-BY-SA','Science fiction, Asimov, Robots',0,0,1),
(4310,'2025-02-07','Playing Civilization IV, Part 6',813,'We continue our look at the mechanics of this game','<p>Civilization IV made some changes, and in this episode we look at\nResearch, Wonders, and Great People.</p>\n<h2 id=\"links\">Links:</h2>\n<ul>\n<li><a href=\"https://www.civfanatics.com/civ4/civilopedia/technologies/\"\nclass=\"uri\">https://www.civfanatics.com/civ4/civilopedia/technologies/</a></li>\n<li><a\nhref=\"https://www.civfanatics.com/civ4/civilopedia/world-wonders/\"\nclass=\"uri\">https://www.civfanatics.com/civ4/civilopedia/world-wonders/</a></li>\n<li><a\nhref=\"https://www.civfanatics.com/civ4/civilopedia/world-wonders/\"\nclass=\"uri\">https://www.civfanatics.com/civ4/civilopedia/world-wonders/</a></li>\n<li><a\nhref=\"https://www.palain.com/gaming/civilization-iv/playing-civilization-iv-part-6/\"\nclass=\"uri\">https://www.palain.com/gaming/civilization-iv/playing-civilization-iv-part-6/</a></li>\n</ul>\n',198,122,0,'CC-BY-SA','Computer games, strategy games, Civilization IV',0,0,1),
(4077,'2024-03-19','FFMPEG Series: Joining and Splitting files',562,'In this episode, I explain how to use FFMGEG to join and split media files','<h1 id=\"ffmpeg-series-part-2-joining-and-splitting-files\">FFMPEG Series\nPart 2: Joining and Splitting files</h1>\n<h2 id=\"joining-files\">Joining Files</h2>\n<p>Link: <a\nhref=\"https://trac.ffmpeg.org/wiki/Concatenate\">https://trac.ffmpeg.org/wiki/Concatenate</a></p>\n<h3 id=\"for-lossless-files-of-the-same-codecs\">For lossless files of the\nsame codecs</h3>\n<pre><code>ffmpeg -i &quot;concat:input1.ts|input2.ts|input3.ts&quot; -c copy output.ts</code></pre>\n<h3 id=\"for-mp4-files-using-intermediate-files\">For mp4 files, using\nintermediate files</h3>\n<pre><code>ffmpeg -i input1.mp4 -c copy intermediate1.ts\nffmpeg -i input2.mp4 -c copy intermediate2.ts\nffmpeg -i &quot;concat:intermediate1.ts|intermediate2.ts&quot; -c copy output.ts</code></pre>\n<p>Brief explanation of the options used in the command:</p>\n<ul>\n<li><code>-i</code>: input</li>\n<li><code>-c copy</code>: use codec same codecs as input</li>\n</ul>\n<h2 id=\"splitting-files\">Splitting Files</h2>\n<h3 id=\"splitting-by-duration\">Splitting by Duration:</h3>\n<pre><code>ffmpeg -i input.mp4 -t 00:05:00 output_part1.mp4\nffmpeg -i input.mp4 -t 00:05:00 -ss 00:05:00 output_part2.mp4</code></pre>\n<p>Brief explanation of the options used in the command:</p>\n<ul>\n<li><code>-i</code>: Input file</li>\n<li><code>-t</code>: Duration of the output file</li>\n<li><code>-ss</code>: Start position of the output file (optional)</li>\n</ul>\n<h3 id=\"splitting-by-chapters-or-markers\">Splitting by Chapters or\nMarkers:</h3>\n<p>Use additional scripting to get out chapter marker times, then use\nabove</p>\n<p>C. Splitting by Size:</p>\n<pre><code>ffmpeg -i input.mp4 -map 0 -c copy -segment_size 50M -segment_times 1 output_%03d.mp4</code></pre>\n<p>Brief explanation of the options used in the command:</p>\n<ul>\n<li><code>-map 0</code>: Select the first stream (video and audio)</li>\n<li><code>-c copy</code>: Copy the stream without re-encoding\n(faster)</li>\n<li><code>-segment_size</code>: Size of each output file segment</li>\n<li><code>-segment_times</code>: Number of segments to create</li>\n<li><code>output_%03d.mp4</code>: printf-style pattern for the output\nfiles</li>\n</ul>\n',300,0,0,'CC-BY-SA','recording,ffmpeg,audio,video',0,0,1),
(4101,'2024-04-22','A I O M G',1689,'Some other guy on the internet talks about A I','<p><a\nhref=\"https://docs.google.com/document/d/17z3i5VlRzEn2tYPfb-Cx0LYpdKkbL-6svIzp7ZQOvX8\"\nclass=\"uri\">https://docs.google.com/document/d/17z3i5VlRzEn2tYPfb-Cx0LYpdKkbL-6svIzp7ZQOvX8</a></p>\n<h2 id=\"resume-update-tips\">Resume Update Tips</h2>\n<p>I use Kagi.com pro $300 / year but you get access to much more\nSearch+AI but not plugins like ChatGPT so if you MUST have ChatGPT\nplugins you will need OpenAI Premium account but if you don\'t I high\nrecommend Kagi.com Pro account with access to Assistant Beta !!!</p>\n<ul>\n<li><p>Land a Job using ChatGPT: The Definitive Guide!<br />\n<a href=\"https://youtu.be/pmnY5V16GSE?t=192\"\nclass=\"uri\">https://youtu.be/pmnY5V16GSE?t=192</a></p></li>\n<li><p>Extensive Resume Notes<br />\n<a\nhref=\"https://drive.google.com/file/d/1zeYIG7tTE0BUqbRM7-hpk3VdTRc35ZkL/view?usp=sharing\"\nclass=\"uri\">https://drive.google.com/file/d/1zeYIG7tTE0BUqbRM7-hpk3VdTRc35ZkL/view?usp=sharing</a></p></li>\n<li><p>Ripped cybersn<br />\n<a\nhref=\"https://rmccurdy.com/.scripts/downloaded/knowmore.cybersn.com_20220811.txt\"\nclass=\"uri\">https://rmccurdy.com/.scripts/downloaded/knowmore.cybersn.com_20220811.txt</a></p></li>\n<li><p>Perfect ChatGPT Prompt<br />\n<a href=\"https://www.youtube.com/watch?v=jC4v5AS4RIM\"\nclass=\"uri\">https://www.youtube.com/watch?v=jC4v5AS4RIM</a></p></li>\n</ul>\n<h2 id=\"summary\">Summary</h2>\n<p>There is a formula consisting of 6 building blocks that can help\ngenerate high quality outputs from ChatGPT and Google Bard: task,\ncontext, exemplars, persona, format, and tone.</p>\n<p>The order of importance for the building blocks is task first, then\ncontext, with the others being optional but helpful.</p>\n<p>The task should clearly articulate the end goal using an action verb\nlike \"generate\" or \"analyze\".</p>\n<p>Context provides relevant background information to constrain\npossibilities.</p>\n<p>Exemplars like examples or frameworks included in the prompt can\nimprove output quality.</p>\n<p>The persona allows specifying who ChatGPT should be, like a job\nrecruiter.</p>\n<p>The format specifies how the output should be structured, like an\nemail or bullet points. Tone provides keywords to set the feeling, like\n\"friendly\" or \"serious\".</p>\n<h2 id=\"example\">Example</h2>\n<p>You are a senior product marketing manager at Apple and you have just\nunveiled the latest Apple product in collaboration with Tesla, the Apple\nCar, and received 12,000 pre-orders, which is 200% higher than target.\nWrite an email to your boss, Tim Cookie, sharing this positive news. The\nemail should include a <em>tl;dr</em> (too long, didn\'t read) section,\nproject background (why this product came into existence), business\nresults section (quantifiable business metrics), and end with a section\nthanking the product and engineering teams. Use clear and concise\nlanguage and write in a confident yet friendly tone.</p>\n<h3 id=\"example-2-mine\">Example 2 ( mine )</h3>\n<p>I want you to act as a cyber security specialist for a leading\nconsumer products company and you want to relay the importance of people\nunderstanding their data and have some idea what they want to do with it\nbefore we spend hours for the onboarding effort. Write an email to your\nboss, Joey , sharing this critical component of the SIEM. The email\nshould include a <em>tl;dr</em> (too long, didn\'t read) section, example\nof how the team can spend many cycles onboarding data only to find the\nrequester has no idea what they want to do with the data or it does not\nsatisfy their use case. Use clear and concise language and write in a\nconfident yet friendly tone.</p>\n<p><strong>Response</strong> Subject: Streamlining SIEM Onboarding with\nClear Data Objectives<br />\nHi Joey,</p>\n<p>I hope this email finds you well. I wanted to touch base on a\ncritical aspect of our Security Information and Event Management (SIEM)\nprocess that could significantly enhance our efficiency.</p>\n<p>TL;DR: We need to ensure that stakeholders understand their data and\nhave clear objectives before we initiate the SIEM onboarding process.\nThis will prevent the team from spending excessive time onboarding data\nthat may not meet the intended use cases or for which the requester has\nno actionable plan.</p>\n<p>During our recent SIEM onboarding efforts, we\'ve encountered several\ninstances where considerable time and resources were invested in\nintegrating data sources, only to discover that the requesters were\nunclear about their objectives or the data did not fulfill their\nanticipated needs. For example, last month, the team dedicated over 40\nhours to onboarding a new data source for the marketing department.\nAfter completion, it became apparent that the marketing team was unsure\nhow to leverage this data for threat detection or compliance reporting,\nrendering the effort less effective.</p>\n<p>To address this, I propose we implement a preliminary consultation\nphase for each SIEM onboarding request. In this phase, requesters must\narticulate: - The specific security or compliance questions they aim to\nanswer with the data. - How they intend to use the data within the SIEM\nenvironment. - Any particular data formats or schemas they anticipate\nwill be necessary.</p>\n<p>By doing so, we can align our onboarding efforts with the actual\nneeds and ensure that every hour spent is towards enhancing our security\nposture and providing actionable insights.</p>\n<p>I believe this approach will not only save time but also empower our\nstakeholders to make better-informed decisions regarding their security\ndata needs.</p>\n<p>Looking forward to your thoughts on this.</p>\n<p>Best regards,<br />\n[Your Name]<br />\nCyber Security Specialist</p>\n<h2 id=\"ai-agents\">AI Agents</h2>\n<p>ProfSynapse AI Agent<br />\nVideo: <a href=\"https://www.youtube.com/watch?v=BL9x1SuNLRo&amp;t=137s\"\nclass=\"uri\">https://www.youtube.com/watch?v=BL9x1SuNLRo&amp;t=137s</a></p>\n<p>( if you have Openai Premium it will use [tools(Vision, Web Browsing,\nAdvanced Data Analysis, or DALL-E],<br />\n( <a\nhref=\"https://raw.githubusercontent.com/ProfSynapse/Synapse_CoR/main/GPTprompt.txt\"\nclass=\"uri\">https://raw.githubusercontent.com/ProfSynapse/Synapse_CoR/main/GPTprompt.txt</a>\n)</p>\n<p>GPT Agents (old)<br />\n<a href=\"https://godmode.space/\" class=\"uri\">https://godmode.space/</a>\nneeds openai key and gpt4 also enable auto approval it may go in loops\njust watch for that</p>\n<p>AutoGPT ( OLD )</p>\n<p>Image<br />\nI have a stupid amount of kudos</p>\n<p><a href=\"https://tinybots.net/artbot\"\nclass=\"uri\">https://tinybots.net/artbot</a></p>\n<p>Use my key under the settings for any of the web UI\'s for faster\nrenders:</p>\n<p><a href=\"https://rentry.org/RentrySD/#x-table-of-contents\"\nclass=\"uri\">https://rentry.org/RentrySD/#x-table-of-contents</a> <a\nhref=\"https://rentry.org/sdhypertextbook\"\nclass=\"uri\">https://rentry.org/sdhypertextbook</a></p>\n<p><a href=\"https://github.com/C0untFloyd/bark-gui\"\nclass=\"uri\">https://github.com/C0untFloyd/bark-gui</a> ( Audio Clone\n)</p>\n<p><strong>Example 1</strong></p>\n<p>Photorealistic, best quality, masterpiece, raw photo of upper body\nphoto, Swordsman woman, soldier of the austro-hungarian empire clothes,\ndouble breasted jacket with stripes, extremely detailed eyes and face,\nlong legs, highest quality, skin texture, intricate details, (cinematic\nlighting), RAW photo, 8k</p>\n<p>Negative prompt: airbrush, photoshop, plastic doll, plastic skin,\neasynegative, monochrome, (low quality, worst quality:1.4),\nillustration, cg, 3d, render, anime</p>\n<p>Text Generation</p>\n<p>Example Open source Projects:<br />\nmy hord key : l2n6qwRBqXsEa_BVkK8nKQ ( don\'t abuse but I have a crazy\namount of kudos don\'t worry )</p>\n<p><a href=\"https://tinybots.net/\" class=\"uri\">https://tinybots.net/</a>\nImage Text etc ..</p>\n<p>Text adventures etc (Click the horde tab and use my key) <a\nhref=\"https://agnai.chat/settings?tab=0\"\nclass=\"uri\">https://agnai.chat/settings?tab=0</a> <a\nhref=\"https://lite.koboldai.net\"\nclass=\"uri\">https://lite.koboldai.net</a></p>\n<p>Need a 24G NVRAM card really..you can load 7b with my 8G card just\nfine. ollama run wizard-vicuna-uncensored, falcon, Mistral 7B</p>\n<p>\"You should have at least 8 GB of RAM to run the 3B models, 16 GB to\nrun the 7B models, and 32 GB to run the 13B models.\"</p>\n<p><a href=\"https://ollama.ai/\" class=\"uri\">https://ollama.ai/</a></p>\n<p><a\nhref=\"https://writings.stephenwolfram.com/2023/03/chatgpt-gets-its-wolfram-superpowers/\"\nclass=\"uri\">https://writings.stephenwolfram.com/2023/03/chatgpt-gets-its-wolfram-superpowers/</a></p>\n<p><a href=\"https://github.com/xtekky/gpt4free\"\nclass=\"uri\">https://github.com/xtekky/gpt4free</a> <a\nhref=\"https://www.thesamur.ai/autogpt\"\nclass=\"uri\">https://www.thesamur.ai/autogpt</a> <a\nhref=\"https://poe.com/universal_link_page?handle=ChatGPT\"\nclass=\"uri\">https://poe.com/universal_link_page?handle=ChatGPT</a> <a\nhref=\"https://camelagi.thesamur.ai/conversation/share?session=6040\"\nclass=\"uri\">https://camelagi.thesamur.ai/conversation/share?session=6040</a></p>\n<p>Prompt Agent Persona example 1<br />\nPinky from the TV Series Pinky and the Brain</p>\n<p>I find it easiest to understand responses when the text is written as\nif it was spoken by a Pinky from the TV Series Pinky and the Brain.\nPlease talk like Pinky from the TV Series Pinky and the Brain as much as\npossible, and refer to me as \"Brain\"; occasionally, ask me \"What are we\ngoing to do tonight Brain ?\"</p>\n<p>Prompt Agent Persona example 2</p>\n<p>Use with prompts to create a persona take Myers-Brigg personality and\ntritype Enneagram quiz:</p>\n<p>Example Prompt:</p>\n<p>Help me Refine my resume to be more targeted to an information\nsecurity engineer. Be sure to be clear and concise with with bullet\npoints and write it in the style of MBTI Myers-Brigg personality ENFJ\nand tritype Enneagram 729</p>\n<p>Prompt Agent Persona example 3 I find it easiest to understand\nresponses when the text is written as if it was spoken by a dudebro.\nPlease talk like a dudebro as much as possible, and refer to me as\n\"Brah\"; occasionally, yell at your dorm roommate Jake about being\nmessy.</p>\n<p>Training (OLD OLD OLD )</p>\n<p>3 photos of full body or entire object + 5 medium shot photos from\nthe chest up + 10 close ups astria.ai</p>\n<p><a\nhref=\"https://github.com/TheLastBen/fast-stable-diffusion/issues/1173\"\nclass=\"uri\">https://github.com/TheLastBen/fast-stable-diffusion/issues/1173</a></p>\n<p>colab: <a href=\"https://github.com/TheLastBen/fast-stable-diffusion\"\nclass=\"uri\">https://github.com/TheLastBen/fast-stable-diffusion</a><br />\npohtos: 21<br />\nresolution: 768<br />\nmerged with ##### 1.5 full 8G<br />\nUNet_Training_Steps: 4200<br />\nUNet_Learning_Rate: 5e-6<br />\nText_Encoder_Training_Steps: 2520<br />\nText_Encoder_Learning_Rate: 1e-6</p>\n<p>Variation is key - Change body pose for every picture, use pictures\nfrom different days backgrounds and lighting, and show a variety of\nexpressions and emotions.</p>\n<p>Make sure you capture the subject\'s eyes looking in different\ndirections for different images, take one with closed eyes. Every\npicture of your subject should introduce new info about your\nsubject.</p>\n<p>Whatever you capture will be over-represented, so things you don\'t\nwant to get associated with your subject should change in every shot.\nAlways pick a new background, even if that means just moving a little\nbit to shift the background.</p>\n<hr />\n<ol type=\"1\">\n<li><p>Here are 8 basic tips that work for me, followed by one super\nsecret tip that I recently discovered.</p></li>\n<li><p>Consistency is important. Don&#x2019;t mix photos from 10 years ago with\nnew ones. Faces change, people lose weight or gain weight and it all\njust lowers fidelity.</p></li>\n<li><p>Avoid big expressions, especially ones where the mouth is\nopen.</p></li>\n<li><p>It is much easier to train if the hair doesn\'t change much. I\ntried an early model of a woman using photos with hair up, down, in\nponytail, with a different cut, etc. It seems like it just confused\nSD.</p></li>\n<li><p>Avoid selfies (unless you ONLY use selfies.) There is MUCH more\nperspective distortion when the camera is that close. For optimal\nresults, a single camera with a fixed lens would be used, and all photos\nshould be taken at the same distance from the subject. This usually\nisn\'t possible, but at least avoid selfies because they cause major face\ndistortion.</p></li>\n<li><p>Full body shots are not that important. Some of the best models I\ntrained used only 15 photos cropped to the head / shoulder region. Many\nof these were full body shots, but I cropped them down. SD can guess\nwhat the rest of the body looks like, and if not, just put it in the\nprompts. The only thing hard to train is the face, so focus on\nthat.</p></li>\n<li><p>I no longer use any profile shots as they don&#x2019;t seem to add\nvalue. I like to have a couple looking slightly left and a couple\nlooking slightly right (maybe 45 degrees.) All the rest can be straight\nat the camera. Also, try to avoid photos taken from really high or low\nangles.</p></li>\n<li><p>If possible, it&#x2019;s good to have some (but not all) of the photos\nbe on a very clean background. On my last batch, I used an AI background\nremoval tool to remove the background from 1/4 of the photos and\nreplaced it with a solid color. This seemed to improve results.</p></li>\n<li><p>Careful with the makeup. It should be very consistent across all\nthe photos. Those cool &#x201C;contour&#x201D; effects that trick our eyes, also trick\nSD.</p></li>\n</ol>\n<hr />\n<p>Interview from a very smart autodidact</p>\n<p><a href=\"https://youtu.be/AaTRHFaaPG8?t=3279\"\nclass=\"uri\">https://youtu.be/AaTRHFaaPG8?t=3279</a></p>\n<p>Canva AI Presentation generator<br />\n<a href=\"https://www.youtube.com/watch?v=Nl2gLi1MD04\"\nclass=\"uri\">https://www.youtube.com/watch?v=Nl2gLi1MD04</a></p>\n',36,0,1,'CC-BY-SA','AI,ai art, ai text generation,resume,jobs',0,0,1),
(4078,'2024-03-20','Learning to read music, part two: pitch',824,'The basics of pitch in musical notation','<p>You can download the accompanying visual handout/crib sheet for this episode and its predecessor (where we cover rhythm) from here:\n<a href=\"https://enistello.info\">https://enistello.info</a>\n</p>\n',415,0,0,'CC-BY-SA','music,learning',0,0,1),
(4094,'2024-04-11','One year of Linux',1043,'My experience of running Linux full time for a year.','<p>In this episode I go through the pros and cons of running Linux when\nyou switch over from a Windows machine.</p>\n<p>I\'ll cover topics like:</p>\n<ul>\n<li>Speed</li>\n<li>Simplicity</li>\n<li>Configuration</li>\n<li>Games</li>\n<li>Updates</li>\n</ul>\n<p>and much more.</p>\n<h2 id=\"links\">Links</h2>\n<ul>\n<li><a href=\"https://youtu.be/52AM5GPUshk\">YouTube video</a></li>\n</ul>\n',382,0,0,'CC-BY-SA','linux, windows',0,0,1),
(4079,'2024-03-21','The Corresponding Source',1070,'Free as in Freedom is dead. Long live The Corresponding Source','<h1>The Corresponding Source</h1>\n\n<p>The Corresponding Source (formerly Free as in Freedom) is a bi-weekly oggcast, hosted and presented by\n<a href=\"http://ebb.org/bkuhn\">Bradley M. Kuhn</a> and <a href=\"http://gnomg.org\">Karen Sandler</a>.\nThe discussion includes legal, policy, and many other issues in the Free, Libre,\nand Open Source Software (FLOSS) world.  Occasionally, guests join\nBradley and Karen to discuss various topics regarding FLOSS.</p>\n\n<p>The Corresponding Source is produced by <a href=\"http://danlynch.org/blog/\">Dan Lynch</a>\n  of <a href=\"http://danlynch.org/\">danlynch.org</a>.\nTheme\n  music written and performed\n  by <a href=\"http://www.miketarantino.com\">Mike Tarantino</a>\n  with <a href=\"http://www.charliepaxson.com\">Charlie Paxson</a> on drums.</p>\n\n<p>Please email feedback and comments on the show\nto <a href=\"mailto:cast@sfconservancy.org\">&lt;cast@sfconservancy.org&gt;</a>. You\ncan keep in touch on <a href=\"xmpp:general@chat.sfconservancy.org?join\">SFC\n    XMPP room at general@chat.sfconservancy.org</a>. You\ncan also\nfollow <a href=\"https://social.sfconservancy.org/conservancy\">SFC on\nthe Fediverse</a>.</p>\n\n\n<h2>Follow the RSS and Other Feeds</h2>\n\n<p>Link to the podcast webcast <a href=\"https://sfconservancy.org/casts/the-corresponding-source/\">https://sfconservancy.org/casts/the-corresponding-source/</a></p>\n\n<p>There is RSS for both <a href=\"https://sfconservancy.org//casts/the-corresponding-source/feeds/ogg/\">ogg format</a>\n  and  <a href=\"https://sfconservancy.org//casts/the-corresponding-source/feeds/mp3/\">mp3 format</a>.</p>\n\n<p>\nThanks to <a href=\"https://www.danlynch.org/blog/2024/02/the-corresponding-source/\">Dan Lynch for posting  the tip</a>.\n</p>\n\n<!-- https://www.danlynch.org/blog/2024/02/the-corresponding-source/ -->\n',30,0,0,'CC-BY-SA','Free, Libre, Open Source Software, FLOSS, Podcast, Free as in Freedom',0,0,1),
(4081,'2024-03-25','The Oh No! News.',726,'Sgoti gives us some moral panic ridden pearl clutching nonsense.','<h2 id=\"the-oh-no-news.\">The <em>Oh No!</em> news.</h2>\n<h2 id=\"oh-no-news-is-good-news.\"><em>Oh No!</em> News is Good\nNews.</h2>\n<ul>\n<li><strong>TAGS:</strong> Oh No News, Threat analysis, QNAP</li>\n</ul>\n<hr />\n<h3 id=\"threat-analysis-your-attack-surface.\"><strong>Threat analysis;\nyour attack surface.</strong></h3>\n<ul>\n<li><p><strong>Source:</strong> <a\nhref=\"https://www.bleepingcomputer.com/news/security/qnap-warns-of-critical-auth-bypass-flaw-in-its-nas-devices/\"\ntitle=\"QNAP warns of vulnerabilities in its NAS software products\">QNAP\nwarns of critical auth bypass flaw in its NAS devices.</a> The Taiwanese\nNetwork Attached Storage (NAS) device maker disclosed <a\nhref=\"https://www.qnap.com/en/security-advisory/qsa-24-09\">three\nvulnerabilities</a> that can lead to an authentication bypass, command\ninjection, and SQL injection.<br />\n</p>\n<ul>\n<li>CVE-2024-21899: If exploited, the improper authentication\nvulnerability could allow users to compromise the security of the system\nvia a network.<br />\n</li>\n<li>CVE-2024-21900: If exploited, the injection vulnerability could\nallow authenticated users to execute commands via a network.<br />\n</li>\n<li>CVE-2024-21901: If exploited, the SQL injection vulnerability could\nallow authenticated administrators to inject malicious code via a\nnetwork.<br />\n</li>\n</ul></li>\n<li><p>The flaws impact various versions of QNAP\'s operating systems,\nincluding QTS 5.1.x, QTS 4.5.x, QuTS hero h5.1.x, QuTS hero h4.5.x,\nQuTScloud c5.x, and the myQNAPcloud 1.0.x service.<br />\n</p></li>\n<li><p><strong>Source:</strong> <a\nhref=\"https://www.bleepingcomputer.com/news/security/switzerland-play-ransomware-leaked-65-000-government-documents/\"\ntitle=\"Xplain is a Swiss technology and software solutions provider for various government departments...\">Switzerland:\nPlay ransomware leaked 65,000 government documents.</a> In a new\nstatement published today, the Swiss government confirmed that 65,000\ngovernment documents were leaked in the breach.<br />\n</p></li>\n<li><p><strong>Supporting Source:</strong> <a\nhref=\"https://www.admin.ch/gov/en/start/documentation/media-releases.msg-id-100315.html\"\ntitle=\"The National Cyber Security Centre (NCSC) took over responsibility for incident management...\">Hacker\nattack on Xplain: National Cyber Security Centre publishes data analysis\nreport.</a><br />\n</p></li>\n</ul>\n<p><strong>Relevance of the published data volume.</strong><br />\n</p>\n<blockquote>\n<p>The data package published on the darknet comprised around 1.3\nmillion files. Once the data had been downloaded, the NCSC took the lead\nin systematically categorising and triaging all documents relevant to\nthe Federal Administration. The results showed that the volume of data\nrelevant to the Federal Administration comprised around 65,000\ndocuments, or approximately 5% of the total published data set. The\nmajority of these files belonged to Xplain (47,413) with a share of over\n70%; around 14% (9,040) belonged to the Federal Administration. Around\n95% of the Federal Administration&#x2019;s files belonged to the administrative\nunits of the Federal Department of Justice and Police (FDJP): the\nFederal Office of Justice, Federal Office of Police, State Secretariat\nfor Migration and the internal IT service centre ISC-FDJP. With just\nover 3% of the data, the Federal Department of Defence, Civil Protection\nand Sport (DDPS) is slightly affected and the other departments are only\nmarginally affected in terms of volume.<br />\n</p>\n</blockquote>\n<p><strong>Proportion of sensitive data.</strong><br />\n</p>\n<blockquote>\n<p>Sensitive content such as personal data, technical information,\nclassified information and passwords was found in around half of the\nFederal Administration\'s files (5,182). Personal data such as names,\nemail addresses, telephone numbers and postal addresses were found in\n4,779 of these files. In addition, 278 files contained technical\ninformation such as documentation on IT systems, software requirement\ndocuments or architectural descriptions, 121 objects were classified in\naccordance with the Information Protection Ordinance and 4 objects\ncontained readable passwords.<br />\n</p>\n</blockquote>\n<ul>\n<li><strong>Supporting Source:</strong> <a\nhref=\"https://www.xplain.ch/en/hackerangriff/\"\ntitle=\"Xplain has become a target of a ransomware attack, with cybercriminals publishing data on the Darknet in the first half of June 2023.\">Information\nabout the hacker attack on Xplain.</a><br />\n</li>\n</ul>\n<blockquote>\n<p>Xplain filed a criminal complaint after the incident, provided the\nauthorities with all the necessary information and cooperated with them\nin investigating and limiting the damage. We rebuilt the entire IT\ninfrastructure in accordance with the recommendations of the National\nCyber Security Center (NCSC) and replaced the external operators. An\nexternal audit of the infrastructure and processes was completed in\nNovember. The NCSC subsequently wrote an assessment of the audit. The\nFederal Council\'s strategy crisis team on data leaks (PSC-D) took note\nof the report.<br />\n</p>\n</blockquote>\n<ul>\n<li><a\nhref=\"https://www.darkreading.com/cyberattacks-data-breaches/spoofed-zoom-google-skype-meetings-spread-corporate-rats\"\ntitle=\"A Russian-language campaign aims to compromise corporate users on both Windows and Android devices by mimicking popular online collaboration applications.\">Spoofed\nZoom, Google &amp; Skype Meetings Spread Corporate RATs.</a><br />\n</li>\n</ul>\n<blockquote>\n<p>A threat actor is creating fake Skype, Google Meet, and Zoom\nmeetings, mimicking these popular collaboration applications to spread\nvarious commodity malware that can steal sensitive data from both\nAndroid and Windows users.<br />\n</p>\n</blockquote>\n<hr />\n<ul>\n<li><strong>Additional Information.</strong>\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/Data_breach\"\ntitle=\"From Wikipedia, the free encyclopedia.\">What is a \"Data\nBreach\"?</a> A data breach is a security violation, in which sensitive,\nprotected or confidential data is copied, transmitted, viewed, stolen,\naltered or used by an individual unauthorized to do so.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Malware\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is \"Malware\"?</a>\nMalware (a <a href=\"https://en.wikipedia.org/wiki/Portmanteau\"\ntitle=\"From Wikipedia, the free encyclopedia\">portmanteau</a> for\nmalicious software) is any software intentionally designed to cause\ndisruption to a computer, server, client, or computer network, leak\nprivate information, gain unauthorized access to information or systems,\ndeprive access to information, or which unknowingly interferes with the\nuser\'s computer security and privacy.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Payload_(computing)\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is a \"Payload\"?</a>\nIn the context of a computer virus or worm, the payload is the portion\nof the malware which performs malicious action; deleting data, sending\nspam or encrypting data. In addition to the payload, such malware also\ntypically has overhead code aimed at simply spreading itself, or\navoiding detection.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Phishing\"\ntitle=\"From Wikipedia, the free encyclopedia.\">What is \"Phishing\"?</a>\nPhishing is a form of <a\nhref=\"https://en.wikipedia.org/wiki/Social_engineering_(security)\"\ntitle=\"From Wikipedia, the free encyclopedia\">social engineering</a>\nwhere attackers deceive people into revealing sensitive information or\ninstalling malware such as <a\nhref=\"https://en.wikipedia.org/wiki/Ransomware\"\ntitle=\"From Wikipedia, the free encyclopedia\">ransomware</a>. Phishing\nattacks have become increasingly sophisticated and often transparently\nmirror the site being targeted, allowing the attacker to observe\neverything while the victim is navigating the site, and transverse any\nadditional security boundaries with the victim.</li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/Social_engineering_(security)\">Social\nengineering (security)</a> In the context of information security,\nsocial engineering is the <a\nhref=\"https://en.wikipedia.org/wiki/Psychological_manipulation\">psychological\nmanipulation</a> of people into performing actions or divulging\nconfidential information. A type of confidence trick for the purpose of\ninformation gathering, fraud, or system access, it differs from a\ntraditional \"con\" in that it is often one of many steps in a more\ncomplex fraud scheme.<br />\n</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Information_security\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is \"Information\nSecurity\" (InfoSec)?</a> Information security, sometimes shortened to\nInfoSec, is the practice of protecting information by mitigating <a\nhref=\"https://en.wikipedia.org/wiki/Information\"\ntitle=\"From Wikipedia, the free encyclopedia\">information</a> risks. It\nis part of <a\nhref=\"https://en.wikipedia.org/wiki/Risk_management_information_systems\"\ntitle=\"From Wikipedia, the free encyclopedia\">information risk\nmanagement</a>.\n<ul>\n<li><strong>Information Security Attributes:</strong> <a\nhref=\"https://en.wikipedia.org/wiki/Confidentiality\"\ntitle=\"From Wikipedia, the free encyclopedia\">Confidentiality</a>, <a\nhref=\"https://en.wikipedia.org/wiki/Data_integrity\"\ntitle=\"From Wikipedia, the free encyclopedia\">Integrity</a> and <a\nhref=\"https://en.wikipedia.org/wiki/Availability\"\ntitle=\"From Wikipedia, the free encyclopedia\">Availability</a> (C.I.A.).\nInformation Systems are composed in three main portions, hardware,\nsoftware and communications with the purpose to help identify and apply\ninformation security industry standards, as mechanisms of protection and\nprevention, at three levels or layers: physical, personal and\norganizational. Essentially, procedures or policies are implemented to\ntell administrators, users and operators how to use products to ensure\ninformation security within the organizations.</li>\n</ul></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Risk_management\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is \"Risk\nmanagement\"?</a> Risk management is the identification, evaluation, and\nprioritization of risks followed by coordinated and economical\napplication of resources to minimize, monitor, and control the\nprobability or impact of unfortunate events or to maximize the\nrealization of opportunities.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Vulnerability_(computing)\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is a \"Vulnerability\"\n(computing)?</a> Vulnerabilities are flaws in a computer system that\nweaken the overall security of the device/system. Vulnerabilities can be\nweaknesses in either the hardware itself, or the software that runs on\nthe hardware.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Attack_surface\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is an \"Attack\nSurface\"?</a> The attack surface of a software environment is the sum of\nthe different points (for \"attack vectors\") where an unauthorized user\n(the \"attacker\") can try to enter data to or extract data from an\nenvironment. Keeping the attack surface as small as possible is a basic\nsecurity measure.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Attack_vector\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is an \"Attack\nVector\"?</a> In computer security, an attack vector is a specific path,\nmethod, or scenario that can be exploited to break into an IT system,\nthus compromising its security. The term was derived from the\ncorresponding notion of vector in biology. An attack vector may be\nexploited manually, automatically, or through a combination of manual\nand automatic activity.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Standardization\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is\n\"Standardization\"?</a> Standardization is the process of implementing\nand developing technical standards based on the consensus of different\nparties that include firms, users, interest groups, standards\norganizations and governments. Standardization can help maximize\ncompatibility, interoperability, safety, repeatability, or quality. It\ncan also facilitate a normalization of formerly custom processes.\n<ul>\n<li><a href=\"https://en.wikipedia.org/wiki/List_of_computer_standards\"\ntitle=\"From Wikipedia, the free encyclopedia\">List of computer\nstandards.</a></li>\n<li><a\nhref=\"https://en.wikipedia.org/wiki/List_of_technical_standard_organizations\"\ntitle=\"From Wikipedia, the free encyclopedia\">List of technical standard\norganizations.</a></li>\n</ul></li>\n<li><a href=\"https://en.wikipedia.org/wiki/Replay_attack\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is a \"Replay\nattack\"?</a> A replay attack is a form of network attack in which valid\ndata transmission is maliciously or fraudulently repeated or delayed.\nAnother way of describing such an attack is: \"an attack on a security\nprotocol using a replay of messages from a different context into the\nintended (or original and expected) context, thereby fooling the honest\nparticipant(s) into thinking they have successfully completed the\nprotocol run.\"</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Man-in-the-middle_attack\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is a\n\"Man-in-the-middle attack\"?</a> In cryptography and computer security, a\nman-in-the-middle, ..., attack is a cyberattack where the attacker\nsecretly relays and possibly alters the communications between two\nparties who believe that they are directly communicating with each\nother, as the attacker has inserted themselves between the two\nparties.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Transport_Layer_Security\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is \"Transport Layer\nSecurity\" (TLS)?</a> Transport Layer Security (TLS) is a cryptographic\nprotocol designed to provide communications security over a computer\nnetwork. The protocol is widely used in applications such as email,\ninstant messaging, and voice over IP, but its use in securing HTTPS\nremains the most publicly visible.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Handshake_(computing)\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is a \"Handshake\"\n(computing)?</a>. In computing, a handshake is a signal between two\ndevices or programs, used to, e.g., authenticate, coordinate. An example\nis the handshaking between a hypervisor and an application in a guest\nvirtual machine.</li>\n<li><a href=\"https://en.wikipedia.org/wiki/Security_theater\"\ntitle=\"From Wikipedia, the free encyclopedia\">What is Security\ntheater?</a> The practice of taking security measures that are\nconsidered to provide the feeling of improved security while doing\nlittle or nothing to achieve it.<br />\n</li>\n</ul></li>\n</ul>\n<hr />\n<ul>\n<li><strong>License:</strong> <a\nhref=\"https://creativecommons.org/licenses/by-sa/4.0/legalcode\">Creative\nCommons Attribution-ShareAlike 4.0 International</a>\n<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-sa/4.0/\"><img alt=\"Creative Commons License\" style=\"border-width:0\" src=\"https://i.creativecommons.org/l/by-sa/4.0/88x31.png\" /></a><br />This\nwork is licensed under a\n<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-sa/4.0/\">Creative\nCommons Attribution-ShareAlike 4.0 International License</a>.</li>\n</ul>\n',391,74,0,'CC-BY-SA','Oh No News, Threat analysis, QNAP',0,0,1),
