Hacker Public Radio

Hacker Public Radio

Hacker Public Radio is an podcast that releases shows every weekday Monday through Friday. Our shows are produced by the community (you) and can be on any topic that are of interest to hackers and hobbyists.

All Episodes

In this episode our two heroes contemplate the ins and outs of version control systems (VCS) and how to maintain sanity using them. Particular focus is on the newer generation of such as git which enabled large-scale community projects such as the Linux kernel, programming languages like Rust and Python and other shenanigans. Including a crash course on version control systems - you may credits at your local third-level education facility for listening to this episode. Just tell them the Inlaws sent you :-). Plus Martin reveals his favourite Pay TV channel and his gun-buying habits being a minor. Don't miss this episode if you're a minor and want to buy a gun in certain countries (details as part of the episode! :-). Links: V-Model: https://en.wikipedia.org/wiki/V-Model Mercurial: https://www.mercurial-scm.org Concurrent Version Control System (CVS): http://cvs.nongnu.org Minix: http://www.minix3.org Bazaar: https://bazaar.canonical.com/en Subversion (SVN): https://subversion.apache.org Git: https://git-scm.com Bitkeeper: http://www.bitkeeper.org IBM 390: https://www.ibm.com/ibm/history/exhibits/mainframe/mainframe_PP9000.html gitea: https://gitea.io Special K: https://en.wikipedia.org/wiki/Special_K Special K (song): https://en.wikipedia.org/wiki/Special_K_(song) Special K (former country, the Wikipedia page is slightly outdated): https://en.wikipedia.org/wiki/United_Kingdom Imperium: https://www.imdb.com/title/tt4781612/?ref_=fn_al_tt_2

E

Dec 2

58 min 15 sec

In this episode I take you along for the ride as I hack the wiring in a classroom podium so that I can show musical scores on the Elmo document camera while playing audio through the podium's laptop VGA audio source. Without this hack, the students could either see the score, or they could hear the music, but not both. This simple hack installing two jumper wires allows them to see the score and hear the music at the same time, which is important in my classes. I could already do this by using a PDF music score on my laptop while playing the audio file, but this allows me to use a paper score and audio from my laptop at once. It essentially acts as an audio splitter, sending the audio signal to two channels at once. Links Music from Kimiko Ishizaka's The Open Well-Tempered Clavier: https://www.welltemperedclavier.org/, used by permission of its CC0 1.0 Universal (CC0 1.0) Public Domain Dedication license. Pictures of the Podium Audio Wiring Hack

Dec 1

19 min 34 sec

arduino as a sketch download pdf at wiki.forth-ev.de, then cut and paste $ the arduino controlled by eforth, search for this ter$ amforth amforth.sourceforge.net flashforth flashforth.com resources arduino-forth.com forth.org forth.org/eforth.html

Nov 30

23 min 14 sec

Get app password and enter it in a file call pass set my_gpass= "MyAppPassword" Encrypt pass file with 'gpg -e pass' Shred pass file with 'shred -uv pass', which uses verbose mode shred - overwrite a file to hide its contents, and optionally delete it -u deallocate and remove file after overwriting -v, --verbose, show progress Use gpg encrypted key to open Gmail in .muttrc source "gpg -d ~/.mutt/pass.gpg |" Source colors file: Custom color scheme ## Custom - Shows a gray line on tagged emails color index yellow brightblack "~T ~N | ~T" Tagged emails Source hooks file: Redirect default save path for email sorting ## Newsletters - Technology ## save-hook '~f lists.linuxjournal.com' ='Linux' save-hook '~f arch-dev-public' =Newsletters save-hook '~f noreply@mmorpg.com' =Newsletters save-hook '~f ocw@mit.edu'|'~b Opencourseware' =Newsletters save-hook '~s Linux'|'~s Foundation' ='Newsletters' save-hook '~f weekly@raspberrypi.org' =Newsletters save-hook '~f hackspace@raspberrypi.org' =Newsletters save-hook '~f @pragmaticbookshelf.com' =Newsletters save-hook '~f comixology@e.comixology.com' =Newsletters save-hook '~f mrgroove@groovypost.com' =Newsletters save-hook '~f oreilly@post.oreilly.com' =Newsletters save-hook '~f mark ~s arduino' =Bookmarks/Arduino save-hook '~f smith@torproject.org' =Newsletters/TorProject save-hook '~f info@torproject.org' =Newsletters/TorProject save-hook '~f editor@eff.org' =Newsletters.EFFdotOrg save-hook '~f contact@diyodemag.com' =Newsletters/DIYODE-Magazine save-hook '~f weekly-update@allaboutcircuits.com' =Newsletters/Circuits ## Recipes ## save-hook '~f dora ~s Recipe | ~s Recipe | ~B recipe | ~B casserole | ~B bake | ~B "omaha steaks" ' ='dabrat1972/Recipes' Source aliases file: Frequently used contacts alias tags tags@hackerpublicradio.org alias Dave_Morriss Dave Morriss HTML email Install lynx Open URL's Install urlscan Capital 'U' open URL dialog Open pictures Install feh PDF reader Zathura https://bbs.archlinux.org/viewtopic.php?id=220572 Install zathura-pdf-mupdf and zathura-pdf-poppler Just needed zathura-pdf-mupdf, zathura-pdf-poppler was included with zathura. mailcap - metamail capabilities file DESCRIPTION The mailcap file is read by the metamail program to determine how to display non-text at the local site. image/*; feh %s; test=test -n "$DISPLAY"; text/html; lynx -nonumbers -dump %s; copiousoutput; nametemplate=%s.html application/pdf; zathura /dev/stdin More reading Regex question https://www.techrepublic.com/article/10-helpful-tips-for-mutt-e-mail-client-power-users Colors http://www.rdrop.com/docs/mutt/manual29.html Contact me: Email: ricemark20.nospam@nospam.gmail.com Mastodon: https://mastodon.sdf.org/@archer72 Matrix: @archer72:matrix.org HPR Matrix room: https://app.element.io/#/room/#hpr:matrix.org Oggcastplanet Matrix room: https://app.element.io/#/room/!oIafedhXUbEidMzeTt:libera.chat Links Example files: colors gmail mailcap muttrc

Nov 29

14 min 6 sec

I've been using this setup or one similar for several years now and it has worked out very well. Hardware: Clearstream TV antenna Coax cable Hauppage WinTV-dual HD USB Dual Tuner Raspberry Pi 4 4GB 1 TB SSD connected via USB 3 HDMI cable Software: Libreelec OS Kodi TVheadend server TVheadend client Debrid addon media streamer Any questions or comments you can reach me at minnix at minnix dot dev

Nov 26

16 min

https://matrix.to/#/#HPR:matrix.org media > text > keywords https://github.com/freeload101/SCRIPTS/blob/master/Bash/Stream_to_Text_with_Keywords.sh NICE ! http://hackerpublicradio.org/rss-future.php broken ? http://gitlab.anhonesthost.com/HPR/HPR_Public_Code/ ( broken ? ) Donate! https://secure.anhonesthost.com/store/hpr-hosting-cost-donations android compressor / limiter https://play.google.com/store/apps/details?id=io.github.kushiheim.glycox notes on Linux Audio https://docs.google.com/document/d/1E1xAwWpq-C4vEh8LCRw7MD7jnaclX9Faf2L3dZWiqQY/edit#heading=h.wp1n4j8ybidv possible automated silence detection to be used for noise profile !!!! ( let's talk about it ! ) https://stackoverflow.com/questions/45526996/split-audio-files-using-silence-detection/46001755

E

Nov 25

12 min 32 sec

Opening Hello, my name is Dave, and welcome to another exciting episode of Hacker Public Radio. It's been a couple of years since my last episode, and I know that HPR is running low on shows. As I have had this one in planning for some time now, I though this was the right time to get it finished. Main At the time of recording this, I've been an Amateur Radio licence holder for 6 months. I took the notion of studying and applying for my Foundation licence (the first of three stages to a Full licence) when I read a blog post by Jon Spriggs G7VRI, back in March, entitled Might Amateur Radio be a hobby for you? I saw a presentation by Jon at OggCamp in 2018 in Sheffield where he gave a whistle-stop tour of what Amateur Radio actually is, and how easy it is to get involved in it. As a bit of background, I was quite involved in the CB Radio scene back in the late 80s and early 90s - I was introduced to CB by my dad, whose handle was "Screwball", in the 70s... he had a CB rig in his car since as far back as I can remember. I picked up the hobby from him, by actually liberating him of his rig when he stopped using it. Unfortunately it got stolen from my car. C'est la vie. Yes, my handle back then was "The Love Bug" - in fact, it was whilst looking for an alternative to "Kool Kat" as a handle that I first used the moniker "The Love Bug" - probably in the mid-80s - and it just stuck. So, after reading Jon's blog post, and doing some research into Amateur Radio myself, a whole bunch of things happened at the same time: I bought my first radio - a Baofeng UV-5RTP [Amazon UK], I joined the Radio Society of Great Britain (not a requirement, but I would recommend it), signed up for Essex Ham's Foundation Training Course (not a requirement, but strongly recommended as it's geared around the examination, and it's free!) The training took 3 weeks (in my own time), and I applied for my exam as soon as the training was complete. The exam was an hour long, under as close to exam conditions as an online exam would allow, and I was told by the online system that I'd passed as soon as I submitted my answers. It then took a few days to get the confirmation of passing (and a certificate) in the post, which then allowed me to apply to Ofcom (the authority for the radio spectrum here in the UK) for my licence and callsign. I was able to choose the suffix of my callsign, and - as BUG was taken - I opted for TLB (for The Love Bug), and thus my callsign is - currently - M7TLB (Mike Seven Tango Lima Bravo). I say "currently" - I'm not allowed to change my callsign, however the callsign is specific not only to me but also to the fact that I'm a Foundation Licence holder. Therefore, when I go for my Intermediate and then Full licence, I'll get new callsigns for each one, each superseding the previous. Anyhoo, once I got my Foundation licence, I went out that Sunday to log some contacts, or QSOs. So I parked up at a high point near to here, put a small aerial on the roof of the car (so that I didn't warm up my head when transmitting), and started calling CQ - essentially a way of saying "I want to talk to somebody" - "Seek You". As part of the licence conditions, you are only permitted to make contact with other identifiable and identified amateurs... general broadcasts to whomever might be listening are prohibited. Except when calling CQ to initiate that contact. So I'd call out something akin to "CQ, CQ, this station Mike Seven Tango Lima Bravo, Mike Seven Tango Lima Bravo Portable, calling CQ." The "Portable" indicates that I'm not at my home station location. It's also a good indication that my transmission might be variable due to the portable nature of the station. I was transmitting using 8 watts of power, two watts fewer than the limit of my license, but significantly lower than the 400 watts that I could be using as a Full licence holder, so my hopes weren't high. My first contact was with a chap just outside Caistor, Lincolnshire... about 38 miles direct from where I was based. He was also using a portable station, but with a directional beam antenna, meaning that both transmission and reception from his end was able to focus on my direction. So yeah, impressed! My second contact was also a portable station, located at a high-point by the Woodhead Pass, in Penistone, about 18 miles direct from where I was. This contact was the gift that kept on giving, as there were two other portable stations at the same location, so I got three contacts in the log for that one. Things went quiet after that one, so after a further 5 calls out, I figured that was my lot. Still, I was happy with four QSOs on my first day! Later the same day, I went out for my daily constitutional, so I figured I'd take the radio - with the standard short rubber-duck antenna, and an earpiece - with me. At least that way, I wouldn't look too silly, or a target to be fair. My intention was just to bounce around the frequencies and listen to conversations, rather than put out any CQs myself... I was in a residential area, so I didn't want to draw attention to myself. Whilst listening, I heard someone calling CQ and inviting respondents to a different frequency, so I followed and listened. There were a couple of contacts already there that I couldn't hear, so I waited for the initial contact to finish working the first. When he put out a call for whomever originally responded, I jumped in with my callsign, thinking that there was no way he would hear me. Consider that I was walking around town, in a reasonably built-up area, with probably the worst antenna I could have chosen for distance, and he wasn't exactly coming through strong. He responded to me directly, asking me to standby whilst he worked the other station that responded. Well, I was shocked to hear him say to the other contact that he was in East Yorkshire, about 33 miles from here! He was using a directional beam antenna which was pointing due west... whereas I am south-west of his location, so when you consider the other things I mentioned, the fact that he was also not pointing his antenna directly at me I was completely amazed that I was able to hold this relatively decent quality conversation with someone that far away. Well pleased was I. Cost-wise, I should warn that Amateur Radio can be an expensive hobby, but it absolutely doesn't have to be. At a bare minimum, to get me "on the air" I bought the Baofeng (£42.99), and paid for my Foundation examination (£27.50), so a little over £70 overall. I actually bought a number of accessories for the radio, and joined the RSGB, but these are in no way required expenses. The standard radio on its own is more than sufficient to gain some decent contacts, as I hope I've proven with the success from that Sunday. Since then, I have bought an HF (or High Frequency) radio from India, it's a low-power model (or QRP) which is unlikely to get very far, but there are transmission modes that I can use that are specifically intended for low-power operation. My next big thing is to get an antenna up in the back garden along with a decent tuner so that I can actually use that radio!! By the time this episode goes out, I will have started an intensive course with OARC (Online Amateur Radio Community) which is a UK-based club - a more fantastic bunch of people you are not likely to find - so I'll be able to change my callsign to one beginning 2E0 or 2E1, and be able to use up to 50W to transmit, even though I don't have any equipment capable to transmitting 50W - yet! I point you to the excellent Ham radio, QSK series on HPR where a number of correspondents have recorded shows about Amateur Radio that you may find interesting. I'm putting this episode into the same series. Questions Are you an Amateur Radio operator? Let me know. Call to action Drop me an email to hpr@thelovebug.org, I'm on Facebook and Twitter as thelovebug, or leave a comment on this episode, or record your own episode in response. At the time of recording this, HPR is low on shows, if you have any shows in progress, or something burning in your mind, get it recorded. Find out more over at hackerpublicradio.org. Close So, that's it for today... thanks for listening. Wherever you are in the world, stay safe. Come back again tomorrow for another exciting episode on Hacker Public Radio. 73 de M7TLB

