Site Map - skip to main content - dyslexic font - mobile - text - print

Hacker Public Radio

Your ideas, projects, opinions - podcasted.

New episodes Monday through Friday.



Welcome to HPR the Community Podcast Network

We started producing shows as Today with a Techie on 2005-09-19, 13 years, 7 months, 6 days ago. Our shows are produced by listeners like you and can be on any topic that "are of interest to Hackers". If you listen to HPR then please consider contributing one show a year. If you record your show now it could be released in 33 days.

Meet the team

Please help out tagging older shows !


Latest Shows


hpr2795 :: Dead Earth

A review of a 20-year old, GNU Free Documentation Licensed, RPG about post-apocalyptic turmoil

Hosted by klaatu on 2019-04-19 is flagged as Clean and released under a CC-BY-SA license.
Tags: RPG,Tabletop Game,Dead Earth.
Listen in ogg, spx, or mp3 format. Series: Tabletop Gaming | Comments (0)

Full shownotes are on mixedsignals.ml

You can download Klaatu's update revision of the game materials here: https://mixedsignals.ml/download/deadearth-bundle-gfdl.7z


hpr2794 :: Interview with Martin Wimpress

In this episode, Yannick talks with Martin Wimpress about the Ubuntu MATE project

Hosted by Yannick the french guy from Switzerland on 2019-04-18 is flagged as Clean and released under a CC-BY-SA license.
Tags: ubuntu, mate, ubuntu mate, martin wimpress, raspberry pi, desktop environment, linux.
Listen in ogg, spx, or mp3 format. Series: Interviews | Comments (0)

Ubuntu, MATE.

Two words which, taken separately, refer to great products.

On one side, Ubuntu, one of the most popular, if not the most popular, linux distribution.

On the other side, the MATE desktop environment, also very popular.

One person took those two elements and combined them together to make Ubuntu MATE. That person is Martin Wimpress, and he joined me on the 21st of March to talk about the past, present, and future of the project.


hpr2793 :: bash coproc: the future (2009) is here

clacke discovers bash's coproc keyword and explains some toy examples


Hosted by clacke on 2019-04-17 is flagged as Clean and released under a CC-BY-SA license.
Tags: bash, coproc, subshell.
Listen in ogg, spx, or mp3 format. Series: Bash Scripting | Comments (0)

If you want the full manuscript, that’s at gitlab: hpr2793_bash_coproc_manuscript.adoc. It’s almost a transcript, but I added spontaneous commentary while reading the examples, so that’s not in the manuscript.

Episode errata:

  • Command substitution with $() is perfectly valid according to POSIX, and is accepted both by dash and by bash --posix. It’s not to be considered a bashism.

  • I fumbled the pronunciation of the printf format string in one place and said "parenthesis" instead of "percentage sign".

  • I tried to say "space" every time there’s a space, but I know I forgot it in a few places. But you probably need to look at the show notes to really make sense of the commands anyway.

Example #1:

More on command substitution in Dave’s hpr1903: Some further Bash tips.

Example #2:

You can also combine process substitution with redirection.

Example #3:

More on process substitution in Dave’s hpr2045: Some other Bash tips.

For a description of a hack for creating bidirectional anonymous pipes in bash, see my Fediverse post on this, and I owe you a show.

A coprocess in bash is a subshell to which you have access to two file descriptors: Its stdin and its stdout.

The two file descriptors will be put in a bash array. To learn more about arrays, check out Dave’s series within the bash series, a whopping five-part quadrology including hpr2709, hpr2719, hpr2729, hpr2739 and hpr2756.

You create a coprocess using the coproc keyword, brand spanking new since bash 4 from 2009. I am filing issues to pygments and GNU src-highlite to support it.

There are two ways to call coproc. The first way is to give coproc a simple command.

Example #4:

The other way is to give coproc an explicit name and a Command Grouping.

Example #5:

Slightly less contrived example #6:

$ coproc GREP (grep --line-buffered pub); printf '%s\n' hacker public radio >&${GREP[1]}; cat <&${GREP[0]}
[1] 25627
public
^C
$ kill %1
[1]+  Terminated              coproc GREP ( grep --color=auto --line-buffered pub )

Here grep and cat wait forever for more input, so we have to kill them to continue our lesson.

But we know that GREP will only return one line, so we can just read that one line. And when we are done feeding it lines, we can close our side of its stdin, and it will notice this and exit gracefully.

I’m glad I stumbled over that {YOURVARIABLE}>&- syntax for having a dereferenced variable as the left FD of a redirection. Originally I used an ugly eval.

Example #7:

$ coproc GREP (grep --line-buffered pub); printf '%s\n' hacker public radio >&${GREP[1]}; head -n1 <&${GREP[0]}; exec {GREP[1]}>&-
[1] 25706
public
[1]+  Done                    coproc GREP ( grep --color=auto --line-buffered pub )

There we go! Not the most brilliant example, but it shows all the relevant moving parts, and we covered a couple of caveats.

Now go out and play with this and come back with an example on how this is actually useful in the real world, and submit a show!


hpr2792 :: Playing around with text to speech synthesis on Linux

Playing around with different text to speech programs to see what is possible.

Hosted by Jeroen Baten on 2019-04-16 is flagged as Clean and released under a CC-BY-SA license.
Tags: speech synthesis linux.
Listen in ogg, spx, or mp3 format. Series: Sound Scapes | Comments (0)

Below the script I used to generate a bunch of wav files with different text to speech applications.

#!/bin/bash

string="This is HPR episode 2792 entitled \"Playing around with text to speech synthesis on Linux\" and is part of the series \"Sound Scapes\". It is hosted by Yeroon Bahten and is about 20 minutes long and carries a clean flag."
echo "${string}" > text.txt

espeak -w espeak.wav "${string}" 
espeak -w espeak-ng-v-mb-us1.wav -v mb-us1 "${string}"
espeak -w espeak-ng-v-mb-us2.wav -v mb-us2 "${string}"
espeak -w espeak-ng-v-mb-us3.wav  -v mb-us3 "${string}"
espeak-ng "${string}"
espeak-ng -v en-gb "${string}"
espeak-ng -w espeak-ng-en-gb-scotland.wav -v en-gb-scotland "${string}"
espeak-ng -w espeak-ng-en-us.wav  -v en-us "${string}"

flite -o flite-voice-cmu_us_slt.wav -voice cmu_us_slt  "${string}"

echo "${string}"| festival --language english --tts # same as next line
echo "${string}"| text2wave --language british_english --tts -o festival_british_english.wav
text2wave -o festival_british_english.wav  text.txt

for voice in don_diphone kal_diphone ked_diphone rab_diphone
do
  text2wave -o festival_voice_${voice}.wav -eval "(voice_${voice} )"  text.txt
done

# Gnustep say, recorded with audio recorder.
say "${string}"

text2wave -o festival_voice_cmu_us_slt_arctic_hts.wav -eval "(voice_cmu_us_slt_arctic_hts )" text.txt

# merlin https://github.com/CSTR-Edinburgh/merlin

# marytts: https://github.com/marytts

hpr2791 :: LUKS like truecrypt

Klaatu demonstrates how to use LVM and cryptsetup to create and use portable encrypted filesystems

Hosted by klaatu on 2019-04-15 is flagged as Clean and released under a CC-BY-SA license.
Tags: encryption.
Listen in ogg, spx, or mp3 format. Series: Privacy and Security | Comments (0)

Create an empty file of a predetermined size:

$ fallocate --length 512M foo.img

Create a LUKS container on it:

$ cryptsetup --verify-passphrase luksFormat foo.img

Set it up:

$ sudo cryptsetup luksOpen foo.img foo
$ ls /dev/mapper
foo
$

Make a file system on it:

$ sudo mkfs.ext2 /dev/mapper/foo

If you don't need it for anything now, you can close it:

$ sudo cryptsetup luksClose foo
$ ls /dev/mapper
$

