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, 7 months, 16 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 18 days.

Latest Shows


hpr1775 :: Sonic Pi

A short review of sonic PI and programming the HPR theme

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

In this review of the Sonic Pi software I have mentioned a couple of programs that I wrote the listings are here:

============================
The Hippopotamus Song
============================
use_bpm 180
# use_transpose -12
use_synth :fm
2.times do
play_pattern_timed [:D3,:G3,:G3,:G3], [1,1,1,1]      # 1 extra note from bar an bar 2
play_pattern_timed [:G3,:D3,:B2,:G2], [0.5,0.5,1,1]  # 3
play_pattern_timed [:a2,:b2,:c3], [1,1,1]            # 4
play_pattern_timed [:b2,:b2,:a2], [2,0.5,0.5]        # 5
play_pattern_timed [:g2,:g3,:g3], [1,1,1]            # 6
play_pattern_timed [:fs3,:g3,:e3], [1,1,1]           # 7
play_pattern_timed [:d3,:d3], [4,1]                  # 8 9
play_pattern_timed [:g3,:g3,:g3], [1,1,1]            # 10
play_pattern_timed [:g3,:d3,:b2,:g2], [0.5,0.5,1,1]  # 11
play_pattern_timed [:a2,:b2,:c3], [1,1,1]            # 12
play_pattern_timed [:b2,:b3,:a3], [2,0.5,0.5]        # 13
play_pattern_timed [:g3,:fs3,:e3], [1,1,1]           # 14
play_pattern_timed [:a3,:fs3,:e3], [1,1,1]           # 15
play_pattern_timed [:d3,:d3], [4,1]                  # 16 17
play_pattern_timed [:a3,:a3,:a3], [1,1,1]            # 18
play_pattern_timed [:e3,:e3,:e3], [1,1,1]            # 19
play_pattern_timed [:a3,:a3,:a3], [1,1,1]            # 20
play_pattern_timed [:e3,:a3], [2,1]                  # 21
play_pattern_timed [:c4,:b3,:a3], [1,1,1]            # 22
play_pattern_timed [:a3,:b3,:gs3], [1,1,1]           # 23
play_pattern_timed [:a3,:d3], [4,1]                  # 24 25
play_pattern_timed [:e3,:fs3,:g3], [1,1,1]           # 26
play_pattern_timed [:fs3,:d3,:d3], [1,1,1]           # 27
play_pattern_timed [:e3,:fs3,:g3], [1,1,1]           # 28
play_pattern_timed [:fs3,:d3,:d3], [1,1,1]           # 29
play_pattern_timed [:c4,:b3,:a3], [1,1,1]            # 30
play_pattern_timed [:g3,:fs3,:e3], [1,1,1]           # 31
play_pattern_timed [:fs3],[1], sustain_level: 0.6, sustain: 1, decay: 3   # 32 sustain note into next bar
play_pattern_timed [:g3,:fs3], [1,1]                 # 32
play_pattern_timed [:e3,:d3,:fs3], [1,1,1]           # 33
play_pattern_timed [:g3,:d3],[3,3]                   # 34 35
play_pattern_timed [:c3,:b2,:a2], [1,1,1]            # 36
play_pattern_timed [:d3],[3]                         # 37
play_pattern_timed [:g3,:fs3,:g3], [1,1,1]           # 38
play_pattern_timed [:e3,:a3,:g3], [1,1,1]            # 39
play_pattern_timed [:fs3,:e3,:fs3], [1,1,1]          # 40
play_pattern_timed [:d3,:d3],[2,1]                   # 41
play_pattern_timed [:b3,:b3,:a3], [0.5,1.5,1]        # 42
play_pattern_timed [:g3,:d3,:d3], [0.5,1.5,1]        # 43
play_pattern_timed [:c4,:c4,:b3], [1,1,1]            # 44
play_pattern_timed [:a3,:e3,:d3], [0.5,1.5,1]        # 45
play_pattern_timed [:e3,:fs3,:g3], [1,1,1]           # 46
play_pattern_timed [:d3,:b2,:g2], [1,1,1]            # 47
play_pattern_timed [:a2],[3], decay: 3               # 48
play_pattern_timed [:a2,:b2,:a2], [1,1,1]            # 49
play_pattern_timed [:g2],[3], decay: 3               # 50
play_pattern_timed [:g2],[1]                         # 51
sleep 2
end

