10 episodes

Hacker Public Radio is an podcast that releases shows every weekday Monday through Friday. Our shows are produced by the community (you) and can be on any topic that are of interest to hackers and hobbyists.

Hacker Public Radio Hacker Public Radio

    • Technology
    • 4.4 • 22 Ratings

Hacker Public Radio is an podcast that releases shows every weekday Monday through Friday. Our shows are produced by the community (you) and can be on any topic that are of interest to hackers and hobbyists.

    HPR3257: Lack of diversity in Linux and other open source communities

    HPR3257: Lack of diversity in Linux and other open source communities

    Why is there a lack of diverse voices and faces in the world of Linux and open source
    Free software but it's not made available to the very people who could really benefit from it
    Lack of training in schools when it comes to Linux and other open source software

    HPR3256: Update, MS Teams, Covid 19, Raspberry PI 400 Raspberry PI 4 8GB Centos

    HPR3256: Update, MS Teams, Covid 19, Raspberry PI 400 Raspberry PI 4 8GB Centos

    Hey guys I have been doing a lot of MS Teams it works on Linux not so I can have 365 on my ubuntu browser and MS teams installed. (Work complete from a linux box) (It's great) The Raspberry PI400 is a great box you should get it. Also I thought the Raspberry 4 8GB to be very solid.

    HPR3255: garage door part 2

    HPR3255: garage door part 2

    garage door part 2
    tis teh season COUGH COUGH

    HPR3254: The Markdown editor Retext

    HPR3254: The Markdown editor Retext

    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
    List of useful links
    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

    HPR3253: Pandas Intro

    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)

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

    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

Customer Reviews

4.4 out of 5
22 Ratings

22 Ratings

Andrew Erickson ,

This is real Open Source

With a different host every day, you get people's once every few month bit of tech awesomeness every day, not oh no we have to do a show, let's throw something together. Great job on this show community. Way to go open source podcasting.

ahalbert ,

Hit or Miss, but worth subscribing to

This is a community based radio show, so anyone can make their own podcast for HPR. This results in variable quality, with shows that cover a topic well, to shows that are uninformative or banal, like "What's in my bag today". Since the topics covered are so broad, some of them will not be relevant to you. I personally don't care much for the libre office podcasts, but a libre office user would find them helpful. Still, I enjoyed and learned from many of the shows featured here.

Dnb guy ,

Lots of great info ☎

The only problem I have with this podcast is I feel that I should have a notepad ready when I listen to it.

Top Podcasts In Technology

Listeners Also Subscribed To