Nov 24

11 min 38 sec

AQI Air Quality Index - measures particles in the air Ozone good at high altitudes bad on the earth surface https://en.wikipedia.org/wiki/Ozone#Low_level_ozone PM2.5 Particulate Matter, 2.5 micrometers https://en.wikipedia.org/wiki/Particulates#Size,_shape_and_solubility_matter https://en.wikipedia.org/wiki/Particulates#Wildfire_smoke_risk Getting AQI data Determining air quality in my area is as simple as visiting https://www.airnow.gov and entering my zip code. Although my zip code covers 139.56 square miles, the result is accurate enough for my needs. When my zip code was submitted, the web page did not refresh. This means that the client interface made an API call to the backend server. It sure would be nice if the AQI status was emailed to my phone every hour, if the AQI was above a certain threshold. In order to get the data from the API, it is necessary to emulate the request made by the client to the API. This can be accomplished using Firefox. open Firefox go to https://www.airnow.gov open the Firefox developer tools, either through the menu or with CTRL+SHIFT+i in the dev tools, select the Network tab enter the zip code in the form and submit watch the Network tab for a POST request to https://airnowgovapi.com/reportingarea/get click on the request in the network tab Another set of tabs are now available to display various bits of information regarding the request. From this data, it is possible to recreate the query. However, I took an even easier route, and right-clicked on the query in the Network tab, and selected Copy > Copy as cURL to get the request as a curl command complete with all necessary arguments prefilled. Since I didn't want to write my entire AQI fetching script in bash, I copied the curl command into a text file and ported the request to Ruby. The Finished Script #!/usr/bin/env ruby require 'net/http' require 'uri' require 'json' uri ="https://airnowgovapi.com/reportingarea/get" parsed_uri = URI.parse(uri) payload={latitude:39.88,longitude:-120.76,stateCode:'CA',maxDistance:50} response = Net::HTTP.post_form(parsed_uri, payload) data = JSON.parse(response.body)[0] aqi=data["aqi"].to_i category=data['category'] parameter=data['parameter'] output= "#{parameter}: #{aqi} - #{category}" puts output /opt/textjezra "#{output}"` if aqi > 70

Nov 23

7 min 48 sec

This episode is just a quick talk about one of my favorite legacy audio devices, my Sony FM/AM cassette Walkman, model WM-F41. Links Sony Walkman WM-F41 Behringer Xenyx 502 Mixer Music is from Kimiko Ishizaka's The Open Art of Fugue: https://music.kimiko-piano.com/album/j-s-bach-the-art-of-the-fugue-kunst-der-fuge-bwv-1080, used by permission of its CC0 1.0 Universal (CC0 1.0) Public Domain Dedication license.

Nov 22

10 min 12 sec

In our continuing exploration of DOS we come to the topics of External Commands and Emergency Boot Disks. We cover them together because External Commands may not be available on your Emergency Boot Disk unless you take steps to include them, unlike Internal Commands, which are always part of a Boot Disk. Links: https://www.ahuka.com/dos-lessons-for-self-study-purposes/dos-lesson-4-external-commands-emergency-boot-disk/

Nov 19

19 min 4 sec

In this episode Martin and one of the Grumpies (as in Grumpy Old Coders) battle it out: SQL or NoSQL - which technology is better? If you ever wondered why the Structured Query Language was invented in the first place and why the hipster abandoned ship for the latest (?) rage of the likes of the NoSQL variety, this is for you. Plus: A whole family of never-heard-of sound effects make their debut on this bumper of an episode. Links: SQL: https://www.iso.org/standard/63555.html NoSQL: https://en.wikipedia.org/wiki/NoSQL NoSQL Geek: http://www.nosqlgeek.org ACID compliance: https://en.wikipedia.org/wiki/ACID redis: https://github.com/redis/redis CAP theorem: https://en.wikipedia.org/wiki/CAP_theorem TorroDB: https://github.com/gordol/torrodb-server Grumpy Old Coders episode on the Dark Side: https://soundcloud.com/user-498377588/grumpy-old-coders-ep-11-the-dark-side

E

Nov 18

1 hr 10 min

A discussion about Debian LTS distro upgrade intervals on my Raspberry Pi Relevant links below Debian release information My previous episode from last year where I covered the upgrade on my raspberry Pi from Debian Jessie 8 to Stretch 9 A previous episode where I describe my raspberry Pi add-on board and what I use it for

E

Nov 17

14 min 28 sec

I use email in the terminal with a combination of: protonmail-bridge-cli local IMAP server to fetch Protonmail mails tmux to run protonmail-bridge in isync (or offlineimap etc) to sync IMAP with maildirs notmuch to tag and search mails afew to move mails found by certain notmuch queries in certain maildirs alot to read, compose, search and tag mails msmtp to send mails w3m (or lynx etc) to read HTML mails in the terminal rsync to copy archived mails a shell function and an alias to make it all less ridiculous To most, Thunderbird will be suitable, the target audience here is unreasonable people. Complete Show Notes Follow this link for the complete show notes: http://hackerpublicradio.org/eps/hpr3467/

E

Nov 16

39 min 4 sec

I did a show about why I do not listen to non-mainstream podcasts as much as I used to. For me two things happened: I switched from being in the car for 16 hours a week to being a remote sales person at home. So the 16 hours I listened to podcasts every week in the car went away. The second reason I reduced was that many of the podcasts I was listening to were presented by people who do not share my values. So I stopped listening to them. The third reason I listen less is the Army opened up the online book library to retired service members and I do a lot of audio books in the moment.

Nov 15

10 min 33 sec

Just a basic podcast about a tablet. https://www.walmart.com/ip/onn-7-Tablet/930669857

Nov 12

15 min 45 sec

When listening to HPR 3442 by Klaatu, which I recommend, some thoughts about how we think started rattling about in my head. In this show I riff on that and talk about the importance of our irrational mode of thought.

Nov 11

14 min 8 sec

Notes on the audio quality I have been looking into the audio quality issues of my shows. I think I have found a solution to them. Unfortunately, this show was recorded before I discovered it. Synopsis In today's episode, I take the audience along my adventure in backing up my laptop's hard drives. During recent OS updates, the kernel updates started to fall. In my efforts to resolve the problem, I made things worse – to the point I decided it was time to reinstall the operating system. To prevent any data loss, I chose Clonezilla to image the drives. The Clonezilla Live edition lets you boot into a ncurses menu driven system that walks you through the process of either backing up your hard drives or restoring a Clonezilla backup. Clonezilla backups save space by imaging only the data on your drives (for those filesystems it recognizes – otherwise it uses dd to do a sector-by-sector copy) Overall the process was very smooth, and, at the end, I was confident to move forward with wiping my main hard drive and reinstalling the operating system knowing I had a way to restore any lost data. References Clonzilla website UNETBOOTIN website dd, command line utility for *nix like operating systems Attribution The transition sound used between audio clips is found on freesound.org: Name: Harp Transition Music Cue Author: DanJFilms License: Creative Commons Zero

Nov 10

35 min 28 sec

Title: Metal marbles. Summary: Introduction of host, with reference to semantic playgrounds. Link to the rust converter recipe, which I found to be cheaper, and more sprayable than buckets of gel or paint-like substances which you might find elsewhere: https://www.canada.ca/en/conservation-institute/services/conservation-preservation-publications/canadian-conservation-institute-notes/tannic-acid-rusted-iron-artifacts.html In case that link moves, search for tannic acid rust converters, then choose your buffers. Email: hpr@spoons.one Mastodon, though very very rarely: @one_of_spoons@hispagatos.space

E

Nov 9

10 min 53 sec

We didn't have time to tackle the discussion in last months community news so today we dedicate an entire show to reading out all the comments relating to the HPR Branding. See http://hackerpublicradio.org/pipermail/hpr_hackerpublicradio.org/2021-October/thread.html Your comments are appreciated !

Nov 8

41 min 50 sec

Layer Modes, sometimes called Blending Modes, allow you to combine layers in a variety of ways. We continue with the Dodge and Burn Modes. Dodge is one of the Lighten Modes, while Burn is one of the Darken Modes, but I pulled them out for their own tutorial because they are not only closely related (inverse of each other), but also because I wanted to cover their use as Tool Modes in addition to Layer Modes. These are the Layer Modes available on the latest (at the time I write this) version of GIMP, 2.10.24. Links: https://docs.gimp.org/2.10/en/gimp-tools-paint.html#gimp-tools-paint-options https://www.ahuka.com/gimp/a-layer-mask-project/ https://digitalmedia.fws.gov/digital/collection/natdiglib/id/14486/rec/210 https://www.youtube.com/watch?v=bbaAEZl7_44 https://www.ahuka.com/gimp/dodge-and-burn/

Nov 5

20 min 42 sec

