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.
feedback@NOSPAM-hackerpublicradio.org (HPR Feedback)

This show has been flagged as Clean by the host. Basic-Filtering 01 Introduction This is the second episode in a four part series on a simple way to create your own HPR podcast episode. 02 This episode will cover the following topics: Basic filtering.. De-essing to improve voice quality. And normalizing to adjust audio levels for easier reviewing. 03 Filtering is removing unwanted noise from an audio signal. There are several ways of doing this. It is possible to do this with Audacity, but I don't know how so I won't try to describe that method. It is possible however to filter using command line tools such as FFMPEG and Sox. When assembled into shell scripts, these tools can become part of an automated process that you can use over and over again for each HPR episode that you record. 04 In a later episode I will discuss how to analyze audio signals to find the sources of noise that can be reduced or eliminated with filters. In this episode however I will discuss basic filtering that you can apply routinely without doing any analysis beforehand. 05 Sources of Noise A question that you may have is "why is there noise in the recording?" There are many sources of undesirable noise. 06 A very common one that you may not be aware of is electrical noise that works its way into the electronic recording circuits and is imperceptible to you until you play back the recorded audio. The most common noise signal is what is commonly called "line noise" and is a low frequency hum at 50 or 60 Hz from the electric power lines and reflects the 50 or 60 Hz frequency of the AC power lines feeding your recording hardware. 07 You may be familiar with this low frequency hum from when it emanates from large electrical hardware such as transformers as it makes the laminations vibrate. However, it can also work its way indirectly into electronic equipment as well. Good quality audio hardware may filter all or most of this out, but it is present in a lot of consumer grade hardware. 08 Other sources of electrical noise may reflect specific problems in your recording hardware. I will discuss one such problem with my microphone that I had to address. Still other sources of noise may reflect actual physical audio noise around you, such as fans. Placing the microphone close to your face will help in dealing with a lot of these problems, but you may find filtering to be of some help here as well. 09 Audio Frequency Range Let's start with some basics. A good quality stereo of the type you may have at home is typically rated to perform between 20 Hz and 20 kHz. This is the widest possible range that we need to consider. In reality, this is a far wider range than is needed for a voice oriented podcast. It is also well beyond the range of the hardware that many of your listeners will be using to listen to the podcast. 10 For example, the speakers that I have connected to my PC and a number of headphones and earphones that I have tested drop off drastically below 80 Hz or above 8 kHz, or even above 6 kHz in many cases. This is not audiophile quality hardware, but it is representative of the sort of hardware that a lot of your listeners will be using when listening to podcasts. And to be honest here, a lot of people will have difficulty hearing anything above 8 kHz even with the best quality audio hardware due to hearing loss from environmental noise exposure or age. 11 You can get a good idea of what different frequencies sound like by generating sine waves using either FFMPEG or Sox. Here's an example of generating a 1 kHz sine wave using FFMPEG. A copy of this will be in the show notes. ffmpeg -f lavfi -i "sine=frequency=1000:sample_rate=44100:duration=3" 01000hz.flac This creates a sine wave at 1 kHz and at a sample rate of 44.1 kHz for a duration of 3 seconds and saves it to a flac file named 01000hz.flac 12 Here's the same using Sox. sox -n -r 44100 -b 16 01000hz.flac synth 3 sine 1000 The -b 16 specifies using 16 bit audio to encode it, and the "sine 1000" element specifies the frequency in hertz. 13 You can test this out at different frequencies to get a feel for how your hardware responds. What the effective limits on typical hardware audio range means is that we can quite safely filter out a large part of what is considered to be the "audio range" without any noticeable loss of quality. For the purposes of our discussion here then I will limit the frequency range to between 80 Hz and 12 kHz, and that is being generous. You can probably narrow that, particularly at the top end, without any problems. 14 At the low end, the typical rule of thumb recommended by most people seems to be that for the average male voice you can set the lower threshold at 80 Hz, and for the average female you can set it at 160 Hz. Note that you don't *have* to set the threshold higher for a female. Rather, it is just that you typically *can* set it higher if you wish. Note also that these are averages, and may not reflect an actual individual. 15 Simple Filters We will now create some simple filters using the same command line software mentioned in a previous episode in this series. These are FFMPEG and Sox. 16 First let's define some terminology. A high pass filter passes through frequencies which fall above a certain threshold and blocks frequencies which are below that frequency. A low pass filter passes through frequencies which fall below a certain threshold and blocks frequencies which are above that frequency. 17 In reality there isn't an abrupt cut-off in the filters. Instead there is a gradual roll off or sloping off of amplitude below or above the specified filter frequency. This is for two reasons. One is that if there was an abrupt cut off then it would risk introducing audible distortion in the signal for frequencies on the margin. 18 The other reason is that this is how hardware filters traditionally inherently worked when they were made out of electronic components such as resistors, capacitors, and inductors. The sharpness of this cut off can be adjusted, but we won't be fiddling with it in that sort of detail. You will sometimes see filters specified in terms of "poles". This has to do with describing how filters were constructed using electronic components. Don't worry about it, it doesn't really matter. 19 Here is a typical high pass filter using ffmpeg which filters out frequencies below 80 hertz. # High pass filter. ffmpeg -i inputfile.flac -af "highpass=f=80" outputfile.flac Here is a typical low pass filter using ffmpeg which filters out frequencies above 12 kHz. # Low pass filter. ffmpeg -i inputfile.flac -af "lowpass=f=12000" outputfile.flac 20 Here is a filter which combines the two. # Combined filters. ffmpeg -i inputfile.flac -af "highpass=f=80, lowpass=f=12000" outputfile.flac And here is the same thing using Sox. sox inputfile.flac outputfile.flac highpass 80 lowpass 12000 21 Filtering Out Specific Frequencies Recall that I mentioned that a common source of noise is the 50 or 60 Hz AC power line frequency working its way through the electronics of your recording device. Because filters operate gradually and the 80 Hz lower filter threshold is close to 60 Hz, the high pass filter may not deal with this adequately. 22 Now it happens that your listeners may not be able to hear this 50 or 60 Hz noise anyway because their audio hardware won't reproduce it. That by the way includes you not being able to hear it either when you review your recording before uploading it. However, there may be some HPR listeners who are sitting back sipping a glass of wine and listening to your episode on their stereo and who can hear it. That suggests that we ought to do something about it just in case. 23 I will get into how to analyze audio signals in a later episode, but for now just accept that I looked at the frequency spectrum of a sample recording using my hardware and found a large 60 Hz noise spike which I wanted to address. 24 Experimenting with additional high pass frequencies up to 120 Hz did not improve things much with respect to the 60 Hz problem. There are other parameters which could be tweaked, but at this point it would seem most promising to attack the 60 Hz spike problem directly using a different filter method. To deal with the this 60 Hz spike we can use a "band reject" filter, which removes a specific band of frequencies. We will use this in combination with the filtering that we have already done above. 25 After a small amount of experimenting I came up with the following. I also added in a 50 Hz filter while I was at it, for the benefit of those living in areas with 50 Hz electrical supply. These filters will be included in the show notes, so don't worry if you can't quite understand all the details from a verbal description. 26 Here's the FFMPEG version. # Using ffmpeg ffmpeg -i input.flac -af "highpass=f=80, lowpass=f=12000, bandreject=f=60:width_type=h:w=20, bandreject=f=50:width_type=h:w=20" output.flac 27 This as the following elements A high pass filter at 80 Hz, A low pass filter at 12 kHz, A band reject filter centred at 60 Hz and with a width of 20 hertz. A similar band reject filter centred at 50 Hz. 28 Here's the Sox version. # Sox version. sox input.flac output.flac highpass 80 lowpass 12000 bandreject 60 20 bandreject 50 20 Note that with sox, don't quote the filter definition strings or else it will result in an error as sox doesn't see enough parameters. This is not a problem with ffmpeg. 29 The band reject filter knocks the stuffing out of the 60 Hz line noise, and the 50 Hz parameter should do the same for that frequency as well. This basic filter should be able to be applied to any podcast audio recording without causing any problems. You can probably reduce the low pass frequency from 12 kHz down to 8 kHz without any problems, but I would suggest that you test it with your voice before making that decision. 30 I will come back to filtering out specific frequencies again later when I discuss how I solved a specific problem with the hardware that I am using. However, we have to discuss how to analyze audio signals before we can do that sort of technical troubleshooting, and I will cover that in a later episode. -------------------- 31 De-Essing An additional type of filtering is "de-essing". When recording audio, the microphone or environment may result in "s", "sh", "ch" and possibly other sounds to be exaggerated. These are all higher frequency elements of voice recordings. "De-essing" attempts to soften these sounds by selectively reducing the volume on the frequency band which contains these sounds. 32 Software Filters De-essing is accomplished via software filters. FFMPEG and Sox both have de-essing filters. For FFMPEG, the de-essing filter is built in. For Sox however, we must install an optional plug-in. I will cover this is more detail when I discuss using Sox for de-essing. 33 Do You Need De-Essing? The first thing to make clear however, is that you may not need to worry about this. If you think the audio sounds just fine the way it is, you don't need to do any de-essing to it. De-essing is a very subtle change, and you would probably need to do some careful before and after comparisons of audio samples to tell the difference. I didn't know that a thing called de-essing even existed before I started doing the research to make this podcast episode. However, at this point we are doing things more for fun than out of necessity, so I'll describe it anyway. 34 De-Essing with FFMPEG De-essing with FFMPEG is relatively simple. The filter is built in, and there are just three values to adjust. On the other hand, it is not really obvious what these values mean in practical terms. 35 I will however warn you to not rely on the AI search results from Google to understand this feature. The AI, in my experience, just makes stuff up about it and tells you to use options that don't exist and values that are not valid. I found that the only useful information came from FFMPEG's own web site, and from examples written by actual humans. 36 I then experimented with different values to see what effects they had. Since the results are rather subtle, fine tuning isn't really that necessary and I found that I could arrive at some reasonable values fairly quickly. I will provide the parameters that I found useful for me, and I suspect they would probably work for you as well. 37 Here is a typical de-essing command. ffmpeg -i inputfile.flac -filter_complex "deesser=i=0.5:m=0.5:f=0.5:s=o" -b:a 336k -sample_fmt s16 outputfile.flac 38 The important arguments are i, m, and f. i is intensity for triggering de-essing. The allowed range is 0 to 1. The default is 0. By experimentation I found that "0" means no de-essing, and "1" is maximum de-essing. I found that setting it to "0.5" gave satisfactory results. 39 m is the amount of "ducking on the treble part of sound". The allowed range is 0 to 1. The default is 0.5. By experimentation I found that "1" means no de-essing, and "0" is maximum de-essing. I found that setting it to "0.5" gave satisfactory results. 40 f is how much of the original frequency content to keep when de-essing. The allowed range is 0 to 1. The default is 0.5. By experimentation I found that "1" means no de-essing, and "0" is maximum de-essing. I found that setting it to "0.5" gave satisfactory results. 41 Setting "m" or "f" too high can result in a distorted output as too much of the original sound is cut out. The defaults of 0.5 in both cases gave audible improvements without noticeable distortion. 42 There is an additional parameter called "s". This controls whether the de-essing filter does anything. Setting it to "o" is the normal and default mode. Setting it to "e" causes it to output just the components that it would normally have filtered out. This is useful for testing purposes so you can see what and how much is being filtered. You only use this when experimenting with different values. Setting it to "i" causes the input to be passed through without de-essing. This would be useful in scripts where you want to use a variable to control whether or not to use the de-esser while still creating the expected output file. 43 There are two other elements of the command which were included but are not strictly speaking part of the de-essing filter itself . These are " -b:a 336k" and "-sample_fmt s16". " -b:a 336k" sets the audio bit rate to 336k. "-sample_fmt s16" sets the audio sample format to 16 bit. I found it necessary to specify these in order to prevent the de-essing filter from changing formats. They are not part of de-essing however. 44 De-Essing with Sox You can also de-ess with Sox. However, this is more complex for several reasons. One reason is that Sox does not have its own de-essing filters. Instead it uses optional plug-ins, and you must find and install these. The actual plug in may vary depending on what operating system you are using. The other reason is that it deals with the issue in fairly low level parameters, and so is a bit more complex to describe. Because of this I will skip over describing this in detail and just give a very brief overview. If anyone would like me to describe in more detail how to de-ess with Sox, then send in a comment and I will do a short episode on it later. 45 Sox De-Essing Overview To de-ess with Sox, you first need to install the plug-ins. On Linux, these will be the TAP ladspa plug-ins. TAP stands for "Tom's Audio Processing" plugins. ladspa stands for "Linux Audio Developer's Simple Plugin API" To install the TAP plugins on Ubuntu, using the following command. sudo apt install tap-plugins The plug-in we need is called "tap_deesser.so". 46 In order to use the plug-ins, you need to set the path as a variable. On Ubuntu this is. export LADSPA_PATH="/usr/lib/ladspa:" I put the above in the shell script which calls the Sox de-esser. 47 To use the Sox de-esser, you do the following: sox inputfile.flac outputfile.flac ladspa tap_deesser tap_deesser -30 4500 48 tap_deesser tap_deesser tells it which plugin to use. We need to state tap_deesser twice because the first is the name of the ".so" file and the second is the name of the plugin. A single "so" file can contain multiple filters, although in this case there is only one. -30 is the threshold in dB at which to start to apply the filter. 4500 is the frequency in Hz that the filter centres around. 49 The TAP web page has a table of recommended frequencies. These are: Male 'ess' 4500 Hz Male 'ssh' 3400 Hz Female 'ess' 6800 Hz Female 'ssh' 5100 Hz You will need to do some trial and error to find what works best for you. 50 De-Essing Summary De-essing can be used to make minor improvements to voice quality by reducing certain harsh sounds which may be exaggerated by a microphone. If it sounds like a lot of work you can probably simply not bother with it and not really miss it. -------------------- 51 Normalizing Normalizing a signal means adjusting it to meet a specified level. For audio it means adjusting the volume or sound level. You may wish to normalize the audio of your recording to make it easier to listen to when reviewing it. The copy that you send to HPR however should be the original un-normalized version. 52 Sound level is measured in two ways, dB and LUFS. The latter is a more sophisticated way of measuring things which takes into account how the human ear perceives loudness. I won't go into a lot of detail in that regards, other than to say that just accept LUFS as a unit of perceived loudness that is the international standard. LUFS stands for "Loudness Units referenced to Full Scale", and is part of the EBU R128 standard, where EBU stands for European Broadcast Union. In both cases the measured value is a negative number, with numbers smaller in magnitude being louder. Smaller in magnitude means closer to zero. 53 HPR will adjust the sound level for publication, but if you wish to check the audio before uploading it can help to adjust it to something close to what HPR will do so that you can listen to it at a volume which most listeners will hear. In my case full volume on the audio system input produced a sound level which was much lower than a typical HPR episode. However, the volume level in the flac file itself can be adjusted using ffmpeg. 54 Measuring Volume Level First we need to see what the volume level is for a typical HPR podcast. To do this we use ffmpeg. In this example we are using an episode named "hprpodcast.mp3". Pick an episode which you think is suitable and copy the file to the working directory. 55 In the following script we use a volumedetect filter. The text we want normally outputs to standard error, so we have to do a bit of bashery to redirect this to standard output so it will go through a pipe. We then grep for the string "I:". This will have the average volume level in "loudness units" (LUFS). Then we extract the number, giving us a target LUFS level. 56 ffmpeg -i hprpodcast.mp3 -filter:a ebur128=framelog=quiet -f null /dev/null 2>&1 | grep "I:" | cut -d: -f2 57 Unfortunately I can't find a Sox feature which handles EBU loudness, so we need to work in dB instead. Here is the sox version. However, note that this may not work on mp3s if sox mp3 handing is not installed. 58 sox hprpodcast.mp3 -n stats 2>&1 | grep "RMS lev dB" | rev | cut -d" " -f1 | rev 59 You can use either of these for measuring the volume or sound level of an audio file. However, note that individual episodes from HPR may vary a bit in terms of loudness. In the samples that I looked at, this however was less than 1 LUFS or dB while my own recording was roughly 5 LUFS lower in volume than a typical HPR episode. -------------------- 60 If you Google for the EBU R128 standard the AI result will confidently tell you to use a target of -23 LUFS. However, this is wrong, which shouldn't be of any surprise if you are familiar with using AI. 61 The -23 LUFS figure is for broadcast television. There is in fact no standard level for podcasts. However, there is apparently a general industry convention of using somewhere around -17 LUFS. If I look at the first two HPR episodes that I did, HPR normalized them to -16.8 LUFS and -17.8 LUFS, while the original FLAC files that I submitted were -21.6 LUFS and -22.3 LUFS respectively. 62 So HRP appear to be targeting somewhere around -17 LUFS as well. We will therefore use -17 LUFS as our target for our own copy for review. -------------------- 63 The nice thing about using the EBU filter in FFMPEG is that this is very simple. Here is the FFMPEG version. 64 ffmpeg -i inputfile.flac -af loudnorm=I=-17:TP=-2.0:LRA=7.0 -ar 44.1k outputfile.flac 65 "I" is the LUFS target. LRA is the loudness range target. The default value is 7.0 so I used that. TP sets the maximum true peak. The default value is -2.0. so I used that. -------------------- 66 With Sox things are a bit more difficult. There is no direct method of setting the loudness that I am aware of, so we need to measure the current sound level in dB, do some calculations, and then apply that as a gain factor to the output. 67 First we need to subtract the measured db level from our flac file from the target db level from the HPR episode we decided to use as a sample. Bash by itself normally just does integer math. However, we would like to have at least one decimal point of resolution to work with. The simple solution is to do this calculation using bc, the shell arbitrary precision calculator. 68 Then take this new value and use it in a "volume" filter. The number which we give sox is the amount to increase or decrease the volume by. Sox will then output a new file with the new volume level. You can now listen to this file under conditions more closely approximating what it will be like after HPR have done their own audio adjustments and normalizaton on it This helps when listening to the file for any problems before you upload it. 69 Rather than reading 5 lines of complex shell script to you, I will put a copy of it in the show notes. level=$( sox $inputfile -n stats 2>&1 | grep "RMS lev dB" ) leveldb=$( echo "$level" | rev | cut -d" " -f1 | rev ) targetdb="-18.9" volumechange=$(echo "scale=2 ; $targetdb - $leveldb" | bc ) sox $inputfile $outputname gain "$volumechange" -------------------- 70 Normalization should be the last thing you do to the file. It should be done after any noise filtering, such as low pass, high pass, bandreject, etc. If you normalize first, you will be amplifying the noise as well as the desired signal. 71 The exact normalization level used for review purposes doesn't matter, as HPR will apply their own later. All we are doing at this point is adjusting the volume to something which approximates a normal episode so you can listen to it for final review. 72 When you send your file to HPR, send the original *unnormalized* version, not the normalized version. When you normalize an audio signal, if you are not careful you may introduce things which cause problems with later additional processing. HPR probably do more things to the audio than just normalizing and so they need the unnormalized file so that they can do their own normalizing last. -------------------- 73 If at this point you are happy with the recording as is, you are ready to send the *unnormalized* version to HPR. The scripts to implement the features discussed in this episode will be in the show notes. 74 Conclusion In this episode we covered basic filtering using ffmpeg and sox. We discussed what noise was and some of the origins of noise. We talked about the audio frequency range and the limitations of common hardware used to record and listen to podcasts. We covered basic high and low pass filters used to limit the audio frequency range in order to remove possible low and high frequency noise. 75 We discussed specific filters to eliminate 50 and 60 Hz electrical power noise. We talked about de-essing, what it was, why you may wish to use it, and some basic de-essing filter implementation details. We discussed normalizing, what it is, why you may wish to use it, and how it relates to podcasting conventions. 76 In the next episode we will discuss analyzing audio signals to help find the sources of noise problems. We will also discuss creating filters to eliminate any problems that we found. In my case I had a problem with the microphone that I use, and I describe how I used filters to deal with that problem. 77 This has been the second episode in a four part series on simple podcasting. -------------------- EBU R128 Loudness Measurement using FFMPEG #!/bin/bash echo "EBU r128 loudness measurement using FFMPEG" for inputfile in *.flac *.mp3 ; do level=$( ffmpeg -i $inputfile -filter:a ebur128=framelog=quiet -f null /dev/null 2>&1 | grep "I:" | cut -d: -f2 ) echo $inputfile $level done -------------------- DB Sound Level Measurement using Sox #!/bin/bash # Sox version. May not work for mp3 if an mp3 format handling is not installed. echo "dB sound level measurement using Sox." for inputfile in *.flac *.mp3 ; do level=$( sox $inputfile -n stats 2>&1 | grep "RMS lev dB" ) leveldb=$( echo "$level" | rev | cut -d" " -f1 | rev ) echo $inputfile $leveldb done -------------------- EBU R128 Loudness Normalization using FFMPEG #!/bin/bash # Adjust the volume to a desired level. for inputfile in *.flac ; do j=$( basename $inputfile ".flac" ) outputname="$j""-normff.flac" ffmpeg -i $inputfile -af loudnorm=I=-17:TP=-2.0:LRA=4.0 -ar 44.1k $outputname echo $outputname done -------------------- DB Sound Level Normalization using Sox #!/bin/bash # Adjust the volume to a desired level. for inputfile in *.flac ; do j=$( basename $inputfile ".flac" ) outputname="$j""-normff.flac" # Measure the volume level and extract the mean volume. level=$( sox $inputfile -n stats 2>&1 | grep "RMS lev dB" ) leveldb=$( echo "$level" | rev | cut -d" " -f1 | rev ) # Calculate the difference in dB desired. Scale specifies the number of decimal places. # Target db is the volume measured on hpr4506 (UCSD-P-System). targetdb="-18.9" volumechange=$(echo "scale=2 ; $targetdb - $leveldb" | bc ) echo "Using sox: File: $inputfile Original level: $leveldb Change by: $volumechange" # Adjust the volume. sox $inputfile $outputname gain "$volumechange" done -------------------- Full processing pipeline for making simple podcasts using FFMPEG #!/bin/bash #!/bin/bash # Full processing pipeline for making simple podcasts. # ====================================================================== # Concatenate multiple flac files into a single flac file. # This is used to combine podcast recorded segments into a single # flac file for uploading to HPR. concataudio () { outputname="$1" # First create the list file. printf "file '%s'n" [0-9][0-9].flac > podseglist.txt # Now concatenate them ffmpeg -f concat -safe 0 -i podseglist.txt "$outputname" rm podseglist.txt } # ====================================================================== # Basic filters. filter () { inputfile=$1 outputname=$2 # Using ffmpeg. # The high and low pass filters. hlpfil="highpass=f=80, lowpass=f=12000" # Band reject filters filter for 60Hz and another for 50Hz. linefil="bandreject=f=60:width_type=h:w=20, bandreject=f=50:width_type=h:w=20" # Using ffmpeg ffmpeg -i $inputfile -af "$hlpfil, $linefil" $outputname } # ====================================================================== # De-Essing. deessing () { inputfile=$1 outputname=$2 option=$3 # De-essing filter. ffmpeg -i $inputfile -filter_complex "deesser=i=0.5:m=0.5:f=0.5:s=$option" -b:a 336k -sample_fmt s16 $outputname } # ====================================================================== # Normalizing the audio to EBU R128 standard for review using ffmpeg. normffmpeg () { inputfile=$1 outputname=$2 # Normalize to EBU R128 standard. ffmpeg -i $inputfile -af loudnorm=I=-17:TP=-2.0:LRA=4.0 -ar 44.1k $outputname } # ====================================================================== # Output an MP3 version to help with reviewing. mp3convert () { inputfile=$1 # Get the name of the file and then create the output file name. j=$( basename $inputfile ".flac" ) outputname="$j"".mp3" # Convert to MP3. ffmpeg -i $inputfile $outputname } # ====================================================================== # Concatenate the separate audio files. concataudio fullpod-unfiltered.flac # Basic filtering. filter fullpod-unfiltered.flac filtered.flac # De-essing. This is the version to send for publishing. # The third argument should be "o" for de-essing, or "i" for pass through without de-essing. deessing filtered.flac fullpod.flac o # Normalized for review. normffmpeg fullpod.flac fullpod-norm.flac # Output an MP3 copy for review. mp3convert fullpod-norm.flac -------------------- -------------------- Provide feedback on this episode.