Mount it as a usable filesystem:

$ sudo mkdir /crypt
$ sudo mount /dev/mapper/foo /crypt

Depending on your system configuration, you may need to set up reasonable permissions:

$ sudo mkdir /crypt/mystuff
$ sudo chown klaatu:users /crypt/mystuff
$ sudo chmod 770 /crypt/mystuff
$ echo "hello world" >> /crypt/mystuff/file.txt

When you're finished using your encrypted vault, unmount and close it:

$ sudo umount /crypt
$ sudo cryptsetup luksClose foo

hpr2790 :: My YouTube Subscriptions #5

Part five of my list of subscribed channels


Hosted by Ahuka on 2019-04-12 is flagged as Clean and released under a CC-BY-SA license.
Tags: YouTube, Channels, Subscriptions.
Listen in ogg, spx, or mp3 format. Series: YouTube Subscriptions | Comments (0)

I am subscribed to a number of YouTube channels, and I am sharing them with you


hpr2789 :: Pacing In Storytelling

Lostnbronx takes a stab at explaining why the pace of your story matters.

Hosted by lostnbronx on 2019-04-11 is flagged as Clean and released under a CC-0 license.
Tags: stories, storytelling, pacing, lostnbronx.
Listen in ogg, spx, or mp3 format. Series: Random Elements of Storytelling | Comments (1)

Some stories, that are otherwise cookie-cutter in form, possessing familiar situations and clichéd characters, seem to nonetheless stand out. Other tales that might have great ideas, intriguing plots, and vivid characters, seem to hit the ground with a thud. The determining value here may lie with the pacing of the story.

How does pacing (that is, timing) affect your story? Why does it matter? Can you make improvements in the pace by moving things around? What’s the best approach for creating it to begin with?

Lostnbronx meanders for a while, often losing his way, and rarely making a coherent point regarding this complicated topic.


hpr2788 :: Looping in Haskell

tuturto describes some loop-like constructs in Haskell

Hosted by tuturto on 2019-04-10 is flagged as Clean and released under a CC-BY-SA license.
Tags: haskell, programming.
Listen in ogg, spx, or mp3 format. Series: Haskell | Comments (0)

Haskell is functional language where data is immutable. This means that regular for-loops don’t really exist. Looping however is very common pattern in programs in general. Here are some patterns how to do that in Haskell.

Recursion

Calculating Fibonacci numbers is common example (sort of like hello world in Haskell). There’s many different implementations at https://wiki.haskell.org/The_Fibonacci_sequence if you’re interested on having a look.

Simple recursive definition:

fibs :: Integer -> Integer
fibs 0 = 0
fibs 1 = 1
fibs n = fibs (n-1) + fibs (n-2)

When called with 0 result is 0. When called with 1 result is 1. For all other cases, fibs is called with values n-1 and n-1 and the results are summed together. This works fine when n is small, but calculation gets slow really quickly with bigger values.

Another way is to define list of all Fibonacci numbers recursively:

allFibs :: [Integer]
allFibs = 0 : 1 : zipWith (+) allFibs (tail allFibs)

Here a list is constructed. First element is 0, second element is 1 and rest of the list is obtained by summing the list with its tail (everything but the first element of the list). Definition is recursive and defines all Fibonacci numbers. However, Haskell doesn’t evaluate whole list, but only as much of it as is required.

Common pattern of processing elements in a list, producing a new list:

addOne :: [Integer] -> [Integer]
addOne [] = []
addOne (x:xs) = x + 1 : addOne xs

Two cases, when called with an empty list [], result is empty list. For all other cases, list is taken apart (x:xs), x contains first element of the list and xs is rest of the list. Body of the function creates a new list where head is x + 1 and tail is addOne xs. This processes whole list of Integer by adding one to each value. It also reverses the list.

Second common pattern is processing a list and reducing it to a single value:

sumAll :: Integer -> [Integer] -> Integer
sumAll n [] = n
sumAll n (x:xs) = sumAll (n + x) xs