=======================================
The HPR Outro theme - hack on this improve it and make a show
=======================================
in_thread do
  use_bpm 180
  use_transpose 24
  use_synth :beep
  19.times do
    play_pattern_timed [:a,:as,:a,:a], [0.5],release: 0.02, amp: 0.3 #
    play_pattern_timed [:as,:f,:as,:a], [0.5],release: 0.02, amp: 0.3  #
  end
end
use_bpm 180
sample :elec_hi_snare
sleep 0.5
sample :elec_hi_snare
sleep 0.5
sample :drum_bass_hard
sleep 0.5

use_transpose -0
use_synth :saw
2.times do
  play_pattern_timed [:a,:a,:a,:a], [0.5,1,0.5,1] # 3
  play_pattern_timed [:a,:as,:a], [1,1,1]
  play_pattern_timed [:c5], [3], decay: 2   # 6
  play_pattern_timed [:a,:a,:a,:a], [0.5,1,0.5,1] # 3
  play_pattern_timed [:a,:as,:a], [1,1,1]    # 6
  play_pattern_timed [:f], [3], decay: 2   # 6
end
use_synth :dsaw
play_pattern_timed [:f],[1]
play_pattern_timed [:c5],[2], decay: 1.5
play_pattern_timed [:as,:a,:as],[1,1,1]
play_pattern_timed [:a],[1]
play_pattern_timed [:c5],[2], decay: 1.5
play_pattern_timed [:f],[1]
play_pattern_timed [:c5],[2], decay: 1.5
play_pattern_timed [:as,:a,:as,],[1,1,1]
play_pattern_timed [:a],[1]
play_pattern_timed [:f],[2], decay: 1.5
play_pattern_timed [:f],[1]
play_pattern_timed [:c5],[2], decay: 1.5
play_pattern_timed [:as,:a,:as],[1,1,1]
play_pattern_timed [:a],[1]
play_pattern_timed [:c5],[2], decay: 1.5
play_pattern_timed [:f],[1]
play_pattern_timed [:c5],[2], decay: 1.5
play_pattern_timed [:as,:a,:as,:a],[1,1,1,1]
play_chord [:c4,:f], decay: 4
===========================
------------------------------------------------------------

hpr1774 :: Router Hacking

A Quick What, Why, and How of Hacking Routers


Hosted by Jon Kulp on 2015-05-21 and released under a CC-BY-SA license.
Listen in ogg, spx, or mp3 format. Comments (1)

Router Hacking

What

  • Flashing a router with alternate firmware

Why

  • Provide additional features
  • Improve performance
  • Privacy (gets rid of unwanted spyware)
  • Fun

Where

How: Steps for My Latest Hack

  1. Find used Netgear WNDR3400 router on shelf at local Goodwill store, priced at $3.99.
  2. Use my smartphone to check the dd-wrt database to see if this router is hackable.
  3. Grin broadly upon seeing the green "Yes" beside router WNDR3400.
  4. Double-check that power supply is included, find an AC outlet and plug in to be sure it powers on and my phone sees its ESSID. Yep and yep.
  5. Take router to cashier and purchase.
  6. Do hard reset of router to clear any previous configuration.
  7. Hook a laptop up to router using ethernet patch cable (turning off WiFi adapter on laptop).
  8. Access router's configuration in web browser at default router address of 192.168.1.1 just to confirm that it works.
  9. Go back to the dd-wrt router database and find the router again, then download the corresponding "mini" and the "mega" versions of dd-wrt firmware (The mega version has the most features—including USB support, which I wanted—but on many routers, including this one, you have to install the mini version first or else you could brick the router)
  10. Read over the dd-wrt wiki page for this specific router just to see if there's anything unusual about the hack. There's not.
  11. Go to the router's stock configuration page again and find the "Firmware upgrade" button.
  12. Click the button and choose the "mini" version of the dd-wrt firmware, and click upgrade, then wait while crossing fingers until it says firmware successfully upgraded.
  13. Refresh the configuration page at 192.168.1.1 and see the new dd-wrt configuration interface.
  14. Pat myself on the back because I have just hacked another router. Hray!
  15. Find the upgrade firmware area on the new dd-wrt interface, and this time choose the "mega" firmware file and submit, then wait and cross fingers as before. Celebrate when it works.
  16. Configure newly hacked router as wireless bridge (this is NOT going to be my main router), enable the USB and printer support, hook up our formerly-usb-only printer to the router, and configure household computers to be able to print wirelessly to the newly-networked printer.
  17. Enjoy kudos from appreciative family.