This show has been flagged as Clean by the host. This series is dedicated to exploring little-known—and occasionally useful—trinkets lurking in the dusty corners of UNIX-like operating systems. When you think about creating and managing archives on a UNIX system, tar is probably the utility that comes to mind. But this was not the first archiving program; ar was in First Edition UNIX 1 and cpio also pre-dates it, sort of 2 . According to the NetBSD manual page, cpio was developed within AT&T before tar , but did not get widely released until System III UNIX after tar was already well known from the earlier release of Seventh Edition UNIX (a.k.a. Version 7). You might think that ar and cpio are old and irrelevant these days, but these formats do live on. Each Debian package file 3 is an ar archive which in turn contains two tar files. On Red Hat, Fedora, SUSE, and some other distributions, each .rpm package file 4 contains a cpio payload. So these may very well still be in use on your modern Linux system. But let's get back to the subject of what you might want to use to create archives today. The tar utility has persisted in its popularity over the decades, and you most probably have a version installed on your UNIX-like systems. One of the problems with tar , however, is that it has not kept a consistent file format. Also, different implementations have used differing syntax at times. There are excellent reasons for the file format changing 5 . The names people give files have gotten longer over time, and the original Seventh Edition tar format could only handle a total pathname length of 100 bytes for each archive member. In addition, filenames were in ASCII format, and modern filesystems now accommodate richer encodings with characters that aren't in ASCII. The size of each archive member was limited to 8 gigabytes—unthinkably large back then, but not so big these days. User and group ownership could only be specified by numeric ID, which can vary from one system to another. Many other types of files and information simply couldn't be stored: block and character device nodes, FIFOs, sockets, extended attributes, access control lists, and SELinux contexts. As a result, the tar format had to evolve over the years. One important version was the ustar format, created for the 1988 POSIX standard. The POSIX committee wanted to try standardizing both the file format and syntax for the tar command. While the ustar format addressed some shortcomings, progress marched on. Filesystems started allowing filenames in different character sets and more types of information to be attached to files, so for the 2001 revision of POSIX they gave up on standardizing the tar utility and came up with a new format and utility, which is our actual UNIX Curio for this episode: pax 6 . Since the pax program didn't have historical baggage, they could specify its options, behavior, and file format and be sure everyone's implementation would match. Developers of different tar implementations had been reluctant to change away from their historical option syntax to the standard. The pax utility was also an attempt to avoid taking sides between those who advocated for tar and fans of cpio . The pax file format was an extension of ustar with the ability to add arbitrary new attributes tied to each archive member as UTF-8 Unicode. Some of these attribute names were standardized, but implementers could also define their own, making the format more future-proof. Older versions of tar that could handle the ustar format should still be able to process pax archives, but might not know what to do with the extra attributes. GNU tar developed its current archive format 7 alongside the standardization of the ustar format. The GNU format was based on an early draft which later underwent incompatible changes, so the two unfortunately are not interchangable. Unlike ustar , the GNU format has no limits on the size of files or the length of their names. In addition to its own format, GNU tar is able to detect and correctly process both ustar and pax archives. In situations where its native format can't store necessary information about a file (such as POSIX access control lists or extended attributes), GNU tar will automatically output the pax format instead (called "posix" in documentation). However, it still uses the GNU format by default, though the documentation has been threatening to move to the POSIX format for at least 20 years 8 . The good news is that the ustar , pax , GNU tar , and Seventh Edition tar formats are well documented and utilities across many UNIX-like systems 2,7,9,10,11 are able to handle these, depending on which formats existed when the utility was developed. While your system may not have pax itself installed, there are other archiving utilities that can read the file format, including GNU tar . (Somewhat amusingly, Debian and some other Free Software operating systems package a pax utility developed by MirBSD 12 which largely follows the POSIX-specified interface, but doesn't support reading or writing archives in pax format!) Look at the manual page for the tar , cpio , or pax utilities on your system to see if they can handle pax archives. Perhaps one aspect that has worked in favor of tar and other UNIX archive formats is that they only concern themselves with storing files and make no attempt at compression. Instead, it is common for a complete archive file to be compressed after creation; many utilities can be told to do this step for you, but it is not typically the default behavior. Therefore, if a better compression method comes along, the archive format doesn't need to change. If you do use compression, be careful to choose a method that is available on the destination system. Compressing files is a big enough subject to deserve its own episode, so we won't talk more about it here. So which format should you use when creating an archive? Unfortunately, there is no single answer that applies in all circumstances. The pax format is supported among modern UNIX-like systems and can represent all types of files and metadata. While other systems, their filesystems, and archive utilities might not be able to properly make use of all the metadata, they should at least be able to extract the data contained in files and, if Unicode is supported, give them appropriate filenames. If you intend to unpack the archive on an older system, more research might be needed to figure out what formats it is able to handle. The Seventh Edition tar format (often called "v7") is widely supported, including by older systems, but has limitations in what it can contain as described earlier. Moving beyond the UNIX world, things get even more complicated. Apple's macOS, with its FreeBSD underpinnings, easily handles tar files. However, when it comes to MS-DOS and Windows, it's a bit different. There, a multitude of archiving programs and formats arose, usually combining archiving with compression. PKZIP was probably the most popular of these and its .zip format became common in many places, helped by the fact that PKWARE openly published the specification. While there is only a single .zip format, it has many options, some proprietary, and different implementations have diverged in the way some aspects are handled (or not handled). An ISO/IEC standard for .zip 13 was published in 2015 giving a baseline profile, and sticking to it produces files that can be widely extracted successfully. Other file formats like OpenDocument use the .zip format and typically hew to the standardized profile. Windows' File Explorer, starting with Windows XP, can natively extract .zip files 14 . The Info-ZIP program 15 is a Free Software implementation for a wide variety of systems (even rather obscure ones); while it might not be installed on yours, if you're copying the archive file over, you can probably copy over its unzip utility at the same time to unpack it. So .zip probably has the broadest support, although it might not already be present on every system. However, as Klaatu points out in Hacker Public Radio episode 4557 16 , .zip files and applications handling them aren't always great at maintaining metadata about files. The .zip format doesn't seem to have any way to represent UNIX file permissions, and user/group ownership can only be included as numeric IDs. Other types of metadata on UNIX-like systems are not saved at all. This is probably not a problem in some cases, such as with a collection of photos, but for others it might be a concern. While pax as a utility does not seem to have gained much popularity or support, except on commercial UNIX systems where including it was required to conform to the POSIX standard, its file format has persisted. Free Software systems have generally avoided the pax interface, preferring to stick with the tar utility on the command line, but usually have good support for archive files in the pax format. Outside of UNIX-like systems, .zip seems to have become the most common file format, and support for it is also good in the UNIX world, though it might not be built in. References: Archive (library) file format https://man.cat-v.org/unix-1st/5/archive NetBSD 10.0 cpio manual page https://man.netbsd.org/NetBSD-10.0/cpio.1 Debian binary package format https://manpages.debian.org/trixie/dpkg-dev/deb.5.en.html RPM V6 Package format https://rpm.org/docs/6.0.x/manual/format_v6.html NetBSD 10.0 libarchive-formats manual page https://man.netbsd.org/NetBSD-10.0/libarchive-formats.5 Pax specification https://pubs.opengroup.org/onlinepubs/009695399/utilities/pax.html GNU tar manual https://www.gnu.org/software/tar/manual/tar.html GNU tar manual for version 1.15.90 https://web.cvs.savannah.gnu.org/viewvc/*checkout*/tar/tar/manual/tar.html?revision=1.3 FreeBSD 15.0 libarchive-formats manual page https://man.freebsd.org/cgi/man.cgi?query=libarchive-formats&sektion=5&apropos=0&manpath=FreeBSD+15.0-RELEASE+and+Ports OpenBSD 7.8 tar manual page https://man.openbsd.org/OpenBSD-7.8/tar HP-UX Reference (11i v3 07/02) - 1 User Commands N-Z (vol 2) https://support.hpe.com/hpesc/public/docDisplay?docId=c01922474&docLocale=en_US MirBSD pax(1) manual page http://www.mirbsd.org/htman/i386/man1/pax.htm#Sh.STANDARDS ISO/IEC 21320-1:2015 Information technology - Document Container File Part 1: Core https://www.iso.org/standard/60101.html Mastering File Compression on Windows https://windowsforum.com/threads/mastering-file-compression-on-windows-how-to-zip-and-unzip-files-effortlessly.369235/ About Info-ZIP https://infozip.sourceforge.net/ HPR4557::Why I prefer tar to zip https://hackerpublicradio.org/eps/hpr4557/index.html Provide feedback on this episode.

This show has been flagged as Explicit by the host. HPR EXCLUSIVE: THE INTERVIEW THAT WILL SAVE CIVILIZATION (OR AT LEAST YOUR KITCHEN DRAWER) Hopper sits down with the legendary Trollercoaster for a completely serious policy discussion with absolutely zero sarcasm whatsoever Tired of living in a world where ANYONE can just... open a drawer? Where CHILDREN can casually access spatulas and spicy condiments without proving their age to a licensed algorithm? Where your VCR doesn't run a background check before spooling up a tape? WELL, WORRY NO MORE. In this landmark interview, visionary tech policy thinker Trollercoaster lays out the roadmap to a safer tomorrow — one age-verified gunshot wound at a time. Topics covered include: System 76's courageous capitulation — actually a 5D chess move to manufacture the next generation of hackers by making Linux mildly annoying again Two-factor authentication for firearms — SMS-based triggers considered, reluctantly rejected (reception is bad at most crime scenes) GPS injections at birth — like circumcision, but for helicopter parents. Kids won't remember. Probably. Kitchen-as-a-Service (KaaS™) — powered by Microsoft, mandated by your government, billed monthly, support tickets routed to Bangalore Biannual maturity exams — because some people's brains start "deteriorating" and they end up making sarcastic podcasts that lawmakers might accidentally take seriously The liability framework is elegant in its simplicity: if anything bad ever happens to anyone, sue the manufacturer . Philips. IKEA. Smith & Wesson. Your kitchen. It doesn't matter. Someone made a thing, someone got hurt, somebody owes somebody lunch money. If you agree with any of this: contact your lawmakers immediately. They are waiting by the phone. If you disagree : too late, buddy. The lobbyists are already having the soup course. The lawmakers need your insights. They are, as noted, extremely narrow-minded. The comment section is open. Provide feedback on this episode.

This show has been flagged as Explicit by the host. ISO 27001 from Wikipedia.org: ISO/IEC 27001 is an information security standard . It specifies the requirements for establishing, implementing, maintaining and continually improving an information security management system (ISMS). Organizations with an ISMS that meet the standard's requirements can choose to have it certified by an accredited certification body following successful completion of an audit . Information security audit from Wikipedia.org: An information security audit is an audit of the level of information security in an organization. It is an independent review and examination of system records, activities, and related documents. These audits are intended to improve the level of information security, avoid improper information security designs, and optimize the efficiency of the security safeguards and security processes. Factors contributing to cybersecurity fatigue Source: Adapted from Factors contributing to cybersecurity fatigue by L. J. J. S. (2024), Abertay University. Available at: https://rke.abertay.ac.uk/en/publications/factors-contributing-to-cybersecurity-fatigue/ In cloud-based environments, the push for high-security standards often leads to "cybersecurity fatigue," which creates unintended psychological strain on employees. Constant interruptions from repetitive access requests. Overload of security checks and decision fatigue. Lack of clear understanding regarding actual cybersecurity risks. Impact on Behavior Fatigue frequently leads to negative outcomes, including the bypassing of security protocols, abandonment of necessary tasks, and total disengagement from mandatory training. Key Concept The study highlights "attitudinal fatigue" (an employee's negative mindset toward security) as a major barrier to organizational resilience and compliance. Strategic Recommendations: Transition to "contextualized training" that uses relatable, real-world scenarios. Streamline security workflows to minimize disruption to daily productivity. Develop targeted interventions. National Institute of Standards and Technology 2011 Report: Information Security Continuous Monitoring (ISCM) for Federal Information Systems and Organizations (Tangentially ) related Episodes hpr3779 :: Just Because You Can Do a Thing... - Trey hpr0061 :: Punk Computing - Klattu hpr0002 :: Customization the Lost Reason - Deepgeek Provide feedback on this episode.

This show has been flagged as Clean by the host. In this show, Marc Abel presents an introduction to Dauug|18, an 18-bit controller developed by The Dauug House. About the size of a postcard, Dauug|18 avoids the use of complex VLSI such as microprocessors, FPGAs, PLDs, ASICs, and DRAM. Instead, the architecture is built from trivial glue logic and synchronous static RAM, using components that can be hand-soldered and verified for connectivity after assembly. The motivation for Dauug|18 is to provide refuge in situations where transparency, auditability, and supply chain integrity are priorities. Rather than relying on high-integration silicon, Dauug|18 is auditable at the logic-gate level, allowing owners to verify the integrity of their hardware. This show covers key architectural details, the decision to use SRAM for both memory and logic, and system constraints that stem from Dauug|18's brutal simplicity, limited component selection, and succinctness. The practical effect of these constraints on programming Dauug|18 is also discussed in detail. Anticipated uses for Dauug|18 include privacy assertion, critical infrastructure, and curricula for fields relating to computer engineering. Files supplied with this show include a short PDF of Dauug|18 architectural details, as well as word-accurate, spell-checked subtitles and their matching transcript. More information, technical documentation, and updates on related projects like Dauug|36 can be found at https://dauug.org. Provide feedback on this episode.

This show has been flagged as Clean by the host. A show about downloading and installing extra Odoo addons. There are 18780 lines of Python code in the core of Odoo (18) The standard set of available apps are usually installed in /usr/lib/python3/dist-packages/odoo/addons/ Take note of the Linux File Hierarchy Standard So install your own stuff somewhere under /usr/local. For this show we standardize on /usr/local/lib/python3/odoo/addons But some use /opt/odoo. Edit /etc/odoo/odoo.conf and add: addons_path = /usr/lib/python3/dist-packages/odoo/addons, /usr/local/lib/python3/odoo/addons Find extra apps for example in: https://apps.odoo-community.org/shop First example: "Web Responsive", "https://github.com/OCA/web/", subdirectory "web_responsive" Next go to: Menu->Settings->Enable developermode->Goto Apps app->Update list of apps: to scan for all apps Install the app you just installed in /usr/local/lib/python3/odoo/addons Some more apps: "Web No Bubble" ,"https://github.com/OCA/web/", subdirectory "web_no_bubble" "Remove odoo.com Bindings", "https://github.com/OCA/server-brand/", subdirectory "disable_odoo_online" To unhide accountancy: https://github.com/OCA/account-financial-tools/tree/19.0/account_usability To add a helpdesk: https://apps.odoo-community.org/shop/helpdesk-management-4839 Want more support? : jeroen@jeroenbaten.nl Provide feedback on this episode.

This show has been flagged as Explicit by the host. Aldi https://www.aldi.us/ https://en.wikipedia.org/wiki/Aldi Does Aldi's Summit Diet Cola Contain Aspartame? https://www.thedailymeal.com/1465489/does-aldi-cola-contain-aspartame/ Aspartame and Other Sweeteners in Food https://en.wikipedia.org/wiki/Aspartame https://www.fda.gov/food/food-additives-petitions/aspartame-and-other-sweeteners-food https://pmc.ncbi.nlm.nih.gov/articles/PMC8227014/ Sugar: THE BITTER TRUTH https://www.youtube.com/watch?v=dBnniua6-oM How to Make Up Comebacks when Somebody Calls You Fat https://www.wikihow.com/Make-Up-Comebacks-when-Somebody-Calls-You-Fat Swimming With Men - You Calling Me Fat? https://www.youtube.com/watch?v=JbD_sk0ih0g "Weird Al" Yankovic - Fat (Official Video) https://www.youtube.com/watch?v=t2mU6USTBRE Sam's Club https://www.samsclub.com/ 3rd Rock from the Sun https://en.wikipedia.org/wiki/3rd_Rock_from_the_Sun Interstate Highway System https://en.wikipedia.org/wiki/Interstate_Highway_System History of the Interstate Highway System https://highways.dot.gov/highway-history/interstate-system/50th-anniversary/history-interstate-highway-system https://www.gbcnet.com/ushighways/history.html https://www.history.com/articles/interstate-highway-system https://www.historicushighways.com/history-of-us-highways https://vividmaps.com/evolution-interstate-highway-system/ https://www.youtube.com/watch?v=SF16uDPGi14 99% Invisible https://99percentinvisible.org/ https://en.wikipedia.org/wiki/99%25_Invisible Devhack is a Queer-focused hackerspace https://wiki.hackerspaces.org/%E2%88%95dev/hack https://devhack.net/ Beyond The Exit https://www.youtube.com/@BTE4172/videos Amtrak https://www.amtrak.com/home Palmer Raids https://en.wikipedia.org/wiki/Palmer_Raids Mumble project https://www.mumble.info/ LinuxLugCast https://linuxlugcast.com/ n scale piedmont northern boxcar https://www.worthpoint.com/worthopedia/scale-kadee-piedmont-northern-40-1840448079 N scale https://en.wikipedia.org/wiki/N_scale HO scale https://en.wikipedia.org/wiki/HO_scale Rail transport modelling scales https://en.wikipedia.org/wiki/Rail_transport_modelling_scales Navy Pier https://en.wikipedia.org/wiki/Navy_Pier https://navypier.org/ The IT Crowd https://en.wikipedia.org/wiki/The_IT_Crowd https://www.imdb.com/title/tt0487831/ A Christmas Story https://en.wikipedia.org/wiki/A_Christmas_Story Die Hard https://www.imdb.com/title/tt0095016/ https://theconversation.com/nine-reasons-why-die-hard-really-is-a-christmas-film-173801 The Fifth Element https://en.wikipedia.org/wiki/The_Fifth_Element Footloose https://en.wikipedia.org/wiki/Footloose Tom Cruise's Couch Jump https://people.com/tom-cruise-couch-jump-on-oprah-is-20-years-old-11737728 Cruise control https://en.wikipedia.org/wiki/Cruise_control Blind spot monitor https://en.wikipedia.org/wiki/Blind_spot_monitor Kenworth T680 https://www.kenworth.com/trucks/T680/ https://www.youtube.com/watch?v=Ze05NW6UJOE Knight Rider https://en.wikipedia.org/wiki/Knight_Rider_(1982_TV_series) https://en.wikipedia.org/wiki/KITT Christine (King novel) https://en.wikipedia.org/wiki/Christine_(King_novel) SWAT https://en.wikipedia.org/wiki/SWAT The Blues Brothers (film) https://en.wikipedia.org/wiki/The_Blues_Brothers_(film) https://www.imdb.com/title/tt0080455 Speed limits in the United States https://en.wikipedia.org/wiki/Speed_limits_in_the_United_States Provide feedback on this episode.

This show has been flagged as Explicit by the host. New hosts There were no new hosts this month. Last Month's Shows Id Day Date Title Host 4586 Mon 2026-03-02 HPR Community News for February 2026 HPR Volunteers 4587 Tue 2026-03-03 UNIX Curio #1 - Shell Archives Vance 4588 Wed 2026-03-04 HPR Beer Garden 11 - Belgian Scotch Ale Kevie 4589 Thu 2026-03-05 YouTube Subscriptions 2025 #15 Ahuka 4590 Fri 2026-03-06 Playing Civilization V, Part 9 Ahuka 4591 Mon 2026-03-09 A Bit of Git Lee 4592 Tue 2026-03-10 Happy by shower # 2 Antoine 4593 Wed 2026-03-11 Nuclear Reactor Technology - Ep 8 Generation Four Reactors Whiskeyjack 4594 Thu 2026-03-12 Hackerpublic Radio New Years Eve Show 2026 Episode 2 Honkeymagoo 4595 Fri 2026-03-13 WATER WATER EVERYWHERE! operat0r 4596 Mon 2026-03-16 Adding voice-over audio track created using text to speech on the movie subtitles Ken Fallon 4597 Tue 2026-03-17 UNIX Curio #2 - fgrep Vance 4598 Wed 2026-03-18 Recording good audio using open source tools Shane - StrandedOutput 4599 Thu 2026-03-19 Women in digital and games event Dave Hingley 4600 Fri 2026-03-20 The First Doctor, Part 5 Ahuka 4601 Mon 2026-03-23 How to be a better writer enistello 4602 Tue 2026-03-24 Hackerpublic Radio New Years Eve Show 2026 Episode 3 Honkeymagoo 4603 Wed 2026-03-25 On the Erosion of Freedom in Open Source Software HopperMCS 4604 Thu 2026-03-26 Quick Tips for January 20 26 operat0r 4605 Fri 2026-03-27 Lee locks down his wifey poo Elsbeth 4606 Mon 2026-03-30 My Nerdy Childhood: From Floppy Disks to Dial-Up Dreams Trollercoaster 4607 Tue 2026-03-31 UNIX Curio #3 - basename and dirname Vance Comments this month Past shows hpr3711 (2022-10-24) "Cars" by Zen_Floater2. m0dese7en said: "Additional details on cars" (2026-03-13 16:44:12) hpr4333 (2025-03-12) "A Radically Transparent Computer Without Complex VLSI" by Marc W. Abel. Marc said: "New online home for Dauug|36 and Dauug|18" (2026-03-25 15:18:15) hpr4424 (2025-07-17) "How I use Newsboat for Podcasts and Reddit" by Archer72. أحمد المحمودي said: "Not fixed" (2026-03-31 00:54:19) hpr4509 (2025-11-13) "HPR Beer Garden 5 - Heferweisen" by Kevie. Gan Ainm said: "Hefeweizen" (2026-03-04 06:47:39) Kevie said: "Thanks Gan" (2026-03-13 15:28:45) hpr4553 (2026-01-14) "Nuclear Reactor Technology - Ep 4 Less Common Reactor Types" by Whiskeyjack. Antoine said: "Were/are the designs patented?" (2026-03-18 12:41:35) Whiskeyjack said: "Reply to Antoine" (2026-03-19 03:31:50) Antoine said: "I will" (2026-03-21 02:30:29) hpr4565 (2026-01-30) "HPR Beer Garden 9 - Barley Wine" by Kevie. Aleman said: "Beer Garden" (2026-03-06 19:25:26) hpr4571 (2026-02-09) "Data processing retrospective" by Lee. Archer72 said: "previous generation" (2026-03-03 15:44:12) hpr4573 (2026-02-11) "Nuclear Reactor Technology - Ep 6 Thorium Reactors" by Whiskeyjack. Archer72 said: "Interesting series" (2026-02-28 16:59:15) Whiskeyjack said: "Reply to Archer72" (2026-02-28 23:06:46) Clinton said: "Modern situation." (2026-03-07 11:30:14) Whiskeyjack said: "Reply to Clinton" (2026-03-07 18:42:23) hpr4574 (2026-02-12) "UNIX Curio #0 - Introduction" by Vance. murph said: "Great show, looking forward to more." (2026-03-01 19:21:46) hpr4575 (2026-02-13) "Making First Contact" by Ken Fallon. Archer72 said: "Good to hear 73's" (2026-02-28 15:51:52) hpr4576 (2026-02-16) "Responce to Lee/Elsbeth eps" by operat0r. candycanearter07 said: "relatable episode" (2026-03-10 01:39:18) hpr4577 (2026-02-17) "HPR Beer Garden 10 - Scotch Ale/Wee Heavy" by Kevie. Kevie said: "Upcoming beers" (2026-02-26 18:14:16) hpr4583 (2026-02-25) "Nuclear Reactor Technology - Ep 7 Small Modular Reactors" by Whiskeyjack. brian-in-ohio said: "good shows" (2026-03-02 21:10:12) Whiskeyjack said: "Response to brian-in-ohio for HPR4583 Small Modular Reactors" (2026-03-03 23:38:55) hpr4584 (2026-02-26) "Recording a show, and crappy audio" by Archer72. Dave Lee (thelovebug) said: "Audio quality" (2026-02-27 08:33:24) Kevin O'Brien said: "The Zoom was perfect" (2026-02-27 17:29:43) Archer72 said: "Bad mic" (2026-03-03 15:08:13) jezra said: "false advertising! " (2026-04-03 17:28:05) hpr4585 (2026-02-27) "mpv util scripts" by candycanearter. Windigo said: "mpv fanclub" (2026-02-28 01:55:28) Windigo said: "Re: mpv fanclub" (2026-03-01 05:07:24) Archer72 said: "Second in mpv fanclub" (2026-03-01 08:52:41) candycanearter07 said: "updated script" (2026-03-01 22:35:38) This month's shows hpr4586 (2026-03-02) "HPR Community News for February 2026" by HPR Volunteers. candycanearter07 said: "41:40" (2026-03-01 23:39:18) Whiskeyjack said: "HPR Commnity News discussion on audio" (2026-03-03 23:11:25) hpr4587 (2026-03-03) "UNIX Curio #1 - Shell Archives" by Vance. Archer72 said: "Continuing series" (2026-03-03 15:15:19) xmanmonk said: "uuencode/uudecode on Solaris" (2026-03-05 01:47:53) Vance said: "Thanks, and Solaris" (2026-03-07 20:10:08) Jim DeVore said: "Thanks for the trip down memory lane!" (2026-03-17 01:19:46) hpr4591 (2026-03-09) "A Bit of Git" by Lee. candycanearter07 said: "anecdotal teaching is the best kind" (2026-03-09 04:58:24) hpr4592 (2026-03-10) "Happy by shower # 2" by Antoine. candycanearter07 said: "interesting!" (2026-03-10 04:20:16) Antoine said: "Sharing (response to candycanearter07)" (2026-03-21 02:27:17) hpr4593 (2026-03-11) "Nuclear Reactor Technology - Ep 8 Generation Four Reactors" by Whiskeyjack. Jim DeVore said: "Great series!" (2026-03-17 01:13:51) Whiskeyjack said: "Response to Jim DeVore" (2026-03-17 13:46:31) hpr4596 (2026-03-16) "Adding voice-over audio track created using text to speech on the movie subtitles" by Ken Fallon. folky said: "Interesting solution, but annoying " (2026-02-05 11:54:36) Carsten said: "Amazing project" (2026-02-25 00:29:08) candycanearter07 said: "interesting!!" (2026-03-16 13:38:03) hpr4597 (2026-03-17) "UNIX Curio #2 - fgrep" by Vance. Ken Fallon said: "Time to active use" (2026-03-05 05:58:31) L'andrew said: "Nice job explaining *grep features." (2026-03-18 03:34:11) candycanearter07 said: "informative" (2026-03-18 03:52:52) Vance said: "Expressions" (2026-03-20 18:16:09) hpr4598 (2026-03-18) "Recording good audio using open source tools" by Shane - StrandedOutput. Archer72 said: "Great tips!" (2026-03-19 10:39:24) Ole Aamot said: "GarageJam 6.0.1" (2026-03-24 01:50:51) hpr4600 (2026-03-20) "The First Doctor, Part 5" by Ahuka. Kevie said: "Great series" (2026-03-21 15:22:59) Kevin O'Brien said: "I think I will" (2026-03-21 21:23:38) Archer72 said: "Great series and 2nd continuation " (2026-03-21 22:35:05) hpr4605 (2026-03-27) "Lee locks down his wifey poo" by Elsbeth. Ken Fallon said: "Congratulations" (2026-03-18 11:09:45) Elsbeth said: "Thank you!" (2026-03-27 11:10:10) Trollercoaster said: "Congrats - and now we want all the fun puns!" (2026-03-27 12:58:38) Antoine said: "=)" (2026-03-29 22:39:06) ClaudioM said: "Congratulations to You Both!" (2026-03-30 13:22:43) Paulj said: "Congratulations" (2026-04-04 19:52:01) hpr4606 (2026-03-30) "My Nerdy Childhood: From Floppy Disks to Dial-Up Dreams" by Trollercoaster. Trey said: "Trip down memory lane..." (2026-03-30 14:24:54) xmanmonk said: "Great Episode!" (2026-03-30 16:23:43) Trollercoaster said: "Back to you..." (2026-03-31 08:24:58) Trollercoaster said: "Not to janitors" (2026-03-31 08:26:06) ClaudioM said: "Nerdy Nostalgia!" (2026-03-31 17:20:34) hpr4607 (2026-03-31) "UNIX Curio #3 - basename and dirname" by Vance. xmanmonk said: "Great episode!" (2026-03-31 14:19:12) Mailing List discussions Policy decisions surrounding HPR are taken by the community as a whole. This discussion takes place on the Mailing 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: https://lists.hackerpublicradio.com/pipermail/hpr/2026-March/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. Provide feedback on this episode.

