Index :: FAQ :: Contact

Featured Media: Basenet Radio

The show has been dormant for some time (years) but its back.

Latest HackerMedia:

June 29, 2015

Hacker Public Radio
HPR1801: How to tell your left earbud from your right
AMAZING LIFE HACK Tie a knot in your left ear bud lead, and you can feel which is which without looking.

June 26, 2015

Hacker Public Radio
HPR1800: YouTube Video Subscriptions
Although my wife and I have a Cable TV subscription, I have maintained I could give it up easily because so much of what I am interested in is online anyway. For many people that might mean Netflix or Hulu, but for me it means YouTube. This is the golden age of narrow-casting, as opposed to broadcasting, because YouTube gives so many creators the opportunity to find their own audience for things that dont appeal to the masses. For more go to http://www.palain.com/?p=243 Links: https://www.patreon.com/ http://vidcon.com/ http://en.wikipedia.org/wiki/Crash_Course_%28YouTube%29 http://en.wikipedia.org/wiki/SciShow http://www.palain.com/?p=243

June 25, 2015

Phone Losers
Say No To The Sidewalk
Neonlikebjork from Neon Nites sponsors my harassment of old people in this show where I call people whove signed a petition to keep their city looking like Hobo Central.

Hacker Public Radio
HPR1799: Posting From the Command Line on Open Social Networks
Posting From the Command Line on Open Social Networks You can post to your open social media timelines from the command line using API access. Why would you want to do this? Script automated postings. Bots Post from terminal environments. Post from wherever else you are without having to go to the social media site or to the client that you use to access it. Trigger postings via voice command (what I do). On GNU Social Here is the basic format for the command to post a message to a Statusnet / GNU Social timeline: curl -s --basic --user --data status="Hello World" --output /dev/null http://instance.domain.com/api/statuses/update.xml And here is the script I use to post a message to my timeline, launched by a blather voice command: #!/bin/bash # SN account info user=johndoe pass='password123' # a place to store the text message text=/tmp/message.txt # Virtual keystrokes to copy selected text to the clipboard xdotool key Control+c # pipe text out of clipboard into the text file xclip -o > $text # rest for half a sec sleep .5 curl -s --basic --user $user:$pass --data status="$(cat "$text")" --output /dev/null http://instance.domain.com/api/statuses/update.xml rm $text exit 0 On Pump.io On pump.io you have to install the pump.io software on your computer. You don't have to be running a server, you just have to have the binaries so that you can run the commands. I will not go into how this is done on this podcast, but there's a link to the pump.io website below and there should be installation instructions available there. Once you have the software installed, you also have to allow command-line access to your account and get the token for authentication, maybe authorize the user too: pump-register-app -s instance.domain.com -P 443 -t CLI pump-authorize -s instance.domain.com -P 443 -u username Finally you can post to your timeline from the command line: pump-post-note -s instance.domain.com -P 443 -p -u username -n "Hello World." My script to post a message to the pump.io timeline, launched by a blather voice command: #!/bin/bash # a place to put the text. text=/tmp/message.txt # -------------------------------- # Since markdown is possible, I run # the text through markdown to get # a bit of formatting and save it # as a separate file # -------------------------------- pump=/tmp/pump.txt # Virtual keystrokes to copy selected text to the clipboard xdotool key Control+c # pipe text out of clipboard into the text file xclip -o > $text # run Markdown markdown $text > $pump # Post message pump-post-note -s instance.domain.com -P 443 -p -u username -n "$(cat $pump)" sleep 1 rm $text rm $pump exit 0 Links GNU social: https://gnu.io/ https://identi.ca/ (a pump.io network) pump.io Clients: https://github.com/e14n/pump.io/wiki/Clients My Screencast demonstrating the use of blather voice command to post to a timeline https://youtu.be/IJyzF_-6S2o

Off the Hook
Off The Hook - Jun 24, 2015


June 24, 2015

The Linux Link Tech Show
The Linux Link Tech Show Episode 613
scalr, python, ruby, hadoop, aws

Hacker Public Radio
HPR1798: Machine learning and service robots.
Link to the videos of the crawling robots: http://iki.hs-weingarten.de/?lang=eng&page=p_crawler Link to the general Ravensburg-Weingarten University of Applied Sciences page, where you can also find videos of the service robots "Kate" and "Marvin": http://iki.hs-weingarten.de/?lang=eng&page=aktuelles

June 23, 2015

