Episode Transcript
Transcripts are displayed as originally observed. Some content, including advertisements may have changed.
Use Ctrl + F to search
0:03
I need to consolidate some services
0:06
and I might need your help. Are these
0:08
financial services or legal services?
0:11
Into one affordable monthly payment by any chance?
0:15
One affordable large monthly payment? No,
0:18
I have realized that I'm spending
0:20
a little bit too much on internet
0:22
services, as in VPSs
0:25
and stuff, and I haven't
0:28
been choosy enough with the pricing, so
0:30
I went and found somewhere that was a bit cheaper that
0:32
could provide me with internet services.
0:35
But that means I'm gonna have a new server somewhere
0:37
and I need to migrate some existing
0:39
stuff in there, and I can't
0:42
quite decide how to do this,
0:45
and I might need a bit of your help to help convince
0:47
me, okay? Okay, so you're
0:50
actually not talking about where, but
0:52
how you want to run these
0:54
services. Is that the gist of this? Yes,
0:57
I'll outline what those services are, right?
1:00
So my own personal website is
1:02
on a BitFolk VPS that I've had
1:03
for
1:04
like a decade or more. It's 1804,
1:07
32-bit, I can't really upgrade
1:09
it anymore, it's running out of space constantly,
1:12
I need to do something. Yes,
1:14
I could pay for a new VPS from BitFolk, and
1:17
I love BitFolk and I want to support him, but
1:20
I can't justify that,
1:22
because I also have
1:24
a server at Linode running
1:27
what I call popey spades, it's open spades,
1:29
an online game. It's running a couple of servers, but it's
1:31
the tiniest of tiny Linodes. Those
1:33
aren't the problem. The big problem
1:36
is Ubuntu.social, which
1:38
is a chunky box
1:40
at Linode, and Linode
1:43
is relatively expensive, and I've
1:45
shopped around and I found something
1:48
cheaper, and it's a dedicated
1:51
box at Hetzner, Germany.
1:54
Now, brief sidebar, signing
1:56
up for Hetzner was a challenge in and of itself.
2:00
You go to their website and there's loads and loads of options
2:02
for all different sizes of machines, right? And
2:05
the machines are either in Finland or Germany
2:07
or somewhere else. I don't really care
2:09
if the internet is all the same. And
2:11
I clicked a button and was like,
2:14
buy that please. And he said, okay, you need to sign
2:16
up. So I sign up. And he says, okay, you need
2:18
to put in a payment method. So I put in
2:20
my credit card details. And as soon
2:22
as I did that, it said we
2:25
have detected some kind of bizarre behavior
2:27
and we've deleted your account. Wow.
2:29
Oh, yes. So as soon as I put
2:31
in my credit card details, I was persona
2:34
non grata. And I
2:36
thought, well, that's not a good start. It
2:39
was all resolved by shouting
2:41
at them on Twitter and they
2:44
DMed me and I went through their
2:46
customer support and told them, I am
2:48
a genuine human being who wishes to purchase
2:50
services from you. Even after this,
2:53
I still want to purchase services from you.
2:55
Sidebar because you're quite cheap. And
2:58
so I have a server and it's
3:00
a chunky box. It's cheaper than everything and
3:03
and if I consolidate all these things together now,
3:06
that's the end of the sidebar. I've got a box. Okay.
3:09
So
3:09
you say you've got a box. I think
3:11
you said you would got you'd got like two
3:13
VPS is and a chunky box. So
3:15
were any of those bare metal and
3:18
is this new thing a big
3:20
VPS or is it actual
3:23
server? It's an actual server. Aha
3:26
the VPS is two of them.
3:28
The Bitfoc VPS is a Zen
3:31
domain. I think is the implementation,
3:33
but it doesn't really matter. It's just a small I've got
3:35
a small part of a small box and
3:38
the Linode Popi
3:40
spades is like the smallest shared
3:43
machine. You can get tiny is like a gig
3:45
of RAM or something. It's super tiny. Right. Those
3:48
aren't the real problems. The big one is I
3:50
need to move the whole masters on thing.
3:52
Now I have moved masters on
3:54
in the past. You may remember it used
3:57
to run on a server in my office. And
4:01
I used nginx on the outside world to
4:03
proxy into and tunnel into
4:06
and it worked fine for a small number of users,
4:08
right? Where small number is one
4:10
me and now there are more users and
4:13
I want to put it on something But beefy now I
4:15
could migrate the same way that I did last time
4:17
and that is Handwavy our
4:20
sink all the files across Set
4:22
up the config install all the stuff
4:25
shut it down at the old place back up everything
4:27
make do one last our sink back up The database
4:29
restore the database make sure the config works. Yeah,
4:32
yeah, yeah, you know, that's not hard
4:34
to move services from one place to another
4:37
It's manual and I've got documentation
4:39
and I've done it before and it isn't like super
4:41
hard, but it's time-consuming but what
4:43
I would also like to put on that box is my personal
4:45
website and poopy spades
4:48
and All of that
4:50
is currently on the inverter commas
4:53
bare metal. There's no containerization
4:55
of any kind now I don't like
4:57
Docker we know this You
5:00
are aware dear listener. I'm not a fan
5:02
of the dockers And so
5:04
I I'm not quite sure what to do. Should
5:07
I do that? Should I? Create
5:09
these containers and
5:12
put everything in its own container It's
5:14
what I would do, but it depends
5:16
on why you don't like it and other
5:18
container runtimes are available
5:21
Yeah Is it that you don't like containers
5:23
or is it specifically something about a docker
5:25
that you don't like doing stuff
5:27
with it and you'd be Happy building
5:29
a container in a similar way, but running
5:31
on something else I don't know is that the
5:34
mental model of docker docker is a bit weird for
5:36
me because it's kind of inside a thing That's
5:38
a bit like a VM, but it's not a full
5:40
VM and I've
5:43
had problems with it in the past where I couldn't
5:45
I couldn't quite grok What was
5:47
inside and what was outside? Yeah, I
5:50
certainly had that problem at first. Yes, right
5:53
So there's a bit of a learning curve there and
5:55
you know part of me thinks Alan just man up. It's 2023
5:58
I just use docker. I mean it doesn't get around
6:00
a lot of the problem of having to migrate the data
6:02
because the data that you'd be are
6:04
thinking about is the stuff that doesn't live inside
6:07
the container. So you still need
6:09
somewhere sort of permanent
6:12
for the data to live as well,
6:14
which then gets mounted on the container. So
6:17
even if you have the software nicely packaged and easy
6:19
to deploy, you still have
6:21
to think about where is all of the
6:24
stuff going to live that it uses.
6:27
So that's interesting. I hadn't thought that.
6:29
I thought it would all be inside this box, inside
6:32
a box somewhere in Germany. But
6:35
if that's the case, then I don't really see the advantage
6:38
because I'm already pretty okay with administering
6:40
Mastodon and Postgres
6:43
and all the other bits and bobs and Ruby and
6:45
everything. The thing is that
6:47
they're not containerized. And so
6:50
I will have a web server running
6:52
my personal website, which is just a static website.
6:54
It's only Hugo, but then there's
6:56
this Mastodon thing on the same
6:59
box. But then there's also OpenSpace,
7:01
which actually is running as snaps. I
7:04
built a snap of OpenSpace. So those are containerized
7:08
games. Yeah. So the advantage that
7:10
you get there if you move them all to containers
7:12
is you don't risk them accidentally stomping
7:14
all over each other when you're upgrading
7:17
things or installing things.
7:19
Like if you've got the Mastodon
7:22
stuff all in its own container, you've got another
7:24
container, which is just a web server. And then
7:26
you've got something possibly snaps,
7:29
possibly another container of some sort with
7:31
the OpenSpace stuff in and you don't have to worry
7:33
about them conflicting with each
7:35
other. Yeah. While that's true, they
7:38
already aren't going too much
7:40
because my own website is all static
7:43
HTML and CSS images and stuff. And
7:46
that's not hard work. And there's nothing active
7:48
in there. There's no PHP or anything. And
7:51
OpenSpace, like I said, is inside a snap.
7:54
And so everything that is to do with it is inside
7:56
a confined
7:58
directory.
7:59
I'm finding it really hard to justify
8:02
the effort but I know everyone
8:04
is shouting at me you should do it and
8:07
I can hear it over the internet people telling me
8:09
I should use containers it's the right
8:11
practice to do but
8:13
yeah I'm finding it really hard to justify it.
8:15
I have a sort of kind of middle ground
8:18
for you so first of all I'm
8:20
going to say anyone that's listening to
8:22
this and they're about to send us
8:24
feedback and the words kubernetes
8:27
are in that feedback don't bother Alan
8:29
isn't going there right this is this is not
8:31
the direction of travel we are
8:33
headed in so I'm not I'm not spinning
8:35
up 20 boxes for kubernetes no hyperscale
8:38
open space but what
8:41
you might like is if you
8:43
use Proxmox which
8:46
is the operating system
8:48
that runs on the metal and
8:51
it has got a web front end
8:53
which enables you to create
8:56
visualize and you can deploy
8:58
in the usual way containers
9:00
I'm going to say docker containers
9:02
but you know OCI containers using
9:05
docker or podman or whatever and
9:07
also virtual machines so
9:09
you could use something like that
9:11
because I think that would help overcome
9:14
this sort of inception
9:16
visualization sort of block
9:19
that you have with what is this thing and where
9:21
is it if you can actually see through
9:23
like you know a management interface here
9:26
are all of my containers that are running
9:28
and this is what they are and here are
9:30
also the virtual machines and I would also say
9:33
that whilst yes containers are
9:36
definitely the sort of de facto
9:38
it's okay to use virtual machines if
9:40
you find that easier and in some respects
9:42
for something like mastodon that
9:45
may be advantageous because you could
9:48
define the size and scope
9:51
of the virtual machine instance more
9:53
easily in order to constrain
9:55
it so it doesn't overwhelm other things
9:57
that you're running on your box
9:59
That is a very fair point. I could
10:02
rein it in a little bit with this space
10:04
and see give it only a small number of CPUs for
10:07
example, yeah, because it is quite a beefy
10:09
box. It's got like more
10:11
CPUs than I need and That's
10:14
actually something I should consider. I think
10:16
what I need to do is make
10:19
some notes and maybe
10:21
put it in a blog post and let
10:24
people know what I'm thinking and then Solicitly
10:27
opinions of our listeners and anyone
10:29
else who passes by and tells me
10:32
I'm doing it wrong and I'm I should do it differently
10:35
I'm sure people will have opinions. This
10:37
is the internet after all
10:42
Linux Matters is part of the late-night Linux
10:44
family
10:45
If you enjoy the show Please consider supporting
10:47
us and the rest of the late-night Linux team
10:49
using the PayPal or patreon links at Linux
10:52
Matters dot sh support
10:55
For $5 a month on patreon you can enjoy
10:57
an ad free feed of our show or
10:59
for $10 get access to all the late-night Linux
11:02
shows ad free You can
11:04
get in touch with us via email show
11:06
at Linux Matters dot sh or chat
11:08
with other listeners in our telegram group
11:10
All the details are at Linux Matters dot sh
11:13
slash contact There's
11:17
a major Moodle release coming up
11:19
next month and at work I've
11:22
been making some of
11:24
my weightiest contributions so far
11:26
to the upstream Moodle project And
11:28
when I mentioned this in our telegram channel Someone
11:31
suggested that I talk a bit about what the process
11:33
of contributing to Moodle looks like
11:35
So I thought I might have a bit of a chat
11:38
about that and and give people some perspective
11:41
on contributing to a
11:43
large and Established open source
11:45
project is the first question what on
11:47
earth is Moodle now that is a
11:49
very good question So Moodle
11:52
you will probably have encountered it if you've
11:54
been to University
11:57
or possibly a
11:58
college in the past
12:00
decade or so. It's
12:03
a virtual learning environment is the generic
12:05
term VLE. It is a thing
12:07
that provides web pages for teachers
12:10
to put learning content on
12:12
and run online activities
12:14
with their students. The idea
12:16
of it in its conception was it was built
12:19
around this idea of social constructivism
12:21
which is where people learn
12:24
together and teach each other. So
12:26
it's very focused to collaborative
12:28
online activities but it also
12:31
works for dumping a load of PDFs
12:33
on a web page and things like that. That's been
12:35
my experience of VLEs. My son would
12:38
get told your work for the week
12:40
is on the VLE. This was during
12:43
the event when VLEs
12:45
were coming into their own quite a bit and
12:48
it was just a dumping ground for PowerPoints
12:50
and links and stuff like that. It's got to be
12:52
more than that right? Yeah my Moodle is
12:54
a very powerful and varied and
12:57
extensible platform. These
12:59
days it's referred to more as an online
13:01
learning platform rather than specifically as a
13:03
VLE. It's designed to hook into
13:05
other things and there's a lot
13:07
you can do with it but that's a whole other
13:09
segment I think on what you can do
13:11
with Moodle. But it's been around
13:14
a long time. It's over 20 years old.
13:16
It was written in PHP 4
13:19
originally I think which was before
13:22
PHP had things like object-oriented
13:24
programming and the concepts
13:26
we're familiar with today. It's still
13:29
mostly written in PHP with quite a lot of JavaScript
13:32
somewhere in the region of a million lines of code
13:34
across those two languages. It's
13:37
quite big and it can be quite daunting
13:40
to start hacking away on. But
13:42
the interesting thing is because it's written in PHP
13:44
if you're running it you've also got all
13:46
the source code and if you want to make a change
13:49
you can just hack on a file and reload
13:51
the page and there it is. So what you find in the Moodle
13:53
community quite a lot is that quite
13:56
a few people who are developers used to be teachers
13:58
who use Moodle and then wanted to make a change. it better
14:00
and we're able to do that quite easily.
14:02
And for an established project of
14:04
this size, have we got any idea sort
14:07
of what the active number
14:09
of developers contributing to Moodle
14:12
currently is?
14:13
Oh, that's a good question.
14:15
I know that in terms
14:17
of the sort of rate of change, there's
14:20
somewhere around 40 issues are
14:22
integrated each week. In terms
14:24
of the actual number of developers actively
14:27
involved, it's not that easy
14:29
to put a number on that, I don't think. Because
14:31
as well as the core project, you've also got a
14:33
community of plugins around them, and
14:36
people who are active on those, and
14:38
people working in house on it. But
14:40
there's quite a few people working on it. Let's put it that
14:43
way. The conferences are always
14:45
well attended by developers. And you've contributed
14:47
to this before. But this what you're talking about today
14:49
is a more significant contribution.
14:52
Yeah, so my first job with
14:54
Moodle was about 15 years
14:57
ago. And I did my first contribution,
14:59
which was a one line change to
15:01
fix a CSS bug. Although the
15:04
bug was actually in PHP code. That's another
15:06
story. I made my first one line
15:08
change then. But yes, these are much
15:10
more significant. So
15:12
there's an area of Moodle called the question
15:15
bank, which is how it manages questions
15:17
used for quizzes. It has some quite
15:20
advanced features for that. But the
15:22
UI was looking a bit dated. So
15:24
my work recently has been
15:26
around refreshing that and making it a bit more modern,
15:29
and a bit more usable and accessible
15:32
and things like that, you know, to have some
15:34
of the features you expect when you see a table
15:36
on a page in an interface, you expect
15:38
to be able to do things like resize the columns and
15:40
move things around and filter the
15:42
results and stuff like that. So I've made
15:45
two fairly significant contributions
15:48
in that regard.
15:49
And so was this stuff that you
15:51
decided needed to be done or someone
15:54
else decided to be done and you went, I'll
15:56
grab that. So actually, interestingly,
15:58
this is a bit of a A bit of a unique
16:01
source for this contribution is actually
16:03
come from a group of universities
16:06
who got together and said, we'd
16:08
like to make this area better. And
16:10
so they clubbed together some money and
16:12
did some design work, and then basically
16:15
hired my company to do the development
16:17
work because we're a Moodle partner company and
16:19
we've got a lot of experience working with Moodle
16:22
with our clients. And
16:24
if people need Moodle development done, we can do it. And
16:26
in this case, they wanted us to do the development for
16:28
them, but contribute it upstream
16:31
rather than giving it to them in-house,
16:34
as it were. Were you initially giving
16:36
it to them so they could iterate on the
16:38
design or work on it with
16:41
you and then go upstream? Yes.
16:43
So, yeah, so it's been a sort of, I've been working
16:46
with them throughout the process and getting
16:48
early feedback. It's been
16:52
an agile development process. For
16:54
your buzzword, bingo cards. Which
16:58
stuff like this is generally best done that
17:00
way anyway, just because the
17:02
way that you think something's going to work never ends up being the
17:04
way it actually works and what you specify
17:07
can always end up being wildly different from what
17:09
you decide is going to work in the end. So
17:11
it's always good to work that way if you can. So
17:14
yeah, I wanted to talk a bit about once you've got
17:16
your thing made, how do you actually
17:19
get that into a project like Moodle? So
17:21
Moodle has a bug tracker, which is Jira
17:24
or Jaira, however you'd like to say
17:26
it, which has been quite heavily configured,
17:30
let's say, for Moodle's purposes.
17:32
So works quite well for their workflow and
17:35
it's been that way since
17:37
I've been involved. I don't know if they ever
17:39
had something different before. And
17:42
as with most projects, it's using Git for
17:44
version control. I think I
17:46
started just as they were transitioning to
17:48
Git. They previously used CVS, which
17:51
was fun. But fortunately,
17:53
I never really had to learn that. So
17:55
once you've got your bug, you
17:57
set up your local development environment and
17:59
fit the issue. So it's a it's
18:02
PHP so you set up a lamp stack locally
18:04
and whichever text editor
18:07
or ID you prefer,
18:08
write your code
18:10
and there's a coding style which
18:12
you follow. There's tools for making sure you
18:14
follow the coding style. As part
18:16
of a development that you're contributing upstream
18:18
you're also expected to write and run automated
18:21
tests. So there's unit tests
18:24
which test the PHP code in
18:26
isolation but there's also a tool
18:29
more widely known as Qcumber but the PHP
18:32
implementation is called Bhat which actually
18:34
runs a web browser and executes
18:37
functions within the web interface and
18:40
tests that it does what you're expecting it to do. So
18:42
you need to write tests like that to
18:45
prove that what you're doing is doing what you're saying it's
18:47
doing. So once you've got your code ready
18:49
and you've got all of this done you then push it up to
18:51
GitHub and you link it to
18:53
the issue on the tracker. So they don't do
18:56
pull requests via GitHub's
18:58
pull request method they do it separately
19:00
and when you push it up to GitHub
19:03
it will run using GitHub actions it runs
19:05
a bunch of these automated checks,
19:08
runs all of the unit tests across all
19:10
of Moodle which makes sure that you don't break other
19:12
things which is really important part of writing
19:15
these automated tests because you're basically saying
19:17
once you've contributed it the community
19:19
is maintaining this now and part of your responsibility
19:21
there is making sure that people know if something
19:24
they're going to do is going to break it. There's
19:26
also
19:27
some checks on the tracker side to make
19:30
sure that you've done everything there that you're meant to
19:32
do like writing a test script
19:34
that explains how this is going to be tested
19:37
and once that's all good and you've got the green
19:39
light you then submit it for peer
19:41
review.
19:42
So you said you don't create pull
19:44
requests so I imagine you've forked
19:47
the Moodle repository
19:50
from GitHub to your own GitHub
19:53
org and that brings over
19:55
all of the CI CD
19:59
workflows and test
20:01
infrastructure. So when you push
20:03
your code to your fork, all
20:06
of that test infrastructure runs. Yes.
20:09
And you link from your
20:11
project that you have forked to
20:14
the issue tracker. And that
20:16
triggers the link,
20:18
the awareness, the notification
20:20
that you are working on something
20:23
over here and you intend for it at some
20:25
point to be brought into the
20:27
main project. Exactly. Okay.
20:29
And they also have some
20:32
separate CI stuff and they're
20:34
the hat test runner, which is
20:36
all separate from GitHub because that's
20:38
a massive thing running on Jenkins somewhere, which
20:41
uses the tracker to say, these
20:43
are the branches I need to test against. Okay.
20:46
So peer review in the Moodle community can basically
20:48
be done by anyone.
20:51
And of course, when something can be done by anyone, that
20:53
means it's often done by no one. Okay.
20:56
This is where it helps to work for a company
20:59
which employs other Moodle developers. But
21:01
generally you have to go out,
21:04
unless someone is actively looking
21:06
for this to be fixed, you need to go out and find
21:08
someone who's going to peer review this for you. But
21:11
it doesn't have to be someone specific with specific
21:13
credentials. It just has to be someone who
21:15
knows the process and is willing to follow
21:17
it for you. They do publish guidelines
21:20
and a checklist of the sort of things that you're checking.
21:22
And it's things like,
21:25
how's the coding style we followed, which should be automatically
21:27
checked, looking out for any security issues,
21:30
looking out for any efficiency issues,
21:33
making sure that the test script that you've written is
21:35
sufficient and covers everything. And the automated
21:38
tests cover everything because it's fine. So I've written
21:40
the test script, but there's a difference
21:42
between writing a test script and writing a test script that
21:44
tests things well, and all
21:46
of these sorts of things. And once they've done
21:48
that, they can stick the ticked
21:51
off checklist on the issue and
21:53
say, this is now ready for integration.
21:55
And integration in Moodle is a second
21:58
round of review, which...
21:59
is done by a member of Moodle
22:02
HQ, which is the
22:05
affectionate name for Moodle's main
22:07
sponsor company. They
22:10
are the ones who run all of this infrastructure. They
22:12
own the Moodle trademark and they employ
22:14
the Moodle core developers, who
22:17
are the people who provide the integration review.
22:19
So aside from this high level peer review,
22:22
they're there to really look into
22:24
your code and say, is this
22:27
of sufficient quality to go into Moodle and
22:29
is it a good fit? Is
22:31
this following the architectural direction
22:33
that we're going in? Is this following the
22:35
latest best practices that we're adhering
22:38
to? And is this something that
22:40
we definitely want in Moodle core as opposed
22:43
to as a Moodle plugin? So those
22:45
conversations don't necessarily happen upfront
22:47
then. This is sort of
22:49
a, after you've done the work, is
22:51
there somewhere you can discuss like
22:54
ideas for changes you want to make so you
22:56
don't work on something and go
22:58
through the first two steps of contribution
23:01
and then
23:01
get told, actually, no, we're not
23:03
interested? Yes.
23:05
And it has been a bit of a bumpy road with some
23:07
of the stuff I've been working on recently in that regard. But
23:09
yes, there's the Moodle forums. There is the issue tracker
23:12
where you can discuss things upfront before you
23:14
start working on them. And there's the
23:16
Moodle Matrix channel where you can discuss things
23:18
with other developers. Did anything get
23:20
rejected or you have to rework anything?
23:23
Yes, I've been doing quite a lot of rework on one
23:25
of them because basically it wasn't
23:27
following the, there's
23:30
been a lot of work into the
23:32
user experience consistency and
23:34
modernisation of Moodle. And
23:37
some of the work I'd done was not
23:39
well aligned with the direction that was going in.
23:42
So after some conversations, we agreed that I'd sort of, you
23:45
know, the Moodle HQ
23:47
UX team gave me some designs
23:50
to adjust my work to follow better
23:53
what they're going to be doing in the future so
23:55
that we don't end up with two completely different things
23:58
in different parts of the system. So your work... has
24:00
landed now? It is in the process of landing.
24:02
One of the big changes has landed. It's in the process
24:05
of landing and the
24:07
release is I think just at the start of October.
24:10
So we're in code freeze now which means everything's
24:12
been submitted to integration and
24:15
yeah my second big change is going through the integration
24:17
process as we record which is
24:19
on the 5th of September. I should just put
24:21
that note in there. So depending
24:24
on when you listen to this it may already be out. It will
24:26
hopefully be out in Moodle 4.3.
24:29
Nice. I guess the more important question
24:31
is are your customers happy? I think
24:33
so. They
24:35
can email in and let us know if they're not.
24:40
I purchased one of those refurbished
24:43
steam decks from Valve and
24:46
after two weeks of ownership I'm
24:48
here to tell you if you're retro gaming
24:50
on the steam deck you're doing
24:52
it wrong and we're here to tell
24:54
you how to do it right. We
24:57
are here to tell you are we? Yeah
25:00
I'm totally throwing you under the bus with this one Alan.
25:02
So I finally capitulated.
25:06
I'm a fully signed up host
25:08
to the Linux Matters podcast for iNow
25:11
to own a steam deck. That seems
25:13
to be about 60% of
25:15
our content so I felt I should get one so I
25:17
can join in the fun. So here we are with my
25:20
first steam deck segment
25:22
for the for the podcast. Welcome
25:25
to the cult. Yes. So
25:27
I will say if anyone's wondering about
25:29
refurbished steam decks it's just
25:32
like a proper not
25:34
refurbished one. Everything appears
25:37
absolutely brand new. The one difference is
25:39
that all of the little boxes that it comes in
25:42
all have the words refurbished actually
25:44
imprint properly made not stuck on
25:46
with stickers. It's all very professional.
25:49
It did look just like a brand new device like
25:51
I saw when you unpacked it. It was like no
25:54
different than mine. Yeah identical other
25:56
than the addition of the word refurbished on
25:58
all of the some paper pullouts
26:01
and all the rest of it. And when people
26:03
cottoned onto the fact that I'd got a Steam Deck,
26:06
the first recommendation I got from
26:08
several people was, you should install
26:11
MU Deck because that's how you do
26:13
retro gaming on the Steam
26:15
Deck. And I was going to resist
26:17
getting into retro gaming on the Steam Deck
26:19
because I was going to keep it for PC gaming. But
26:22
then, Alan, you went and found
26:24
something and you totally ruined that
26:27
for me. I apologize. I
26:29
have
26:29
not been a fan of MU Deck ever.
26:32
All due respect to the developers,
26:34
it's a bag of spanners and
26:36
I don't like it and I don't like the way
26:38
it installs. And I recently nuked
26:41
my Steam Deck. I wiped the OS
26:44
completely and started again.
26:46
And when I started again, I thought,
26:48
huh, I could probably play some retro stuff
26:51
on here. Hey, what's this? This is not MU Deck.
26:53
This is something else completely different. So
26:55
I found a thing called
26:58
Retro Deck and I installed
27:00
that and then mentioned it to Martin
27:02
and he won't shut up about it now. Yes.
27:07
So Retro Deck is what I'm here to
27:09
tell you about and it is
27:12
fabulous. So there's a
27:14
few things I really like about
27:16
Retro Deck. The first
27:19
is it's not a bag of spanners.
27:22
It's distributed as a flat pack, which
27:24
you can find in Flat Hub. So
27:26
everything is integrated in
27:29
this one bundle. It
27:31
is all of the things you need
27:33
to run emulators
27:36
and one install and you're done. And
27:39
it's all isolated together there. So
27:41
that's really tasty. I like
27:43
that a lot. But then the actual
27:46
architecture for how this works currently
27:49
and also where they're going, I really like. The
27:51
first thing I like is it's really easy
27:53
to use. Unlike some of the
27:55
sort of emulation framework
27:57
platforms, which expose the retro.
28:00
Arch user interface, which
28:03
I am not a fan of. It overwhelms
28:05
me. I don't understand what all the options
28:08
are and also I don't really want to know
28:10
what all the options are. I just want to play
28:12
some games. And Retro Deck
28:15
does that. It just shows
28:17
you the games you can play
28:19
and hides all of that complicated
28:23
stuff away underneath. So
28:26
in terms of how it presents, it's
28:29
kind of like a Netflix-like
28:32
user interface, which
28:34
gets better when you download
28:37
metadata. And I'll talk about that in a little
28:39
bit. But it's very easy to use.
28:42
I haven't needed to dive into
28:44
the underpinnings of Retro Arch
28:46
and all the rest of it. All of the stuff
28:49
that I've needed to change has
28:51
been exposed through its
28:53
own interface.
28:54
I have played with Emu Deck. And
28:57
I agree with your sentiments. But one of the things
28:59
that I do like about it is that
29:01
it includes a tool which finds
29:03
all of the stuff you've got set up with Emu
29:05
Deck and adds it into your Steam launcher
29:08
interface. And at that point, you
29:10
just go into Steam and you say, launch this. And
29:12
it's just like you're playing a game through Steam.
29:15
You don't feel like you're going into Emu Deck
29:17
to play it. Does Retro Deck do
29:19
the same sort of thing or is it all through
29:21
its own interface? I don't think it
29:24
does, but I don't know for sure
29:26
because I haven't looked for that feature. I
29:28
don't think it does. And I don't want it to do
29:31
that. And I agree with that. I don't want my Steam
29:33
cluttered up with a whole bunch of spanners.
29:36
I want the one thing to
29:38
launch it. And then I've got a view on all
29:40
of the emulators and all the games that I want to play.
29:43
And it was the whole integrating
29:46
all of these little spanners in
29:49
Steam UI that really
29:52
put me off Emu Deck. And
29:54
that's the thing I love about Retro Deck. You launch one
29:57
thing and you're now in all the emulators and you can just
29:59
go into each one. Is that launcher launched
30:01
through the Steam interface? Yeah, it's
30:04
add one item and you only have
30:06
one thing to add the Steam and you're done.
30:08
Yeah, so there is one game
30:11
in Steam called Retro
30:13
Deck and then it's a
30:15
beautiful launcher and it really
30:17
is very beautiful. So some other things
30:19
that I like about it is, this
30:22
was an interesting one, when you push the two
30:24
buttons to quit a game, for whatever
30:26
reason, when you start that game at some
30:28
point in the future, it automatically
30:30
creates an autosave point so when
30:32
you start that game next time, you're immediately
30:35
back in the game exactly where you left
30:37
it, which took me by surprise a couple of
30:39
times till I realised it was doing it. I
30:42
like that because when I just do pick up and play,
30:44
this is great for, right, I'm going to put this down, I may
30:47
have come back to it in a couple of days time but I can
30:49
pick up and carry on from where
30:51
we were and then it also
30:53
has retro achievements, which I've
30:55
never dabbled with before but
30:58
I can totally see that I could
31:00
become a retro achievement
31:02
hunter as a result of
31:04
how nicely integrated that is into
31:07
Retro Deck, including like
31:10
notification toasts appearing over
31:13
the game as you hit certain
31:15
achievements. So that hooks
31:17
into various retro games and
31:19
tracks when you do certain things in them.
31:22
Yeah. Huh, that's quite neat. Yeah,
31:24
it is, it's pretty cool. Not every game is supported
31:26
because obviously there's tens of thousands of retro
31:28
games that you can
31:29
lob on these things but all the
31:32
big ones tend to have some kind of achievements
31:34
and it's quite a lot of fun actually doing
31:36
that. Yeah, the user interface that you've mentioned
31:38
is very beautiful, it's based on emulation station
31:41
or a fork of emulation station because I think that died
31:43
off at some point, which is the same UI
31:45
that I've got on my PyCade, my
31:48
tabletop Py Arcade thing. Emulation
31:51
station has been around a while but
31:54
with themes and stuff it's taking it to the next
31:56
level, it's so nice to use. Yeah,
31:58
so it uses emulation.
31:59
Station Desktop Edition
32:02
and the Retro Deck Team are
32:04
actually contributing Retro
32:07
Deck specific Features
32:09
and changes to that project
32:12
that is only exposed when it's running
32:14
on the Retro Deck So they're
32:17
sort of working in tandem So it's all very
32:19
seamlessly integrated and this is one of the things I
32:21
like about like the way the project is
32:23
being led And the direction is headed in because
32:26
it has got some rough edges They signpost
32:29
those rough edges and make it very clear.
32:31
This is the way it is right now For example, there's
32:33
some zenity pop-ups and things like
32:36
this at the moment. They fully intend
32:38
to Integrate into
32:40
either their own UI or into
32:43
the emulation station desktop but
32:45
it's all been very thoughtfully put together
32:47
and The project itself
32:50
is still beta. So whilst
32:52
I've had no issues running this I'm
32:55
by no means a Hardcore
32:57
retro gamer. I don't know what shouldn't
33:00
be working or what platforms aren't enabled.
33:02
For example I know that their intention
33:04
is to enable everything that retro arch
33:06
supports I don't think everything is right now
33:09
But I like the way they're sort of signposting
33:11
where they're headed with this in the future And
33:14
here's one of the things I absolutely love about
33:17
this is because it's a flat pack
33:19
You can run it on desktop Linux, too
33:22
So actually I've been mostly
33:24
running it on my desktops
33:28
Because I can and
33:31
I've got sync things sat in the background Automatically
33:34
syncing my game library between
33:37
all of my machines that have Retro-dec
33:41
installed and all of my
33:43
configuration and save states
33:46
and metadata and all of that stuff is consistent
33:48
across all of these devices Including
33:52
the steam deck because I did a little hack
33:54
and I got zero tier working
33:57
on the steam deck So all of
33:59
this synchronize works between
34:01
the Steam Deck and my library
34:06
in one place, one virtual
34:08
place, and all of these machines pick it
34:10
up. You mentioned briefly the artwork.
34:13
There's a whole bunch of stuff to do with scraping
34:15
as well. There is. You showed
34:17
me, yeah. Yeah, so there's two providers
34:20
that provide artwork and metadata.
34:22
One I think is called Screenscraper.
34:24
It's a French website and there's the other one which is the TV
34:27
database. I'd never used
34:29
this French one. I've signed up and I'm using
34:31
that. It's quite slow but it
34:34
gives you a really great result because
34:36
it gives you videos and all
34:38
of the cover art and all of the history behind
34:40
all of the games. So it very much is like
34:42
Netflix. When you go to a game,
34:45
it has a rolling video. The theme
34:48
that I'm using has arcade
34:50
cabinets that match the originals or
34:52
TV sets that are era-accurate
34:54
for the games consoles. It's just a
34:57
very beautiful experience and
34:59
it invites you to want to play these
35:01
games because each time you switch to the next
35:04
one, it's colorful and
35:06
sounds great, looks amazing, and
35:08
you just want to play. So there
35:11
it is. It's RetroDeck. It's RetroDeck.net.
35:14
We'll have links to all of this in
35:16
the show notes including my
35:18
instructions on how to install
35:21
Zero Tier on the Steam Deck which is
35:23
also a nice generic way to
35:26
have persistent software installations
35:28
from the Arch repos on a Steam Deck
35:31
that survive SteamOS updates.
Podchaser is the ultimate destination for podcast data, search, and discovery. Learn More