This show has been flagged as Clean by the host. In our next look at the game mechanics for Civilization V we three key ideas: Great People, Trade, and Empires/Civilizations. Playing Civilization V, Part 10 - Great People Gaining Great People You earn Great People by accumulating Great Person Points (GPP). Each type of Great Person has its own type of GPP, and they are earned independently, so you can easily accumulate points for several different types of Great People at the same time. You can earn these points through specialists, through Wonders, and through Social Policies. While you can accumulate points towards any and all Great People, you should focus on ones that fit your game strategy. If you are going for a Domination victory, you should focus on Great Generals and Great Admirals in preference to Great Artists and Great Musicians. But if you are going for a Culture victory you might want to reverse that. That is not to say you won't gain a few random other Great People along the way, just that you should know what you are trying to achieve. And Great Generals and Great Admirals are a little different in that you earn them by winning battles. Types of Great People Great Artist – Can start Golden Age, or create Great works Great Musician – Can do Concert Tour (+Tourism), or create Great Works Great Writer- Can write a Political Treatise (+Culture), or create Great Works Great Engineer – Can hurry production (including Wonders). Can create Manufactory Great General – combat bonus to units within 2 tiles, or steal land when creating a Citadel Khan – Unique to Mongolia, replaces Great General, moves faster and heals adjacent units, and can create Citadel Great Merchant – Trade Mission (+Gold and +Influence with a city state). Create Customs House Merchant of Venice – Unique to Venice, replaces Great Merchant. +100% Gold and +100% Influence from Trade Mission, or can puppet a City-State. Can create Customs House Great Scientist – Can Hurry Research, or create Academy Great Admiral – Combat bonus to naval units within 2 tiles. Can repair adjacent naval and embarked units Great Prophet – Can Found or enhance Religion, can spread Religion, or can create Holy Site Every type except Great Admiral can create something, but that uses up the Great Person. And the main action for each also uses up the Great Person (e.g. do a Concert Tour, Hurry Production, etc.). So you need to consider which one works best for you. As a general rule, compare which option pays off the best. For example, if it is early in the game and you get a Great Scientist, creating an Academy will give you science points per turn that will pay off over the whole game. But once you hit the mid-to-late stages the one time hit of science points from Hurry Research makes more sense because you don't have the time left for the per-turn bonus from an Academy to add up. And if there is a key Wonder you need to make your strategy works, keeping a Great Engineer on hand to hurry it up can pay off very nicely. This is the only way to Hurry Production on a Wonder. Trade In Civilization V, the amount of Gold you earn from terrain is much lower, so the path to a full treasury requires that you set up Trade Routes. You have limited number of Trade Slots available, but that limit grows over time. You can earn slots two ways. The first is through discovering techs: Ancient Era: Animal Husbandry, Sailing Classical Era: Engineering Medieval Era: Compass Renaissance Era: Banking Industrial Era: Biology Modern Era: Railroad Atomic Era: Penicillin So just from keeping up your research you can get up to 8 Trade Routes. In addition, the Wonders Colossus and Petra each provide an additional Trade Route. You can establish trade route with your own cities, with City-States, and with other Empires. Trade routes are always city-to-city, and are limited by distance, so it can make sense sometimes to move your trade unit to a different city. The city that produced the unit will always be where it shows up first, but you can make a move on its first turn to transfer the unit to another city, though note that Cargo Ships can only be placed in coastal cities. This can bring a desired destination city within range. Note that for land units (Caravans) you can increase the range by building roads. Effects of Trade Trade is generally pursued for the gold, but there can also be Science, Culture, and Religious effects, so it is worth paying attention here. Even if Gold is the main object, you may have several options that provide equivalent amounts of Gold, and a potential gain of Science or Culture might be the tie-breaker, depending on your strategy for victory. If you establish a trade route with a City-State, you can receive Gold, provide religious pressure to convert them to your religion, and gain influence with them, This can be very helpful if you are going for a Diplomatic Victory, But I would not accept a large difference in Gold just for that minor Influence gain. You can gain far more influence with Gold in long run. Setting up trade between your own cities can be helpful in giving a boost to a city because you can send Food and Production. In the earlier phases of the game that might be a good idea to get a city up to full development. The city where the route originates does not lose Food or Production, but some added amount shows up in the destination city. However, for Food trade to happen you need to have a Granary in each city, and for Production you need to have a Workshop in each city. Plundering Trade routes can be plundered by Empires you are at war with, or more often, by Barbarians. When that happens, the route disappears, and you need to build another trade unit and set up another route. Empires/Civs There are 43 possible Civilizations in Civ 5, so I don't propose to discuss all of them in depth here, but if you want to dive into this more you can go to the Civ Wiki for a chart that shows them all. Instead, I want to discuss why they are different and how you should make choices depending on the Victory type you are choosing. Of course, if you let the game make the choice for you randomly, knowing what each Civ is good for can help you to determine what type of strategy to pursue for your best chance of a victory. The first thing to know about each Civ is that they have a starting bias for where they will spawn at the beginning of the game. This can be either positive or negative, i.e. you are either more likely to spawn in certain terrain, or less likely to spawn in certain terrain. England, which is a naval power, will be biases to spawn on the Coast. Whereas Egypt, a famously desert country, will have a negative bias to avoid Jungle or Forest locations. Second, all Civs have one or more Unique Abilities. For example, the Carthaginians have two abilities that come from history. The first is Phoenician Heritage, which means that all Coastal cities get a free Harbor. And once they have earned a Great General, their military units can cross Mountain tiles, and they are the only ones that can do this. And the French have the City of Light ability, which grants doubled theming bonuses for Museums and wonders that are in the Capital. Third, each Civ has a Unique Unit. These units replace one of the regular units in the game, but are enhanced in some way. Spain has two of these. The first, the Tercio, replaces the Musketman, but it has a +50% bonus against mounted units and an increased Melee strength, making it a combination of Musketman and Pikeman. The other unit, the Conquistador replaces the Knight, but it has some interesting abilities. It can move after attacking if it still has movement points, embarked units have double defense, it can see two tiles further, and has no penalty when attacking cities. Finally, the Conquistador unit can be use to establish a city, though that uses up the unit. Finally, most (but not all) Civs have Unique Building or Improvement. As with units, these tend to replace ordinary buildings/improvements but offer something better. Arabia, for instance, has the Bazaar, which replaces the Marketplace. But it provides an additional 2 Gold per turn more than the Marketplace, it adds one additional copy of each improved luxury resource near the city, and provides +2 Gold for each Oasis and each source of Oil. What you need to consider is how each of these unique attributes of a Civ will fit in to your strategy. And timing matters. The American Unique Unit of the B-17 Bomber is nice, to be sure, but comes very late in the game. It probably won't help you conquer the world. But the Roman units of the Ballista and the Legion are excellent for an early campaign of conquest. For a Trade-oriented strategy, Portugal is excellent, as all of its Unique attributes help with generating Trade and Gold. And Gold is the key to many possible paths to victory. So keep these points in mind as you plan your strategy. And to illustrate all of the things we have been discussing in the Civilization V series, I will play a game where I aim for a Diplomatic Victory. Links: https://civilization.fandom.com/wiki/Great_People_(Civ5) https://civilization.fandom.com/wiki/International_trade_route_(Civ5) https://civilization.fandom.com/wiki/Civilizations_(Civ5) https://www.palain.com/gaming/civilization-v/playing-civilization-v-part-10/ Provide feedback on this episode.

This show has been flagged as Clean by the host. This is about how dates are formatted, and I demonstrate that the ISO 8601 Format is the only logical one to use, and will make your life easier if you learn to use it. Something you quickly run into if you correspond with people in both the U.S. and Europe, which I have done over my career as well as in my personal life, is that we don't write dates the same way. If you think March 14th is Pi day because in the U.S. it is written as 3/14, people in most of Europe will wonder why you think there is a 14th month to the year. And if you want to make a joke about May 4th, as in “May the fourth be with you”, it is 5/4 in the U.S., and 4/5 in most of Europe. And it can be even more complicated once you drag in the rest of the world. There is simply no uniformity. You can see this with this page at Wikipedia . And we are not even consistent in how we talk about dates. In the U.S. we might well say “May 4th”, and that does indeed match how we write dates. But then we will insist that our independence day is the “Fourth of July”, almost like we are not a British colony any longer, but let's use their date format for one of our most important dates. In my experience, each side thinks the other is a bit odd, but regards it as a harmless eccentricity. But which side is correct in this? The answer, of course, is neither. The one absolutely correct date format has been defined, and you can find it in the ISO 8601 standard. The correct date format is YYYY/MM/DD, because that puts the elements of the date in a logical order. Why is this the logical order? Well, suppose you were filing documents by date. Would you start by putting all of the documents from the 4th day (without regard to month or year) into a group? Or would you first collect all documents for a given year? Now, you might argue that filing documents is something people don't do as much of these days. We have computers and digital documents, we don't need any filing cabinets. But that only strengthens my argument, as you can easily verify. For example I am writing this on February 13, 2025. If I use a date code for my digital file, and I make it 02132025, what happens if I later on create file on January 6, 2026? That would then be 01062026. Try this, and you will see that in your file manager 01062026 will appear before 02132025, because all computers treat the significance of digits from left to right. But if you follow the ISO 8601 standard, the most significant part of the date is on the left, and all of your files will be in order. And once you get used to it, your life is easier. An example of this is photos. My wife and I like to travel, and we take a lot of photos using our smart phones. And every photo we take uses date/time stamp as part of the file name, and the dates all follow the ISO 8601 standard. So I can easily sort my photos in the order in which they were taken. And since I have over 13,000 photos in my Flickr Pro account, a little help with sorting them is really nice. I now use this format not just for digital file names, but for most of my dating purposes. It just makes sense. Links https://en.wikipedia.org/wiki/List_of_date_formats_by_country https://en.wikipedia.org/wiki/ISO_8601 https://www.zwilnik.com/proper-date-formats/ Provide feedback on this episode.

This show has been flagged as Explicit by the host. It all started at Flanders Technology International in 1987... a tech expo where an eleven-year-old watched a wooden block move across a desk and an arrow follow it on screen. That was it. That was the moment. He had to have a computer with a mouse. What followed was a story of after-school showroom squatting, summer jobs, game piracy, a modem bill that nearly gave his parents a heart attack, and an education in computing that no school could have provided. From the Amstrad PC1512 and the GEM windowing system, to the Schneider Euro PC with its infamous Turbo button that turned Ms. Pac-Man into a half-second blur — this episode is a love letter to the glorious chaos of home computing in the late 1980s. Along the way: the satisfying clatter of a matrix printer , the dark arts of config.sys and autoexec.bat , Digger , the allure of the Commodore 64 , forbidden floppy disks at computer club, a 2400-baud modem, and the very first taste of online community — long before anyone called it the internet. The computers Amstrad PC1512 — the showroom machine that started it all Schneider Euro PC — the computer-in-a-keyboard with the infamous Turbo button Commodore 64 — legendary sounds, legendary forbidden floppy disks Play the games Digger — play in your browser Ms. Pac-Man — play in your browser Samantha Fox Strip Poker (C64) Leisure Suit Larry — Looking for Love in All the Wrong Places — play in your browser Provide feedback on this episode.

This show has been flagged as Clean by the host. Two geeky people, both HPR hosts, decide to sign on the dotted line and do the darn thing and get married. Provide feedback on this episode.

This show has been flagged as Clean by the host. It's going to be pretty short, I'm going to go through my quick tips. Looks like I've got enough to kind of do a little short episode for you guys. Quick tips are basically just, you know, kind of things that I think about, that add value, kind of like those stupid viral videos on social media where they show, like how to make a pancake with a square, like it, you know. Prevent messiness when making Matcha Baking soda and super glue to get an epoxy type of seal. "Tile batter pad on top of speaker in middle" - even operat0r has no clue ! How to blowing out a candle Request for more shows on rsync inspired by hpr4341 :: Transferring Large Data Sets sent in by hairylarry How to make a foam machine Fixing garden chairs by replacing the Vinyl straps How to use a Fabric belt YTDLnis Full Featured Downloader using yt-dlp, available on F-Droid Use a wet paper towel over Microwave food. Use binder clips instead of chip clips Things To Get Me since Amazon got rid of their add arbitrary item to wish list feature. Provide feedback on this episode.

This show has been flagged as Explicit by the host. DISCLAIMER: "Hill willing to kill on" is an idiom. I do not condone or tolerate open calls for violence and want to make this very clear here. Due to the incredibly unfortunate nature of the topic at hand, I have also taken the liberty to mark this episode as explicit. This episode was recorded while I had some short downtime. There are filler phrases and pauses throughout. I apologize in advance. Provide feedback on this episode.

This show has been flagged as Explicit by the host. Bluetooth https://www.bluetooth.com/ Sound Core Headsets https://www.soundcore.com/ BaoFeng Mini https://www.baofengradio.com/products/5r-mini NOAA Weather Channel https://www.weather.gov/mob/nwr Chirp APP https://chirpmyradio.com/projects/chirp/wiki/Home HAM Radio https://www.arrl.org/what-is-ham-radio Echolink APP https://www.echolink.org/ YAGI Antenna https://www.everythingrf.com/community/what-is-a-yagi-antenna ISS https://www.nasa.gov/international-space-station/ Dry January https://alcoholchange.org.uk/help-and-support/managing-your-drinking/dry-january APRS https://www.aprs.org/ Quebec https://www.quebec-cite.com/en Chicago https://www.choosechicago.com/ Lexington, Kentucky https://www.lexingtonky.gov/ IT (Movie series) https://stephen-kings-it-series.fandom.com/wiki/It_(film_series) https://www.rottentomatoes.com/m/it_2017 https://www.rottentomatoes.com/m/it_chapter_two Burn Notice https://www.rottentomatoes.com/tv/burn-notice Bill Skarsgard https://www.rottentomatoes.com/celebrity/771821133 Villians https://www.rottentomatoes.com/m/villains Becky (movie series) https://www.rottentomatoes.com/m/becky_2020 https://www.rottentomatoes.com/m/the_wrath_of_becky Kevin James https://www.rottentomatoes.com/celebrity/1148922-kevin_james Krampus https://www.rottentomatoes.com/m/krampus Bruce Campbell https://www.rottentomatoes.com/celebrity/bruce_campbell The Perfect Host https://www.rottentomatoes.com/m/the-perfect-host David Hyde Pierce https://www.rottentomatoes.com/celebrity/david_hyde_pierce John Dies At The End https://www.rottentomatoes.com/m/john_dies_at_the_end This Book Is Full of Spiders https://www.goodreads.com/book/show/12924261-this-book-is-full-of-spiders The Owners https://www.rottentomatoes.com/m/the_owners_2020 Games of Thrones https://www.rottentomatoes.com/tv/game_of_thrones Maisy Williams https://www.rottentomatoes.com/celebrity/maisie_williams Sylvester McCoy https://www.rottentomatoes.com/celebrity/sylvester_mccoy Don't Breath https://www.rottentomatoes.com/m/dont_breathe_2016 Terrifier Movie Series https://www.rottentomatoes.com/m/terrifier https://www.rottentomatoes.com/m/terrifier_2 https://www.rottentomatoes.com/m/terrifier_3 V/H/S Movie Series https://www.rottentomatoes.com/m/v_h_s_halloween https://www.rottentomatoes.com/m/v_h_s_beyond https://www.rottentomatoes.com/m/vhs https://www.rottentomatoes.com/m/vhs94 https://www.rottentomatoes.com/m/vhs99 https://www.rottentomatoes.com/m/v_h_s_85 https://www.rottentomatoes.com/m/vhs2 https://www.rottentomatoes.com/m/vhs_viral Last Christmas https://www.rottentomatoes.com/m/last_christmas_2019 Santa's Slay https://www.rottentomatoes.com/m/santas_slay Violent Night https://www.rottentomatoes.com/m/violent_night 8 Bit Christmas https://www.rottentomatoes.com/m/8_bit_christmas Rare Exports https://www.rottentomatoes.com/m/rare_exports Silent Night, Deadly Night https://www.rottentomatoes.com/m/silent_night_deadly_night_2025 Carnage for Christmas https://www.rottentomatoes.com/m/carnage_for_christmas All The Creatures Were Stirring https://www.rottentomatoes.com/m/all_the_creatures_were_stirring Full Circle Weekly News https://fullcirclemagazine.org/ Treevenge https://www.rottentomatoes.com/m/treevenge_2009 The Killing Tree (aka Demonic Christmas Tree) https://www.rottentomatoes.com/m/the_killing_tree Bambi The Reckoning https://www.rottentomatoes.com/m/bambi_the_reckoning Winnie The Pooh Blood and Honey https://www.rottentomatoes.com/m/winnie_the_pooh_blood_and_honey Five Nights At Freddys https://www.rottentomatoes.com/m/five_nights_at_freddys Five Nights At Freddys 2 https://www.rottentomatoes.com/m/five_nights_at_freddys_2 Stranger Things https://www.rottentomatoes.com/tv/stranger_things Alien Vs Predator https://www.rottentomatoes.com/m/alien_vs_predator Snakes On A Train https://www.rottentomatoes.com/m/snakes_on_a_train LOST https://www.rottentomatoes.com/tv/lost From https://www.rottentomatoes.com/tv/from Kingfast SSD Drives https://kingfast-ssd.com/ Floorp https://floorp.app/ Jellyfin https://jellyfin.org/ Primeval https://www.rottentomatoes.com/tv/primeval Shetland https://www.rottentomatoes.com/tv/shetland Fallout https://www.rottentomatoes.com/tv/fallout Fallout 4 (viideo game) https://fallout.bethesda.net/en/games/fallout-4 Twisted Metal https://www.rottentomatoes.com/tv/twisted_metal Playstation https://en.wikipedia.org/wiki/PlayStation Farscape https://www.rottentomatoes.com/tv/farscape Peace Keeper Wars https://www.rottentomatoes.com/tv/farscape_the_peacekeeper_wars Altered https://www.rottentomatoes.com/m/altered_2025 Firefly https://www.rottentomatoes.com/tv/firefly Running Man https://www.rottentomatoes.com/m/the_running_man_2025 Suits https://www.rottentomatoes.com/tv/suits Peacemaker https://www.rottentomatoes.com/tv/peacemaker_2022 Tulsa King https://www.rottentomatoes.com/tv/tulsa_king Deadpool and Wolverine https://www.rottentomatoes.com/m/deadpool_and_wolverine Guardians Of The Galaxy 3 https://www.rottentomatoes.com/m/guardians_of_the_galaxy_vol_3 Guardians Of The Galaxy Holiday Special https://www.rottentomatoes.com/m/the_guardians_of_the_galaxy_holiday_special All Dogs Go To Kevin (Knoxville) https://www.dogstokevin.com/ Atlanta https://discoveratlanta.com/ Bohdi Linux https://www.bodhilinux.com/ Linux Mint https://linuxmint.com/ Feren OS https://ferenos.weebly.com/ Mokka https://dev.to/jliter/garuda-mokka-the-new-distro-for-developers-who-want-power-and-polish-3eif Mate https://mate-desktop.org/ Cinnamon https://thenewstack.io/what-makes-the-cinnamon-desktop-so-appealing/ Little Ceasars https://littlecaesars.com/en-us/ Jets Pizza https://www.jetspizza.com/stores/kentucky/ South Coast Pizza https://southcoastpizza.com/ Pluribus https://www.rottentomatoes.com/tv/pluribus/s01 Rick and Morty https://www.rottentomatoes.com/tv/rick_and_morty Stadia Controller https://www.pcgamingwiki.com/wiki/Controller:Stadia_Controller System 76 https://system76.com/ Pop OS https://system76.com/pop/ Elementry OS https://elementary.io/ FMAN https://fman.io/ Thunarr https://docs.xfce.org/xfce/thunar/start PCMAN FM https://wiki.archlinux.org/title/PCManFM ESP 32 https://randomnerdtutorials.com/getting-started-with-esp32/ ESP 32 Cheap Yellow Screen https://randomnerdtutorials.com/cheap-yellow-display-esp32-2432s028r/ Ganesh https://www.hinduamerican.org/blog/5-things-to-know-about-ganesha Black Shirt Bleach (Tie Dye) https://www.clorox.com/learn/how-to-bleach-tie-dye-patterns/ Discharge Paste for Fabric https://store.jacquardproducts.com/products/decolourant Plastisol https://latem.com/blog/what-exactly-is-plastisol Potato / Tapioca Starch https://www.unnatisilks.com/blogs/fiber-talk/21850-2 Corn Starch (garment printing) https://www.biopacktech.com/Corn-Starch-PLA-Sustainable-Digital-Printing-Design-Clothes-Packaging-pd44247194.html Xanthum Gum https://thedreamstress.com/2024/04/making-18th-century-buckram-gum-arabica-vs-tragacanth-vs-xantham/ Gnu Wolrd Order https://gnuworldorder.info/ Drawing Fluid (screen printing) https://www.melissadettloff.com/blog/2023/5/10/drawing-with-drawing-fluid-for-screen-printing-paint-pen-squeeze-bottle-four-tools-tested Screen Filler https://thediningtablestudio.uk/blog/screen-printing-with-screen-filler-and-drawing-fluid/ Photo Emullsion https://www.instructables.com/Photo-emulsion-Screen-Printing/ PHP https://www.php.net/ Proton Drive https://proton.me/drive GRUB https://www.gnu.org/software/grub/ Arch Linux https://archlinux.org/ Proxmox https://www.proxmox.com/en/ Allen Americans Hockey Team https://allenamericans.com/ Dallas Stars Hockey https://www.nhl.com/stars/ Arlington, Texas https://www.arlingtontx.gov/Home Dallas, Texas https://dallascityhall.com/Pages/default.aspx Knoxville Ice Bears https://knoxvilleicebears.com/ Skrewball Whiskey https://www.skrewballwhiskey.com/en/ Fireball https://www.fireballwhisky.com/ Dr. McGillicuddys https://drmcgillicuddy.com/ Guacamole https://www.allrecipes.com/recipe/14064/easy-guacamole/ Inkscape https://inkscape.org/ Cricut Cutting Machine https://inkscape.org/ South East Linux Fest https://southeastlinuxfest.org/ Seinfeld https://www.rottentomatoes.com/tv/seinfeld Simpsons https://www.rottentomatoes.com/tv/the_simpsons 24 (TV Show) https://www.rottentomatoes.com/tv/24 Eveangelion https://www.rottentomatoes.com/m/evangelion_111_you_are_not_alone Robotech https://www.rottentomatoes.com/tv/robotech StarGate https://www.rottentomatoes.com/m/stargate MakeMKV https://www.makemkv.com/ Handbrake https://handbrake.fr/ The IT Crowd https://www.rottentomatoes.com/tv/the_it_crowd_2006 Jimmy Carr https://www.jimmycarr.com/ IT Crowd (American version) https://www.asteroidg.com/index.php?section=articles&page=20240327_it_crowd_2007_pilot IT Crowd (German version) https://www.imdb.com/title/tt1101236/ Red Bull https://www.redbull.com/us-en Liquid Death (Mountain Water https://liquiddeath.com/ Deathwish Coffee https://www.deathwishcoffee.com/ Fanta https://www.coca-cola.com/us/en/brands/fanta Orange Crush https://www.crushsoda.com/ Mezzo Mix https://germanfoods.org/shop-german-foods/mezzo-mix-cola-orange-soda-in-can-11-2-oz/ Liquid Death (energy drinks) https://liquiddeath.com/products/scary-strawberry Liquid Death (iced teas) https://liquiddeath.com/products/variety-tea Tang https://www.mondelezinternational.com/our-brands/tang/ Kool Aid https://www.kraftheinz.com/kool-aid True Citrus https://www.truecitrus.com/ Provide feedback on this episode.

This show has been flagged as Clean by the host. Some tips on how the text you write can be improved. With the pestilence of AI spreading out over the once-human internet, doing what LLMs don't is a pretty good starting point to improve one's own writing. Make mistakes. Edit yourself. Avoid the tics that are dangerously close to becoming the norm. See this Wikipedia page, aimed at editors of user submissions: https://en.wikipedia.org/wiki/Wikipedia:Signs_of_AI_writing The sections on content, language & grammar, and style are particularly relevant. Provide feedback on this episode.