Hacker Public Radio
HPR1797: An Interview with Aaron Wolf of the Snowdrift Co-op Project
An Interview with Aaron Wolf of the Snowdrift Co-op project by David Whitman during LinuxFest Northwest 2015 Aaron Wolf http://blog.wolftune.com/ Snowdrift: https://snowdrift.coop About: We're building a sustainable funding platform for freely-licensed works. Our innovative matching pledge creates a network effect where we all work together to support these public goods. Introducing Snowdrift.coop Our matching patronage system allows everyone to support FLO projects with minimal risk and maximum impact. Unlike the one-to-one matching used in traditional fundraising, we use a many-to-many matching pledge that creates a network effect (like the internet itself) so that we all reinforce one another. Unlike one-time fundraising campaigns that help projects get started, Snowdrift.coop pays out monthly to provide sustainability for ongoing work. Before the times of modern market capitalism, creative workers were supported by wealthy patrons. With Snowdrift.coop, the global community becomes the patron. Instead of businesses deciding the options that we then merely choose from as consumers, we will support and actively work with projects that best serve the interests of the public. Snowdrift wiki: https://snowdrift.coop/p/snowdrift/w IRC at: freenode.net at #snowdrift

June 22, 2015

Phone Losers
More Curling Club Calls
Ethan K. is the sponsor of today's show which is nothing but 45 minutes of curling club member calls. Thanks for the curling club list, Mistress Morgan.

Hacker Public Radio
HPR1796: Audacity - Chains, Notches and Labels
I expand some on Jon Culp's show on using Labels in Audacity. Specifically, I comment on importing a Label track from a Tab separated text file. I go on to talk about using Notch filters, a Nyquist-effect plugin for Audacity. Notch filters work extremely well on certain frequency centered noise like mains hum. I follow up by talking aboutchains. A way of doing batch operations directly in Audacity. Links http://wiki.audacityteam.org/wiki/Nyquist_Effect_Plug-ins#Notch_Filter http://manual.audacityteam.org/o/man/chains_for_batch_processing_and_effects_automation.html

June 19, 2015

Phone Losers
Quad Copters and Job Applicants
Jeremy Albright is the sponsor of today's attempt to discourage people from even bother trying to apply for jobs.

Hacker Public Radio
HPR1795: 54 - LibreOffice Impress - Templates and Master Pages
The terms Template and Master Pages refer to the same thing, but inside the Impress application they are referred to as Master Pages, and they are accessed on the right-hand side of the page. If you as the author do not choose a specific Template to use when creating a new presentation, Impress will base the presentation on the default Template that is built in to Impress. But you can create your own default Template if you like. For more go to http://www.ahuka.com/?page_id=1188 Links http://www.ahuka.com/?page_id=1188

June 18, 2015

Hacker Public Radio
HPR1794: 12-Tone Music and My Random 12 Tone Row of the Day
12-Tone Music (Dodecaphony) and My Random 12 Tone Row of the Day In this episode I cover a bit of music theory as well as some bash scripting. The topic is the Twelve-Tone System of music composition and the scripting of a random 12-tone row to be generated daily. For a full transcript of the show click here. Links Twelve-tone technique Arnold Schoenberg Alban Berg Anton Webern Second Viennese School 12-Tone Matrix Calculator Jon's Random 12-Tone Row of the Day Lilypond Music Notation Software

June 17, 2015

The Linux Link Tech Show
The Linux Link Tech Show Episode 612
scalr, python, ruby, hadoop, redis, lastpass, automation

Hacker Public Radio
HPR1793: Some thoughts about the Go language
Show_Notes: Here are some useful links when learning Go: http://tour.golang.org/welcome/1 http://golang.org/doc/code.html http://golang.org/doc/effective_go.html https://gobyexample.com/ http://learnxinyminutes.com/docs/go/ http://golang.org/ref/spec http://golang.org/ref/spec http://golang.org/pkg/ http://godoc.org/ And here are some links to things I mentioned during the show: https://en.wikipedia.org/wiki/Mebibyte https://en.wikipedia.org/wiki/Heartbleed https://en.wikipedia.org/wiki/C_%28programming_language%29 https://en.wikipedia.org/wiki/Python_%28programming_language%29

June 16, 2015

Phone Losers
Curling and Goodwill Auctions
Servo is the sponsor of today's show, where we call Goodwill auction bidders and a few of Mistress Morgan's curling club members.

Hacker Public Radio
HPR1792: An Interview with Andrea Frost
I interview Andrea Frost at LinuxFest Northwest. Andrea Frost Andrea Frost holds a B.A. in German language and a concentration in mathematics from Western Washington University. A passionate advocate of youth and education, Frost has a wide spectrum of volunteer experience with youth organizations. She is currently an office assistant for Kids Council Northwest and finishing a post-graduate degree in computer science from Western. http://awc.cs.wwu.edu/ Western Washington University Association for Women in Computing http://www.bellinghamherald.com/2015/02/17/4137824_women-to-discuss-challenges-highlights.html?rh=1

