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 9 years, 4 months, 27 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 12 days.

Latest Shows

hpr1717 :: Visualizing electricity

Trying to understand electricity.

Hosted by tcuc on 2015-03-03 and released under a CC-BY-SA license.
Listen in ogg, spx, or mp3 format. Comments (0)


  • Amps (what it's measured in)
  • amount of water. (what i compare it to)


  • voltage (what its measured in)
  • pressure (what i compare it to)


  • Ohms (what it's measured in)
  • valve (what i compare it to)

hpr1716 :: HPR Community News for February 2015

Dave and Ken host the Community News

Hosted by HPR Volunteers on 2015-03-02 and released under a CC-BY-SA license.
Listen in ogg, spx, or mp3 format. Series: HPR Community News | Comments (3)

New hosts

Welcome to our new hosts:
Kevie, swift110.

Last Month's Shows

Id Date Title Host
1696 2015-02-02 HPR Community News for January 2015 HPR Volunteers
1697 2015-02-03 FOSDEM 2015 Friday Night and Saturday Morning 1 of 5 Ken Fallon
1698 2015-02-04 FOSDEM 2015 Part 2 of 5 Ken Fallon
1699 2015-02-05 FOSDEM 2015 Part 3 of 5 Ken Fallon
1700 2015-02-06 Today with a Techie episode two thousand Ken Fallon
1701 2015-02-09 FOSDEM 2015 Part 4 of 5 Ken Fallon
1702 2015-02-10 FOSDEM 2015 Part 5 of 5 Ken Fallon
1703 2015-02-11 Open Source CD Rippers Kevie
1704 2015-02-12 Introducing Jeffrey Powers aka Geekazine daw
1705 2015-02-13 47 - LibreOffice Calc - Page Styles and Page Settings Ahuka
1706 2015-02-16 Cross-compilers part 1 Mike Ray
1707 2015-02-17 A tour round my desktop Beeza
1708 2015-02-18 GNU/Nano Editor JWP
1709 2015-02-19 Hacking Your Teeth MrX
1710 2015-02-20 Windows Remote Desktop on GNU/Linux Ken Fallon
1711 2015-02-23 Problems with video software in Linux swift110
1712 2015-02-24 What's in my Crate Mike Ray
1713 2015-02-25 Fosdem 2015: Surveillance vs. Free Software 2BFrank
1714 2015-02-26 Vim Hints 001 Dave Morriss
1715 2015-02-27 48 - LibreOffice Calc - Cell Styles Ahuka

Mailing List discussions

Policy decisions surrounding HPR are taken by the community as a whole. This discussion takes place on the Mail List which is open to all HPR listeners and contributors. The discussions are open and available on the Gmane archive.

The main threads this month were:

  1. From: Charles Thayer
    Date: 2015-02-01 03:59:07 UTC
    Subject: (squatter-occupied look-alike site): Domain Available?
    Messages: 3

  2. From: Patrick Dailey
    Date: 2015-02-04 22:04:43 -0500
    Subject: AudioBookClub
    Messages: 4

  3. From: Ivan Privaci
    Date: 2015-02-08 21:23:54 -0500
    Subject: I ain'tnt dead yet: quick question (well, a couple)
    Messages: 15

  4. From: Ivan Privaci
    Date: 2015-02-09 19:14:56 -0500
    Subject: "HPR Dodgers, in the 21th-and-a-half centuryyyyy....." (Future HPR features)
    Messages: 2

  5. From: Ken Fallon
    Date: 2015-02-11 13:34:35 +0100
    Subject: Wed 2015-04-01: hpr1738 Reserved: Open Systems Interconnection (OSI) model (ISO/IEC 7498-1).
    Messages: 1

  6. From: Ken Fallon
    Date: 2015-02-12 15:08:12 +0100
    Subject: Fwd: Cross-Promotional Opportunties
    Messages: 14

  7. From: "O'Brien, Kevin"
    Date: 2015-02-12 14:03:18 -0500
    Subject: Kudos for FOSDEM coverage
    Messages: 1

  8. From: lostnbronx
    Date: 2015-02-12 15:31:56 -0700
    Subject: Re: Cybrary Cross-Promotional Offer
    Messages: 1

  9. From: Ken Fallon
    Date: 2015-02-14 15:05:04 +0100
    Subject: hobbypublicradio.[com|net|org]
    Messages: 2

  10. From: Ivan Privaci
    Date: 2015-02-19 11:10:33 -0500
    Subject: Minor website bug report
    Messages: 1

  11. From: Mike Ray
    Date: 2015-02-19 21:09:49 UTC
    Subject: Topic request
    Messages: 7

  12. From: Dave Morriss
    Date: 2015-02-23 07:55:12 UTC
    Subject: HPR Community News - next Saturday on 2015-02-28T18:00:00Z
    Messages: 1

  13. From: Fifty OneFifty
    Date: 2015-02-25 01:58:02 -0600
    Subject: Is anyone else having trouble submitting shows?
    Messages: 10

  14. From: Joshua Knapp
    Date: 2015-02-26 09:03:38 -0800
    Subject: Added some firewall rules and IDS to the server
    Messages: 1

Total messages this month: 63

Comments this month

There are 17 comments:

  • hpr1522 (2014-06-03) "How to Use Docker and Linux Containers" by klaatu.
    1. Windigo on 2015-02-16:"Creating a bridge interface"

  • hpr1636 (2014-11-10) "How I make coffee" by Dave Morriss.
    1. 1093i3511 on 2015-02-19:"[no title]"
    2. Dave Morriss on 2015-02-20:"Rommelsbacher EKO 366/E"

  • hpr1683 (2015-01-14) "Theater of the Imagination: Part 06" by lostnbronx.
    1. Charles on 2015-02-27:"Patronage as an alternative to marketplaces?"

  • hpr1687 (2015-01-20) "Podcast recommendations" by Thaj Sara.
    1. Mark Waters on 2015-02-03:"Thanks"

  • hpr1699 (2015-02-05) "FOSDEM 2015 Part 3 of 5" by Ken Fallon.
    1. FiftyOneFifty on 2015-02-05:"Play dat funky music"
    2. Mike Ray on 2015-02-05:"Thanks for asking the right questions"

  • hpr1700 (2015-02-06) "Today with a Techie episode two thousand" by Ken Fallon.
    1. Mike Ray on 2015-02-06:"Such a parcel of rogues"
    2. FiftyOneFifty on 2015-02-06:"Thanks for the memories"
    3. Mikael on 2015-02-10:"Thank you, Ken"
    4. Epicanis on 2015-02-11:"Not what I was expecting..."
    5. JM on 2015-02-12:"great work!!"

  • hpr1702 (2015-02-10) "FOSDEM 2015 Part 5 of 5" by Ken Fallon.
    1. borgu on 2015-02-11:"reactos moar!"

  • hpr1703 (2015-02-11) "Open Source CD Rippers" by Kevie.
    1. Ken Fallon on 2015-02-13:"K3b"
    2. Charles on 2015-02-25:"[no title]"

  • hpr1707 (2015-02-17) "A tour round my desktop" by Beeza.
    1. Marshal Mellow on 2015-02-22:"Good job"

  • hpr1710 (2015-02-20) "Windows Remote Desktop on GNU/Linux" by Ken Fallon.
    1. johanv on 2015-02-26:"Nice!"

hpr1715 :: 48 - LibreOffice Calc - Cell Styles

How to use Cell Styles to control the appearance of your cells.

Hosted by Ahuka on 2015-02-27 and released under a CC-BY-SA license.
Listen in ogg, spx, or mp3 format. Series: LibreOffice | Comments (0)

Our next topic is Cell Styles. If you are already familiar with Styles from Writer, think of Cell Styles as the equivalent of Writers Paragraph Styles. Just as a single Writer document can have a variety of Paragraph Styles applied to different paragraphs (e.g. Headings, Lists, Paragraphs), a single spreadsheet can have multiple Cell Styles. And the same arguments for using Styles also apply. If you have consistently used Cell Styles in your spreadsheet, you can update the appearance easily just by changing the Style instead of needing to go through the file looking for every cell that needs to be adjusted. And by using Styles you can apply a large number of formatting choices to many cells with just a few mouse clicks. So it really does pay to learn how to use Cell Styles.

hpr1714 :: Vim Hints 001

Hints and Tips for Vim users - part 1

Hosted by Dave Morriss on 2015-02-26 and released under a CC-BY-SA license.
Listen in ogg, spx, or mp3 format. Comments (0)

Introduction to Vim

This is the start of the Vim Hints series.

As a Linux user there are many editors available to you. Which one you want to use depends on your needs and the amount of time you want to dedicate to learning how to use it.

One of the editors from the early days of Unix is vi, written in 1976. Contemporary with it is Emacs, also originating in 1976. However, it seemed to become the norm (in my experience anyway) that vi rather than Emacs was provided as standard with versions of Unix, and this has often continued into Linux.

I originally started using Unix around 1988 and found vi available to me. I learnt how to use it in a rudimentary way since I knew I'd find it on any Unix systems I came across.

Many derivatives and clones of vi have been created. The one which has become the most popular and available is Vim, the name of which is an acronym for Vi IMproved, created in 1991 by Bram Moolenaar. This is what I use, and I have not wanted to learn another editor since adopting it, even though I have experimented with several. This is the editor we will be looking at in this series.

What's the series about?

The thinking behind this series is:

  • You may already be using Vim; there are features you may not be aware of that can be revealed here
  • You may be using a different, simpler editor; you might want to use Vim and gain from its advanced features

Of course, you may prefer to learn Emacs instead. That's fine; you should choose the tool that best suits your needs. Both Emacs and Vim have quite steep learning curves, but the broad range of capabilities you gain from knowing either is considerable.

I am not an expert in Vim. In fact I am continuing to learn new Vim features on a regular basis. However, I have been using it for many years and would like to share some of what I have learnt.

Why use Vim?

With simpler editors you can move about a file, add, remove and change text and save the results. The editor might have syntax highlighting and some degree of knowledge of the programming language you are typing. You might have spell checking as well.

With Vim and other more advanced editors you have all of this and a lot more. You can perform global changes throughout a file, process many files at once, add plugins to the editor to change its behaviour, and so on. Also, there is a language behind the scenes which can be used to build extensions.

Using Vim

Usually, typing the command vi at the command line actually invokes vim. Vim runs in vi-compatible mode by default, which results in Vim enhancements being unavailable.

Vim uses a configuration file, which is called .vimrc on Linux. (Vim will also run on Windows, OSX and other operating systems but we will not be covering these implementations in this series.) Vim also has a GUI interface invoked by the command gvim, and it has its own configuration file .gvimrc.

I you don't have a .vimrc create one with touch ~/.vimrc before you start. This will stop Vim running in vi-compatible mode. We will look at what the .vimrc can be used to do later.

You can start Vim on its own without pointing at a file, but normally you use it to edit a file, which need not already exist. So, to create a new file called testfile invoke Vim with the command: vim testfile

Once running, Vim shows the contents of the file. All the lines on the screen where there is no content are marked with a tilde "~" character. If you are creating a file the first line on the screen will be blank, and last line will contain the name of the file followed by "[New File]" and some other details which we will examine later:

"testfile" [New File]       0,0-1         All

All the rest of the lines will contain a tilde.

Vim is a modal editor. The mode you usually start in is normal mode where you can move around the lines of the file and perform actions, but nothing you type is actually written to the file. In fact, the keys you type are actually editing commands. This is one of the features of Vim that causes problems for new users.

Since this is a new file there is not much you can do other than enter text, and to do this you need to switch to insert mode. Do this by pressing the i key. The message -- INSERT -- will appear on the bottom line of the screen. Now type some text, pressing the Enter key at the end of each line.

You might notice that in insert mode you can press the arrow keys and move back to text you have already typed. This is a Vim feature and was not available in the original vi editor.

When you have finished entering text, press the Esc key to exit from insert mode. Now you can move around in normal mode, but remember that the keys you press are now commands not data to be entered into the file.

To move around in normal mode use the arrow keys or the home row keyboard keys: k to move up, j to move down, h to move left and l to move right.

This brings us to the last mode we'll look at: command mode. To enter this mode press the : (colon) key in normal mode. This moves the cursor to the last line of the screen, which starts with the colon you just typed. Here you can enter another class of commands. This time, we'll just look at how you can save the file and exit Vim.

Saving the file is achieved with the w command, and to exit from Vim the q command is used. These can be typed together, so :wq writes the file and exits.

If you were to use :q on its own, having entered data into Vim, this would not work. Vim prevents you from throwing away your work this way. If you really meant to quit without saving then the q must be followed by an exclamation mark ("!"). So :q! lets you exit Vim without saving.

Summary so far

  • Vim usually starts in normal mode
  • Arrow keys or h, j, k and l for left, down, up and right for navigation in normal mode
  • i enters insert mode
  • Esc exits from insert mode and reverts to normal mode
  • : in normal mode enters command mode
  • :w in normal mode writes the file
  • :wq in normal mode writes and exits
  • :q in normal mode exits but only if nothing was changed or added
  • :q! in normal mode exits regardless of any changes


  • I was wrong about the contents of the last line of the Vim screen in the audio. The notes have been corrected.



Other resources

hpr1713 :: Fosdem 2015: Surveillance vs. Free Software

Interviews at the Free and Open Source devleopers meeting FOSDEM in Brussels.

Hosted by 2BFrank on 2015-02-25 and released under a CC-BY-SA license.
Listen in ogg, spx, or mp3 format. Series: Interviews | Comments (0)

Aaron Williamson

Free Software Law Expert Aaron Williamson held a brilliant talk on the history of internet surveillance in the USA at FOSDEM 2015. After the Paris terror attacks, many politicians want to increase surveillance. British Prime Minister David Cameron wants to read all our emails - even the encrypted ones. Is this the only answer to terror attacks? Aaron has a very strong opinion on this.

Mathias Kirschner, Free Software Foundation Europe

Matthias is the Vicepresident of the Free Software Foundation Europe. In our interview at Fosdem 2015, he explains the work and the goal of the foundation and how they do lobbying for Free Software in parliaments and government bodies.

Torproject - nos ognions

A member of, which is part of the Tor project, explains about exit nodes, transparency and surveillance.

hpr1712 :: What's in my Crate

What was in my crate when I went to a LUG to give a a11y presentation

Hosted by Mike Ray on 2015-02-24 and released under a CC-BY-SA license.
Listen in ogg, spx, or mp3 format. Comments (2)

Back in the summer of 2014 I started going to the Surrey Linux User Group.

I was asked to give a short presentation about Linux accessibility and how, although I am totally blind, I still write code and muck about with Linux.

I was then asked to give the same presentation at the Portsmouth LUG.

This time I made it more comprehensive and took more kit.

So I take this opportunity to give my version of the "What's in my bag" shows that some folks have been doing. As I am unemployed, like a lot of blind folks, I have been unable to justify this before now because I don't lug an interesting collection of stuff to and from work.

Here's a simple bullet list about the crate and it's contents:

  • The crate is a 35 litre capacity 'Really Useful Box'
  • First in were 2 Dell Latitude D630 (64-bit) laptops
  • Next in was a Dell Inspiron (32-bit) laptop, clunky and slow
  • The three laptops were sandwhiched between 3-ply layers of bubble-wrap
  • Next in was a Seika 40-cell refreshable Braille display
  • Next was a clear polycarbonate, zip-up pencil case stuffed with audio leads
  • Then a 'Mesh' Bluetooth and line-in external speaker
  • And a Braun external speaker/FM radio/micro-SD boom-box
  • A four-way mains power splitter
  • The three AC adaptors for the laptops
  • On the top of the box, because it was too wide to go in, was a USB keyboard
  • Mobile phone charging battery 'brick', for the Raspberry Pi
  • A Raspberry Pi, a Banana Pi and some Arduino bits and pieces

Here's what I demonstrated with two of the laptops:

  • Trisquel Linux and accessibility in the Gnome desktop with Orca
  • Accessibility in the console with Debian and the Braille display on the Inspiron

The second Latitude was with me so I could get some sighted help with BIOS settings.

My thanks have to go to Tony Wood for the lift to and from both of these accessibility presentations. I could not have done either, especially the Portsmouth one without his help.

Thanks also to Lisi, the coordinator of the Portsmouth LUG and to the folks of that LUG for their enthusiasm.

Here's the link to the HPR show about my Raspberry Pi tts code fix:

hpr1710 :: Windows Remote Desktop on GNU/Linux

A wrapper script for xfreerdp to make connecting to windows servers painless

Hosted by Ken Fallon on 2015-02-20 and released under a CC-BY-SA license.
Listen in ogg, spx, or mp3 format. Series: Bash Scripting | Comments (1)

Recorded using Easy Voice Recorder Pro

I wrote a bash script to connect to various different windows servers from my GNU/Linux desktops. I had a few different requirements:

  • I should be able to call it based on hostname.
  • All windows should be 90% smaller than my screen.
  • It should map my keyboard.
  • It should map my local disk.
  • It should quickly timeout if the port is not available.

You can get the full script here, but let’s walk through it:

The first line calls bash and then gets the server name from the symlink that is calling the script. The port is set as “3389”, but you can change that if you like.

SERVER=`basename $0`

The next few lines finds the smallest vertical and horizontal sizes, even if you are running multiple screens. Then it calculates 90% of that to use as the size.

h=$(echo "scale=0;(($(xrandr | grep '*+' | sed 's/x/ /g' | awk '{print $1}' | sort -n | head -1 )/100)*90)" | bc)
v=$(echo "scale=0;(($(xrandr | grep '*+' | sed 's/x/ /g' | awk '{print $2}' | sort -n | head -1 )/100)*90)" | bc)

Next we set the default username and password. I have it ask me for my password but I put it in here as an example.


In some cases the credentials may be different, so I have a case statement that will cycle through the servers and apply the differences. Depending on your naming schemes you may be able to use regular expressions here to filter out groups of servers.

case "${SERVER}" in
  *server*) echo "Server ${SERVER}"
  *colo*) echo "Server ${SERVER}"
  some_server ) echo "Server ${SERVER}"
  *) echo "No match for ${SERVER}, using defaults"