This show has been flagged as Clean by the host. This is a further look at the stories of the First Doctor, portrayed by William Hartnell, during the 1960s. The First Doctor, Part 5 The Celestial Toymaker This is a wonderful story, and the Toymaker is another foe many Doctor Who fans wanted to see return, and in 2023 it happened. In the story The Giggle he returned, played this time by Neil Patrick Harris, and it is a very good story. But in this introduction of the character he is played by Michael Gough in a Fu Manchu-like costume, and he has great powers, but is bound by certain rules, which makes this interesting. When the Tardis lands in his world, he sets them games they have to survive to escape. They are games based on children's games you might be familiar with, but they have a twist. The Doctor is told he must solve the Trilogic puzzle in exactly 1023 moves, and Steven and Dodo must win their games before the Doctor wins his. This story is pure entertainment but very well done. But Hartnell's decline continued. In this story there are scenes of The Trilogic Puzzle where a hand moves a piece, but it is not Hartnell's hand, it is another actor. And Hartnell does not appear at all in episodes 2 & 3. Producer John Wiles had a plan to replace Hartnell whose contract was up at the end of the season, but he was over-ruled by BBC Head of Serials, Gerald Savory, who extended Hartnell's contract, leading to John Wiles quitting the production. Hartnell would continue for now, but something would have to happen eventually. The Gunfighters) This is another historical story, but is embarrassingly bad. It takes the Tardis to Tombstone, Arizona at the time of the famous Gunfight at the OK Corral. Steven Taylor is mostly silly trying to act out childish fantasies of cowboys. The set up comes from the end of the previous story when the Doctor bites into a candy and yells in pain. He needs to see a dentist, and Doc Holliday, aside from being a gunfighter, is a dentist. Mistaken identities happen all over. This is light fluff, but is enjoyable if you give in to the silliness. The Savages) This is another story about who are the bad guys really, similar to Galaxy Four. In this case, Dodo and Steven are captured by what appear to be Stone Age savages. The Doctor, meanwhile, is taken to the city of the Elders, is greeted warmly. It seems they have been following his travels for some time and are great admirers of him. Steven and Dodo are rescued by soldiers from the City, and reunited with the Doctor. Then Dodo slips away and stumbles on experiments being conducted on human beings. So the Elders turn out to be the real Savages here. The lab is destroyed, the two groups decide to live together in peace, but they realize they need a leader who is from neither group and choose Steven to be their leader. So another companion goes. Only Dodo is left. The War Machines This is an “AI gone bad” story. A professor has built a computer to help manage the communications in the new Post Office Tower, which in fact was a new building in London. But the computer turns out to be more than anyone realized. But Doctor gets it right away when the computer correctly gives the meaning of TARDIS. Then it turns out that the computer can hypnotize people and make them its slaves. It does this to several of the professors involved, and has them build the War Machines that will enable it to take over the world. Dodo is hypnotized and tries to trap the Doctor, but he figures it out and restores her, then she is sent away to recuperate. We won't ever see her again. Meanwhile the secretary to one of the professors, by the name of Polly, and young sailor named Ben, join up with the Doctor, and they defeat the computer. At the end, they realize they have Dodo's TARDIS key and enter just before it takes off. So now we have two new companions. This is a fun episode. The props are the usual for this time in Doctor Who, cheap. But the writing is good, and story has enough twists and turns to carry you right along. Hartnell was really good in this story despite the problems he was having. The Smugglers This is another historical story, but instead of being based on any particular incident it tells of a general occurrence in English history. The English government chose to support itself primarily through customs duties on imports, which of course created an incentive to avoid those duties by smuggling, and that definitely happened a lot in the Cornwall area. It was also one the issues that started the American Revolution, but that is not our story here. The TARDIS crew encounters a former pirate, now turned church warden, who tells them a secret before being killed by another pirate. Ben and Polly capture a man who they think is the murderer, but he is in fact an undercover Revenue agent, and in the end helps to defeat the pirates. It is a good story, and the most memorable character has to be Cherub, the pirate who murdered the church warden and who kills other people and is very sinister. This is a story where all episodes have been lost, so I had to get it through reconstructions. The Tenth Planet This is Hartnell's final story, and it takes the TARDIS to Antarctica, where the travelers are taken to the Snowcap base of the International Space Command. They are managing the return of the manned space mission Zeus IV, and everything goes wrong when a new planet appears, dooming the mission. Then we meet the second most memorable enemies of the Doctor, the Cybermen. They explain that they are from the planet Mondas, which is Earth's twin (hence the Tenth Planet), and need the energy from the Earth to keep their planet going. The General running the base is of course pig-headed and does everything possible to make things worse than they have to be. This adventure turns out to be too much for the Doctor, who explains that his old body is just wearing out, and when they get back to the TARDIS he collapses and starts to change. In the end his replaced by the of Patrick Troughton. Hartnell was becoming increasingly difficult to work with as far back as The Time Meddler, where you could really see him losing his lines, and there are lots of stories about him hiding notes to remind himself of what he was supposed to say. But the BBC didn't want the show to end, so they did something unprecedented and replaced the lead actor in a popular series. To explain it away, they invented regeneration, something the Doctor's race could do. We now call them the Time Lords of Gallifrey, but that part did not appear until the end of Troughton's run as the Doctor. For now, the Doctor was just a member of an unspecified alien race, and the only other member we had met was the Meddling Monk. At least we assume he is of the same race since he has a TARDIS. The First Doctor Era Whatever else you might want to say about Hartnell he created a franchise that has lasted for over 60 years at the time I write this. And after a slow start, he really developed the character and became identified with it. In the beginning he was a very stubborn and unlikable old man, but as the series progressed he mellowed and his humor started to come through even more. Hartnell himself returned to the role one more time in the Third Doctor story The Three Doctors (1973), which was the first time Doctor Who had a story featuring multiple incarnations of the character, in the case the First Doctor (William Hartnell), the Second Doctor (Patrick Troughton), and the Third Doctor (Jon Pertwee). But due to his declining health he has a limited role appearing only on a TV Screen. He passed away in 1975. He was portrayed by Richard Hurndall in another multiple Doctor story, _The Five Doctors_ (1983), which was broadcast for the 20th anniversary of the program during Peter Davison's run as the Fifth Doctor. In recent times David Bradley has portrayed the First Doctor, particularly in the docudrama An Adventure in Space and Time (2013) which was produced in honor of the 50th anniversary of the program. This show tells the story of the First Doctor and the how the program came together in a dramatic form, and I recommend it highly. Bradley would reprise the role in 2017 in _The Doctor Falls and Twice Upon A Time) where he played opposite Peter Capaldi's 12th Doctor, and then again in The Power of the Doctor_ (2022), where he appears alongside other previous Doctors. It is perhaps notable that the first three Doctors, William Hartnell, Patrick Troughton, and Jon Pertwee, have all passed away, but only Hartnell's First doctor has been revived so often. Links: https://en.wikipedia.org/wiki/The_Celestial_Toymaker https://en.wikipedia.org/wiki/The_Gunfighters_(Doctor_Who) https://en.wikipedia.org/wiki/The_Savages_(Doctor_Who) https://en.wikipedia.org/wiki/The_War_Machines https://en.wikipedia.org/wiki/The_Smugglers https://en.wikipedia.org/wiki/The_Tenth_Planet https://en.wikipedia.org/wiki/The_Three_Doctors_(Doctor_Who) https://en.wikipedia.org/wiki/The_Five_Doctors https://en.wikipedia.org/wiki/An_Adventure_in_Space_and_Time https://en.wikipedia.org/wiki/The_Doctor_Falls https://en.wikipedia.org/wiki/Twice_Upon_a_Time_(Doctor_Who) https://en.wikipedia.org/wiki/The_Power_of_the_Doctor https://www.palain.com/science-fiction/intro-to-doctor-who/the-first-doctor-part-5/ Provide feedback on this episode.

This show has been flagged as Clean by the host. Women in Digital and Games By Digital and Creative Technologies - West Suffolk College 73 Western WayBury St Edmunds, England Friday, Mar 27 from 6 pm to 8 pm Join us in person to celebrate and empower Women in Digital and Games with talks, networking, and fun! Get ready to connect, learn, and be inspired at this awesome in-person event celebrating amazing women in the digital and games industries. Whether you're a student, professional, or just curious, come hang out, hear stories, and boost your network. Don't miss out on an empowering evening filled with energy and inspiration! Source: Eventbrite https://share.google/SXD66BhsftLmQ3Yfx https://share.google/SXD66BhsftLmQ3Yfx https://camjam.me/ https://www.computinghistory.org.uk/ Provide feedback on this episode.

This show has been flagged as Explicit by the host. Here is some no nonsense advice for recording decent sounding audio using Linux and open-source software! Some of my links: Mastodon: https://indieweb.social/@stranded_output PeerTube: https://peertube.wtf/c/strandedoutput/videos Linux Lads podcast: https://linuxlads.com/ YouTube channel: https://www.youtube.com/@strandedoutput2916 Personal site: https://strandedoutput.com/ Provide feedback on this episode.

This show has been flagged as Clean by the host. This series is dedicated to exploring little-known—and occasionally useful—trinkets lurking in the dusty corners of UNIX-like operating systems. Imagine, if you will, a Jane Austen novel about three sisters. The first is well-known and celebrated by everyone; the second, while slightly smarter and more capable, is significantly less popular; and the third languishes in near-total isolation and obscurity. These three sisters live on any UNIX-like system, and their names are grep , egrep , and fgrep . We will assume you are already familiar with grep — egrep works pretty much the same, except she handles e xtended regular expression syntax. (When writing shell scripts intended to be portable, be careful to call egrep if your expression uses + , ? , | , or braces as metacharacters. Some versions of GNU grep make no distinction between basic and extended regular expressions, so you may be surprised when your script works on one system but not another.) But our subject for today is poor, unnoticed fgrep . While the plainest sister of the three, she really doesn't deserve to be ignored. The "f" in her name stands either for f ixed-string or f ast, depending on who you ask. She does not handle regular expressions at all; the pattern she is given is taken literally. This is a great advantage when what you are searching for contains characters having special meaning in a regular expression. Suppose you have a directory full of PHP scripts and want to find references to an array element called $tokens[0] . You can try grep (note that the single quotes are necessary to prevent the shell from interpreting $tokens as a shell variable): $ grep '$tokens[0]' *.php But there is no output. The reason is that the brackets have special significance to grep ; [0] is interpreted as a character class containing only 0. Therefore, this command looks for the string $tokens0 , which is not what we want. We would have to escape the brackets with backslashes to get the correct match (some implementations may require you to escape the dollar sign also): $ grep '$tokens[0]' *.php parser.php: $outside[] = $tokens[0]; Instead of fooling with all that escaping (which might get tedious if our pattern contains many special characters), we can just use fgrep instead: $ fgrep '$tokens[0]' *.php parser.php: $outside[] = $tokens[0]; One place where fgrep can be particularly handy is when searching through log files for IP addresses. With ordinary grep , the pattern 43.2.1.0 would match 43.221.0.123, 43.2.110.123, and a bunch of other IP addresses you're not interested in because the dot metacharacter will match any character. To make sure you only matched a literal dot you'd have to escape each one with a backslash or, better yet, use fgrep . But what about the claim that fgrep is fast? On GNU systems, there is usually one single binary that changes its behavior depending on whether it is called as grep , egrep , or fgrep . (Actually, this is in line with the POSIX standard 1 , which deprecates egrep and fgrep in favor of a single grep command taking the -E option for using extended regular expressions and the -F option for doing fixed-string searches.) In testing, we found that when specifying a single pattern on the command line, fgrep wasn't really any faster than grep . However, when using the -f option to specify a file containing a list of a couple dozen patterns, fgrep could consistently produce a 20% time savings. On systems where grep and fgrep are different binaries, there can potentially be a more dramatic difference in speed and even memory usage. In our hypothetical Austen novel, the neglected sister would probably be driven to a bad end, to be only spoken of afterward in hushed whispers. Don't let that happen! Whenever you need to search for a string, but don't require the power of regular expressions, get into the habit of calling on fgrep . She can be very helpful and deserves more attention than she gets. You'll save yourself the trouble of worrying about metacharacters and maybe some running time as well. References: Grep specification https://pubs.opengroup.org/onlinepubs/009695399/utilities/grep.html#tag_04_63_18 This article was originally written in June 2010. The podcast episode was recorded in February 2026. Provide feedback on this episode.

This show has been flagged as Clean by the host. We'll explain why we're doing it, what it is, and cover some useful tools along the way. I've been watching movies recommended to me by my colleagues. As I work for a global company, the recommendations are often “Foreign Language”, which by definition is every movie to someone. It's often difficult to read the subtitles, or they are distracting from the acting. So I thought of converting the subtitles to speech for inclusion as an audio track, to produce a Voice Over or Lectoring audio track. Lectoring aka Voice Over Translations First used is soviet countries to read the news and propaganda from a lectors - the first podcasts ? In Polish, lektor is also used to mean “off-screen reader” or “voice-over artist”. A lektor is a (usually male) reader who provides the Polish voice-over on foreign-language programmes and films where the voice-over translation technique is used. This is the standard localization technique on Polish television and (as an option) on many DVDs; full dubbing is generally reserved for children's material. https://en.wikipedia.org/wiki/Lector#Television Example: Night of the Living Dead To give you an idea of what this sounds like I'm going to play you an example of the out of copyright movie, Night of the Living Dead . In the United States, Night of the Living Dead was mistakenly released into the public domain because the original distributor failed to replace the copyright notice when changing the film's name Original First the original sound track, then the same clip with the voice over track. Voice Over Proof of Concept As a native English speaker I find it difficult to follow those Voice Over tracks as I am trying to focus on the underlying audio. In discussions with Polish friends, it seems that this is not a problem when Polish is your native language. To put that to the test I wanted to try it out on a movie to see if that were indeed the case. I asked on Mastodon for a non English movie that was Creative Commons but did have English Subtitles, and HPR host Windigo had the answer. 2009 Nasty Old People is a 2009 Swedish film directed by Hanna Sköld, Tangram Film. It premiered on 10 October 2009 at Kontrapunkt in Malmö, and on file sharing site The Pirate Bay. The film is available as an authorized and legal download under the Creative Commons license CC BY-NC-SA. So my idea was to take each bit of subtitle text, convert it to audio, then have the generated audio play at the same time the subtitle appears on the screen. We use piper to process shows here on HPR, and we also generate srt, or SubRip subtitle files for each show. SRT or SubRip files are the easiest subtitle file to work with. From https://en.wikipedia.org/wiki/SubRip The SubRip file format is described on the Matroska multimedia container format website as “perhaps the most basic of all subtitle formats.” SubRip (SubRip Text) files are named with the extension .srt , and contain formatted lines of plain text in groups separated by a blank line. Subtitles are numbered sequentially, starting at 1. The timecode format used is hours:minutes:seconds,milliseconds with time units fixed to two zero-padded digits and fractions fixed to three zero-padded digits (00:00:00,000). The comma (,) is used for fractional separator . A numeric counter identifying each sequential subtitle The time that the subtitle should appear on the screen, followed by –> and the time it should disappear Subtitle text itself on one or more lines A blank line containing no text, indicating the end of this subtitle I downloaded the movie from the Internet Archive , and then used Piper voice to convert a minutes worth of subtitles. piper_voice: A fast and local neural text-to-speech engine that embeds espeak-ng for phonemization. GPL-3.0 license Once I had the audio prepared for a sample of the subtitles, it was over to audacity to create a new subtitle audio track. Audacity is the world's most popular audio editing and recording app GPL v2 or later, Timing the segments would be a problem, if it were not for the fact that Audacity supports srt files as Labels. File > Import > Lables. Then select the srt file The subtitle track with the text of the audio will be displayed. I could then Import each Audio segment and line them up with the subtitle track for to get the correct timing. Each subtitles segment created a new separate audio file which I then exported. I then used Kdenlive to open the video and import the audio and subtitle tracks. Kdenlive: is the acronym for KDE Non-Linear Video Editor. It works on Linux, Windows, macOS, and BSD. GPL-3.0-or-later There is a good article on adding by Jean-Marc on How to Add Subtitles Easily in Kdenlive Project > Subtitles > Add Subtitle Track Select the Subtitle file Align the subtitle and audio track. After rendering the segment out I was satisfied that this was something worth doing. The script The script can be found on the episode page for this show on the HPR site, and I put it together as a proof of concept. It creates a new audio track for the subtitles, and merges this with the original sound track to create a new selectable sound track. It begins by creating a length of silent audio that is as long as up to the first subtitle time segment begin timestamp. The first subtitle segment is converted from text to speech using Piper voice That segment of audio is added to the initial silence track. We check the total length so far, and then see if there is supposed to be silence between the last and next subtitle segment begin timestamp. If there is, then a filler piece of silence is added until the next subtitle should appear. If not then the audio for both subtitles play immediately after one another. I was worried that the subtitle audio would then lag behind the on screen dialogue but it works surprisingly well. Even long series of dialogue sort themselves out after a bit. We do this over and over again for each subtitle, right up to the very end of the movie. This new subtitle to speech audio track is then merged back into the media file as a new audio track. 96 00:15:06,240 --> 00:15:10,640 It will be two years before it's this big 97 00:15:12,840 --> 00:15:17,840 But don't you bother. By then I'll be long gone 98 00:15:19,840 --> 00:15:22,400 It was just a question 99 00:15:22,880 --> 00:15:25,480 Porridge? Original First the original sound track, then the same clip with the voice over track. Voice Over Lessons learned Now that I have done this for a lot of movies, there a few tips for getting the best output. The creation of the audio track usually goes well, but you can run into issues with the merging of the new track back into the movie. Preparation The first thing you need is a subtitle file which will be the basis of the voice you will be listening to. It should be good quality so that it matches when the actors speak. It's important to clean up this before you use it, fixing spelling mistakes and removing html that will get rendered. Listening to three hours of “I L Zero ve y Zero u”, or “less than forward slash I, greater than”, or “L am from Lndia” can get a bit tedious. You should also try and get versions that translate the songs as well. Getting a SRT file from the media. As many Subtitles are taken from a DVDs they can often be poor Optical character recognition versions of the bitmap-based streams. So a picture of string “Hello World” rather than the letters. ffmpeg By far the easiest and best way to get the subtitles is to extract it from the movie itself, provided it's a separate track. ffmpeg is a complete, cross-platform solution to record, convert and stream audio and video. LGPL-2.1-or-later, GPL-2.0-or-later https://ffmpeg.org/ ffmpeg -y -hide_banner -loglevel error -txt_format text -i "${this_movie_file}" "${this_srt_file}" Getting a SRT file from the web. If that fails you can try to get the subtitle files from the Internet. https://www.opensubtitles.org Select your language with the highest subtitle rating. You can check the media using the mpv media player. mpv is a media player based on MPlayer and mplayer2. It supports a wide variety of video file formats, audio and video codecs, and subtitle types. GPLv2+, parts under LGPLv2.1+, some optional parts under GPLv3 https://mpv.io/manual/master/ Name the srt file with the same prefix as the movie and mpv will play it. You can also use the --sub-files= option as well. mpv "${this_movie_file}" --sub-files="${this_srt_file}" Scrub through the file to see if the timing is correct. The subtitles can be toggled using the j key. Fixing Timing issues It's very important to get the subtitles to align, otherwise the voices will be out of sync. When the subtitles don't match up, it's usually that they need to have the start offset corrected. ffsubsync will automatically try and adjust the offset of the first subtitle to the first use of speech in a movie. ffsubsync: Language-agnostic automatic synchronization of subtitles with video, so that subtitles are aligned to the correct starting point within the video. MIT license https://github.com/smacke/ffsubsync pip install ffsubsync ffs video.mp4 -i unsynchronized.srt -o synchronized.srt LosslessCut will allow you to quickly remove additional trailers, or ads, at the beginning, so that ffsubsync will have a better chance of working if they are trimmed away. LosslessCut: aims to be the ultimate cross platform FFmpeg GUI for extremely fast and lossless operations on video, audio, subtitle and other related media files. GPL-2.0 license https://github.com/mifi/lossless-cut If that fails to match up the subtitles, you can use mpv keyboard shortcuts , move to the first speech segment an then press the Ctrl+Shift+Left and Ctrl+Shift+Right to adjust subtitle delay so that the next or previous subtitle is displayed. It will also show a number giving the miliseconds the delay is, eg -148416 miliseconds or -148.416 seconds. You can use many tools to adjust the subtitles, and I tried out SRT Offset . srt-offset: A simple command-line tool to offset SRT subtitle files. This tool allows you to adjust the timing of subtitles in SRT files, which can be useful when subtitles are out of sync with the video. MIT license srt-offset -i input.srt -offset -148.416 -o output.srt Manually adding the new subtitle to speech audio track If that presents an issue then you can use avidemux to just add the new audio track. Avidemux: is a free video editor designed for simple cutting, filtering and encoding tasks. GPL V2 Open Avidemux, and select “File > Open”, to select the movie. Then go to “Audio > Select Track” Select the next unselected track and tick “Enabled”, “Add Audio Track” Then pick the new mixed track, in this example .~NastyOldPeople_mixed.mp3 Conclusion I now find it much easier to watch a movie with the voice over track. It gets to a point where I don't even notice it is there and just hear the actors speak in their own language, and I just know what they are saying. Links 2009 Nasty Old People A Spanish voice-over translation avidemux by Jean-Marc on How to Add Subtitles Easily in Kdenlive container format Decimal separator extension ffmpeg ffmpeg on wikipedia ffsubsync GPL-3.0 license GPL v2 or later Kdenlive LGPL-2.1 LosslessCut Matroska MIT license Movie on Archive.org mpv mpv keyboard shortcuts mpv wikipedia Nasty Old People from the Internet Archive Night of the Living Dead Noc żywych trupów | Film grozy | Polski lektor OpenSubtitles opensubtitles.org Optical character recognition Piper voice SRT Offset srt, or SubRip subtitle files SubRip Timecode Voice-over translation Whisper Provide feedback on this episode.

This show has been flagged as Explicit by the host. I'm talking about water meters Provide feedback on this episode.

