Site Map - skip to main content

Hacker Public Radio

Your ideas, projects, opinions - podcasted.

New episodes Monday through Friday.



Welcome to HPR the Community Podcast

We started producing shows as Today with a Techie on 2005-09-19, 15 years, 4 months, 11 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 15 days.

Meet the team

Please help out tagging older shows !


Latest Shows



hpr3254 :: The Markdown editor Retext

In this episode I cover the markdown editor ReText. I found this useful when creating show notes

Hosted by MrX on 2021-01-21 is flagged as Explicit and released under a CC-BY-SA license.
Tags: Markdown, HPR, shownotes.
Listen in ogg, spx, or mp3 format. Comments (0)

What is ReText?

The ReText website on GitHub says that ReText is a simple but powerful editor for Markdown and reStructuredText markup languages.

Doing a search on the HPR site returned the following two references to ReText.

The excellent Markdown and Pandoc HPR 1832 episode by b-yeezi makes reference to ReText

Dave Morriss mentioned using ReText as a possible tool when sending in shownotes as markdown is preferable to plain text. Refer to HPR 3167

Retext Version Info

As of the 1st of January 2021 I am running ReText version 7.0.1 the latest version was 7.1.0 this was last updated on the 4th of April 2020.

Why I am covering this

I’m covering this because in HPR show 3167 Dave Morriss said that Markdown was a preferred way to submit shownotes. Prior to this I had supplied my shownotes in plain text.

What is Markdown?

I guess I first must cover what markdown is I found the following definitions:-

Description of Markdown from Wikipedia

Markdown is a lightweight markup language for creating formatted text using a plain-text editor. John Gruber and Aaron Swartz created Markdown in 2004 as a markup language that is appealing to the human users in its source form.[9] Markdown is widely used in blogging, instant messaging, online forums, collaboration software, documentation pages, and even readme files Link https://en.wikipedia.org/wiki/Markdown

Description of Markdown from John Gruber's website, one of the co founders of Markdown.

Markdown is a text-to-HTML conversion tool for web writers. Markdown allows you to write using an easy-to-read, easy-to-write plain text format, then convert it to structurally valid XHTML (or HTML).

Example text used in the show and how it looks

# This is a level 1 heading

## This is a level 2 heading

### This is a level 3 heading

This is a level 1 heading

This is a level 2 heading

This is a level 3 heading

Finally here are useful links that are available from within the ReText program. They can be found within the Help / About ReText menu:-

Link to ReText website

Link to Markdown syntax

Link to reStructuredText syntax

Final thoughts

  • Using ReText to pull these shownotes together disciplined me to hopefully put more meaningful titles within my shownotes.

  • It helped my to create meaningful descriptive links which will hopefully help accessibility for the visually impaired.

  • I edited the text on this occasion in live preview mode I found this made it very easy to see how the final version would look.

  • I think I ended up with more polished shownotes that hopefully needs fewer and hopefully no input from our band of HPR volunteers working behind the scenes.


hpr3253 :: Pandas Intro

Enigma introduces one of his favorite python modules pandas

Hosted by Enigma on 2021-01-20 is flagged as Clean and released under a CC-BY-SA license.
Tags: python, data analytics, data science.
Listen in ogg, spx, or mp3 format. Comments (1)

Welcome to another episode of HPR I'm your host Enigma and today we are going to be talking about one of my favorite python modules Pandas
This will be the first episode in a series I'm naming: For The Love of Python.

First we need to get the module
pip or pip3 install pandas
This will install numpy as well
Pandas uses an object called a dataframe which is a two-dimensional data structure,
i.e., data is aligned in a tabular fashion in rows and columns. Think of a spreadsheet type object in memory

Today we are going to talk about:
1) Importing data from various sources
Csv, excel, sql. More advance topics like Json covered in another episode.
df = pd.read_csv('file name')