hpr1773 :: LFNW 2015 interview with Deb Nicholson

David Whitman interviews Debroh Nicholson of the Open invention Network. Enjoy!


Hosted by David Whitman on 2015-05-20 and released under a CC-BY-SA license.
Listen in ogg, spx, or mp3 format. Series: Interviews | Comments (0)

Deb Nicholson:
has been a free speech advocate, economic justice organizer and civil liberties defender. After working in Massachusetts politics for fifteen years, she then became involved in the free software movement at the Free Software Foundation.

Defensive Publications info: http://www.linuxdefenders.org/?page_id=150

Seattle GNU/Linux Conference http://seagl.org/ IRC on Freenode in #seagl. Were very excited to be returning to Seattle Central College for SeaGL on Friday October 23rd and Saturday October 24th, 2015. SeaGL is a grassroots technical conference dedicated to spreading awareness and knowledge about the GNU/Linux community and free/libre/open-source software/hardware. Cost of attendance is free. Attendee Registration will not require the use of non-free software. You may attend SeaGL without identifying yourself, and you are encouraged to do so to protect your privacy.


hpr1772 :: Random thoughts

I talk about some of the things I appreciate in life

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

http://anthonyvenable110.wordpress.com

https://anthonyvenable110.wordpress.com/2014/05/07/lovely-walk-in-may-part-1/

My blogsite as well as just one of the many posts on my site that deal with what I appreciate about my life in general


hpr1771 :: Audacity: Label Tracks

Intro to my recent discovery of "Label Tracks" in Audacity


Hosted by Jon Kulp on 2015-05-18 and released under a CC-BY-SA license.
Listen in ogg, spx, or mp3 format. Series: Podcasting HowTo | Comments (1)

Label Tracks in Audacity

I don't know if I'm ignorant and everyone else already knows about this, but I decided to record a quick show about Audacity "Label Tracks," something I discovered while working on another HPR episode today.

The label track is one of the most useful things I've found in a long time. It allows you to annotate your audio project so that you can quickly see important spots or summarize the contents of whole segments and see at a glance what they are about without hunting all over the place and playing things back, trying to find the part where you were talking about X,Y, or Z. You can also export the labels as a plain text file with exact timestamps. I have not tried this, but according to the documentation you can also use labels to mark the beginnings of separate songs in a long track and export multiple separate files at once from a single source based on the labels.

To add a label track, go to the Tracks menu and select Add New --> Label Track, and it will add the label track to the bottom of your list of tracks. To add a label, either stick the cursor where you want the label to be and press ctrl+b to add text, or select a region to label by clicking and dragging over a region in the label track, then do ctrl+b to start typing the label text.

Links


hpr1770 :: The OpenDyslexic Font

Introduction to the OpenDyslexic font


Hosted by Jon Kulp on 2015-05-15 and released under a CC-BY-SA license.
Listen in ogg, spx, or mp3 format. Series: Accessibility | Comments (1)

In this episode I talk about how you can take advantage of the OpenDyslexic font as a user, and also how as a content provider you can use it to help your readers. Incidentally, we also talked about this for a while during episode 1418, one of the 2013 New-Year shows.

Links


hpr1769 :: A Demonstration of Dictation Software on my Office Computer

I record a whole show in dictation mode to demonstrate Dragon dictation software capabilities


