Phone Losers Sensei Doug Gets Dishonored
Julian J. has completely dishonored Sensei Doug's entire family by being the sponsor of today's show. Listen to this show if you'd like to hear me to do the same joke repeatedly for 98 minutes straight.
June 10, 2016
Hacker Public Radio HPR2050: Developing Black & White Film
Intro to the film and the chemicals used
Mixing chemicals with water
Load developing tank with film
Live recording of the developing process itself.
June 09, 2016
Phone Losers Getting Myself Squared Away
Today's show is sponsored by High School Graduate and features tons of square dancing. You can't go wrong with a podcast about square dancing.
Hacker Public Radio HPR2049: My Raspberry Pi Home Server Knightwise talks about how he uses his Raspberry Pi to get things done, and keep his connection to the Internet secure and private when he's away from home. He also discusses a number of command line tools that he uses on the Pi which help to keep the workflow simple and clutter-free.
BYOBU
IRSSI
CenterIM
RTV
NewsBeuter
WordGrinder
mpsYT
Ranger
nmon
Transmission CLI
Tor
Hacker Public Radio HPR2048: The Hubot chat-bot Hubot
Intro
Hubot is a chat-bot written by the folks at GitHub. It is a node.js application written in CoffeeScript.
Hubot has a variety of adapters that allow it to connect to a variety of chat platforms. These range from IRC to Slack. So, the platform
you are interested in probably already has an adapter available for it.
Hubot uses individual CoffeeScript scripts to provide chat-bot functionality. There are a slew of existing scripts available in the npm. Just search for hubot-scripts.
You can also write your own in order to make sure that Hubot provides the functionality that you need.
Install
Hubot is available as an npm package. So, you will need to install node.js and npm on your system. I will leave this as an exercise for the listener.
I will however, throw out a tip for those of you using a Raspberry Pi for this. The node.js platform should be deployed on an ARM system using the armhf (ARM hard float) architecture. The nod
e.js stack needed to run Hubot will not properly install if you are using the armel (ARM soft float) architecture.
Once you have node.js and npm installed, you can install hubot and its dependencies with the following command.
npm install -g hubot yo generator-hubot coffee-script
You create your own instance of hubot by using yeoman generator. You need to do this as a non-root user. When you create your bot, you will give it a name and
specify the adapter to use. These can be specified as command line flags, or the generator will prompt you for this information.
Owner
Name
Description
Adapter
Interactive
yo hubot
Providing the answers
yo hubot --name mybot --description "My Helpful Robot" --adapter shell --defaults
Running
Once hubot is installed, you can run it with the following. I will use the shell adapter, which provides an interactive shell from which to trigger hubot scripts.
./bin/hubot --adapter shell
Our Hubot instance is now active and ready to receive commands. We will start with a simple ping command.
mybot> mybot ping
mybot> PONG
We can see the available commands by asking Hubot for help
mybot> mybot help
mybot adapter - Reply with the adapter
mybot animate me - The same thing as `image me`, except adds a few parameters to try to return an animated GIF instead.
mybot echo - Reply back with
mybot help - Displays all of the help commands that Hubot knows about.
mybot help - Displays all help commands that match .
mybot image me - The Original. Queries Google Images for and returns a random top result.
mybot map me - Returns a map view of the area returned by `query`.
mybot mustache me - Adds a mustache to the specified URL or query result.
mybot ping - Reply with pong
mybot pug bomb N - get N pugs
mybot pug me - Receive a pug
mybot the rules - Make sure hubot still knows the rules.
mybot time - Reply with current time
mybot translate me - Searches for a translation for the and then prints that bad boy out.
mybot translate me from into - Translates from into . Both and are optional
ship it - Display a motivation squirrel
We will try a couple more.
mybot> mybot echo "Hello world"
"Hello world"
mybot> mybot the rules
0. A robot may not harm humanity, or, by inaction, allow humanity to come to harm.
1. A robot may not injure a human being or, through inaction, allow a human being to come to harm.
2. A robot must obey any orders given to it by human beings, except where such orders would conflict with the First Law.
3. A robot must protect its own existence as long as such protection does not conflict with the First or Second Law.
Adding Scripts
npm scripts
npm install hubot-simpsons
Add hubot-simpsons to the array in the external-scripts.json file.
mybot> mybot simpsons quote
mybot> Disco Stu⦠likes disco.
Writing scripts
https://github.com/github/hubot/blob/master/docs/scripting.md
You can add your own custom scripts by adding them to the scripts directory. An examples.coffee script was included when Hubot was installed. It includes a variety of examples of things Hubot can do. I will illustrate by paring this down to a simple single script that responds to requests to open doors. Our simple script will open most doors, but will politely refuse to open the 'pod bay' doors.
The script uses the respond method on the robot module. This method takes a regex patten to respond to. It returns a result that contains a match array when the pattern has been detected. In our script we capture the group between 'onen the' and 'doors'. We then use this to determine which response to provide. The response is triggered with the robots reply method.
module.exports = (robot) ->
robot.respond /open the (.*) doors/i, (res) ->
doorType = res.match[1]
if doorType is "pod bay"
res.reply "I'm afraid I can't let you do that."
else
res.reply "Opening #{doorType} doors"
Restart Hubot by...
Now we can use our new, useful Hubot script.
mybot> mybot open the french doors
mybot> Shell: Opening french doors
mybot> mybot open the pod bay doors
mybot> Shell: I'm afraid I can't let you do that.
Aliases
A rose by any other name... If you would like your Hubot to respond to another name, you can assign your Hubot aliases to respond to. I really like this feature and I assign the '!' as my Hubot alias. This allows me to invoke Hubot with a single character.
mybot> ! open the pod bay doors
mybot> Shell: I'm afraid I can't let you do that.
Adapters
Obviously the shell adapter is not very useful aside from allowing us to play with or develop Hubot scripts. Hubot comes with several adapters that allow it to integrate with existing chat systems. These include: * IRC * XMPP * Campfire * HipChat * Slack * IRC * IRC
Conclusion
I hope this gives you a sense of what Hubot can do and how you can utilize it. Personally, I use Hubot in a variety of ways ranging from silly entertainment to useful communication tool. Using the eight-ball script, I can see if I will have a good day.
mybot> mybot eight-ball Will I have a good day?
mybot> Shell: Most certainly!
mybot> :-)
Using a modified version of of the sms script, I can send text messages to my family members who are not available online.
mybot> mybot sms trinity See you on the other side!
mybot> Shell: Sent sms to 3125550690
mybot> :-)
June 07, 2016
Phone Losers No Girls Allowed
Kelli S. is the sponsor of today's show, where we call up members of a Men's Club and present them with various wacky situations. This is the 2nd part of Friday's live show.
Hacker Public Radio HPR2047: Neo Fetch 1.5 I was reading Linux Voice I heard Dave Morriss talking about shows and made a sort one about Neofetch 1.5. Its a command that displays system information.
June 06, 2016
Hacker Public Radio HPR2046: HPR Community News for May 2016 New hosts
Welcome to our new hosts:
Bitbox,
njulian,
schism,
pope523,
Steve Saner,
matthew,
Lyle Lastinger.
Last Month's Shows
Id
Day
Date
Title
Host
2021
Mon
2016-05-02
HPR Community News for April 2016
HPR Volunteers
2022
Tue
2016-05-03
Whats in my bag
Bitbox
2023
Wed
2016-05-04
Setting up my Raspberry Pi 3
Dave Morriss
2024
Thu
2016-05-05
Remapping Keys with xmodmap
Jon Kulp
2025
Fri
2016-05-06
Using a Smarphone as a microphone
njulian
2026
Mon
2016-05-09
What's in my Bag... Again!
Christopher M. Hobbs
2027
Tue
2016-05-10
Old Engineers and New Engineers
Gabriel Evenfire
2028
Wed
2016-05-11
Some basic info on alarm systems
schism
2029
Thu
2016-05-12
The DSO138 Oscilloscope Kit
NYbill
2030
Fri
2016-05-13
Book Review: The Pocket Ref
m1rr0r5h4d35
2031
Mon
2016-05-16
A quick intro to OBD2 with Android
pope523
2032
Tue
2016-05-17
How I Came to Linux
Steve Saner
2033
Wed
2016-05-18
Distro Review: Bodhi Linux
m1rr0r5h4d35
2034
Thu
2016-05-19
Frank's Five Seed Bread
Frank Bell
2035
Fri
2016-05-20
Building Community
droops
2036
Mon
2016-05-23
Glasgow Podcrawl 2016
Dave Morriss
2037
Tue
2016-05-24
Alpha32's Pinhead Oats
Alpha32
2038
Wed
2016-05-25
Attempting to fix a plastic boat
Jezra
2039
Thu
2016-05-26
Blather Configuration Part 0: Initial Setup
Jon Kulp
2040
Fri
2016-05-27
Why I Use Linux
matthew
2041
Mon
2016-05-30
Router Antennas More = better ?
Lyle Lastinger
2042
Tue
2016-05-31
My podcast list
janedoc
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:
From: Ken Fallon <ken@...>
Date: 2016-04-05 20:20:08 +0200
Subject: Call for shows
Link: http://comments.gmane.org/gmane.network.syndication.podcast.hacker-public-radio/1160
Messages: 2
From: Ken Fallon <ken@...>
Date: 2016-05-07 17:17:26 +0200
Subject: HPR Policy Change - HTML default in RSS Feed
Link: http://comments.gmane.org/gmane.network.syndication.podcast.hacker-public-radio/1197
Messages: 24
From: Ken Fallon <ken@...>
Date: 2016-05-08 11:30:50 +0200
Subject: HPR On Goggle Play
Link: http://comments.gmane.org/gmane.network.syndication.podcast.hacker-public-radio/1205
Messages: 1
From: Mike Ray <mike@...>
Date: 2016-05-10 08:41:34 +0100
Subject: Libre Office Calc - closing the docked styles dialog with the keyboard
Link: http://comments.gmane.org/gmane.network.syndication.podcast.hacker-public-radio/1206
Messages: 4
From: Venant <venant@...>
Date: 2016-05-10 23:07:52 -0400
Subject: Re: Libre Office Calc - closing the docked styles dialog with the keyboard
Link: http://comments.gmane.org/gmane.network.syndication.podcast.hacker-public-radio/1217
Messages: 2
From: Ken Fallon <ken@...>
Date: 2016-05-24 14:20:42 +0200
Subject: HPR Short listed for the The People's Choice Podcast Awards
Link: http://comments.gmane.org/gmane.network.syndication.podcast.hacker-public-radio/1228
Messages: 6
From: Ken Fallon <ken@...>
Date: 2016-05-25 15:56:03 +0200
Subject: Fwd: Ohio LinuxFest 2016 Call for Presentations
Link: http://comments.gmane.org/gmane.network.syndication.podcast.hacker-public-radio/1232
Messages: 1
From: Ken Fallon <ken@...>
Date: 2016-05-28 09:35:37 +0200
Subject: Site Changes to fix Navigation
Link: http://comments.gmane.org/gmane.network.syndication.podcast.hacker-public-radio/1235
Messages: 1
From: Dave Morriss <perloid@...>
Date: 2016-05-30 09:48:04 +0100
Subject: HPR Community News - next Saturday on 2016-06-04T18:00:00Z
Link: http://comments.gmane.org/gmane.network.syndication.podcast.hacker-public-radio/1238
Messages: 1
Total messages this month: 42
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 57 comments:
hpr1580
(2014-08-22) "The FAT and NTFS File Systems"
by JWP.
Comment 1:
Ramiro on 2016-05-05:
"FAT, FAT32" Comment 2:
Dave Morriss on 2016-05-06:
"Title change" Comment 3:
Ken Fallon on 2016-05-08:
"Done"
hpr1967
(2016-02-16) "How I saw the Linux Light at the end of the Windows tunnel"
by Nacho Jordi.
Comment 1:
Windigo on 2016-05-15:"[no title]"
hpr1976
(2016-02-29) "Introduction to sed - part 1"
by Dave Morriss.
Comment 3:
Frank on 2016-05-26:"[no title]" Comment 4:
Dave Morriss on 2016-05-26:
"Good luck with regex"
hpr2007
(2016-04-12) "My new laptop"
by Dave Morriss.
Comment 4:
Dave Morriss on 2016-05-02:
"Thanks"
hpr2008
(2016-04-13) "HPR needs shows to survive."
by Ken Fallon.
Comment 4:
Frank on 2016-05-01:
"I don't quite get it" Comment 5:
Ken Fallon on 2016-05-02:
"Because it was"
hpr2009
(2016-04-14) "Understanding the GNU/Screen Hardstatus line"
by Curtis Adkins (CPrompt^).
Comment 2:
Eric Suess on 2016-05-03:
"Thank you."
hpr2010
(2016-04-15) "Parsing JSON with Python"
by klaatu.
Comment 3:
rstackhouse on 2016-05-24:"[no title]"
hpr2015
(2016-04-22) "Linux in the Church"
by Joe.
Comment 3:
Todd on 2016-05-11:
"Great show!"
hpr2016
(2016-04-25) "Echoprint"
by laindir.
Comment 2:
laindir on 2016-05-23:
"Late"
hpr2019
(2016-04-28) "a pi project and an owncloud project"
by Matt McGraw (g33kdad).
Comment 3:
Matt (g33kdad) on 2016-05-07:
"Thanks, John"
hpr2020
(2016-04-29) "Automotive Billing"
by brian.
Comment 2:
Jon Kulp on 2016-04-30:
"Awesome! " Comment 3:
JimZat on 2016-05-02:
"Honest Auto Mechanics" Comment 4:
mysterio2 on 2016-05-05:"[no title]" Comment 5:
Todd on 2016-05-25:"[no title]"
hpr2021
(2016-05-02) "HPR Community News for April 2016"
by HPR Volunteers.
Comment 1:
Matt (g33kdad) on 2016-05-09:
"Thanks!" Comment 2:
Dave Morriss on 2016-05-11:
"Great!"
hpr2022
(2016-05-03) "Whats in my bag"
by Bitbox.
Comment 1:
Jon Kulp on 2016-05-03:
"What's in your cab?" Comment 2:
JWP on 2016-05-04:
"Great Podcast" Comment 3:
Christopher M. Hobbs on 2016-05-07:
"Tell us about truckin'!"
hpr2023
(2016-05-04) "Setting up my Raspberry Pi 3"
by Dave Morriss.
Comment 1:
Mike Ray on 2016-05-04:
"Pi3 in a Metal Box" Comment 2:
JWP on 2016-05-04:
"GNU Nano Editor" Comment 3:
Dave Morriss on 2016-05-04:
"Faraday cage, Pibow and Nano" Comment 4:
Mike Ray on 2016-05-07:
"Metal boxes and Emacs" Comment 5:
Beeza on 2016-05-16:
"Alternative Pi Server Setup" Comment 6:
Dave Morriss on 2016-05-16:
"SSHFS; SSD"
hpr2024
(2016-05-05) "Remapping Keys with xmodmap"
by Jon Kulp.
Comment 1:
b-yeezi on 2016-05-05:
"Interesting approach" Comment 2:
Dave Morriss on 2016-05-30:
"Nice idea"
hpr2027
(2016-05-10) "Old Engineers and New Engineers"
by Gabriel Evenfire.
Comment 1:
Steve Saner on 2016-05-10:"[no title]" Comment 2:
Gabriel Evenfire on 2016-05-13:
"Glad you liked it" Comment 3:
Dave Morriss on 2016-05-30:
"A most interesting show"
hpr2028
(2016-05-11) "Some basic info on alarm systems"
by schism.
Comment 1:
Frank on 2016-05-13:"[no title]" Comment 2:
Bill on 2016-05-23:"[no title]" Comment 3:
Frank on 2016-05-24:"[no title]" Comment 4:
Todd on 2016-05-25:"[no title]" Comment 5:
Dave Morriss on 2016-05-30:
"Interesting subject"
hpr2029
(2016-05-12) "The DSO138 Oscilloscope Kit"
by NYbill.
Comment 1:
Dave Morriss on 2016-05-30:
"Was tempted to get one"
hpr2030
(2016-05-13) "Book Review: The Pocket Ref"
by m1rr0r5h4d35.
Comment 1:
Frank on 2016-05-13:"[no title]"
hpr2032
(2016-05-17) "How I Came to Linux"
by Steve Saner.
Comment 1:
Peri Saner on 2016-05-17:
"Wife" Comment 2:
Jonathan Kulp on 2016-05-17:
"Bring on the rockets" Comment 3:
NYbill on 2016-05-18:
"The old gray beards in the basement." Comment 4:
Dave Morriss on 2016-05-30:
"Really enjoyed this"
hpr2034
(2016-05-19) "Frank's Five Seed Bread"
by Frank Bell.
Comment 1:
Frank on 2016-05-18:"[no title]" Comment 2:
Frank on 2016-05-20:"[no title]" Comment 3:
Dave Morriss on 2016-05-30:
"Must try this, or a modification thereof"
hpr2035
(2016-05-20) "Building Community"
by droops.
Comment 1:
Tony Hughes on 2016-05-20:
"building community" Comment 2:
droops on 2016-05-20:
"Tech Podcasts" Comment 3:
Dave Morriss on 2016-05-20:
"Show tags" Comment 4:
Tony Hughes on 2016-05-20:
"Building Comunity" Comment 5:
amunizp on 2016-05-22:
"app"
hpr2037
(2016-05-24) "Alpha32's Pinhead Oats"
by Alpha32.
Comment 1:
Dave Morriss on 2016-05-26:
"Cooking! Yay!"
hpr2038
(2016-05-25) "Attempting to fix a plastic boat"
by Jezra.
Comment 1:
Jon Kulp on 2016-05-24:
"Hilarious" Comment 2:
Dennis New on 2016-05-27:
"Hilarious Indeed" Comment 3:
FiftyOneFifty on 2016-05-28:
"Good Times"
June 03, 2016
Phone Losers Bob Murphy
Stan Trucker is the person you should blame for today's show, filled with calls to dog park members, pizza customers and a few more bridge calls. Stan apologizes in advance for this show, but assures you that better things will happen later this week.
Hacker Public Radio HPR2045: Some other Bash tips Some other Bash tips
Expansion
As we saw in the last episode 1951 (and others in this sub-series) there are eight types of expansion applied to the command line in the following order:
Brace expansion (we looked at this subject in episode 1884)
Tilde expansion (seen in episode 1903)
Parameter and variable expansion (this was covered in episode 1648)
Command substitution (seen in episode 1903)
Arithmetic expansion (seen in episode 1951)
Process substitution
Word splitting
Pathname expansion
We will look at process substitution and word splitting in this episode but since there is a lot to cover in these subjects, we'll save pathname expansion for the next episode.
I have written out a moderately long set of notes about this subject and these are available here http://hackerpublicradio.org/eps/hpr2045/full_shownotes.html.
Links
HPR episode 1648 "Bash parameter manipulation": http://hackerpublicradio.org/eps.php?id=1648
HPR episode 1843 "Some Bash tips": http://hackerpublicradio.org/eps.php?id=1843
HPR episode 1884 "Some more Bash tips": http://hackerpublicradio.org/eps.php?id=1884
HPR episode 1903 "Some further Bash tips": http://hackerpublicradio.org/eps.php?id=1903
HPR episode 1951 "Some additional Bash tips": http://hackerpublicradio.org/eps.php?id=1951
"Introduction to sed" series on HPR:
Part 1: http://hackerpublicradio.org/eps.php?id=1976
Part 2: http://hackerpublicradio.org/eps.php?id=1986
Part 3: http://hackerpublicradio.org/eps.php?id=1997
Part 4: http://hackerpublicradio.org/eps.php?id=2011
Wikipedia article on the "Named pipe": https://en.wikipedia.org/wiki/Named_pipe
Wikipedia article on the "IFS" variable: https://en.wikipedia.org/wiki/Internal_field_separator
Advanced Bash-Scripting Guide: Section 9.1 Bash Internal Variables (including IFS): http://www.tldp.org/LDP/abs/html/internalvariables.html
June 02, 2016
Hacker Public Radio HPR2044: Bring on the Power! It this episode NYbill talks about power supplies used for electronics work.
Picture for the episode:
http://media.gunmonkeynet.net/u/nybill/m/my-two-power-supplies/
June 01, 2016
Phone Losers Who's A Good Boy?
Honey Baby is the responsible party for today's atrocities against dog parks and dog owners. Honey Baby is the person whose ears perk up when we excitedly ask WHO'S A GOOD BOY?? Honey Baby is the sponsor of today's show, where we call a bunch of people from a dog park member list. Yes, apparently there are dog parks with member lists.
Hacker Public Radio HPR2043: My First Beer Podcast Hey. It's MeToo here again. On this episode, were diverging from my last podcast of coffee and switching topics to, wait for it. Wait for it. BEER.
Now, you might think to yourself, "What the heck! Beer?" I know. I know. It's so plebeian, right?
Well. I too, use to think like that. What with the shades of Budweiser, Michelob, Iron Horse, Iroquois, Genesee, etc... All squaw piss. Right?
I was raised on wines & cocktails. But, over recent years, especially after listening to many of you guys' podcast on beer-making and drinking, I became interested in wanting to try some of these artisan beers you all have spoken of. But, being overseas in a foreign country, my chances of such are like a snowball's chance in hell. Or so I thought.
Then came one night when I was on my way to teach a class at one of the local universities, and passed by a newly opened bar with the humorous name of "Nobody Knows Bar." Where, when I glanced in the window and to my amazement, were many of the very beers you all had been talking so much about. Wow! Here was my chance to partake. So, I went to class and afterwards stopped in to the bar.
So, I tried a beer. It just happened to be an IPA. Now, don't get me wrong. Many, many years ago I had tried an IPA and found it far from my liking. So, my first choice wouldn't have been an IPA normally. Again you ask, "Why did you choose an IPA this time?" Well, the reason was bartender recommended it.
And again to my amazement (to coin a phrase), it was great. I guess the reason for enjoying it over before is that, as like everyone, my taste buds had changed. And truthfully speaking, I've come to like IPAs over many others.
So, to no longer digress. Let me tell you what I chose and my opinions on the beer.
The beer? A 12oz. 8.2% Alc. by vol., glass bottled Lagunitas Brewery's Lagunitas Unlimited Release Maximus IPA Maximus Ale. I love the labeling. It reads: "Life is uncertain. Don't dip." Also, "If some is good, more is better." And one final one, "Instant gratification isn't fast enough." What a lark!
Enough diddle dallying. On to the tasting: The nose on this beer is crisp and light. The first mouthing brings a floral, fruity semi-sweet taste. The fruitiness continues into the aftertaste with an added semi-dryness. And yet, despite the alcohol content, doesn't ring your clock. The longer after flavor is strongest on the underside of the back of the tongue. Very pleasant.
So. There you have it. My first beer tasting. I hope you found it telling. And maybe you too will try a bottle. I highly recommend it. I will continue these tasting over the course of time. Now don't get me wrong. I'm no sot. And I still like my coffees, but I have now found a new "like" and it's artisan beers.
Until next time. This is MeToo signing out and wishing you happy trails and happy beers.
May 31, 2016
Hacker Public Radio HPR2042: My podcast list
Wait Wait Don't Tell Me
The Pi Podcast
NPR Politics Podcast
Common Sense with Dan Carlin
dan Carlin's Hardcore History
Linux Luddites
HPR
Geekspeak
Car Talk
AOPA Live
The Linux Link Tech Show
Frank Delaney's Re:Joyce
Phone Losers Heartless Condo Owners
In today's show you'll hear shocking revelations, caused by our sponsor FOD87, where you'll find out that all condo owners are racist and heartless and don't have a problem with children eating soup made from their own tears.
Hacker Public Radio HPR2040: Why I Use Linux My first objective in making this show is to actually record a show, which is something I've never done.
My second objective was to say something interesting about why I use Linux, how I found it and why I think I keep using it.
I found Linux by word of mouth. It was a bit of a hassle to use back then and I wouldn't have stuck with it if the system didn't meet my needs better than everything else that was available to me. Cost was very important at first, but as time has gone by, it's been the tools and the usability of the system that have made me stay with it.
Despite their differences, Apple and Microsoft both try hard to be big, to have lots of users (buyers). They try to be everything to everyone. I think that happens with some Linux distributions too, but Linux is not one thing in the way that Windows is one thing. This means that at least some distributions can be less focused on keeping up with the latest, flashiest things. Linux just works for what I need it to do. I miss it when I'm not using it.
Most of the work I do besides household bookkeeping is programming for the web. The tools I use most often are: Vim, git, grep, Filezilla, the LAMP stack, Meteor, Firefox, Chromium. Many of these tools are afterthoughts in other systems, whereas they seem like native inhabitants in a Linux distribution.
May 26, 2016
Hacker Public Radio HPR2039: Blather Configuration Part 0: Initial Setup In this episode I walk you through the process of getting the Blather GNU/Linux speech recognition program running for the first time.
Arch: On Arch Linux this is really easy. Jezra made a package build for the AUR so you can just install it that way.
Debian: I wrote an installation script for Debian-based systems that installs the dependencies to build pocketsphinx, plus a few extra packages that I use continually when I'm running blather (xvkbd, xdotool, espeak, wmctrl, elinks, xclip, curl). It builds/installs the Sphinx stuff, pulls the blather source code, and puts some configuration files and a startup script in place for you. This should take care of pretty much all of the heavy lifting.
I refer frequently to Jezra's usage notes on the Blather source code page at gitlab, so if you're trying to install this as I talk, you might want to follow along over there.
The trickiest bit in the initial run is the creation and placement of the language files. I normally use a bash script for this, but on this first episode of the series I'm going to use the web-based lmtool to create the language files, just the way Jezra says to do on his usage page. He also includes my automated language updater script in the blather source code, though, so going forward I will be talking about how to use that script instead of the web-based tool.
Blather Launch Script
I use a bash script to launch Blather because I want to set several environmental variables: location of the pocketsphinx gstreamer libraries, default browser, default text-to-speech engine, and so forth. Having these environmental variables set means that I can use easy-to-remember shortcuts in my blather commands config file. Here is my launch script:
#!/bin/bash
# tell it where the Gstreamer libraries are
export GST_PLUGIN_PATH=/usr/local/lib/gstreamer-0.10
# set some shortcuts to use in the commands file
#export VOICE="/usr/bin/festival --tts"
export VOICE="/usr/bin/espeak"
export CONFIGDIR="/home/$(whoami)/.config/blather"
export KEYPRESS="xvkbd -xsendevent -secure -text"
export BROWSER="chromium-browser"
# add blather script directory to the user's PATH
export PATH="$HOME/bin:/home/$(whoami)/.config/blather/scripts:$PATH"
# start blather in continuous mode with the GTK GUI
# and a history of 20 recent commands
python2 /home/$(whoami)/code/blather/Blather.py -c -i g -H 20
Links
Blather source code
Blather Installation Script for Debian
Jezra's website
Sphinx Speech Recognition Library
Sphinx knowledge base tool
Learn about the $2 Microphone that I use for blather: HPR Episode 1812
Credits
Music bumpers are from Kimiko Ishizaka's The Open Goldberg Variations: http://www.opengoldbergvariations.org/, used by permission of their CC0 1.0 Universal (CC0 1.0) Public Domain Dedication license.
Phone Losers Bridge Club Shenanigans
Here's a live show, sponsored by Stalin Without The Charm, where we call members of a bridge club in an attempt to pay off our loan shark.