2) Accessing data by column names or positionally
print(df.head(5)) # print all columns only first 5 rows
print(df.tail(5)) # print all columns only last 5 rows
print(df.shape) # print number of rows and columns in dataframe
print(df.columns) print column names
print(df[0:1].head(5)) print first two columns first 5 values by column position
print(df['field1].head(5)) print same column first five values by column name

3) Setting column types.
df['FieldName'] = df['FieldName'].astype(int) # sets column as interger
df['FieldName'] = df['FieldName'].astype(str) # sets column to string
df['DateColumn'] = pd.to_datetime(df['DateColumn']) # sets column to Datetime


4) Some basic filtering/manipulation of data.
Splits string at the @ for one split next two lines create 2 columns that use the pieces.
new = df2["Email"].str.split("@", n = 1, expand = True)
df2["user"]= new[0]
df2["domain"]= new[1]

df['col'] = df['Office'].str[:3] # creates a new column grabing the first 3 positions of Office column
df = df[df['FieldName'] != 0] # Only keep rows that have a FieldName value not equal to zero

See example code that you can run at:
Pandas Working example


hpr3252 :: Simple JSON querying tool (also YAML, and to a lesser extent XML)

crvs talks about jq, yq and xq

Hosted by crvs on 2021-01-19 is flagged as Explicit and released under a CC-BY-SA license.
Tags: json, yaml, xml, query.
Listen in ogg, spx, or mp3 format. Comments (0)

JSON

Json is a cool little data serialization language, that allows you to easily and clearly demarcate blocks of data by nesting data structures such as lists (enclosed by square brackets) and key-value pairs or "dictionaries" (enclosed by curly braces). So that in the end you get something that looks like this

{
"first list" : [ "element1", "element2", {"element3" : "is another k-v pair", "but contains" : ["a" , "list", "of", "words"]}] ,
"this value is a string" : "1" ,
"and this is a number" : 23 ,
"and floating point" :  1.413
}

Aside from:

  • Lists are enclosed in [] and each element is separated by ,
  • Key-value pair lists are enclosed in {} and have the key and value separated by : and each pair is separated by ,
  • Keys have to strings quoted with double quotes
  • Numbers may be left unquoted (but just in value fields)

There are no restrictions to what you can do with JSON. Given how explicit the syntax is then, it makes for very easy parsing, and there are plenty of good parser out there. My favourite JSON parser is jq(1).

A canonical representation of the JSON example above can easily be obtained with jq by simply calling jq '' file.json (or piping the file through stdin, or even putting the contents properly quoted as the second argument).

{
  "first list": [
    "element1",
    "element2",
    {
      "element3": "is another k-v pair",
      "but contains": [
        "a",
        "list",
        "of",
        "words"
      ]
    }
  ],
  "this value is a string": "1",
  "and this is a number": 23,
  "and floating point": 1.413
}

You can also use jq in a shell script to obtain, for example the second element of the first list:

$ jq '."first list"[1]' example.json
"element2"

So to get the value associated to a key you use the notation .key and to get the k-th element you use the notation [k-1]. To remove the quotes on the string you can use the -r flag which stands for raw output.

jq(1) also gives you a few more functionalities that can be useful like getting the number of elements in a list with the length function.

$ jq 'length'  example.json
3
$ jq '."first list"[2]."but contains" | length'
4

Another useful feature is getting the list of keys from a key-value pair list which can be done with the function keys

$ jq '."first list"[2] | keys[]' example.json
"but contains",
"element3"

The query language is much much more flexible than this, but for most cases this should be enough for simple configuration querying.

YAML and XML??

The yq project allows one to use the exact same syntax as jq to query, and emit (and therefore also transcode) yaml and XML, extending the usefulness of the query language.

So for example looking at the previous file through yq gives:

$ yq -y '' example.json
first list:
  - element1
  - element2
  - element3: is another k-v pair
    but contains:
      - a
      - list
      - of
      - words
this value is a string: '1'
and this is a number: 23
and floating point: 1.413

And the output of this can be of course queried with yq itself, or can be used to feed into whatever application requires a yaml input (I guess it lacks the triple dash at the top, but that is actually the only warning I get from passing that abomination to yamllint)

Similarly xq can be used to query XML files with the same language. However, to emit these files from json you need to use yq -x like so:

$ yq -x '' example2.json
<file>
  <first_list>element1</first_list>
  <first_list>element2</first_list>
  <first_list>
    <element3>is another k-v pair</element3>
    <but_contains>a</but_contains>
    <but_contains>list</but_contains>
    <but_contains>of</but_contains>
    <but_contains>words</but_contains>
  </first_list>
  <this_value_is_a_string>1</this_value_is_a_string>
  <and_this_is_a_number>23</and_this_is_a_number>
  <and_floating_point>1.413</and_floating_point>
</file>

where the original (modified) file example2.json looks like:

{
    "file":
    {
      "first_list": [
        "element1",
        "element2",
        {
          "element3": "is another k-v pair",
          "but_contains": [
            "a",
            "list",
            "of",
            "words"
          ]
        }
      ],
      "this_value_is_a_string": "1",
      "and_this_is_a_number": 23,
      "and_floating_point": 1.413
    }
}

So that the root dictionary has a single key-value pair and all the keys have no spaces in them (so that they can be made into xml tags).


hpr3251 :: Opposing Views on Alcohol

Windigo and Mrs. Honeyhume discuss their views on alcohol


Hosted by Windigo on 2021-01-18 is flagged as Explicit and released under a CC-BY-SA license.
Tags: alcohol.
Listen in ogg, spx, or mp3 format. Comments (0)

I discuss the subject of alcohol with my partner of sixteen years, Mrs. Honeyhume. While we agree on many subjects, alcohol is not one of them.

She believes alcohol is an important experience, one to be shared with friends, and I dislike nearly everything about it.

We discuss what we like/dislike about alcohol, our histories with it, and present our personal anecdotal evidence.


hpr3250 :: GIMP: Getting Started With Layers

Mastering the basic tools of Layers in GIMP


Hosted by Ahuka on 2021-01-15 is flagged as Clean and released under a CC-BY-SA license.
Tags: GIMP, images, photos, graphics, layers.
Listen in ogg, spx, or mp3 format. Series: GIMP | Comments (0)

Layers are the feature that does most of the heavy lifting in GIMP. After our previous introduction, we start to get hands-on with the controls that let us work with Layers


hpr3249 :: Linux Inlaws S01E21: The Big Linux Inlaws Peep Show

The two chaps go the full monty and reveal it all

Hosted by monochromec on 2021-01-14 is flagged as Explicit and released under a CC-BY-SA license.
Tags: Nudity, tracing, debugging, extended berkeley packet filter, weapons of math destruction.
Listen in ogg, spx, or mp3 format. Series: Linux Inlaws | Comments (1)


hpr3248 :: SARS-CoV-2 detection by PCR explanation

This episode summarizes the process to detect the virus that causes COVID-19 by PCR


Hosted by b-yeezi on 2021-01-13 is flagged as Clean and released under a CC-BY-SA license.
Tags: PCR,COVID019.
Listen in ogg, spx, or mp3 format. Series: Health and Healthcare | Comments (2)

Basic Process

  1. Sample Collection
  2. Sample Transportation
  3. Nucleic Acid extraction and Purification
  4. Amplification and Detection

hpr3247 :: Saturday Morning Automotive Routine

I have developed a relaxing 10-step routine for keeping your car in running condition.

Hosted by TrumpetJohn on 2021-01-12 is flagged as Clean and released under a CC-BY-SA license.
Tags: system,lifehack,automotive,routine maintenance.
Listen in ogg, spx, or mp3 format. Comments (1)

The top ten are:

  1. Gas
  2. Tires
  3. Battery
  4. Hoses/Belts
  5. Fluids
  6. External
  7. Review dates
  8. Schedule replacement parts
  9. Clean up
  10. Choose for car wash
  1. A treat!

Blog site: http://biblicaltrumpets.org


hpr3246 :: LXCast: freeing the Fairphone 3 (and many other phones)

We look at how to get a free smartphone operating system on the Fairphone 3 (and many other phones),

Hosted by 2BFrank on 2021-01-11 is flagged as Clean and released under a CC-BY-SA license.
Tags: LXCast, Smartphone, Android, Fairphone, FOSS.
Listen in ogg, spx, or mp3 format. Series: Podcast recommendations | Comments (1)

