Episode 132 – Brews
Podcast: Play in new window
Subscribe: Apple Podcasts | RSS
Downloads:
MP3 format (for Freedom Haters!)
OGG format (for Freedom Lovers!)
Total Running Time: 1:38:04
Un-edited Live session – http://youtu.be/__Lui4Aq6wQ
Contact Us:
show (at) smlr.us or the Contact us page
Summary
Kernel News: Mat
Time: 15:20
Distro Talk: Tony
Time: 17:25
Tech News:
Time: 36:40
Toolbox
Time: 58:05
Listener Feedback
Time: 1:14:10
Outtro Music
Time: 1:28:40
Intro:
Tony Bemus, Mat Enders, and Mary Tomich
Sound bites by Mike Tanner
Kernel News: Mat
Time: 15:20
mainline: 3.16 2014-08-03
stable: 3.15.9 2014-08-07
longterm: 3.14.16 2014-08-07
longterm: 3.12.26 2014-08-01
longterm: 3.10.52 2014-08-07
longterm: 3.4.102 2014-08-07
longterm: 3.2.62 2014-08-06
longterm: 2.6.32.63 2014-06-18
linux-next: next-20140808 2014-08-08
Distro Talk: Tony
Time: 17:25
- 7-27 – Salix 14.1 “Openbox”
- 7-30 – Bio-Linux 8.0.2
- 7-30 – Zorin OS 9 “Educational”
- 7-31 – Simplicity Linux 14.7
- 7-31 – SolydXK 201407
- 8-03 – IPFire 2.15 Core 80
- 8-05 – Porteus 3.0.1
- 8-07 – KNOPPIX 7.4.0
- 8-08 – Ubuntu 12.04.5
- 8-09 – Android-x86 4.4
Distro of the Week: Tony
- openSUSE – 1066
- Arch – 1104
- Debian – 1434
- Mint – 2027
- Ubuntu – 2108
Tech News:
Time: 36:40
Buy All the Cybersecurity Vulnerabilities: Black Hat Keynote
Interesting Links on the Microsoft v Samsung fight.
http://www.zdnet.com/bad-microsoft-android-patents-may-lie-behind-samsung-lawsuit-7000032400/
http://techrights.org/2014/08/08/world-after-windows/
Chromebooks
Charms to be killed off; Virtual desktops added!
http://www.extremetech.com/computing/187664-windows-9-kills-off-awful-charms-bar-adds-virtual-desktops-to-win-back-disaffected-desktop-defectors
TPP
https://github.com/akrennmair/tpp
http://linuxconfig.org/tpp-the-command-line-presentation-tool
KDE Korner
DigiKam 4.2 released
http://kde-apps.org/content/show.php/digiKam+Software+Collection?content=137059
KfolderSync
- Synchronization – make destination directories identical to their respective sources.
- Bilateral Synchronization – Source directories and their respective destinations supplement each other with missing files. If conflictes are detected, only the ones with the latest modification time will be kept in both source and destination directories.
- Differential Backup – delete nothing and overwrite old files.
- Incremental Backup – delete nothing and back up old files instead of overwriting them.
- Bilateral Incremental Backup – Source directories and their respective destinations supplement each other with missing files. If conflictes are detected, old files will be backed up before the new ones take their place.
- Full Backup – Entirely back up source directories in their respective destinations.
Download Kfoldersync
http://kde-apps.org/content/show.php/KFolderSync?content=164092
The Toolbox
Time: 58:05
Interacting with Arin’s whois API
If you have used the command line tool whois more than once you know the data returned is not consistent from search to search. It is impossible to scriptigraficly (version of programmatically for scripting) parse. You can check out the entire api at https://www.arin.net/resources/whoisrws/whois_api.html.
From Arin’s website talking about using whois scriptigraficly:
“RFC 3912, the most recent specification for the protocol, does not define either data types or data formats. As a consequence, Whois data varies from service provider to service provider and is far from ideal for programmatic consumption.”
But they give you a way:
“For the purposes of programmatic consumption, ARIN recommends the use of the RESTful Web Service and strongly discourages the use of the NICNAME/WHOIS port 43 service.”
So lets talk about the RESTful Web Service. REST is an acronym that stands for Representational State Transfer. Roy Fielding’s, one of the authors of the HTTP protocol specification, wrote his doctoral dissertation on REST. When a Web Server use REST, it is called a RESTful Web Service. This causes RESTful Web Services to be different than straight REST to varying degrees. As a consequence, RESTful Web Services has taken on concepts and transmutations that were not originally part of REST.
XML is common with RESTful Web Services, however not a requirement for RESTful Web Services. Many RESTful Web Services utilize JSON instead. O’Reilly publishing has a great book on the subject: RESTful Web Services by Leonard Richardson and Sam Ruby.
ARIN has a “web-based” interface to Whois data at http://whois.arin.net. There your web browser is given XML and uses XSL stylesheets to render the XML as people friendly HTML.
Since we want to use this scriptigraficly this is of no use to us. There are command line tools we can use though. We can use wget or curl, but I prefer xmllint as it presents the xml better.
There are an extensive number of different types data requests. The one I was interested in were IP addresses. I wanted to be able to get the cidr network range an IP belonged to. Now I will explain what I did to accomplish this:
First I needed to submit my inquiry:
xmllint --format http://whois.arin.net/rest/ip/192.149.252.75
Which will give you output like this:
The Only Way I Could Get The XML Tags To Appear At Least Semi Correctly Was To Replace All Of < With [
[?xml version="1.0"?> [?xml-stylesheet type='text/xsl' href='http://whois.arin.net/xsl/website.xsl' ?> [net xmlns="http://www.arin.net/whoisrws/core/v1" xmlns:ns2="http://www.arin.net/whoisrws/rdns/v1" xmlns:ns3="http://www.arin.net/whoisrws/netref/v2" termsOfUse="https://www.arin.net/whois_tou.html" inaccuracyReportUrl="http://www.arin.net/public/whoisinaccuracy/index.xhtml"> [registrationDate>1997-11-05T00:00:00-05:00[/registrationDate> [ref>http://whois.arin.net/rest/net/NET-192-149-252-0-1[/ref> [endAddress>192.149.252.255[/endAddress> [handle>NET-192-149-252-0-1[/handle> [name>ARIN-NET[/name> [netBlocks> [netBlock> [cidrLength>24[/cidrLength> [endAddress>192.149.252.255[/endAddress> [description>Direct Assignment[/description> [type>DS[/type> [startAddress>192.149.252.0[/startAddress> [/netBlock> [/netBlocks> [originASes> [originAS>AS10745[/originAS> [/originASes> [orgRef name="ARIN Operations" handle="ARINOPS">http://whois.arin.net/rest/org/ARINOPS[/orgRef> [parentNetRef name="NET192" handle="NET-192-0-0-0-0">http://whois.arin.net/rest/net/NET-192-0-0-0-0[/parentNetRef> [startAddress>192.149.252.0[/startAddress> [updateDate>2012-09-07T18:44:56-04:00[/updateDate> [version>4[/version> [/net>
Which is a boatload of information when I want to wind up with is the cidr information, which consists of the strart address and length of the cidr. Now let's start whittling down this to get what I want.
Our first filter is going to use grep to get the lines I need from the output:
xmllint --format http://whois.arin.net/rest/ip/192.149.252.75 |grep -E 'startAddress|cidrLength'
Which now is going to limit the output to this:
[cidrLength>24[/cidrLength> [startAddress>192.149.252.0[/startAddress> [startAddress>192.149.252.0[/startAddress>
Now we need to get rid of the leading white space to make working with the data easier:
xmllint --format http://whois.arin.net/rest/ip/192.149.252.75 |grep -E 'startAddress|cidrLength' | sed -e 's/^[ \t]*//'
This produces this output:
[cidrLength>24[/cidrLength> [startAddress>192.149.252.0[/startAddress> [startAddress>192.149.252.0[/startAddress>
Then we need get it down to just the two lines we need in the right order:
xmllint --format http://whois.arin.net/rest/ip/192.149.252.75 |grep -E 'startAddress|cidrLength' | sed -e 's/^[ \t]*//' |uniq |sort -r
Which gives us this:
[startAddress>192.149.252.0[/startAddress> [cidrLength>24[/cidrLength>
Now we need to extract just the IP and cidr length I do this with two separate awk statements:
xmllint --format http://whois.arin.net/rest/ip/192.149.252.75 |grep -E 'startAddress|cidrLength' | sed -e 's/^[ \t]*//' |uniq |sort -r |awk -F ">" '{print $2}' |awk -F "<" '{print $1}'
Which gives us this:
192.149.252.0 24
Now we need to assemble this into what we need:
xmllint --format http://whois.arin.net/rest/ip/192.149.252.75 |grep -E 'startAddress|cidrLength' | sed -e 's/^[ \t]*//' |uniq |sort -r |awk -F ">" '{print $2}' |awk -F "<" '{print $1}' |paste - - -d/
Which gives us the output we are looking for:
192.149.252.0/24
Viola! This is just a small part of what you can do with the interface. Explore and have fun.
Listener James E. has shortened my little one liner by eliminating my two awks by using one sed.
Here it is:
xmllint --format http://whois.arin.net/rest/ip/192.149.252.75 |grep -E 'startAddress|cidrLength' | sed -e 's/^[ \t]*//' |uniq |sort -r |sed 's/.*>\([^<]\+\)<.*/\1/' |paste - - -d/
Listener Feedback:
show (at) smlr.us or 313-626-9140
Time: 1:14:10
Jonathan Nadeau:
I wanted to announce the release of Sonar 2014.1 on your podcast. Sonar
has moved from being based off of Ubuntu to now being based off of
Manjaro Linux and this is the first release using Manjaro as it's base.
Now Sonar will always have the latest and greatest in assistive
technology for it's users. Sonar uses Gnome as it's default desktop but
we will be releaseing a Mate version in a few. weeks. We have been
working very close with the Mate team and they had done a lot of work to
assure the accessibility of the Mate desktop. We hope to have a Mate
release in a few weeks. Here are some of the features of Sonar 2014.1
Gnome 3.12
Orca screen reader for blind users.
Screen magnification for low vision users
A font to use for people with dyslexia
On screen keyboards for people with low motor skills.
Eye/head tracking software to move the cursor on the screen with a webcam.
This is the best release of Sonar yet.here is the site. i'm also free to
do an interview if you wish. Thanks for the great show!
Outtro Music
Time: 1:28:40
This content is published under the Attribution-Noncommercial-Share Alike 3.0 Unported license.
2 Comments
Hi Mat
Instead of the two awks, you could use a single sed:
sed ‘s/.*>\([^<]\+\)<.*/\1/'
Cheers
Hello James,
I just noticed your comment. Excellent replacing the two awks with one sed and is now incoprated into the show notes.
Thanks,
Mat