Hosted by Jon Kulp on 2015-05-14 and released under a CC-BY-SA license.
Listen in ogg, spx, or mp3 format. Series: Accessibility | Comments (2)

Transcript Performed by Dragon Dictate [dumped "as is"]

Hi everybody! This is John Kulp In Lafayette, Louisiana. I am going to do a rather strange episode today. What I'm doing is demonstrating the dictation software that I use on the office computer that I have here at work. If you listen to my previous episodes, then you have heard me speak of the blather speech recognition program that I use on my Linux desktop, but as you may also remember, blather is not a dictation tool. Blather is a tool where you have to set up commands that will run other commands. In other words, you have to configure everything from scratch. I do have some capabilities for dictation on my Linux desktop, but they involve using the Google Web speech API and a special dictation box that I have set up, and these are not at all good for longform dictation. For serious dictation, such as writing letters and memos and other longform text, you really need a proper dictation tool. These are available built into the operating systems of Windows and Mac OS 10, but I normally use the Dragon naturally speaking software instead. I have found that it is more accurate and more powerful than the built-in versions that you can get on either Windows or Mac. That doesn't mean you shouldn't try out the built-in speech recognition on Windows and Mac, you definitely should, because I think you would be very impressed with him. I know for sure that the version on Windows learns from your voice and from the corrections that you make to the text that you were spoken, and eventually becomes very powerful in recognizing your speech. The biggest problem that I had with the Windows speech recognition was that it was a huge memory hog and frequently brought my system to a grinding halt. This is not good. Blather never does that, but then again bladder cannot take dictation. The latest system that I use for dictation is on a fairly recent Mac Mini running the nuance Dragon Dictate software. This is a very powerful dictation program that learns from your speech patterns and you can also add words to the vocabulary so that it will get them right when it hears them. This is especially important to do if you have frequently used unusual words, such as a name with an alternate spelling from what is normally in the program's dictionary. One of the great things about the Mac Dragon Dictate program, also, is its ability to do transcriptions of audio files. In fact the reason I am speaking this way is that I plan to use the transcription of this recording as the show notes verbatim without any corrections. The difficulty that most people have with dictation software at least initially is doing things like punctuation and capitalization. You have to remember to do these things or else your transcript will come out without any punctuation or capitalization, unless the words that you are speaking are known proper nouns. It also capitalizes automatically at the beginning of the sentences, so that if you use periods frequently then you will have capitalized words after those periods. You can see that I'm having trouble speaking this text in a fluent way, and this is one of the other difficulties that people have when initially using transcription software. It works best when you can express complete thoughts without pausing, because it learns from the context of your words. It has algorithms that calculate the possibility of one word or another based on the context, and so it is much better to speak entire sentences at one than it is to pause while trying to gather your thoughts. This is a major difference from trying to write at the keyboard, where it does not matter at all if you pause for seconds or even minutes while you think of what you want to write next. Anyhow, I highly recommend using some kind of dictation software if you suffer from repetitive strain injuries like I do. This will save you many thousands of keystrokes. Even if it's only using the speech recognition that's available on your phones over the web, that's better than nothing. The disadvantage of any of these services that have to send your recording over the web to get a transcription and then send it back into your device is that they will never learn your voice and your particular speech patterns. In order for that to work best, you really have to use a dedicated standalone speech recognition program that resides locally on your computer and saves your profile and learns from your speaking. Well, I guess that is about it for today, I hope you have enjoyed hearing this brief lesson on dictation. See you next time!

Links

Credits

------------------------------------------------------------

hpr1768 :: An Intro To C Episode 1 : Introduction and Types

I go through the basic types and a basic introduction of myself. :)


Hosted by cjm on 2015-05-13 and released under a CC-BY-SA license.
Listen in ogg, spx, or mp3 format. Series: Programming 101 | Comments (3)

Episode 1: History and Basic Types

Explain who you are and what you do.

  • Name: Colin Mills, (cjm)

  • Occupation: Software Engineering Student in Canada

  • I have been a UNIX geek and open source software FANATIC for about four years now.

  • Website: c-jm.github.io