How to install it on the FP3

  • Install /e/ on FairPhone FP3 - FP3 | /e/ documentation

  • Privacy ratings of apps: https://exodus-privacy.eu

  • Alternative launchers:

    • KISS launcher
    • Simple launcher
  • I recommended you add these apps:

    • Antennapod - podcast client
    • FairEmail or simple email
    • Fennec (Firefox)
    • Signal
    • newpipe for watching youtube without being tracked
  • Backup via adb is apparently broken | Not the fault of /e/!!

  • You cannot simply flash a new recovery, such as TWRP, to flash images or backup, instead, you can use this method
    https://twrp.me/fairphone/fairphone3.html

  • Donate or become a member to keep the project going:
    https://e.foundation/donate-2/

Feel free to add any comments below!

Theme Music: Jazzhar, "Room with a View" CC-BY-SA, check him out on Jamendo and on Free Music Archive


Previous five weeks

hpr3245 :: ELECTRICITY hosted by operat0r

Released: 2021-01-08. Duration: 00:30:43. Flag: Explicit.
Tags: ELECTRICITY.
I talk about tips on ELECTRICITY

hpr3244 :: Interview with Anco Scholte ter Horst CEO of Freedom Internet hosted by Ken Fallon

Released: 2021-01-07. Duration: 01:10:23. Flag: Clean. Series: Interviews.
Tags: Freedom.nl,xs4all,ISP,crowdfunding.
Could there be an ISP that wants free and open internet, for privacy, security and quality ?

hpr3243 :: Pictor - free and open radio astronomy hosted by Andrew Conway

Released: 2021-01-06. Duration: 00:47:34. Flag: Clean.
Tags: science,astronomy,hardware,radio,data.
Discussion with the people that created the Pictor radio telescope.

hpr3242 :: The eternal battle over how to run your chromebook is about to begin hosted by Zen_Floater2

Released: 2021-01-05. Duration: 02:27:45. Flag: Explicit.
Tags: chromebooks,chromiumOS,Opensource,Freesoftware,cloud computing.
Squirrel VS ALIEN Chromebook discussions

hpr3241 :: HPR Community News for December 2020 hosted by HPR Volunteers

Released: 2021-01-04. Duration: 01:07:35. Flag: Explicit. Series: HPR Community News.
Tags: Community News.
HPR Volunteers Dave, ToeJet, and Ken talk about shows released and comments posted in December 2020

hpr3240 :: Linux Under Attack hosted by Ahuka

Released: 2021-01-01. Duration: 00:16:18. Flag: Clean. Series: Privacy and Security.
Tags: Linux, malware, ssh.
A look at how malware is now targeting Linux, especially servers

hpr3239 :: New Community Project Proposal hosted by Enigma

Released: 2020-12-31. Duration: 00:08:36. Flag: Explicit.
Tags: hpr, community_projects, ddp, binrev.
Enigma discusses a project proposal called Hacker exchange

hpr3238 :: Linux Inlaws S01E20: The Xmas and New Year Special hosted by monochromec

Released: 2020-12-30. Duration: 01:39:38. Flag: Explicit. Series: Linux Inlaws.
Tags: past, present, future, artificial intelligence, b-sides, ibm, microsoft, you fill in the rest.
An episode on the past, present and future not just on FOSS - all will be explained

hpr3237 :: Cloning a Hard Drive with Clonezilla hosted by Jon Kulp

Released: 2020-12-29. Duration: 00:17:37. Flag: Clean.
Tags: clonezilla, backups, hard drives, cloning.
I had some hard drive failures recently and am getting back to the habit of cloning for backups.

hpr3236 :: The State of Linux Audio Apps in 2020 hosted by Pat from TLLTS

Released: 2020-12-28. Duration: 00:51:41. Flag: Clean.
Tags: Audio, music, recording, DAW, Ardour, Jack, Pulse, ALSA, Hydrogen, Odin2, Qtractor, Carla, VST.
Patrick Davila and Claudio Miranda discuss the current state of Linux Audio Application in 2020

hpr3235 :: Soldering Tips hosted by operat0r

Released: 2020-12-25. Duration: 00:08:07. Flag: Explicit. Series: Hobby Electronics.
Tags: Solder,Soldering,Electronics.
What little I know about the topic you will learn

hpr3234 :: Apple products I have owned hosted by swift110

