Hacker Public Radio

Hacker Public Radio

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.

  • HPR4118: Toil versus Livelihood

    This is sort of a response to hpr4097 :: Will they take our jobs? Of course they will. by dodddummy, and also the latest community news show, and other shows about the topic.

    References:

    15 May 2024, 12:00 am
  • HPR4117: JAMBOREE !

    https://github.com/freeload101/Java-Android-Magisk-Burp-Objection-Root-Emulator-Easy

    Java Android Magisk Burp Objection Root Emulator Easy (JAMBOREE)
    Get a working portable Python/Git/Java environment on Windows in SECONDS without having local administrator, regardless of your broken Python or other environment variables. Our open-source script downloads directly from proper sources without any binaries. While the code may not be perfect, it includes many useful PowerShell tricks.

    Run Android apps and pentest without the adware and malware of BlueStacks or NOX.

    Features / Request Core Status RMS:Runtime Mobile Security ✔️ Brida, Burp to Frida bridge ❌ SaftyNet+ Bypass ❌ Burp Suite Pro / CloudFlare UserAgent Workaround-ish ✔️ ZAP Using Burp ✔️ Google Play ✔️ Java ✔️ Android 11 API 30 ✔️ Magisk ✔️ Burp ✔️ Objection ✔️ Root ✔️ Python ✔️ Frida ✔️ Certs ✔️ AUTOMATIC1111 ✔️ AutoGPT ✔️ Bloodhound ✔️ PyCharm ✔️ OracleLinux WSL ✔️ Ubuntu/Olamma WSL ✔️ Postgres No admin ✔️ SillyTavern ✔️ Volatility 3 ✔️ Arduino IDE / Duck2Spark ✔️ Youtube Downloader Yt-dlp ✔️

    How it works:
    Temporarily resets your windows $PATH environment variable to fix any issues with existing python/java installation
    Build a working Python environment in seconds using a tiny 16 meg nuget.org Python binary and portable PortableGit. Our solution doesn't require a package manager like Anaconda. I would like to make it even easier to use but I don't want to spend more time developing it if nobody is going to use it! Please let me know if you like it and open bugs/suggestions/feature request etc! You can contact me at https://rmccurdy.com !

    Installation/Requirements ( For Android AVD Emulator) :
    Local admin just to install Android AVD Driver:
    HAXM Intel driver ( https://github.com/intel/haxm )

    OR

    AMD ( https://github.com/google/android-emulator-hypervisor-driver-for-amd-processors )

    Usage:
    Put ps1 file in a folder
    Rightclick Run with PowerShell

    OR

    From command prompt

    powershell -ExecutionPolicy Bypass -Command "[scriptblock]::Create((Invoke-WebRequest "https://raw.githubusercontent.com/freeload101/Java-Android-Magisk-Burp-Objection-Root-Emulator-Easy/main/JAMBOREE.ps1").Content).Invoke();" More infomation on bypass Root Detection and SafeNet https://www.droidwin.com/how-to-hide-root-from-apps-via-magisk-denylist/

    ( Watch the Video Tutorial below it's a 3-5 min process. You only have to setup once. After that it's start burp then start AVD )

    Burp/Android Emulator (Video Tutorial )
    Update Video with 7minsec Podcast!

    https://youtu.be/XdXleap0BiM

    name

    (Video Tutorial)

    https://youtu.be/pYv4UwP3BaU

    name

    USB Rubber Ducky Scripts & Payloads Python 3 Arduino DigiSpark

    https://youtu.be/e8tKhFS0Tow

    name

    Old payloads: https://github.com/hak5/usbrubberducky-payloads/tree/1d3e9be7ba3f80cdb008885fac49be2ba926649d/payloads

    PhreakNIC 24: Java Android Magisk Burp Objection Root Emulator Easy (JAMBOREE)

    https://www.youtube.com/watch?v=R1eu2Ui1ZLU

    name

    14 May 2024, 12:00 am
  • HPR4116: Response to 4109: Building community without SEO

    I was inspired by Knightwise's episode 4109 on future-proofing HPR.
    I agree with many of your criticisms, but I'm not sure that a marketing strategy is the best way forward. Many of the most successful and sustainable businesses and organizations have been built on word-of-mouth.
    For example I heard of Google, Zoom, Gmail, Facebook, Slack, Twitter, Discord, etc from my IRL friends and coworkers rather than from a marketing message. And most of the open source communities I'm a part of (Linux, Python, Firefox, Hugging Face, etc) are successful precisely because their success is not subject to a BigTech algorithm or exploitative terms-and-conditions.
    Most open source projects are able to build community much by actively resisting the temptation to create a marketing message or social media campaign and instead focusing on the authenticity and quality of their "product" and catering to their contributors' and users niche needs and sensibilities.

    Points of agreement (Rapoport Rule #2)

    • I share Knightwise's love and concern for the HPR community
    • I agree the intro theme song and voiceover could be accelerated and improved
    • I whole-heartedly agree the comments interface could be made easier to use
    • I agree that the HPR community feels like a monastery or convent. Perhaps faith in FOSS is a kind of religious belief or value that supersedes normal human instincts and drives.
    • I 100% support hackers that evangelize for HPR on their favorite bigtech social media platforms.

    My FOSS podcatcher Antennapod, automatically skips the intro. I had to rewind in order to hear the episode number and host username in order to compose my reply.
    And I have trouble engaging with the comments interface on the HPR site.
    I wasn't even aware of comments on my previous episodes and once I did learn of it I found it easier to reply on Mastodon rather than on the HPR website.
    As a community, I think we take it on faith that there is a place in the world for people like us that just want to share ideas, unmediated by shadow-banning, rug-pulling corporations and attention-hacking algorithms. I want to have a conversation with thoughtful people. I don't want to be engaged or monetized or exploited

    • A young person that is turned off after 3 seconds of retro-sounding audio is likely to not enjoy the "sound of woodwork (2442)" or "overlanding" audio journals (4037) of semi-retired geeks.
    • Many of us know that what we do in life cannot be measured in dollars or like button clicks, but rather by the quality of our friendships and the collective ideas that we share.
    • Zombies on Facebook, Twitter, Discord and Slack must eventually "see the light" for themselves and come flocking to "the small web" as they did during Xitter's decline.
    • HPR has been a significant positive force in my life and I would hate to sully its openness and authenticity with SEO or other marketing strategies (I know this is not what you proposed)
    • I think the enshittified Discord network is the wrong business to entrust with our community, for one thing, its app doesn't work on Linux
    • Marketing and SEO are effective tools for growth-seeking businesses, but ill-suited for an open source community
    • Anyone interested in business strategy would enjoy the eye-opening book The Internet Con by Cory Doctorow at the EFF.
    • Open source communities such as Reddit, Reddis, Terraform, Mongo, Substack, Medium, and MySQL were destroyed by growth-hackers pulling the rug out from under open source contributors and authors who eventually rebelled to fork or reverse-engineer these products and "win the day."
    • We geeks at HPR are not alone in our disaffection with business-mediated social interactions. Look at the mass eexodus from twitter. And the exit from substack. And from open source communities like reddit, reddis, terraform, mongo, and mysql. If you want to contribute your labor to a newly enshittified product they are actively seeking new contributors (and marketers) as their founding engineers abandon ship and create their own forks.
    • People share personal private contact information here that could endanger their emotional and financial well-being and information security if it were exposed to a scammer/malware platform like Discord. Discord sells your phone number to con-artists and scammers. And Xitter users talk about the blue checkmark validating their social value, but it's really a mark of shame. Discord hawks a similarly worthless token of social cred, and paywalls something as fundamental to communication as emojies. No thanks. They can take their dancing robot and bursting-heart emojies and shove 'em where the sun don't shine.

    Enhance the comments interface?

    • Would a bridge server that pulled from our RSS feed and posted to an HPRbot channel on Mastodon help?
    • I've not tried BlueSky yet
    • We could even auto-post to Xitter and Facebook in the same way that Threads evangelizes Facebook to the Fediverse
    • It might be possible to directly connect the comments feed on HPR to Mastodon or BlueSky automatically.

    References

    13 May 2024, 12:00 am
  • HPR4115: Tagging music with Beets

    References

    10 May 2024, 12:00 am
  • HPR4114: Introduction to jq - part 2

    Overview

    In the last episode we looked at how JSON data is structured and saw how jq could be used to format and print this type of data.

    In this episode we'll visit a few of the options to the jq command and then start on the filters written in the jq language.

    Options used by jq

    In general the jq command is invoked thus:

    jq [options...] filter [files...]

    It can be given data in files or sent to it via the STDIN (standard in) channel. We saw data being sent this way in the last episode, having been downloaded by curl.

    There are many options to the command, and these are listed in the manual page and in the online manual. We will look at a few of them here:

    --help or -h

    Output the jq help and exit with zero.

    -f filename or --from-file filename

    Read filter from the file rather than from a command line, like awk´s -f option. You can also use ´#´ to make comments in the file.

    --compact-output or -c

    By default, jq pretty-prints JSON output. Using this option will result in more compact output by instead putting each JSON object on a single line.

    --color-output or -C and --monochrome-output or -M

    By default, jq outputs colored JSON if writing to a terminal. You can force it to produce color even if writing to a pipe or a file using -C, and disable color with -M.

    --tab

    Use a tab for each indentation level instead of two spaces.

    --indent n

    Use the given number of spaces (no more than 7) for indentation.

    Notes

    • The -C option is useful when printing output to the less command with the colours that jq normally generates. Use this:

      jq -C '.' file.json | less -R

      The -R option to less allows colour escape sequences to pass through.

    • Do not do what I did recently. Accidentally leaving the -C option on the command caused formatted.json to contain all the escape codes used to colour the output:

      $ jq -C '.' file.json > formatted.json

      This is why jq normally only generates coloured output when writing to the terminal.

    Filters in jq

    As we saw in the last episode JSON can contain arrays and objects. Arrays are enclosed in square brackets and their elements can be any of the data types we saw last time. So, arrays of arrays, arrays of objects, and arrays of both of these are all possible.

    Objects contain collections of keyed items where the keys are strings of various types and the values they are associated with can be any of the data types.

    JSON Examples

    Simple arrays:

    [1,2,3] [1,2,3,[4,5,6]] ["Hacker","Public","Radio"] ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]

    Simple object:

    { "name": "Hacker Public Radio", "type": "podcast"}

    This more complex object was generated by the Random User Generator API. It is a subset of what can be obtained from this site.

    { "gender": "female", "name": { "title": "Mrs", "first": "Jenny", "last": "Silva" }, "dob": { "date": "1950-01-03T21:38:19.583Z", "age": 74 }, "nat": "GB" }

    This one comes from the file countries.json from the Github project mledoze/countries. It is a subset of the entry for Mexico.

    { "name": { "common": "Mexico", "official": "United Mexican States", "native": { "spa": { "official": "Estados Unidos Mexicanos", "common": "México" } } }, "capital": [ "Mexico City" ], "borders": [ "BLZ", "GTM", "USA" ] }

    Identity filter

    This is the simplest filter which we already encountered in episode 1: '.'. It takes its input and produces the same value as output. Since the default action is to pretty-print the output it formats the data:

    $ echo '["Hacker","Public","Radio"]' | jq . [ "Hacker", "Public", "Radio" ]

    Notice that the filter is not enclosed in quotes in this example. This is usually fine for the simplest filters which don't contain any characters which are of significance to the shell. It's probably a good idea to always use (single) quotes however.

    There may be considerations regarding how jq handles numbers. Consult the jq documentation for details.

    Object Identifier-Index filter

    This form of filter refers to object keys. A particular key is usually referenced with a full-stop followed by the name of the key.

    In the HPR statistics data there is a top-level key "hosts" which refers to the number of currently registered hosts. This can be obtained thus (assuming the JSON is in the file stats.json):

    $ jq '.hosts' stats.json 357

    The statistics file contains a key 'stats_generated' which marks a Unix time value (seconds since the Unix Epoch 1970-01-01). This can be decoded on the command line like this:

    $ date -d "@$(jq '.stats_generated' stats.json)" +'%F %T' 2024-04-18 15:30:07

    Here the '-d' option to date provides the date to print, and if it begins with a '@' character it's interpreted as seconds since the Epoch. Note that the result is in my local time zone which is currently UTC + 0100 (aka BST).

    Using object keys in this way only works if the keys contain only ASCII characters and underscores and don't start with a digit. To use other characters it's necessary to enclose the key in double quotes or square brackets and double quotes. So, assuming the key we used earlier had been altered to 'stats-generated' we could use either of these expressions:

    ."stats-generated" .["stats-generated"]

    Of course, the .[<string>] form is valid in all contexts. Here <string> represents a JSON string in double quotes. The jq documentation refers to this as an Object Index.

    What if you want the next_free value discussed in the last episode (number of shows until the next free slot)? Just typing the following will not work:

    $ jq '.next_free' stats.json null

    This is showing that there is no key next_free at the top level of the object, the key we want is in the object with the key slot.

    If you request the slot key this will happen:

    $ jq '.slot' stats.json { "next_free": 8, "no_media": 0 }

    Here an object has been returned, but we actually want the value within it, as we know.

    This is where we can chain filters like this:

    $ jq '.slot | .next_free' stats.json 8

    The pipe symbol causes the result of the first filter to be passed to the second filter. Note that the pipe here is not the same as the Unix pipe, although it looks the same

    There is a shorthand way of doing this "chaining":

    $ jq '.slot.next_free' stats.json 8

    This is a bit like a file system path, and makes the extraction of desired data easier to visualise and therefore quite straightforward, I think.

    Array index filter

    We have seen the object index filter .[<string>] where <string> represents a key in the object we are working with.

    It makes sense for array indexing to be .[<number>] where <number> represents an integer starting at zero, or a negative integer. The meaning of the negative number is to count backwards from the last element of the array (which is -1).

    So, some examples might be:

    $ echo '["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]' | jq '.[1]' "Monday" $ echo '["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]' | jq '.[-1]' "Sat" $ echo '[1, 2, 3, [4, 5, 6]]' | jq '.[-1]' [ 4, 5, 6 ]

    We will look at more of the basic filters in the next episode.

    Links

    9 May 2024, 12:00 am
  • HPR4113: Today I Learnt, sed hold/pattern space use.

    Today I Learnt, sed hold/pattern space use.

    Sgoti talks about using sed hold/pattern spaces.

    • Tags: TIL, sed

    I fixed the ${ls} /usr/bin to ${ls} ${bindir} issue mentioned in the show.

    #!/bin/bash # License: GPL v3 # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. #Name: grab-bin.sh #Purpose: Link your binaries. #Version: beta 0.07 #Author: SGOTI (Some Guy On The Internet) #Date: 2023-12-17 #variables: bindir=/usr/bin/ awk=${bindir}awk cat=${bindir}cat chmod=${bindir}chmod date=${bindir}date echo=${bindir}echo find=${bindir}find ls=${bindir}ls mktemp=${bindir}mktemp sed=${bindir}sed uniq=${bindir}uniq #start: ${echo} -e "\nStep 0: $(${date} +%F), $(${date} +%T)"; # Create the /tmp/ directory to place the files. function mkt (){ if [ -d /tmp/$(${date} +%F).* ]; then tmpdir1=$(ls -d /tmp/$(${date} +%F).*) ${echo} -e "The directory already exists.\n${tmpdir1}" else tmpdir0=$(${mktemp} -d /tmp/$(${date} +%F).XXXXXXXX) tmpdir1=${tmpdir0} ${find} "${tmpdir1}" -type d -exec ${chmod} -R =700 {} +; ${echo} "Had to create ${tmpdir1}" fi } mkt ${echo} -e "\nStep 1: $(${date} +%F), $(${date} +%T)"; # Files created by this script. tmpdoc0=${tmpdir1}/$(${date} +%Y%m%d)variables.txt tmpdoc1=${tmpdir1}/$(${date} +%Y%m%d)bash.vim tmpdoc2=${tmpdir1}/$(${date} +%Y%m%d)sed-script.sed # Here-document to build the first document (variables.txt). ${cat} > ${tmpdoc0} << "EOL0" bindir=/usr/bin/ EOL0 # variables.txt body. ${ls} -1 ${bindir} | ${sed} -n ' h s/[^0-9a-zA-Z]//g G s/\n/ / s/(.*) (.*)/1=${bindir}2/p ' >> ${tmpdoc0} ${sed} -i '/[/d' ${tmpdoc0} ${echo} -e "\nStep 2: $(${date} +%F), $(${date} +%T)"; # Bash.vim here-document. ${cat} > ${tmpdoc1} << "EOL1" iabbr case; case ${var_name} in <CR> [yY]) <CR> ${echo} 'User said, "Yes"'; <CR> ;; <CR> <CR> [nN]) <CR> ${echo} 'User said, "No"'; <CR> ;; <CR> <CR> [qQ]) <CR> ${echo} "Let's get outta here."; <CR> exit <CR> ;; <CR> <CR> *) <CR> ${echo} "Good Heavens! Someone broke the script I'm writing."; <CR> exit <CR> ;; <CR>esac iabbr here; ${cat} << _EOD_<CR>_EOD_<CR><ESC>2k0 iabbr func function NAME () {<CR><CR>}<UP> iabbr if; if []; then<CR><ESC>Ielse<CR>${echo} "Good Heavens!"<CR><ESC>Ifi<ESC>4k0A iabbr ali; alias NAME=''<ESC>B iabbr ; ()<Left><Left> EOL1 # bash.vim body. ${ls} -1 ${bindir} | ${sed} -n ' { h s/[^0-9a-zA-Z]//g G s/\n/ / s/(.*) (.*)/iabbr 1 ${2}/p } ' >> ${tmpdoc1} # Bash.vim here-document second pass. ${cat} >> ${tmpdoc1} << EOL1-5 iabbr vars; bindir=/usr/bin/ <CR> EOL1-5 # bash.vim body second pass. ${ls} -1 ${bindir} | ${sed} -n ' { h s/[^0-9a-zA-Z]//g G s/\n/ / s/(.*) (.*)/\<CR>1=${bindir}2/p } ' >> ${tmpdoc1} ${sed} -i '/{[}/d; /${bindir}[/d' ${tmpdoc1} ${echo} -e "\nStep 3: $(${date} +%F), $(${date} +%T)"; # Sed script here-document. ${cat} > ${tmpdoc2} << "EOL2" #!/usr/bin/sed -f EOL2 # Sed script body. ${ls} -1 ${bindir} | ${sed} -n ' h s/[^0-9a-zA-Z]//g G s/\n/ / s/(.*) (.*)/s/\<2\>/${1}/g/p ' >> ${tmpdoc2} ${sed} -i '/[/d' ${tmpdoc2} ${find} "${tmpdir1}" -type d -exec chmod -R =700 {} +; ${find} "${tmpdir1}" -type f -exec chmod -R =600 {} +; ${echo} -e "\nStep 4: $(${date} +%F), $(${date} +%T)"; exit;

    This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

    8 May 2024, 12:00 am
  • HPR4112: JSON and VENDORS and AUTH ohh my!

    Some stuff I use to help make APIs

    https://github.com/freeload101/Python/blob/master/Python_Includes_RMcCurdy.py

    JAMBOREE.rmccurdy.com for burp suite. Have I done a podcast on JAMBOREE? I must have... If not I will

    7 May 2024, 12:00 am
  • HPR4111: HPR Community News for April 2024

    New hosts

    Welcome to our new host:
    Dave Hingley.

    Last Month's Shows

    Id Day Date Title Host 4086 Mon 2024-04-01 HPR Community News for March 2024 HPR Volunteers 4087 Tue 2024-04-02 Getting started with the digiKam photo management software Henrik Hemrin 4088 Wed 2024-04-03 Today I Learnt more Bash tips Some Guy On The Internet 4089 Thu 2024-04-04 Modifying a Python script with some help from ChatGPT MrX 4090 Fri 2024-04-05 Playing Civilization III, Part 1 Ahuka 4091 Mon 2024-04-08 Test Driven Development Demo norrist 4092 Tue 2024-04-09 More man-talk. Some Guy On The Internet 4093 Wed 2024-04-10 Installing postmarketOS on a PINE64 PinePhone Claudio Miranda 4094 Thu 2024-04-11 One year of Linux Daniel Persson 4095 Fri 2024-04-12 Twenty seven years of Linux Deltaray 4096 Mon 2024-04-15 Powers of two Deltaray 4097 Tue 2024-04-16 Will they take our jobs? Of course they will. dodddummy 4098 Wed 2024-04-17 Road trips without GPS Trey 4099 Thu 2024-04-18 Introducing Home Automation and Home Assistant Ken Fallon 4100 Fri 2024-04-19 Charleston, South Carolina Ahuka 4101 Mon 2024-04-22 A I O M G operat0r 4102 Tue 2024-04-23 Re:HPR 3133 More MPV Quick Tips Archer72 4103 Wed 2024-04-24 What's in my bag? Dave Hingley 4104 Thu 2024-04-25 Introduction to jq - part 1 Dave Morriss 4105 Fri 2024-04-26 My story how I found a cure for my obesity Jeroen Baten 4106 Mon 2024-04-29 My tribute to feeds Henrik Hemrin 4107 Tue 2024-04-30 Response to HPR #4065 swift110

    Comments this month

    These are comments which have been made during the past month, either to shows released during the month or to past shows. There are 21 comments in total.

    Past shows

    There are 2 comments on 2 previous shows:

    This month's shows

    There are 19 comments on 10 of this month's shows:

    • hpr4086 (2024-04-01) "HPR Community News for March 2024" by HPR Volunteers.
      • Comment 1: Dave Morriss on 2024-04-01: "Senior moment: diatribe"
      • Comment 2: Some Guy on the Internet on 2024-04-01: "@Dave Morriss"

    • hpr4092 (2024-04-09) "More man-talk." by Some Guy On The Internet.
      • Comment 1: folky on 2024-04-09: "Oh no"
      • Comment 2: Mad Sweeney on 2024-04-10: "Squeezing out a show"

    • hpr4094 (2024-04-11) "One year of Linux" by Daniel Persson.
      • Comment 1: AaronB on 2024-04-11: "Bugs in Linux"
      • Comment 2: Folky on 2024-04-12: "Thank you"
      • Comment 3: Henrik Hemrin on 2024-04-12: "Enjoyable to learn about your Linux use case and experience"

    • hpr4095 (2024-04-12) "Twenty seven years of Linux" by Deltaray.
      • Comment 1: Nick on 2024-04-12: "Correction"
      • Comment 2: Deltaray on 2024-04-13: "Re: Correction"
      • Comment 3: Henrik Hemrin on 2024-04-13: "Interesting review of your Linux softwares"

    • hpr4096 (2024-04-15) "Powers of two" by Deltaray.
      • Comment 1: Windigo on 2024-04-15: "Very enjoyable episode"
      • Comment 2: brian-in-ohio on 2024-04-17: "Another example"
      • Comment 3: Dave Morriss on 2024-04-17: "8388607"

    • hpr4097 (2024-04-16) "Will they take our jobs? Of course they will." by dodddummy.
      • Comment 1: dodddummy on 2024-04-16: "The next thing"
      • Comment 2: dodddummy on 2024-04-20: "More improvements"

    • hpr4098 (2024-04-17) "Road trips without GPS" by Trey.
      • Comment 1: archer72 on 2024-04-13: "Re:Road trips without GPS"

    • hpr4099 (2024-04-18) "Introducing Home Automation and Home Assistant" by Ken Fallon.
      • Comment 1: Henrik Hemrin on 2024-04-26: "Looking forward to learn about Home Assistant"

    • hpr4103 (2024-04-24) "What's in my bag?" by Dave Hingley.
      • Comment 1: Henrik Hemrin on 2024-04-26: "Thanks for your show"

    • hpr4105 (2024-04-26) "My story how I found a cure for my obesity" by Jeroen Baten.
      • Comment 1: Trey on 2024-04-26: "Thank you for sharing."

    Events Calendar

    With the kind permission of LWN.net we are linking to The LWN.net Community Calendar.

    Quoting the site:

    This is the LWN.net community event calendar, where we track events of interest to people using and developing Linux and free software. Clicking on individual events will take you to the appropriate web page.

    Any other business

    Craig Maloney, host of the Open Metal Cast

    • We received the sad news that fellow podcaster and host of the Open Metal Cast, Craig Maloney passed away.

    • Obituary

    Markdown issue in show notes

    • Syntax highlighting for fenced code blocks.
      • An issue was raised on the Gitea repository for the hpr_generator. Show notes using Markdown fenced blocks which specify a language (e.g. python) are not being syntax highlighted as expected.
      • This was turned off because the highlighting is implemented as HTML (<div> and <span> tags) which was stripped by software on archive.org when the notes were uploaded.
      • In case this restriction has been lifted, we will try uploading an example to see if highlighting is now available.

    6 May 2024, 12:00 am
  • HPR4110: Playing Civilization III, Part 2

    This starts our look at the details of playing Civilization III. In this episode we look at the Early game, which sets the stage for everything that follows. Then we look at Revenue and Resources.

    Links:

    3 May 2024, 12:00 am
  • HPR4109: The future of HPR

    This will probably be one I'll get a lot of comments on, but I've looked at the marketing proposition of HPR in light of some of the challenges we face. To prevent us dipping into the reserve queue and seeing a slow but steady decline in both audience and hosts.. Maybe its time to give HPR a bit of a makeover.

    2 May 2024, 12:00 am
  • More Episodes? Get the App
© MoonFM 2024. All rights reserved.