Episode: 4284
Title: HPR4284: HPR Developer Information
Source: https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr4284/hpr4284.mp3
Transcribed: 2025-10-25 22:27:44

---

This is Hacker Public Radio Episode 4284 for Thursday 2 January 2025.
Today's show is entitled HBR Developer Information.
It is hosted by Ken Fallon and is about 16 minutes long.
It carries a clean flag.
The summary is, a set of project principles for those wishing to contribute code to the
HBR project.
Hi everybody, my name is Ken Fallon and you're listening to another episode of Hacker Public
Radio.
Recently, Dave has been, Dave is leaving the project and I'm a singular point of failure
now, so I've been writing a lot of documentation and soliciting help from the community and
in order to do that, people need to know what to expect to this project.
It's kind of different from others, so I've written some developer information for Hacker
Public Radio, HBR and these are the project principles associated with that.
So I'll just read them out and then perhaps I'll go through it second time with some
clarifications.
Well, Hacker Public Radio, HBR is a long-term project run by volunteers.
Project principles are as follows.
There are a few things you need to be aware of before you decide to contribute to Hacker
Public Radio.
Our prime directive is that HBR is dedicated to sharing now.
Any software development is done with the goal of supporting the distribution of podcasts
media locally so that they can be played on as many devices as possible.
Priority is to keep the flow of shows coming in and out, then fix any accessibility issues
that arise and then work on any other feature requests.
Some things can change without discussion, but other things we need to get input from
the HBR community.
Changes can take a long time, community approval can take several months, while other changes
require a lot of work from volunteers who are focused on other priorities.
We allow redistribution by releasing all our content under the Creative Commons, attributing
sure like 4.1 international license.
In the same veil, all our code is released under an AGBLV3 or other OSI approved.
We do not track statistics to the judgment of our prime directive.
We make the entire delivery ecosystem redundant using native internet standard and the co-operation
of community members.
All data is available by default.
Community members, sponsors, hosting platforms will change over time.
We have a distrust of online platforms, libraries and niche tools we don't set ourselves as
they can and have disappeared overnight.
We are very conservative in our choice of tech.
As a rule of thumb, all our software choices tend to be technology that was developed years
ago and is likely to be around for years to come.
We make our code as simple to understand as possible, as our replacements may not have
the skill sets we do.
That said, we move at the times when there is a clear advantage to do so.
We run up to date patched stable software.
We have a long tradition of supporting and sharing hacker culture.
Any identified vulnerable abilities are fixed with credit if requested.
We use RSS as a delivery mechanism, which is by default fault tunnel.
Our primary demands are hacker-public-radio.com and hacker-public-radio.org.
Our registered with different providers and the DNS is served from different locations.
All our code is on git-t, please clone locally.
Our database is updated frequently, please copy locally.
All our media is served from our community content delivery network.
Local reports and patches are welcome from anyone without a commitment.
If you are contributing new code or new technology, we ask you to commit to supporting it for
a minimum of two years.
This allows the generous the time to learn the new tech and support it when you leave.
If you're happy with all of that, then you can create an account.
In order to contribute, you need to create an account and git-t, and you also need to
notify the admins as admin as hacker-public-radio.org.
Either via email, master on our matrix, and tell them that you've created an account.
The reason for this is that we get lots of accounts created every day by spammers.
Okay.
That's it.
Pretty much the description.
Two things that's coming out of that people might find a bit odd is they playing locally
stuff.
When we're talking about HPR and the websites and all the rest of us, what we're actually
wanting to focus on is getting that stuff down to an air quotes MP3 player or a media player
locally that you can play it in your car, that you can play it in, you can burn the CDs.
If you have HPR 9876 on your CD, for instance, it's got all the media, it's got an index.html file,
that index.html file points to all the images that are uploaded to the show notes, points
to any scripts locally, points to everything.
The thing that you need for that show should be locally.
If you're posting shows yourself linking to your own blog, then it's fair game.
We're considering that blog and to be creative comments as well.
Just so you know.
So ideally, please put it into this.
We have the WYSIWIG editor now.
You have the ability to add image, but also do your links as actual links.
It takes you a few extra seconds, but those extra seconds turn into minutes, turn into
hours that we need to do, because we need to do it for everybody else's show.
So using the WYSIWIG editor, that will be great.
So that's that localy thing.
Changes, some changes, fixing typos, no problem, adding how to is no problem.
However, over changing our project principles, then that needs to go to the community.
When in doubt, I have a, when in doubt, ask on the mailing list, definitely needs to go
to the mailing list, and if it's something really big, then we need to announce it on
the community news, and then wait for feedback from the listening community.
So that's kind of that.
Changes, contact time, sometimes, the janitors have vacations, and we can work on it, and
sometimes we're busy with work and personal stuff, and we don't have time.
Specifically, as our focus is getting the shows in, getting the shows out, we don't have
a gap in the queue.
And then as we say, we'll fix accessibility issues, if and when they arise, and then we
do any other feature requests that come.
So please do do feature requests, and do make suggestions.
If you want to discuss a first in the matrix channel, that's fine, or send us an email,
that's also fine.
We will get back to it.
I'm just currently working on something that Dave and I were discussing in 2016.
So now all of them are that old, but some of them are, and some of them are older.
That's, that's, we don't track statistics to the detriment of our prime directive.
Yeah, that's, if you're going to have a free and open internet, that's kind of the
price we pay.
And the reason a lot of the internet has been just centralized, as my opinion, is in
order to facilitate a single point where people go through.
And that means single points of failure, and then you put in additional layers upon layers
of onions on top of that, because you want that central lugging and stuff.
But if you don't care about that, then a lot of, it gives you a lot of freedom for all
the stuff.
So we are trying to maintain a balance now by having, we do have a central point of failure,
which is a served web site, HackerPublicRadio.org.
And if that goes down for some reason, then you know to switch to HackerPublicRadio.com.
And if all of those go down, then we'll use the communication, mailing this, and all
the rest of us, and bring up another domain somewhere else, and switch the main feeds
to that.
But, and then of course we have HackerPublicRadio as well, and three domains there.
Okay, okay, let's see, the licenses should be fairly obvious, yeah, trying to use it.
And this is the thing about trying to use very generic stuff, getting burned by platforms
and libraries disappearing.
Right now we're having an issue where the metadata on the episodes isn't being added
incorrectly, because a library and a portal program has disappeared.
So that's a problem, and it happens, yeah, I know that, but we're actually using quite
a lot of tools as well, and they change over time.
And that means maintenance, so it's a pain, it's a pain.
Equally, we will also do simpler queries, for example, from a database to mention a lot
of the things that Ronan and myself were doing, in order to make it simpler for the next
guy, who will have to come back to it.
So rather than doing it just using a database script, we're going to address a simpler, address
a piece of technology trying to keep it simple, because the next person who comes along may
not be as good to databases or may not be as good as scripting or whatever.
So even something like using expanded options in bash scripting, so that in the fine command,
you don't use abbreviations, dash v, use dash dash for both, or sorry, not dash v for
version, but let's see, you know, dash q in WGET, use dash dash query, so that as you're
reading the command, you can at least follow what's going on.
This is actually quite a lot of stuff going on here, as I'm documenting it, is we built
our own delivery network, we built our own replication network, we're building essentially
YouTube's infrastructure, but on a sheath's ring, thank you Josh, just now from Anonstools.com
who provides our stuff, but also thanks to the internet and also thanks to the CCDN community
content delivery network. And that is, if you've got a machine line round and like for
terabyte artists that you can plug into it, you can ursync our data over and you can then
be part of that network, so that when somebody comes into the main site, when somebody comes
into the main site looking for a media file, it gets randomly distributed over currently
random distributed over the content delivery network.
And later, we will possibly do GOIP locations so that you get the media file from the nearest
location, which is cheaper and more efficient and just nicer, basically.
And we need to also think about, yeah, there's a little bit about redundancy there, about
all the code, copy the database, copy the code locally, everything, you should have everything
available to you. There is one table that we don't just, that's the reservations table,
we do distribute it if you're a janitor, but it can be recreated pretty easy as well.
And that's because it contains the IP address information of the people uploading for the
duration to show us in process. After the show is processed, we delete that. What else?
Yeah, we use stable stuff, stables. Yeah, 20 years ago is when this, this year, this
project will be 20 years old. And therefore, you know, stuff comes goes, platforms come
and goes, tools come and go, uh, grep, they'll remain with us. So, you know, that's, that's
kind of where we're going, stable, update maintained platform. That said, we're running like
the latest web servers on the front end. I'm why not? And their patch notes cause we're
serving basically static files. And there again, you can afford to use slower queries and
more expensive queries if you're only running them once an hour, uh, and producing a text
file or a HTML file that anybody can register. And that's what we're doing. So the statistics,
uh, to get the stats page, that's, yeah, it could be more efficient query. So if we were
running everything that every med that stats file available to the public and that is up
to date with a minute's accuracy, you would need to run that query expensive query for every
person who hits us. And then maybe somebody's building a dashboard and is paying that query
every minute. So that's very expensive on the, uh, very expensive in terms of processing
power. And I don't know, I don't know, also cost because this at the end of the day, each
of these things costs Josh, uh, on his AWS instance. So the other way around that is because
we're a slow project, one short day is a change. Um, therefore we can afford to run the
query once every 15 minutes. And then put the output of that out to a text file. So if
you submitted the show and we will get to it at some point, it usually takes a few days
to do that. Currently, as we put the wizard again editor of it broke everything on the upload
part and all of a sudden all the libraries ceased to work for the encoding part. So not
only was the entire, the entire back office part of the HPR has been broken for the last
few days. And it's still broken. And here I'm recording a show. And that's exactly why I want
to record a show is because we need more developers coming on board and helping out. And in order
for to do that, things need to be documented and things also need to be fairly sane.
Going forward, we'll try and maybe modularize it. Um, let's see, community members, everybody's
changed over time. Yeah. So I'm also looking at retiring, retiring, at least stepping back a bit,
and having to come on doing rather than just the two of us doing all the work, um, we can divide
it up, uh, among virtual. And it does not have to be coding. For example, we're currently looking
for somebody to take over, um, organizing at least, not necessarily participating in, but organizing
in the community news, um, show. So that's one thing you do once a month. Keep an eye on us.
Keep an eye in the news. Keep an eye in the midst of scripts and everything that Dave has.
Probably a lot of it could be automated. So, um, make the tickets to get that
automated and keep an eye on, uh, send up a reminder somewhere so that you send out the mail
to the mailing list about community news, um, as, uh, trying to organize a rotating host to come in
for, for the shows so that other people can do it. So you could own us. You don't necessarily need
to do it, but you could own the management of that like an office, sort of office manager project
manager task. Um, so that's, that's stuff that you can help out with. Um, we also have an
Arthur 72 now and some guy in the internet. They're managing, uh, our matrix channels, um, by managing,
I mean, being on there, answering people's questions, pointing them in the right direction.
We're building up a little team of people who can help us with, um, coding and producing good
quality podcasts and stuff. Obviously, obviously, you know, my area of expertise. Um, so, yeah,
and as for the rest of us, we're, we're in a good position from the point of view of redundancy.
Yeah, it's, if the show doesn't come out today, it comes out tomorrow. Now, in principle, we make
sure we release it every day, but from an RSS point of view, um, if somebody doesn't open
their RSS reader today and they open it in two days time, they will get three day shuls, uh,
we're quite redundant to you. So that's, that's kind of good. And by the way, if you're into
computers tech and networks and stuff like that, um, but don't have work experience or, um,
have nothing on your CV or resume where you can say, uh, look, eyes of work done on this sort of
stuff. This is, this is what the big boys, uh, and girls do. Most of the boys, that's racist because
it's a male dominated field. Um, but this is what the, what we can do, get an access to actually
building a distributed metric, everything they come. There you go. Oh, yeah. Keep an eye on the, uh,
join the matrix channel, create a GT account if you're interested. And that's sort of thing.
Uh, submit issues, try and help out basically. There are lots of mobs. Pick one.
Tune in tomorrow for another exciting episode of Hacker Public.
You have been listening to Hacker Public Radio. Hacker Public Radio does work.
Today's show was contributed by a HBR listener like yourself. If you ever thought of recording
podcast, click on our contribute link to find out how easy it really is. Posting for HBR has been
kindly provided by an honesthost.com, the internet archive, and our synch.net. On this
otherwise stated, today's show is released under Creative Commons, Attribution 4.0 International
License.