Released: 2020-12-24. Duration: 00:23:17. Flag: Clean.
Tags: apple, technology, Mac, OS X,iOS.
I talk about Apple products that I have owned over the years

hpr3233 :: HPR RPG Club reviews Shadowrun 5e hosted by klaatu

Released: 2020-12-23. Duration: 00:54:05. Flag: Clean. Series: Tabletop Gaming.
Tags: rpg,cyberpunk,HPR RPG Club.
Cyberpunk + Magic and a fistful of D6

hpr3232 :: Nextcloud hosted by klaatu

Released: 2020-12-22. Duration: 00:21:19. Flag: Clean. Series: Privacy and Security.
Tags: cloud,nextcloud,owncloud,server.
Nextcloud is easy. You should try it.

hpr3231 :: USB Key hosted by ToeJet

Released: 2020-12-21. Duration: 00:02:00. Flag: Clean. Series: Privacy and Security.
Tags: security, usb.
Turn a Thumb drive into a Key to lock/unlock your linux machine.

hpr3230 :: Introduction to Layers hosted by Ahuka

Released: 2020-12-18. Duration: 00:20:58. Flag: Clean. Series: GIMP.
Tags: GIMP, images, photos, graphics, layers.
Layers are the most important concept in using GIMP

hpr3229 :: Linux Inlaws S01E19: Redis hosted by monochromec

Released: 2020-12-17. Duration: 01:13:38. Flag: Explicit. Series: Linux Inlaws.
Tags: Redis, mermaids, communism, Israel.
Our two chaps interview Itamar Haber of Redis fame

hpr3228 :: YAML basics hosted by klaatu

Released: 2020-12-16. Duration: 00:33:47. Flag: Clean. Series: Programming 101.
Tags: yaml,data,parse,lint,json.
Learn about sequence and mapping in YAML

hpr3227 :: Fresh water Aquarium Basics hosted by Enigma

Released: 2020-12-15. Duration: 00:26:29. Flag: Explicit.
Tags: Aquariums.
Enigma discusses the high level basics of getting into the aquarium hobby

hpr3226 :: Using taskwarrior to structurize your work hosted by Jeroen Baten

Released: 2020-12-14. Duration: 00:16:10. Flag: Clean.
Tags: commandline,taskwarrior,timewarrior,todo-list.
How using taskwarrior can help you to structure your work

hpr3225 :: Grill repair hosted by operat0r

Released: 2020-12-11. Duration: 00:17:07. Flag: Explicit.
Tags: outdoor,outdoors,repair,home repair,grills.
I go over some grill tips/repair

hpr3224 :: Adventures in Retrocomputing with the Mac Plus hosted by Paul Quirk

Released: 2020-12-10. Duration: 00:24:39. Flag: Clean. Series: Mental Health.
Tags: Mac,Plus,Iomega,zip,drive,OS,7.5.5,6.0.8,retro,computing.
I talk more about my hobby with retrocomputing, and then Greensleeves.

hpr3223 :: My COVID year summary hosted by b-yeezi

Released: 2020-12-09. Duration: 00:18:10. Flag: Clean. Series: Health and Healthcare.
Tags: covid,healthcare,coronavirus,laboratory.
I summarize what I've been doing for the last year

hpr3222 :: Musings about writing a book about the Odoo software suite hosted by Jeroen Baten

Released: 2020-12-08. Duration: 00:26:56. Flag: Clean.
Tags: odoo, writing, book.
How I started writing again after 20 years and this time about the Odoo software

hpr3221 :: HPR Community News for November 2020 hosted by HPR Volunteers

Released: 2020-12-07. Duration: 00:49:08. Flag: Explicit. Series: HPR Community News.
Tags: Community News.
HPR Volunteers talk about shows released and comments posted in November 2020

hpr3220 :: PixelFed hosted by Ahuka

Released: 2020-12-04. Duration: 00:19:43. Flag: Clean. Series: Social Media.
Tags: social media, alternative, Fediverse, ActivityPub, PixelFed, photo sharing.
A look at a federated alternative to Instagram.

hpr3219 :: Linux Inlaws S01E18: Voice Recognition and Text to Speech hosted by monochromec