This show has been flagged as Explicit by the host. ### Eps 02 Start ### Amazon Alexa https://en.wikipedia.org/wiki/Amazon_Alexa https://developer.amazon.com/en-US/alexa Home Assistant https://en.wikipedia.org/wiki/Home_Assistant https://www.home-assistant.io/ Steelseries: Arctis 9X https://steelseries.com/gaming-headsets/arctis-9x https://headphonereview.com/over-ear/steelseries-arctis-9x-gaming-headset-review/ Razer: Nari series https://www.razer.com/pc/gaming-headsets-and-audio/nari-family https://mysupport.razer.com/app/answers/detail/a_id/3636/~/razer-nari-ultimate-%7C-rz04-02670-support-%26-faqs Skullcandy: crusher https://www.skullcandy.com/collections/skullcandy-crusher-bass Audio-Technica ATH-M50x https://www.audio-technica.com/en-us/ath-m50x HyperX: cloud https://hyperx.com/collections/gaming-headsets Plantronics Headset https://plantronicsstore.com/ Skullcandy: Hesh 3® Wireless https://support.skullcandy.com/hc/en-us/articles/360008277374-Hesh-3-Wireless Centauri Carbon https://www.elegoo.com/pages/elegoo-centauri-carbon https://us.elegoo.com/products/centauri-carbon?srsltid=AfmBOooFOZ2ms1EDtl2TiIAajyqMjkLFTkPb0hMFzis2PZs8sbdgpfRn Ender-3 https://www.creality.com/products/ender-3-3d-printer https://www.creality3dofficial.com/products/official-creality-ender-3-3d-printer Monoprice Maker Select V2 https://monopricesupport.kayako.com/article/278-maker-select-v2-manual-quick-start-guide-part-13860 https://www.treatstock.com/machines/item/237-maker-select baha GmbH https://www.baha.com/?culture=en-US&ts=1768855891246 HP Elite Mini 600 https://www.hp.com/us-en/shop/mdp/desktops-and-workstations/hp-elite-mini-600-3074457345617692179--1 HP 9000 https://en.wikipedia.org/wiki/HP_9000 Full Circle Magazine https://fullcirclemagazine.org/ Mintcast https://mintcast.org/ Podcatcher https://en.wikipedia.org/wiki/List_of_podcast_clients Podcast addict https://podcastaddict.com/ Antenna pod https://antennapod.org/ Robinhood: Trading & Investing https://robinhood.com/us/en/ E-Trade is an investment brokerage and electronic trading platform https://us.etrade.com/home Distrohoppers' Digest Podcast https://distrohoppersdigest.org/ Spotify https://open.spotify.com/ Software-defined radio https://en.wikipedia.org/wiki/Software-defined_radio Filk music https://en.wikipedia.org/wiki/Filk_music OggCamp 2026 https://www.oggcamp.org/ Moss music https://mordewis.bandcamp.com/ Discord https://discord.com/ https://support.discord.com/hc/en-us/articles/360030853132-Server-Folders-101 The Hitchhiker's Guide to the Galaxy https://en.wikipedia.org/wiki/The_Hitchhiker%27s_Guide_to_the_Galaxy https://hitchhikers.fandom.com/wiki/The_Hitchhiker%27s_Guide_to_the_Galaxy Baofeng BF-50 https://www.baofengradio.com/products/5r-mini https://www.youtube.com/watch?v=DWtbDtMyqMA Baofeng UV-5R Mini Dual-band Radio https://www.radioddity.com/products/baofeng-uv-5r-mini Pi Day https://en.wikipedia.org/wiki/Pi_Day GNU World Order https://gnuworldorder.info/ SDF Public Access UNIX System https://sdf.org/ NetBSD https://www.netbsd.org/ https://en.wikipedia.org/wiki/NetBSD Raspberry Pi 1 Model B+ https://www.raspberrypi.com/products/raspberry-pi-1-model-b-plus/ OpenBSD https://www.openbsd.org/ https://en.wikipedia.org/wiki/OpenBSD FreeBSD https://www.freebsd.org/ https://en.wikipedia.org/wiki/FreeBSD Something about "ports"? https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/4/html/security_guide/ch-ports Chapter 4. Installing Applications: Packages and Ports https://docs.freebsd.org/en/books/handbook/ports/ https://freebsdfoundation.org/resource/installing-a-port-on-freebsd/ OpenBSD Ports - Working with Ports [Handbook Index] https://www.openbsd.org/faq/ports/ports.html SerenityOS https://serenityos.org/ https://en.wikipedia.org/wiki/SerenityOS Ladybird is a brand-new browser & web engine. https://ladybird.org/ Unix https://en.wikipedia.org/wiki/Unix https://en.wikipedia.org/wiki/List_of_Unix_systems UNIX System V https://en.wikipedia.org/wiki/UNIX_System_V UNIX V4 tape successfully recovered. https://www.tomshardware.com/software/linux/recovered-unix-v4-tape-quickly-yields-a-usable-operating-system-nostalgia-addicts-can-now-boot-up-unix-v4-in-a-browser-window https://www.theregister.com/2025/12/23/unix_v4_tape_successfully_recovered/ Newsboat is an RSS/Atom feed reader for the text console. https://newsboat.org/index.html Podboat https://man.archlinux.org/man/extra/newsboat/podboat.1.en EPR: Terminal/CLI Epub reader written in Python 3.6. https://github.com/wustho/epr Ruby Programming Language https://www.ruby-lang.org/en/ https://en.wikipedia.org/wiki/Ruby_(programming_language) https://rubyonrails.org/ Crystal is a general-purpose, object-oriented programming language. https://crystal-lang.org/ https://en.wikipedia.org/wiki/Crystal_(programming_language) Plasma is a Desktop https://kde.org/plasma-desktop/ Vim is a highly configurable text editor https://www.vim.org/ https://en.wikipedia.org/wiki/Vim_(text_editor) Sublime Text https://www.sublimetext.com/ sed, a stream editor https://www.gnu.org/software/sed/manual/sed.html https://en.wikipedia.org/wiki/Sed English punctuation https://en.wikipedia.org/wiki/English_punctuation https://en.wikipedia.org/wiki/Punctuation List of typographical symbols and punctuation marks https://en.wikipedia.org/wiki/List_of_typographical_symbols_and_punctuation_marks Pluma (text editor) https://en.wikipedia.org/wiki/Pluma_(text_editor) https://github.com/mate-desktop/pluma Kate (text editor) https://kate-editor.org/ https://en.wikipedia.org/wiki/Kate_(text_editor) Vimium https://addons.mozilla.org/en-US/firefox/addon/vimium-ff/ https://vimium.github.io/ https://github.com/philc/vimium Zen Browser https://zen-browser.app/ https://en.wikipedia.org/wiki/Zen_Browser Vivaldi https://vivaldi.com/download/ Thunderbird https://www.thunderbird.net/en-US/ https://en.wikipedia.org/wiki/Thunderbird Uniden https://uniden.com/ Arduino https://www.arduino.cc/ Raspberry Pi https://www.raspberrypi.com/ Plex https://www.plex.tv/ Qualcomm to Acquire Arduino https://www.qualcomm.com/news/releases/2025/10/qualcomm-to-acquire-arduino-accelerating-developers--access-to-i https://www.arduino.cc/qualcomm https://www.jeffgeerling.com/blog/2025/qualcomms-buying-arduino--what-it-means-makers/ Perfboard Hackduino https://www.instructables.com/Perfboard-Hackduino-Arduino-compatible-circuit/ DIY Arduino https://www.instructables.com/DIY-Arduino-UNO-How-to-Make-Your-Own-Arduino-Uno-B/ https://docs.arduino.cc/hardware/make-your-uno-kit/ https://www.electronicshub.org/make-your-own-arduino-board/ Notacon https://en.wikipedia.org/wiki/Notacon hak5 / bashbunny-payloads https://github.com/hak5/bashbunny-payloads Provide feedback on this episode.

This show has been flagged as Clean by the host. 01 Introduction This episode is the eighth and final one in an 8 part series on nuclear reactor technology. In this episode I will talk about future reactor technologies, particularly what are referred to as "Generation IV" reactors. Some of these will be simply additional developments of reactors that have already been discussed in this series, but this will show what technologies are seen as most promising today. 03 What is Generation IV Generation IV International Forum is an international organization whose membership is composed of many of the countries that are researching advanced fission reactors. Their goal is to conduct a number of joint research projects to advance the state of the art. The members agree to participate in and share research on advanced technologies. 04 Research Subjects 05 Lead Fast Reactors (LFR) 08 Sodium Fast Reactor (SFR) 10 Gas-Cooled Fast Reactor (GFR) 13 Very High Temperature Reactor (VHTR) 16 Molten Salt Reactors (MSR) 19 Super Critical Water Reactors (SCWR) 27 Episode Conclusion In this episode we looked at the reactor types being studied under an international organization called the "Generation IV International Forum". All of these reactor types except for supercritical water reactors are not new and we have looked at them previously. Supercritical water reactors themselves represent the natural evolution of water cooled reactors. I expect that many of these research projects will not result in commercially successful results. Such is the nature of R&D. The supercritical water reactors would on the surface seem to have the most promise in terms of commercial use, as they focus on bringing two very well established technologies together, water cooled reactors and supercritical water. However, I'm not an expert in this field, so I'm just making an educated guess on that. 30 Series Conclusion This is the end of the series on nuclear reactor technology. Episode 1 covered nuclear basics, including basic terminology and civil versus military nuclear material. Episode 2 covered nuclear fuel, including the different types, recycling of spent fuel, uranium and thorium resources, and medical isotopes. Episode 3 covered reactor basics, including slow versus fast reactors, moderators, coolants, steam generation, refuelling methods, and the three main commercial reactor types. Episode 4 covered the less common reactor types, including types which are no longer used, some historical developmental dead ends, and some types which may possibly be making a come back. Episode 5 covered fast reactors, including the different types, some of their history, why they were developed, and why they have so far only seen limited use. Episode 6 covered thorium reactors, including what is thorium and how it differs from uranium, why there is interest in thorium, what sorts of reactors can use thorium, and why thorium has not yet seen widespread use. Episode 7 covered small modular reactors or SMRs, what the reason is for developing them, what are the different ways they may be used, and where they are currently being built. Episode 8 covered "Generator IV" reactors which is a collection of future technologies. I hope that this series has been useful and informative on how nuclear reactors work and what the different types of reactors and different types of fuel are. I have focused on the past and present without looking very much beyond what is already developed except in this final episode. I have focused on the reactors, fuel, and medical isotopes, without much discussion of mining, refining, converting, enrichment, fuel fabrication, or disposal. I also haven't talked much about the rest of a functioning power plant, which includes cooling, steam turbines, generators, transformers, control systems, refuelling systems, switch gear, transmission grid connections, grid coordination, and many, many other things. And of course there's the entire grid itself, a very complex thing when operated at scale. None the less we count on the lights going on when we turn on the light switch while seldom thinking about all the things that go on behind the scenes to make that happen. As the recent blackout in Spain shows, that is something that we can't take for granted. With plans for "Net Zero" amounting essentially to the further electrification of everything, we need reliable sources of electrical energy to make that happen. Without reliable energy available at the touch of a switch, we don't even have a stone age civilization, let alone a modern one. So think about that the next time you turn on the lights or listen to a podcast or do nearly anything else in your daily life. This concludes the eighth and final episode of an 8 part series on nuclear reactor technology. Provide feedback on this episode.

This show has been flagged as Clean by the host. I also happen to be happy when I see my dogs well. They're both a little old and have had grave sicknesses. One, the girl, is taking medication because of a problem, maybe on the spine, that interferes with walking, but in general both her and the little white male (who almost died because of stone in the ureter at around the pandemic) are today good, and I'm grateful seeing them in this state. And I suffer when they suffer. The hot weather is also more comfortable for them, so, even though we are having too much hot weeks here in Curitiba [Brazil], it's a soft, nice, weather. Generally I take a cup of coffee on the early morning. Sometimes I give a little run, or go cycling to my duties, without coffee and even without bread. Only then, hours later, I take the coffee and maybe eat something, hours after awake. The exercise, the bath with nothing on the stomach, and, oh, the coffee after (specially the espresso, or american, my current favourite, espresso with hot water), does good, it's a good feeling outside of the routine. I learned to like to share things. I like to share what I judge important. As much as I appreciate doing that, they feel as a burden; an account, or a published content, are like something I'm constantly carrying, that may condemn what I come to be, or may create expectations on others that I can't fulfil, or are “me in the world”, in a manner that I feel so unsecure. So I feel good, and safe, in erasing everything under my control some time after having created an account or published something. I feel well, and it makes me happy, to have a night of sleep in which I don't wake up more than once. If I wake up early spontaneously, and rested, better yet, good sensation, makes me happy. To be true, when I spend the first time on the morning reading the Bible, with prayer, even when I'm not keen on doing that, man, my head and my body end up being marvellous. Martin Luther, the one of the reform, is said to having said: “I have so much to do that I will spend the first three hours praying”. A piece of opinion, unasked, if you're constantly doing something you think it's too easy, you may not be doing it right, or you're not doing the right thing. Let's see what's wrong and do the right thing. One last thing that makes me happy is when my swimming pool is clean. It's been for years now. As with the other facts, it's good by itself, yeah, but has more meaning as I had many dirty problems with its water, to the point that the neighbours called sanitary authorities. I don't want to have any more problems in this area, or in any other area of living, but I know now, and have to guide my heart to feel accordingly to what I know, that any problems that arise are to result in my good and good to other people and other living creatures too. So the difficulties, even the hardest ones, can be faced with peace, because I know the future, and being in a bad state will not help in hiking up and overcoming whatever there is here now or right ahead. Our posture, our internal condition in doing something, counts much together with the external things, visible or invisible, that we do. I thank you for listening [reading]. Bye. Provide feedback on this episode.

This show has been flagged as Clean by the host. When attempting to push commits to a remote repository, git rejected the push with an error. The branches had diverged! git status Result: On branch main Your branch and 'origin/main' have diverged, and have 7 and 1 different commits each, respectively. The problem: * 79085bb (HEAD -> main) Improve mobile responsiveness for very narrow viewports * eec46f5 Improve responsive layout for narrow viewports * 79c71eb Fix sync dialog modal instantiation * 33fd501 Add markdown rendering to session notes in desktop app * 1a119f7 Increase hierarchy panel bottom padding to 9rem in web app * c557299 Constrain session notes width with word wrap * f2ab785 Add bottom padding to hierarchy navigation panel | * 7459345 (origin/main) fix: address bug on Desktop with Sync dialog |/ * c8cc83d Fix routing for Dashboard action after renaming from Index After resolving with git rebase there was a new problem. commit messages contained Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 The solution was to use interactive rebase with --exec to amend each commit: git rebase -i 7459345 --exec 'git commit --amend -m "$(git log --format=%B -n1 | sed -e "/ Generated with/d" -e "/Co-Authored-By: Claude Sonnet/d" | sed -e :a -e "/^n*$/{$d;N;ba" -e "}")"' Still the branches differed git log --oneline --graph --all -12 * 4205e86 Improve mobile responsiveness for very narrow viewports * a5947ee Improve responsive layout for narrow viewports * 012a78f Add markdown rendering to session notes in desktop app * d5227d2 Increase hierarchy panel bottom padding to 9rem in web app * aed5405 Constrain session notes width with word wrap * bcc32e8 Add bottom padding to hierarchy navigation panel | * 64a4118 Improve mobile responsiveness for very narrow viewports | * cbf2c68 Improve responsive layout for narrow viewports | * 731eee2 Add markdown rendering to session notes in desktop app | * 197fdb8 Increase hierarchy panel bottom padding to 9rem in web app | * 09377c9 Constrain session notes width with word wrap | * 6714c35 Add bottom padding to hierarchy navigation panel |/ The solution git push --force Git Commands Reference Here are all the commands used in this adventure, in order: Check current status git status Fetch latest from remote git fetch origin View commit history graph git log --oneline --graph --all --decorate -15 View specific commit details git show origin/main --stat git show 79c71eb WorkLog.Desktop/src/qml/main.qml Rebase local commits onto remote git rebase origin/main During conflict: stage resolved files and skip duplicate commit git add WorkLog.Desktop/src/qml/main.qml git rebase --skip Check commit message git show --stat HEAD git log --format="%B" -1 HEAD Attempt to filter commit messages (didn't work) git filter-branch -f --msg-filter 'sed ...' 7459345..HEAD Interactive rebase to amend all commits (successful) git rebase -i 7459345 --exec 'git commit --amend -m "$(git log --format=%B -n1 | sed ...)"' Verify messages were cleaned git log --format="%B" -1 HEAD git log --format="%B" -1 HEAD~3 Force push to update remote git push --force Provide feedback on this episode.

This show has been flagged as Clean by the host. In our next look at the game mechanics for Civilization V we examine a new feature in Civilization 5, City-States. These are independent cities controlled by the computer that are also players to some degree in the game, and you can interact with them. And they are key to winning a Diplomatic Victory. Playing Civilization V, Part 9 - City States This was a newly introduced feature in Civ 5, and they play an important role in the game. They represent the small countries that are not running the world. They do not produce Settlers, so they do not expand beyond the one city, though that city can, and will expand its borders in a similar way to how your cities can grow. They do not start with a military unit, but they can produce military units and defend themselves. They can also build buildings in the city, but not Wonders. They do have a single vote each in the World Congress (or later the United Nations), making them a key to a Diplomatic victory. City States start out neutral with regards to the players, but your interactions with them can affect how they feel about you. For example, if you send units through their territory they will get hostile, but if you give them gifts they will get friendly. And if you wish you can go to war with them and take them over. This will affect your diplomatic relations with other players and other city states, but if you have decided on a war of conquest as your victory type, that won't matter to you, right? As mentioned, if you want to go for a Diplomatic victory you want to be allied with as many of them as possible to get their votes in the World Congress or the United Nations. But even if you don't need their votes, there are other benefits from friendly relations. There are two levels to friendly relations: Friendly, and Allied, and the benefits get better as the relations improve. City State Types With the expansions there are 5 types of City State: Militaristic, Maritime, Cultured, Mercantile, and Religious. The benefits you get are: Militaristic – If you are friends the city state will periodically gift you a unit, which will appear in your city which is closest to the city state. If you are allies the units will show up more often. Maritime – If you are friends they will add two food to your Capital city. If you are allies they will add one more food to every city you have. Cultured city states share their culture with you, at one rate if you are friends and at double the rate if you are allies. Mercantile city states give you an added 3 Happiness when you are friends. If you are allies you keep the added happiness, but in addition get access to a luxury resource that cannot be obtained any other way, and that also adds Happiness. Religious city states give you a one-time bonus of Faith when you first meet them, then provide added Faith per turn. Note that Cultured and Religious city states increase the amount of Culture or Faith they provide with each new era, so the earlier you develop your relations with them the better the benefit. Managing Relations With City States There is a mechanism in the game which keeps track of points to define your relations with city states. On this numerical scale, Neutral has a value of 0, Friendly 30 or above, and Allied 60 or above. In the other direction, once you go into negative numbers they become Angry, if if you go negative enough it becomes War. A city state can only ever have one ally. If only one player has more than 60 influence points, that player will become the patron of the city state and they will ally to that player. If two or more players have more than 60 influence points, the player with the most points gets the ally. As the game goes on, you may get a message that a city state you had as an ally has suddenly allied to someone else. This is the result of the other player gaining influence points in some way, often by gifts. You can also gain influence points by promising to protect a city state, but do this with your eyes open. If you do not follow through on your promise it will enrage the city state and you will lose a lot of influence with them. Your influence with a city state has a natural resting point at 0, or Neutral. That means that barring other factors, a positive number will fall over time, and a negative number will rise over time. So if you sent one of your units through their territory they will be angry for a period, but if nothing else happens they will return to Neutral. But on the other side, you don't stay allied with them forever unless you find ways to keep adding influence points. One way is to eliminate barbarian camps near to the city state. In fact, this is one exception to the rule about sending units through their territory. If you are doing it to attack the barbarians, you are seen as a protector, not an invader, and there is no penalty. Another way to gain influence is by completing a quest from a city state. Each city state you are in contact with will periodically give you a quest, and if you fulfill it you will gain influence points. This can include killing a barbarian camp or killing nearby barbarian units (though you can do that at any time, you don't need a quest). Some others include acquiring a Great Person of a certain kind, building a certain World Wonder, bullying another city state, finding a Natural Wonder, and so on. You do not need to fulfill a quest. For example, if your strategy calls for allying with other city states, you might want to pass on bullying another city state. There is no penalty for not fulfilling a quest, just a bonus when you do fulfill one. Another way to gain influence is with gifts. The most effective is Gold, and one large sum is more effective than several small ones. For a Diplomatic victory strategy, you should plan on having a large Treasury as you approach the end game so that you can buy allies in time for the crucial vote. You can also gain a small amount of influence points by gifting units. I make it a practice to do this whenever I have units that I don't want any longer. These could be obsolete units that have no upgrade path, for instance. I don't want to pay maintenance on them as that is a drain on my Treasury, and I could just delete them, but gifting them to a city state gives me a small amount of influence. Another way to get a big jump in your influence with a city state is to capture and then a return one of their Workers. Most often this happens when a barbarian has captured the Worker, and then you capture it. You have the option of keeping the Worker for yourself, and in the early game I would probably do that because the Worker is so valuable. But at a certain point I have enough Workers, and getting the 45 influence points for returning it starts to be more effective. Remember that you have to keep earning influence points to keep up your relations, so even if you get an ally of a city state for a few turns. it will naturally decay back to Neutral. By around the middle of the game if you playing well you can start to invest the resources needed to maintain your relationships. City States and War If you are allied with a city state and you get into a war with another player, a city state you are allied with will join you in the war. Of course, the same is true for the other player, so the war between the two players could also involve 3-4 city states dragged in as allies. You cannot make peace with a city state while it is allied to a player you are at war with. You have to first make peace with that player (or wipe them out if that suits you). However, if you can get more influence with that city state and supplant the other player you can get that city state to ally with you can turn around and attack your enemy. Generally a large cash gift can do this, once again showing the utility of a fat Treasury. Exploration You cannot have diplomatic relations with a city state you haven't met, so this reinforces the idea that you have to explore the map as soon as possible. Of course, you have to balance this with other priorities, such as expanding your cities and defending them, but finding the right balance is what all the Civilization games are about. On most maps this means you should be giving some attention to developing your naval power and technologies. There seems to be a bias to city states being coastal, and in many cases they are on small islands. Of course there are a number of motivations for exploring the map. First of all, you need intelligence of what you are up against with the other players. And unless you are on a very large land mass, you will want to find added lands for settlement. Finding Natural Wonders adds to Happiness in your Empire, so finding them all is important. And last, the unexplored sections of the map have a strong tendency to spawn barbarian units against you. Early on you cannot traverse Ocean tiles and need to stick to Coastal tiles. The unit here is the Trireme, which you can build once you discover Sailing. I will usually build 1-2 Triremes in a coastal city to go around the coast of the land mass I am on and scout out the situation. If another land mass or island is sufficiently close I can cross to it without entering an Ocean tile and extend my exploration. But to really explore the whole map you need to get to Caravels. This Renaissance Era unit becomes available when you discover Astronomy, and is essentially a naval scouting unit. It can enter Ocean tiles. Links: https://civilization.fandom.com/wiki/City-state_(Civ5) https://civ-5-cbp.fandom.com/wiki/Detailed_Guide_to_Diplomacy https://www.palain.com/gaming/civilization-v/playing-civilization-v-part-9/ Provide feedback on this episode.

This show has been flagged as Clean by the host. With permission of Ahuka the warning about the reserve queue was removed to the policy change on the mail list https://lists.hackerpublicradio.com/pipermail/hpr/2026-January/004951.html I am subscribed to a number of YouTube channels, and I am sharing them with you. Links: https://www.youtube.com/@TimeGhost https://www.youtube.com/@timeghostpodcast4469 https://www.youtube.com/@TobyHadoke https://www.youtube.com/@TomSiddell https://www.youtube.com/@touropia https://www.youtube.com/@tpmtv https://www.youtube.com/@TrekCulture https://www.youtube.com/@TullTapes https://www.youtube.com/@UrsaRyan https://www.youtube.com/@VanBradley https://www.youtube.com/@veritasium https://www.youtube.com/@VikingCruises https://www.youtube.com/@Viking-TV https://www.youtube.com/@vlogbrothers https://www.youtube.com/@washingtonmonthly9554 https://www.youtube.com/@WhoCulture https://www.youtube.com/@woltersworld https://www.youtube.com/@WorldWarTwo https://www.youtube.com/@xkcd_whatif https://www.youtube.com/@YouCantUnhearThis https://www.palain.com/ Provide feedback on this episode.

This show has been flagged as Clean by the host. Dave and Kevie return with another episode of the Beer Garden, this time with a focus on Belgian Scotch Ales. Dave samples Silly Scotch , whilst Kevie goes for Mc Chouffe Connect with the guys on Untappd: Dave Kevie The intro sounds for the show are used from: https://freesound.org/people/mixtus/sounds/329806/ https://freesound.org/people/j1987/sounds/123003/ https://freesound.org/people/greatsoundstube/sounds/628437/ Provide feedback on this episode.

This show has been flagged as Clean by the host. This is the first column in a series dedicated to exploring little-known—and occasionally useful—trinkets lurking in the dusty corners of UNIX-like operating systems. This month's column was inspired by an article on the Linux Journal web site 1 describing a custom-built script that would contain a binary tar archive and, when run, would extract the contents onto the user's system. Upon reading this, memories immediately came rushing back of the days of Usenet, before MIME-encoded e-mail made sending file attachments standard 2 , and where we walked ten miles each way to school (uphill both ways!) in three feet of snow. Yes, at that time, you had to put everything into the body of your message. But what if you needed to send a bunch of files to someone? There was tar , but the format differed between systems, and e-mail and Usenet could only reliably handle 7-bit plain-text ASCII anyhow. You could send separate e-mail messages (but what if one goes missing?) or put "CUT HERE" lines to designate where one file ends and another one begins (tedious for the recipient). The solution was a shell archive created by the shar program. This wraps all your files in a neat shell script that the recipient can just run and have the files magically pop out. All he needs is the Bourne shell and the sed utility, both standard on any UNIX-like system. Suppose you had a directory named "foo" containing the files bar.c, bar.h, and bar.txt, and wanted to send these. All you'd need to do is run the following command, and your archive is on its way. $ shar foo foo/* | mail -s "Foo 1.0 files" bob@example.com When the recipient runs the resulting script, it will create the foo directory and copy out the files onto his system. You can also pick and choose files; if you wanted to leave out bar.txt, you could do shar foo foo/bar.c foo/bar.h or, more simply, shar foo foo/bar.? . Different versions of shar have varying capabilities. For example, the BSD 3 and OS X 4 editions can only really manage plain-text files. If you had a binary object file bar.o, it'd likely get mangled somewhere along the way if you tried to include it in an archive. They also require, as in the examples above, that you name a directory before naming any files inside it (the typical way is to let the find command do the work for you; it produces a list in the right order). The GNU implementation is more flexible and can take just a directory name, automatically including everything underneath. It can also handle binary files by using uuencode—a method for encoding data as ASCII that predated the current base64 MIME standard. GNU shar rather nicely auto-detects whether the input file is text or binary and acts accordingly, and can even compress files if asked. However, unpacking encoded or compressed files from such an archive requires the recipient to have the corresponding decode/uncompress utility, and the documentation is littered with (now somewhat anachronistic) warnings about this 5 . Looking at other UNIX systems, the HP-UX version 6 also can uuencode binary files, and as a special bonus adds logic to the script that will compile and use a simple uudecode tool if the recipient doesn't already have one. It will even handle device files and put the corresponding mknod commands into the script, probably making it the most full-featured implementation of all. IBM's AIX doesn't appear to come with shar . Neither do SunOS and Solaris, which seems quite odd as original development of the program is credited to James Gosling 5 ! And so we bid farewell to shar . Next time you're considering rolling your own script for a particular purpose, consider whether such a tool might already exist, just waiting on your system for you to use it. References: Add a Binary Payload to your Shell Scripts https://www.linuxjournal.com/content/add-binary-payload-your-shell-scripts MIME (Multipurpose Internet Mail Extensions) Part One https://datatracker.ietf.org/doc/html/rfc1521 BSD shar manual page https://man.freebsd.org/cgi/man.cgi?query=shar&sektion=1&manpath=4.4BSD+Lite2 macOS 26.2 shar manual page https://man.freebsd.org/cgi/man.cgi?query=shar&sektion=1&manpath=macOS+26.2 GNU shar utilities manual https://www.gnu.org/software/sharutils/manual/sharutils.html HP-UX Reference (11i v3 07/02) - 1 User Commands N-Z (vol 2) https://support.hpe.com/hpesc/public/docDisplay?docId=c01922474&docLocale=en_US This article was originally written in May 2010. The podcast episode was recorded in February 2026. Provide feedback on this episode.