In this episode our two OAPs host Deb Nicholson, the general manager of the Open Source Initiative (OSI). Apart from riveting insights into open source licensing we discuss the greater FLOSS ecosystem and Deb's views on why wearing shoes is important in certain contexts, open source standards, law suits and the differences between US and Europe among other things. Links: OSI: https://opensource.org OSI's FLOSS definition: https://opensource.org/osd Commons Clause license: https://commonsclause.com TerminusDB license change: https://blog.terminusdb.com/we-love-gplv3-but-are-switching-license-to-apache-2-0-terminusdb Open source licenses: https://en.wikipedia.org/wiki/Comparison_of_free_and_open-source_software_licences Open Core model: https://en.wikipedia.org/wiki/Open-core_model Software Freedom Conservancy: https://sfconservancy.org Bruce Perens: https://en.wikipedia.org/wiki/Bruce_Perens Loki TV series: https://en.wikipedia.org/wiki/Loki_(TV_series) Luca movie: https://www.imdb.com/title/tt12801262/?ref_=fn_al_tt_1 The Internet is made of cats: https://www.youtube.com/watch?v=zi8VTeDHjcM Gnome and systemd: https://blogs.gnome.org/benzea/2019/10/01/gnome-3-34-is-now-managed-using-systemd Apparmor Profile: https://packages.debian.org/bullseye/apparmor-profiles Apparmor Profile Extra: https://packages.debian.org/bullseye/apparmor-profiles-extra

E

Nov 4

1 hr 15 min

Talking Points Listener Feedback Dave Morriss and the Markdown/HTML debacle Using validate_html Podcast logistics etc. hackerdefo's suggestions .less_termcap: export LESS_TERMCAP_mb=$(tput bold; tput setaf 2) export LESS_TERMCAP_md=$(tput bold; tput setaf 6) export LESS_TERMCAP_me=$(tput sgr0) export LESS_TERMCAP_so=$(tput bold; tput setaf 3; tput setab 4) export LESS_TERMCAP_se=$(tput rmso; tput sgr0) export LESS_TERMCAP_us=$(tput smul; tput bold; tput setaf 7) export LESS_TERMCAP_ue=$(tput rmul; tput sgr0) export LESS_TERMCAP_mr=$(tput rev) export LESS_TERMCAP_mh=$(tput dim) export LESS_TERMCAP_ZN=$(tput ssubm) export LESS_TERMCAP_ZV=$(tput rsubm) export LESS_TERMCAP_ZO=$(tput ssupm) export LESS_TERMCAP_ZW=$(tput rsupm) .bashrc: if [ -f $HOME/.less_termcap ];then . $HOME/.less_termcap fi poca, castero, and gpodder cli My opinion on Python and Java ProtonMail Bridge with mutt Comments from the last episode (Please go to the last episode to read the full comments) NOTE: If you want a timely response, please email me or mention me on Mastodon Operat0r: Kids these days! https://www.nethack.org/ b-yeezi: +1 for cnus sesamemucho: The text Dave Morriss: Very enjoyable Gumnos: Using "c" to pause in cmus New Talking Points Here Documents cat > text.txt <

E

Nov 3

1 hr 3 min

Mobile devices don't display them nicely. Most tables can be converted into a list: OSInitPkg Fedorasystemddnf SlackwareBSD-styleslackpkg GentooOpenRCemerge Can be represented as a list. In YAML terms, this is a sequence of mappings. Fedora Init system: systemd Package manager: dnf Slackware Init system: BSD-style Package manager: slackpkg Gentoo Init system: OpenRC Package manager: emerge A table doesn't always translate exactly to a list, but it probably can be restructured. OSOpen sourceLanded on Mars LinuxYesYes BSDYesNo macOSNoNo Could be written like this instead: Linux and BSD are open source operating systems, while macOS is not. Of these POSIX-compliant systems, only Linux has landed on Mars so far. That's pretty casual and loses the visual impact of a table or a list. So alternately, you could summarize what's common and highlight differences: There are a few Linux systems on Mars. Neither BSD or macOS have yet landed on Mars. Linux and BSD are both open source. macOS is based partially on open source and includes components from the BSD, KDE, GNU, and other projects.

Nov 2

39 min 53 sec

table td.shrink { white-space:nowrap } New hosts Welcome to our new host: hakerdefo. Last Month's Shows Id Day Date Title Host 3435 Fri 2021-10-01 Hacking Stories with Reacted: part 5 operat0r 3436 Mon 2021-10-04 HPR Community News for September 2021 HPR Volunteers 3437 Tue 2021-10-05 The HTML document format Daniel Persson 3438 Wed 2021-10-06 Ten privacy friendly Google search alternatives. hakerdefo 3439 Thu 2021-10-07 Linux Inlaws S01E40: The One with the BSDs monochromec 3440 Fri 2021-10-08 Lighten Layer Modes Ahuka 3441 Mon 2021-10-11 Murphy Work Bench operat0r 3442 Tue 2021-10-12 What is this thing called science klaatu 3443 Wed 2021-10-13 Neuton battery replacement Rho`n 3444 Thu 2021-10-14 The Psion series 5mx Nihilazo 3445 Fri 2021-10-15 True critical thinking seems to be the key Dave Morriss 3446 Mon 2021-10-18 Speech To Text operat0r 3447 Tue 2021-10-19 BlacKernel's Journey Into Technology: Episode 2 BlacKernel 3448 Wed 2021-10-20 Installing GuixSD Rho`n 3449 Thu 2021-10-21 Linux Inlaws S01E41: The Halloween Documents monochromec 3450 Fri 2021-10-22 Internal Commands Ahuka 3451 Mon 2021-10-25 Bricklink operat0r 3452 Tue 2021-10-26 Neuton battery test Rho`n 3453 Wed 2021-10-27 Rust 101: Episode 1 - Hello, World! BlacKernel 3454 Thu 2021-10-28 Engineering Notation Ken Fallon 3455 Fri 2021-10-29 Podcast Recommendation: IBM and Quantum computing Archer72 Comments this month These are comments which have been made during the past month, either to shows released during the month or to past shows. There are 38 comments in total. Past shows There are 16 comments on 7 previous shows: hpr2793 (2019-04-17) "bash coproc: the future (2009) is here" by clacke. Comment 5: clacke on 2021-10-08: "Real world use, thanks Dave!" hpr3337 (2021-05-18) "I like that the boat is stuck" by Daniel Persson. Comment 2: Windigo on 2021-10-07: "Amazing" hpr3414 (2021-09-02) "Critical Thinking may make You Critical of the Covid Crisis" by CoGo. Comment 5: e8hffff on 2021-10-16: "Common Sense" Comment 6: Dave Morriss on 2021-10-30: "Response to e8hffff, comment #5" hpr3426 (2021-09-20) "Rust 101: Episode 0 - What in Tarnishing?" by BlacKernel. Comment 3: Honkeymagoo on 2021-10-04: "another fun way to learn rust" hpr3431 (2021-09-27) "Living in the Terminal" by BlacKernel. Comment 5: Gumnos on 2021-10-06: "Using "c" to pause in cmus" hpr3433 (2021-09-29) "A Squirrels thoughts about RMS" by Zen_Floater2. Comment 1: Ben on 2021-10-02: "Yikes!" Comment 2: archer72 on 2021-10-03: "Good call, Ken" Comment 3: Zen_floater2 on 2021-10-05: "Reply to Ben" Comment 4: Zen_floater2 on 2021-10-05: "Reply to archer72" Comment 5: Ken Fallon on 2021-10-05: "Disapointed with this show" Comment 6: Bob on 2021-10-05: "Deliberately misleading ?" Comment 7: Zen_floater2 on 2021-10-05: "Reply to Ken Fallon" Comment 8: Ben on 2021-10-22: "Reply to #4" hpr3434 (2021-09-30) "From 0 to K8s in 30 minutes" by klaatu. Comment 1: b-yeezi on 2021-10-01: "What an amazing show" Comment 2: Mike Ray on 2021-10-01: "Great show" This month's shows There are 22 comments on 7 of this month's shows: hpr3436 (2021-10-04) "HPR Community News for September 2021" by HPR Volunteers. Comment 1: Ken Fallon on 2021-10-13: "Clarification" hpr3438 (2021-10-06) "Ten privacy friendly Google search alternatives." by hakerdefo. Comment 1: ClaudioM on 2021-10-07: "Mojeek"Comment 2: Linux4security on 2021-10-19: "browser" hpr3439 (2021-10-07) "Linux Inlaws S01E40: The One with the BSDs" by monochromec. Comment 1: ClaudioM on 2021-10-07: "Best of BSD!"Comment 2: Zen_floater2 on 2021-10-09: "This show put me up a tree" hpr3442 (2021-10-12) "What is this thing called science" by klaatu. Comment 1: Brian-in-ohio on 2021-10-13: "science"Comment 2: e8hffff on 2021-10-13: "Re:[HPR3442] Klaatu, CoVID, and Science"Comment 3: kingbeowulf on 2021-10-14: "scientific method selectively apply based on "feelings"?"Comment 4: Mad Sweeney on 2021-10-15: "Hats Off to You"Comment 5: e8hffff on 2021-10-16: "The Pharmacist" hpr3444 (2021-10-14) "The Psion series 5mx" by Nihilazo. Comment 1: Brian-in-ohio on 2021-10-14: "compliment"Comment 2: Gumnos on 2021-10-14: "Looking forward to this one!"Comment 3: Cometcycle on 2021-10-15: "Trip down memory lane"Comment 4: Dave Morriss on 2021-10-16: "Great show!" hpr3445 (2021-10-15) "True critical thinking seems to be the key" by Dave Morriss. Comment 1: ironhelixx on 2021-10-13: "This is the way to handle misinformation"Comment 2: Aaronb on 2021-10-15: "Reasoning"Comment 3: e8hffff on 2021-10-16: "Common Sense"Comment 4: Kevin O'Brien on 2021-10-19: "Bravo!"Comment 5: Brian-in-ohio on 2021-10-20: "risk"Comment 6: Dave Morriss on 2021-10-30: "Response to e8hffff, comment #3"Comment 7: Dave Morriss on 2021-10-30: "Response to Brian-in-ohio, comment #5" hpr3446 (2021-10-18) "Speech To Text" by operat0r. Comment 1: operat0r on 2021-09-27: "Example script" Mailing List discussions Policy decisions surrounding HPR are taken by the community as a whole. This discussion takes place on the Mail List which is open to all HPR listeners and contributors. The discussions are open and available on the HPR server under Mailman. The threaded discussions this month can be found here: http://hackerpublicradio.org/pipermail/hpr_hackerpublicradio.org/2021-October/thread.html Events Calendar With the kind permission of LWN.net we are linking to The LWN.net Community Calendar. Quoting the site: This is the LWN.net community event calendar, where we track events of interest to people using and developing Linux and free software. Clicking on individual events will take you to the appropriate web page. Any other business Older HPR shows on archive.org This month 70 additional shows in the range 1-870 have been uploaded. Tags and Summaries Thanks to the following contributors for sending in updates in the past month: Archer72, Rho`n Over the period tags and/or summaries have been added to 38 shows which were without them. ---------------------------------------- Hooray! There are now no more shows that need summaries or tags! Thanks to all of the contributors to this project. According to my records the people who have helped to get to this point are listed below. Apologies if I have omitted anyone from the list: Ahukaarcher72bjbClaudioMcrvsDaniel PerssonDave MorrissKen FallonKirk ReiserNYbillRho`nTony HughesWindigo ----------------------------------------

E

Nov 1

1 hr 21 min