Released: 2020-12-03. Duration: 01:16:43. Flag: Explicit. Series: Linux Inlaws.
Tags: voice recognition, text to speech, wavenet, tacotron 2, DeepSpeech, Lyrebird.
How to place fake prank calls into podcasts and what does TTS have to do with this

hpr3218 :: An introduction to Darktable hosted by Paul Quirk

Released: 2020-12-02. Duration: 00:26:14. Flag: Clean.
Tags: darktable,RAW,photo,photography,editing.
A brief introduction to RAW photography, the Darktable application, and then sheep may safely graze

hpr3217 :: Sump Minion hosted by Brian in Ohio

Released: 2020-12-01. Duration: 00:18:26. Flag: Clean. Series: Hobby Electronics.
Tags: raspberry pi, slackware.
My first Internet of Things device, without using python

hpr3216 :: Buying a second home in France hosted by Jeroen Baten

Released: 2020-11-30. Duration: 00:15:52. Flag: Clean.
Tags: second-house,france.
Steps I have taken up to now for buying a second home in another country

hpr3215 :: Why I Gave Away a 3-D Printer hosted by Ahuka

Released: 2020-11-27. Duration: 00:07:22. Flag: Clean.
Tags: 3-D Printers, prosthetics.
I briefly had a 3-D printer and gave it away. This is why.

hpr3214 :: Rant about websites hosted by operat0r

Released: 2020-11-26. Duration: 00:31:20. Flag: Explicit.
Tags: internet,security,history,html.
I go over history of websites and the complex nature of security in complex websites

hpr3213 :: Electrical Safety hosted by Paul Quirk

Released: 2020-11-25. Duration: 00:30:35. Flag: Clean.
Tags: Electrical,safety,code,electricity,electrocution.
I discuss why and how I stay safe when working with electricity, with some ear candy at the end.

hpr3212 :: A Pi Model 3B as your daily driver? You must be joking. hosted by Beeza

Released: 2020-11-24. Duration: 00:12:35. Flag: Clean.
Tags: Raspberry Pi, Software Review.
Beeza's laptop is away being fixed. Can he manage for a few days using just his Raspberry Pi 3B?

hpr3211 :: Chainsaws hosted by operat0r

Released: 2020-11-23. Duration: 00:18:18. Flag: Explicit.
Tags: outdoors,outdoor,outside,mechanic,small engine repair,repair,home,home repair,chainsaws.
Info about chainsaws and what I know so far!

hpr3210 :: GIMP: Patterns and Gradients hosted by Ahuka

Released: 2020-11-20. Duration: 00:22:17. Flag: Clean. Series: GIMP.
Tags: GIMP, images, photos, graphics, patterns, gradients.
Patterns and Gradients are useful for drawing with more than just color.

hpr3209 :: Linux Inlaws S01E17: Nextcloud hosted by monochromec

Released: 2020-11-19. Duration: 01:09:49. Flag: Explicit. Series: Linux Inlaws.
Tags: Nextcloud, PHP, Golang, forking a company, technical debt.
Chat with Frank Karlitschek about Nextcloud and forking your company

hpr3208 :: The Paul Quirk show: Wacom with Pinebook, and thoughts on the DMCA takedown hosted by Paul Quirk

Released: 2020-11-18. Duration: 00:18:40. Flag: Clean.
Tags: Pinebook,Pro,Wacom,tablet,DMCA,takedown,Youtube,Canadian,Canada,Music.
I got a Wacom tablet to use with my Pinebook, and then share my thoughts on the recent DMCA takedown

hpr3207 :: Fireside chat with E Nigma hosted by Ken Fallon

Released: 2020-11-17. Duration: 01:03:19. Flag: Explicit.
Tags: HPR, TWAT, DDP, Infonomicon, Binrev, RFA.
Ken talks to the original HPR and Today with a Techie Admin.

hpr3206 :: Dungeons and Dragons for the blind hosted by klaatu

Released: 2020-11-16. Duration: 00:58:31. Flag: Clean. Series: Tabletop Gaming.
Tags: dnd,blind,inclusive,5e,tabletop,rpg.
I discuss some easy workarounds to make tabletop RPGs easy for both sighted and non-sighted players

Older Shows

Get a full list of all our shows.