June 15, 2015

Hacker Public Radio
HPR1791: Organizing Photos with Bash
Summary In this episode I provide an overview of how I use bash to automate my process for orgainizing photographs on my computer. There are two main objectives of this script: Organize photographs in a folder structure that makes sense to me, e.g. 2015/2015-05-22 Allow me to back up my photographs using a variety of methods. Download the Script This script is hosted on Github and you can download the latest version using following command: git clone https://gist.github.com/81e489b2a7397bb17305.git Script #!/bin/bash shopt -s -o nounset # Create variables and configure script. declare -rx SCRIPT=${0##*/} declare TMPDIR=/tmp/photos declare -r CURRENTDIR=`pwd` declare FILES=$TMPDIR/* declare DESTINATION=/media/Tyr/Pictures/Photos declare -r GOOGLEUSER="tnyplz@gmail.com" declare -r OPTSTRING="-h, -d:" declare -r LONGOPTSTRING="help, destination-directory, no-google-backup, sd-card, tmp-dir, no-delete, backup" declare RESULT declare GOOGLE_BACKUP=true declare SD=false declare SDDIR declare NODELETE=false declare S3=false # Executable dependencies declare -rx find="/usr/bin/find" declare -rx gphoto2="/usr/bin/gphoto2" declare -rx google="/usr/bin/google" declare -rx dcraw="/usr/bin/dcraw" declare -rx rsync="/usr/bin/rsync" declare -rx rename="/usr/bin/rename" declare -rx tar="/usr/bin/tar" declare -rx s3cmd="/usr/bin/s3cmd" # Sanity Checks if test -z $BASH; then printf "$SCRIPT:$LINENO: please run this script with the BASH shelln" >&2 exit 192 fi # check for find if test ! -x $find; then printf "$SCRIPT:$LINENO: the $find command is not available -- abortingn" >&2 exit 192 fi # check for gphoto2 if test ! -x $gphoto2; then printf "$SCRIPT:$LINENO: the $gphoto2 command is not available -- abortingn" >&2 exit 192 fi # check for google if test ! -x $google; then printf "$SCRIPT:$LINENO: the $google command is not available -- abortingn" >&2 fi # check for dcraw if test ! -x $dcraw; then printf "$SCRIPT:$LINENO: the $dcraw command is not available -- abortingn" >&2 fi # check for rename if test ! -x $rename; then printf "$SCRIPT:$LINENO: the $rename command is not available -- abortingn" >&2 exit 192 fi # check for rsync if test ! -x $rsync; then printf "$SCRIPT:$LINENO: the $rsync command is not available -- abortingn" >&2 fi # check for tar if test ! -x $tar; then printf "$SCRIPT:$LINENO: the $tar command is not available -- abortingn" >&2 fi # check for glacier-cmd if test ! -x $s3cmd; then printf "$SCRIPT:$LINENO: the $s3cmd command is not available -- abortingn" >&2 fi # Check for Options # ================= getopt -T if [ $? -ne 4 ]; then printf "$SCRIPT:$LINENO: %sn" "getopt is in compatibility mode" >&2 exit 192 fi RESULT=$(getopt --name "$SCRIPT" --options "$OPTSTRING" --longoptions "$LONGOPTSTRING" -- "$@") if [ $? -gt 0 ]; then exit 192 fi eval set -- "$RESULT" while [ $# -gt 0 ]; do case "$1" in -h | --help) # show help printf "%sn" " This script helps you automate the process of downloading photos from your camera, uploading backups to Google Picasa, and syncing the files with a specified directory. Dependendies: gphoto2 dcraw googlecl rsync s3cmd usage: $SCRIPT [options] Options: -h | --help Show help for $SCRIPT --destination-directory {LOCATION} Set the location where the photos will be copied to. --tmp-dir {LOCATION} Set the temporary directory where images will be downloaded to initially. The default is /tmp/photos. --no-google-backup Disable uploading low rez copies to Google Plus. --sd-card {LOCATION} Set the location of the sd card. --no-delete Do not delete from temp file. --backup {FOLDER} {S3 BUCKET} Create archive from folder and upload to S3. " exit 0 ;; --destination-directory ) shift if [ $# -eq 0 ]; then printf "$SCRIPT:$LINENO: %sn" "Invalid argument for destination. No destination given." >&2 exit 192 fi DESTINATION="$1" ;; --tmp-dir ) shift if [ $# -eq 0 ]; then printf "$SCRIPT:$LINENO: %sn" "Invalid argument for tmp-dir. No temporary directory given." >&2 exit 192 fi TMPDIR="$1" FILES=$TMPDIR/* ;; --no-google-backup ) shift GOOGLE_BACKUP=false ;; --sd-card ) shift SD=true if [ $# -eq 0 ]; then printf "$SCRIPT:$LINENO: %sn" "Invalid argument for sd directory. No sd card directory given." >&2 exit 192 fi SDDIR="$1" ;; --no-delete ) shift NODELETE=true ;; --backup ) shift if [ $# -eq 0 ]; then printf "$SCRIPT:$LINENO: %sn" "Invalid argument for AWS Glacier Backup. Backup folder and vault must be specified." fi S3=true BACKUP_FOLDER="$1" BUCKET="$2" ;; esac shift done # Functions # ========= # function to convert a raw image to jpg. # input: requires the user to specify the file extention ($1). function convert_to_jpg () { FILES2CONVERT=$TMPDIR/*"$1" for FILE in $FILES2CONVERT do FILE2BACKUP=$TMPDIR/Backup/`basename "$FILE" "$1"`'.jpg' if [ -e $FILE2BACKUP ]; then printf "$SCRIPT:$LINENO: Skipping $FILE, jpg file already existsn" elif [ -e $FILE ]; then printf "$SCRIPT:$LINENO: Converting $FILE to $FILE2BACKUPn" $dcraw -cvz -w -o 1 -q 3 "$FILE" | cjpeg -quality 80 -optimize > "$FILE2BACKUP" else printf "Did not convert $FILEn" fi done } # function to resize jpeg to upload to picasa function resize_to_thumb () { FILES2RESIZE=$TMPDIR/Backup/* # TODO pass this in as argument along with destination directory for FILE in $FILES2RESIZE do printf "$SCRIPT:$LINENO: Creating thumbnail for $FILE..." convert $FILE -resize 2048x2048 $TMPDIR/Backup/Upload/`basename "$FILE" ".jpg"`'_thumb.jpg' printf "donen" done } # function to import photos function import_photos () { printf "$SCRIPT:$LINENO: Importing Photosn" if $SD; then cp -p "$SDDIR"/* . else $gphoto2 --quiet --get-all-files fi } # function to remove spaces in file names function remove_spaces () { $find $1 -depth -name "* *" -execdir $rename 's/ /_/g' "{}" ; } # function to sort images into direcotries based on date. # input: directory to sort ($1) # directory to sort into ($2) function sort_images () { SORTDIR=$2'/Sorted/' for FILE in $1 do printf "$SCRIPT:$LINENO: Sorting $FILEn" DATEDIR=$SORTDIR`date -r "$FILE" +%Y`'/'`date -r "$FILE" +%Y-%m-%d` mkdir -p $DATEDIR cp "$FILE" $DATEDIR/ done } # function create archive and upload to AWS S3 # input: directory to create an archive for ($1) # s3 bucket name ($2) function archive_folder () { ARCHIVE=$TMPDIR/$(basename $1).tar.bz2 printf "$SCRIPT:$LINENO: archiving $ARCHIVEn" $tar -cvjf $ARCHIVE $1 $s3cmd put $ARCHIVE $2 } # Create temporary directory mkdir -p $TMPDIR cd $TMPDIR # Create AWS Glacier archive if $S3; then archive_folder $BACKUP_FOLDER $BUCKET cd $CURRENTDIR if [ $NODELETE = false ]; then rm -rf $TMPDIR fi exit 0 fi # Import files from camera import_photos printf "$SCRIPT:$LINENO: Importing Photos Done!n" # Remove Spaces in Filenames remove_spaces $TMPDIR #Convert all files to lower case printf "$SCRIPT:$LINENO: Converting Photos to Lower Case.n" for FILE in * do f=`echo $FILE | tr '[:upper:]' '[:lower:]'` mv "$FILE" "$f" done printf "$SCRIPT:$LINENO: Converting Photos to Lower Case Done!n" # Sort files sort_images "$FILES" "$TMPDIR" printf "$SCRIPT:$LINENO: Sorting Images Done!n" # Create backup jpgs and upload them to Picassa mkdir -p $TMPDIR/Backup cp $TMPDIR/*.jpg $TMPDIR/Backup/ convert_to_jpg ".nef" convert_to_jpg ".nrw" mkdir -p $TMPDIR/Backup/Upload resize_to_thumb if $GOOGLE_BACKUP; then # Upload jpgs to Picassa # Requires that you authorize googlecl through the web browser. $google picasa create --user $GOOGLEUSER --title "Backup "`date +%Y-%m` $TMPDIR/Backup/Upload/* fi # Copy files to final locations $rsync -ravv $TMPDIR/Sorted/ $DESTINATION # TODO test to make sure destination works cd $CURRENTDIR # Remove temp folder if [ $NODELETE = false ]; then rm -rf $TMPDIR fi printf "$SCRIPT:$LINENO: Processing Complete!n" exit 0