Moore's Lobby Ep. 34 | The Latest from the Lab: How IBM Research Is Inventing What's Next https://www.allaboutcircuits.com/podcast/ep-34-the-latest-from-the-lab-how-ibm-research-is-inventing-whats-next Rss feed: https://eetech.libsyn.com/rss Interview with Dr. Jeffrey Welser VP of Exploratory Science at IBM Research IBM Release first 2nm chip this year Engineers vs Scientists and how they drive innovations Goal to replace the transistor when Moore's Law stops scaling Managing thermal loads Finding new structures and materials to control current Neural nets, image recognition and AI Quantum computing Discussion starts at 34:35 into the podcast Richard Feynman, Early 80's http://www.feynman.com qubits superposition state "Spooky action at a distance" Encryption Need millions of qubits to break current encryption Only currently over 100 qubits At least a decade from having enough qubits Currently have classical systems that cannot be broken by quantum computers The math does not map onto a quantum system Currently working with NIST to create quantum safe cryptography https://csrc.nist.gov/Projects/Cryptographic-Standards-and-Guidelines Quantum chemistry Quantum chip - cooling and superconducting Dilution refrigerator Low temperature and pressure Top is 4 Kelvin, bottom gets to 15 milli Kelvin https://phys.org/news/2019-06-superconducting-quantum-refrigerator.html https://www.nist.gov/si-redefinition/kelvin-introduction Josephson junction It is the reference Volt as defined by NIST https://www.sciencedirect.com/topics/physics-and-astronomy/josephson-junctions https://en.wikipedia.org/wiki/Josephson_voltage_standard Use an IBM quantum computer online May 2016 the first quantum computer was put on the 'Net https://quantum-computing.ibm.com https://newsroom.ibm.com/2016-05-03-IBM-Makes-Quantum-Computing-Available-on-IBM-Cloud-to-Accelerate-Innovation 300,000 users https://qiskit.org/documentation Qiskit is open-source software for working with quantum computers at the level of circuits, pulses, and algorithms.

Oct 29

5 min 29 sec

Engineering Notation Learn this table giga G 109 1,000,000,000 mega M 106 1,000,000 kilo k 103 1,000 1 milli m 10−3 0.001 micro μ 10−6 0.000,001 nano n 10−9 0.000,000,001 pico p 10−12 0.000,000,000,001 Links Engineering notation List of International System of Units (SI) hpr3087 :: Phonetic alphabet

Oct 28

12 min 23 sec

Talking Points main.rs Like main.cpp in C++ or main.c in C Tells the compiler which file to start with Can link to other "crates" and "modules" Cargo.toml Keeps track of application metadata This includes dependencies! Functions Strictly typed, like everything in Rust Declared by fn Argument typed with argument: Type Return typed with -> Type otherwise assumed to return nothing The Main Function Like the main functions in C and C++ Where the program starts within the main.rs file CLI arguments handled by std::env, rather than argv and argc in C Can return nothing or a Result<()> Macros Metafunctions or functions for functions More general than functions, having flexibility in the number of arguments, etc, but harder to write The println! Macro Can take any number of arguments that implement the display trait Usually things like strings or character literals Will format them into a string and display it on the terminal Similar to printf in C The Hello World program Can be automagically generated with cargo new and then the name of your application Located in Name-Of-Application/src/main.rs fn main() {   println!("Hello, world!"); } Show Notes Important Links: Git repo for this miniseries The Rust Standard Library The format! macro The println! macro Wikipedia Articles: The Rust Programming Language Contact Me Email: izzyleibowitz at pm dot me Mastodon: at blackernel at nixnet dot social

E

Oct 27

23 min 11 sec

Introduction On today's show I test whether the battery replacement for my Neuton mower is a success. This is a follow up to episode 3443. After some audio recording difficulties with the blue tooth headset I used with my phone, we hear if the replacement was successful. Before I could test the battery, I needed to replace the mower key. I think it would have been simple to just jump the terminals with a wire and maybe some alligator clips to hold the wire to the key terminals, but I was worried this would not guarantee the wire shaking loose as I moved. I looked on EBay and found a replacement key for about fifteen dollars US, and decided it was worth the cost and the wait before trying out the mower. Testing the mower After putting the key in the mower, pulling and holding the safety levers, and then pressing the start button. The mower wouldn't start. I checked the key was set properly, and saw the green LED on the handle lit and indicating that power was available. I pulled the key and battery out, and then reseated both of them, checking once again that the power indicator was lit. After some fooling around with the safety levers and start button, I realized you had to push the start button and then pull and hold the safety levers for the mower to start. The mower runs well, and the cost of the batteries and key will even out over time from the savings on not paying for a lawn service. References DR Neuton Cordless Walk Behind 14" Lawn Mower CE2 CE3 CE5 Reset Security Key - EBay item Attribution The transition sound used between audio clips is found on freesound.org: Name: Harp Transition Music Cue Author: DanJFilms License: Creative Commons Zero

Oct 26

7 min 39 sec