This show has been flagged as Explicit by the host. New hosts Welcome to our new hosts: Vance, not_toby. Last Month's Shows Id Day Date Title Host 4566 Mon 2026-02-02 HPR Community News for January 2026 HPR Volunteers 4567 Tue 2026-02-03 Movie Recommendations for Hackers Deltaray 4568 Wed 2026-02-04 Book reading The Cuckoo's Egg by Cliff Stoll Henrik Hemrin 4569 Thu 2026-02-05 Kiosk with guest mode on Linux Klaatu 4570 Fri 2026-02-06 Playing Civilization V, Part 8 Ahuka 4571 Mon 2026-02-09 Data processing retrospective Lee 4572 Tue 2026-02-10 Uncommon Commands, Episode 3 - strace Deltaray 4573 Wed 2026-02-11 Nuclear Reactor Technology - Ep 6 Thorium Reactors Whiskeyjack 4574 Thu 2026-02-12 UNIX Curio #0 - Introduction Vance 4575 Fri 2026-02-13 Making First Contact Ken Fallon 4576 Mon 2026-02-16 Responce to Lee/Elsbeth eps operat0r 4577 Tue 2026-02-17 HPR Beer Garden 10 - Scotch Ale/Wee Heavy Kevie 4578 Wed 2026-02-18 Alex's journey into Amateur Radio thelovebug 4579 Thu 2026-02-19 Happy by shower Antoine 4580 Fri 2026-02-20 The First Doctor, Part 4 Ahuka 4581 Mon 2026-02-23 Sharp Intake of Breath City (A.K.A.) How I learnt to stop worrying about the fork bomb not_toby 4582 Tue 2026-02-24 Hackerpublic Radio New Years Eve Show 2026 Episode 1 Honkeymagoo 4583 Wed 2026-02-25 Nuclear Reactor Technology - Ep 7 Small Modular Reactors Whiskeyjack 4584 Thu 2026-02-26 Recording a show, and crappy audio Archer72 4585 Fri 2026-02-27 mpv util scripts candycanearter 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 37 comments in total. Past shows There are 2 comments on 2 previous shows: hpr4562 (2026-01-27) "Software development doesn't end until it's packaged" by Klaatu. Comment 1: Steve Barnes on 2026-02-03: "(Yeah!)" hpr4564 (2026-01-29) "MakeMKV error" by Archer72. Comment 1: candycanearter07 on 2026-02-05: "regression testing?" This month's shows There are 35 comments on 11 of this month's shows: hpr4566 (2026-02-02) "HPR Community News for January 2026" by HPR Volunteers. Comment 1: Whiskeyjack on 2026-02-03: "Community News for January - Scheduling of Episodes"Comment 2: Ken Fallon on 2026-02-04: "response to Whiskeyjack"Comment 3: Whiskeyjack on 2026-02-04: "response to Ken Fallon - Episode Scheduling Guidelines"Comment 4: Ken Fallon on 2026-02-04: "You're right"Comment 5: candycanearter07 on 2026-02-06: "my two cents"Comment 6: Whiskeyjack on 2026-02-06: "Response to candycanearter07 on episode scheduling"Comment 7: Ken Fallon on 2026-02-07: "re "reschedule shows which don't need to be on a specific date forwards or backwards"" hpr4567 (2026-02-03) "Movie Recommendations for Hackers" by Deltaray. Comment 1: Kinghezy on 2026-02-03: "Office space lumbergh"Comment 2: Antoine on 2026-02-04: "An attractive invitation to watch"Comment 3: Henrik Hemrin on 2026-02-04: "Inspiring recommendations"Comment 4: ClaudioM on 2026-02-05: "Awesome Episode!"Comment 5: Jim DeVore on 2026-02-06: "Great Show!"Comment 6: hobs on 2026-02-23: "Loved the show!" hpr4569 (2026-02-05) "Kiosk with guest mode on Linux" by Klaatu. Comment 1: operat0r on 2026-01-18: "weee"Comment 2: candycanearter07 on 2026-02-05: "very informative!"Comment 3: Jim DeVore on 2026-02-06: "I learned some things that I will try out"Comment 4: candycanearter07 on 2026-02-06: "RE: I learned some things that I will try out" hpr4571 (2026-02-09) "Data processing retrospective" by Lee. Comment 1: Henrik Hemrin on 2026-02-10: "Conversation"Comment 2: Beeza on 2026-02-18: "A Special Episode" hpr4572 (2026-02-10) "Uncommon Commands, Episode 3 - strace" by Deltaray. Comment 1: Ken Fallon on 2026-01-13: "My future self thanks you"Comment 2: candycanearter07 on 2026-02-10: "fantastic learning and debugging tool!"Comment 3: Some Guy on the Internet on 2026-02-11: "It's MAGIC!"Comment 4: Paulj on 2026-02-18: "Great Information" hpr4574 (2026-02-12) "UNIX Curio #0 - Introduction" by Vance. Comment 1: brian-in-ohio on 2026-02-12: "This will be a good series"Comment 2: Vance on 2026-02-14: "Thanks, brian-in-ohio!"Comment 3: Paulj on 2026-02-18: "Thanks for your first show, and upcoming series!" hpr4576 (2026-02-16) "Responce to Lee/Elsbeth eps" by operat0r. Comment 1: Elsbeth on 2026-01-16: "Thank you" hpr4577 (2026-02-17) "HPR Beer Garden 10 - Scotch Ale/Wee Heavy" by Kevie. Comment 1: Gan Ainm on 2026-02-18: ""Scotch" Ale from the Baltic Sea" hpr4578 (2026-02-18) "Alex's journey into Amateur Radio" by thelovebug. Comment 1: Archer72 on 2026-02-17: "Congrats!"Comment 2: Trey on 2026-02-18: "Congratulations! " hpr4579 (2026-02-19) "Happy by shower" by Antoine. Comment 1: candycanearter07 on 2026-02-20: "timing"Comment 2: Antoine on 2026-02-26: "Re # 1 -" hpr4581 (2026-02-23) "Sharp Intake of Breath City (A.K.A.) How I learnt to stop worrying about the fork bomb" by not_toby. Comment 1: Archer72 on 2026-02-17: "First episode"Comment 2: Trey on 2026-02-23: "Welcome!"Comment 3: Steve Barnes on 2026-02-24: "Potted Plant Emoji" Mailing List discussions Policy decisions surrounding HPR are taken by the community as a whole. This discussion takes place on the Mailing 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: https://lists.hackerpublicradio.com/pipermail/hpr/2026-February/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.Provide feedback on this episode.

This show has been flagged as Clean by the host. sorry about the computer fan i didnt realize how loud it was until after everything was recorded all scripts are prefixed with a_ for personal organization _a_props.lua mp.observe_property("path", "native", function() local domain = string.match(mp.get_property_native("path") or "", ".*://w*%.*(.-)[:/]") if domain then mp.set_property("user-data/domain-path", domain) else mp.del_property("user-data/domain-path") end end) mp.observe_property("playtime-remaining", "native", function (_, tr) if tr then mp.set_property("user-data/playtime-remaining-seconds", math.floor(tr)) end end) a_aspectratio.lua local targetw = 16 local targeth = 9 local marginerror = 0.1 local function resetgem() local dim = mp.get_property_native("osd-dimensions") if not dim or dim.w == 0 then return end mp.set_property("geometry", dim.w .. "x" .. dim.h) end local function dimensionhop(_, dim) if dim.w == 0 or dim.h == 0 then return end local cd = dim.w / dim.h local td = targetw / targeth -- floating points my beloved -- checking we're in a good range so it doesnt inf loop -- also it updates the geometry field so profile restore can work if cd > (td - marginerror) and cd < (td + marginerror) then resetgem(); return end local setw = dim.h * td local newdim = setw .. "x" .. dim.h mp.set_property("geometry", newdim) mp.osd_message("setting " .. newdim) end mp.observe_property("osd-dimensions", "native", dimensionhop) mp.register_event("start-file", resetgem) mp.register_event("end-file", resetgem) a_cover-visualiser.lua local function resolve_missing_cover(domain) local extico = { ["hub.hackerpublicradio.org"] = "https://hackerpublicradio.org/images/hpr_logo.png", ["yellowtealpurple.net"] = "https://yellowtealpurple.net/forums/data/assets/logo/favicon-32x32.png", -- yes using a product picture is silly but so is not featuring your icon ANYWHERE else ["anonradio.net"] = "https://sdf.org/store/thumbs/anon3.jpg", ["hashnix.club"] = "default", ["radio.kingposs.com"] = "https://kingposs.com/assets/buttons/PossBadge.gif" } if domain then local force = extico[domain] if force == "default" then return resolve_missing_cover() end if force and mp.commandv("video-add", force, "auto", "domainhardcode.png") then return end local favico = "https://" .. domain .. "/favicon.ico" if mp.commandv("video-add", favico, "auto", "favico.png") then return end end mp.command("video-add ~~/cover.png auto default.png") end local function inject_needed() local tracks = mp.get_property_native("track-list") local needed = true for _, v in ipairs(tracks) do if v.type == 'video' then if not v.image then return end needed = false end end if needed then resolve_missing_cover(mp.get_property_native("user-data/domain-path")) end mp.set_property("file-local-options/lavfi-complex", "[aid1] asplit=3 [a0][a1][ao] ; " .. "[vid1] scale=sws_dither=none:flags=neighbor:w=max(iw,256):h=max(iw,256):force_original_aspect_ratio=increas e:force_divisible_by=8, scale=h=-1:w=720, split=3 [vref0][vref1][vfin] ; " .. "[a0] showfreqs=size=hd720, hue=h=220 [rawfreq] ; " .. "[rawfreq][vref0] scale=flags=neighbor:w=rw:h=rh/2 [freq] ; " .. "[a1] showvolume=f=0.5:h=14 [rawvol] ; [rawvol][vref1] scale=flags=neighbor:w=(3*rw)/4:h=-1, geq=p(X,Y):a=255 [vol] ; " .. "[vfin][freq] overlay=y=main_h-overlay_h [prevo] ; [prevo][vol] overlay [vo] ") end -- mp.register_event("start-file", inject_needed) -- mp.observe_property("current-tracks/audio", "native", inject_needed) mp.add_hook("on_preloaded", 50, inject_needed) my cover.png (640x480) example with hardcoded image (notice theres only one volume bar because hpr is mixed to mono) example with favicon detection (youll probably see this one a lot since its the default icon for icecast servers) example with default/no cover (my art!!) a_playlist.lua mp.register_script_message("full-clear", function() mp.set_property("playlist-pos", -1) mp.command("playlist-clear") end) mp.register_script_message("playlist-next-to-last", function() local target = mp.get_property_native("playlist-pos") if target < 0 then return end target = target + 1 mp.osd_message("moved " .. mp.get_property_native("playlist/" .. target .. "/filename")) mp.commandv("playlist-move", target, 999) end) a_rcfill.lua -- relative cache refill -- sets cache-pause-wait based on how fast the playback and download speed is local function set_pause(_, incache) if not incache then return end -- rate of bytes incoming local ds = mp.get_property_native("cache-speed") if not ds then return end -- rate of bytes consumed * 2 local kbc = (mp.get_property_native("audio-bitrate") or 0) + (mp.get_property_native("video-bitrate") or 0) kbc = (kbc/8) * (mp.get_property_native("speed") or 1) * 3 local secs = math.min(kbc/ds, 20) if secs < 1 then secs = 2 end mp.set_property("file-local-options/cache-pause-wait", secs) mp.osd_message("buffering " .. math.floor(secs) .. " secs...") end local function jump_to_ecache(amt) if not amt then return end local endtime = mp.get_property_native("demuxer-cache-time") if not endtime then return end mp.commandv("seek", endtime - amt, "absolute") mp.osd_message("jumped to realtime-" .. amt .. "s") end mp.observe_property("paused-for-cache", "native", set_pause) mp.register_script_message("jump-to-ecache", jump_to_ecache) a_titlebar.lua mp.set_property("user-data/dynatitle-default", mp.get_property("title") or "mpv") local function title_update() if not mp.get_property_native("media-title") then mp.set_property("title", mp.get_property_native("user-data/dynatitle-default")) return end local pl = mp.get_property_native("playlist-pos") if pl ~= -1 then pl = mp.get_property_native("playlist-count") - pl - 1 end local tr = mp.get_property_native("playtime-remaining") if not tr then -- file currently loading -- since this is a slow changing value, we can just set this literally local disp = "" if pl ~= -1 then disp = "( " .. pl .. " files remaining )" end mp.set_property("title", "loading ${media-title} " .. disp) return end local progress = "${percent-pos} " if tr < 100 then local emg = "-" if pl < 1 then emg = "-!" end progress = emg .. "${user-data/playtime-remaining-seconds} " end if mp.get_property_native("paused-for-cache") then progress = "B${cache-buffering-state} " end local netspeed = "" if mp.get_property_native("demuxer-via-network") then netspeed = "${cache-speed} " end local domainlabel = "" if mp.get_property_native("user-data/domain-path") then domainlabel = "via ${user-data/domain-path} " end mp.set_property("title", "${?pause==yes:P}" .. progress .. netspeed .. "${media-title} " .. domainlabel) end mp.observe_property("percent-pos", "native", title_update) mp.observe_property("cache-buffering-state", "native", title_update) mp.register_event("start-file", title_update) mp.register_event("end-file", title_update) mp.register_event("playback-restart", title_update) mp.add_periodic_timer(5, title_update) Provide feedback on this episode.

This show has been flagged as Clean by the host. I record on a couple of earbuds, and a Zoom Essential microphone, and compare audio quality. Wikipedia : Microphone Zoom Essential mic Zoom Essential mic specs Tozo Open Ear Earbuds with mic Soundcore Open Ear Earbuds with mic Axet Audio Recorder : Alternative install F-droid no longer hosts this Android app Original app, now a 404 error Axet Audio Recorder : 404 page Axet Audio Recorder : v3.5.23 released 2025-08-16T12:36:09.841Z Axet Audio Recorder : v3.5.23 release page Axet Audio Recorder : v3.5.23 apk file F-droid : Obtainium Provide feedback on this episode.

This show has been flagged as Clean by the host. 01 Introduction This episode is the seventh in an 8 part series on nuclear reactor technology. In this episode we will describe a topic which has been in the news in recent years, which is "small modular reactors", or SMRs for short. 03 What is an SMR? Basic Definition A small modular reactor is a nuclear reactor that is designed to be largely built in a factory and subject to as little on-site assembly as possible. The main goal is to lower costs by reducing construction times and allowing a more rapid start of return on investment. 04 Sized Based Definition Some people put a numerical size limit on SMRs, saying that they must be no larger than 300 MW to qualify as an SMR. However this limit is not universally accepted, and not all SMR designs fall within this arbitrary limit. I will ignore this numerical limit and just consider anything to be an SMR if it meets the criteria of being largely built in a factory with minimal on-site assembly. 05 The Actual Goal of the SMR Idea The actual goal of the SMR idea is to build reactors rapidly and efficiently on more or less an assembly line basis rather than hand crafting each one. One engineer in the nuclear industry has compared building reactors to building ships. Traditional shipbuilding techniques involved assembling each ship from the keel up on the slipways from individual components. 06 Newer shipbuilding techniques assemble ships as separate "blocks" inside factory-like buildings and then join completed blocks together in a final assembly stage. This requires careful planning and tight quality control, but it results in building ships much more rapidly and economically. This engineer said that SMRs are attempting to bring this newer way of doing things to the nuclear reactor industry as well. 07 SMR Categories - Small Versus Micro 08 Small SMRs 09 Small SMRs and Small Grids 10 Micro SMRs for Micro Loads 13 Micro SMRs for Large Industry 14 SMRs to Power Data Centres 15 What's This Nonsense About "Micro Small Modular Reactor" You Ask? 17 Small Reactors and Modular Reactors That Are Not SMRs 20 Standard Versus Proprietary Fuel 23 Where SMRs are Currently Being Built 24 HTR-PM in China 28 Repurposed Ship Reactors in Russia 31 300 MW BWR in Canada 33 470 MW PWR in UK 35 25 MW PWR in Argentina 37 Various Experimental SMRs 38 Modular Large Reactors 40 Conclusion SMRs are a new trend in nuclear reactor design. However, they are really two different things which fill two different needs. One style is intended to adopt designs which allow for more rapid construction with more of the work being done in the factory and less on the construction site, with the overall goal of reducing costs. The other style is to provide very small reactors to power remote communities and mines, or to provide process heat to large industries. The first SMRs are in operation or under construction. The most promising grid scale designs at present are simply scaled down and simplified conventional designs that use standard commercial fuel. Larger reactors will incorporate modular construction techniques, blurring the lines between them and SMRs. In the next episode we will talk about future reactor technologies, particularly what are referred to as "Generation IV" reactors. Provide feedback on this episode.

This show has been flagged as Explicit by the host. Hackerpublic Radio New Years Eve Show 2026 Episode 1 Facebook https://www.facebook.com/ LinkedIn linkedin.com/ Matrix https://matrix.org/ Twitter / X https://x.com/home Telegram https://telegram.org/ Mastadon https://joinmastodon.org/ India https://www.incredibleindia.gov.in/en Poland https://www.poland.travel/en/ Hacker Public Radio https://hackerpublicradio.org/ Mumble https://www.mumble.info/ Linux Lugcast https://linuxlugcast.com/ Jitsi https://jitsi.org/ Ton Roosendaal (former Blender CEO) https://en.wikipedia.org/wiki/Ton_Roosendaal https://www.blender.org/press/blender-foundation-announces-new-board-and-executive-director/ Linus Torvalds https://github.com/torvalds Hack A Day https://hackaday.com/ Terry Pratchett https://terrypratchett.com/ UTC https://www.timeanddate.com/time/aboututc.html DMCA https://www.eff.org/issues/dmca Spotify https://open.spotify.com/ Youtube https://www.youtube.com/ Peertube https://joinpeertube.org/ Day Trading https://www.investopedia.com/articles/trading/05/011705.asp https://www.nerdwallet.com/investing/best/online-brokers-platforms-for-day-trading Ogg Camp https://www.oggcamp.org/ FosDem https://fosdem.org/2026/ Brussels https://www.visit.brussels/en/visitors Ohio Linux Fest https://olfconference.org/ Jacksonville, Florida https://www.visitjacksonville.com/ Ebike https://www.bikeradar.com/advice/buyers-guides/what-is-an-electric-bike Electric Scooter https://engineerfix.com/what-is-an-electric-scooter-and-how-does-it-work/ Elliptical https://ellipticalking.com/what-is-an-elliptical/ Panera Bread https://www.panerabread.com/ Tech and Coffee https://techandcoffee.info/ HTC Phones https://www.htc.com/us/smartphones-learn/ Apple https://www.apple.com/ Windows https://www.microsoft.com/en-us/windows LG https://www.lg.com/us/ 2FA (2 Factor Authentication) https://www.investopedia.com/terms/t/twofactor-authentication-2fa.asp Symantec VIP https://vip.symantec.com/ Android https://www.android.com/ Discord https://discord.com/ NewPipe https://newpipe.net/ iCloud https://www.icloud.com/ Bloomberg Terminal https://www.bloomberg.com/professional/terminal-introduction/ Linux Mint https://linuxmint.com/ Suse https://www.suse.com/ EndeavourOS https://endeavouros.com/ Pop OS https://system76.com/pop/ Debian https://www.debian.org/ Red Hat https://www.redhat.com/en EB / Electronics Boutique / EB Games) https://en.wikipedia.org/wiki/EB_Games RockBox https://www.rockbox.org/ Hi Fi Walker https://hifiwalker.com/ MPEG https://www.mpeg.org/ MP3 https://www.magix.com/us/music-editing/audio-formats/mp3/ MicroSD Card https://www.businessinsider.com/reference/what-is-a-micro-sd-card RSS Feed https://en.wikipedia.org/wiki/RSS https://www.reddit.com/r/explainlikeimfive/comments/15kfcsm/eli5_what_is_rss_feed_and_how_is_it_useful/ YouTube DL https://ytdl-org.github.io/youtube-dl/index.html Jupiter Extras Podcast https://www.jupiterbroadcasting.com/show/jupiter-extras/ Late Night Linux Podcast https://latenightlinux.com/ Sound Show Podcast https://grokipedia.com/page/the_sound_show Linux Lugcast https://linuxlugcast.com/ Tux Jam https://tuxjam.otherside.network/ Hacker Public Radio https://hackerpublicradio.org/ 3D Printing https://3dprinting.com/what-is-3d-printing/ Raspberry Pi https://www.raspberrypi.com/ Nextcloud https://nextcloud.com/ Jellyfin https://jellyfin.org/ DVD Ripping https://www.tomshardware.com/software/how-to-rip-your-dvds-with-handbrake-preserve-your-dvd-library-before-bit-rot-claims-another-victim Port Forwarding https://www.noip.com/support/knowledgebase/general-port-forwarding-guide NginX https://nginx.org/ LiquidSoap https://www.liquidsoap.info/doc-dev/ IceCast https://icecast.org/ DYN DNS https://account.dyn.com/ Etherpad https://etherpad.org/ Audio Bookshelf https://www.audiobookshelf.org/ Funk Whale https://www.funkwhale.audio/ Pixel Art https://www.sandromaglione.com/articles/getting-started-with-pixel-art Aseprite https://www.aseprite.org/ Krita https://krita.org/en/ RPG Maker https://www.rpgmakerweb.com/ Stable Diffusion https://stablediffusionweb.com/ GIMP https://www.gimp.org/ Balatro https://www.playbalatro.com/ Magic The Gathering Balatro MOD https://balatromods.miraheze.org/wiki/Magic:_the_Jokering Yoshi https://www.mariowiki.com/Yoshi Gungeon (Enter the Gungeon) https://enterthegungeon.fandom.com/wiki/Enter_the_Gungeon_Wiki Clover Pit https://store.steampowered.com/app/3314790/CloverPit/ Trackball https://www.techtarget.com/whatis/definition/trackball Humble Bundle https://www.humblebundle.com/ Dungeons / Dungeons II / Dungeons III http://www.realmforgestudios.com/ Deltarune https://deltarune.com/ Undertale https://undertale.com/ DNS https://www.cloudflare.com/learning/dns/what-is-dns/ Universal Studios https://www.universalorlando.com/web/en/us/theme-parks/universal-studios-florida Electric Blanket https://www.silentnight.co.uk/blog/guides/tips-for-using-your-electric-blanket Electric Vests https://www.fieldandstream.com/outdoor-gear/hunting/hunting-apparel-and-accessories/best-heated-vests LG Neckband Headphones https://www.lg.com/us/neckbands/view-all Lotus Notes https://en.wikipedia.org/wiki/HCL_Notes John Deer https://www.deere.com/en/ Dairy Queen https://www.dairyqueen.com/en-us/ Alco (retail store) https://en.wikipedia.org/wiki/ALCO_Stores AMI Pro https://www.computinghistory.org.uk/det/18775/Ami-Pro-for-Windows/ Disgraphia https://my.clevelandclinic.org/health/diseases/23294-dysgraphia Cursive https://brainspring.com/orton-gillingham-weekly/what-is-cursive-why-is-it-used/ SUNLU Wood PLA https://store.sunlu.com/collections/wood/products/optimized-wood-pla-3d-printer-filament-1kg-optimized-and-upgraded-wood-texture Hobby Lobby https://www.hobbylobby.com/ Hobby Lobby Branded PLA https://www.hobbylobby.com/crafts-hobbies/kids-crafts-activities/arts-crafts-supplies/white---3d-printing-filament/p/81250151 Hot End https://e3d-online.com/blogs/news/anatomy-of-a-hotend 2.5 GB Network Switch https://www.servethehome.com/the-ultimate-cheap-2-5gbe-switch-mega-round-up-buyers-guide-qnap-netgear-hasivo-mokerlink-trendnet-zyxel-tp-link/ fsck https://linux.die.net/man/8/fsck ProxMox https://www.proxmox.com/en/ Open Media Vault https://www.openmediavault.org/ Readarr https://github.com/Readarr/Readarr RSYNC https://linux.die.net/man/1/rsync Mario Kart T Shirt https://www.nintendo.com/us/store/products/mario-kart-jersey-t-shirt-119900-1/ Super Nintendo World https://www.universalorlando.com/web/en/us/epic-universe/worlds/super-nintendo-world Mario Kart Ride (Universal Studios - Super Nintendo World) https://www.universalorlando.com/web/en/us/things-to-do/rides-attractions/mario-kart-bowsers-challenge Donkey Kong Country (Universal Studios - Super Nintendo World) https://www.zeldadungeon.net/forum/threads/donkey-kong-themed-area-to-open-at-usj-dec-11-2024.77660/ Donkey Kong Country (video game) https://donkeykong.fandom.com/wiki/Donkey_Kong_Country Mario Games https://nintendo.fandom.com/wiki/List_of_Mario_games Mario World 2 https://www.mariowiki.com/Super_Mario_World_2:_Yoshi%27s_Island Harry Potter Ride https://www.universalorlando.com/web/en/us/things-to-do/rides-attractions/harry-potter-and-the-forbidden-journey Hagrid's Magical Creatures Motorbike Adventure https://www.universalorlando.com/web/en/us/things-to-do/rides-attractions/hagrids-magical-creatures-motorbike-adventure Harry Potter Wands https://www.universalorlando.com/web/en/us/things-to-do/shopping/potter-wands Harry Potter Wand Holder (3D printable) https://makerworld.com/en/models/917744-wand-stand-harry-potter#profileId-879432 Bronze PLA https://www.hatchbox3d.com/products/3d-pla-1kg1-75-brnz Linux Mint https://linuxmint.com/ Clem (Linux Mint) https://blog.linuxmint.com/?author=1 New Harry Potter TV Show https://www.teenvogue.com/story/harry-potter-tv-reboot-hbo-everything-you-need-to-know JK Rowling https://www.jkrowling.com/ HBO https://www.hbomax.com/ Iraq https://www.state.gov/countries-areas/iraq Arcane Casebook (Author - Dan Willis) https://www.goodreads.com/series/259903-arcane-casebook Altered Carbon (Book) https://elitistbookreviews.com/2018/04/05/altered-carbon/ Arcanum Unbounded (Author - Brandon Sanderson) https://www.brandonsanderson.com/blogs/blog/introducing-arcanum-unbounded Amazon Music https://music.amazon.com/?referrer=https%3A%2F%2Fwww.google.com%2F Richard Pryor https://www.richardpryor.com/ John Pinette https://www.dead-frog.com/comedians/comic/john-pinette Stormlight Archive https://www.brandonsanderson.com/pages/the-stormlight-archive-series Mistborn Saga https://www.brandonsanderson.com/pages/the-mistborn-saga-the-original-trilogy The Last Airbender https://avatar.fandom.com/wiki/Avatar:_The_Last_Airbender Wax and Wayne https://www.brandonsanderson.com/pages/the-mistborn-saga-the-wax-wayne-series Tress And The Emerald Sea https://www.brandonsanderson.com/pages/standalones-cosmere Isles of the Amber Dark Legion https://www.brandonsanderson.com/pages/collections-non-cosmere Wheel of Time (Sanderson books) https://www.brandonsanderson.com/pages/the-wheel-of-time-series Sunreach https://www.brandonsanderson.com/pages/skyward-flight Benedict Jacka https://benedictjacka.co.uk/ Project Hail Mary (Andy Weir) https://andyweirauthor.com/#project-hail-mary The Martian (Andy Weir) https://andyweirauthor.com/#the-martian Artemis (Andy Weir) https://andyweirauthor.com/#artemis Libby https://libbyapp.com/interview/welcome#doYouHaveACard Analog Hole https://en.wikipedia.org/wiki/Analog_hole Provide feedback on this episode.

