Initial commit: HPR Knowledge Base MCP Server
- MCP server with stdio transport for local use - Search episodes, transcripts, hosts, and series - 4,511 episodes with metadata and transcripts - Data loader with in-memory JSON storage 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
606
hpr_transcripts/hpr3559.txt
Normal file
606
hpr_transcripts/hpr3559.txt
Normal file
@@ -0,0 +1,606 @@
|
||||
Episode: 3559
|
||||
Title: HPR3559: Linux Inlaws S01E52: The Zig Project
|
||||
Source: https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr3559/hpr3559.mp3
|
||||
Transcribed: 2025-10-25 01:26:28
|
||||
|
||||
---
|
||||
|
||||
This is Hacker Public Radio Episode 3559 for the first time at 24th of March 2022.
|
||||
Today's show is entitled, Linux in-laws S01252, the ZIG project and its part of the series,
|
||||
Linux in-laws, it is hosted by Monochrome, and it's about 69 minutes long, and carries
|
||||
an explicit flag. The summary is an interview with LORIS TROOXID game.
|
||||
This is Linux in-laws, a podcast on topics around free and open-source software, any associated
|
||||
contraband, communism, the revolution in general, and whatever else, fans is critical. Please
|
||||
note that this and other episodes may contain strong language, offensive humor, and other certainly
|
||||
not politically correct language. You have been warned. Our parents insisted on this disclaimer.
|
||||
Happy mom? Thus the content is not suitable for consumption in the workplace, especially when
|
||||
played back on a speaker in an open-plan office or similar environments. Any miners under the age
|
||||
of 35, or any pets including fluffy little killer bunnies, your trusted guide dog, unless on speed,
|
||||
and Q2T Rexys or other associated dinosaurs. Welcome to Linux in-laws season one episode 52.
|
||||
Martin, how are things? Yeah, I think so. Good. How are you? And more importantly, that was our guest.
|
||||
Can't complain Martin, can't complain, but before we go into our guest, how is this situation shaping
|
||||
up at the UK? I understand that Lizzie hasn't stepped down yet? No, she won't anyway.
|
||||
This is comes with a job right. I see. To resign. So you can't resign. You simply don't know
|
||||
whatever. I see. Okay. Unlike her name, Merkel, she resigned. Yeah, she resigned. That's
|
||||
unofficial. Yeah, she's going back into physics. There's an episode of 2016. No, no, of next
|
||||
government negotiations happen now. About 12. If you want to know, by the way, people,
|
||||
if you want to know about the future of Mrs. Merkel, as in the external transfer, there's an
|
||||
episode of the dark side last year that gives a little bit of a clue at what's going to happen.
|
||||
And more specifically, the episode of the Halloween episode of last year. But this is not
|
||||
about the past, but rather about the future. So Martin, why don't you welcome all guests?
|
||||
Yes. Tonight we have a special guest who is someone we know from a few years ago.
|
||||
The past. Yes. Yes. Yes. Yes. Well, a bit of recent past. Let's put it that way.
|
||||
He's heavily involved with a programming language. Yes.
|
||||
Comes to tell us all about tonight. Yeah, that was the point in time.
|
||||
I think even before you defected, right? I think Laura's defected first. He did. Sorry,
|
||||
I wouldn't. I wouldn't. I wouldn't. I wouldn't. I wouldn't use the term defected now,
|
||||
but just for the why don't you introduce yourself and all results will be resolved very soon.
|
||||
Hello, guys. Um, well, uh, wait, Martin, you defected?
|
||||
Yes. Yes. I left. That's a straight. It's not an army. There's no defection possible.
|
||||
I guess he's run by, yeah, let's not go into the details of who's run by.
|
||||
Laura, sorry, sorry. Maybe. Before we drift into the internals, into the internals right away,
|
||||
why don't you introduce yourself? And then I'm going to, I'm going to set on, I'm going to
|
||||
set some of that on all the defections that happened since you left. Oh, okay. Yeah. Let me
|
||||
well, okay. So hello, everybody. I'm Laurie Scrawl. And I'm currently with PEOPLE Community
|
||||
at the zix of a foundation. And, uh, well, we were saying that we were talking about the
|
||||
faction a moment ago. So I joined the zix of a foundation after leaving red slabs where I was a
|
||||
developer advocate. And I don't know, I guess I put my marketing skills that I gained at red slabs,
|
||||
at use now. I mean, I'm putting them at use now at the zix of a foundation. Yeah, this is,
|
||||
and this is how we all met. Martin, myself and Laura's, of course, were working at red slabs
|
||||
and we also called red slabs. Uh, Martin has defected and he has defected since again. I'm still
|
||||
with redis as it's not called these days, but this, but this episode is not about redis or, or,
|
||||
or VMware or bright light, whatever it was called Martin, but rather about the zix programming language
|
||||
and the zix foundation. So, Laura, further ado, why don't you tell us a little bit about the
|
||||
foundation as a programming language as such? Sure. Um, and also, I, I guess I need to do a good job
|
||||
right to convince you guys because I, I listened to your last podcast. You did it. I did it. Martin,
|
||||
that's a listener. Excellent. Sorry. Good. You guys didn't sound super stoked by ZIG when you were
|
||||
discussing it the last night episode. Well, we don't know anything about it. So what do you
|
||||
do? Indeed, we don't. Otherwise, it's a problem language. Yes. So, okay, ZIG is a programming language.
|
||||
We on, on the website, we have the stagline where we say that it's a general purpose programming
|
||||
language. Um, you know what? I'm bringing up, I'm going to bring it up and read it, uh, directly.
|
||||
That doesn't sound glorious. But, uh, here's the thing. I can justify each word, uh, which I think it's
|
||||
more interesting and concise. So, ZIG is a general purpose programming language and to change for
|
||||
maintaining robust, optimal and reusable software. So, the idea behind ZIG being a general purpose
|
||||
programming language is that it's a programming language that doesn't have like a runtime,
|
||||
and it doesn't have dependencies on things that you can find on like full blown
|
||||
personal computers, but then maybe you wouldn't find in embedded devices. So, uh, for example,
|
||||
you can't really program a tiny embedded devices with Python without weird compromises in ZIG.
|
||||
You don't have that. It's a tool chain because you can use ZIG to compile CNC plus plus code
|
||||
and cross compile it. So, like Linux windows are 2x86. And that, that it's known, that is
|
||||
non-trivial. It's weird, but CNC plus plus have always been weirdly hard to cross compile.
|
||||
And finally, the robust optimal and reusable is just how we like to describe
|
||||
how an ideal Z program should look like because ZIG puts a lot of emphasis in handling errors.
|
||||
It doesn't have exceptions, for example. So, whenever online can error out, you know it because
|
||||
error is part of the return time and stuff like this. Also, we as a language ZIG is very explicit.
|
||||
There is no hidden control flow, no macros, and like the general ethos of the language is to be
|
||||
easier to read than it is to write. Sometimes you write a bit more, but the idea is that who comes
|
||||
in and reads should not be confused by your code, normally.
|
||||
It's like a modern C slash C plus plus slash rust container, if you will. It's in the same
|
||||
ballpark, roughly speaking. And how does it come about? I guess, did someone just decide on
|
||||
they were going to invent a new program language or was there something specific that I thought
|
||||
or this is not good in C or C plus plus? So, I think that the story is, okay, do you want to know
|
||||
the story that I like to tell people or do you want to know the real story?
|
||||
The truth and the whole truth.
|
||||
Okay, so I'll start with the one that I like to tell. The one that I like to tell is that
|
||||
the creator of the language is Andrew Kelly, who at the time was working at OKCupid.
|
||||
And apparently, OKCupid is a giant C plus plus code base.
|
||||
Even though it's a website, at least that's the part that everybody knows about, right?
|
||||
But apparently it's implemented in C plus plus. So, the story that I like to tell is that
|
||||
Andrew, when they was put in charge of a messy C plus plus code base, and he told him, well,
|
||||
you need to maintain this. And he did the only rational thing, like the shortest path to maintain
|
||||
a C plus plus to maintaining a C plus plus code base, it's doing that in your language and
|
||||
rewrite it in that. That's what I like to tell. But the reality is that I believe that Andrew
|
||||
has always been interested in audio processing stuff. So, like, making digital music, right?
|
||||
And if you want to do tooling the works with sound, it needs to be very efficient. You cannot
|
||||
have like garbage collection poses, stuff like this. And so, he looked at a few languages,
|
||||
and he wasn't happy with any that he tried. And so, he ended up basically working on C.
|
||||
So, this is the official version. What's the unofficial one?
|
||||
Well, no, the second one about how the stuff is the official version.
|
||||
Ah, the version is to tell is the OKCupid one, the one where he had to work on a C plus plus
|
||||
code base, but that one is not true. OK, so no facilities involved, no money changing, and that's
|
||||
the sort of thing. Not yet. OK, I fully stosure, I had a very brief look at the language over the
|
||||
last couple of years. Let's start at the beginning. Zick was invented about 2015, 2016, something like this.
|
||||
Yeah, I think he checks out. I don't remember precisely when there's also, you know,
|
||||
the initial part where like it's a private repo, so nobody knows about it. Then he becomes a public
|
||||
repo, but then still nobody knows about it. OK, I'm not exactly clear on that period, I guess.
|
||||
I joined Zick more or less around release 0.4, I believe. Got it.
|
||||
Going back about 10, 12, 13 years ago, I was just invented by Google.
|
||||
Mozilla had just dreamt up this or somebody at Mozilla. Sorry, I should probably be more precise.
|
||||
Somebody at Mozilla had just dreamt up this requirement for a new language, because C plus plus
|
||||
and C didn't cut it anymore in terms of total cost of ownership of the code base,
|
||||
you could have to know the rest of it. Hence go lang or affectionately also known as go was
|
||||
and rust were born. Now, if I take a closer look at Zick, it does remind me in certain quarters
|
||||
of both rust and go lang. It's not fully object oriented. It does support structs that
|
||||
reminds me pretty much of rust. Enums are very close to rust. For example, if I take a look at the
|
||||
other type and we're not getting too technical here, that reminds me of really of rust.
|
||||
Where do you see the differentiator between say go lang and rust in a Z context?
|
||||
I think that there is some difference. There are parts of the Zick syntax that kind of
|
||||
remind of rust, but I know Zick, I've been doing Zick professionally now for a while, for more than a year.
|
||||
I still, given that, I don't have an easy time reading rust programs. Even though parts of the
|
||||
Zick syntax are similar, there are some big differences when it comes to how progress I end up
|
||||
written in the end of the day. I would personally say as a still imprecise way of describing
|
||||
the differences, but just to as a first approximation. I think that rust is a language that
|
||||
loves abstractions and complicated stuff in the same vein that C++ does, while Zick is more on
|
||||
the C side of the equation. On the side where you don't want to go to insane with abstractions.
|
||||
Now, that said, while I personally, clearly, definitely in the camp of simplicity, so I definitely
|
||||
prefer the Zick approach compared to the rust one. Obviously, there are some advantages to each
|
||||
approach. There's people who can make the C++ work for them beautifully, and so
|
||||
more power to them, that's my point. But yeah, so that's the bigger difference. I would say then,
|
||||
if you were to compare rust and go and see where Z is in that spectrum, yeah, maybe it's
|
||||
in between in some ways, although it doesn't map perfectly because Go is garbage collected, Zick
|
||||
isn't. I would say that Zick is a simpler rust. It's a systems programming language in a way that
|
||||
I don't think Go truly 100% is, but on the other hand, it does share with Go on appreciation for
|
||||
simplicity. That said, Go like simplicity to a minimalistic level that I think it's kind of
|
||||
unique of Go, and even though I like Go a lot, I really like Go, but I don't know, some things
|
||||
are a little bit minimalistic for my days nowadays. Interesting perspective, Flores,
|
||||
many people do say that rust has a very steep learning curve. Having learned rust myself and
|
||||
full disclosure, I'm not. I wouldn't because I wouldn't consider myself a rust expert by no means.
|
||||
I dabble and rust a little bit here and there, but that's about as far as it goes. I can
|
||||
concur with the entry into the program language, not the easiest one, especially given the concepts
|
||||
like ownership of variables, how memory is managed and rust and all the rest of it. I fully
|
||||
concur with your observation that probably rust is too heavy on abstractions, and it's an
|
||||
interesting perspective that you see this closer to see. Now, again, full disclosure, I'm really old,
|
||||
so I learned to see about 30 years ago, give or take a few years. When I take a look at the
|
||||
programs and the website tells me, apparently, because of the LLVM backend, you consider Zik to
|
||||
be a drop-in replacement, and a lower level to be very similar or rather off-sea. How do you see
|
||||
this relationship from the huge code base that is out there with regards to see Zik maybe being
|
||||
a logical successor to see in the regard? Yeah, so we have an actual slogan for this.
|
||||
The slogan is, maintain it with Zik, and it's on the website, but it's also the title of a blog
|
||||
post that I wrote a while ago, and I think that we're going to use it for something else
|
||||
in the future. So the idea is this. You can use Zik as an in-place replacement for clang. So there's
|
||||
CC command. If you do Zik CC, then that's a flag-compatible interface with clang. So you have a
|
||||
C project. You compile it with clang. You use to compile it with clang. You can swap in Zik CC.
|
||||
Now, that alone doesn't sound too interesting. Why would you do that?
|
||||
Clang is plenty good. Why toss in another thing? Well, here's how it works. You toss in Zik CC
|
||||
and your stuff keeps working. Then with a tiny little bit of work, depending on how complicated
|
||||
the project is, you can tweak a little bit in your make files to remove, for example,
|
||||
target specific capability checks. Like, for example, you know how sometimes build scripts
|
||||
are trying to look if your system supports a given feature or not, but those are tied to your
|
||||
system. So if you remove those, and clearly you, as I'm going to say, you do that in a reasonable
|
||||
way so that you don't remove a check and then assume that something through is through when it's
|
||||
not. But the point is, you do it correctly, and you can now cross-compile your project. We actually
|
||||
brought a blog post series where we actually did this with Radys. So step one, replace your
|
||||
GCC or whatever your C compiler with Zik CC. Step two, tweak a tiny little bit the variables
|
||||
that you feed into the make file and add the appropriate flags to Zik. And it's literally just
|
||||
dashed target x86, Windows x86, Linux, whatever you want. And now you can cross-compile. And we
|
||||
actually, in that blog post, cross-compile renders. So we did it on three actually while testing
|
||||
this out the first time. So like I was on a Mac and I cross-compiled a version for Linux and I
|
||||
sent to Enru and he was able to run. And that's step two. So cross-compilation, enabling cross-compilation.
|
||||
And by the way, if you were to try to cross-compile a C project by yourself without Zik,
|
||||
it's a bit more complicated than just setting the target variable. You need to bring your own
|
||||
C-sroot, you need to bring your own C-library for the target. And there's a lot of work that you
|
||||
have to do the Zik does for you automatically. Step three, though. And here things are becoming
|
||||
more interesting. The build scripts are sometimes like there's a soup. Projects have soups
|
||||
of build scripts like they have a make file, but then make doesn't work on Windows. So they also
|
||||
add C-nake because somebody likes C-nake. Then somebody else likes something else. Windows needs
|
||||
its own batch files or whatever curse thing people do on Windows. So you have always this project
|
||||
where they have sometimes they commit the autocomps stuff. Sometimes they don't, I don't know, it's a mess.
|
||||
Zik has a build system integrated in the language. So you create a build a Zik file and Zik can
|
||||
use that to basically do what you would do with make files. Now this is interesting because if you
|
||||
do that, you remove your dependency from make C-maker all this stuff. So now the compiler is also
|
||||
the build system for you. So you reduce the dependency and made your project a little bit more
|
||||
multi-platform. And that's actually something that it's already being used by, I can think of WASM3
|
||||
and a few other projects in that space. They have a build Zik file in their
|
||||
repo. So if you have Zik, you can just run that and you're good. And that brings us to the final
|
||||
step. So here you can see the maintaining it with Zik story fully complete. You have a Z
|
||||
project. You keep it in Z. You don't start rewriting it right away. But when you want to add
|
||||
functionality, you can create a Zik compilation unit that the Zik compiler will be able to compile.
|
||||
You will be able to export C-A-B-I symbols, functions,
|
||||
Ives, tracks and stuff that interoperate with everything. So it's like it's one extra compilation
|
||||
unit like any other compilation, C or C++ compilation unit that you would have.
|
||||
Although we are limited to the C-A-B-I, no C++ A-B-I. So let's say that Zik is more friendly towards
|
||||
in that perspective. But you have your Zik compilation unit and now you can link everything
|
||||
together. And we do that, for example, in the blog posts. We take Redis and implement a new
|
||||
command in Zik that then we link into Redis. That's maybe not the correct way of adding comments
|
||||
to Redis. But when we wrote the blog post, the perspective was of us being the maintainer of
|
||||
a C-project where we don't start rewriting everything. We just add stuff as a separate compilation
|
||||
unit. And if you like Zik a lot, you can, if you want, start tackling your C-project with one
|
||||
compilation unit at a time, like you replace it with an equivalent Zik implementation. And so you
|
||||
swap one piece at a time. And if you want over time, you can rewrite it in Z. If that's your goal.
|
||||
If that's not your goal, that's perfectly fine too. Because the point is that since Zik can
|
||||
compile C code. And we have maybe a compatibility. For example, there are projects out there that are
|
||||
just basically packaging a C-project into a repo that has a built-up Zik file and maybe a Zik
|
||||
syntax sugar layer so that you can use the Zik file that gives you, you know, nice Zik types
|
||||
instead of what the C API would return to you. But the second step is not even necessary.
|
||||
Even just having a build file would be amazing. And Zik would be able to use it.
|
||||
Okay, sorry, before we go any further, I should probably have prefixed this part of the episode,
|
||||
like the really technical deep down stuff. Before we lose the two of members of the audience
|
||||
maybe we should probably clarify a couple of things. L&VM, of course, is a compiler framework.
|
||||
Let's put it this way. That is our available GitHub and also has a fancy project website.
|
||||
You'll find the link in the show notes. Essentially, it's comparable to the GNU compiler suite
|
||||
in terms of it has a backend that is in charge of code generation for a couple of things. And then
|
||||
it has a program language specific front ends for the various program languages. Rust is using
|
||||
L&VM, sorry, if you invoke Rust C, which is the Rust compiler, you essentially invoke the L&VM
|
||||
backend for code generation. Similar, the C-lang, or Clang that Laura's just mentioned,
|
||||
would actually be the C-lang plus plus would be the C plus plus front end for C and C plus plus
|
||||
program languages feed directly into L&VM. Now, Laura's the build system you mentioned,
|
||||
that sounds pretty much like something called cargo for Rust. For those few people out there
|
||||
listening who don't know it. No, what cargo is essentially cargo is the Rust equivalent. I'm
|
||||
simplifying things here. Of the make or auto make build system for Rust. cargo can pull down
|
||||
dependencies, can compile dependencies in all the rest of it. So what make and auto make and
|
||||
all the GNU tool chain equivalence took about, I'm tempted to say 10, 15, 20 years to really be
|
||||
user friendly. In terms of simplifying things, it only took cargo about what, 5, 10 years max.
|
||||
That's my personal opinion on the whole thing. But maybe Laura's you have an opinion of yourself,
|
||||
with regards to this build system that you just described in comparison for example to cargo.
|
||||
Yeah, no, I think that's a fairly comparison. To be a bit more precise, cargo is also a
|
||||
package manager. Correct. Yes. We don't have yet the package manager part, but
|
||||
see, start working on it in like, I don't know, probably three months from now. So we want to also
|
||||
have that. It's just that we are slightly, it's a bit too early. But there's one thing that cargo
|
||||
cannot do, that they can do, which is compile secode. Cargo can fetch your dependencies.
|
||||
It's so Rust projects can depend on secode, and they do do that. But when Rust sees, when cargo
|
||||
sees that you have a seat dependency, it uses the systems compiler, the system, the
|
||||
system. So in a sense, cargo cannot fully work as a, if you will, build system and package manager
|
||||
for see projects. Well, they can compile and cross compile sea dependencies. So let me give you
|
||||
one example of how this is critical. And by the way, what this is, if you in from this perspective,
|
||||
one thing that cargo cannot do, it's not the end of the world, though, because, because you can
|
||||
use zig cc from cargo. There are a couple of blog posts out there. When I wrote myself called
|
||||
zig makes go cross compilation, just work. And somebody else saw my blog post and did the same
|
||||
with Rust. And so there's another blog post called titled zig makes rust cross compilation
|
||||
just work where basically they had this Rust project that depended on a C library. And they
|
||||
configured cargo to use zig cc as the systems c compiler and c++ also. And now they were able to
|
||||
cross compile. So the what going back to the package manager slash build system perspective,
|
||||
the aim for the zig build system and package manager is to become a major C build system and
|
||||
package manager. If you want an example of this, I'm going to share a link with you both.
|
||||
There's a tweet by Mitchell Ashimoto from HaxiCorp, which recently went public. So apparently Mitchell,
|
||||
I don't know, instead of enjoying the big money that comes from going public, I would assume
|
||||
started packaging c application, c libraries with z.
|
||||
Shifting back from technical things a little bit. If I take a look at GitHub, the code base that is
|
||||
out there with regards to go lang and Rust is just overwhelming, especially the adoption of Rust
|
||||
in the in the last, I'm tempted to say two years never mind the adoption of go lang.
|
||||
In the last seven years has been amazing projects that are come to mind. And other are more like
|
||||
system oriented projects that require a more like a low level language like C or more. I'm almost
|
||||
tempted to say C++ have adopted these two languages left right and center. Where do you see zig in
|
||||
this context? And if I take a look at the at the code on GitHub, there are not that many projects
|
||||
out there that use dig as the main implementation language. And by the way, of course, the language
|
||||
apparently is self hosted. If I'm not completely mistaken. The factor of it being quite a young
|
||||
language as well, right? So. Well, true. Yes. And that's the reason why I'm asking about the
|
||||
roadmap here. Yeah. So, okay, maybe, so first of all, let me acknowledge that yes, you're right.
|
||||
There are not that many z packages out there yet. That is fair. It's also because in part,
|
||||
there is no package manager. So you can imagine how surely it reflects the level of adoption,
|
||||
not out there. But also you start having a proliferation of libraries and packages once you
|
||||
start having a package manager that allows you to easily leverage them. So we don't have that yet.
|
||||
So I think it's normal for these numbers to not be exploding yet. We'll see after we publish the
|
||||
package manager. What happens now? Okay. So this is libraries on GitHub. As for the language itself
|
||||
being self-hosting. So the language at the moment is not self-hosted yet. Sure. But we are about to.
|
||||
That's the current main piece of work that we are doing right now. Long story short,
|
||||
Z is implemented in C++. But if we like C++, we wouldn't be doing Z. So we are trying to replace
|
||||
the current implementation in C++ with that self-hosted implementation. These are false
|
||||
implementations. Aside from being more to our taste, has a couple of interesting aspects to it.
|
||||
One is that it's going to be considerably faster than the current implementation. Z is not that slow
|
||||
at compiling. But the new self-hosted implementation is really designed to be much faster. It implements
|
||||
many of the data-oriented tricks in case people have heard this term. It's like just techniques to
|
||||
make your stuff go fast. And on top of that, we also want to implement incremental compilation
|
||||
with basically, let's say, a new way of doing incremental compilation. There should be
|
||||
also allow, it should also allow us to basically do rebuilds of arbitrarily big projects in less
|
||||
than a millisecond. So the idea is you have a big project. You've compiled it once. Obviously,
|
||||
the bigger the project, the more it takes to compile it. There's no escape from that. But you have
|
||||
this giant project. Let's say it's, I don't know, Chrome or Zig Chrome. And you change one file,
|
||||
one definition somewhere. Recompiling the project after that one change should be basically
|
||||
instantaneous. That's what we aim for. And there are a lot of tricks that are necessary to get there.
|
||||
So this is the self-hosted work that we're doing right now. I'm personally working on implementing
|
||||
the doc system for the self-hosted compiler. That's what I'm working on right now. So the thing that
|
||||
basically generates documentation automatically for Zig projects. But it will take a while before
|
||||
all this stuff is complete. So as I was saying, I don't know, three or four months, something like
|
||||
this, after that Zig will be self-hosted. Interesting. So with regards to the overall ecosystem,
|
||||
you have a foundation in place for enough. So does Rust. So does, I'm almost tempted to say
|
||||
go along, but we have this kind of tiny search engine brand go. So that's for me, an effort,
|
||||
an effort, a compression. Are you sure to go as a foundation? No, that's what I'm saying,
|
||||
but it has a search engine backing it. I will think one thing though. The Rust foundation is
|
||||
very different from the Z software foundation. Do you want me to go into the lily's?
|
||||
By all means, just go ahead. So Zig is a 503 non-profit foundation.
|
||||
Sorry, 501 C3. While Rust is a 501 C6. So these letters, 501 C3, 501 C6, these are like,
|
||||
it's a pointer, if you will, into the specific paragraph and the line inside
|
||||
some kind of American legal document that defines. For the two people in the audience who are not
|
||||
American text lawyers, lots of course referring to the text legislation in the US with regards to
|
||||
non-profits. Yeah, this may be the show notes. Good luck finding them. I don't even know where to start.
|
||||
I guess you can go to the side, but the point is, the point is, 501 C6, 501 C3. Now,
|
||||
this is a tiny number of the changes, but a 501 C3, it's a non-profit foundation that can accept
|
||||
donations. A 501 C6 cannot accept donations. So, not even the ones under the table.
|
||||
I mean, you mean a lot being. Joking laws, I'm joking.
|
||||
So they cannot accept donations. So the rest of the donation is not allowed to accept donations.
|
||||
The only thing that they can do, well, I guess they can do work, just like the Z-Soft Reformation,
|
||||
can do work and being paid for work. But the last foundation, basically, the way they get money
|
||||
is by having member companies pay a fee. So in some ways, they are more like a consortium.
|
||||
I think that here in Europe, we would think of that type of organization as a consortium.
|
||||
So they are a group of companies with a shared interest. Companies pay a fee to
|
||||
getting to the foundation, and that's it. One interesting side effect of this is that the Z-Soft
|
||||
Reformation is paying its developers. I am being paid by the Z-Soft Reformation to work full
|
||||
time on Z, and so are a couple more people. At the REST Foundation, nobody is paid to work on REST,
|
||||
except maybe a couple of people who have administrative tasks. So the developers are not paid to work on REST.
|
||||
I think the fundamental difference is, similar to Linux, the people on the foundation,
|
||||
I'm part of different companies who are just chipping in with regards to making the project work,
|
||||
whereas Zix seem to be different, apparently, in that case.
|
||||
Yeah. Okay. Yes. Also because there are sometimes, I think, some interesting conflicts of interest,
|
||||
I think, when you have the second approach, the one where you have companies, sorry,
|
||||
the first approach is to say, the one where you have companies basically higher your court
|
||||
contributors, because on one hand you have this, if you will, natural misalignment of incentives,
|
||||
where companies paying these people to work on their stuff, and secondly to work on REST,
|
||||
or the other open source project, whatever that is. But it's not just that. One thing that
|
||||
happened recently with the REST Foundation, which I found not very nice, was that REST had an
|
||||
executive director that was somebody from the REST project itself. They had been there for,
|
||||
had been there for a long time. And basically, this person was, was the executive director
|
||||
at Interim, so only temporarily, while they were searching for somebody to take the position
|
||||
full time, but it basically never renewed her contract after it expired the first time.
|
||||
And the foundation remained without an executive director for something like six months or something
|
||||
like that. And in the meantime, when you don't have an executive director, the highest authority
|
||||
is the president of the board of directors, who was the, the person in charge of the REST
|
||||
team at AWS. So AWS basically, it's one of the biggest member companies. They have a bunch of
|
||||
board seats. They have the executive, they're sorry, the president, the chairwoman of the
|
||||
board of directors at the REST Foundation, and they also employ a good chunk of the key
|
||||
developers of the REST project. And I don't know. I think that when you have an external organization,
|
||||
whoever that is, it, for me, it's very easy to hate on AWS. But whatever the company is,
|
||||
even if it's not a company, you know, where, where they ask employees to be in bottles,
|
||||
even if it's a much nicer company, it's still a problem in my opinion. So one thing that we do in
|
||||
the self-reformation is that we know upfront, we are never going to give board seats to any big
|
||||
that company period. Okay, interesting. Okay.
|
||||
Although now you might say, well, okay, then how do you guys ever expect, ever expect to become
|
||||
big? That's an interesting thing. Well, what is the, I guess, what is the objective, but
|
||||
just to go? Yeah, I mean, you mentioned the donations. So these are sort of no strings attached,
|
||||
donations to the project, is that right? Yeah, correct. And then the second question that
|
||||
follows on from now is, you know, obviously the people like yourself and people developing
|
||||
their language, how do they earn their bread on the table? That's put it that way, right?
|
||||
This is where, you know, organizations that sponsor Rust programmers that helps the,
|
||||
or any open source project helps the project move along, right? So that's, if in your case,
|
||||
it's mainly done on the voluntary basis or as a sideline, then you can perhaps imagine it
|
||||
will take longer to take off, is that fair to say? Or how do you see that? Yeah, so I think that from
|
||||
my, from the development, the velocity perspective, I don't think that not having a big company
|
||||
sponsor Rust makes much more difference. I think it does make a gigantic difference more
|
||||
from a marketing perspective, because even though, for example, Rust deserves, I think,
|
||||
to be regarded as a very interesting new language and absolutely innovative when it comes to
|
||||
the borrow checker, et cetera. Well, I mean, you can also see that, especially now that AWS
|
||||
is in charge, there's a lot of marketing money being spent into Rust stuff, like the hype,
|
||||
level is pretty high, and marketing money is being invested into, you know, keeping the
|
||||
temperature high. In some ways, if you argue the same about Go, I don't know precisely
|
||||
how much marketing investment that has been in Go, but, you know, the fact that Google uses it,
|
||||
and then once it starts being used for one big project, then, and the fact that it's
|
||||
baked by Google, then that all stuff that helps, for sure. For Z, when it comes to paying
|
||||
for contributors, it works this way. We have three contributors that work full-time,
|
||||
in our pay-to-work full-time. I'm one, another one is Jacob Conka, who left Microsoft to basically
|
||||
work on a in-house linker that we are using in Z. I won't get too much into detail, but the idea
|
||||
of course, compiling, like, making a program, compiling a program on Windows for macOS, it's not
|
||||
intriguing, and especially with the new macOS, is that came out, there was no linker able to do that,
|
||||
and so Jacob started working on this stuff. But, aside from these technicalities,
|
||||
and the third person, of course, is Andrew. Our three are the full-time contributors right now.
|
||||
Then there is a group of about, let's say, 10 people who are not working full-time, but who have
|
||||
contracts where they are allowed to build hours to the software formation. So they do some work,
|
||||
and they are allowed to build a few hours every week. I don't remember the precise details,
|
||||
but you can think of it as, like, lower than part-time, something like this.
|
||||
These are pretty safe. Obviously, the more donations we get, the more people we would like to bring
|
||||
on board to work full-time. But, the general idea is that we would want to always stay small,
|
||||
like a tiny organization, no overhead as much as we can, so that we can stay tiny, and more
|
||||
importantly, that we don't end up, like, depending too much on one donor, on one big company,
|
||||
something like this. We don't want to end up, like, Mozilla, who, at one point, had to fire a bunch
|
||||
of very good people just because they end up, just because then one deal that they had with Google
|
||||
ended up not being renewed, and there was a disaster. From a marketing perspective,
|
||||
obviously, yeah, not having a big company in your border direct towards its stuff, because
|
||||
well, they have money, and money is easily translatable into marketing muscle.
|
||||
I don't know, you can have a ZIG conference organized and entirely paid by this giant company,
|
||||
and that surely helps. We're not going to have that, but at the same time, I think that we are
|
||||
solving problems that are interesting enough, that people have started to notice. I showed you earlier
|
||||
a tweet from Mitchell Hashimoto, but we started, for example, recently getting being paid to do
|
||||
offer a support contract to Uber, where they started basically to use the ZIG CC to cross-compile
|
||||
some stuff on their end, and they wanted us to fix some corner cases with, like, old Linux
|
||||
G-lib C versions and stuff like this. And I think that, if we play our cards right,
|
||||
for example, I'm not really being paid to work on ZIG the compiler. I do that as well,
|
||||
but my job is more marketing focused. So if you look for ZIG on Hacker News, you will find a good
|
||||
number of things that I've written in the path that has reached the front page. I'm not the only one,
|
||||
but this is part of our strategy. So we are more, I don't know, guerrilla style marketing,
|
||||
you will, which is an interesting question. And of course, the links will be in the show notes
|
||||
with regards to the stuff that Laura has just mentioned.
|
||||
Laura, if I take a look at this spreadsheet, I see quite a few companies
|
||||
outside the realm of the user's aspects that have picked up on ZIG. But of course, that pays with
|
||||
regards to the Google stuff of the world and the musilas of the world and the Microsoft world.
|
||||
I mean, there was a statement last year, what was it before? I can't remember where somebody from,
|
||||
officially for Microsoft said that in a nutshell, I'm simplifying things, of course,
|
||||
that Rust basically will be the next C++ at Microsoft in terms of, it's that, it's that
|
||||
analogy stack that will be replacing the workhorse that has served Microsoft for at least 10 to 15
|
||||
years as the main implementation language for office software for some other quite interesting
|
||||
stuff over the years. Where do you see this in terms of the overall interesting adoption going
|
||||
for ZIG? That's a good question. I don't have, so I didn't know about this,
|
||||
Microsoft stuff, it doesn't surprise me, it kind of makes sense. I can tell you that my
|
||||
knee-jerk reaction is, I don't honestly care which language they use to implement ads in my
|
||||
start menu, so I'm kind of jaded when it comes to Microsoft specifically, but this is not about
|
||||
Rust, this is about Microsoft specifically. But if you want another example, another recent example,
|
||||
where Rust started being adopted by an important project, and actually in this one ZIG apparently
|
||||
was in the race too, but we lost two Rust in a sense, if you will, is Ruby. There was a discussion
|
||||
in the Ruby forum discussions with the creator, Mats, where they were discussing re-implementing
|
||||
the component of the compiler, the GIT part of the compiler from C to either Rust or ZIG, and
|
||||
they were, and then the contributors were asking the Mats, the owner of the project, if it was fine
|
||||
to use Rust or Z, and they may end up choosing Rust. So that's fine too. Honestly, from that
|
||||
perspective, I think that Rust and ZIG are different enough that people that would want to choose
|
||||
Rust should choose, and they really like Rust, they are not going to be happier by choosing ZIG.
|
||||
I do think that there are a lot of people though out there who would not be super happy to use Rust,
|
||||
and that would be happier to use ZIG. In interesting perspective, taking a step back now,
|
||||
if I take a look at the ecosystem, starting, for example, with Python, Python has been run for
|
||||
the last 30 years, Golan has been run for 15, 17 years, some of that, Rust has been run for 10 years
|
||||
plus, give or take. When I take a look at the crates that I owe ecosystem, it reminds me of
|
||||
PyPy, as in the Python package index, that took in terms of functionality and packages
|
||||
overall available for any purpose, parsing websites, anything basically. If I take a look at Rust,
|
||||
I'm tempted to say that it took the Rust community about 10 to 11 years to get to the point
|
||||
that the Python community took over 25 years to get there. If I take a look at the ZIG ecosystem,
|
||||
I don't think it's quite there yet. Okay, fair enough, you have been run for seven years,
|
||||
so it takes a while to build an ecosystem. But as far as I'm concerned, actually, a language
|
||||
and the adoption of a language, or text, in general, lives by the ecosystem as such,
|
||||
where do you see ZIG going in terms of our community adoption, especially when it comes down to
|
||||
the module ecosystem? I can tell you very easily how we're going to do much better than Rust.
|
||||
So here's the idea. Rust is a fuzzy language in a sense. So fuzzy is in
|
||||
because when you're using Rust, if you want to make good use of all the things that Rust gives you,
|
||||
you cannot really, you don't really want to jump into C code, do you? Because C isn't safe,
|
||||
right? And you have to close everything in and save brackets and it makes
|
||||
interpretation hard. In ZIG, we're not that fuzzy. In ZIG, we don't mind bitfiddling. We don't like
|
||||
on the fine behavior. So some C stuff maybe won't compile correctly. ZIG, by the way,
|
||||
compiles everything with on the fine behavior sanitization. So not every C library can be used
|
||||
right away, but the ones that don't have on the fine behavior in them can be used. And we are not
|
||||
as picky as Rust. Surely we would prefer as implementation over a simple implementation of
|
||||
something, but there is less of an like impedance mismatch between ZIG and C than it is between
|
||||
Rust and C. So long story short, from ZIG, you can make use much more easily of 40 years of C libraries.
|
||||
And for this, this is how it's going to start. The start is not going to be, let's say,
|
||||
re-implement everything in ZIG. The start is going to be, let's package already good C libraries
|
||||
that have been out there since forever. They are basically currently being used everywhere.
|
||||
There are like critical infrastructure of modern technology. Let's re-pack it up from ZIG so
|
||||
that we can use it more easily. And boom, now you have everything. It won't necessarily work in
|
||||
every single case, but the point is we are not rejecting existing C libraries. We are embracing them.
|
||||
And it's much more easy to just fix the build script so that it uses Build.ZIG of an
|
||||
existing C libraries than it is to library, than it is to re-implement it from scratch.
|
||||
Interesting perspective, especially from, okay, full distortion, I'm a little bit of Rust
|
||||
hand, but for enough, apparently we both share that passion to some extent, Laura, but let me take a
|
||||
look at it from a Rust perspective. Rust gives you, I'm tempted to say a very low technical depth.
|
||||
In terms of if you can convince the Rust compiler to generate code, the QA phase in terms of
|
||||
fixing bugs and especially when it comes on to memory stuff is pretty short. See on the other
|
||||
hand, you just go ahead. If you want to shoot yourself on the foot, that's fine. Now I see ZIG,
|
||||
if I understand the language correctly, somewhere in the middle, you can do a lot of things that
|
||||
you can do in C, and what you just said confirms this to a certain extent, if you want to reuse
|
||||
C libraries, but Rust is explicitly on the other hand basically tells you, sorry, you have to know
|
||||
what you're doing in terms of if you're using the answer of Crate, you better know what the implications
|
||||
are, because normally, and that especially goes for the ecosystem that is out there for us,
|
||||
you are bound to save code, and so combining the Crates, and this is very similar to Python
|
||||
these days when our program Rust, first of all, I'm going to take a look at Crates and I owe to see
|
||||
what's out there. Similar, if I want to do a code based in Python, I'm normally checking out the
|
||||
Python Package Index, because most of the time, and that goes for Rust and Python, I simply end
|
||||
up writing glue code, but if I check out Rust in terms of a stick to Rust, once I basically have
|
||||
my cargo definition file, as in cargo.tomel done, which is, I'm simplifying things in the
|
||||
equivalent of a make file for C, the Rust compiler basically, because we're also talking about
|
||||
save code, guarantees me a short turnaround times in terms of debugging, especially when it comes
|
||||
on to memory issues. Now, where do you see this total cost of ownership, especially with the gods,
|
||||
to technical depth going in terms of zik adoption? Yeah, if that makes any sense. It does.
|
||||
That's definitely an open question, and obviously, Rust makes a very good,
|
||||
makes a very good proposition when it comes to safety, and ultimately, I agree with you.
|
||||
The ultimate point is, what is the total cost of ownership?
|
||||
Let me ask you a counter question, but I would like to reiterate, I do believe that Rust is making
|
||||
a good offer, so I don't want to dismiss that. That said, which one would you prefer? Also,
|
||||
from a perspective, maybe of ease of use, being able to just import a Rust
|
||||
crate into your Rust project is obviously super easy, but from a perspective of total cost of ownership,
|
||||
or the risk of bugs, you mentioned risk of issues with memory management, but memory management
|
||||
is one source of bugs. There are also many other ones. Of course, would you trust more
|
||||
using a newly minted Rust crate, that basically is a re-implementation of...
|
||||
Curl, that's what I wanted. Curl, yes. From the perspective of total cost of ownership and bugs,
|
||||
yes, Rust covers memory bugs, memory usage bugs beautifully, but those are just one source of bugs.
|
||||
So, which one would you prefer? A newly minted crate that is a re-implementation of Curl,
|
||||
or Curl itself? Because Curl itself is surely... it's a C project with all the...
|
||||
the inner that comes with that, but at the same time, it's very, very battle-tested.
|
||||
So, which one would you prefer?
|
||||
Interesting question there. I'll go for the original curl.
|
||||
I would take a look at the guitar. Issues page, yes.
|
||||
No, total sight, Laura. That's a tough one.
|
||||
I would probably take a look at the adoption figures of Craitorio to see who's using this newly minted
|
||||
Curl implementation. To see what's happening. I don't know. Give it a half a year, but for the
|
||||
meantime, I probably would be... I'm reluctant to say this. But I would concur with Martin, yes.
|
||||
So, my answer is code. It is. It is answer code, yes. But at the end of the day, my point is that
|
||||
there's a lot of good outcomes from Rust, but it's unclear to me that is the ultimate silver bullet
|
||||
when it comes to total ownership cost of something. And I don't believe that throwing
|
||||
immediately in the trash 40 years of C code is the right choice. I'm being a bit too extreme here,
|
||||
maybe, because it's on with you. Yes. Rust can intervene if we see. But I think that more in general,
|
||||
especially for domains where memory management is not that complicated, while other sources of bugs
|
||||
are really more the problem, like I don't know, distributed systems. Memory management,
|
||||
most of the time, is not complicated, like you have a request, and memory has to leave
|
||||
for as long as the request survives, and you can do that with an arena locator is super easy.
|
||||
The problem, though, is that in distributed systems, you have a bunch of problems that come from
|
||||
the nature of distributed systems. And those are bugs where Rust can help you to some degree,
|
||||
but not 100%. And again, not to dismiss Rust. Rust is amazing. This is all good. The point is,
|
||||
it's not the ultimate growth that nobody ever will able to agree. Yes, absolutely.
|
||||
Because that hasn't been invented yet. Exactly. Now, I mean, jokes aside, Laura, I mean,
|
||||
these three languages, and GoLang goes along the same line to some extent, are targeting one
|
||||
specific area, namely system languages, for system-oriented programming.
|
||||
Zika is in that area of C, C, this is where C comes from, Udings was implemented in C,
|
||||
and that's exactly what Mozilla had in mind, when they more than 10 years ago,
|
||||
but took a very serious look at something called Rust. A system language designed for
|
||||
system-specific things. And if you take a look at the crates that are out there, much of the
|
||||
stuff is actually targeting a system programming, goes without saying, like the one you just mentioned,
|
||||
like curl. Yeah. So, I think that the idea of packaging curl is a stocking point, and then maybe
|
||||
slowly over time, after you have come to an understanding of how you think it can be improved,
|
||||
because I think that rewriting without improving the interface, it's a,
|
||||
well, maybe it's not the best use of time. Let's just, let me just put it that way. So,
|
||||
the plan is to have people just reuse what's already over there, that's already pretty good,
|
||||
and then only rewrite once you know how to improve on the original interface, on the original APIs
|
||||
and stuff. Okay. Yes. You're listening now to the additive version of this episode. The original
|
||||
version went about for four hours. We went into the, you know, the compatibility details, but this,
|
||||
of course, has been edited out. You may find the original version on something called Linus
|
||||
in Laws.eu, but jokes aside, no lawyers, let's wrap this up. It has to be more than interesting
|
||||
to, here, here you perspective on things, especially where you see this going. There is, if
|
||||
you've listened to a couple of episodes, there's something called The Poxes of the Week,
|
||||
where we simply discuss things outside the topic of the current episode as an ending goes.
|
||||
The pox basically are about things that you think worth mentioning, like books Martin normally
|
||||
refers to movies, especially his dark habits and some other stuff, like designer rock since
|
||||
and so forth, but really anything goes. So, Laura, what is your pick of the week also known as a pox?
|
||||
Let me think.
|
||||
Oh, man, I don't know. I can only think about what I knew for the pox.
|
||||
The pox on the spot, okay. But why didn't you go first, Chris?
|
||||
You see, I'm almost happy to say, my new vice as in the TV series from the 18s.
|
||||
I've just just got a lot of ideas for them all. It's a little more, I'm just okay.
|
||||
No, I just decided. I've just discovered this recently and I used to watch this left run
|
||||
in the 20s and it brings back fun memories, but without the fire, it's Martin, what's your pox?
|
||||
That's a good question. I'll have to have a think as well. I don't think anything specific.
|
||||
You have about 10 seconds.
|
||||
So, if we talk about movies, I watch this week and I rewatch this week and the original
|
||||
lot of the ring of the ring's trilogy and it was nice. I don't understand, though,
|
||||
why certain phrases became memes? Like, they are taking the hobbits to
|
||||
Isengard. Why? Why that phrase became so much of a meme that they made songs with it?
|
||||
Did it? Okay. Yeah, there were like YouTube videos which basically this sentence
|
||||
repeated as part of a song, but that was only one, right? Also, the other one, you don't simply
|
||||
walk into Mordor, something like this. It goes to show Laura's that you're about 30 years younger,
|
||||
than Martin and myself are. Oh, I'm sure you're not going to get any letters.
|
||||
Give her a take if you had any way.
|
||||
Okay. One does not simply walk into Mordor. I think there has been memes so many times.
|
||||
I can't even count how many have so I've seen of those.
|
||||
But yeah, anyway, it shows that I guess intercultural culture has changed from that time to today
|
||||
because nowadays I don't know. In some ways, the memes seem weirder. The movie's worse,
|
||||
but the memes are at least more relatable, I think, than in the past. I never understood them.
|
||||
The past ones. Okay. Martin. Okay. Since we're sticking with
|
||||
movies, I'll go with a movie called Land of the Blind, which is I watched at the weekend.
|
||||
It's from 2007. It's a BBC production.
|
||||
I don't think so. It was part of the show. In that, it's basically about someone
|
||||
overthrowing a dictator with a revolution, and then the revolution becomes the new dictator.
|
||||
Which is even worse than the original dictator. So it's kind of, you know, your enemy really is
|
||||
this moral. Okay. To the modern world, like, back number one for a McSyriot and McSyriot
|
||||
Joshua Worth, up purely, what's the word I'm looking for, incidental? Coincidental?
|
||||
Inspiration, whatever.
|
||||
Jokes aside. No, links may be in the show notes.
|
||||
Loris, that has been more than inspiring.
|
||||
Thank you for taking the time. Actually, what we missed is, if people want to become involved in ZIG,
|
||||
yes, the club. Let's go ahead. How can people help? How can people help?
|
||||
People can help, I think, in three ways. One, by contributing code, if that's what I like to do,
|
||||
because it's an open source project, you can go to github.com slash ZIGLANG, and you will find
|
||||
our organization with repositories, and we have weekly meetings to help people contribute to
|
||||
the language. Number two is, of course, donating money. We have a github sponsors page,
|
||||
still on github. Also, on the website, there's a big link at the top. So if you go to ZIGLANG.com
|
||||
or at the top, there's a big link that tells you how to sponsor the ZIG software foundation.
|
||||
I think it's also an interesting page to read, because it explains how the organization works,
|
||||
even if you don't plan to donate. Number three, and this is actually my favorite, you can contribute,
|
||||
just by paying attention, because all these things that happen in open source,
|
||||
and how open source organizations interact with one another, having people see what's happening,
|
||||
really can make a difference. When nobody's watching, organizations, open source organizations
|
||||
can behave in ways that you wouldn't expect from an open source organization. Recent events
|
||||
in the dotnet foundation, for example, are relevant to this point. And more in general,
|
||||
knowing what we are doing helps us, you know, helps us also protect ourselves from people
|
||||
misinterpreting, deliberately or not, our intentions and actions. So that's my favorite.
|
||||
Great. Last question for my side-law is, what is the license for ZIGLANG?
|
||||
What is a liberal one like Apache or MIT or something?
|
||||
Good question. Yes, it's MIT. MIT, you're the first people. It's a very liberal
|
||||
license. So you can take the source code and do pretty much whatever you want with it.
|
||||
Yeah, and it's deliberately non-GPL, like it's deliberately non-complicated for companies,
|
||||
let's just say. Yes. People, this is a non-communist license, of course, because it's not GPL,
|
||||
as it's not part of the GPL license family, but that's okay. We do make exceptions on this podcast.
|
||||
Well, that's a very complicated story, maybe for another episode.
|
||||
People, the lyrics in laws is. Is the is the go-to source for the episode list?
|
||||
Pick and choose your episodes with regards to communism. We do have a five-year plan.
|
||||
There are regular cadence updates on the podcast, how we do it with our five-year plan. Yes,
|
||||
exactly. And don't forget to check out the dark side, just in case. But enough plugs.
|
||||
Lawrence, thanks again for being here. I hope to have you back soon for an update on Zik
|
||||
and all the best with the project. Thank you. It's a pleasure. This is the Linux in laws.
|
||||
You come for the knowledge. But stay for the madness. Thank you for listening.
|
||||
This podcast is licensed under the latest version of the creative comments license.
|
||||
Type attribution share like credits for the intro music go to blue zero stirs for the song
|
||||
summit market to twin flames for their peace called the flow used for the segment intros.
|
||||
And finally to the lesser ground for the songs we just use by the dark side. You find these
|
||||
and other dd's licensed under cc achamando or website dedicated to liberate the music industry
|
||||
from choking copyright legislation and other crap concepts.
|
||||
In the Zik community we start calling this stuff like that's a Linux moment.
|
||||
Uh when you're using Linux and like your mic doesn't work or your screen share doesn't work.
|
||||
And it's a little moment. Have you copyrighted this term because it'll be in an hour?
|
||||
I'm joking.
|
||||
You've been listening to hacker public radio at hackerpublicradio.org.
|
||||
Today's show was contributed by an hbr listener like yourself.
|
||||
If you ever thought of recording a podcast then click on our contribute link to find out
|
||||
how easy it really is. Hosting for hbr is kindly provided by an honesthost.com.
|
||||
The internet archive and our sync.net unless otherwise stated today's show is released under
|
||||
creative comments, attribution, share-like, dd's o-license.
|
||||
Reference in New Issue
Block a user