Start to go into the history of C and explain where it came from.

Abstract

C was originally developed by Dennis Ritchie between 1969 and 1973 at AT&T Bell Labs,[5] and used to (re-)implement the Unix operating system.[6] It has since become one of the most widely used programming languages of all time, [7][8] with C compilers from various vendors available for the majority of existing computer architectures and operating systems. C has been standardized by the American National Standards Institute (ANSI) > since 1989 (see ANSI C) and subsequently by the International Organization for Standardization (ISO).

Explain Types and their meanings

  • SIGNED: It means it can hold either negative or positive values.

  • UNSIGNED: Unsigned means it can only hold positive values.

Retrieved From: Wikipedia On Signedness

int:

  • An int is a variable that is at leas 16 bits in size.

  • It is actually the most efficent for the processor itself.

  • Capable of storing -32767 -> 32767

Int Specifiers

  • short: 16 bits in size

    short int intThatIsAShort = 0;

  • long: 32 bits in size

    long intThatIsALong = 0;

  • long long: 64 bits in size

    long long reallyBigInteger = 0;

char

  • One byte in memory. (8 bits).

  • Holds a character but can also hold a number

    char thisCanHoldALetter = 'x'; char thisCanHoldANumber = 72;

Note about the ascii table

  • ASCII is just a number corresponding with a letter.

  • Look here for more information.

float

  • Holds floating point numbers

    float thisIsAFloat = 72.2;

Double

  • Like a float but bigger.

    double thisIsADouble = 0;

Arrays

  • Arrays are collections of multiple things

  • Have to be a set size.

  • Use braces to initalize

  • If you initalize one you initalize all.

    int arrayOfNums[100] = {0};

Strings

  • "Strings" are made up of mutliple chars. (Yes it does make sense! :))

    char arrayOfChars[81] = {0};

  • Null termination is added to the end.

    '\0'


hpr1767 :: An interview with Ed Cable of the Mifos Initiative

David Whitman interviews Ed Cable of the MIFOS Iniative at Linux Fest Northwest on April 25, 2015.


Hosted by David Whitman on 2015-05-12 and released under a CC-BY-SA license.
Listen in ogg, spx, or mp3 format. Series: Interviews | Comments (1)

David Whitman interviews Ed Cable of the MIFOS Initiative http://mifos.org/

From their website: Mifos X is an extended platform for delivering the complete range of financial services needed for an effective financial inclusion solution.

As the industrys only open platform for financial inclusion, we provide affordable, adaptable and accessible solutions for any segment of the market, new and small financial institutions can easily start with our community app in a hosted environment, medium and large institutions that are evolving into full-service providers of financial inclusion can use our global network of IT partners to configure a Mifos X solution, and innovators can build and scale entirely new solutions on our API-driven platform.


hpr1766 :: Sox of Silence

Using SOX to speed up and remove silence in a podcast


Hosted by Ken Fallon on 2015-05-11 and released under a CC-BY-SA license.
Listen in ogg, spx, or mp3 format. Comments (1)

Many of you may be aware of the "truncate silence" filter in audacity. As I already use SOX to speed up my podcasts, I wanted to see if it could also remove silence as well. While the man page is detailed, it is difficult to follow. http://sox.sourceforge.net/

Fortunately Jason Navarrete posted an excellent article on digitalcardboard.com called The SoX of Silence which went through the process step by step http://digitalcardboard.com/blog/2009/08/25/the-sox-of-silence/

The Script

    # -S, --show-progress
    # -V verbose
    # tempo Change the audio playback speed but not its pitch. 
    # remix Select and mix input audio channels into output audio channels. 
    # remix - performs a mix-down of all input channels to mono.
    # silence Removes silence from the beginning, middle, or end of the audio.
    # http://digitalcardboard.com/blog/2009/08/25/the-sox-of-silence/
    # 
    sox -S -v2 "${FILENAME}" "${FILENAME}-faster-${SPEED}.ogg" -V9 tempo ${SPEED} remix - silence 1 0.1 1% -1 0.1 1%