June 12, 2015

Phone Losers
Home Owners and Yoline
Today's show of home owners association calls is sponsored by Tony from Arizona. Thanks, Tony!

Hacker Public Radio
HPR1790: Penguicon 2015 Report
Penguicon 2015 is a combined technology and science fiction convention in Southfield, Michigan, a suburb of Detroit, and presented over 500 hours of programming over the entire weekend. Of this, around 100 hours were open source, tech-related. In this episode I give you my personal diary of my experience at this great event. Links: http://2015.penguicon.org/ http://www.zwilnik.com/?p=831 https://ind.ie/ http://www.amazon.com/Data-Goliath-Battles-Collect-Control/dp/0393244814 http://commonplacebooks.com/

June 11, 2015

Hacker Public Radio
HPR1789: The Ubuntu Quickly Ebook Template and Ebooks in General
Ubuntu Quickly Ebook Template I recorded this conversation with Mike Hingley about a year ago (12 June 2014) but never released it because I thought the audio didn't sound very good and I didn't feel like editing it at the time. Honestly I forgot all about it until now when the HPR queue is low again. I apologize for the slightly clippy quality of my audio, I must have had my microphone too hot on the mumble. It's really interesting to listen to this conversation a year later because I have worked out so many of the problems that I was mentioning to Mike, including the automation of the entire build process using command-line tools from Calibre. Links Quickly Ebook Template on Launchpadhttps://launchpad.net/quickly-ubuntu-ebook Jon's Counterpoint Projects http://jonathankulp.org/gratis.html Calibre: http://calibre-ebook.com/ Manual for Calibre's Command Line Interface: http://manual.calibre-ebook.com/cli/cli-index.html FBReader: free (and ad-free) multi-platform ebook reader. http://fbreader.org/ Free ebooks - Project Gutenberg: http://www.gutenberg.org/ Mike's projects and info: http://titaniumbunker.com/ Humble eBook Bundle: https://www.humblebundle.com/books 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.