beware shipping prices always use Instant Checkout be sure to check USA 2-3x the cost of lego.com set paying 3-5 people via paypal .... no way to easy share wanted list ... LOST :( https://rmccurdy.com/.scripts/downloaded/CL4P-TP%20Claptrap%20Borderlands%20Bricklink.xml 7 missing out of 216 on one shipment Photo Click the thumbnail to see the full-sized image

Oct 25

16 min 8 sec

This tutorial looks at DOS Internal Commands, which in some sense are analogous to shell commands in Linux. That means that the command interpreter already has these loaded and ready to go when you boot. Links: http://webopedia.internet.com/TERM/c/command.html https://www.ahuka.com/dos-lessons-for-self-study-purposes/dos-lesson-3-internal-commands/

Oct 22

14 min 39 sec

In this infomercial on Microsoft, our hosts discuss the infamous Halloween documents ('tis the season after all), a set of ancient scrolls dating back more than twenty years and giving an overview of the behemoth's then strategy on open source and how to possibly combat it. But fear not, ye of little faith :-), all is well now as the episode shows also the long way Microsoft has come since then and its adoption (and giving back!) as an enterprise technology. Plus: How to increase your market cap by using FLOSS. And last but not least: The Dark Side is back by popular demand! With a special episode on the usual Halloween stuff including vampires, Transylvania, politicians, QAnon, Zoom, Teams and other horror topics (Ever wondered what happened to Angela Merkel after she stepped down as Germany's chancelorette in 2021? Then don't miss out on this episode!). Links: Little Britain: https://www.bbc.co.uk/programmes/b006q2zd SCO Group: https://en.wikipedia.org/wiki/SCO_Group SCO vs. IBM: https://en.wikipedia.org/wiki/SCO_Group,_Inc._v._International_Business_Machines_Corp. Halloween documents: https://en.wikipedia.org/wiki/Halloween_documents Microsoft and open source: https://en.wikipedia.org/wiki/Microsoft_and_open_source Monsters of Man: https://www.imdb.com/title/tt6456326 Breeders: https://en.wikipedia.org/wiki/Breeders_(TV_series) Permanent penis for the Welsh Dragon: https://www.dailymail.co.uk/news/article-9932657/Hilarious-campaigners-demand-famous-red-dragon-given-permanent-penis-Welsh-flags.html

E

Oct 21

1 hr 8 min

Synopsis In this episode Rho`n records his adventure in installing GuixSD on an external USB drive which will be run on a Mac Mini computer. After overcoming the initial difficulty of finding a keyboard that would connect wirelessly to the Mac Mini while using the Guix installer and some network difficulties, he describes the installation steps. Guix has a graphical text based installer. It is reminiscent of the mid to late 90s Debian installers. Even with its old school feel, the installer is very nice. It is well laid out, has good onscreen description for each step of the installation process, and provides ample configuration selections from language, to to key board layout, to desktop and software selection. References Guix website Instructions for installing Guix as the main OS Rii 2.4G Mini Wireless Keyboard with Touchpad Mouse,Lightweight Portable Wireless Keyboard Controller with USB Receiver Remote Control for Windows/ Mac/ Android/ PC/Tablets/ TV/Xbox/ PS3. X1-Black - EBay item Attribution The transition sound used between audio clips is found on freesound.org: Name: Harp Transition Music Cue Author: DanJFilms License: Creative Commons Zero

Oct 20

46 min 55 sec

Talking Points W*ndows Power User Programmed a few Visual BASIC programs, but was underwhelmed with how BASIC the programming language was Tried installing Python and Ruby to much frustration Tried installing Cygw*n to make Python/Ruby easier to work with Read on the Cygw*n site about something called Linux Started working with C and C++ Customizing my deck Tried to customize as much as I could about my W*ndows install Utilized tools to change the boot logo, the start menu, the init scripts, etc. Hit a few snags with problems boot-looping, not loading graphically, etc Tried editing the W*ndows registry and realized that the programs I was using to edit the operating system necessarily break the security and stability of the OS Didn't really know/care about open source, but was getting frustrated that I wasn't able to just reach in to my system's code to fix it. Show Notes Important Links: I couldn't really find any of the stuff that I used and, at this point, I'm not super motivated to find them. Wikipedia Articles: https://en.wikipedia.org/wiki/Thomas_Hobbes Contact Me Email: izzyleibowitz at pm dot me Mastodon: at blackernel at nixnet dot social

E

Oct 19

21 min 25 sec

speech recognition machine_learning (ML) artificial_intelligence (AI) speech_recognition Natural Language Processing (NLP) https://rmccurdy.com/stuff/NLP/ ( example files ) Some higher maf here that is above my head for now ... https://towardsdatascience.com/using-keyword-extraction-for-unsupervised-text-classification-in-nlp-10433a1c0cf9 https://www.interviewquery.com/blog-keyword-extraction/

Oct 18

25 min 12 sec

Counter Point This show is a counter point to: hpr3414 :: Critical Thinking may make You Critical of the Covid Crisis A response to Critical Thinking may make You Critical of the Covid Crisis (HPR episode 3414, produced by CoGo and released on 2021-09-02) Defining terms What is Critical Thinking? The Wikipedia definition begins: "Critical thinking is the analysis of facts to form a judgment." It goes on to say: "The subject is complex, and several different definitions exist, which generally include the rational, skeptical, unbiased analysis, or evaluation of factual evidence." See the references below. Note the use of the terms fact, factual evidence and unbiased analysis. It is my contention that HPR episode 3414 fails in these regards in several places. What is an "experiment"? Wikipedia’s definition begins: "An experiment is a procedure carried out to support or refute a hypothesis. Experiments provide insight into cause-and-effect by demonstrating what outcome occurs when a particular factor is manipulated." The term experiment is often used incorrectly in episode 3414. A better term would be observation or anecdote The virus: The virus is a coronavirus. There are many viruses classified in this way. The name of the virus is SARS-CoV-2. The SARS part stands for Severe Acute Respiratory Syndrome, the type of disease caused by the virus. CoV signifies that it is a coronavirus and the 2 means it’s the second SARS-type corona virus to have caused problems in the recent past. The other one, just called SARS occurred in 2003. The name of the disease caused by SARS-CoV-2 is COVID-19. The letters COVID define it as a coronavirus disease. The 19 part is because it was first discovered in 2019. References: Wikipedia article on Critical Thinking University of Greenwich: What is critical thinking? Wikipedia article on Experiments Long notes Follow this link to read the detailed notes associated with this episode. Collected references: Wikipedia article: Critical thinking: https://en.wikipedia.org/wiki/Critical_thinking University of Greenwich article. What is critical thinking?: https://www.gre.ac.uk/articles/ils/critical-thinking Wikipedia article: Experiment: https://en.wikipedia.org/wiki/Experiment Where does the six-foot guideline for social distancing come from?: https://qz.com/1831100/where-does-the-six-feet-social-distancing-guideline-come-from/ Wikipedia article: Social distancing: https://en.wikipedia.org/wiki/Social_distancing How effective is a mask in preventing COVID‐19 infection?: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7883189/ Why Masks Work BETTER Than You’d Think: https://www.youtube.com/watch?v=Y47t9qLc9I4 Coronavirus disease (COVID-19): Ventilation and air conditioning: https://www.who.int/news-room/q-a-detail/coronavirus-disease-covid-19-ventilation-and-air-conditioning Ventilation and air conditioning during the coronavirus (COVID-19) pandemic: https://www.hse.gov.uk/coronavirus/equipment-and-machinery/air-conditioning-and-ventilation/index.htm False Perception of COVID-19’s Impact on the Homeless: https://www.factcheck.org/2020/05/false-perception-of-covid-19s-impact-on-the-homeless/ Vitamin D3 as Potential Treatment Adjuncts for COVID-19: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7697253/ Graphic Outbreak of severe acute respiratory syndrome in Hong Kong Special Administrative Region: case report: https://www.bmj.com/content/326/7394/850 Response to - Graphic Outbreak of severe acute respiratory syndrome in Hong Kong Special Administrative Region: case report: https://www.bmj.com/rapid-response/2011/10/29/coronavirus-may-be-killed-higher-body-temperature Childhood Vaccination and the NHS: https://peopleshistorynhs.org/encyclopaedia/childhood-vaccination-and-the-nhs/ COVID-19 false dichotomies and a comprehensive review of the evidence regarding public health, COVID-19 symptomatology, SARS-CoV-2 transmission, mask wearing, and reinfection: https://bmcinfectdis.biomedcentral.com/articles/10.1186/s12879-021-06357-4 Coronavirus (COVID-19) vaccines side effects and safety: https://www.nhs.uk/conditions/coronavirus-covid-19/coronavirus-vaccination/safety-and-side-effects/ TWiV 802: "Another epitope with Shane Crotty": https://www.youtube.com/watch?v=nEB4oxO9F1A UK parliament discussion on 2m rule. https://hansard.parliament.uk/Commons/2020-06-15/debates/AE7AB431-1668-4AAA-AA32-8A0B83124D30/details Government minister retracts mask claim. https://www.holyrood.com/news/view,john-swinney-apologises-for-sharing-covid-face-mask-graphic Nature paper on masks and aerosols. https://www.nature.com/articles/s41598-020-72798-7 Our World in Data. https://ourworldindata.org/covid-cases Nature paper on COVID-19 and T cells. https://www.nature.com/articles/s41586-020-2550-z Antibody waning and COVID-19. https://www.ouh.nhs.uk/covid-19/news/article.aspx?id=1415

E

Oct 15

1 hr 14 min

The psion series 5mx is a portable computer from the late 90s, here's my episode talking about it. https://en.wikipedia.org/wiki/Psion_Series_5 PLPTools (syncing with modern linux): https://github.com/rrthomas/plptools Nconvert (file converter): https://web.archive.org/web/20161130192611/http://neuon.com/downloads/nconvert/ Programming book: https://archive.org/details/book_20210531 psion linux SDK: https://github.com/static-void/psion_cpp_sdk_linux.git Eric Lindsey's site, with lots of psion software: http://ericlindsay.com/epoc/index.htm Apologies for talking quickly!

Oct 14

20 min 54 sec

Audio Notes During the audio I repeatedly called it the Neutron mower instead of the Neuton mower. I was too lazy edit those mispronunciations. Introduction After recently reclaiming my Neuton EM 4.1 electric lawn mower from my parents, I needed to replace the battery to make it operational. This mower was purchased in the early 2000s, and replacement batteries for it are no longer available from the manufacturer. Thankfully replacement 12V 10A batteries are available through third parties. Replacing Parts I faced two issues with finding replacement parts. The Neuton mowers run at 24V and need batteries that can provide 10 amps of current. They come with a battery case that holds two 12V 10A batteries connected in series. The case holds the batteries and provides a connector and circuitry for a 24V DC charger. When I received the mower back from my parents, it didn't have a battery case with it. While the Neuton website is still online, and looks like you can order some accessories still, they no longer carry replacement battery cases or batteries. I was able to find just the case on EBay. I then found replacement batteries on Amazon. Installing the batteries in the case is simple. One side of the case has a lid. The lid is held in place by plastic notches on the bottom and two screws at the top. The screws have size 10 star heads. The batteries sit side by side in the case, with their terminals facing the lid. I connected the inner terminals (negative of one battery to positive of the other) with the jumper wire that came with the case. I then connected the outer terminals to the battery case terminal wires, slid the batteries all the way into case, closed, and fastened the lid. Conclusion The batteries are currently charging. The red charging light did come on when I plugged in the 24V DC charger, and nothing has exploded yet, so I am optimistic I will be able to use the mower again shortly. References Neuton CE5.4 24 volt rechargeable battery CASE ONLY - EBay item Mighty Max Battery 12V 10AH Replaces HE12V127 HGL1012 LCRB1210P NEUTON CE5 POWPS12100 Battery - 2 Pack Brand Product - Amazon item Attribution The transition sound used between audio clips is found on freesound.org: Name: Harp Transition Music Cue Author: DanJFilms License: Creative Commons Zero

Oct 13

12 min 9 sec

Counter Point This show is a counter point to: hpr3414 :: Critical Thinking may make You Critical of the Covid Crisis Some time ago, I did some Hacker Public Radio episodes in which I ostensibly demonstrated how to create a PDF with Scribus. Secretly, I was actually demonstrating how unexpected payloads could be embedded into a PDF. Did the PDF I uploaded as part of that episode no longer contain a payload if the listener who downloaded it wasn't aware that the payload existed? I've been diagnosed by educators as a "life long learner," which as far as I can tell is a buzzword referring to someone who takes pleasure in learning new things. In our world of technology, dear listener, I think this term is just "hacker." And that's appropriate, because this is Hacker Public Radio you're listening to now, and listeners of this show tend to be people who enjoy learning and exploring new ideas, taking apart gadgets to see what makes them tick, reverse engineering code and data to understand how it gets processed, and so on. The thing about being a hacker or a life-long learner is that there's a lot of stuff out there that wants to be hacked, or learnt. And it turns out that it's just not possible to learn everything. Sometimes, you're out of your depth. It can be tricky to recognize when you're out of your depth, and I think there's a certain learn-able skill to knowing that you don't know something. There's a lot of value to this skill, because when you can recognize you don't have expertise on something, you're able to look around you and find someone who has. That's significant because you can learn from someone with expertise. In my own humdrum life, before getting a full-time job at a tech company, I was commissioned on several occasions to build out infrastructure for a video game development project, an indie radio station, a few different multimedia projects, and so on. When I took on those roles, I became the resident expert. People turned to me for the authoritative word on what technological solutions should be used. When I told them, they were more or less obligated to listen, because that was the role I'd been hired for. If they were to ask me what a workstation should run, and I said Linux, but they bought a Mac instead, then my role would be unarguably redundant. They could just as easily type the question into a search engine on the Internet, and ignore the result. Or they could roll a die, or whatever. In those cases, though, it's a question of my opinion compared to someone else's opinion. Both are valid. Because I was the architect, my opinion mattered more to the long-term plan, but if the long-term plan were to change from having a highly-available cluster for fast 3d model rendering to having workstations with a familiar desktop, then my opinion would be less valid. But there are some areas in life where opinions don't matter. Specifically, that area is science. But what is science, anyway? People talk about science a lot, but it took me a long time, especially as someone who largely came from an artistic background, to comprehend the significance of the term, much less how it worked. Forget about all the high school classes and pop dietitians and physicists. Science is a framework. It's a set of principles designed to help our human brains hack the world around us in a methodical and precise way. Instead of letting our opinions, which may or may not be relevant, influence conclusions and decisions we make, science looks at the results of controlled input and output. Wait a minute. "Input and output"? Those are words I understand. Those are computer terms! Yeah it turns out that computers are the product of science, and in fact building computers and programming computers is a form of Computer Science. Those are just words we made up, but they reveal a lot about what we computer hackers do all day. Computers don't understand the influence of opinion, or your force of will, or the power of faith. They just take input and produce output. They do this very reliably. I don't know whether you've ever tried, but it's really hard to make a computer. Comprehending how a CPU processes rudimentary electrical pulses to transform them into complex instruction sets is mind-bending, at least to me. I've sat down and thought about it critically. I've set up a few experiments, too. There's one you can do with dominoes, believe it or not, that can somewhat help you design a logic circuit. There's a Turing Machine you can build with Magic The Gathering cards. And an electronics kit that'll help you build an 8bit CPU. But even with all of those experiments, the open RISC-V CPU still eludes my comprehension. And just to be clear: back in 2008 or so, I was hired to stress test a RISC CPU to determine whether it was efficient at rendering massive amounts of video. I designed tests in an attempt to prove that a RISC CPU could not out-perform the latest Intel Core2duo, and could not achieve the goal (RISC is better, what can I say?) So my affinity for RISC is far from just a passing interest. But I can't build a RISC-V or even really explain how a CPU works. For that, I understand that there are experts. These aren't just people I call experts because they're labeled that way on their shirt pocket. They're experts because they're building the RISC-V, and it works. I met some of them back at OSS Con in 2019. I recognize their expertise, because they're proving their knowledge. Let's say I approached the RISC-V booth with the preconception that x86 was superior. After all, why would most consumer computers be running x86 if it weren't the best? I might be skeptical if I were told that RISC-V is superior for some tasks. Could they have ulterior motives? Could they have been paid off by Big Silicon to lie about RISC's performance in order to hurt x86's marketshare? Sure, it could happen. And that skepticism is important. It's arguably part of the scientific process. Look at the results of an experiment, replicate the input and ensure that the output is reliably the same. But you can't be sure until you've duplicated the experiments that make the claim in the first place. Unfortunately, this often requires some pretty controlled environments, and possibly some pretty high end equipment. The bottom line is that I'm never going to get around to doing that, I'm never going to have access to those resources, and I'm never going to have the understanding I'd need to comprehend all the potential variables involved. In short, I just don't have the expertise. But I'm willing to trust the expertise of a lot of people from all over the world working on this project. I'm going to trust that because they all agree on similar findings, that what they're saying about the design and architecture of their CPU, that there's a high likelihood that their findings are correct. The same goes, as it turns out, for biological sciences. No matter how many one-off experiments discover that cigarette smoking is beneficial to your health, the wider scientific consensus is that it's harmful. No matter how man "free-thinkers" on the Internet discover that Covid-19 is actually no worse than the common cold, the worldwide scientific community asserts that it's actually harmful, and medical staffs across the globe assert that increased cases of Covid-19 cause bed and healthcare shortages for everyone else. Somebody online may assert that it's an impossibly unified globe-spanning political plot, but that relies on a bunch of untest-able opinions and interpretations of reality that fall well outside any scientific framework. It seems to me that this line of speculation makes about as much sense as asking whether your computer can really still add numbers accurately. Couldn't it occasionally be lying to you? The device you're using to listen to my voice right now not to scramble what I'm saying and accurately play what I recorded in the first place is based on the same scientific principles used by those in biological sciences. We're feeding data into functions, whether the function is written in code, forged in silicon, or written on paper as a math formula, and we're observing the results. When every expert in their field, across the entire globe, agrees on the output, I think we do too. It's either that, or we'd better all go build our own 8bit circuits out of chickens and batteries and just start to rebuild. So did the PDF I uploaded as part of the Scribus episode no longer contain a payload if the listener who downloaded it wasn't aware that the payload existed? Obviously not. If the listener lacked the foresight or expertise to investigate the PDF for a hidden file, then they could have posted an episode of their own about how my PDF was completely normal. They'd have been confident in their findings. But you and I know that whatever experiments they might have used to come to the conclusion that Klaatu was NOT a liar was, in the end, insufficient. The payload did exist, but it was just outside this imaginary listener's detection or comprehension. Critical thinking is important. But at the same time, the scientific framework requires more than just critical thinking, just as building a RISC-V CPU requires more than just being a fan of reduced instruction sets. And solving the Covid-19 crisis takes a lot more than just critical thinking and a couple of backyard "experiments." We're not in the Dark Ages any more, folks. Get vaccinated. Stay safe, and I'll talk to you next time.

Oct 12

13 min 45 sec

PROS: easy clean up just fold and vacuum height is great for tall people so I'm not hunched over the table saves space CONS: I ran into it 2 times so I rounded the edges I just now hit my head on it ... folded and crashed everything on the table to the ground and pic I custom made fell of the wall and into my AC water bucket loud when using and setting up everything echoes though the walls at night etc https://smile.amazon.com/gp/product/B08F4VNT9P $60 MDF cut at Lowes $50

E

Oct 11

16 min 15 sec

Layer Modes, sometimes called Blending Modes, allow you to combine layers in a variety of ways. We continue with the Lighten Modes, except for Dodge which we will cover in the next tutorial along with Burn. These are the Layer Modes available on the latest (at the time I write this) version of GIMP, 2.10.24. Links: https://en.wikipedia.org/wiki/Luma_(video) https://blog.johnnovak.net/2016/09/21/what-every-coder-should-know-about-gamma/ https://www.youtube.com/watch?v=Ijwb1R07aa0 https://docs.gimp.org/2.10/en/gimp-concepts-layer-modes.html https://www.ahuka.com/gimp/lighten-layer-modes/

Oct 8

21 min 42 sec

In this episode, Martin and Chris host an eclectic panel of contributors to the *other* major FLOSS operating system family - you guessed it: the flavours of the Berkeley Software Distribution (aka BSD among friends). Disclaimer: you may be tempted to diverge from the Path of the Righteousness also known as Linux and give this alternative a spin. So this episode is *not* for the faint-hearted - listen at your own discretion! Also: the true defective nature of our beloved (?) hosts' past will be revealed - an episode not be missed despite the caveat! Plus a refresher on spaced-out operating system concepts including library operating systems and a rant on Android and friends. In addition to some cool BSD trolling... Links: OpenBSD: https://www.openbsd.org FeeBSD: https://www.freebsd.org NetBSD: https://www.netbsd.org DragonFlyBSD: https://www.dragonflybsd.org 386BSD: https://www.386bsd.org RUMP kernel: https://en.wikipedia.org/wiki/Rump_kernel Library operating systems: https://www.sigarch.org/leave-your-os-at-home-the-rise-of-library-operating-systems Free BSD Linux Compatibility: https://docs.freebsd.org/en/books/handbook/linuxemu BSD Jails (original paper): https://papers.freebsd.org/2000/phk-jails.files/sane2000-jail.pdf FeeBSD Ports: https://www.freebsd.org/ports NetBSD pkgsrc: https://www.netbsd.org/docs/pkgsrc ZFS: https://en.wikipedia.org/wiki/ZFS BSD's pledge: https://unix.stackexchange.com/questions/410056/what-is-openbsds-pledge-in-short FreeBSD and Netflix: https://papers.freebsd.org/2019/fosdem/looney-netflix_and_freebsd BSD Firewalls: https://docs.freebsd.org/en/books/handbook/firewalls Michael W. Lucas' "Savaged by Systemd": hhttps://www.goodreads.com/book/show/36190710-savaged-by-systemd Linux vs. Minix: https://www.oreilly.com/openbook/opensources/book/appa.html Pegasus spyware: https://en.wikipedia.org/wiki/Pegasus_(spyware) BSD History presentation: https://www.youtube.com/watch?v=DEEr6dT-4uQ The tragedy of systemd: https://www.youtube.com/watch?v=o_AIw9bGogo The Rise and Fall of Copyleft: https://archive.org/download/OhioLinuxfest2013/24-Rob_Landley-The_Rise_and_Fall_of_Copyleft.mp3

E

Oct 7

1 hr 39 min

Here are links to all the search engines and related stuff discussed during this podcast, Searx: https://www.searx.me/ Searx public instances: https://searx.space/ Whoogle: https://github.com/benbusby/whoogle-search Whoogle public instances: https://github.com/benbusby/whoogle-search#public-instances MetaGer: https://metager.org/ MetaGer browser extensions: https://metager.org/plugin MetaGer mobile apps: https://metager.org/app MetaGer privacy policy: https://metager.org/datenschutz Gigablast: https://gigablast.com/ Gigablast privacy policy: https://gigablast.com/privacy.html Private.sh: https://private.sh/ Private.sh privacy policy: https://private.sh/extension.html Ecosia: https://www.ecosia.org/ Ecosia mobile apps: https://info.ecosia.org/mobile Ecosia privacy policy: https://info.ecosia.org/privacy Startpage: https://www.startpage.com/ Startpage privacy policy: https://www.startpage.com/en/search/privacy-policy.html Qwant: https://www.qwant.com/ Qwant Junior: https://www.qwantjunior.com/ Qwant browser extensions: https://help.qwant.com/help/qwant-search/add-qwant-on-desktop/ Qwant privacy policy: https://about.qwant.com/en/legal/confidentialite/ Brave Search: https://search.brave.com/ Brave Search privacy policy: https://search.brave.com/help/privacy-policy DuckDuckGo: https://duckduckgo.com/ DuckDuckGo browser extensions & apps: https://duckduckgo.com/app DuckDuckGo privacy policy: https://duckduckgo.com/privacy hpr0773 :: Interview with Gabriel Weinberg of DuckDuckGo

Oct 6

11 min 29 sec

Klaatu asked us what document format we like and why, so this is a response to his podcast. In this podcast I talk about HTML and the importance of good document structure.

Oct 5

7 min 15 sec

table td.shrink { white-space:nowrap } New hosts Welcome to our new hosts: CoGo, BlacKernel. Last Month's Shows Id Day Date Title Host 3413 Wed 2021-09-01 Bash snippet - using coproc with SQLite Dave Morriss 3414 Thu 2021-09-02 Critical Thinking may make You Critical of the Covid Crisis CoGo 3415 Fri 2021-09-03 Hacking Stories with Reacted: part 3 operat0r 3416 Mon 2021-09-06 HPR Community News for August 2021 HPR Volunteers 3417 Tue 2021-09-07 Ceph cluster hardware Daniel Persson 3418 Wed 2021-09-08 My gEeeky Experiment - Part 2 Claudio Miranda 3419 Thu 2021-09-09 Linux Inlaws S01E38: Tiny kernels monochromec 3420 Fri 2021-09-10 Normal Layer Modes: Erase, Merge, and Split Ahuka 3421 Mon 2021-09-13 BlacKernel's Journey Into Technology: Episode 1 BlacKernel 3422 Tue 2021-09-14 Update about Phones and Devices JWP 3423 Wed 2021-09-15 "upg.sh" my "dump.txt" to "note.md" Some Guy On The Internet 3424 Thu 2021-09-16 Infosec Podcasts Part 6 - Infosec Leadership Trey 3425 Fri 2021-09-17 Hacking Stories with Reacted: part 4 operat0r 3426 Mon 2021-09-20 Rust 101: Episode 0 - What in Tarnishing? BlacKernel 3427 Tue 2021-09-21 Ranger for the Win! b-yeezi 3428 Wed 2021-09-22 Bad disk rescue Andrew Conway 3429 Thu 2021-09-23 Linux Inlaws S01E39: Ubuntu and the Community monochromec 3430 Fri 2021-09-24 Booting Ahuka 3431 Mon 2021-09-27 Living in the Terminal BlacKernel 3432 Tue 2021-09-28 Reading a license: Creative Commons Attribution ShareAlike 4.0 International clacke 3433 Wed 2021-09-29 A Squirrels thoughts about RMS Zen_Floater2 3434 Thu 2021-09-30 From 0 to K8s in 30 minutes klaatu Comments this month These are comments which have been made during the past month, either to shows released during the month or to past shows. There are 27 comments in total. Past shows There are 2 comments on 2 previous shows: hpr3297 (2021-03-23) "Nextcloud Application Updating" by ToeJet. Comment 2: Ken Fallon on 2021-09-21: "+1" hpr3377 (2021-07-13) "Chromebook support and more" by Zen_Floater2. Comment 3: FSA on 2021-09-30: "Sound Quality Trolling?" This month's shows There are 25 comments on 13 of this month's shows: hpr3413 (2021-09-01) "Bash snippet - using coproc with SQLite" by Dave Morriss. Comment 1: b-yeezi on 2021-09-01: "New tool for my toolbox"Comment 2: Trey on 2021-09-02: "Excellent detail!"Comment 3: Dave Morriss on 2021-09-02: "Re: New tool for my toolbox"Comment 4: Dave Morriss on 2021-09-02: "Re: Excellent detail!" hpr3414 (2021-09-02) "Critical Thinking may make You Critical of the Covid Crisis" by CoGo. Comment 1: Trey on 2021-09-02: "Controversial topic... Love it!"Comment 2: drad on 2021-09-03: "Great Episode!"Comment 3: Barbara Ann Walko on 2021-09-09: "hpr3414"Comment 4: Joel on 2021-09-09: "Excellent analysis!" hpr3415 (2021-09-03) "Hacking Stories with Reacted: part 3" by operat0r. Comment 1: Willingness on 2021-09-04: "Awesome" hpr3416 (2021-09-06) "HPR Community News for August 2021" by HPR Volunteers. Comment 1: Kevin O'Brien on 2021-09-07: "My former profession" hpr3417 (2021-09-07) "Ceph cluster hardware" by Daniel Persson. Comment 1: Michael on 2021-09-08: "Why Ceph?" hpr3420 (2021-09-10) "Normal Layer Modes: Erase, Merge, and Split" by Ahuka. Comment 1: mu.rupeshkumar@gmail,com on 2021-09-12: "can't hear in Mobile"Comment 2: Ken Fallon on 2021-09-13: "Fixed" hpr3421 (2021-09-13) "BlacKernel's Journey Into Technology: Episode 1" by BlacKernel. Comment 1: Trey on 2021-09-13: "Welcome & thanks for sharing!" hpr3423 (2021-09-15) ""upg.sh" my "dump.txt" to "note.md"" by Some Guy On The Internet. Comment 1: Trey on 2021-09-15: "Great work" hpr3426 (2021-09-20) "Rust 101: Episode 0 - What in Tarnishing?" by BlacKernel. Comment 1: Trey on 2021-09-20: "Thank you."Comment 2: Hipstre on 2021-09-20: "Rust 101, Episode 0" hpr3427 (2021-09-21) "Ranger for the Win!" by b-yeezi. Comment 1: jrullo on 2021-09-22: "Vim lover" hpr3429 (2021-09-23) "Linux Inlaws S01E39: Ubuntu and the Community" by monochromec. Comment 1: Clinton Roy on 2021-09-23: "Just the usual complaint" hpr3430 (2021-09-24) "Booting" by Ahuka. Comment 1: Trey on 2021-09-24: "Trip down memory lane..."Comment 2: Kevin O'Brien on 2021-09-24: "You are most welcome" hpr3431 (2021-09-27) "Living in the Terminal" by BlacKernel. Comment 1: Operat0r on 2021-09-27: "Kids these days!"Comment 2: b-yeezi on 2021-09-28: "+1 for cnus"Comment 3: sesamemucho on 2021-09-29: "The text"Comment 4: Dave Morriss on 2021-09-29: "Very enjoyable" Mailing List discussions Policy decisions surrounding HPR are taken by the community as a whole. This discussion takes place on the Mail List which is open to all HPR listeners and contributors. The discussions are open and available on the HPR server under Mailman. The threaded discussions this month can be found here: http://hackerpublicradio.org/pipermail/hpr_hackerpublicradio.org/2021-September/thread.html Events Calendar With the kind permission of LWN.net we are linking to The LWN.net Community Calendar. Quoting the site: This is the LWN.net community event calendar, where we track events of interest to people using and developing Linux and free software. Clicking on individual events will take you to the appropriate web page. Any other business Older HPR shows on archive.org This month 5 additional shows in the range 1-870 have been uploaded. Since we don't want to upload shows without summaries or tags the old shows and tag and summary projects are now tied together. So we will be all the more welcoming of tag and summary updates submitted as described on the summary page. Tags and Summaries Thanks to the following contributors for sending in updates in the past month: Archer72, Rho`n Over the period tags and/or summaries have been added to 76 shows which were without them. There are currently 38 shows which need a summary and/or tags. If you would like to contribute to the tag/summary project visit the summary page at https://hackerpublicradio.org/report_missing_tags.php and follow the instructions there.

E

Oct 4

56 min 52 sec

I talk about some old old old pentesting stories from days old!

E

Oct 1

19 min 56 sec

Install CentOS or Debian on a Raspberry Pi. I'm using CentOS, but I'll admit that Debian is the easier option by far. Do this on 3 separate Pi units, each with the same specs. Set hostnames You must have unique hostnames for each Pi. Without unique hostnames, your cluster cannot function. There are several "kinds" of hostnames, so to avoid confusion I change all of them. I use a simple naming scheme: k for "kubernetes" + an integer, starting at 100 + c for "cluster": $ sudo hostname k100c $ sudo sysctl kernel.hostname=k100c $ sudo hostnamectl set-hostname k100c $ sudo reboot Do this for each Pi. At a minimum, you end up with Pi computers named k100c, k101c, and k102c. Set verbose prompts When working with many different hosts, it's helpful to have a very verbose prompt as a constant reminder of which host you're connected to. Add this to the ~/.bashrc of each Pi: export PS1='\[\033[1;32m\]\! \d \t \h:\w \n% \[\033[00m\]' Install a Pi finder script Install an LED blinker so you can find a specific Pi when you need one. This brilliant script is by Chris Collins for his article Use this script to find a Raspberry Pi on your network, which explains how to run it. #!/bin/bash set -o errexit set -o nounset trap quit INT TERM COUNT=0 LED="/sys/class/leds/led0" if ! [ $(id -u) = 0 ]; then echo "Must be run as root." exit 1 fi if [[ ! -d $LED ]] then echo "Could not find an LED at ${LED}" echo "Perhaps try '/sys/class/leds/ACT'?" exit 1 fi function quit() { echo mmc0 >"${LED}/trigger" } echo -n "Blinking Raspberry Pi's LED - press CTRL-C to quit" echo none >"${LED}/trigger" while true do let "COUNT=COUNT+1" if [[ $COUNT -lt 30 ]] then echo 1 >"${LED}/brightness" sleep 1 echo 0 >"${LED}/brightness" sleep 1 else quit break fi done Install K3s on your control plane K3s is Kubernetes for IoT and Edge computing. It's the easiest, cleanest, and most serious method of getting Kubernetes on an ARM device. You can try other solutions (Microk8s, Minikube, OXD, and so on), but the best support comes from k3s. First, you must install k3s on one Pi. You can use any of your Pi units for this, but I use host k100c because it's the first in the sequence, so it feels logical. [k100c]$ curl -sfL https://get.k3s.io -o install_k3s.sh [k100c]$ chmod 700 install_k3s.sh Read the script to ensure that it seems to do what you expect, and then: [k100c]$ ./install_k3s.sh After installation, you're prompted to add some arguments to your bootloader. Open /boot/cmdline.txt in a text editor and add cgroup_memory=1 cgroup_enable=memory to the end of it. console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p3 rootfstype=ext4 elevator=deadline rootwait cgroup_memory=1 cgroup_enable=memory Reboot: [k100c]$ sudo reboot Once the Pi is back up, verify that your node is ready: [k100c]$ k3s kubectl get node NAME STATUS ROLES AGE k100c Ready control-plane,master 42s This Pi is the "control plane", meaning it's the Pi that you use to administer your cluster. Get the node token Obtain the control plane's node token. Thanks to k3s, this is autogenerated for you. If you not using k3s, then you must generate your own with the command kubeadm token generate. Assuming you're using k3s: $ MYTOKEN=$(sudo cat /var/lib/rancher/k3s/server/node-token) $ echo $MYTOKEN K76351a1c2497d907ba7a156028567e0ccc26b82d2174161c564152ab3add6cc3fb::server:808771e4e695e3e3465ed9a14a0581da Add your control plane hostname to your hosts file If you know how to manage local DNS settings, then you can use a DNS service to identify the hosts in your cluster. Otherwise, the easy way to make your nodes know how to find your control plane is to add the control plane's hostname and IP address to the /etc/hosts file on each node. This also assumes that your control plane has a static local IP address. For example, this is the host file of k101c and k102c: 127.0.0.1 localhost.localdomain localhost ::1 localhost6.localdomain6 localhost6 10.0.1.100 k100c Verify that each host can find the control plane. For example: [k101c]$ ping -c 1 k100c || echo "fail" [k101c] Add nodes to your cluster Now you can add the other Pi computers to your cluster. On each Pi you want to turn into a computer node, install k3s with the control plane and token as environment variables. On my second Pi, for instance, I run this command: [k101c]$ curl -sfL https://get.k3s.io | K3S_URL=https://k100c:6443 K3S_TOKEN="${MYTOKEN}" sh - On my third and final Pi, I run the same command: [k102c]$ curl -sfL https://get.k3s.io | K3S_URL=https://k100c:6443 K3S_TOKEN="${MYTOKEN}" sh - Verify your cluster On your control plane, verify that all nodes are active: % k3s kubectl get nodes NAME STATUS ROLES AGE VERSION k100c Ready control-plane,master 2d23h v1.21.4+k3s1 k102c Ready 21h v1.21.4+k3s1 k101c Ready 20h v1.21.4+k3s1 It can take a few minutes for the control plane to discover all nodes, so wait a little while and try the command again if you don't see all nodes right away. You now have a Kubernetes cluster running. It isn't doing anything yet, but it's a functional Kubernetes cluster. That means you have a tiny Pi-based cloud entirely at your disposal. You can use it to learn about Kubernetes, cloud architecture, cloud-native development, and so on. Create a deployment and some pods Now that you have a Kubernetes cluster running, you can start running applications in containers. That's what Kubernetes does: it orchestrates and manages containers. You've may have heard of containers. I did an episode about Docker containers in episode 1522 of HPR, you can go listen to that if you need to catch up. I've also done an episode on LXC in episode 371 of my own show, GNU World Order. There's a sequence to launching containers within Kubernetes, a specific order you need to follow, because there are lots of moving parts and those parts have to reference each other. Generally, the hierarchy is this: namespaces are the "project spaces" of kubernetes. I cover this in great detail in my GNU World Order episode 13x39. create a deployment that manage pods. pods are groups of containers. it helps your cluster scale on demand. services are front-ends to deployments. A deployment can be running quietly in the background and it'll never see the light of day without a service pointing to it. traffic, or exposure. A service is only available to your cluster until you expose it to the outside world with an external IP address. First, create a namespace for your test application to use. [k100c]$ k3s kubectl create namespace ktest The Kubernetes project provides an example Nginx deployment definition. Read through it to get an idea of what it does. It looks something like this: apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment spec: selector: matchLabels: app: nginx replicas: 2 # tells deployment to run 2 pods matching the template template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.14.2 ports: - containerPort: 80 This creates metadata named nginx-deployment. It also creates a label called app, and sets it to nginx. This metadata is used as selectors for pods and services later. For now, create a deployment using the example: [k100c]$ k3s kubectl --namespace ktest \ create -f https://k8s.io/examples/application/deployment.yaml Confirm that the deployment has generated and started new pods: [k100c]$ k3s kubectl --namespace ktest get all 3s kubectl --namespace ktest get all NAME READY pod/nginx-deployment-66b[...] 1/1 Running pod/nginx-deployment-66b[...] 1/1 Running NAME READY deployment.apps/nginx-deployment 2/2 NAME replicaset.apps/nginx-deployment-66b6c48dd5 See the pods labelled with app: nginx: [k100c]$ k3s kubectl --namespace ktest \ get pods -l app=nginx NAME READY STATUS nginx-deployment-66b6c48dd5-9vgg8 1/1 Running nginx-deployment-66b6c48dd5-prgrf 1/1 Running nginx-deployment-66b6c48dd5-cqpgf 1/1 Running Create a service Now you must connect the Nginx instance with a Kubernetes Service. The selector element is set to nginx to match pods running the nginx application. Without this selector, there would be nothing to correlate your service with the pods running the application you want to serve. [k100c]$ cat << EOF | k3s kubectl \ --namespace ktest create -f - apiVersion: v1 kind: Service metadata: name: nginx-deployment labels: run: nginx-deployment spec: ports: - port: 80 protocol: TCP selector: app: nginx EOF service/nginx-deployment created Verify that the service exists: [k100c]$ k3s kubectl --namespace ktest get svc nginx-deployment NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE nginx-deployment ClusterIP 10.43.32.89 80/TCP 58s A Service is backed by a group of Pods. Pods are exposed through endpoints. A Service uses POST actions to populate Endpoints objects named nginx-deployment. Should a Pod die, it's removed from the endpoints, but new Pods matching the same selector are added to the endpoints. This is how Kubernetes ensures your application's uptime. To see more information: [k100c]$ k3s kubectl \ --namespace ktest \ describe svc nginx-deployment Name: nginx-deployment Namespace: ktest Labels: run=nginx-deployment Annotations: Selector: app=nginx Type: ClusterIP IP Family Policy: SingleStack IP Families: IPv4 IP: 10.43.251.104 IPs: 10.43.251.104 Port: 80/TCP TargetPort: 80/TCP Endpoints: 10.42.2.8:80,10.42.2.9:80,10.42.3.7:80 Session Affinity: None Events: Notice that the Endpoints value is set to a series of IP addresses. This confirms that instances of Nginx are accessible. The IP of the service is set to 10.43.251.104, and it's running on port 80/TCP. That means you can log onto any of your nodes (referred to as "inside the cluster") to interact with your Nginx app. This does not work from your control plane, only from a node. [k101c]$ curl http://10.43.251.104 Welcome to nginx! Welcome to nginx! Nginx is accessible. The only thing left to do now is to route traffic from the outside world. Exposing a deployment For a deployed application to be visible outside your cluster, you need to route network traffic to it. There are many tools that provide that functionality. Install metallb: $ k3s kubectl apply \ -f https://raw.githubusercontent.com/metallb/metallb/v0.10.2/manifests/namespace.yaml $ k3s kubectl apply \ -f https://raw.githubusercontent.com/metallb/metallb/v0.10.2/manifests/metallb.yaml $ k3s kubectl create secret generic \ -n metallb-system memberlist \ --from-literal=secretkey="$(openssl rand -base64 128)" Determine what network range you want your cluster to use. This must not overlap with what your DHCP server is managing. --- apiVersion: v1 kind: ConfigMap metadata: namespace: metallb-system name: config data: config: | address-pools: - name: address-pool-0 protocol: layer2 addresses: - 10.0.1.1/26 Save this as metallb.yaml and apply the configuration: $ k3s kubectl apply -f metallb.yaml You now have a configmap for metallb, and metallb is running. Create a load balance service mapping your deployment's ports (port 80 in this case, which you can verify with k3s kubectl -n ktest get all). Save this as loadbalance.yaml: --- apiVersion: v1 kind: Service metadata: name: ktest-ext namespace: ktest spec: selector: app: nginx ports: - protocol: TCP port: 80 targetPort: 80 type: LoadBalancer This service selects any deployment in the ktest namespace with an app name of nginx, and maps the container's port 80 to a port 80 for an IP address within your address range (in my example, that's 10.0.1.1/26, or 10.0.1.1-10.0.1.62). $k3s kubectl apply -f loadbalance.yaml Find out what external IP address it got: $ k3s kubectl get service ktest-ext -n ktest NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) ktest LoadBalancer 10.43.138.91 10.0.1.3 80:31790/TCP Open a web browser and navigate to the external IP address listed (in this example, 10.0.1.3).

Sep 30

32 min 55 sec

This podcast was provided by Zen_Floater2 in his personal capacity. The opinions expressed in this podcast are the author's own and do not reflect the view of Hacker Public Radio. Shownotes Edited by Ken on 2021-09-11T14:35:19Z to include disclaimer. A Squirrels thoughts about freedom and RMS. I also cover guns on aircraft. I cover smoking on aircraft. And I cover drinking beer on aircraft. And COBOL as well.

E

Sep 29

44 min 59 sec

Previous episode: https://hackerpublicradio.org/eps.php?id=3412hpr3412 :: Reading a license: Creative Commons Attribution ShareAlike 3.0 Unported Timeline 2007-02-23 https://creativecommons.org/2007/02/23/version-30-launched/ 2007-09-26 https://www.gnu.org/licenses/gpl-3.0.html 2011-11-03 https://creativecommons.org/2011/11/03/copyright-experts-discuss-cc-license-version-4-0-at-the-global-summit/ Internationalization Interoperability Long-lasting Data/PSI (Public Sector Information?)/Science/Education Supporting Existing Adoption Models and Frameworks 2013-11-25 https://creativecommons.org/2013/11/25/ccs-next-generation-licenses-welcome-version-4-0/ 30-day violation grace periodhttps://creativecommons.org/faq/#how-can-i-lose-my-rights-under-a-creative-commons-license-if-that-happens-how-do-i-get-them-back 2013-12-06 16Z--18Z CC site moves to 4.0 -- last snapshot with 3.0 is https://web.archive.org/web/20131206155520/http://creativecommons.org/ 2014-10-21 CC-by-SA 4.0 and Free Art License 1.3 defined as two-way compatible licenseshttps://creativecommons.org/2014/10/21/big-win-for-an-interoperable-commons-by-sa-and-fal-now-compatible/ 2015-10-08 GPLv3 defined as a one-way compatible license for CC-by-SA 4.0https://creativecommons.org/2015/10/08/cc-by-sa-4-0-now-one-way-compatible-with-gplv3/ Links to license and deed and links from within the texts https://creativecommons.org/licenses/by-sa/4.0/ https://creativecommons.org/licenses/by-sa/4.0/legalcode The text of the Creative Commons public licenses is dedicated to the public domain under the CC0 Public Domain Dedication. https://freedomdefined.org/Definition of Free Cultural Works https://wiki.creativecommons.org/License_Versions#Detailed_attribution_comparison_chartHow to give credit https://wiki.creativecommons.org/License_Versions#Modifications_and_adaptations_must_be_marked_as_suchHow to mark a work as modified https://wiki.creativecommons.org/FAQ#If_I_derive_or_adapt_material_offered_under_a_Creative_Commons_license.2C_which_CC_license.28s.29_can_I_use.3FHow and when you can relicense a work https://wiki.creativecommons.org/License_Versions#Application_of_effective_technological_measures_by_users_of_CC-licensed_works_prohibitedDefinition of effective technological measure https://wiki.creativecommons.org/Frequently_Asked_Questions#Do_Creative_Commons_licenses_affect_exceptions_and_limitations_to_copyright.2C_such_as_fair_dealing_and_fair_use.3FWhen do you not need a license https://wiki.creativecommons.org/Considerations_for_licensors_and_licenseesLimitations, scope, community practices and advice https://wiki.creativecommons.org/FAQ Other links 39 jurisdiction ports of by-SA 3.0 https://wiki.creativecommons.org/wiki/CC_Ports_by_Jurisdiction Next episode will be based on https://creativecommons.org/version4/ Creative Commons License Deed Original: https://creativecommons.org/licenses/by-sa/4.0/ The below is an Adaptation that has been reformatted for simplicity and focus on the text, removed graphical elements such as the Creative Commons Attribution and ShareAlike icons and has simple links to more info where there was originally a popup with a brief description and then a link. This Adaptation is released under CC-by 3.0: http://creativecommons.org/licenses/by/3.0/ Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) This is a human-readable summary of (and not a substitute for) the license. Disclaimer This deed highlights only some of the key features and terms of the actual license. It is not a license and has no legal value. You should carefully review all of the terms and conditions of the actual license before using the licensed material. Creative Commons is not a law firm and does not provide legal services. Distributing, displaying, or linking to this deed or the license that it summarizes does not create a lawyer-client or any other relationship. You are free to: Share - copy and redistribute the material in any medium or format Adapt - remix, transform, and build upon the material for any purpose, even commercially. The licensor cannot revoke these freedoms as long as you follow the license terms. Under the following terms: Attribution - You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use. ShareAlike - If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. No additional restrictions - You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. Notices: You do not have to comply with the license for elements of the material in the public domain or where your use is permitted by an applicable exception or limitation. No warranties are given. The license may not give you all of the permissions necessary for your intended use. For example, other rights such as publicity, privacy, or moral rights may limit how you use the material. Creative Commons Legal Code Original: https://creativecommons.org/licenses/by-sa/4.0/legalcode Plain Adaptation re-hosted on HPR: https://hackerpublicradio.org/eps/hpr3432/

Sep 28

33 min 55 sec

Talking Points Rational Sometimes, X.org just doesn't want to work Esspecially if you are a dumb n00b running Arch The terminal will always be there for you. Applications: My .bashrc: Environment Variables: export EDITOR=nvim export PAGER=most export BROWSER=lynx export XDG_DATA_HOME="$HOME/.local/share" export XDG_CONFIG_HOME="$HOME/.config" PS1: user@hostname:~ (git_branch) $ if [[ $EUID == 0 ]]; then export PS1="\[e[1;31m\]\u\[\e[m\]@\[\e[0;32m\]\h\[\e[m\]:\w\$(__git_ps1) # " else export PS1="\[e[1;34m\]\u\[\e[m\]@\[\e[0;32m\]\h\[\e[m\]:\w\$(__git_ps1) $ " fi Aliases: alias vim=nvim alias play=mpv Productivity ("Window Manager"): tmux Provides an easy way of splitting a tty into various panes Get multiple workspaces for free with CTL+ALT+F{1,2,3,4,5,6,7} All of the tiling window manager, none of the X-it Can set up if [ -t 0 ] && [[ -z $TMUX ]] && [[ $- = *i* ]]; then exec tmux; fi in .bashrc in order to have tmux start/stop with your terminal sessiion. Music: cmus Easy library and playlist management Dead simple to use (with cmus-tutorial) y to yank songs onto a playlist SPA to select a playlist RET to play a song/playlist TAB to switch between panes Pictures: fim Requires user be in the video group for permission to use the Linux framebuffer Radio/Video/single audio files: mpv Can display video in terminal (badly with libcaca) Can actually display video in linux framebuffer (with drm) Can handle all of your somafm files/web-video links Requires youtube-dl for video Podcasts/RSS: newsboat/podboat Orginizes all of your podcasts and RSS feeds into an easy-to-use ncurses interface Can be set up with player "mpv --save-position-on-quit" to save positions on podcasts Very convinent for articles, less so for podcasts Really needs better integration with something like cmus Runner Up: podfox Can be configured with JSON Has better directory structure than podboat, imo Tree based structure vs shove everything in ~ by default Text Editing/Word Processing: neovim/GitX Flavored Markdown/pandoc Clean modal editing Can export to whatever with pandoc Probably not as good as OrgMode if emacs wasn't the HFS+ of text editors Audio Recording/Post-Processing: ffmpeg One alias and three scripts in my .bashrc record: alias record="ffmpeg -f alsa -channels 1 -i hw:1" atrim, top-tail, and anorm: Allows me to quickly spin up a recording and run post processing function atrim() { if [ $1 ]; then local in="$1" else local in="-" fi if [ $2 ]; then local out="$2" else local out="-f nut -" fi if [[ $# > 2 ]]; then echo "atrim: requires 2 or fewer arguments" return 1 fi if [ $2 ]; then echo "atrim: silencing $in and saving to $out..."; fi ffmpeg -i $in -af silenceremove=start_periods=1:stop_periods=-1:start_threshold=-50dB:stop_threshold=-50dB:stop_duration=0.75 $out \ 2>/dev/null \ #1>/dev/null if [ $2 ]; then echo "atrim: done"; fi } function top-tail() { local top="$HOME/project/hpr-notes/template/intro-music-slick0-cc0.flac" local tail="$HOME/project/hpr-notes/template/outro-mixed-slick0-manon_fallon-cc0.flac" if [ $1 ]; then local in="$1" else local in="-" fi if [ $2 ]; then local out="$2" else local out="-f nut -" fi if [[ $# > 2 ]]; then echo "hpr-top-tail: requres 2 or fewer arguments" return 1 fi if [ $2 ]; then echo "hpr-top-tail: Topping $in with $top and tailing with $tail..."; fi ffmpeg -i "$top" -i $in -i "$tail" -vn -filter_complex " [0][1]acrossfade=d=1:c1=tri:c2=tri[a01]; [a01][2]acrossfade=d=1:c1=tri:c2=tri" \ $out \ 2> /dev/null \ #1> /dev/null if [ $2 ]; then echo "hpr-top-tail: done"; fi } function anorm() { if [ $1 ]; then local in="$1" else local in="-" fi if [ $2 ]; then local out="$2" else local out="-f nut -" fi if [[ $# > 2 ]]; then echo "anorm: requires 2 or fewer arguments" return 1 fi if [ $2 ]; then echo "anorm: normalizing audio $in and saving to $out..."; fi ffmpeg -i $in $(ffmpeg-lh $in) $out \ #2> /dev/null \ 1> /dev/null if [ $2 ]; then echo "anorm: done"; fi } Web Browsing: lynx Fast and easy text based web browsing Can leverage Web 4.0 technologies like Gopher!! Some sites break pretty bad... Email: mutt* I didn't really use email very much when I was living on the terminal and now, since I use protonmail, I don't really have an easy way not to use the webmail. Trying to find a fix to this. Let me know your thoughts! This is the mail client I've heard the most good things about that isn't built into a text editor I can't use Show Notes Important Links: tmux cmus Napalm Lounge by Fat Chance Lester fim mpv youtube-dl newsboat/podboat neovim CommonMark pandoc ffmpeg lynx mutt Resources: atrim.sh top-tail.sh anorm.sh Contact Me Email: izzy leibowitz at pm dot me Mastodon: at blackernel at nixnet dot social

E

Sep 27

46 min 41 sec

The boot process is a very particular system for taking a dead hunk of metal and silicon and turning it into an active computer. It is kind of remarkable, and in the DOS environment you really needed to know how it worked. Links: http://webopedia.com/TERM/B/BIOS.html http://webopedia.com/TERM/R/ROM.html http://webopedia.com/TERM/C/CMOS.html http://webopedia.com/TERM/p/power_on_self_test.html http://webopedia.com/TERM/M/MBR.html http://webopedia.com/TERM/k/kernel.html http://webopedia.com/TERM/s/shell.html http://webopedia.com/TERM/i/internal_command.html http://webopedia.com/TERM/b/batch_file.html https://www.ahuka.com/dos-lessons-for-self-study-purposes/dos-lesson-2-booting/

Sep 24

14 min 14 sec