
10 episodes

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
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
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
garage door part 2
tis teh season COUGH COUGH -
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
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)
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
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.
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.
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.