This show has been flagged as Explicit by the host. Note: The following code `:(){ :|:& };:` was replaced with Fork Bomb in the title. Ever wanted to hear a middle age man waffle on incoherently for half an hour about how he went from BMX bum to BSD botherer (1) ???? Well then, you've come to the right place :-) Behold my banal FLOSS adventure of 15 very odd years in all it's hax & glory! You're got to give it away to keep it ;-) Weirdly there is a wonderful Scottish BMX brand called BSD... If you ever want some cool BSD stickers or T-Shirts they make some funky stuff... P.S. Apologies for the endless extravagant sharp intakes of breath... to be fair it's a better filler than "like" or "do you know what I mean"... :-/ Provide feedback on this episode.

This show has been flagged as Clean by the host. This is a further look at the stories of the First Doctor, portrayed by William Hartnell, during the 1960s. The First Doctor, Part 4 Galaxy 4 This science fiction story is focused on the idea of not judging a book by its cover. The Tardis lands on a deserted, dying planet. They see a funny looking robot that Vicki calls a “Chumbley”. Then another one appears, and they investigate, but are rescued by three beautiful women who tell them they were in great danger, and take the three travelers back to their ship, where they meet the leader, Maaga, another beautiful woman. But somehow these women are odd and cold. They tell of how they met another ship from a evil race, the Rill, and that in a space battle the ships damaged each other and landed on this planet. Then later the travelers meet the Rill, who initially refuse to reveal their appearance because it would frighten the humans. Turns out they were very alien in appearance, but not at all evil, and it was the beautiful women who were evil. Mission to the Unknown This short little story takes place on the planet Kembel, and agents from Earth realize that the Daleks are here, and up to no good. This is really a prequel to The Daleks' Master Plan, and is notable as the only Doctor Who story in which none of the regular cast appears. The reason is that this is an extra episode slot given to the Doctor Who team late in the day, and the regular cast were already given vacation time off. So it is best to take this as Episode 0 of The Dalek's Master Plan, not as a stand-alone story. The original story has been lost, like so many episodes of early Doctor Who, but a very nice version was done by the University of Central Lancashire, and you can view it on YouTube. It is introduced by Edward de Souza, who played Marc Cory in the original, and is worth a look. They really did a good job. The Myth Makers This is another “historical” story, though instead of verified history it is historical legends at play here, in the form of the Seige of Troy by the Greeks. So you have all of the Homeric cast here: Achilles, Priam, Hector, Odysseus. The Doctor is taken for a God by Achilles, though Odysseus has his doubts. Vicki is captured by the Trojans and taken to Troy, calls herself Cressida, and is taken for a Goddess. Steven goes to Troy to try and free her, but is seen as a Greek, and so Vicki is now suspect. She falls in love with a son of Priam named Troilus, and you think something might happen here, particularly if you are familiar with play of Shakespeare called Troilus and Cressida. This story only has faint echoes of the play, preserving that Cressida is Greek and Troilus is Trojan. In this case it is Cressida staying with Troilus, so instead going back to the Tardis Vicki is now out. One more companion gone. This marked the departure of Verity Lambert as producer, and she was replaced by John Wiles. Wiles tried to implement changes, such as making the show a bit darker, but ran into opposition from both Hartnell and BBC Management, and resigned after producing four stories ( The Myth Makers through The Ark). And the popularity of other SF shows on television made a move to more SF and less history desirable. And as for Hartnell's opposition, it is notable that he had become quite identified with the role of The Doctor and was very proprietorial with it. This would come to pose problems later as his health declined. The Daleks' Master Plan This story arc takes twelve episodes, or thirteen if you add Mission to the Unknown, as you indeed should. The reason for such a long story arc is that Sir Huw Wheldon, the Director-General of the BBC at that time wanted a “monster length” Dalek story because his mother was a big Dalek fan. And this story has a lot going for it. The length means that you can do more character development. The story starts out with Steven recovering from a sword-thrust during the fall of Troy, and being attended by Katarina, a Trojan maiden, who is now in the Tardis. They arrive on the planet Kembel, and meet with Space Special Security agent Bret Vyon, played by Nicholas Courtney, who in a few years would become the beloved Brigadier Lethbridge-Stewart. Vyon tries to force the Doctor to take him to Earth so he can warn the planet, but the Doctor recognizes the Daleks and wants to find out more about their plans. And this brings us to one the most evil villains in Doctor Who, Mavic Chen. You see, the Daleks have assembled a group of villainous aliens to join together in conquering the Earth, and Mavic Chen is part of the group. He is also the idolized Guardian of the Solar System. So he is a traitor! Katarina, the Trojan maiden, sacrifices herself to save the others from a convict they meet on a prison planet. Another wonderful character is Sara Kingdom (played by Peggy Marsh), head of Space Special Security, who has been told by Mavic Chen that Vyon and the others are traitors, and who kills Vyon, who is in fact her brother! But they manage to convince her that Chen is the real traitor, and she joins them. In the middle of this story arc Christmas happened, and this resulted in the most absurd episode ever of Doctor Who, called The Feast of Steven, capped by the Doctor breaking the fourth wall. The episode is now among the missing. but you can find reconstructions on YouTube if you want to see the absurdity of it. And there is a re-appearance of The Meddling Monk. This is a sprawling story, but overall worth a look. Mavic Chen, played by Kevin Stoney, is delightfully evil, and Stoney would return to play another villain in the Troughton story The Invasion. and it is interesting to see Nicholas Courtney before he got the role he would always be identified with. Doctor Who would not do anything this large again until _The Flux_ in 2021, and frankly this story makes more sense. The Massacre of St. Bartholomew's Eve You will often see this as simply The Massacre, which is fine since there is no other story with a similar title. And after that massive science fiction story, another historical story. This involves the true story of Protestants in France being massacred by the Catholics, and the main feature worth calling our here is that William Hartnell plays two roles in this story. He is the Doctor, of course, but also the Abbott of Amboise, a leader among the Catholics looking to rid France of the Protestants. This idea of playing two parts became even more nicely done by Patrick Troughton later in Enemy of the World. In any case, this leads to confusion by Steven who thinks the Abbott is actually the Doctor. In the story a servant girl named Anna Chaplette is rescued, and this opens up the interesting possibility that she is the ancestor of Dodo (i.e. Dorothea) Chaplet, a companion who appears at the end. She witnesses a car crash, and barges into the Tardis thinking she can call the police. While the novelty of Hartnell playing two parts may stand out on first look, this story is really a showcase for Peter Purves, in his role of Steven Taylor. Because Hartnell is not on screen very much, Purves really has to carry the plot, and does so admirably. Hartnell was on vacation when the second episode was filmed, and so didn't appear at all. And his health problems were beginning cause problems which contributed to this situation. He was having a lot of trouble with remembering his lines, which is a real problem for an actor. He was not that old by current standards, as he was 58 when this story was produced, and as I am 73 as I write this, 58 seems more like late youth to me. The Ark The Tardis materializes on a spaceship in the far future. It is carrying the future of the human race to a new planet, Refusis 2, because the Earth is falling into the sun. But it also has an odd race called the Monoids, who have one eye. They are an alien race who came to Earth when their own planet was dying, and now they serve the humans. Unfortunately, the Tardis crew carries germs for which humans and Monoids on the Ark have no immunity, and sickness breaks out. One faction wants to kill the Doctor and his companions, but instead the Doctor finds a cure for the disease, and they leave on the Tardis. Then the Tardis materializes back on the Ark, but they discover that hundreds of years have passed. The Monoids have rebelled and taken over, and now the humans serve them. As the old saying has it, be kind to those you meet on the way up, for you will meet them again on the way down. Links: https://en.wikipedia.org/wiki/Galaxy_4 https://en.wikipedia.org/wiki/Mission_to_the_Unknown https://www.youtube.com/watch?v=NW8yk-m5Ig8 https://en.wikipedia.org/wiki/The_Myth_Makers https://en.wikipedia.org/wiki/Troilus_and_Cressida https://guide.doctorwhonews.net/person.php?name=JohnWiles https://en.wikipedia.org/wiki/The_Daleks%27_Master_Plan https://www.imdb.com/title/tt0785302/ https://tardis.fandom.com/wiki/The_Flux https://en.wikipedia.org/wiki/The_Massacre_(Doctor_Who) https://en.wikipedia.org/wiki/The_Ark_(Doctor_Who) https://www.palain.com/science-fiction/intro-to-doctor-who/the-first-doctor-part-4/ Provide feedback on this episode.

