Episode Transcript
Transcripts are displayed as originally observed. Some content, including advertisements may have changed.
Use Ctrl + F to search
0:00
This week on the show
0:03
we cover the following. Bill
0:05
Ridding, my home network of
0:07
IP addresses, an article we
0:09
found, interesting as a GitHub
0:11
gist, then a Star article
0:14
about tools for identifying and
0:16
resolving storage bottlenecks. Open, BBPD
0:18
has been released in version
0:20
8.7, lead ports. for letting
0:22
Dr. Brian Robert Callahan point
0:25
the not-a-da compiler to MacO-S-A-R-64
0:27
and how that went, modify
0:29
an omniois service parameter, the
0:31
history and use of ETC
0:33
collob, and how it's used
0:35
in early Unixes, and more
0:37
in this week's episode of BSD.
0:40
Yeah! BSD
0:56
now, episode 596, called
0:59
Gloving ETC, recorded on
1:01
the 17th of January
1:03
2025. I'm still practicing
1:06
with the new year,
1:08
not to say 2024.
1:11
Hi, I'm your host,
1:13
Benet Grosheleng. Hello, I'm
1:15
Tom Jones, and I wrote
1:17
2024 in my diary every
1:19
day for the first nine
1:22
days of the year. Before
1:24
I realized. I don't know why
1:26
I would be signing documents.
1:29
But yeah, I was very confused.
1:31
Like, it's going to keep
1:33
happening, isn't it? At least
1:35
in January, you're still
1:37
adjusting to a new year.
1:39
I went to a dentist today and
1:42
I made an appointment for 2026.
1:44
Oh, which is absurd. Like,
1:46
I don't want it to be
1:48
2026 yet. We've barely had this
1:50
year. Wait, don't you do the
1:52
twice per year dentist appointment? No,
1:54
I think the NHS is struggling
1:56
for money. Okay. Or they get
1:59
so many costs. only can do
2:01
once per year. Oh, it's a
2:03
good problem to have as a
2:05
gentleman. I wouldn't, I wouldn't, I'm
2:07
not going to touch this one
2:10
at all. We phrase it like
2:12
that. You have such good teeth,
2:14
then you only have to come
2:16
once per year. Yeah, that's how
2:18
it is. But that's it. Yeah.
2:21
Speaking of which, mine is also
2:23
somewhere around January or February. I
2:25
don't think anyway, anyway, any requires
2:27
all our appointments at the dentist,
2:29
right. Did you have a good
2:32
winter poser? I enjoyed myself. I
2:34
talked a little bit with Jason
2:36
about my Japan trip. It was
2:38
lovely. It was just great. Were
2:40
you confused to be in Japan
2:43
but not talking about BSD all
2:45
the time? Yeah, I was a
2:47
little bit. I was at the
2:49
venue where we would typically be
2:52
for Asia BSTCon because it was
2:54
familiar territory. Of course it was
2:56
closed. There's nothing in there. But
2:58
I wanted to go to the
3:00
tea store who that is in
3:03
the street. Unfortunately there was also
3:05
closed and so I had to
3:07
find another tea store to buy
3:09
good tea and luckily I did
3:11
find one because at the beginning
3:14
of the year a lot of
3:16
shops are closed and the shops
3:18
that are open they have long
3:20
lines in front of them because
3:22
apparently at the beginning of the
3:25
year the Japanese shops do these
3:27
kinds of it's not a raffle
3:29
so they wrap something of their
3:31
items that they sell into a
3:33
bag that you can't see through
3:36
and then they give it a...
3:38
It's like a mystery box. You
3:40
buy it for a certain price
3:42
and you don't know what kind
3:44
of items you get there. So
3:47
in Akihabara where I was staying
3:49
these last couple days in my
3:51
Tokyo trip, there were plenty of
3:53
lines for these anime shops or
3:55
collectors cards. And some of these
3:58
had them at the display at
4:00
the front where you could say,
4:02
oh, 5,000 yen for this mystery
4:04
bag of good stuff. You don't
4:06
know what's in there, but typically
4:09
it's nice. At the same in
4:11
Shibuya, the shopping district, and our...
4:13
like should I actually try getting
4:15
one of these but yeah you
4:17
know require you to stand in
4:20
line for a lot of time
4:22
so I didn't want to waste
4:24
that but yeah it's it's nice
4:26
maybe you missed out on something
4:28
really a cent I mean yeah
4:31
apparently so what I read afterwards
4:33
there's typically good products in there
4:35
and not just trash they want
4:37
to get rid of but sometimes
4:40
you get oh two pairs of
4:42
gloves or I don't know if
4:44
five trousers or something. It would
4:46
have been a very different thing
4:48
to have done on a vacation
4:51
like so in terms of activities
4:53
or no like just standing in
4:55
front of a shop. Yeah that's
4:57
a good one once would be
4:59
entertaining doing it all day would
5:02
probably be quite tedious. Maybe yeah.
5:04
Do you think New Year was
5:06
a good time to go to
5:08
Japan? So I was a bit
5:10
worried about people reporting, don't come
5:13
to Japan during the holidays, everyone's
5:15
traveling, everything is overcrowded and since
5:17
the yen is so weak, a
5:19
lot of foreigners are also traveling
5:21
there. I didn't find it too
5:24
crowded, I mean the trains were
5:26
okay, I could always get in,
5:28
there was no overcrowding there. I
5:30
found it not unpleasant. that were
5:32
that they too that they were
5:35
too many tourists beside myself and
5:37
I found it not yeah in
5:39
a in a bad way that
5:41
the country is now over over
5:43
flowing with people. I booked all
5:46
my train tickets a month and
5:48
ahead in advance so that I
5:50
had a reserved seat so at
5:52
least for the Shin Kansans. the
5:54
hotels, I mostly booked them a
5:57
lot of a long time because
5:59
I booked that flight in January
6:01
2024 for December 2024 so I
6:03
could still planned hotels in the
6:05
route. So that was not the
6:08
issue. I thought it would be
6:10
worse in some of these attractions
6:12
it was, apparently in the, where
6:14
I was at the SnowMonkey Park
6:17
in Nagano, where you have to
6:19
hike through a 40-minute icy, slippery,
6:21
you know, yeah, wooden area on
6:23
the left side, there's a, you
6:25
know, a long way down from
6:28
the mountain and there's no like
6:30
handrail or something you know there's
6:32
people coming you know from the
6:34
other side coming back and you
6:36
go in there and sometimes people
6:39
would slip and fall down and
6:41
it's just whoa and since there's
6:43
so many people going there and
6:45
tourists from a lot of places
6:47
in Asia around the around the
6:50
countryside that was kind of oh
6:52
okay either I waited a little
6:54
bit and let them pass or
6:56
try to be going ahead of
6:58
them to be in a spot
7:01
where there's a bit more space.
7:03
So that was a bit overcrowded
7:05
and maybe a bit too popular
7:07
between the years. But other than
7:09
that, Japan was just as nice
7:12
as you would imagine and if
7:14
you've been there, you know what
7:16
I'm talking about. So. All right,
7:18
cool. This episode of Beastie now
7:20
is brought to you by Tar
7:23
Snap. Go to Tarstep.com/BSD now to
7:25
find online backup for truly paranoid
7:27
people. And if you want to
7:29
support this show in one way
7:31
or the other, check out our
7:34
patron page at patreon.com/BSD now. And
7:36
we thank you in advance for
7:38
that. So let's get into some
7:40
of the things we do. So
7:42
first up in the headlines this
7:45
week we have... I don't know
7:47
how to describe this. We have
7:49
a GitHub gist by Jay Mason
7:51
titled Ridding My Home Network of
7:54
IP Addresses. Do you think this
7:56
is part of a blog? Would
7:58
people do that? There's 24 revisions.
8:00
That's cool. At 3 you start.
8:02
by the time we record this.
8:05
Yeah, I don't think it means
8:07
it's just three people have started.
8:09
It's not a three-star article. Like
8:11
a three-star hotel. Recent changes in
8:13
the text scene have made it
8:16
clear that relying on commercial companies
8:18
to provide services that rely on
8:20
isn't a good strategy in the
8:22
long term. And given that tail
8:24
scale is so effective these days
8:27
as a remote access system, I've
8:29
gradually been expanding a small collection
8:31
of self-hosted web apps and services
8:33
running on my home network. Until
8:35
now, they've mainly been addressed using
8:38
their IP addresses and random high
8:40
ports on the internal land, which
8:42
need high ports. A pihole 109727.
8:44
Home Assistant 1097 to 11. Linkeding
8:46
109726, you get the idea. And
8:49
that's important 1992, I don't know
8:51
why you would do that. Needless
8:53
to say, this is a bit
8:55
messy and ineligan. So I've been
8:57
planning to sort out for a
9:00
while. My requirements, no more ugly
9:02
bear IP addresses. Imagine if there
9:04
were v6 addresses how much bear
9:06
I'd be. One per service, no
9:08
visible port numbers, fully valid TLS
9:11
search, no having to click through
9:13
warnings or install funny CIA search.
9:15
Accessible, regardless of which DNS server
9:17
is in use, using public DNS
9:19
records. This may seem unusual, but
9:22
it's useful so that internal services
9:24
can be accessed while I'm using
9:26
my work VPN, which forces its
9:28
own DNS servers. Accessible internally? Accessibly,
9:30
externally, externally, over tail scale. After
9:33
a few false starts, I guess
9:35
24, I'm pretty happy with the
9:37
current setup which uses Caddi. Hosting
9:39
with a main at cloudflear. First
9:42
off, first off, since the service
9:44
URLs are not to be accessible
9:46
externally without tail-scale active, the HDTP
9:48
challenge approached provision lets and cryptsurts
9:50
can be used. That would require
9:53
an open to the internet publicly
9:55
accessible HDTP server on my home
9:57
network, which I absolutely want to
9:59
avoid. In order to use Akmi
10:01
DNS challenges... Instead, I set up
10:04
my public domain, taint.org, to use
10:06
cloudflare as the authoritative DNS server.
10:08
In cloudflare terms, full setup. This
10:10
lets Caddy edit the DNS records
10:12
via cloudflare API to handle the
10:15
ACME challenge process. One of the
10:17
internal hosts is needed to run
10:19
Caddy's Caddy server reverse proxies. I
10:21
picked Hass, home assistant host, which
10:23
didn't have anything already running on
10:26
Port80 or Port 443. The
10:29
dedicated DNS domain I use for
10:31
my home services is home.taint.org. In
10:33
order to use this I clicked
10:35
through the DNS cloudflow at a
10:37
panel and created DNS record as
10:39
follows. Now any host names under
10:41
home.tank.org will return the IP 10177211
10:43
where Caddy will run. I don't
10:45
particularly care about exposing my internal
10:47
home network IPs to the world
10:49
as a tradeoff to allow the
10:51
URLs to work even if an
10:53
internal host is using the work
10:56
VPN or resolving 8.8.8.8 or whatever.
10:58
That's worth missing out on a
11:00
bit of paranoia since the IPs
11:02
won't be accessible from outside without
11:04
tail scale anyway. It's worth noting
11:06
that the cloud flare hosted domain
11:08
doesn't have to be the same
11:10
one used for URLs in the
11:12
home network. Using. to one which
11:14
is hosted in cloud flare. One
11:16
wrinkle is that I had to
11:18
generate a custom caddy build in
11:20
order to get the DNS providers
11:22
cloud flare non-standard module from caddyserver.com.
11:24
This is a click and download
11:26
page which generates a custom caddy
11:29
binary on the flow on the
11:31
fly. It would be nicer if
11:33
cloud flare module was standard behave.
11:35
Once it's installed I get this
11:37
output, caddy list modules, big list.
11:39
DNS providers, cloud flare, DNS providers,
11:41
DNS providers, route 53. Yes, I
11:43
have Caddy running as a normal
11:45
service, not as a doctor container.
11:47
Go to the cloud for our
11:49
account dashboard and create an API
11:51
user token as described as developers,
11:53
cloudforodont fundamentals, API getting started, create
11:55
token. In my case, it is
11:57
zoned. and I set a permission
11:59
on the specific taint.org domain. Copy
12:01
that as needed into the caddy
12:04
file. And there's an example. Running
12:06
pseudo caddy run in the same
12:08
directory will start up and verbally
12:10
log what it's doing. Once you're
12:12
happy, you can get caddy running
12:14
in the normal system deservice way.
12:16
After setting it was up, I
12:18
now have my services accessible locally
12:20
as has.home.home.ink.org.com. Taint.org. Caddy seamlessly goes
12:22
off and configures fully valid TLS
12:24
sorts with no fuss. I found
12:26
it much tighter than Sirbar or
12:28
EngineX proxy manager. So this is
12:30
now sorted out all the requirements
12:32
bar one, accessible, externally over tail
12:34
scale. To do this I had
12:37
to log into tail scale and
12:39
admin console, pick a host on
12:41
the 10-197224 internal land, click its
12:43
drop-down menu, edit route, edit route
12:45
route for 10-1972, slash 24. Now
12:47
do all of this all the
12:49
service.home.10dNS records are now accessible remotely
12:51
once tail scale is enabled. I
12:53
don't even need to use the
12:55
TS.net names to access them. Perfect.
12:57
Anyway that's a setup. Hopefully this
12:59
write up will help others. Thank
13:01
you for writing with James Mason.
13:03
Good. Yeah. Good to know that
13:05
people can start their blog as
13:07
you know, get up gists if
13:10
they need to. If you like
13:12
I mean I'm a lot of
13:14
syllabus. I'm I'm talking about fuzz
13:16
them at the end of the
13:18
month, start of next month, about
13:20
writing about free BSD. I'm good
13:22
at grammar, I promise. And, you
13:24
know, like, you can just write
13:26
anywhere. It doesn't need to be
13:28
somewhere special. Like, Benedict and I
13:30
were talking about running community groups
13:32
and I wrote an article for
13:34
the free BSD journal about running
13:36
community groups. Things linked together. And
13:38
honestly, the bare minimum you need
13:40
is yourself. and openness to speak
13:43
to other people and to advertise
13:45
it. And if you're going to
13:47
write a blog, you could just
13:49
write a blog for yourself and
13:51
then in five years time put
13:53
it on the internet. It makes
13:55
no difference to people reading it
13:57
in five years how timely anything
13:59
is or how structured it is
14:01
because it will change and people
14:03
will see it as they see
14:05
it. And so it just being
14:07
a game. Just, that's fine. And
14:09
if you start writing about, oh,
14:11
I need this WordPress blog and
14:13
a domain and an email contact
14:16
list. So before I start my
14:18
very first. article. You have to
14:20
pick the activity you're trying to
14:22
do and do it and not
14:24
something else. And so if you
14:26
yeah, if your goal is to
14:28
set up a blogging system, that's
14:30
very, it is completely orthogonal to
14:32
writing blog, the different things on
14:34
the content and not the whole
14:36
make out. Yeah, like one thing
14:38
enables another, but you don't need
14:40
both. You can just do stuff.
14:42
I mean, if you want to
14:44
do your own BSD podcast, which
14:46
I would strongly advise you don't.
14:49
Just not to stop there being
14:51
more podcast, it's just a podcast
14:53
for a lot of work. You
14:55
can really easily do what Will
14:57
Backman did for BSD talk. And
14:59
just interview people and just put
15:01
that out. And the hard part
15:03
there is speaking to people and
15:05
recording it and editing. Putting it
15:07
out is the easy bit. But
15:09
people will get hung up on
15:11
the putting it out and telling
15:13
people about things once it's established.
15:15
It doesn't. You're not releasing a
15:17
video game. It's fine. You don't
15:19
need a big market push. You
15:22
know, if the content is good,
15:24
it will travel around word to
15:26
mouth and people will find you.
15:28
It's not... No. Irrespective of the
15:30
content being good or bad is
15:32
the relationship to how observed it
15:34
isn't how well it's known. And
15:36
you can do the best thing
15:38
in the world and no one
15:40
might look at it. You could
15:42
also do something which is pretty
15:44
mediocre and put a lot of
15:46
working into advertising. A lot of
15:48
people will look at it. and
15:50
that is something you should be
15:52
aware of when you if you
15:55
you want to write you want
15:57
to run events you want to
15:59
do a podcast don't podcast like
16:01
any of these things you have
16:03
to do the thing it needs
16:05
to be a minimum quality but
16:07
it doesn't have to be perfect
16:09
it doesn't have to be the
16:11
best quality metric then you never
16:13
start or you don't get your
16:15
first content written. And a good
16:17
example of this is if you
16:19
fire for a YouTube channel you
16:21
like if you go and look
16:23
at the really old stuff you'll
16:25
see their videos are terrible but
16:28
they had to grow from that
16:30
to where the content you like
16:32
is. And that so what I'm
16:34
trying to say is the quality
16:36
shouldn't be the barrier to starting
16:38
and also tooling and structure shouldn't
16:40
be the barrier to doing things.
16:42
because they're distinct. You're over-engineering it
16:44
then and don't get to the
16:46
actual thing, the content that people
16:48
should read. Yeah, totally lost. Cool.
16:50
Okay, speaking of content, people should
16:52
read. We have found another article
16:54
from Clara Systems, Ever Expanding Article
16:56
List, and this is about managing
16:58
and tracking storage bottlenecks written by
17:01
Jim Salter, known as the author
17:03
of some tooling around ZFS. And
17:05
here is... The beginner blurb, when
17:07
a storage system is busy, one
17:09
of the most frequent question is,
17:11
which of the many workloads of
17:13
the system is driving that utilization?
17:15
So this week we look at
17:17
some tools that make it easier
17:19
to track down which workloads are
17:21
using up all of the IOPs
17:23
or bandwidth on a storage system.
17:25
And it starts, there comes a
17:27
time in every storage at MinzKorea
17:29
when they realize that they have
17:31
built an excellent system. But the
17:34
details of it have gotten a
17:36
bit away from them, and they'd
17:38
like more insight into what they're
17:40
managing. And these are the tools
17:42
for identifying and resolving storage bottlenecks.
17:44
And so we talk about several
17:46
tools that can make basic storage
17:48
analysis easy under either 3BSD or
17:50
Linux, so he covers both. In
17:52
a nutshell, one can use the
17:54
tool iostat to get very low-level
17:56
information on each individual physical storage
17:58
device in a system, while the
18:00
tools Zpool iostat, Z-top and iO-Zz.
18:02
Tad, Iostat, remember, but with a
18:04
set, each offer additional open set
18:07
of specific metrics and we will
18:09
go into each of these. Using
18:11
these tools, the storage admin can
18:13
easily discover storage bottlenec- and potential
18:15
reliability issues. What to know if
18:17
a disc is slowing your pool
18:19
down, check Z-pulliostat. Want to know
18:21
which of the 10 virtual machines
18:23
is eating all your storage performance?
18:25
Try the IOSTAT instead. So IOSAT,
18:27
IOSAT, TAT, TAT. get it. Okay.
18:29
Each two we're covering is available
18:31
on both previously and Linux systems.
18:33
Iostat and Zepul Iostat are also
18:35
available on Illamos and Oracle systems,
18:37
though the arguments may differ somewhat.
18:40
He has a couple screenshots of
18:42
them. That's where you have to
18:44
rely on our show notes and
18:46
click on your article to find
18:48
them. But the nice thing is
18:50
that the article describes them. an
18:52
iostat report that shows all activity
18:54
on each device here is showing
18:56
this screenshot since the last system
18:58
boot. Although it's not the easiest
19:00
tool to use, iostat reports extremely
19:02
granular information about each of your
19:04
physical storage statistics and by default,
19:06
as shown above, iostat reports all
19:08
activity on each device since the
19:10
last system boot. So there's just
19:13
do iostat and then MD0, SDA,
19:15
SDB and so on, these are
19:17
Linux devices and lists all the
19:19
iO that's happening on that list.
19:21
of devices that you provided as
19:23
arguments. And the extended statistics for
19:25
deeper insights, let's take another look
19:27
at the same system, this time
19:29
using the arguments, minus lowercase X
19:31
for extended statistics and lowercase S
19:33
for short, 80 column output for
19:35
terminal width reasons, and that gives
19:37
a bit of a different output,
19:39
meaning... that this time we get
19:41
the additional column percent utilization. This
19:43
column tells us what percentage of
19:46
storage devices time is spent in
19:48
idle. If you have several devices
19:50
in the same array as the
19:52
above system does you should expect
19:54
most of these drives that to
19:56
be roughly similar as this screenshot
19:58
provides. So on the other hand,
20:00
let's say deaf SDF above shows
20:02
60% utilization. It is the sipping
20:04
drives in the same array that
20:06
only showed 20 apiece that would
20:08
indicate a problem. Most likely deaf
20:10
SDF is spending a lot of
20:12
time retrying operations before getting a
20:14
valid result. Thus in turn which
20:16
suggests that we should replace the
20:19
SDF before it fails outright. Then
20:21
there is the built-in Z-pool Iostat
20:23
command which is the simplified storage
20:25
insights for the ZFS pools and
20:27
many of you have probably used
20:29
this already in the past invoked
20:31
with arguments or without them. Yeah,
20:33
without them first, Z-pool Iostat produces
20:35
perhaps the simplest output of all
20:37
the tools we'll view. In the
20:39
nutshell, Z-pool Iostat offers roughly the
20:41
same information that Iostat does, instead
20:43
of offering it for each individual
20:45
physical storage device in the system,
20:47
Z-pool Iostat offers that for data
20:49
as applicable to each Z-pool on
20:51
that system or each device in
20:54
depth. Which Z-pool Iostat doesn't provide
20:56
is the same level of per-depth
20:58
statistics for a... zi pool by
21:00
invoking zi pool isiostat dash v
21:02
for the both so we can
21:04
drill down into each individual device
21:06
that make up the pool. For
21:08
the most part we'd recommend using
21:10
real iostat to inspect individual drive
21:12
metrics especially when investigating storage bottlenecks
21:14
even on an open ZFS system
21:16
and the ZFS-centric organization of data
21:18
on ZIPiostat is a strong advantage.
21:20
There's no practical way to reassemble
21:22
when they last iostat output to
21:24
display activity at a per pool
21:27
or VDF level. If your focus
21:29
is higher up the stack than
21:31
the Rob physical hardware, ZIPOLIostat remains
21:33
the recommended tool. Okay, then we
21:35
have latency metrics. I think Alan
21:37
was a bit involved in that
21:39
as far as I can recall.
21:41
So far we've learned toward Iostat's
21:43
more detailed and lower level metrics,
21:45
dismissing ZIPOostat's simpler output. So this
21:47
was added after the original Open
21:49
ZFS came out and they also
21:51
referenced their own. 2020 article which
21:53
includes here a built-in histogram accessible
21:55
with the W flag. So in
21:57
that screenshot they say we can
22:00
see a table showing the amount
22:02
of data of various types in
22:04
columns which was serviced within a
22:06
given maximum time frame. This is
22:08
a very very granular breakdown of
22:10
latency experienced on the system. It
22:12
can be a tool to pinpoint
22:14
storage bottlenecks on the system. So
22:16
you can say, oh this number
22:18
of bytes in the read column
22:20
happened between one millisecond
22:22
and two milliseconds for
22:24
example. Here they describe the cues a
22:27
little bit more, the read and right
22:29
cues. and we can see individual read
22:31
and write columns for disk wait,
22:33
sync queue wait, asink queue wait,
22:35
disk wait is the amount of
22:37
time required waiting for actual hardware
22:40
to complete an operation and the
22:42
sync queue wait is the time
22:44
on operation spent in synchronous IOCUs
22:46
whereas asink queue is the time
22:48
in operation, spend in asynchronous queues.
22:50
So we don't wait for the
22:53
reply from the storage system that
22:55
the rides had happened. Then there
22:57
is the tools he's mentioned. Z-pool Iostat
22:59
is good in itself, but there is
23:01
Z-top. Z-top is a simple and useful
23:04
tool that shows you how busy each
23:06
of the data sets in your pool
23:08
is at the moment in a top-style
23:11
way. Z-top supports both command line arguments
23:13
and in application interactive commands which recognize
23:15
and or filter its output when
23:17
run without arguments you simply
23:19
see a list of data sets
23:22
on your system and their individual
23:24
activity level. The...
23:26
is good? Yeah, installing Zetop is
23:28
a little sub paragraph they
23:30
have. So if you're on free
23:32
PhD, you can install it
23:35
from the ports collection, package
23:37
install Z-top, and it's also
23:39
available for Linux in
23:42
the various repositories each
23:44
distribution provides. They
23:48
talk a bit about a couple hurdles
23:50
for some distros, but we can skip
23:52
that since this is a PSD podcast.
23:55
So there's IOSZTAD, IOSTAD with a Z
23:57
in there instead of a S flexible
23:59
alternative. for data set level monitoring.
24:01
This one is another tool for
24:03
monitoring. Your OpenZFS pools activity on
24:06
a per data set level and
24:08
it uses case that information in
24:10
much the same way that Ztop
24:12
does. But the output is a
24:14
bit differently organized. For the most
24:16
part these tools display the same
24:18
information in roughly similar ways. The
24:20
important difference is that Ztop mimics
24:23
the top command in its output
24:25
format. In the arguments also an
24:27
interactive features in contrast to this.
24:29
Iostat is designed to more closely
24:31
resemble the Iostat command and instead
24:33
of as counterpart Zpool Iostat. And
24:35
that's why when you invoke that,
24:37
Iostat with a Z in the
24:40
middle performs much of the standard
24:42
Iostat tool output. It spits out
24:44
a single table showing you a
24:46
summary of all activity for each
24:48
mounted data set. It's the most
24:50
recent system boot then exits. And
24:52
you can add arguments to it
24:54
with a... Lowercase N, for example,
24:57
you instead get a series of
24:59
reports for each N seconds, and
25:01
if you provide the O switch,
25:03
you instead get the same data
25:05
in a continually refreshing screen-friendly format
25:07
like Zetops. Installing is fair and
25:09
easy. You get Iostat by... Oh,
25:11
it's not officially made into repositories
25:14
yet, I see, but it's a
25:16
simple Python 3 script with those
25:18
special requirements, and they link to
25:20
its project page on GitHub. So,
25:22
ah, it's interesting. Jim Salter wrote
25:24
this tool as far as I
25:26
can see here from his GitHub
25:29
page, and that's where he also
25:31
added a couple more information about
25:33
usage and how to install it.
25:35
That's why we see this article
25:37
from him. In conclusion, although most
25:39
users will never need to use
25:41
these tools, professional admins might, and
25:43
those might be a mindset to
25:46
dig deep and truly understand how
25:48
the systems work, can be one
25:50
or more of these tools. They
25:52
can address almost any performance query
25:54
and resolve storage bottlenecks effectively. At
25:56
Clara we specialize in open ZFS
25:58
and free BSD solutions, helping businesses
26:00
optimize storage performance and resolve. of
26:03
the bottlenecks efficiently and whether you
26:05
need expert guidance, custom and development
26:07
or proactive support or team is
26:09
here to help you get the
26:11
most out of your storage system.
26:13
Those those tools really weren't named
26:15
with a consideration for the podcast.
26:17
The IOSAT with a set in
26:20
there that's when you when you
26:22
spell it out it's difficult. IOSZ
26:24
stat. Okay,
26:35
now the headlines are done.
26:37
We have the news roundup.
26:39
At first in the news
26:42
roundup, we have open, open,
26:44
BGPD 8.7 release. This is
26:46
a tuckwister, yeah. By, contributed,
26:49
by, contributed, by, Roudia, from
26:51
the Flappy Bird, a synchronization
26:53
department. I got, I got,
26:56
I got the joke. We
26:58
have released open PGPD 8.7
27:01
which will soon be arriving
27:03
in the open BGPD directory
27:05
of your local open BSD
27:07
mirror. This release includes the
27:10
following changes to the previous
27:12
release. Cash, the adjust rib
27:14
out for sessions that have
27:16
not been down for more
27:19
than one hour. This significantly
27:21
improves synchronization time of peers
27:23
that flat. Implement RFC 8538
27:25
notification message support for BGP
27:28
graceful restart. Add support for
27:30
RFC 864 extended messages in
27:32
BGP GPD, BGP, yeah I
27:34
can't even press it, add
27:37
additional endpoints to the query
27:39
in the adjust ribbon and
27:41
adjust rib out, bump internal
27:43
message size limit to 128K
27:46
and handle up to 10,000
27:48
ASPA, SBAS entries as suggested
27:50
in draft IETF, SIDEROPS, ASPA
27:52
profile. Various improvements to the
27:55
I-BAFP API. including a new
27:57
reader API which is used
27:59
to make all message parsing
28:01
in BGPD memory safe, added
28:03
support for IP SEC and
28:06
TCP MD5 to RTR sessions.
28:08
Open BGPD portable is known
28:10
to compile and run on
28:12
previously, net BSD and the
28:15
Linux distributions, Alpine, Debian, Centrose,
28:17
Ralph, Rocky, Fodor, Sousa, SLE
28:19
and New Bunto. is our
28:21
hope that packages take interest
28:24
and help adapt open BTPD
28:26
portable to make to more
28:28
distributions who welcome feedback and
28:30
improvements from the broader community.
28:33
Cool, thanks, congratulations, well done.
28:35
Yep, always good to see
28:37
progress in tools that the
28:39
whole internet runs on, especially
28:42
when these are developed by
28:44
Obviously who focus a lot
28:46
on security. Next is ever
28:48
busy, Dr. Brian Robert Callahan,
28:51
porting different things to operating
28:53
systems we use, or less
28:55
use more often. This one
28:57
is G-N-A-T-A-D-A compiler ported to
29:00
macroS-A-R-64. And he
29:02
has written about this work and
29:04
what it involved. So after getting
29:06
a port of GDC, working on
29:08
his new Macbook Pro, there are
29:10
still two languages left in the
29:12
GCC suite that I don't have.
29:15
ADA and Go. Some searching around
29:17
makes it easy. Do you say
29:19
ADA or Ada? So that makes
29:21
him pretty clear that GCC goes
29:23
not yet really on the table
29:26
to Macos, but there should not
29:28
be any reason we can't add
29:30
Ada to our GCCs, we're seeing
29:32
that there's already support for Macos
29:34
AR-64 in the repo. Okay, but
29:37
tries I might, I could not
29:39
find any pre-compiled packages for it.
29:41
I guess part of the issue
29:43
is that Macos, AR-64 supports, not
29:45
fully upstream, did the GCC Propray,
29:47
instead, Ian Sancento, has a get-up
29:50
report-up report, includes the necessary changes
29:52
to full support it. I used
29:54
this GCC 14 branch repository to
29:56
build GDC. Let's go to work.
29:58
Virtualizing Nakos. So he doesn't have
30:01
a resetter on this machine. He
30:03
knows that it takes all of
30:05
two seconds to install it, but
30:07
he also wanted an excuse to
30:09
play around with Apple's virtualization framework.
30:12
After some googling around, he settled
30:14
on using virtual body as his
30:16
virtualization manager. Never heard of it.
30:18
It's linked there from the article.
30:20
And I made installing a virtualized
30:22
copy of Sequoia 5.5.5. Just want
30:25
to say, or want to install
30:27
from the internet, choose the version
30:29
you want to install and away
30:31
you go. Okay. So, step one,
30:33
finding a binary on GNET, GNET.
30:36
So why did I install Rosetta?
30:38
My suspicion was that someone had
30:40
a binary package of Nut for
30:42
Macosx8664, but I looked in the
30:44
usual places. Home brew, package source,
30:46
Macports, and Fink. and none of
30:49
them had a package. I was
30:51
beginning to wonder if our project
30:53
was going to end before it
30:55
began. For that I, or that
30:57
is written in Ada, you need
31:00
an Ada compiler to compile it.
31:02
Got it? Compiler to compile it.
31:04
Yeah. I eventually stumbled upon A-A-L-I-R-E,
31:06
which builds itself as Aida's version
31:08
of Rust's cargo or O-Kama's O-PAM.
31:11
The A-A-A-A-L-H homepage directly states that
31:13
they have a recent A66X-86-86-86-8664. That
31:15
was our way in. I followed
31:17
the tutorial to get the ALR
31:19
binary installed on the virtual machine
31:21
and got a copy of the
31:24
net compiler which happened to be
31:26
version 14.2.0. That's great, because that's
31:28
the same version we built with
31:30
our GDC compiler and what we
31:32
will be building on the GCC14
31:35
branch repository. Okay, on to step
31:37
two. I added this a liar
31:39
provided net to my path and
31:41
set up the GCC14 ranch repository
31:43
to prepare to prepare to build.
31:46
Make sure it does go all.
31:48
that's the front of your pass
31:50
so that client doesn't get picked
31:52
up instead. Okay, this first pass
31:54
we needed to build a compiler
31:56
that is built effectively from Likewise
31:59
X8664 will... one effectively on Macos
32:01
X8664 but produces code that runs
32:03
on Macos AR64. Got it? We
32:05
also need to remember that all
32:07
the build tools understand both X8664
32:10
and AR64. That will be a
32:12
big help for us. So he
32:14
provides the environment variable to make
32:16
this possible. It's a long one
32:18
so you can find it in
32:20
the blog post. Then we can
32:23
make our build with G make
32:25
dash capital V equals 1 and
32:27
then J4. He installed a new
32:29
make from homebrew since it's much
32:31
newer than what he got from
32:34
the command line tools and from
32:36
now he only was going to
32:38
worry about getting nut up and
32:40
running once we have it then
32:42
I can worry about combining nut
32:45
and GDC together into one suite.
32:47
Step 3 Building a Stage 2
32:49
nut native compiler Now we can
32:51
use this new compiler to build
32:53
another new compiler, compiler, the compiler.
32:55
This new compiler will be built
32:58
with the compiler we just built,
33:00
because the compiler we just built
33:02
produces code for A.R. 64, Apple
33:04
Darwin, 24, 2.0, even though it
33:06
runs on X86, Apple Darwin, 21.6.0.
33:09
So it is finished compiling GCC,
33:11
that G. C.C. will be a
33:13
native Macoese A. A.R. 64 compiler.
33:15
He needs to reset his path
33:17
to get rid of the a
33:19
liar provided provider compiler. We don't
33:22
need it anymore. And then you
33:24
can create a new build directory
33:26
and run your configuring vocation. So
33:28
what we are saying here is
33:30
that our built machine is effectively
33:33
now Mac OSX86 underscore 64, but
33:35
you would like to build a
33:37
compiler that runs on Mac OS
33:39
AR64 and produces code for Mac
33:41
OS AR64. Very quickly, turns out
33:44
that stage one, collect two binary,
33:46
was miscompiled and segfaults when it's
33:48
used. When I did try to
33:50
overcome this, the copy of native
33:52
collect two binary from his GDC
33:54
compiler to the nut compiler, everything
33:57
was happy after that. Okay. So...
34:00
Step 4. Now that I have
34:02
a native Net on Macos, A.R.
34:05
64, I want one single GCC
34:07
package that will have all the
34:09
languages that are available. Ada, C,
34:11
C, C+, D, 4, Tran, Modular,
34:13
2, Objective, C, and Objective, C,
34:15
Plus Plus. I moved the Tarball
34:18
on the Stage 2 net compiler
34:20
to my host machine, shut down
34:22
the virtual machine and installed the
34:24
Stage 2 compiler. I then put
34:26
the Stage 2 compiler in front
34:28
of the GDC 2. That's all
34:30
we need for now. All of
34:33
build, host and targets are now
34:35
AR 64, Apple 64, Apple Darwin
34:37
24.2.0, a fully native compiler. And
34:39
GCC will detect that automatically and
34:41
create a new native compiler. This
34:43
build is running without problems, then
34:46
for one last time install to
34:48
a fake directory, tar it up,
34:50
and move the old stage to
34:52
compiler and all GDC compiler and
34:54
install this new complete GCC. And
34:56
conclusion, I've come... I've uploaded the
34:59
Tarball here for those that wanted,
35:01
so he has the final version
35:03
on his blog. You would need
35:05
to have the command line tools
35:07
installed. If someone knows how to
35:09
get GCC to auto-select between X
35:11
code and the command line tools,
35:14
please let me know. You'll also
35:16
need to put up slash up
35:18
slash GCC14 slash bin at the
35:20
front of your path to use
35:22
it. Even better? No! No one
35:24
will ever need to have to
35:27
go through the hassle of bringing
35:29
up Ada support for MacOS AR
35:31
64 again. We now have a
35:33
compiler that can be used as
35:35
a bootstrap for future releases of
35:37
GCC. Maybe we'll even have some
35:40
package managers provide not compilers since
35:42
the hard work has been done.
35:44
Yep. Thank you again, Dr. Brian
35:46
Robert Callahan. I just so confused
35:48
why this all has to be
35:50
done. Don't don't tell me different
35:52
architectures different suppliers needing to compile
35:55
other suppliers No, it's okay. But
35:57
why can't the compiler vendor? I
35:59
provide compiler is compiled they don't
36:01
think that that's the question maybe
36:03
why do they support like
36:05
that's the who needs to it's
36:08
very easy to move go around
36:10
us next next we have a
36:12
blog post on a Tom Fatigue
36:14
dot net Modify an OmniOS
36:17
service parameters. I was three
36:19
years old when I needed
36:21
to change some parameters of
36:24
my Prometheus service on OmniOS.
36:26
It runs via package source
36:28
and the provided SMF and
36:30
modifying the running parameters is
36:33
not as simple as editing
36:35
an RC.D file. I first read
36:37
the SVCS services. report service
36:39
status man page but that was of
36:41
no help for my need. Then I
36:44
went to the service admin manipulate services
36:46
into this man page and I still
36:48
didn't know how to do the modifications.
36:50
I finally found the service config import
36:53
export modify service configurations and started to
36:55
see the white. I'm not very skilled
36:57
with this OS and I didn't understand
36:59
the properties part at least how I
37:01
was supposed to modify them. But
37:03
I know how to use VI
37:05
and I can read and write
37:07
XML files, a dangerous combination. So
37:09
I may make the example one
37:12
and two and export the service
37:14
description and modify the XML file
37:16
and import the service
37:18
description back at SVCS dash
37:20
a grab Prometheus, SVC config export
37:23
Prometheus, said and then import
37:25
it again. Thank to Joshua M.
37:27
Clulo. I learned a smart way of
37:30
modifying the SMF properties using SVC
37:32
config dash SF MRI edit prop.
37:34
It will open a text editor
37:36
with a bunch of commented out
37:38
stuff which represents the current state
37:41
of the service or service instance.
37:43
You can uncommon what you want,
37:45
save and exit and it will run
37:48
the commands. You can then run SVC
37:50
admin refresh. The service to get a
37:52
new snapshot and restart it. You can also
37:54
use SVC config as a captive shell to
37:57
manipulate properties as such. To modify the user
37:59
and group user... in the service I
38:01
simply went SVC config dash s
38:03
package source Prometheus edit it and
38:05
then and then did it then
38:08
did a restart there we go
38:10
I was lost when it comes
38:12
to Prometheus this is also a
38:14
handy if you want to change
38:16
the dash dash storage tsp. retention
38:18
time or the retention size parameters
38:21
as they were passed this command
38:23
line arguments look for a modified
38:25
start exact property. That's all for
38:27
now, another lesson learned. Okay, that's
38:29
on the US and we continue
38:32
with an even earlier Unix or
38:34
earlier Unix days because we have
38:36
another article from Chris Seiberman about
38:38
the history and use of ETC
38:40
slash glob in early Unixies. Never
38:43
heard of this file or what
38:45
is this about? This is about
38:47
exactly that article. One of the
38:49
innovations that the V7 born shell
38:51
introduced was built in shell wildcard
38:53
globbing, which is to say expanding
38:56
things like asterisk, the question mark,
38:58
and so on. Of course, e-lux
39:00
had shell wildcards well before version
39:02
10, but in V6 and earlier,
39:04
the shell didn't implement globbing itself.
39:07
Instead, this was delegated to an
39:09
external program. ETC glob. This affects
39:11
things like looking into the history
39:13
of unique shell wildcards, because you
39:15
have to know and look. at
39:18
the glob source, not the shell.
39:20
As covered in places like the
39:22
v6 glob manual page, that file
39:24
had its own manual page, turns
39:26
out the glob program was passed
39:28
a command and its arguments, already
39:31
split up by the shell, went
39:33
through the arguments to expand any
39:35
wild cards it found, then executed
39:37
the command with the now expanded
39:39
arguments. Okay, the shell operated by
39:42
scanning all of the arguments. or
39:44
on escaped wild cards. If any
39:46
were found the shell executed ETC
39:48
glob with the whole show. Otherwise
39:50
it directly exacted the command with
39:53
its arguments and quoting wild cards.
39:55
use the hack that will be
39:57
discussed later. This basic ETC glob
39:59
behavior goes all the way back
40:01
to UNIX version 1 where we
40:03
have shell dot S, yeah not
40:06
C or nothing, shell dot S
40:08
and in it we can see
40:10
that invocation of ETC glob in
40:12
version 2 glob is one of
40:14
the programs that have been written
40:17
in C glob.c and in version
40:19
3 we have a sh sh
40:21
h dot 1 that mentions ETC
40:23
glob and has an interesting box
40:25
note about it. If any argument
40:28
contains a quoted asterisk or question
40:30
mark or opening bracket, then all
40:32
instances of these characters must be
40:34
quoted. This is because as H
40:36
calls the glob routine whenever an
40:38
unquoted asterisk question mark or opening
40:41
bracket is noticed. The fact that
40:43
other instances of these characters occurred
40:45
quoted is not noticed by glob.
40:47
This section has disappeared in the
40:49
version 4 shell manual page which
40:52
suggests that the version 4 shell
40:54
and EDC Glob had acquired the
40:56
hack that they used in version
40:58
5 and 6 to avoid this
41:00
particular problem. How escaping wildcards works
41:03
in version 6 and 5 is
41:05
that all characters in commands and
41:07
arguments are restricted to being 7-bit
41:09
ASCII. The shell and EDC Glob
41:11
both used the version or the
41:13
8th bit to mark quoted characters.
41:16
Which means that such quoted characters
41:18
don't match their uncoded versions and
41:20
won't be seen as wild cards
41:22
by either the shell when it's
41:24
deciding whether or not it needs
41:27
to run ETC glob or by
41:29
slash ETC glob itself when it's
41:31
deciding what to expand. However, obviously
41:33
neither the shell nor ETC glob
41:35
can pass such marked as quoted
41:38
characteristics to actual commands. So each
41:40
of them strips the high bid
41:42
from all characters before exacting actual
41:44
commands. This is clear in the
41:46
version 5 glob.c source as a
41:48
side note look at for how
41:51
cat and as ends every character
41:53
with octal 0177 to to drop
41:55
the high bit. You can also
41:57
see it in the version 5
41:59
shell C code where you want
42:02
to look at trim and also
42:04
to define for quote at the
42:06
start of shell.c and how it's
42:08
used later. The PS goes. I don't know
42:10
why expanding shell wild cuts used it as
42:12
a separate program in version 6 and earlier
42:15
but part of it may have been to
42:17
keep the shell smaller and more minimal so
42:19
that it required less memory. And the
42:21
PPS reads, see also Stephen
42:23
Arborn's 2015 presentation from BSD
42:25
Can, I was there, which
42:27
has a bunch of interesting
42:29
things on the v7 shell
42:31
and confirms that EDC glob was
42:34
there from version 1. Huh,
42:36
interesting. So that word was, but
42:38
is not there anymore because
42:40
newer shells are now big
42:42
enough to fit in memory
42:44
and have disintegrated directly.
42:46
It's much how much you have
42:49
installed. Oh yeah. BSD now is sponsored
42:51
by Tarsnap. Everyone needs backups and
42:53
Tarsnap ensures that your backups are not
42:55
only safe but also secure. Your
42:57
data is encrypted on your device before being sent
42:59
to the cloud. You can be sure that only
43:01
you have the ability to read your data. Tarsnap
43:03
takes your data and works out what is duplicated.
43:05
It then assembles the data into compressed blocks and
43:08
cricks them with your local private key and this
43:10
key never leaves your system. The data is then
43:12
uploaded into the cloud. Even if someone is able
43:14
to obtain your data in the cloud, they will
43:16
not be able to decrypt it and access your
43:18
files. Tarsnap is easy to use. If you can
43:20
use TAR, then you can use Tarsnap. Tarsnap is
43:22
pre-paid, so you never have to worry about an
43:24
unexpected bill. Tarsnap is fully-paid, so you never have
43:26
to worry about an unexpected bill. Tarsnap is fully open-source, allowing
43:28
you to worry about an unexpected bill. Tarsap, for helping make
43:31
a help, for helping make a help, for helping make the
43:33
software, for helping make software, for helping make a software, for
43:35
helping make a software, for helping make a software better, for
43:37
helping make software better, for helping make, for helping make software,
43:39
for helping make, for helping make software, for helping make, for
43:41
helping make software, for helping make software, for helping make software
43:43
better, for helping make software better, for helping make, for helping
43:45
make, for helping make, to learn, for helping make All
43:55
right, we get questions and you can
43:57
ask us questions by sending an email
43:59
to feedback. BSD now. TV. You can
44:01
also ask the questions on the telegram
44:03
group but you probably won't get replies.
44:06
You can find that T.E. slash
44:08
BSD now. Wow I remembered that's
44:10
been a long time. This week
44:12
we have a question from Nelson
44:15
and Nelson writes to tell us
44:17
about a video they saw on
44:19
the internet. The Unix historical society
44:22
list yesterday which I read this
44:24
morning which I read this morning
44:26
which I don't know when he
44:28
sent this. has two links to
44:31
a talk by Kirk McKusick about
44:33
the origins of the BSD Damon
44:35
character and their YouTube links so
44:38
they'll be on our show notes.
44:40
It was a fun 40 minute
44:42
watch and a definite must see
44:44
for BSD now buffs. The second
44:47
link has cleaned up audio but
44:49
is in a format my CentoS7
44:51
workstation cannot display the first work
44:54
finer I had no trouble listening
44:56
to. Thanks for letting us know
44:58
about this, Nelson, because we probably
45:00
would have forgotten to mention it.
45:03
I watched this. It was definitely
45:05
a pleasure to see the talk
45:07
and I so saw George Neville
45:10
Neal again. I haven't seen him
45:12
in a while so he was
45:14
running or holding up some of
45:16
these shirts that the BST Damon
45:19
was on. So Kirk has a
45:21
nice collection of these shirts and
45:23
so that was a well-made talk
45:26
with you know the people who
45:28
were there from the very beginning
45:30
especially Kirk McKusick collecting these t-shirts.
45:32
That's certainly yeah well worth watching
45:35
if you know. or want to
45:37
know more about the history of
45:39
that little statement that we all
45:42
have on our system. Especially if
45:44
you're a previous user or a
45:46
BSD's in general. Okay, anything left?
45:48
Oh, I think I shouldn't close
45:51
without mentioning BSD and L, which
45:53
is a nice conference that I
45:55
was made aware of through the
45:58
Fettiverse. So BSD.N.L. I think it
46:00
is. No, it's not. Sorry, I
46:02
need to find that. I... Was
46:04
it a different website? Yeah, or
46:07
so it's a nice little conference
46:09
in Utrecht, the Netherlands, and I
46:11
know the dates because I submitted
46:14
two talks to them, because just
46:16
to be sure that at least
46:18
one of them gets accepted, and
46:20
the conference is on the 12th
46:23
of April, that's a Saturday in
46:25
Utrecht, and the events of BSD&L.NL.
46:27
That's why I couldn't find it.
46:30
It's not directly... under the URL.
46:32
I was suggesting it. So events.bstdnl.n.l.
46:34
and then slash early 25, but
46:36
I think if you go to
46:39
the main URL, then you can
46:41
also find it. There you can
46:43
still find the call for papers.
46:46
It's still out. Do I see
46:48
how long or when that closes?
46:50
Oh yeah. You can still submit
46:52
until the 14th of... March, March,
46:55
easy. 14th of March 2025, they
46:57
look for talks still. Any particular
46:59
topics? No, I don't see them.
47:02
I will be there. It's in
47:04
the maximum, Maximus brewery, Pratems Plats
47:06
2A, 344, 54, and A in
47:08
Utrecht. So I haven't been there.
47:11
Apparently it's not the first conferences
47:13
they are doing in this place.
47:15
So this is the second one.
47:18
I must have missed the first
47:20
one. Best way to go to
47:22
the second one. either as a
47:24
speaker or just listening in. It's
47:27
going to be fun. I think
47:29
and that's why I submitted a
47:31
talk. Are you speaking in Dutch?
47:34
No, I can't speak a single
47:36
word in Dutch. It's close to
47:38
German or German dialect, but I
47:40
would probably make more enemies trying
47:43
to speak. You too much to
47:45
learn. I will be happy to
47:47
speak in English all the time.
47:50
I will be there. and I
47:52
will take the train so that's
47:54
also a nice way of getting
47:56
through the country side and I
47:59
like being at smaller events that
48:01
are not as big as the
48:03
major conferences because there are other
48:05
people going there, they are people
48:07
who couldn't meet otherwise at other
48:09
bigger conferences or they haven't met
48:12
me because hey they hadn't had
48:14
a chance yet. So it's also
48:16
good to see new places, new
48:18
people and given a popular, or
48:20
I'm not sure it's a popular talk,
48:22
but a BSD talk and a BSD
48:24
event from someone who has been around
48:26
for a while. is probably drawing a
48:29
lot of other people to that
48:31
conference because they want to see
48:33
me or listen to me. So
48:35
why not support the conference in this
48:38
way? Benedict, they can listen to you
48:40
every week. Yeah, it's not just they
48:42
have a podcast they could go to.
48:44
But this one is live. I mean,
48:46
they asked me whether I will be
48:48
okay to get streamed or if people
48:51
record this somehow, I would be, yeah.
48:53
a remiss to say no because
48:56
hey I've been recorded for
48:58
a lot of years now.
49:00
Imagine, imagine what the unedited
49:02
Benedict. Oh yes, you can
49:04
get that if you went
49:06
to B&S, you know. All
49:08
the AI has made their
49:10
changes to my voice. Raw, raw
49:12
Benedict. Yeah, the uncut version
49:15
of me. Uh, what are your
49:17
plans? You will be at Fuz then?
49:19
Yeah. I mean, yes, I will be
49:21
at Boston this time, unfortunately. I know
49:23
there's always a gathering of BSD people
49:25
there. They also have a deaf room.
49:28
Yeah, there's a deaf room this year.
49:30
There's no free BSD Dev Summit. I
49:32
will be staffing the free BSD and
49:34
through BSD Foundation table the majority of
49:36
the time. I'll be really easy to
49:38
find if you want to come find me.
49:40
And man, there might be loads of
49:42
stickers. There might be no stickers. There
49:45
might be no stickers. We'll find out.
49:47
Who knows? Yeah, so you should show, you should show
49:49
up, you should show up early and bring me a
49:51
coffee because I'm going to probably struggle
49:53
to find coffee in Brussels in the
49:55
morning. I could have been there really, or I
49:57
could have been there like 8 o'clock in the
49:59
morning. set up a table and
50:01
make sure that everything's waiting for
50:04
people to come. Yeah, it would
50:06
be great fun. It's a wonderful
50:08
event. There'll be more people than
50:10
you possibly knew existed in the
50:13
world all in once more. It's
50:15
big. A lot of open source
50:17
projects are there. The popular ones
50:19
are definitely showing themselves and the
50:22
dev rooms are very focused on
50:24
particular operating systems or topics or
50:26
programming languages or what have you.
50:28
Yeah, certainly interesting to be there
50:31
in person. They also have live
50:33
streams from many of these rooms,
50:35
the major talk rooms anyway, and
50:37
some smaller ones as well. Good,
50:40
and I think we should leave
50:42
you. Oh, by the way, did
50:44
you see, because I was traveling,
50:46
did you see any of the
50:49
chaos communication Congress videos? We can
50:51
talk about that, we can talk
50:53
about next week. Yeah, next week.
50:55
All right, makes sense. To entice
50:57
people to come back next year,
51:00
next week. I expect JT to
51:02
edit that remark out when he
51:04
gets to edit it. Yeah, he
51:06
never heard this what I just
51:09
said. Yeah, no one, no one
51:11
spoke ever talking about next week.
51:13
Saving up the anecdotes. Okay. Fine
51:15
then. We leave you with that.
51:18
Have a nice week until the
51:20
next one and always be BSDing.
51:22
Not sure.
Podchaser is the ultimate destination for podcast data, search, and discovery. Learn More