Off the Hook
Off The Hook - Jun 10, 2015


June 10, 2015

Hacker Public Radio
HPR1788: Podcrawl Glasgow 2015
Dave Morriss and Kevie have a yarn about the upcoming Glasgow Podcrawl. The event takes place on the 10th of July 2015 and kicks off at 6pm in the State Bar, Holland Street. The event is open to anybody with an interest in open source software or creative commons music. Whether you're an enthusiast or just interest in finding out more, also if you're a member of a band then we would love to have you along for a yarn over a few pints. Check out http://kmacphail.blogspot.co.uk/2015/01/podcrawl-glasgow-2015.html for more details and a map of how to get to the bar.

June 09, 2015

Phone Losers
The Shoe Show
Ben Kilburn is mean to loving fathers in this show where we call customers of shoe stores.

Hacker Public Radio
HPR1787: A Beginner with a Wok
Merriam-Websters defines "stir-fry" as "to fry quickly over high heat in a lightly oiled pan (as a wok) while stirring continuously." (Source: http://www.merriam-webster.com/dictionary/stir-fry) Talk about stir-frying. Not an expert by any means, but think I've learned enough to share a bit. Frank bought a wok, quite on impulse, and has been experimenting with stir-fry recipes and has found it surprisingly easy--much easier than, say, making a souffle or oysters Rockefeller. In this podcast, he discusses what he has learned and in the context of narrating the preparation of a meal. Some Links: Wok How-Tos: http://www.seriouseats.com/2010/06/wok-skills-101-stir-frying-basics.html http://www.cookinglight.com/cooking-101/techniques/cooking-class-stir-frying Two Recipes: http://www.myrecipes.com/recipe/shrimp-vegetable-stir-fry (Note: The first step in this recipe is to make your own teriyaki sauce. You can use a commercial sauce instead.) http://www.epicurious.com/recipes/food/views/spicy-shrimp-and-vegetable-stir-fry-238344


[more]
Link to us!

Hackermedia.org is provided by:
Binary Revolution | Infonomicon Computer Club