This show has been flagged as Clean by the host. Hello, dear beloveds. Here with you, at HPR: Antoine. The message of this episode is the following: life comes in waves. ~~ Circumstances are volatile. For the majority of them, we have no control of what happens. Things happen, in climate events, in health (ours or another one's), financially, emotionally. Many depend on choices that others make, or outside events that we, as humans, cannot trace cause-and-effect route — hamla ! [interjection], we can't even tell the weather precisely yet. Our emotions are subject to the same phenomenon. As far as they are tied to that events, our feelings of sadness, of relief, will come and go, also, as ~~ waves! Unpredictable, impetuous, imprecise. It ruins the health. Do you listen to your heartbeat? It can be 80 or 110 bpm from one second to another by the choices of your thinking, without you moving a muscle. A basketball player can be a better player only training in his mind, in imagination, in comparison to one that does not practice al all. Your mind, and by it we mean now the choices of your thinking, have influence in your muscular abilities and in your body chemicals. These regulate basically the entirety of your sensations, and contribute to your health or lack of it. So, when one believes, he have a stable point in which to be firm. Even though the circumstances are waves, he is not floating on them. He's anchored. That's why, if firm (true) in this faith, he's more stable and happier than an ordinary person, one that has no hope at all, but lives by what the world has to offer today. In summary, the instability is not beneficial. And we are taken to this thinking, for the pursuit of something we believe is worth it, and may be not. Then, when someone presents something we “need”, that may not be the case. We can think. Then, we choose: what we live for? How I choose to feel, and behave, because or in spite of what happens around and around? and around. No matter the point of the universe one person has reached, physically or perceptually, that does not define him for eternity. Because it is not in that past, it is happening right now, has not ended, yeah? Now, a point of experience of me. I have days of very low mood and uncertainty. The feeling of serving for absolutely nothing. (Even in good days, that may feel true, but does not define me as when I go to the ground on this thinking.) I have been said things like this, from people I value, or valued then, more than family of blood. These are days I eat not healthily, I don't have the appropriate care of my body, I don't shower. Until recently, those were days of much suffering. But I perceived that, in the next day of each of these days, in keeping trusting the hope I have, I can have a night of rest. I can wake up and take a shower, and after all start anew, having lived the bad experience the day prior as an experience that, at that moment, I only wanted to go away as soon as possible. But after going through the entirety of it, on its full duration, I would not replace this feeling-and-learning experience by anything else. Someone has said that anguish is what makes us do something. In comfort, we only go, comfortable. The purpose, or the action, comes from the need to change. Every little experience (and not only the great and abnormal) contribute to mould someone in his trajectory. Bye bye. Provide feedback on this episode.

This show has been flagged as Clean by the host. Dave interviews Alex about his journey into Amateur Radio, given that he only passed his Foundation licence at the end of December. What we forgot to mention is that he managed to get his callsign just before Christmas, so that was a rather lovely gift! Links to stuff spoken about in the episode: hpr3473 :: My journey into Amateur Radio (Dave's journey) Maltby and District Amateur Radio Society (our local club) RSGB Foundation Licence Manual HamTrain's Foundation Study Guide Essex Ham RSGB Foundation Licence NATO Phonetic Alphabet RSGB National Radio Centre (GB3RS) at Bletchley Park We hope you enjoyed this episode, and we'll be happy to follow up any questions! 73 de Dave M7TLB and Alex M7OUO Provide feedback on this episode.

This show has been flagged as Clean by the host. Kevie and Dave discuss the history of the Wee Heavy and also sample some of these hard to find gems. Dave samples Innes & Gunn Original whilst Kevie opts for Traquair House 2000th Brew Connect with the guys on Untappd: Dave Kevie The intro sounds for the show are used from: https://freesound.org/people/mixtus/sounds/329806/ https://freesound.org/people/j1987/sounds/123003/ https://freesound.org/people/greatsoundstube/sounds/628437/ Provide feedback on this episode.

This show has been flagged as Explicit by the host. I don't even know where I went with this but the idea was just to say the stuff Elsbeth expereanced was typical for corp-o's and that some of the issues she had getting work or jobs could be exponentially compounded by the result of neurodiversity. More private ADHD resources [ ] 12 Principles for Raising a Chi - Russell A. Barkley.epub 2024-03-08 10:43 453K [ ] 12 Principles for Raising a Child with ADHD - Russell A. Barkley.epub 2021-08-11 19:34 967K [VID] ADD and Loving It.mp4 2023-10-24 09:11 260M [VID] ADHD - Understanding the Superpowers Within [ezwOHAo3O_k].webm 2022-07-01 09:36 161M [IMG] Autism+Spectrum.png 2024-03-03 08:50 520K [SND] BC_200_Answering_Your_Questionsa1qb8-BC_200_Answering_Your_Questionsa1qb8.mp3 2022-12-12 17:41 71M [TXT] BC_200_Answering_Your_Questionsa1qb8-BC_200_Answering_Your_Questionsa1qb8.txt 2023-01-03 10:58 32K [ ] Bubble Gum Brain A Picture Book About Growth Mindset 17.epub 2024-11-13 09:37 1.0M [DIR] Bubble Gum Brain_ A Picture Boo - Julia Cook/ 2024-03-08 10:46 - [DIR] Cognitive.Behavioral.Therapy.for.Daily.Life-xpost/ 2024-06-14 10:29 - [VID] Drugging Our Kids [L7lHeosq-FY].webm 2018-03-30 20:28 432M [SND] Full Audiobook _ You Mean I'm Not Lazy, Stupid or Crazy [A-4-OKGaLDs].mp3 2020-11-01 18:52 49M [ ] Gary Chapman - The Five Love Languages How to Express Heartfelt Commitment to Your Mate (retail) (epub).epub 2021-08-11 19:34 914K [ ] Gary Chapman - The Five Love Languages How to Express Heartfelt Commitment to Your Mate (retail) (epub).pdf 2021-08-11 19:34 1.7M [VID] Learning Differently (ADHD Documentary) [9JMroyfJtO4].webm 2023-09-18 22:29 463M [VID] Living With ADHD BBC Documentary [5lrcxmOolB8].webm 2015-04-08 01:15 138M [VID] Take Back Control - Presentation by Dr. Edward Hallowell [HhoXGXtShGs].webm 2019-10-28 18:32 163M [VID] The Disorder That Will Affect Us All (Dopamine Secrets)- ADHD Documentary [48JKfl0ggPI].webm 2022-12-21 08:32 1.3G [VID] The Disruptors (2021) - [WEBRIP-1080P][AAC 5.1][X264]-RARBG.mp4.mp4 2023-10-24 09:42 774M [ ] The Explosive Child.pdf 2024-11-13 06:21 714K [TXT] The Explosive Child.txt 2024-11-14 01:20 338K [SND] The Explosive Child Audiobook.mp3 2024-11-14 09:30 161M [VID] Trevor Noah on Depression, ADHD & Ketamine Therapy [eKQTS-hAAcI].webm 2024-05-21 14:32 181M [VID] Video by adhdoers Markiplier.mp4 2024-06-20 21:39 4.3M [ ] You Mean I'm Not Lazy, Stupid o - Kate Kelly.epub Provide feedback on this episode.

This show has been flagged as Clean by the host. Making First Contact An amateur radio contact, more commonly referred to as simply a "contact", is an exchange of information between two amateur radio stations. The exchange usually consists of an initial call, a response by another amateur radio operator at an amateur radio station, and a signal report. A contact is often referred to by the Q code QSO. It is often limited to just a minimal exchange of such station IDs. Stations who have made a contact are said to have worked each other. An operator may also say that he has worked a certain country. QSO: (amateur_radio) Making your first QSO Kees's history 1990 PD1OOY VHF/UHF only, 25 Watt, only F3E. (NED, BEL, LX, DL) 1991 PE1OOY CEPT Class II 1995 G7TWO 1st British callsign CEPT Class II 1997 PE7TWO First vanity callsign CEPT Class II 2000 M5TWO CEPT Class A+B+ CW included 2000 PA7TWO CEPT Class I + CW included 2002 M5TWO CEPT Class I + CW included Ken's history COVID-19 lockdown in the United Kingdom 2020-08-21 Amateur Foundation Examination 2021-01-28 Amateur Intermediate Examination 2021-08-05 Amateur Full Radio Licence Links UK Amateur Licensing Baofeng UV-5R Mini 5W Dual Band Radio BangGood Tech Minds video " This Baofeng UV-5R Mini Is Almost Perfect - And It's Only $25! " QSO: amateur_radio QSL Card IARU Region 1 HF band plan QRZ.com Club Log Modulation Codes , Types of radio emissions Provide feedback on this episode.

This show has been flagged as Clean by the host. This series is dedicated to exploring little-known—and occasionally useful—trinkets lurking in the dusty corners of UNIX-like operating systems. As the zeroth entry of this series, we'll have a little introduction to what it is supposed to be about and why you might want to listen. So that you don't leave without getting at least one piece of useful information, it will end with a little curio that you might find helpful someday. Back in 2010, I was the editor of the newsletter, titled The Open Pitt, for the Western Pennsylvania Linux Users Group in Pittsburgh. We distributed it as a two-page PDF, so had to have enough material to fill each issue. Because we were having some trouble getting contributions, I started writing columns in a series called "UNIX Curio" to occupy the empty space. They were inspired in large part by examples I had seen of people re-inventing ways to do things when utilities for the same purpose had already existed for a long time. The obvious question is: just what is a UNIX Curio? Let's start with the first word, UNIX. While a lot of people write it "Unix" instead, I have chosen to put it in all capitals because that is the way The Open Group, which controls the trademark and the certification process to use it, spells the word 1 . The history of UNIX is complex (search online for more details 2 )—the short version is that many variants emerged, often introducing incompatibilities. Even within AT&T/Bell Laboratories, two major branches came out. The Research UNIX lineage, which includes Seventh Edition (sometimes called Version 7), was often used in universities and government while System III and its more popular successor System V were clearly intended as commercial products 3 . The University of California's BSD was also very influential. My intention is to talk about things that are relatively common; ideally, they would be present on a large majority of systems so you can actually use them. Luckily, there were people who recognized the value in compatibility, so in the mid-1980s they initiated the development of the POSIX standards 4 . Publication of these not only caused commercial UNIX versions to aim for conformance—it gave Free Software implementations of utilities and operating systems a stable base to shoot for rather than having to chase multiple moving targets. As a result, today's GNU/Linux, FreeBSD, NetBSD, and OpenBSD systems generally behave as specified in POSIX, even if they haven't officially earned the UNIX or POSIX labels, so I treat them as part of the UNIX world. Moving on to the second word, "curio," it just means "an object of curiosity, often one considered novel, rare, or bizarre." There are many well-used utilities in the UNIX world, but people forget about others because they are only useful in specific circumstances. And when those circumstances arise, these obscure ones don't always get remembered. One purpose of this series is to point out some of them and describe where they can be appropriately put to use. With the flexible tools available on UNIX systems and the ability to string them together, it shouldn't be surprising that people come up with new ways to accomplish a task. I don't want to claim that these curios are always the best way to do something, just that it can be helpful to know they exist and see the way someone else solved the problem. Also, if you're using an unfamiliar system, sometimes programs you are accustomed to employing might not be installed so it's good to know about options that are widely available. So why am I the person to talk about this subject? I am not a UNIX graybeard with decades of professional computing experience. If I did grow a beard, it would only be partially gray, and my working life has been spent in the engineering world mainly around safety equipment. Sadly, there I have been forced to use Windows almost exclusively. However, in my academic and personal pursuits, I have been involved with using UNIX and Linux for more than 30 years, so I do have a bit of a historical perspective. For some reason, when I encounter an unusual or obscure tool, I want to learn more about it, especially so if I find it to be useful in some way. After gaining that information, I might as well share it with you. In addition, I have been involved with Toastmasters International, a public speaking organization, for about 15 years so I have experience in presenting things orally. I was inspired to turn this article series into podcasts by murph 5 , who delivered a presentation at the 2025 OLF Conference describing how and why to contribute to Hacker Public Radio 6 . The show notes for curios 1 through 3 will consist of the articles as they were originally written (though with references added). Because some examples, especially code, can be difficult to understand when they are read out loud, the podcasts will sometimes present the information in a different way. Show notes for this curio 0 and for curios 4 and later will be written with the podcast format in mind, so they will more closely match what I say. Let's end with an actual curio to kick off the series. Have you ever needed a quick reminder about whether the file you're looking for can be found under the /usr or /var directories? On many UNIX systems, man hier will give you an overview of how the file hierarchy is organized. This manual page is not a standard, but was present in Seventh Edition UNIX 7 and many descendents, direct and indirect, including every Linux distribution I have ever used. There are attempts to standardize the layout; in the Linux world, the Filesystem Hierarchy Standard (FHS) 8 , now hosted by Freedesktop.org 9 , intends to set a path to be followed. It should be noted that systemd has its own idea of how things should be laid out based on the FHS; if it is in use, try man file-hierarchy instead as it will likely be a more accurate description. I hope this gives you a good idea of what to expect in future episodes. The first one will be about shell archives, so keep an eye on Hacker Public Radio's schedule for it to appear. References: The Open Group Trademarks https://www.opengroup.org/trademarks History of Unix https://en.wikipedia.org/wiki/History_of_Unix The Unix Tutorial, Part 3 https://archive.org/details/byte-magazine-1983-10/page/n133/mode/2up POSIX Impact https://sites.google.com/site/jimisaak/posix-impact Correspondent: murph https://hackerpublicradio.org/correspondents/0444.html OLF Conference - December 6th, 2025 https://www.youtube.com/watch?v=hyEunLtqbrA&t=25882 File system hierarchy https://man.cat-v.org/unix_7th/7/hier Finding a successor to the FHS https://lwn.net/Articles/1032947/ Freedesktop.org now hosts the Filesystem Hierarchy Standard https://lwn.net/Articles/1045405/ Provide feedback on this episode.

This show has been flagged as Clean by the host. Thorium Reactors 01 Introduction In this episode we will describe the use of thorium in nuclear power, including what thorium is, how it differs from uranium, and what sort of reactors can use it. 03 What is thorium 05 How thorium differs from uranium 07 Sources of Thorium 09 Why there is interest in using thorium as a fuel 10 Abundance of Thorium 11 Some Countries Have a Lot of It 12 Thorium Breeder Reactors are Simpler than Uranium Breeder Reactors 14 Supposed Lower Nuclear Weapons Potential 16 What is Thorium Breeding 20 Breeding Ratio 21 What sorts of reactors can use thorium 22 PHWRs - Heavy Water Reactors (Including CANDU) 24 HTR - High Temperature Gas Cooled Reactors 26 MSR - Molten Salt Reactors 29 Light Water Reactors (PWR, BWR) 31 Fast Neutron Reactors 32 The Challenges Facing Thorium Fuelled Reactors 37 Thorium in India - An Example Use Case 39 Why is India Pursuing Using Thorium? 40 How a Thorium Fuel Cycle Would Work in India 43 Current Status 46 Conclusion Thorium is an abundant material that is seen as an alternative to uranium in nuclear power. Experimental thorium power reactors date back to at least the 1960s. No new reactor technology is required to use thorium. Existing well proven reactor designs which have been in use for decades can use thorium as fuel. The common light water reactor designs that popular in some countries however are not well suited to using thorium. Initial interest in thorium was mainly driven by a perception that uranium would be in short supply in future, and slow neutron thorium reactors were cheaper and simpler than fast neutron uranium reactors. However, huge new high grade supplies of uranium were found in a number of countries, causing uranium prices to fall and reducing interest in finding alternatives. While some R&D continues on thorium fuel in a number of countries, the mainstream of development continues to be on uranium based fuel. Some countries with abundant thorium reserves though maintain a major interest in thorium, with India being the prime example. In the next episode we will describe small modular reactors. Provide feedback on this episode.

This show has been flagged as Clean by the host. These are the commands mentioned in the You may need to use "sudo" to run these commands depending on how your system is configured. strace uptime strace ls 2>&1 | grep open strace -e openat ls / strace ls /does/not/exist strace -o ls-trace.log ls strace -ff -o pid12345-trace.log -p 12345 HISTORY The original strace was written by Paul Kranenburg for SunOS and was inspired by its trace utility. The SunOS version of strace was ported to Linux and enhanced by Branko Lankester, who also wrote the Linux kernel support. Even though Paul released strace 2.5 in 1992, Branko's work was based on Paul's strace 1.5 release from 1991. In 1993, Rick Sladkey took on the project. He merged strace 2.5 for SunOS with the second release of strace for Linux, added many features from SVR4's truss(1), and produced a ver‐ sion of strace that worked on both platforms. In 1994 Rick ported strace to SVR4 and Solaris and wrote the automatic configuration support. In 1995 he ported strace to Irix (and became tired of writing about himself in the third person). Beginning with 1996, strace was maintained by Wichert Akkerman. During his tenure, strace development migrated to CVS; ports to FreeBSD and many architectures on Linux (including ARM, IA-64, MIPS, PA-RISC, PowerPC, s390, SPARC) were introduced. In 2002, responsibility for strace maintenance was transferred to Roland McGrath. Since then, strace gained support for several new Linux architectures (AMD64, s390x, SuperH), bi- architecture support for some of them, and received numerous additions and improvements in system calls decoders on Linux; strace development migrated to Git during that period. Since 2009, strace has been actively maintained by Dmitry Levin. During this period, strace has gained support for the AArch64, ARC, AVR32, Blackfin, C-SKY, LoongArch, Meta, Nios II, OpenRISC 1000, RISC-V, Tile/TileGx, and Xtensa architectures. In 2012, unmaintained and apparently broken support for non-Linux operating systems was removed. Also, in 2012 strace gained support for path tracing and file descriptor path decoding. In 2014, support for stack trace printing was added. In 2016, system call tampering was implemented. For the additional information, please refer to the NEWS file and strace repository commit log. Links https://strace.io https://en.wikipedia.org/wiki/Strace https://www.man7.org/linux/man-pages/man1/strace.1.html Provide feedback on this episode.

This show has been flagged as Clean by the host. We start with Orwellian depictions of the future read about in the 1950/60s. Working in the 1970s at companies such as British Telecom and the L urgie . We hear about telex , mainframes with magnetic tape , type-writers , and the upskilling of the workforce by the labour-exchange . How did a cold and lack of a home telephone lead to businessmen arriving in a foreign land sans camels? Why were filing cabinets replaced by databases (or were they)? We hear about gaming from a home made version of Pong all the way to Alone in the Dark . Then modern times: we hear about some favourite youtube streams and discover that living in the 2020s is (just about) possible without a smartphone . Provide feedback on this episode.

This show has been flagged as Clean by the host. In our next look at the game mechanics for Civilization V we examine several related topics: Diplomacy, Spies, and Religious Pressure. They are all ways to interact with other players without the force of arms being involved. And we will discuss the Diplomatic Victory, which is a new victory type added in Civilization V and can be fun to play. Playing Civilization V, Part 8 - Diplomacy Other Players With other players you have a relationship based on their approach to you. They are: Neutral – This is not Friendly nor is it Hostile. Trades you make with them will be fair from their point of view Friendly – They like you, and will accept requests from you more often. Trades will be slightly in your favor from their point of view. Afraid – This only happens if you have a a very substantial advantage in strength, so this is rare. They will readily accept requests from you, and trades will be in your favor Guarded – They are suspicious and defensive, and will be more likely to be unfriendly. Trades will be harder to achieve, and favor them rather than you. Deceptive – They will pretend to be friendly, but they are plotting against you. They may bribe other players to declare war on you. They will not accept requests for help, and trades will be hard to achieve. Hostile – They hate you, and are completely open about it. Trade deals, if you can get them, will be heavily against you. War – This means they have decided to go to war with you. But they need the right conditions, so they may pretend to be Friendly, Neutral, Guarded, or Hostile while they wait for those conditions to mature. These are not set in stone, as you can modify how the other player feels towards you by your actions. If you have friends in common that will improve your relationship, or if you have enemies in common. Agreeing to their requests will also improve things. But if you cannot agree, just say so. The worst negative modifier is when you agree to do something, and then do the opposite. Saying no is also negative, but not as bad. Finally, remember that negatives will erode over time if they are not reinforced. If you want a very detailed look at the mechanics and details of this, check out https://civ-5-cbp.fandom.com/wiki/Detailed_Guide_to_Diplomacy. City-States City-States are also important diplomatic partners. We'll cover all of the benefits in a different section, but here I want to focus on how they enable the Diplomatic Victory. At a certain point the United Nations will be born out of the World Congress, and when this happens a Diplomatic Victory is possible. This will occur when any player reaches the Information Era, or whenever half of the players have reached the Atomic Era. Diplomatic Victory requires that you get the votes of a certain number of delegates to the United Nations. Each player gets delegates based on their population, and there are also some additional delegates you can earn, such as through building the World Wonder Forbidden Palace which gives you two additional delegates. Anyone planning for a Diplomatic Victory should consider building this Wonder as mandatory. But each City-State gets one delegate, and if you are allied with them their delegate is yours. The mechanics of City-State relationships is that they love gifts, and cash is always the best. So anyone planning a Diplomatic Victory would be well-advised to focus on building a large Treasury. You will know when a World Leader vote is coming up in the United Nations, and can make cash drops on any City-States that are not already allied with you before the vote. But watch out that another player doesn't do the same thing after you and snipe away some of your allies. Also, you can place your spies in City-States to rig elections, and that is another way to get them to ally with you. Spies and Espionage Spies are simply awarded to you whenever any player enters the Renaissance Era. After that you receive another spy each time to advance to another Era. So you can in general have as many as 5 Spies, but if you build the National Intelligence Agency you get one more. This is a National Wonder, and should be a mandatory build if you are going for a Diplomacy victory. And England starts with 1 extra Spy, so if you play as England you could get as many as 7 Spies. Spies can be used for offense or defense. If you station one of your spies in one of your cities it can operate as a counter-spy, and may thwart or even kill an enemy spy. If you are well ahead in technology, that might be a good use, since other players will be trying to steal your tech. But if you are behind, you might want to use your spies to steal tech from other players. You may be successful in this, but the theft does not go unnoticed, and other player may use one of his spies to counter your operation. If you spy is killed, you will get another one in 3-5 turns, but if your spy was a high-rank spy with promotions, that is a serious loss, so you may want to move that spy elsewhere for a while. Diplomats When you assign a spy to the capital of another player you can designate them as a Diplomat. They will take a few turns (depends on game speed, but around 6 turns on normal speeds) to get set up. This is called “Making Introductions”, but the point is that if you need an effective diplomat, don't wait until the last minute. Diplomats can be useful in several ways. Early on, they allow you to trade votes in the World Congress. And they will bring you intelligence about intrigues, and you can then share that with other players. And it can also give you a view of the other player's City Screen. Once you have researched Globalization your Diplomats can help with a Diplomatic Victory because each one counts as one additional vote in the United Nations for World Leader. You can change a spy into a Diplomat and vice versa just by moving the Spy/Diplomat from its current location to another location, which will trigger the ability to change the job assignment. This means that when you first get Spies, and they cannot yet be used to get additional Delegate votes as Diplomats, you can assign them to City-States, where they can help you get alliances. Then as you start to research Globalization, move them to the capitals of other players and turn them into Diplomats. This of course assumes you want to win a Diplomatic victory. If instead you are going for a Science victory and are ahead in Science, it is probably best to station them in your own cities to do counter-intelligence work. If you are ahead in Science, other players will be trying to steal tech from you. Religious Pressure If you have researched all of the Piety Social Policy Tree, you will have option to choose a Reformation Belief to add to your religion. One of these, Underground Sect, allows your spies to exert religious pressure against the city they have been sent to. However, this effect is fairly small. If there is not a Follower of your religion in the city, it seems to do nothing. But in combination it can flip cities to your religion. Start by sending in a Missionary to spread your religion, then your spy can add to that. And you should also combine that with a trade route to add additional religious pressure. And by gradually moving your spies, missionaries, and trade routes from city to city, you can make your religion dominant in a region. Diplomatic Victory This can be a fun way to win, and I have done it. If you want to get a leg up, start with a Civ that gives you advantages, such as Greece or Venice (although my last diplomatic Victory was achieved with Ethiopia, which is generally regarded as a military/domination Civ. You can win any victory type with any civ, and it can be fun to “play against type”). Greece gets an advantage from relations with City-States, which are key to a Diplomatic Victory because each one gets a vote for World Leader. And Venice is interesting because you cannot build settlers. But you can use cash to puppet City-States, and you can purchase units in puppeted City-States as well. Cash is king in the Venice strategy, and you will want to get as many Trade Routes as possible. The first two should send Food to Venice to help boost your population. Since you will only ever have one city as Venice you will want to max it out. All trade routes after that should focus on cash. Use your cash to purchase or upgrade military units, and employ a defensive strategy. You want enough military to deter any aggression against you, but you should avoid making any hostile moves against others if possible. Remember, this is a strategy for a Diplomatic Victory. If you want to go to war, don't choose Venice. Instead choose one of the Domination Civs, like the Zulus or the Mongols. Links: https://civ-5-cbp.fandom.com/wiki/Detailed_Guide_to_Diplomacy https://www.palain.com/gaming/civilization-v/playing-civilization-v-part-8/ Provide feedback on this episode.

This show has been flagged as Clean by the host. Create a Linux kiosk at your library Start without a guest account The first few steps of this process don't actually require a guest user directory to exist, so do NOT create your guest user account yet. However, you do need to choose what your guest user account is going to be called. A reasonable account name for Don's purposes is libraryguest. On my personal computer I call my guest account guestaccount, and I've used kioskguest on some installations. I avoid just the name “guest” because in modern computing the term “guest” gets used in a few other ways (such as a “guest operating system” in a virtual environment), and it's just easier to find something unique in logs. Choose a unique name for you guest account, but don't create it yet. For this article, I'm using libraryguest. Create the PostSession script By default, GDM recognises several states: Init, PostLogin, PreSession, and PostSession. Each state has a directory located in /etc/gdm. When you place a shell script called Default in one of those directories, GDM runs the script when it reaches that state. To trigger actions to clean up a user's environment upon logout, create the file /etc/gdm/PostSession/Default. You can add whatever actions you want to run upon logout to the Default script. In the case of Don's library, we wanted to clear everything from the guest's home directory, including browser history, any LibreOffice files or GIMP files they may have created, and so on. It was important that we limited the very drastic action of removing all user data to just the guest user. We didn't want the admin's data to be erased upon logout, so whatever rule we added to /etc/gdm/PostSession/Default had to be limited to the guest user. Here's what we came up with: #!/usr/bin/sh echo "$USER logged out at `date`" >> /tmp/PostSession.log if [ "X$USER" = "Xlibraryguest" ]; then rm -rf "$HOME" fi exit 0 The first line is for logging purposes. The /tmp directory gets cleared out on most distributions automatically, so we weren't worried about creating a file that'll grow forever and eventually crash the computer. If your distribution of choice doesn't clean out /tmp automatically, create a cron job to do that for you. GDM knows what user triggered the logout process, so the if statement verifies that the user logging out is definitely the libraryguest user (that's the literal name of the user we created for library patrons).Note that the whitespace around the square brackets is important, so be precise when typing! As long as it is libraryguest, then the script removes the entire user directory ($HOME). That can be extremely dangerous if you make a mistake, so do thorough testing on a dummy system before implementing a script like this! If you get a condition wrong, you could erase your entire home directory upon logout. In this example, I've successfully limited the rm command to a logout action performed by user libraryguest. The entire /home/libraryguest directory is erased, and the computer returns to the GDM login screen. When a new user logs in, a fresh directory is created for the user. You can put any number of commands in your script, of course. You don't have to erase an entire directory. If all you really want to do is clear browser history and any stray data, then you can do that instead. If you need to copy specific configuration files into the environment, you can do that during the PreSession state. Just be sure to test thoroughly before committing your creation to your users! What happens when the guest doesn't log out At this point, the computer erases all of the user's data when the user logs out, but a reboot or a shutdown is different to a logout. GDM doesn't enter a PostSession state after a reboot signal has been received, even if the reboot occurs during an active GDM session. The easiest and safest way to erase an entire home directory when there's a cut to system power is to use a temporary RAM filesystem (tmpfs) to house the data in the first place. If the systems you're configuring have 8 GB or more, and the system is exclusively used as a guest computer, you can probably afford to use RAM as the guest's home directory. If your system doesn't have a lot of RAM, then you can use the systemd work-around in the next section. Assuming you have the RAM to spare, and that your systems are supported by a backup power supply, you can add a tmpfs entry in /etc/fstab. In this example, my tmpfs is mounted to /home/libraryguest and is just 2 GB: tmpfs /home/libraryguest tmpfs rw,nosuid,nodev,size=2G 0 0 That's plenty of space for some Internet browsing and even a few LibreOffice documents to be saved while a user works. Mount the new volume: $ sudo mount /home/libraryguest Next, you must create the libraryguest user manually in a terminal.The useradd command creates user profiles: $ sudo useradd --home-dir /home/libraryguest libraryguest useradd: warning: the home directory /home/libraryguest/ already exists. useradd: Not copying any file from skel directory into it. Because you've already created a location for the home directory, you do get a warning after creating the user. It's only a warning, not a fatal error, and the guest account is automatically populated later. Create a password for the new user: $ sudo passwd libraryguest That's it! You've created a guest account that refreshes with every logout and every reboot. You can skip over the next section of this article. Using systemd targets instead of a ramdisk Assuming you can't create a ramdisk for temporary user data, you can instead create a systemd service that runs a script when the reboot, poweroff, and multi-user targets are triggered: [Unit] Description=Kiosk cleanup [Service] Type=oneshot ExecStart=/usr/local/bin/kiosk-cleanup.sh [Install] WantedBy=poweroff.target reboot.target multi-user.target Save the file to /etc/systemd/system/kioskmode.service and then enable it: $ sudo systemctl enable --now kioskmode The script, like the GDM script, removes the libraryguest directory. Unlike GDM script, this one must also recreate an empty home directory and grant it user permissions: #!/usr/bin/bash rm -rf /home/libraryguest mkdir /home/libraryguest chown -R libraryguest:libraryguest /home/libraryguest Grant the script itself permission to run: $ sudo chmod +x /usr/local/bin/kiosk-cleanup.sh Now the libraryguest user data is erased after: Logout Reboot Shutdown Startup Essentially, no matter how the computer loses its session or its power, the libraryguest account starts fresh when a new session is started. Security and privacy Using systemd to erase data at shutdown and startup isn't strictly as secure as using a temporary ramdisk for all user data. Should the computer lose power suddenly, all saved user data in the libraryguest account is present during the next boot. Of course, it's erased as soon as multi-user.target is called by systemd, but it is technically possible to interrupt the boot process and mine for data. You must use full drive encryption to protect data from being discovered by an interrupted boot sequence. Why not just use xguest On many Linux distributions, the xguest package is designed to provide the Guest account, which resets after each logout. It was an extremely useful package that I installed on every machine I owned, because it's handy to be able to let friends use my computer without risking them making a mess of my home directory. Lately, it seems that xguest is failing to launch a desktop, however, presumably because it relies on X11. If xguest works for you in your tests, then you may want to use it instead of the solution I've presented here. My solution offers a lot of flexibility, thanks to GDM's autodetection of session states. Kiosks in libraries Privacy and personal information is more important than ever. Regardless of how you setup a kiosk for your library, you have an obligation to your users to keep them informed of how their data is being stored. This goes both ways. Users need to know that their data is destined to be erased as soon as they log out, and also they deserve to be assured that their data is not retained. However, it's also your responsibility to admit that glitches and exceptions could occur. Users need to understand that the computer they're using are public computers on a public network. Encryption is being used for traffic and for data storage, but you cannot guarantee absolute privacy. As long as everyone understands the arrangement, everyone can compute with confidence. Linux, GDM, and systemd are great tools to help libraries create a sustainable, robust, honest, and communal computing platform. Show notes taken from https://www.both.org/?p=13327

This show has been flagged as Clean by the host. 1985, I started to work at a telecom equipment manufacturer. We had a main frame computer in our combined office- and lab room. We were four sitting in the room and it was this one terminal for all of us and maybe even for someone more. Downstairs, we at component technology department had our big climate controlled laboratories. I used an HP 85 computer having the Basic programming language to automize measurements of resistors. And there were several more of them for other measurements of various electronic components. Also more advanced computers were used in the labs and as I recall also with other languages than Basic. I remember I learned briefly a bit about one of those languages but have forgotten which one. The secretary at the department could send Telex messages around the world. We handed a hand written manuscript to her and she typed it into the Telex system. And she had a Xerox computer with big, at least the 8 inch floppy discs. Not so many years later my manager got a Personal computer running DOS and some years later it DOS computers also to the staff. But also very early we had a Sun Unix station. And for many years Unix became my daily driver at work. Before I started to work, in school we had some education in Basic programming. We were using the at least in Sweden very successful and good Luxor ABC 80 computer. At the end of my school time, my school got the top notch ABC 800 with colour screen. At home so I could get a chance to learn somewhat more about computers and Basic programming in my own pace, I got a Zinclair ZX 80 computer, which I later upgraded to ZX 81. One summer job when I was a student I was at Televerket, the Swedish PTT. It meant that I visited numerous of exchange stations. Many at the country side, some with very few subscribers so I could hear the relay start when someone was making a call. At bigger stations it was noise from relays all the time. As I mentioned, after studies were completed I was working with telecom equipment in particular for land line telephony. Not at least I worked with components for the line cards, the card at the telephone exchange that is facing towards the end user. The book The_Cuckoo's_Egg is a hacker thriller based on a true story that happened in the mid-1980's going on for a year. It was written by the hunter shortly after. Cliff Stoll describes Unix commands, which are similar to Linux. He talks about passwords, about encryption and a lot more. Many technical details he describes by using analogy with more common non technical life examples. A security hole in GNU-Emacs software, a software still around today, plays a central role in how the hacker could penetrate. To fix and update security holes are very relevant today as well. Many things in computers and technology have changed. But at the same time very much of the problems are valid today although they are somewhat different. And the way he describes technical details for the non-technical reader are relevant also today, I believe. At the same time as the book has many technical details, he also describes the daily life at home, the left wing culture he belonged to at the university, his long hair and the dress code he belonged to. And the music. He also describes his contacts to numerous authorities and frustration in those contacts. I am very impressed of his analytical research approach, his persistence, his skills and inventiveness including inventiveness of his girl friend and others. One take away for me is that he kept a detailed log book. It is an important research tool. The log book together with the print outs of exactly what the hacker did were core references for analyzing and make conclusions, retract and change conclusions when new information lead to that earlier assumptions were wrong. He also wrote a technical paper about it before he wrote the book. For those interested, there are several videos with him of later date on various topics.Provide feedback on this episode.

This show has been flagged as Clean by the host. Warning, this episode containers some spoilers for movies. The following movies are in my cybersecurity movie library. The ones marked * are included in review in this episode. 2001: A Space Odyssey (1968) * AntiTrust (2001) Blackhat (2015) Blade Runner (1982) Catch Me If You Can (2002) Citizenfour (2015) CSI: Cyber (2015) Enemy of the State (1998) Firewall (2006) Gattaca (1997) * Ghost in the Shell (1995) Hackers (1995) * Heartbreakers (2001) The Imitation Game (2014) I, Robot (2004) Johnny Mnemonic (1995) Jurassic Park (1993) * The KGB, the Computer and Me (1990) * - Youtube link The Lives of Others (2006) * Lo and Behold, Reveries of the Connected World (2016) The Matrix (1999) The Matrix Reloaded (2003) * The Matrix Revolutions (2003) Minority Report (2002) Mission: Impossible (1996) * Mr. Robot (2015) The Net (1995) * The Net 2.0 (2006) Ocean's Eleven (2001) Office Space (1999) * Person of Interest (2011) * Revolution OS (2001) The Social Network (2010) Sneakers (1992) * Superman III (1983) * Surrogates (2009) Swordfish (2001) Takedown (2000) Tron (1982) * WarGames (1983) * Slashdot "Best Hacker movie" poll (August 2001): https://slashdot.org/poll/683/best-hacker-flick This episode contains short except clips from some of these movies used under free use for demonstration. Provide feedback on this episode.

This show has been flagged as Explicit by the host. New hosts Welcome to our new hosts: Jim DeVore, Carmen-Lisandrette. Last Month's Shows Id Day Date Title Host 4544 Thu 2026-01-01 Uncommon Commands, Episode 2 Deltaray 4545 Fri 2026-01-02 YouTube Subscriptions 2025 #12 Ahuka 4546 Mon 2026-01-05 HPR Community News for December 2025 HPR Volunteers 4547 Tue 2026-01-06 Cheap Yellow Display Project Part 6: The speed and timing of Morse Trey 4548 Wed 2026-01-07 YouTube Subscriptions 2025 #13 Ahuka 4549 Thu 2026-01-08 [deprecated] Pomodoro Task Tool (pomotask.sh) candycanearter 4550 Fri 2026-01-09 Playing Civilization V, Part 7 Ahuka 4551 Mon 2026-01-12 “Elsbeth in IT: Since '97” (Part 2) Elsbeth 4552 Tue 2026-01-13 Printer Conspiracy MrX 4553 Wed 2026-01-14 Nuclear Reactor Technology - Ep 4 Less Common Reactor Types Whiskeyjack 4554 Thu 2026-01-15 How I do todo Jim DeVore 4555 Fri 2026-01-16 HPR Beer Garden 8 - Belgian Christmas Ales Kevie 4556 Mon 2026-01-19 Nitro man! RC Cars operat0r 4557 Tue 2026-01-20 Why I prefer tar to zip Klaatu 4558 Wed 2026-01-21 YouTube Subscriptions 2025 #14 Ahuka 4559 Thu 2026-01-22 Enkele off line vertaaltools Ken Fallon 4560 Fri 2026-01-23 Arthur C. Clarke: Other Works, Part 2 Ahuka 4561 Mon 2026-01-26 A bit about Mission:Libre, a new project for 11-14 year olds in free software Carmen-Lisandrette 4562 Tue 2026-01-27 Software development doesn't end until it's packaged Klaatu 4563 Wed 2026-01-28 Nuclear Reactor Technology - Ep 5 Fast Reactors Whiskeyjack 4564 Thu 2026-01-29 MakeMKV error Archer72 4565 Fri 2026-01-30 HPR Beer Garden 9 - Barley Wine Kevie 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 20 comments in total. Past shows There are 6 comments on 5 previous shows: hpr4313 (2025-02-12) "Why I made a 1-episode podcast about a war story" by Antoine. Comment 3: Ken Fallon on 2026-01-23: "Spammer" hpr4424 (2025-07-17) "How I use Newsboat for Podcasts and Reddit" by Archer72. Comment 7: Ken Fallon on 2026-01-03: "Some podcast aggregators show ccdn.php as file name #321" Comment 8: Archer72 on 2026-01-05: "Re: download-filename-format for HPR podcasts" hpr4532 (2025-12-16) "Cheap Yellow Display Project Part 5: Graphical User Interface " by Trey. Comment 2: Ken Fallon on 2026-01-10: "Possible Graphics Library" hpr4536 (2025-12-22) "Welcome to the Linux Community" by Deltaray. Comment 6: Archer72 on 2026-01-05: "Re: Good talk CliMagic" hpr4543 (2025-12-31) "Nuclear Reactor Technology - Ep 3 Reactor Basics" by Whiskeyjack. Comment 2: Kevin O'Brien on 2026-01-01: "Really enjoying this series" This month's shows There are 14 comments on 9 of this month's shows: hpr4546 (2026-01-05) "HPR Community News for December 2025" by HPR Volunteers. Comment 1: Archer72 on 2026-01-06: "Nuclear Reactor series"Comment 2: Henrik Hemrin on 2026-01-07: "Linux" hpr4551 (2026-01-12) "“Elsbeth in IT: Since '97” (Part 2)" by Elsbeth. Comment 1: operat0r on 2026-01-15: "White Male" hpr4552 (2026-01-13) "Printer Conspiracy" by MrX. Comment 1: candycanearter07 on 2026-01-24: "printer issues" hpr4554 (2026-01-15) "How I do todo" by Jim DeVore. Comment 1: brian-in-ohio on 2026-01-17: "Welcome"Comment 2: candycanearter07 on 2026-01-24: "good first show!" hpr4555 (2026-01-16) "HPR Beer Garden 8 - Belgian Christmas Ales" by Kevie. Comment 1: KarldaTech on 2026-01-16: "Christmas Ale" hpr4557 (2026-01-20) "Why I prefer tar to zip" by Klaatu. Comment 1: candycanearter07 on 2026-01-20: "interesting experiment" hpr4559 (2026-01-22) "Enkele off line vertaaltools " by Ken Fallon. Comment 1: ClaudioM on 2026-01-23: "Just What I Needed!"Comment 2: mnw on 2026-01-26: "Great Recommendations!" hpr4561 (2026-01-26) "A bit about Mission:Libre, a new project for 11-14 year olds in free software" by Carmen-Lisandrette. Comment 1: Henrik Hemrin on 2026-01-27: "Happy to learn about the project"Comment 2: candycanearter07 on 2026-01-28: "cool project" hpr4563 (2026-01-28) "Nuclear Reactor Technology - Ep 5 Fast Reactors" by Whiskeyjack. Comment 1: mnw on 2026-01-29: "Great Series"Comment 2: Whiskeyjack on 2026-01-29: "hpr4563 :: Nuclear Reactor Technology - Ep 5 Fast Reactors" Mailing List discussions Policy decisions surrounding HPR are taken by the community as a whole. This discussion takes place on the Mailing 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: https://lists.hackerpublicradio.com/pipermail/hpr/2026-January/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. Provide feedback on this episode.