Next we use an inbuilt bash command to see if a remote port is open and timeout after one second.

timeout 1 bash -c "echo >/dev/tcp/${SERVER}/${PORT}"

I used to connect to rdp using the program rdesktop, but it is now of limited value due to the fact that there are many open bugs that are not getting fixed. Bugs such as Bug 1075697 - rdesktop cannot connect to systems using RDP version 6 or newer and Bug 1002978 - Failed to negotiate protocol, retrying with plain RDP . I then switch to using xfreerdp. This is the client that is behind remmina.

You can use xfreerdp /kbd-list to get a list of the available keyboard layouts.

if [ $? -eq 0 ]; then
  echo "${SERVER}:${PORT} is open"
  xfreerdp /v:${SERVER} /size:${SIZE} /kbd-type:0x00000409 /t:${SERVER} /d:${WORKGROUP} /u:${USERNAME} /p:${PASSWORD} /a:drive,pc,/ /cert-ignore &
  echo "${SERVER}:${PORT} is closed"

Next you will need to be sure that your host names are available, either in dns or in your /etc/hosts/ file. For example: server1 server2 server3 coloserver1 coloserver2 coloserver3 some_server

Edit the script to your liking and then put it into your a directory in your path, possibly /usr/local/bash or ~/bin/. You can then make symbolic links to the servers to the bash script, also in a directory in your path, using the command:

ln -s /usr/local/bash/rdp.bash ~/bin/some_server
chmod +x ~/bin/some_server

Which links the global rdp.bash script to your personal symlink, and makes it executable.

All that you need to do then is type the name of the server and a rdp screen should pop up.

In our example:

$ some_server

From there your Windows Server session should pop up.

hpr1709 :: Hacking Your Teeth

Advice on hacking your teeth

Hosted by MrX on 2015-02-19 and released under a CC-BY-SA license.
Listen in ogg, spx, or mp3 format. Comments (0)

This podcast details my experiences with dentists along with a smattering of free advice.

Link to the commonly known sunscreen song

Wikipedia article about gum disease

Wikipedia page on Interdental tooth brushes

Teeth with gum disease, notice that the gum doesn't form a sharp point between the teeth

Healthy gums, gum forms a sharp point between teeth.