If given list is empty (the terminal case), result is n. Second case again takes list apart (x:xs), adds x and n together and recursive call sumAll with tail of the list.

This common pattern is discarding some elements of a list:

evenOnly :: [Integer] -> [Integer]
evenOnly [] = []
evenOnly (x:xs) = 
    if even x
        then x : evenOnly xs
        else evenOnly xs

Again, result of empty list is just empty list. In all other cases we first check if x is even. If so, new list is constructed where head is x and tail is evenOnly xs. If x isn’t even, it’s discarded and evenOnly is called recursively with tail of the list.

More tools

Writing recursion by hand gets tedious and sometimes confusing (if you listened to the show, you probably noticed how I got confused and had to check that evenOnly actually works as I thought it would). For that reason, there are tools that abstract these common patterns and given them names.

First is map. It applies given function to each element of a list, thus producing a new list:

> map (+1) [1..10]
[2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
> map odd [1..10]
[True, False, True, False, True, False, True, False, True, False]

Second is fold. There is good article at https://wiki.haskell.org/Foldr_Foldl_Foldl%27 that talks about differences between different folds.

The basic idea behind each fold is the same, they take a function and initial value and then apply them to first element of list, producing a value. This value is then applied with the function to the second element of the list and so on, until whole list has been reduced to a single value. Calculating a sum of list is so common operation that there’s specific function for that: sum.

> foldr (+) 0 [1..10]
55
> foldl (+) 0 [1..10]
55
> sum [1..10]
55

scan is similar to fold, except for returning only the final value, it also returns intermediate ones. Here it’s easier to observe how scanr and scanl differ from each other:

> scanr (+) 0 [1..10]
[55,54,52,49,45,40,34,27,19,10,0]
> scanl (+) 0 [1..10]
[0,1,3,6,10,15,21,28,36,45,55]

Last of the trifecta is filter that is used to select some of the elements in a list based on a supplied function.

> filter odd [1..10]
[1, 3, 5, 7, 9]
> filter even [1..]
[2, 4, 6, 8, 10, 12, 14, 16...]
> take 5 $ filter even [1..] 
[2, 4, 6, 8, 10]

Even more tools

There are even more tools at our disposal. Prelude is basic library of Haskell and browsing online documentation at http://hackage.haskell.org/package/base-4.12.0.0/docs/Prelude.html might yield interesting information.

For example, constructing some lists:

  • iterate :: (a -> a) -> a -> [a] For list where function is applied repeatedly.
  • repeat :: a -> [a] for a list that contains infinite amount of a.
  • replicate :: Int -> a -> [a] For a list that contains finite amount of a.
  • cycle :: [a] -> [a] For a infinite list that repeats same list over and over again.

Finding tools

It’s all about knowing the right tools and finding them when needed. Luckily, you don’t have to memorize big stack of notes, but can turn to https://hoogle.haskell.org/ which is Haskell API search engine. It can search based on name or type signature. I often use it to find out if somebody has already written a function that I’m thinking of writing myself.

If you want to send questions or comments, I can be reached with email or at fediverse where I’m tuturto@mastodon.social. This episode is direct result of feedback that I got from previous one. If there’s Haskell topic you would love to hear more, drop me line or even better, research it by yourself and make a cool Hacker Public Radio episode.


hpr2787 :: NodeJS Part 1

I don't know Javascript do ?

Hosted by operat0r on 2019-04-09 is flagged as Clean and released under a CC-BY-SA license.
Tags: NodeJS,puppeteer,programing,Javascript.
Listen in ogg, spx, or mp3 format. Comments (1)


hpr2786 :: My YouTube Channels

A short show about some of my YouTube channels inspired by Ahuka

Hosted by Tony Hughes AKA TonyH1212 on 2019-04-08 is flagged as Clean and released under a CC-BY-SA license.
Tags: Linux, Computers, YouTube, Gaming, Electronics, Audacity.
Listen in ogg, spx, or mp3 format. Series: YouTube Subscriptions | Comments (0)

Hallo HPR listeners this is Tony Hughes again coming from Blackpool in the UK.

Recently Ahuka started a series on the YouTube channels that he subscribes to and this seems like a good topic to share some of my favourite YouTube channels. This time I’ll share some of the tech and Linux based channels I watch.

And finally for this episode

  • Linus Tech Tips – Another Computer review show all about tips and tricks relating to all stuff geeky. Be aware that this show is heavily sponsored although Linus does seem to be very fair with both praise and criticism for what he is reviewing. https://www.youtube.com/user/LinusTechTips/videos

Previous five weeks

hpr2785 :: What is uCPE hosted by JWP

Released: 2019-04-05. Duration: 00:06:39. Flag: Explicit.
Tags: Network Function Virtualization,NFV,Universal customer premises equipment,uCPE.
A short talk on telco networking standards

hpr2784 :: The Yamaha Disklavier hosted by Jon Kulp

Released: 2019-04-04. Duration: 00:24:00. Flag: Explicit.
Tags: Music, Piano, Keyboard, Musical Instruments, Player Pianos, Recording Devices.
I talk about the Yamaha Disklavier DKC500RW that's in my office at work

hpr2783 :: The Windows "Shutdown.exe" Command Explained hosted by Claudio Miranda

Released: 2019-04-03. Duration: 00:15:23. Flag: Clean.
Tags: shutdown, windows, commandprompt, cmd.
A rundown of the Windows "shutdown.exe" command.

hpr2782 :: Never stop gaming hosted by klaatu

Released: 2019-04-02. Duration: 00:21:17. Flag: Clean. Series: Tabletop Gaming.
Tags: rpg,dm,gm,game master,dungeon master,dnd.
Ways to feed the gaming impulse, even when you can't game

hpr2781 :: HPR Community News for March 2019 hosted by HPR Volunteers

Released: 2019-04-01. Duration: 00:59:24. Flag: Explicit. Series: April Fools Shows.
Tags: Community News.
HPR Volunteers talk about shows released and comments posted in March 2019

hpr2780 :: My SBC Nextcloud Install Pt. 1 - Hardware hosted by minnix

Released: 2019-03-29. Duration: 00:22:55. Flag: Clean.
Tags: nextcloud,single board computers,home server,sbc,arm.
How I built my self-enclosed Nextcloud server using a single board computer and a RAID enclosure

hpr2779 :: HTTP, IPFS, and torrents hosted by aldenp

Released: 2019-03-28. Duration: 00:11:51. Flag: Clean.
Tags: HTTP, IPFS, torrents.
Replacing the web with new, decentralized protocols

hpr2778 :: Functor and applicative in Haskell hosted by tuturto

Released: 2019-03-27. Duration: 00:30:41. Flag: Clean. Series: Haskell.
Tags: haskell, functor, applicative.
Brief introduction on functor and applicative patterns in Haskell and where they can be used

hpr2777 :: The quest for the perfect laptop. hosted by knightwise

Released: 2019-03-26. Duration: 00:31:07. Flag: Clean.
Tags: computer, hardware, geek, buy.
Knightwise is out looking for a new laptop and describes what he is looking for and why.

hpr2776 :: Sub-Plots In Storytelling hosted by lostnbronx

Released: 2019-03-25. Duration: 00:18:13. Flag: Clean. Series: Random Elements of Storytelling.
Tags: stories, storytelling, sub-plots, lostnbronx.
Lostnbronx looks at the importance of tightly-structured subplots in storytelling.

hpr2775 :: My YouTube Subscriptions #4 hosted by Ahuka

Released: 2019-03-22. Duration: 00:19:58. Flag: Clean. Series: YouTube Subscriptions.
Tags: YouTube, Channels, Subscriptions.
Part four of my list of subscribed channels

hpr2774 :: CJDNS and Yggdrasil hosted by aldenp

Released: 2019-03-21. Duration: 00:10:29. Flag: Clean.
Tags: CJDNS,Yggdrasil.
A summary of the things I like about CJDNS and Yggdrasil, and the places I think they could improve.

hpr2773 :: Lead/Acid Battery Maintenance and Calcium Charge Voltage hosted by Floyd C Poynter

Released: 2019-03-20. Duration: 00:31:09. Flag: Clean.
Tags: automotive, battery, maintenance, charger.
Discussion on installing new Calcium battery into older vehicle and resulting maintenance issues.

hpr2772 :: My applications and software part 3 hosted by Tony Hughes AKA TonyH1212

Released: 2019-03-19. Duration: 00:09:45. Flag: Clean.
Tags: Software, applications, utilities.
A short show about the software I use in Linux Mint

hpr2771 :: Embedding hidden text in Djvu files hosted by klaatu

Released: 2019-03-18. Duration: 00:41:16. Flag: Clean.
Tags: pdf, ebook, bloat, djvu.
Part 2 of Klaatu's Djvu mini series

hpr2770 :: Navigating the maze of RPG books hosted by klaatu

Released: 2019-03-15. Duration: 00:31:13. Flag: Clean. Series: Tabletop Gaming.
Tags: book,rpg,game.
There are so many kinds of RPG books out there, where do you start? Klaatu tells all!

hpr2769 :: Quick Review of the AstroAI WH5000A Multimeter hosted by NYbill

Released: 2019-03-14. Duration: 00:24:15. Flag: Clean.
Tags: multimeter, electronics, test equipment, hardware review.
NYbill reviews, yet another, inexpensive multimeter.

hpr2768 :: Writing Web Game in Haskell - Planetary statuses hosted by tuturto

Released: 2019-03-13. Duration: 00:18:42. Flag: Clean. Series: Haskell.
Tags: haskell.
tuturto describes system for recording planetary statuses in their game

hpr2767 :: Djvu and other paperless document formats hosted by klaatu

Released: 2019-03-12. Duration: 00:32:15. Flag: Clean.
Tags: pdf, ebook, bloat, djvu.
A tutorial on how to read and generate djvu files

hpr2766 :: Disk enumeration on Linux hosted by klaatu

Released: 2019-03-11. Duration: 00:24:03. Flag: Clean.
Tags: fdisk,dmesg,lsblk,udisks.
Klaatu reviews the various commands used to enumerate drives on Linux

hpr2765 :: My YouTube Subscriptions #3 hosted by Ahuka

Released: 2019-03-08. Duration: 00:22:09. Flag: Clean. Series: YouTube Subscriptions.
Tags: YouTube, Channels, Subscriptions.
Part three of my list of subscribed channels

hpr2764 :: Personal password algorithms hosted by klaatu

Released: 2019-03-07. Duration: 00:40:44. Flag: Clean. Series: Information Underground.
Tags: password,security,algorithm,puzzle,cipher.
Is it possible to generate a unique password for every site? Klaatu tries.

hpr2763 :: Deepgeek explains SPF records hosted by klaatu

Released: 2019-03-06. Duration: 00:14:09. Flag: Clean. Series: Information Underground.
Tags: email,spf,mx,postfix,smtp.
Confused about SPF? Klaatu was. Here's Deepgeek's explanation.

hpr2762 :: What You Really Are hosted by lostnbronx

Released: 2019-03-05. Duration: 00:16:36. Flag: Clean. Series: Tabletop Gaming.
Tags: gaming, D&D, lostnbronx.
Lostnbronx looks back at his early gaming days.

hpr2761 :: HPR Community News for February 2019 hosted by HPR Volunteers

Released: 2019-03-04. Duration: 01:07:02. Flag: Explicit. Series: HPR Community News.
Tags: Community News.
HPR Volunteers talk about shows released and comments posted in February 2019

hpr2760 :: What is VNF hosted by JWP

Released: 2019-03-01. Duration: 00:07:25. Flag: Clean. Series: Networking.
Tags: Virtual network function,VNF,network functions virtualization,NFV.
A topic from the Open Networking conference in Amsterdam

hpr2759 :: Cleaning the Potentiometers on a Peavey Bandit 65 hosted by Jon Kulp

Released: 2019-02-28. Duration: 00:20:44. Flag: Clean.
Tags: Guitars, electronics, amplifiers, maintenance, repair.
I disassemble and clean the pots on my Peavey Bandit 65 to fix static in the knobs.

hpr2758 :: Haskell - Data types and database actions hosted by tuturto

Released: 2019-02-27. Duration: 00:42:46. Flag: Clean. Series: Haskell.
Tags: haskell, database.
Brief summary of how to declare your own datatypes in Haskell and how to store data in database

hpr2757 :: How to DM hosted by klaatu

Released: 2019-02-26. Duration: 00:44:54. Flag: Clean. Series: Tabletop Gaming.
Tags: rpg,dm,gm,game master,dungeon master,dnd.
Klaatu explains how to DM an RPG, and Lostnbronx demonstrates, step by step, how to build a dungeon

hpr2756 :: Bash Tips - 20 hosted by Dave Morriss

Released: 2019-02-25. Duration: 00:32:35. Flag: Explicit. Series: Bash Scripting.
Tags: Bash,array,delete,positional parameters.
Deleting arrays; positional and special parameters in Bash

hpr2755 :: My YouTube Subscriptions #2 hosted by Ahuka

Released: 2019-02-22. Duration: 00:22:09. Flag: Clean. Series: YouTube Subscriptions.
Tags: YouTube, Channels, Subscriptions.
Part two of my list of subscribed channels

hpr2754 :: Craigslist Scam Catch hosted by Edward Miro / c1ph0r

Released: 2019-02-21. Duration: 00:07:40. Flag: Explicit. Series: Privacy and Security.
Tags: craigslist, scam, con, social-engineering, puppy, dog, money, moneygram, infosec, cyber-security 101.
Helped a client avoid being scammed on Craigslist and wanted to share some tips to HPR.

hpr2753 :: Specific Settings In Storytelling hosted by lostnbronx

Released: 2019-02-20. Duration: 00:17:07. Flag: Clean. Series: Random Elements of Storytelling.
Tags: stories, storytelling, setting, lostnbronx.
Lostnbronx looks at why you might choose specific settings for your tales.

hpr2752 :: XSV for fast CSV manipulations - Part 2 hosted by b-yeezi

Released: 2019-02-19. Duration: 00:22:39. Flag: Clean.
Tags: csv,commandline,data.
Part 2 of my introduction to the XSV tool

hpr2751 :: Battling with English - part 3 hosted by Dave Morriss

Released: 2019-02-18. Duration: 00:13:42. Flag: Explicit.
Tags: grammar,spelling,punctuation,word misuse,English.
Misunderstandings about English grammar, spelling, punctuation, etc.

hpr2750 :: Windmill is on the Fritz hosted by Ken Fallon

Released: 2019-02-15. Duration: 00:04:30. Flag: Clean. Series: Hobby Electronics.
Tags: Fritzing, Reverse Engineering, LED.
Using Fritzing to help reverse engineer a circuit in a winter model village windmill

hpr2749 :: Lostnbronx and Klaatu commentary from episode 2743 hosted by klaatu

Released: 2019-02-14. Duration: 00:14:50. Flag: Clean.
Tags: rpg, game, gaming.
Thoughts about RPG character building, modern RPG play style compared to the Old School, and more

hpr2748 :: Writing Web Game in Haskell - Special events hosted by tuturto

Released: 2019-02-13. Duration: 00:44:05. Flag: Clean. Series: Haskell.
Tags: haskell, yesod.
tuturto walks through implementation of special events in web based game

hpr2747 :: checking oil hosted by brian

Released: 2019-02-12. Duration: 00:05:17. Flag: Explicit.
Tags: automotive.
checking your oil may not be so simple

hpr2746 :: My software part 2 hosted by Tony Hughes AKA TonyH1212

Released: 2019-02-11. Duration: 00:05:26. Flag: Clean.
Tags: Linux Mint 19.1,utilities.
More about the software I use regularly on Linux

Older Shows

Get a full list of all our shows.