576 lines
39 KiB
Plaintext
576 lines
39 KiB
Plaintext
|
|
Episode: 3549
|
||
|
|
Title: HPR3549: Linux Inlaws S01E51: git and static site generators
|
||
|
|
Source: https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr3549/hpr3549.mp3
|
||
|
|
Transcribed: 2025-10-25 01:18:47
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
This is Hacker Public Radio Episode 3549 for the first day of the 10th of March 2022.
|
||
|
|
Today's show is entitled, Little XinLos S01551, Good and Tatic Site Generators and is part
|
||
|
|
of the series, Little XinLos, It is hosted by Monochrome, and is about 53 minutes long,
|
||
|
|
and carries an explicit flag. The summary is, Good and Tatic Site Generators.
|
||
|
|
This is Little XinLos, a podcast on topics around free and open-source software,
|
||
|
|
any associated contraband, communism, the revolution in general, and whatever else
|
||
|
|
fences your tickle. Please note that this and other episodes may contain strong language,
|
||
|
|
offensive humor, and other certainly not politically correct language. You have been warned.
|
||
|
|
Our parents insisted on this disclaimer. Happy Mum? Thus the content is not suitable for
|
||
|
|
consumption in the workplace, especially when played back on a speaker in an open-plan office
|
||
|
|
or similar environments. Any miners under the age of 35, or any pets including fluffy little
|
||
|
|
killer bunnies, your trusted guide dog unless on speed, and Q2T Rexys or other associated dinosaurs.
|
||
|
|
Welcome to Little XinLos S0151, yes. Perfect Martin, how are things tonight?
|
||
|
|
A damp under the leaf, but a damp come on.
|
||
|
|
Yes, that, I guess, you're still living this splinter country called the Kingdom.
|
||
|
|
I mean, you're all you're playing up here.
|
||
|
|
I mean, you can't really call this United anyway, because it's going to break up any moment.
|
||
|
|
As soon as this is gone, bless her, by the way, your kingship, because I think we're recording this
|
||
|
|
in, what is it? February? February 20th. No, no, no, hang on Martin, this is 2025,
|
||
|
|
and she's been in office now for, for what? 112 years or something like this, right?
|
||
|
|
So, if you're listening, well done. Yes, pretty tough, aren't they?
|
||
|
|
Of course we're recording this in 22 and she's just, what is it she's been in office now for 20,
|
||
|
|
for 70 years, right? Yes, that's right, there is a change in the public holidays here this year for.
|
||
|
|
Martin, you are the monarchist of the two of us, so you don't know. Yes, you are.
|
||
|
|
Well, it comes with a, hang on, it comes with a heritage.
|
||
|
|
Some people call it to get from the, from the frying pan right into the fire, because you,
|
||
|
|
you move from Holland to to something called England. Well, they both want a piece, yes, this is trick. Indeed,
|
||
|
|
indeed they are. They, they used to have some nurses in Germany as well, didn't they?
|
||
|
|
Yeah, but this was before we invented communism back in the, what, 30s or something.
|
||
|
|
I remember one of them, they, they shipped off the Holland in the early 1900s, didn't they?
|
||
|
|
And this is where the trouble started, I suppose. So, yes, you're, you're safe blaming the,
|
||
|
|
all on the germs, that's okay, no worries, just, it's never mind whether you are,
|
||
|
|
never mind whether you have Dutch origin or living in England, just blame it on the germs,
|
||
|
|
always works. They started it after all. Indeed, they did.
|
||
|
|
You see, when you think about it, the, the, the, the levels are just a splinter as in a breakaway
|
||
|
|
country of something got the right to germination, no.
|
||
|
|
The story is, if you're listening to the, the email addresses feedback, it looks in lots of you.
|
||
|
|
Yeah, I'm sure that's was mentioned in history lessons in the past.
|
||
|
|
Maybe I think there were all the manic peoples, right, and this is something that's very much planned
|
||
|
|
or the, including, including the, the Anglo-Saxons and all the rest of them.
|
||
|
|
Not sure about the Anglo-Saxon, they don't want Germanic people out there.
|
||
|
|
Well, wait, why would English then be an Germanic language come to think of it?
|
||
|
|
Just the section and stuff like that.
|
||
|
|
They all go back to a common origin, no. Language-wise, anyway.
|
||
|
|
Yeah, yeah, I get saying this is part of the thing.
|
||
|
|
I mean, you see, there's a vicious group of people around saying that Dutch is essentially a
|
||
|
|
mixture of English and German going back about a thousand years or so.
|
||
|
|
No, no, no, no, no, no, no. You got that wrong.
|
||
|
|
The route. This is the incorrect one.
|
||
|
|
So the, in fact, it's German who is the derivation of Dutch, but yeah, this is how many people
|
||
|
|
are left unknown fact. How many, how many people did your historians have to bribe for this?
|
||
|
|
I'm just checking the facts in the story notes.
|
||
|
|
The historians, if you're still alive and can tell the, and can tell the, the real story in terms
|
||
|
|
of how much mud I just had, it really costs the email addresses as is, is how to bribe a nation
|
||
|
|
at Linuxinlaws.au. Just send a mail and we'll get you on the show.
|
||
|
|
Sounds good.
|
||
|
|
All right, but yes, of course, we have a special guest.
|
||
|
|
Yes, it does.
|
||
|
|
I'm a special guest.
|
||
|
|
For a change, we're just doing a two episode.
|
||
|
|
As a matter of myself.
|
||
|
|
Yes, but you're going to tell us all about
|
||
|
|
static site generators, if I'm not right.
|
||
|
|
And I'm afraid you're going to ask the questions, right?
|
||
|
|
That's what I'm going to live to scary about it.
|
||
|
|
Okay, if you're listening, and I'm sure you are, this is in waiting for a while,
|
||
|
|
exactly. This is, this is, this is your episode.
|
||
|
|
As the other avid listener will recall, there was an episode in 2021,
|
||
|
|
when we interviewed our supporters, namely the Republic Radio, in the shape of a generator,
|
||
|
|
called Can Fallen, and we mentioned the way of how to sell a website in the modern world
|
||
|
|
using a static static site generator in terms of
|
||
|
|
moving away from CMS system as in content management systems.
|
||
|
|
And the advantages, let's put it this way, of how a static site generator works,
|
||
|
|
and how it basically integrates the version in control system.
|
||
|
|
Because HPR has this sort of thing in the making for a long time,
|
||
|
|
but apparently Canon friends haven't just gotten around to implement it.
|
||
|
|
So this is a bit of a warning of vice, in terms of how to do it, maybe also of how not to do it,
|
||
|
|
and maybe some of the caveats and maybe some of the tricks and benefits of how to do this.
|
||
|
|
Yeah, you set this up for the user group in Frankfurt.
|
||
|
|
Yes, the Linux user group. We exactly waited about a year ago, maybe one and a half years ago.
|
||
|
|
Yes, in contrast to our normal episode, this will be quite a long episode.
|
||
|
|
We are editing this probably down to an hour, maybe two, finally, sorry, HPR will edit this down to two hours.
|
||
|
|
The original episode will be last about five hours for music to live.
|
||
|
|
They normally do, yes, no jokes aside, we keep the shot rather short and sweet.
|
||
|
|
Needless to say, people, if you have questions or any general comments on this, maybe you know,
|
||
|
|
better way how far to do things.
|
||
|
|
The email addresses feedback in the links below, so do you.
|
||
|
|
Okay, so Martin, why don't you get us started with telling us a little bit about the current
|
||
|
|
challenges of something called delivering content to the greater masses?
|
||
|
|
Why don't you start with a couple called Adam and Eve?
|
||
|
|
Okay, we could do, but maybe quite a long story.
|
||
|
|
We do have a time to worry about it.
|
||
|
|
On non-planetary, Adam, you've had any requirement for site generators or sites in that matter altogether.
|
||
|
|
Okay.
|
||
|
|
There are other things on their mind at the time, I'm sure.
|
||
|
|
Apparently, Martin is not game to let us in on the full story.
|
||
|
|
So why don't we give, why don't we start with giving the appreciate and audience a little bit of an overview
|
||
|
|
of how things would end in the past?
|
||
|
|
Let's start with the notion of a content, of a legacy, content management system,
|
||
|
|
I said, what a CMS really is.
|
||
|
|
So Martin, what is a CMS really?
|
||
|
|
Well, as the name says, it's content management.
|
||
|
|
Excellent, excellent, we're making progress, very good.
|
||
|
|
Okay, well, you can imagine take a new site like BBC for example, right?
|
||
|
|
They have a little content that gets added on a regular basis,
|
||
|
|
and clearly you don't want to end up, sorry, I'm making some jumps here, but
|
||
|
|
all this content has to be easily managed and can be easily added in a automated way,
|
||
|
|
right? You don't want to end up typing a bunch of HTML to create a new story every time
|
||
|
|
some news happens. So that's just really the role, the content management system is to
|
||
|
|
automate that piece where content is just delivered in text plus pictures, and
|
||
|
|
the CMS takes care of producing it in a consistent format that applies to the, let's say the rules
|
||
|
|
and the formatting and the view that this site is trying to represent in a sort of couple of
|
||
|
|
sentences. Martin has, yeah, that's, that was worse, but Martin has kept quite a few
|
||
|
|
elementary traits of a CMS. First of all, a CMS takes care of producing content.
|
||
|
|
Most of the time, dynamically, i.e.
|
||
|
|
somebody as a reporter or something like that, goes to the site, enters the content,
|
||
|
|
typically in a markup language, like markdown HTML, you name it, and then the content management
|
||
|
|
system takes care of the rest, i.e. taking this markdown, translating this into HTML,
|
||
|
|
and pumping this to the internet. The trouble, of course, that takes time. In addition to this
|
||
|
|
CMS, it's normally have a role-based access control model in terms of not everybody is allowed
|
||
|
|
to edit the overall site. Some people are just allowed to enter content, but do not change the
|
||
|
|
structure of the site as such. Some people are only allowed to view the content as in maybe
|
||
|
|
proof readers and then feed the, feed the corrections back to the original journalist system from
|
||
|
|
others. And of course, there are also administrators who can administer the site. i.e. change the structure,
|
||
|
|
change the layout, change the templates, and all the rest of it. So normally, CMSs are quite complex
|
||
|
|
beasts in terms of certain things up, resource consumption, network bandwidth, and all the rest of it.
|
||
|
|
Typically, these content management systems, I'm just, I'm just mentioning a few examples here,
|
||
|
|
like Jumla, like typo 3, like Jupal, were written in a scripting language, not to forget,
|
||
|
|
of course, more and more like Python, like an example for the, from the Python space, but normally
|
||
|
|
were written in a program language that was dynamically invoked as part of our web server deployment,
|
||
|
|
like Apache Engine X, Engine X, you name it. But had the disadvantage of really being very
|
||
|
|
resource intensive, this wise as a disability wise CPU wise, not the rest of it. Plus the fact that
|
||
|
|
for each and every page invocation, if the content management systems wouldn't catch the contents,
|
||
|
|
the contents had to be regenerated from the markdown that somebody entered. And as you can imagine,
|
||
|
|
this is quite a time consuming process. So deploying a CMS, running a CMS on your typical server
|
||
|
|
infrastructure was quite, was quite resource intensive. So that's the reason, but of course,
|
||
|
|
there were also a couple of benefits to the CMSs, like most of the CMSs would support versioning.
|
||
|
|
So if a journalist will, would go into the CMS, would type up an article, then this would be
|
||
|
|
proof, right? Then the proof through that would feed back any corrections to the journalist,
|
||
|
|
the journalist would automatically work on a second version of the content of so forth. But Martin,
|
||
|
|
you had a question interjection or amendment. Yes. So I mean, why don't you name some typical CMSs
|
||
|
|
right, but people all know and familiar with. Martin, I just did. Did you doze off again? Didn't
|
||
|
|
mention any names? Drupal, zoomed out. Yeah, mind, mind. The most obvious one is something like
|
||
|
|
a WordPress right there. Yes, Martin, thank you. So Martin, what is WordPress then? Tell us all
|
||
|
|
about it as you're running a couple of WordPress sites. It's just an example of a content management.
|
||
|
|
Very good. I'm sure everybody is familiar. Probably. Yeah. Yeah, because I'm the
|
||
|
|
weirder of the two of us. I normally start with the most complex things.
|
||
|
|
Martin only takes care of the simple of the simple examples. Exactly. No, if I joke to side,
|
||
|
|
people, WordPress, it's probably fair to say that WordPress has been one of the primeval
|
||
|
|
for one of the better expression CMS systems. So it started out as a simple blogging system.
|
||
|
|
But over time, it actually involved into full blown content management system over the years.
|
||
|
|
Because you can get plugins, you have different energies at your disposal and the rest of it.
|
||
|
|
Okay. So how does this relate to static side generators? I wish that's getting there, Martin.
|
||
|
|
Now the problem of causes with the, exactly, with the with the traditional CMS approaches,
|
||
|
|
as I said, they're pretty expensive. They're complex speeds, hard to maintain, and slow.
|
||
|
|
Not to show what CMS, the BBS runs. Do you know this? I think they have at least a couple of
|
||
|
|
WordPress sites out, right? Yeah. What do they have in total? If you're listening,
|
||
|
|
the email address is feedback. We can sign NDAs if required. So just please get in touch.
|
||
|
|
It's a little bit tricky with the podcast, though. It's very some silent episode.
|
||
|
|
Well, we have been known to be censored before. I'm joking.
|
||
|
|
There was this Microsoft episode that never was released, right? Let's not digress anyway.
|
||
|
|
Yes. Anyway, going back to the much more important topic of static
|
||
|
|
generators. So quite a people finally got around to, well, I wouldn't say noticing the efficiencies
|
||
|
|
or the shortcomings of this traditional CMS systems, but clearly, but clearly looking for an
|
||
|
|
alternative that brings us back to the lock story. Moin, moin, which is a Python based CMS has been,
|
||
|
|
or had been in production, rather, before we put this to rest as an insensitive,
|
||
|
|
for at least 10 years and the local Linux user group that I'm helping out with.
|
||
|
|
It was, or it is actually written in Python 2. The problem was that as probably most of the
|
||
|
|
dear listenership knows Python 2 went out of, I wouldn't say out of existence, but went out
|
||
|
|
of supporters, probably the better expression, early 2020. So no security upgrades, no further
|
||
|
|
versions. Actually, there's a pep out for it called funny enough, pep 404 published. Sorry,
|
||
|
|
pep, of course, means Python enhancement proposal. It's an off-seat like process where
|
||
|
|
the Python community actually works on furthering the language. So, links will be in the show
|
||
|
|
notes. It's essentially a collection of improvements for the language and its ecosystem.
|
||
|
|
Covered. Yes. The Python episode. We did indeed. So if you want to know the further details,
|
||
|
|
just go back to the Python episode. Links will not be in the show notes, so you have to go back
|
||
|
|
to the bank catalogue, not a search point, or use your favorite search engine to find this episode.
|
||
|
|
The corresponding pep is 404 published, I think, in 2008, links maybe in the show notes,
|
||
|
|
where Gideff and Rossum, who is the Python inventor, and friends said there won't be any
|
||
|
|
any Python 2.8 release. So Python 2 died, essentially, with version 2.7. That was in 2019.
|
||
|
|
Now, the drawback with moin moin was actually that they had started a moin moin port version 2
|
||
|
|
from Python 3 or from Python 2 to Python 3. But there were a couple of dependencies that were
|
||
|
|
never really ported. So because I was one of the maintainers of the CMS systems for the
|
||
|
|
of the CMS system for the local look, I took a look and that was around 2018 time frame give or take
|
||
|
|
at the remaining package that hadn't been ported to Python 3. And simply said,
|
||
|
|
in 2019, I'm going to take a stab at it and port the remaining packages from Python 2 to Python 3
|
||
|
|
so that the project could close this delta and then move on to full blown moin moin version 2
|
||
|
|
with proper Python 3 support. Now, sorry, the should have called it the moin moin 3, sorry,
|
||
|
|
can I? Well, that didn't. But then life hit and I didn't have any time in 2019 to conclude this
|
||
|
|
effort. We the luck as in we then were facing the issue that Python 2 was going out of support
|
||
|
|
and we wanted to move the website to something different. So we checked out quite a few
|
||
|
|
on CMSes but none of them fit the bill and some hipster. A member of the luck came up with this
|
||
|
|
notion of a static size generator. So Martin, why don't you tell us what you know about
|
||
|
|
static size generators in contrast to CMSes? Well, as the name says, it is not all
|
||
|
|
and well, you were really as this, it's no longer a dynamic process of generating a page when the
|
||
|
|
demand is occurs for content. It's all prebuilt. So you have content, templates and pre-build
|
||
|
|
into the generator does the generation of the HTML for whatever is going to be requested beforehand.
|
||
|
|
And so when the request is made, it's just purely serving up the page rather than doing the dynamic
|
||
|
|
version that CMS does. And that concludes today's episode. Thank you for listening.
|
||
|
|
No, Martin Spotted is actually quite well. No, man, I couldn't name for this.
|
||
|
|
I mean, you missed a few days, but essentially, that's pretty much it. So the idea going back
|
||
|
|
to comparing our CMSes to setting such generators, that's exactly what Martin said. Essentially,
|
||
|
|
CMSes regenerate the page based on requests, but a static size generator simply takes the
|
||
|
|
mark down. It's like comparing an interpreter like Python to Compat, like Rust or C. So a static
|
||
|
|
size generator basically takes the mark down and converts this into HTML and CSS, of course,
|
||
|
|
as in cascading strategies, which essentially is the templating engine behind or sorry,
|
||
|
|
not the templating engine. What's what I'm looking for? Style sheet
|
||
|
|
language, i.e. what gives HTML the looks, let's put it this way, simplified version,
|
||
|
|
and generates these based on the mark down language that it's presented with. So you take the
|
||
|
|
mark down language, you take some templates, you fit this into the static charge generator and
|
||
|
|
outcome CSS files and HTML files. You put this onto a web server and then you have a static
|
||
|
|
site that can be delivered to browsers, lighting fast, because you don't have to generate the
|
||
|
|
content on the fly like a CMS does, but rather it's pre-build, it's pre-find and it can be delivered
|
||
|
|
statically. And that's the big difference between the digital CMS and static charge generators.
|
||
|
|
Of course, the static charge generator misses a very important feature. Doesn't do a versioning,
|
||
|
|
and it doesn't have any notion of users access control and all the rest of it.
|
||
|
|
So quite a few smart people came to the notion of or came up with the idea of combining a
|
||
|
|
versioning control system that has all these traits of features and actually is such a generator,
|
||
|
|
meaning you use your version control system and as part of the
|
||
|
|
commit, push, push, push process, whatever you want to call it based on your particular
|
||
|
|
system, it regenerates the static website on the fly. That's the general idea behind
|
||
|
|
combining a version control system and a static charge generator.
|
||
|
|
Needless to say, the lack of Frankfurt wasn't the first one or wasn't the first group that came
|
||
|
|
up with the concept. Interest, it's tried and tested concept. It has been done before quite a few
|
||
|
|
times, but we simply bore the idea and never get it back. So what we did, we combined something
|
||
|
|
called Guitier, which is essentially a Git front end, like Git lap, like GitHub on a commercial
|
||
|
|
basis and something called Yugo, which is a static charge generator written in Go. Quite a few
|
||
|
|
people looked at other approaches, like what is called lecture, it's Python based, something
|
||
|
|
like Pelican also, Python based and a number of other approaches, but Yugo made the mark in terms
|
||
|
|
of convincing with speed, resource efficiency and at the end of the day, easiness of use.
|
||
|
|
So what we did is essentially we set up the Guitier instance, of course, links will be in the show
|
||
|
|
notes. We set up the Guitier instance, we defined the users, we defined the rights of the users
|
||
|
|
as in who is access to the repository, who can clone the repository, who also has right access
|
||
|
|
in terms of pushing any request, as in pull request, back to the site, and then a so-called
|
||
|
|
webhook, I'm going to explain what that is in a minute, take scare on each and every delta check
|
||
|
|
in of the modified content of regenerating the website on the fly, a webhook, and this is
|
||
|
|
pretty well documented, actually, in the Guitier documentation, but also in the derivatives
|
||
|
|
like Guitier and so on and so forth, or Guitier lab for that matter, a webhook essentially
|
||
|
|
allows you to incorporate, I'm tempted to say plug-ins, before a commit, after a commit, and
|
||
|
|
during a commit. What we essentially did is we told Guitier, now look, if somebody with a
|
||
|
|
necessary rights of course, pushes back a change to the server, take this change, and rerun
|
||
|
|
you go on the fly, meaning that essentially a contributor can modify the website based on
|
||
|
|
his local copy, which he or she has or it, because we are inclusive, has generated on the fly by
|
||
|
|
simply cloning the website, he can then use a light hdp nginx or even a patchy instance on his
|
||
|
|
local laptop machine to try out any changes before committing it, once he or she or it is satisfied
|
||
|
|
with the changes, he simply commits and then does a push to the Guitier server, and as part of this
|
||
|
|
push, authorize of course, Hugo is involved and regenerates the website on the fly, and that's
|
||
|
|
pretty much it. Excellent. So, a question here, is the webhook piece, the extra bit Guitier
|
||
|
|
delivers you over any other version control system? No, actually, Guitier already defines webhooks,
|
||
|
|
so full disclosure, when Martin did our beautiful website, I supplied the Guitier instance,
|
||
|
|
and if you take a look at livings in-laws, we do not use a static search generator, so we actually
|
||
|
|
or we actually hack the website ourselves, so we edit the HMI code, and I want some to just say
|
||
|
|
some scripts that also take care of the HPR automation, do also hack the website, but it may be
|
||
|
|
details in the future show, depending, but the point is once either Martin, myself, or any
|
||
|
|
script, does a Guit commit, a webhook also runs on our server, and essentially incorporates that
|
||
|
|
change into the service how to HTML. So, a webhook is already present in Guit, it's not Guitier
|
||
|
|
specific, it's not Guitier specific, it's not Guitier specific, it's not Guitier specific, it's just a
|
||
|
|
matter, it's just a piece of automation, plug-in base that runs as part of the overall push
|
||
|
|
infrastructure. Yeah, so why don't you remind the listeners of the benefits of Guitier in this case?
|
||
|
|
In contrast to native Guit, Guitier has a beautiful web-based UI, has a sophisticated admin panel
|
||
|
|
in terms of role control, you can create roles, you can create users, you can attach roles to users,
|
||
|
|
you can administer users on all the rest of it, it's very comparable to Githlab in that matter.
|
||
|
|
As in the community edition, you can download for www.githlab.com or whatever it's called these days,
|
||
|
|
and this is of course the thing that we need it because not everybody in the luck is reading that
|
||
|
|
from really the command line, and it also allows people to, and this is the beauty, and this is
|
||
|
|
also, this is also present on Github or other infrastructure infrastructures, it actually allows
|
||
|
|
you to modify a file on the fly, so in contrast to the order workflow where you clone a repo,
|
||
|
|
then you make any changes, and then you say commit, and then you say push origin or push
|
||
|
|
march or something like this, you can actually go into the web front end, go down to the file if you
|
||
|
|
have the corresponding permissions, and change the file using your browser, so what Githier
|
||
|
|
then does in the background, it will actually do a clone of the repo, with a modified file based
|
||
|
|
on your inputs, will do a commit, and push pretty much automatically, that saves you of course,
|
||
|
|
doing this manually on the command line, and also occupying or reserving space on your local hard drive.
|
||
|
|
This is a little on feature that as far as I know most, if not all, of the web based source
|
||
|
|
of the web based, get clones like Githier, Githlab, and Github do, or offer more or less,
|
||
|
|
pretty much these days, as in out of the box.
|
||
|
|
Now for Canon friends, you mentioned Hugo, how, what can you say about that in terms of
|
||
|
|
ease of use, that you mentioned it's based on go, and stuff like that, do people need to know,
|
||
|
|
go, for example, to really use it, or what was the experience with that part?
|
||
|
|
If you want to know, yeah, if you want to use Hugo, it already takes about 20 years of
|
||
|
|
goal-line experience, so you should be able to use it on the fly. Given the fact that
|
||
|
|
goal has been the existence only for the last 15, that's a bit of a problem, isn't it?
|
||
|
|
No, I'm joking. Hugo is actually part of the most of operating system repositories,
|
||
|
|
so you can install it using your order package management system.
|
||
|
|
If, for some reason, it's not part of your S3 pose, simply clone,
|
||
|
|
be code-based from Github, I think it is, things moving to show notes, and simply build it yourself.
|
||
|
|
Now, Go has come along with a similar terrestrial format, a long way since it's inception,
|
||
|
|
in terms of building an executable, so all you have to do is basically, you have to invoke,
|
||
|
|
I think it's called Go Builder, some sort of this, in the clone repo, it pulls down any dependencies,
|
||
|
|
compiles it on the fly on the machine where you are on similar terrestrial, and then builds
|
||
|
|
statically linked executable, also similar to Rust. So that means, within no time, you have a fully
|
||
|
|
functioning Go at your disposal. Go is pretty powerful. If you take a look at the documentation,
|
||
|
|
it's pretty well documented, has its own templated engine or the rest of it, but also supports
|
||
|
|
a pretty powerful macro language. That, for example, allows you to execute scripts as part of the
|
||
|
|
generation phase of your website. We use this actually to incorporate, for example,
|
||
|
|
JavaScript code in the statically generated website, and some other magic.
|
||
|
|
So it's pretty powerful, and it can be pretty easily extended, but that goes for most
|
||
|
|
of the static such generators.
|
||
|
|
Okay, so it sounds like you can get, you can get by with the macro language instead.
|
||
|
|
That's fair to say.
|
||
|
|
I mean, they pretty much work like, I mean, I'm almost tempted to say they are like Python-based
|
||
|
|
web front, and they are like CMSs, they are like any other framework that you use, or even women
|
||
|
|
or cars. Yes. The way it works essentially once you know one, pretty much you know them all,
|
||
|
|
because they're very similar. I mean, cars may have different colors, may have different
|
||
|
|
weird types and sizes and all the rest of it, but essentially cars get you from A to B.
|
||
|
|
Same goes for women, same goes for women. Of course, don't get you from A to B, but you get
|
||
|
|
rid of it anyway. The static such generators are pretty similar in terms of they take a
|
||
|
|
markdown language, take a template, take a template that you normally also do fine in the type of
|
||
|
|
markdown language, and then simply generate your CS as an HTML files. Any hate myths with regards to
|
||
|
|
my previous remarks about gender, what's the one I'm going for? Gender equality, exactly.
|
||
|
|
Please send that to Martin Vista at. I'm joking. Jokes aside, this is an all-inclusive show. Martin
|
||
|
|
of course is now free to make any non-jovonistic jokes. You stuck with the show for the sick ones,
|
||
|
|
right? I'm afraid so, yes. No jokes aside. I mean, the upside is, it may sound complicated,
|
||
|
|
but at the end of the day, it's not, because the way you normally do it, or the way we actually did
|
||
|
|
it, we pulled down... I don't need to tell people how long it took you to go from where you were
|
||
|
|
before to implementing this piece where there's skipped people's idea about how much effort it took
|
||
|
|
about half an hour. Then 50 minutes for Q&A, then we were off to the races. Jokes aside. So maybe I should
|
||
|
|
share some of that, or not how we did it. We, you go like any other specific judgment, it comes
|
||
|
|
with a few examples that gives you basically a quick start in terms of how the how aside works,
|
||
|
|
what you have to take into consideration, how the template works, all the rest of it. So it's not
|
||
|
|
it's not that hard. So what we did, we took an existing example, and simply took the content that
|
||
|
|
we exported from Moin Moin, and that gave us at least the content in a somewhat HTML-based fashion.
|
||
|
|
We then did some automation with regards to translating the existing contents to the markdown
|
||
|
|
that you will require, made the changes to the templating engine, did some layout improvements,
|
||
|
|
migrated the macros as in the stuff basically, the Python-based macros from the Moin Moin
|
||
|
|
side to the Hugo-based equivalence, that pretty much meant rewriting about six scripts,
|
||
|
|
something like this six Python scripts into PHP, Shell, and some other scripts that are invoked as
|
||
|
|
part of a Hugo static type generation process. So essentially these are the macro definitions,
|
||
|
|
you put in your side, you put in your side, and as part of these macros, you would detect these
|
||
|
|
macros once it comes across them and invokes the corresponding plugins. It sounds complicated
|
||
|
|
about at the end of the day, it's not, it's pretty straightforward. We have about, I'm tempted to
|
||
|
|
say about 30 pages. From the old website, it took us about a reckon in total about a man month,
|
||
|
|
not even full-time. So reckon within three weeks, two to three weeks full-time, the whole content
|
||
|
|
had been translated, the macros had been converted as in migrated as in translated, the layout had been
|
||
|
|
migrated and the site had been Q8, as in tested. And presumably you're going to put the link to the
|
||
|
|
user website, the show notes? Absolutely. So the point that I'm making is, never mind of what
|
||
|
|
static type generation you choose, simply give it a spin, they are not that hard to set up, and most
|
||
|
|
of them, I looked at Pelican, somebody else looked at Hugo, somebody else again looked at
|
||
|
|
other site generators, we agreed upon using Hugo, but then once that decision had been made,
|
||
|
|
the learning curve was a reckon a weekend, and then you were off to the races.
|
||
|
|
Nice, nice, okay, excellent. So can take note. Yes. Well, I do, there's probably a few more pages on
|
||
|
|
HPR, but looking at the HTML code on HPR, it shouldn't be too difficult. So can get in touch with
|
||
|
|
cheap. Sorry, we have a very good cost efficiency ratio, that's what I'm trying to say. Anyway,
|
||
|
|
any, any, any final questions before we get to the sponsored feedback and some other sections?
|
||
|
|
No, I think that was a very nice summary on the subject, so well done, and check out the links on
|
||
|
|
the show notes. Yes, indeed. And that brings us nicely to the feedback. So Martin, yes,
|
||
|
|
why don't you give it a shot, since I've been doing all the talking tonight. I guess that's
|
||
|
|
only fair. My deal is quite a long time. So yeah, so we have feedback on three episodes in one,
|
||
|
|
as in from who? From BQ. Yes, our favorite listener. Well, our favorite listener in terms of
|
||
|
|
providing feedback as well. Yes. Yes. Okay, so he has feedback on three episodes. First one is
|
||
|
|
episode 44 around that was Pac-Wire, if I'm not mistaken. And he found the interview with Tim
|
||
|
|
Bainman's fascinating and informative. So for some reason, there is a fact around the build record
|
||
|
|
for dissolving the Rubiss cube because the guy had a similar name to him, which is 5.09 seconds
|
||
|
|
apparently, which is my record when I was 14, 12, was in I 45. So that's yeah, and this is known as
|
||
|
|
a fun fact, of course. Yes, fun fact. Okay, so on episode 45,
|
||
|
|
yeah, quite nice comment actually. Never before did I think that the matrix can be any good
|
||
|
|
with that Neo, but you proved me wrong. Interview with Neil Johnson was good. Thank you, BQ.
|
||
|
|
So if you if you can drag Neo along, we are more than happy to do a rerun of the matrix episodes.
|
||
|
|
Resurrections are not good thinking. Yes. Okay. If you're listening, Neo, get in touch.
|
||
|
|
Of course he is. Oh, really do you want that better? Because as I said previously, we are not
|
||
|
|
gender biased. Very important. Okay. So final bit of comment from BQ is on episode 46 and he has
|
||
|
|
an interesting comment here saying that this type of content that sets this is the type of content
|
||
|
|
that sets the Linux apart from the other Linux related podcasts and make it quite unique.
|
||
|
|
I'm not sure if this is good or bad, but it's good. Yeah, it's wrong. Yeah, from our point of view,
|
||
|
|
it's good. So really, really educational and informative. And so on this was the PVB
|
||
|
|
episode. And he has some comments on our dark side text port, which he says he's
|
||
|
|
why don't you read this out because it's worth it. Yeah, even though I think Margaret Fetcher has
|
||
|
|
died already. Margaret Fetcher reminded me of that amazing dark side text port episode featuring
|
||
|
|
Liam, I think, and the election results. That was button and that was the first dark side episode.
|
||
|
|
Yes. Yes. Very important. That was where dark side became a part of the Mac be important and
|
||
|
|
see eternal. I'm tempted to add. Yes. Anyway, he's asking for more dark sides. So how much money
|
||
|
|
did you give him? Quite a lot, right? That's like interesting business, but always
|
||
|
|
don't see us. No mountains do spill the beans. Yes. Anyway, he says keep up with it works. Thank you,
|
||
|
|
Oh, yes, sorry. There was another comment about the pronunciation of GTI or GTI or
|
||
|
|
GTI or SSR, but it can all be solved by visiting the website where it is explained how it is
|
||
|
|
pronounced. Yeah, it may be GTI, it may be GTI, I do not know. Well, if you have a song in the
|
||
|
|
city, you have to feed back a little bit of what are you? Indeed. And before we go into the
|
||
|
|
practice, it is to say jokes, I'd anybody listening in seconds, animals, females,
|
||
|
|
stubborn, neutral neutrons, is that what I'm looking for? Man, it doesn't matter, man, men, women
|
||
|
|
alike, the diverse, whatever, do set feedback to feedback and let them send also to you. If you
|
||
|
|
want to send us money, it's, I'm almost sent to say Patreon, but I haven't set up the Patreon
|
||
|
|
account yet. So we just sent an email to sponsor a little send us, we will get in touch.
|
||
|
|
And with that onto the boxes, man, what's your box? My box is, I guess it's, I have to say,
|
||
|
|
let me guess Margaret Techer. No, no. Oh, actually, I have more than one. Queen Elizabeth.
|
||
|
|
On one, which one shall I choose? Interesting. Prince, what does it have got Andrew,
|
||
|
|
different first? No, no. No. No, no. Prince Charles. No monarchy, didn't roll.
|
||
|
|
It's your monarchy, it's exactly. You're disappointed. It's hard to choose actually.
|
||
|
|
So many topics to choose from, let me just print Harry, the breakaway.
|
||
|
|
Is he still a prince?
|
||
|
|
I do not know.
|
||
|
|
You tell me.
|
||
|
|
What apparently has varied outside the whatever, what's the whatever for Gentry?
|
||
|
|
Maybe not.
|
||
|
|
And much more importantly, he has defected to a breakaway nation called the U.S. of A.
|
||
|
|
All four were completely mistaken.
|
||
|
|
Yes, probably exactly.
|
||
|
|
Yes, all very disappointing.
|
||
|
|
I'm guessing but hey, what do I know about royals?
|
||
|
|
More than I do by the sound of this.
|
||
|
|
Yes.
|
||
|
|
Have you cancered your Hello Suscritchner on the mountain?
|
||
|
|
I don't have one.
|
||
|
|
You can't have the truth.
|
||
|
|
The last time I visited you, you had it on your table.
|
||
|
|
You had it on your coffee tables.
|
||
|
|
But yeah, but did you see that was only that was the last 20 years.
|
||
|
|
You're playing reading it, reading it, reading it.
|
||
|
|
You see, I never venture into your into your into your set up to discover the backlog.
|
||
|
|
Excellent.
|
||
|
|
No, you don't want to go there.
|
||
|
|
No, I don't.
|
||
|
|
Okay, back to the boxes.
|
||
|
|
Yeah, I'm going to go with with Richard actually.
|
||
|
|
With what?
|
||
|
|
Reacher.
|
||
|
|
It's a bit like what Tom Clancy liked, but it's not by Tom Clancy.
|
||
|
|
Jack Reacher.
|
||
|
|
Yes.
|
||
|
|
Why don't you enlighten the few listeners who do not know who that is about the details?
|
||
|
|
Okay.
|
||
|
|
Is some sort of cheap action serial?
|
||
|
|
Well, you may, you're probably familiar with Tom Cruise, right?
|
||
|
|
Oh dear.
|
||
|
|
Because it's not a movie, it's a series.
|
||
|
|
So Tom Cruise is a series.
|
||
|
|
I thought it was an individual.
|
||
|
|
No, no, no, no.
|
||
|
|
Maybe a blog.
|
||
|
|
Tom Cruise is not in the series called Reacher, but he did make the movies with Jack Reacher as the main character.
|
||
|
|
I see.
|
||
|
|
And he's on books by a writing person.
|
||
|
|
Like an author?
|
||
|
|
Excellent, excellent, excellent.
|
||
|
|
Anyway, they had a new series.
|
||
|
|
It's quite amusing.
|
||
|
|
It's light entertainment for that one.
|
||
|
|
But what are you?
|
||
|
|
Okay, entertaining.
|
||
|
|
So how many IMDb subs we're looking at?
|
||
|
|
Two, maybe three?
|
||
|
|
I don't get it.
|
||
|
|
It's light entertainment.
|
||
|
|
Because they're reliable, if you ask me.
|
||
|
|
They are, they are not.
|
||
|
|
They don't work.
|
||
|
|
No.
|
||
|
|
But they go by the...
|
||
|
|
This is the thing about anything rating space, right?
|
||
|
|
You get ratings from people who rate things good or bad.
|
||
|
|
They don't give ratings to people that don't give ratings.
|
||
|
|
So you end up with a biased view of a rating, unfortunately.
|
||
|
|
So Martin, that means you have finally revamped your bots and be improved them.
|
||
|
|
Therefore, ignore all ratings or views.
|
||
|
|
Especially if they're not much from us.
|
||
|
|
Forget your own mind and decisions on these things.
|
||
|
|
I see.
|
||
|
|
Okay.
|
||
|
|
Yes, in that case, basically, I'm going to, I'm going to,
|
||
|
|
I'm going to refer to movie two.
|
||
|
|
It's called comeback trail.
|
||
|
|
As Martin said, ignore the ratings on IMDb.
|
||
|
|
I think it clocks in at six or seven.
|
||
|
|
I would give it an eight to be honest with you.
|
||
|
|
Don't let the nearer.
|
||
|
|
Yes, that's exactly it.
|
||
|
|
Robert and yours plays a failing producer.
|
||
|
|
Who comes up with the idea of making some money that he uses or will use.
|
||
|
|
To pay back, to pay back a mobster.
|
||
|
|
And he does so by coming up with the idea of doing one last gig as in producing one last film.
|
||
|
|
Not with the intention of putting this onto a service screen, but rather cashing in on the insurance premium.
|
||
|
|
Of one of the main actor dying.
|
||
|
|
Right.
|
||
|
|
As part of the movie production.
|
||
|
|
Is this an accidental death?
|
||
|
|
Is it so?
|
||
|
|
Yes, funny enough.
|
||
|
|
No, it's it's it's it's one of the most.
|
||
|
|
I mean, yeah, I mean, you look at drop it in Euro as a producer.
|
||
|
|
Will you look at what is it?
|
||
|
|
It's not Thompson, but I have an out here.
|
||
|
|
If you're looking at the IMDb page already, what's the question?
|
||
|
|
There's the the antagonist is Hunter Thompson.
|
||
|
|
No, it's not.
|
||
|
|
James Morgan Freeman.
|
||
|
|
No, no, no, no, no, no, no, no, no, no, let me look at myself.
|
||
|
|
And it's I don't want to talk about a minute ago.
|
||
|
|
It's probably Jones, of course, playing the actor soon to demise.
|
||
|
|
Now, of course, this is sorry.
|
||
|
|
Name is four.
|
||
|
|
Quite a few movies.
|
||
|
|
I'm tempted.
|
||
|
|
No, you don't know Tom Lee Jones.
|
||
|
|
No, no, no, I'm asking the question.
|
||
|
|
What's he mostly?
|
||
|
|
No, I mean, no, it's I mean, you're looking at what?
|
||
|
|
Mad and black.
|
||
|
|
Yes, example.
|
||
|
|
It's one there.
|
||
|
|
Hold on.
|
||
|
|
Anyway.
|
||
|
|
No, what I'm what I'm what I'm what I'm what I'm trying to say before Martin rudely interrupted me.
|
||
|
|
It's one of the it's one of the best dark,
|
||
|
|
because comedy that I've seen over the last couple of years.
|
||
|
|
I'm tempted.
|
||
|
|
It's just just a few highlights.
|
||
|
|
That's the film starts off with
|
||
|
|
with with with with with with with
|
||
|
|
Robin Nero and the sidekick essentially is nephew sitting in front of cafe.
|
||
|
|
And a couple of months are protesting in front of his cinema against his last movie that tanked.
|
||
|
|
And then they come up with this idea or then Robin Nero comes up with this idea of
|
||
|
|
actually recruiting a an actor that is soon to be to be to be sunset anyway.
|
||
|
|
So they go into this retirement home and just try to pick an actor.
|
||
|
|
And without further spoilers.
|
||
|
|
Needless to say, Tommy Jones doesn't die.
|
||
|
|
But rather.
|
||
|
|
I mean, that's just a spoiler, actually.
|
||
|
|
Okay, so, but okay.
|
||
|
|
Watch the movie yourself.
|
||
|
|
Tommy Jones doesn't die.
|
||
|
|
Neither does the character in that.
|
||
|
|
He put his and just watch the movie.
|
||
|
|
I'll have a happy ever after.
|
||
|
|
Exactly.
|
||
|
|
One more.
|
||
|
|
And anyway.
|
||
|
|
And of course, if you're if you're a fan of Morgan Freeman, he's also in that movie as as as the mob's turn.
|
||
|
|
Yeah.
|
||
|
|
Yeah.
|
||
|
|
Who.
|
||
|
|
Yeah.
|
||
|
|
Robert.
|
||
|
|
You know, actually, it's the money too.
|
||
|
|
Okay.
|
||
|
|
Cool.
|
||
|
|
That's pretty much it for my pick.
|
||
|
|
As I said, don't miss this.
|
||
|
|
It's very funny.
|
||
|
|
Done.
|
||
|
|
Alrighty.
|
||
|
|
And with that, we are almost done, right?
|
||
|
|
Almost.
|
||
|
|
Yes.
|
||
|
|
Do we miss something?
|
||
|
|
Mm-hmm.
|
||
|
|
Okay.
|
||
|
|
And then we're done.
|
||
|
|
Yes.
|
||
|
|
Very good.
|
||
|
|
Thanks for listening, as usual.
|
||
|
|
And see you next time.
|
||
|
|
See you soon.
|
||
|
|
This is the Linux in-laws.
|
||
|
|
You come for the knowledge.
|
||
|
|
But stay for the madness.
|
||
|
|
Thank you for listening.
|
||
|
|
Thank you for listening.
|
||
|
|
This podcast is licensed under the latest version of the creative comments license type attribution
|
||
|
|
share like credits for the intro music go to blue zero sisters for the songs of the market.
|
||
|
|
To twin flames for their peace called the flow used for the second intros.
|
||
|
|
And finally to select your ground for the songs we just use by the dark side.
|
||
|
|
You find these and other details licensed under cc hmando.
|
||
|
|
A website dedicated to liberate the music industry from choking copyright legislation and other crap concepts.
|
||
|
|
You've been listening to Hacker Public Radio at HackerPublicRadio.org.
|
||
|
|
Today's show was contributed by an HBR listener like yourself.
|
||
|
|
If you ever thought of recording a podcast, then click on our contribute link to find out how easy it really is.
|
||
|
|
Hosting for HBR is kindly provided by an honest host.com.
|
||
|
|
The internet archive and our sync.net.
|
||
|
|
Unless otherwise stated today's show is released under a creative comments attribution share like 3.0 license.
|