Welcome to the Home Lab Show, episode 84, choosing a Linux distro versus an appliance. Now we're not going to cover every distro. That's something we want to do next week. Well, we can't cover every distro. We don't have enough time to make an episode that long, but we'll cover some of the major distributions and why you want to do them next week. This week we want to start with the question of, that I think is a before question of, do I use an appliance or a distro? And the answer is yes, but it depends. And it goes both ways. This is a topic that is discussed quite a bit because, well, there's some great distributions out there. There's some great build it yourself that we like talking about. There's also having things like TrueNAS and just having it work and not having to do all the work it gets to build something like that. So there's lots of pros and cons we're going to discuss today and hopefully give you a few ideas of a few different things to try before we jump into that. We're going to take a sponsor this show and that is LaNode. LaNode has been a sponsor show pretty much since the beginning and I've been really happy with them. It's a great place to host all of your HomeLab projects that maybe don't belong in your lab, but maybe you want it in theirs. If you want something public facing, you want to run your own VPNs or any services that, well, maybe not suited or are going to get too much traffic for you to handle in your HomeLab, it's still a lab in the cloud and you can use the LaNodes cloud by using the offer code down below. We thank them for being a sponsor show and let's get started on this, Jay. Yeah, let's get started. So I think we should define appliance versus distro because you could argue they're the same thing because an appliance is a distro as well, but it's not a distro in the way that we think of one. So when we talk about Linux distributions, we talk about the common ones like Debian, Ubuntu, Fedora, Red, I mean, I can go on, there's like 10 million of these. These are obviously distributions that are essentially an operating system you can install on your server, you can install on whatever. They're general purpose.  You can make it into a desktop, a server, power and IoT device. You could do whatever you want. And people do, obviously. And that's why we have appliances where it's really hard to start your own distribution. It's immensely difficult. Yeah. And it makes more sense if a distribution exists that's close enough or is closer than others to your goal, you're going to maybe consider one of those as your starting point. And when we talk about appliance, it's an application that is installed bare metal. Its focus is being an application, not a general purpose distribution. So XCPNG, for example, would be an appliance, even though it is based on a Linux distribution under the hood. And you can make that argument that there's no difference. The difference is in the intent, not necessarily, you know, the fact that it's a distribution, they all are, but sometimes the intent is to be general purpose. Sometimes it's just to solve one goal and be a turnkey solution. Yeah. And this is where some distros do blur the line a little bit. I think OpenMediaVault is one of them that I've not really used it, but Jay has. And it's interesting because they have two options where you can take and convert your distribution to run OpenMediaVault, or you can download an image of a MediaVault and set it up. So there are blurring of the lines, too, which, you know, makes definition harder for them. So you kind of have to really think about these on a case-by-case basis, which is why we're going to run through a list of them until some of the pros and cons of running them, the good, the bad, of, you know, to give you some data points when you're making a decision on which one you want to choose. Right. And I'll add even more confusion to that. Proxmox, add that to the list, too, because you could download Proxmox, obviously, in an ISO file, and you could also install Debian and then manually install the repositories and everything in the packages. And the instructions are right on their website. So it's not like you're doing something you're not technically supposed to do. It's in their documentation. So it's, you know, you could absolutely do that. But another question is, why do we want to draw the line between them? Right. And I think that's something we're going to get to, because I don't want to get, you know, jump to the end of the thing here. But just a little teaser for what we're going to do, because we can go over some of the distributions as examples of what or which ones are distributions, which ones are, you know, appliances. And then once we have that, we can talk about why is that distinction even necessary? Yeah. So let's talk about the popular ones really quick here. It's going to be Red Hat and, well, what used to be CentOS, Rest in Peace CentOS. Yeah. Well, CentOS Stream is the new normal, but not everyone wants to move to it. But I totally understand. It's not for everyone. Yeah. And then we have Rocky, which is, can you describe Rocky for me a little bit? Well, I like to lump all of these into Enterprise Linux. It's just what I call them. Rocky Linux and Alma Linux, they serve the same goal. And some people ask me, which one do you prefer? Both of them. I mean, they're both great. I don't prefer one over the other. So essentially CentOS, what it used to be is a recompile of Red Hat Enterprise Linux, which requires a subscription to use, but the source is open. So CentOS was, you know, famously that recompilation of the distribution to make it something you could download for free. And later on, of course, it got purchased in the rest of history. CentOS moved to a different format instead of being a direct recompile. It's more in the middle. It's not quite streaming, but it, I mean, it's not quite a rolling distribution, but it's a semi-rolling distribution. I'm not going to quite get into that. Yeah, that'll be next week's topic. It's complicated, right? But the goal of Rocky Linux and Alma Linux is to be what CentOS used to be. And give people that back, that had that in the past. And they're both solid choices. I'm not going to tell anyone to use one over the other. You could just, just flip a coin for all I care. They're both good. And, you know, you could add Oracle to the list too, but I don't, I don't have any experience with that. So I'm not going to speak to that, but my understanding is that it's also essentially the same thing. But I like to lump those into Enterprise Linux. So Red Hat, not CentOS now, obviously, Rocky and Alma Linux. And that's going to be great for your Enterprise, you know, situation or HomeLab, if you prefer to use that in your HomeLab. The reason I brought up CentOS is because it's a little foreshadowing when we get to XP and G, because this is where appliances can confuse you of, we just said CentOS is dead, long live CentOS. So, right. Well, yeah, this, we knew it, but it's been reborn into something else. Yep. Then we have your BSD, which I only bring it up, not as much as a big talking point, but just, you know, we're going to talk about TrueNAS and PF Sense, which both have a TrueNAS core being BSD-based and PF Sense being BSD-based. So those two are, you know, just another popular distribution series. Now BSD is obviously different than Linux, but you know, nonetheless, it still lends itself to some really good appliances. Yeah, it really does. And we have Arch Linux on the list and wait, what? Arch Linux? We're talking about servers. Actually, Arch Linux can legitimately be a great server OS. You have to go about it a bit differently though. Again, that's for another episode. But we have the new version of SteamOS, I believe, is Arch Linux. I haven't dived deep into it yet, but that's my understanding. And I fully support that. I think it might be strange for some people, a rolling distribution is the bait. Yeah, I mean, because you don't want to have to re-spin everything up, again, every six months. Again, being ahead of myself. But it is used in an appliance. Yeah, for Steam Deck to be considered an appliance. Yeah, I mean, people are installing all kinds of things on their Steam Deck that you could probably argue doesn't belong. But if you can, well, you can, right? Or can you? We'll talk about that later. But anyway, yeah, Arch Linux is the foundation for some things as well, believe it or not. So if you didn't already know that about the Steam Deck, well, now you do. Yep. So this covers, from there, you have your Ubuntu-based distributions. Or I should say Debian-based, but there is some variation because Ubuntu does do a lot of contribution. But I was grouped together as things that use apt-get. It's the apt-get family of distributions. That's fair. Yeah, it's an easy way for me to try to distinguish them of things that are using that package manager, which I've been a huge fan of. And the Debian world is pretty reliable, been around for a long time. But Ubuntu, being a popular one, because Ubuntu goes a little bit further, where they add some of the things in that maybe Debian doesn't, like better support for hardware and things like that. And Ubuntu has not been afraid to let us have a little checkbox, a little couple proprietary drivers and things like that. Doesn't mean they don't do controversial things, but they're a popular distribution from that. Now it seems like, to me, not as many appliances are based on Ubuntu. They usually go back and base it off with Debian instead of Ubuntu. Yeah, I think that's because of the, there's a little bit of a non-predictable nature. It's predictable, non-predictable at the same time it comes to Ubuntu. So it's important to remember, it's run by a company. It's going to serve company interests. Even though it's a community project, that's just what it is. So with Debian not being backed by a company, then there's less chance that there's going to be change that's going to disrupt everything. When Ubuntu finishes snapping all the things, for example, if someone that's developing something doesn't want to go down that path, or any other path that Canonical might choose, then they might stick with Debian. And I think that's probably why Debian is more popular for that. But then again, you could even argue, it could just be down to being based on the thing that Ubuntu is based on. Don't be based on the thing that's based on the thing, just be based on the thing. It creates a lot of confusion on there. Not confusing at all. Not confusing at all. All right, now let's start talking about some of the different appliances and why you may want to use each one of them. So we're going to run down the list here and we'll start with PF Sense. Now, this is where I have actually met someone who did this. I was impressed. You can build your own firewall. You can take BSD and the PF filter is a very powerful filtering system that's been around for a long time in BSD. BSDs had a long enterprise history because of that. And PF Sense was originally MonoWall, which forked into PF Sense. And it's just been a solid performing with lots of options, firewall. All these things you can do for yourself from the command line, I won't argue with people who do. But one of the consulting jobs we had that was interesting is they were having a hard time hiring someone because this person hand built an incredible firewall for a very large company. And they were the only ones who knew how to do it. And they kind of realized they trapped themselves into being the only firewall manager. So this is where things like a firewall distribution like PF Sense become a very popular choice because it makes ease of management and not happen to learn everything from the command line or all the little switches it may take to set up a IPsec VPN from the command line or anything else. It puts them all in an IGEY. It also makes it really easy to have a technician if you need to rebuild a firewall. And this goes for a lot of appliances. The ability to load the appliance software, it's customized very specifically. They trim all the fat. They're going to put into the appliance just what needs to be there. Then they usually throw a way to manage it. Most of the time it's going to be a web UI on there in this most common way. And then this is the best part like with PF Sense, a single XML file that has all my settings in it. So if I need to reload it, I just need the latest download of an ISO. I need the XML file. Those are the two things I need. And I can have a almost junior level tech reload and rebuild a firewall. But if you were to build a firewall by hand, you would also have to build the backup by hand, the restore procedure by hand. You'd have to teach someone how to load the OS, set the packages up that need to be there, and then start putting all the config files back where they belong. You could also write an entire automation for that, but you can see why how much of your time should be spent on one thing versus another comes down to whether or not you want to run an appliance or not. And PF Sense is like a pretty low hanging fruit one that's an easy example of probably best to run your firewall as an appliance, not build it. Building if you plan to get into learning how firewalls work from an extreme fundamental level and really want to understand how to build firewall rules or NAT or anything inside of the command line, that's great. But generally for, especially our audience here in HomeLab, you're going to want to run it as a distribution. Now, I could throw out there that untangles another one. I'm not positive they have a free version anymore. And I think there's a few other Linux-based firewalls that are still floating around out there, but five absolute huge margins. PF Sense is one of the most popular firewalls out there that's open source, that's free. You know, even their PF Sense Plus, I know someone will point that out. They give you a license for it, but you can still get in the 2.6 and 2.7 versions of PF Sense for free. There's still continuing development on that version. So despite everyone tells me all the time that they're not, which always makes me laugh. Every version's been the last version since 2.4, according to the comments on my YouTube section. Well, there you go. But yeah, that's, you know, the firewalls probably said low hanging fruit for one of the, just shows out there. What about Proxmox, Shay? Let's talk about that one versus just running, because it runs what KVM and underhood, right? Yeah, QEMU, KVM, Combo. So Proxmox most often is going to be downloaded as an ISO that you install bare metal. And I think everything on our list, well, most of the things on our list will be installable that way. But like I was alluding to earlier, you could build it yourself. If you have a Debian server already, you could just start going through the documentation on their website and they'll tell you how to do that. So that's almost like a hybrid approach, because it is both. You know, it is a distribution of its own, but it's also built on top of Debian proper. And the difference is some of these distributions that are based on other distributions have their own repository. So something can be based on Debian, as in grabbing Debian's packages, putting it in their own repositories, curating only the components that they absolutely need for that product. And that's what you can apt install, not anything outside of that. Or you have, you know, like in the case of Proxmox, the proper Debian repositories, and you can install whatever you want, which also means you can install some games if you wanted to. You could install GNOME if you wanted to. I'm not saying you should do that, but given the fact that it has all of Debian at its disposal, it can, you could do that if you've decided to do that for some reason. So that's why it's more of a hybrid. Instead of like, you know, just curating their own packages only, they, you know, have pretty much everything. So yeah, it's kind of, it's kind of nice. I mean, you can load all this stuff, but Proxmox makes it a lot easier to load it, give you a nice web UI on top of it to manage all of it. So plus one for that. And the, just being able to apt-get install whatever you want makes it very flexible. And I understand completely, even though I'm not a big Proxmox user, I understand completely why people would like to use it in their home labs, because that flexibility is awesome. So I definitely, definitely like that, but, and this was a potential consulting that came in today, and not the first time I've run into this. I don't know what they did. They installed a lot of other things, as usually the result of these consulting jobs, but someone says, Hey, my Proxmox cluster is not performing the way it should. I've got all these problems. I got all these weird issues that randomly reboots. And I have done consulting where people, and we try to, we don't do much consulting on it, because it's like, I need to know what you customize. And the answer is I don't know, or the person before me changed all kinds of settings. This is a big downside to allowing people to do it, and then anyone may or may not do it. So you kind of kind of take that into consideration. It's a lot of the danger that comes out there. And yeah, it's just one of those big warnings that come with these appliance-based distributions is just because you can customize them, really be conscious of what you're customizing and that allows you to, that may allow you to break the performance of it or just cause some weird incompatibility with the package you loaded. Yeah. And I think that's the main point here. I mean, there's some things that are very reasonable. So when it comes to Ansible, I manage everything with Ansible. There's some things I don't. The appliance is I don't. If it's going to be a system I built, sure. But if it's a true NAS, it's not that you can't manage it with Ansible. Sure, you can. You can manage anything with Ansible. Should you? Well, maybe, but what if you have a change in your Ansible config for your other servers that accidentally finds its way in a different role and then next thing you know, you break your entire system? So that's kind of the thing. But a more, I think, agreeable change in my mind. I don't think anyone, even the support forums I have a problem with is what I do, for example, with Proxmox is I'll install the NRPE package for Nagio so that it can monitor things. I think that's reasonable. I'm not reinventing anything. I just want the monitoring system on there. And I don't think anyone's going to ever have a problem with that. But if I think the main issue is sometimes you'll have people in forums, oh, I might buy Proxmox isn't working. I'm getting this error and then somebody responds. I've never seen that before. How did you manage to get that error? Then like three pages down, everybody's trying to troubleshoot it. Nobody could figure it out. And like, wait a minute, you installed Proxmox on Ubuntu. How did you do that one? And number two, why didn't you mention that at the beginning of this whole thing because we don't support that? And it's kind of how it goes, right? If you decide to take an appliance into a different direction, then I know some people disagree with me, but I really feel very firm on this. You are the support at that point. Don't go to the forums and ask them to support your custom Ubuntu Proxmox. The Proxmox forums is there to support Proxmox proper. At least tell them before you start going on. Let them know that because that can be a little frustrating for the people that are trying to help.  I've seen people post on some forums, like maybe they'll post on the Arch Linux forums and they're using Manjaro. Maybe they're feeling like they didn't get a response fast enough on Manjaro's forums. So they ask the question over on the Arch Linux forums and you'll have, and these people are smart. They'll look for your question in other forums. So, but getting back to the point, when you take an appliance and you just add all these customizations to it, it's kind of like, at what point is it no longer the appliance? It's kind of like that ship experiment, right? When you replace one board at a time, at what point does that become a different boat? At some point it does because you've replaced every single part, but it operates the same thing. It looks like a boat. It floats like a boat. But is it actually the same boat? No. And at some point, it becomes a completely different thing. And I think that's one, a decision you have to make. Is that something that you want to do? And, you know, is that something you can get support on because you might be kind of making it hard for yourself? Yes. And let's switch over to XCPNG, which takes a different approach. Now, this is where CentOS is going to come back because people, and I've had a misunderstanding, I should say with people, where they go, oh, man, I have to get rid of all my XCPNG because it's based on CentOS and CentOS and supported. And there are numerous blog posts and very detailed of exactly how this works in the blogs for VATES and XCPNG specifically. So VATES is the company behind it. VATES manages the repositories that drive XCPNG. So even though it does have YAM, it's CentOS based so we can do YAM install, you can't install anything. They didn't put in their repository. End of story. They've crafted, because this question comes up, is someone will say, why is this version of this in here? And because I want the next version of it or something else. And he said, this is the version that we know works. It's about stability. So they craft each thing. They craft each kernel that goes into it. So even though it's CentOS, you're like, well, doesn't CentOS not get updates? There's regular updates almost every month for XCPNG for new features, new versions, and sometimes OS updates. That's because when a company takes the time to exclude all other repositories and have their own upstream, PF Sense does this as well. You're not pulling from BSD. You're pulling from their crafted repositories to give this. This gives you a more predictable experience because it would take a great deal, not a great deal, I should say. It takes a lot more effort though to add all the extras in there to break something. This makes support costs, so to speak, lower. The number of questions in there. And like Jay said, if you do anything like that, you've decided to enable repositories that are going to pull in packages, I think it will just break if you do that because once you start mixing repositories, it'll go, I'm not sure which version to use, so let's just grab the new ones. And if their custom-based appliance wasn't designed to do that, it can break quite a bit. But back to XCPNG, one of the nice things about it is once you have, and anytime there's a new release, they also spin a new ISO of it. So you can always grab that ISO and quickly, if you have a server go down or as we have a lot of clients sometimes, I think we have one of them has like 30 or 40 of these servers. They can replace any one of them at any given time because it's just an ISO load. Once again, it goes back to a service ability. I can have a pretty basic instruction set like grab ISO, load OS, wipe the machine, join back to pool. All the settings will come back because they're held within the pool as a collective. So all the settings come right back, done. Now we don't have to monkey with anything getting it set back up. I don't have our long install procedure. But XCPNG is nice because they allow you to build the server where it doesn't matter. Like the server is very replaceable, very quickly replaceable. You're not worried about a hardware dying. You're not worried about reloading it or joining more to it. It's not this labor intensive process. So XCPNG, I like the approach they take of customizing a very focused repository without a lot of fluff in it. Makes the install very small, keeps you from wandering off the path without a lot of effort. So it should just work out of the box as expected. And you are getting support and updates. The team's very clear about that. So even though, yes, you can look at the OS version and scratch your head going, well, it's not a currently supported version, but you can trust that it is currently supported. And I'll mention this back again with PF Sense. The 2301 PF Sense is out in terms of release candidate. And so is 2.7 is close as well. Both of those are based on FreeBSD 14. Now PF Sense is also customizing your repositories as an appliance, which means even though FreeBSD 14 doesn't have an expected release to later this year, you can still have a stable firewall because the people at NetGate are hand crafting the kernel for PF Sense and customizing their appliance to work with a stable version of it, even though the release of the full operating system, but you can't remember, it's not a full operating system. So once again, you got to kind of think about that when you're looking at appliances. Yeah, I agree.  I mean, that's what you've done. You've created your own thing. And then you are the support for it if you decide to do that.  You are free to do that if you want to do that, but you are the support. But the same thing goes to companies as well. If they decide to base on a distribution and build something out of it, even a distribution that's not supported by the upstream vendor, they are the support. In your example, XCPNG is the support. They are responsible for applying security patches if there's a security issue. They're taking that on. And that's not, I'm not saying that's a bad thing. That's a decision that they make. And from what I understand, they're doing a pretty good job of that. But whoever forks something, if they break it, they keep both pieces. But just because a company is based on something that might be end of life, then that doesn't really mean it's end of life in that product. And famously Ubuntu has many times in the past released LTS distributions without, or end of life kernels from day one, but they support it. They put the patches in there. They cover the CVEs. Even though it's a lot of work and I don't think they should have done that, it's their right to do that. And as long as they're keeping up on security, vulnerabilities, that doesn't mean that you're good to use that kernel and any other distribution. It's end of life. But if Ubuntu is taking that on and their security team is keeping eyes on it, then there's no problem with that. Yeah, the other fun one to talk about next is going to be the topic of storage servers. I think this is where the arguments go crazy. So there's good ones on this. I go both ways when it comes to when we set these up because it comes down to it depends. And I need to do some more updated video on what it depends on because there's more things to talk about. So you have the Houston OS, which makes managing ZFS a lot easier when you have large drives. This is from the team over 45 drives. It's open source. Any of you can use it on any Linux. I think it works on a multiple of Linux distros. They base it off a Debbie and when you get a 45 drive system, but they're flexible. The same will work, I believe, fine on CentOS or several others. It's based on cockpit. But what this does is gives you a nice web UI for managing your storage. And there's some good advantages to it. I just did a project where we have, we needed 300 terabytes of beam storage. It's all going to go to S3 buckets. And I don't really need to run TrueNAS to run that. We actually just ran a whole thing with the 45 drives Linux space. The people we built this for, their internal administrators, very familiar with Linux. They like Linux. They are happy with it. They actually threw some ansible things on it to monitor it. They've got like, it just integrates into what they're already doing. And that's a great excuse to build a storage server without going through building a TrueNAS appliance. They were a little sketchy going, TrueNAS seems like we wouldn't be able to do what we wanted to do. And they were not wrong about that. Because the TrueNAS distribution is going to be more turnkey. Now, when you move to something like TrueNAS, first we'll split between core and scale. So core is going to be your free BSD based one. It's tried and true. It's great performance. The Jail system is okay. But there's not a ton of apps for the Jail system. But when we use that, TrueNAS core, like our choices for that, are pretty much like someone wants a dedicated, often for virtual machine or large scale storage server with ZFS that's reliable, easy, and very simple to do your updates, very simple to do replacement. You just grab the config file. That's it. Load the appliance, load the config file. It's great. Everything's just there. Turnkey, you have backups, you have ZFS replication, all of that's really nice in the UI. And all those things you set in UI, all download to one single config file, making it extremely easy to build and replace. And you don't want to spend too much time customizing it because it's just not designed to, because TrueNAS curates the feed that goes into the updates in there. TrueNAS scale, same answer. TrueNAS scale now has support. They're using like a customized version of Kubernetes and Docker, a lot of custom implementation here. So you can run more containers on it, jails is called in the core series, or they're essentially just Docker containers. And they're very customized. It's not exactly native Docker. They went a little different there. But what they are doing is, once again, creating a turnkey appliance that is great for managing ZFS, great for having your shares set up, your Samba settings, all those little tunables, having a web interface, so you can set up ISCA's real quick or an NFS share or a WebDAF share, any of that's all done through the web interface. So there's a good argument to use those because I want to just create a turnkey solution that I drop in and I don't want to think about how do you actually write all the Samba stuff? How do you build all that? So it kind of goes back and forth of it depends on which one of those is the right path for you. If you want to have lots of customization, you definitely want to go with a Linux rod on there. And I think the huge deny is nice because it will allow you to just start customizing it. But kind of as Jay alluded to earlier, you're very on your own for support and going through forums because you're really diving into a custom solution of doing it. The tools, the web interface at Houston United does make setting up Samba a lot easier or setting up some of the replication and snapshot features, which completely you can learn how to do it from the command line. You can do it all with cron jobs. Do you want to? That's the question you're asking yourself when it comes to storage. You can do it. Is that where you want to spend your time? Exactly. I mean, that's a great way to put it. And then another hybrid approach we kind of touched on is open media vault. I mean, same thing, right? We're talking about storage. And I feel like people asking for support in open media vault forums with a manual system is going to be way more common because they actually offer a script. You can just run on a Debian system. So they wouldn't create a script if they didn't want you to use it. But also you could still run in issues all the same. I mean, if you custom compile some things and then their script tries to install an app or a dev package, essentially, for that same thing and there's a conflict there that can happen because that's the nature of customization. You could do whatever you want to do. And will the script work? Most likely, but it can't account for anything, although I found it to be very stable. But it is a hybrid approach. You could just install it on an existing Debian server and maybe that's a good fit for somebody who already has data on their Debian server. Maybe they have a bunch of files on there and they manually did everything. And then, oh, maybe I would like to just convert it over to an open media vault server. What very few do well is having a direct sync between the config files on the file system and the UI, meaning it's like this unicorn that we wish everyone could do where you could just hand edit a file. And then the next time you check the UI and the web console, it has the most recent settings from those files. And if you change it there, it's changed on the underlying files too. That's hard to do. So there's always going to be, or most of the time, a disconnect there. But that's just the nature of the beast. But then sometimes, if you hand edit files, then why did you install a web console? Because now they're out of sync, and then what do you do at that point? So, but open media vault is the hybrid approach that's kind of expected. I haven't tested that as much as I've tested the other ones, but I have used it. I've done videos on it. And that's, again, an example of a hybrid approach. It's both a distribution. It's based on Debian. You could install it on Debian, but you could also download an image and run it on Raspberry Pi if you wanted to. Yeah. And I think I've seen someone through this in the comments I was going to mention. Cockpit's interesting because it is a hybrid because it doesn't save everything to a database. Every time you edit, if you're editing a Samba config, it's actually editing the sd slash Samba. When you edit different facets, it's pulling from there and doing a pretty good job of writing it back in the proper way. I'll throw out there. If you've ever used Webman, Webman will read config files. It writes them not always in the right way. It's been a while since I've used it. I remember it really making a mess out of anything you do with Apache. Like once you've edited an Apache config file in Webman, it's not very clear. It doesn't do a great job of formatting the file that it actually writes back out for that. So if you ever want to go back to the command line one, I remember having to support stuff like, oh, you use Webman to set this up, didn't you? Because it's just a whole bunch of series of numbers, no logical naming, no nice format. So there's kind of a back and forth. Maybe it's gotten better, but yeah. The appliances generally don't like you munking with the cockpit kind of being the exception, but you generally don't. You don't see cockpit running on an appliance. Right, right. That's true. And I think that's a point, that there's some exceptions. But I would like to see a future where those things are more in sync because for the enterprise, you're going to have a larger enterprise, people of different experience levels, or even just preferences. Someone just might want to use the command line because that's what they're comfortable with, and someone might prefer to use the Web UI. It's fine. But if you have two different mindsets in the same team, then which one wins?  If they could both do their thing the way they like to do it, that's even better. But having that consistency between the Web UI and config files, that's really hard to do. Yeah. All right, what's the... We had another one on the list here. This is... I'll mention this because there's a few variations of it, and I can't remember all of them, but people ask me about this, and it's kind of interesting. ClearOS is one of them that's out there. Now, ClearOS was an independent tool that kind of... The idea was to replace the Windows small business server with it so you could have like a turnkey operating system that did all the things. It's late... I haven't tested in years. HP has since bought it, and they've kept... I'm not saying they still have a free version, a community edition that you can download. It's also based on CentOS. It's kind of a neat distribution. I'm always mixed on those because they go back to that... You want something turnkey that will just do all the things for you.  I've seen a break. That's how my interactions with it are usually from people who call us because it seemed to be popular in schools for a little while that couldn't afford or didn't want to spend the money on some of the standard Microsoft Active Directory stuff to do all the management of all the students and things like that because of licenses and Cales. And I get it, but usually it broke because people tried to color outside the lines a little bit. They started customizing and adding more features on it. Those issues are kind of an interesting one out there from appliance standpoint, but I've never seen any of them that I would say is robust enough. Like they always have these lofty goals of throwing everything possible into one megabox that does all of it, but I've never seen those hold up in some of them. And I can't wait to see if Clearhouse is one of them and features. They also throw the firewall in with all of it as well. And I'm like, in concept, that sounds good, but because I can have one box because they're even their slogan right here, one platform, one interface. That's kind of a lot. I wish. Yeah, that's like the ultimate appliance. So it's got cloud apps on it, network apps, gateway apps, server apps, system apps. It's the everything. It's been a while since I've played with it, but that is that's where I will say, in the reason I have it, the reason you don't see me running around seeing in praise of these, I've never seen these work extremely well. They try to promise too much. They try to put a lot into it. It takes a lot to manage that because you think about how hard it is just to manage the PF Sense project as a firewall. Think about doing a firewall and a storage server and then user management and then VPNs and everything in one single box. Once you start getting into it, I use clear as an example, they're not the only one out there doing this. I always shied away from a lot of those. It's also scary that your edge device, if you're using as a firewall, is also where your storage and users live. Insert your favorite movie where in, we broke the firewall. But now they didn't get into your network and have to figure out how to get into your NAS. They're in both. To me, it's just at some point, as much as you have a lot of stuff you want to put in your firewall, there comes a point where maybe my storage server shouldn't. My data is really what you're after. If you're trying to get in, whether you're trying to encrypt it through some ransomware, you want to exfiltrate it for whatever reason because the data is the gold, whether it's to encrypt it and extort me for it or take it because it has some value. Having it on a separate server means if they get by the firewall, if they impersonate a user to the VPN, there's still one more, hopefully, defense that you have good passwords on however you control user management on your storage so you can not have them in it. So I've always shied away from some of those all-in-one mega boxes, I would call them. Always a locked goal. Then they will sing the praises. It reduces your IT costs because everything is just one server. Right. We should, I think they should rename it UnicornOS. Yeah. I think that'd be a better name for it. Maybe I'll just call these Unicorn distros I mean, I hope that's something that someone's able to do but I look at these like from the standpoint, I've seen so many of these come and go. All these promises of compatibility with this and with that, I think that's why the Steam Deck is the true Unicorn because it works very well. Then again, that's a single-purpose device. These all-in-one things. It's like, well, that'd be awesome but do we want that? Is it a good idea? I think Ian Meltham said something like, if you didn't even bother to think if you should, you could. Don't know if you should but I'm not trying to say that everyone on this project should just give up. I mean, if they feel like they could pull this off, they should continue working on that for sure but I just get a little, I don't know. I've just seen so many of these come and go that it's just hard to impress me at this point unless they do it, then that'd be great. Yeah. It's like I applaud the effort. But it's not something I'm ready for. Honestly, when you look at the overall cost, if you're thinking from a business perspective, outside of some power concerns, because I know European power is more expensive and I know I have a European audience, so I feel that for you. But the compute power is relatively cheap now. Firewall appliances are not incredibly expensive. Even the NETgate ones and things like that, I know we're going to have some import prices but that's not usually where the biggest time sink is. So having some of these as separate devices, might just make more sense and it's not like, the cost savings isn't there when it used to be. Hardware used to be substantially more expensive when you started adjusting to today's rate.  I mean, you're talking about a computer that costs thousands in today's dollars that did very little. Now we can afford these really inexpensive, small mini PCs. You can find used equipment for cheap. So it's not the problem that I think it used to be when it comes to cost. The technology costs, economies of scale, popularity of these things, they've driven way, way down. So having these things separate might make a little bit more sense. And hey, if you have a storage server update that you need to push, you push it and have the users offline. But when you have it all as one, you're also rebooting your Firewall to reboot your storage server. So it just seems like everything can go wrong there. Another aspect is security. Because what if company ACME comes out with a project or whatever comes out with a distribution that is all the things. And everything does work 100% and it's great. They've succeeded, but then they also have like a couple hundred CVEs that they've created by wrangling all that together. And then next thing you know, reputation goes down because it's something that people are able to easily break into. Then I mean, there's a tug of war here. I mean, you add custom code and you keep doing that. But all the custom code you add can create CVEs, which is why I squirm a bit when someone uses this insert name of browser here that has like two developers. And I make the comment, well, it's probably not secure, but it's based on an open source browsing engine. That's great for the browsing engine, but the UI is custom and there's a possibility that CVEs can be created or exposed through custom code. So hopefully I'm wrong in the projects. That are great, but it's just again, it's really hard seeing what I've seen when you get to this point in your career. You have the eager cadets and then you have the general that's been there, done that, right? It's kind of like the same thing here. It's like, oh boy, here we go again. Yeah, it's funny before we started this show, I ran over to Distro Watch to take a run through memory lane on some of the distros. But that'll be our topic for next week. But I rolled it all the way back to 2002 and go, oh yeah, those distros are trending then. I mean, my Linux career started a long time ago just like Jay's. So we've been doing this for a minute. We've seen a lot come and go. We started at the point where we thought Distro Watch was a clear answer to which distros are the most famous and then you graduate to later in your career realizing it doesn't mean anything. All these different things you learned, I think Distro Watch is a really good metric because how you think of Distro Watch is pretty much identical to where you are in your Linux career, basically. Yep, I will answer a question someone had in there. With ZFS, yes, you can actually move with ZFS from appliance to distro and back provided that you aren't on the wrong versions of ZFS. ZFS can be imported to different appliances. So there actually is some fun you can have with storage servers like that of trying things and then bringing your pool in, but you have to make sure you're matching versions. You can't go forward. So if your ZFS pool is built on a newer version of ZFS, then the appliance has available. It's easy enough to do if you're doing it from a distro. You're going to grab the latest, but if you're doing it from appliance, I'd make sure the appliance is probably what you want to build with first because you can ZFS is backwards compatible or not forward. So you can have some problems importing pools. So I'll mention that for people that want to play because I think that's a pretty relative question because it's one of the exceptions because for firewalls, you're not necessarily going to take PF Sense. There's no exporting config files because PF Sense says everything in a XML file. So you're not grabbing the config files and building your own PF Sense firewall off of what it wrote in slash etsy slash whatever. You're building it by hand again. There's not much interoperability between firewalls, but hey, there is for ZFS. Your data is separate from the operating system if you're doing it right. So I think ZFS is a unicorn that actually exists. ZFS is a unicorn. It is magical for sure. But it actually exists though. That's the difference. It does exist. I've sung the praises of ZFS. That's why I have shirts because I've been since being a cult member of ZFS. So I said, yes, we're a cult with integrity. So I do have those. That's good. I like that one. I like that one a lot. So I do have those shirts. People want to be part of the ZFS cult with integrity because I don't know how else to say it. Yeah. All right. Well, thank you for joining us. And we left it up, but we forgot to say at the beginning, but we do have feedback at the HomeLab show. So that's feedback at the HomeLab.show. We love hearing from you. We've been trying to get more of these Q&A episodes going. We want to make sure we're engaging with the community as best we can. So drop us a line, drop us an email. We like reading the questions. And it gives us some more things to talk about and maybe help some people along their path and their HomeLab journey. So it all started with us. And we're trying to pass it on. We know a lot of people are just now getting into it. We want those people who are just getting started. Let's ramp you up faster. And I'll get you started in this HomeLab fun. Oh, yeah. Fun times. Fun times. Yeah. It's a man. There's so much to talk about, but we'll save that for next week because I'm excited to talk about the distro one. Do you see me listing it? He's very, very excited to talk about it this week. I'm like, oh, no, that's all of next week's topic. So. Oh, yeah. Distro hopping. That's what we should call it, man. Distro hopping. Oh, yeah. Yeah. I think there's value in doing it. And we'll talk about that too. We could just call it the distro hopper starter kit. Distro hopper starter kit. All right. That'll be fun. See you everyone next week. Love hearing from you. And if you have a favorite distro, bring it up because maybe there's something we haven't heard of or that you like for some particular reason. Let us know your favorite distro. Feedback at the homelab.show and thanks.


I do look at code sometimes and wonder what are people thinking, but I do plug-in reviews for WordPress.org. So if you think you've seen some pretty crazy stuff out there, I've probably seen worse. And it's doing those plug-in reviews that lets me see the actual reviews that people leave on other people's code.  Or this year, excuse me, my year, I wish 2016 was over, it's not yet. But because of that, the greatest takeaway that I had from that talk was reinforcing the reminder with people is that we are not the code that we create. So I decided I should pitch this for WordCamp US and talk about it here. After I pitched it and it got accepted, someone told me that I was one of the more highly anticipated talks from the people who were organizing it, which sent me into a bit of a panic attack because suddenly I realized the weight of what I'm about to talk about, the weight of my words and the responsibility of trying to explain to people something that should be so simple and should be so obvious to developers, to support technicians, to people who are using code to remember the human behind the screen. This is a really important thing that we forget a lot. So I've started these slides, I spent a weekend and I restarted them enough times that I could probably blog three times a week for two weeks, just on the things I threw away. So the pain though, the pain from all the rejection that I've seen and from being turned down for talks and jobs and everything and the worry of what I'm saying, it reminds me, I really like Greek myths. I love them growing up. And I keep making me think of Prometheus. After he introduces fire to man, Zeus curses him and ties him to the rocks and he gets ripped apart every single day by carrion birds. His liver grows back every night and it starts again every morning.  Well, this is a perception though, obviously. Too often we look back at these things and we think my contributions to WordPress are what make me important to the WordPress community. But we think of them in far too literal terms. I have written code. I have fixed CSS. I have beta tested. I have created a plugin, a theme, a blog, a store, a career. And we make a fatal mistake of boiling down what we are to that one thing. I am the product. I am the code. The reality is that we aren't. We know this. We know that we are creators. These are our creations. We have invented things out of nothing. With the power of our minds, we came up with an idea. With the power of our minds, we wrote the code that made something that had never happened before happen. Someone figured out how to animate a gift because they had a dream. And we love animated gifts. But we're artists. We're dreamers. We're builders. Anyone who's ever studied music or journalism or art understands this very weird association that we're going to have. We build in our hearts and our head. But our reputation becomes not the process of creation, but the end result. And we lose ourselves somewhere along the way. We forget us when we see these reviews that are terrible or the reviews where people hate us. And the problem stems a little bit from the fact that artists are seen as temperamental.  Or a musician had a party that was so big. Justin Bieber threw water balloons off of a building and tormented New York City. We hear about all these horrible things of artists who do create. And yes, I do think that Justin Bieber is an artist. I don't like his music, but I think that he has merit somewhere in there. But people see artists as capricious characters, creatures who are at the whims of our own desires and our passions, people who obsess over one thing to the exclusion of others. And now this sounds like us, doesn't it? We obsess over that one thing. I can get these pixels right and the site's going to be perfect and everyone's going to love it. But we're not the people who trash hotels when we're frustrated. We are the people who lash out in the comments, in the reviews, at our users, at our coworkers, because here's our passion and here's someone telling us that it sucks. And it's so hard to separate ourselves from the art of what we've created because we have put so much of our self into it. We can no longer see the forest for the trees, as it were. If you saw my talk at Word Camp Europe this year, all of that just sounded really familiar. Like, didn't you spend 45 minutes talking about just that? It's true. We contributors to open source are exactly the same as artists. This is why we work so hard because we have this great passion to make things. And we have to also work hard to separate our heart from our head to remember that when we've created something and sent it out into the world, it's no longer just ours. It becomes something that belongs to everyone. We brought fire to the earth. We shared our joy. We have changed 26%, probably 27%, of the internet together. Give or take.  We're told things that if we don't offer our help for free, we're greedy and vain. Being driven to fix one part of WordPress? That's a waste of our time. Why aren't we fixing this other part? Why are you working on menus when you could be working on the Settings API? Why are you working on the JSON API when you could be working on Customizer? Why are you wasting your time with Customizer when you could be making a better default theme? Those are all actual things that people have said in track on the make blogs and comments on WordPress forums. To me and Twitter, we hear that all the time, that we should spend our time fixing what's broken. Don't innovate how. Doesn't matter if you don't know how. You should do what I say. And we're pulled by these millions of masters that we created ourselves, 28%, whatever, of the internet.  Therefore, it's not good enough. And we feel like we can never do enough. But then we have to think also about the developers and the contributors who are less visible. Think of all the people here today wearing purple shirts, wearing rainbow bands. Think of how much time and effort they've put into making this one event. Three days for $40, where you get to come here and learn all these things and talk to all these people and network. And think of the person who insured the funding so that you only had to pay $40. Or what about the person who fixed the inline documentation for core that let somebody else write a theme that did exactly what you wanted? What about the person who answered a question in the support forums? What about the person who reviewed the theme that's on WordPress.org that you love so much? Or the plugins? Sure, I do that. And we try to keep things fair for everybody. And we don't get seen for it quite as often as we feel we should, because here we are putting ourselves out. I love the movie The Princess Bride, like a lot of people. And when Wesley says, life is pain highness, anyone who says different is selling something, it's true. Because we sit and we hear those horrible things first. That's the one that's going to stick with you at the end of the day. The one person. I've talked to maybe 100 people today easily. And one person said they didn't like something. And that's the thought that's going to be staying in my head for the next 24, 48 hours.   Let me help you. We're all here for good reasons.  Look around at everybody else with you. You may not be here for fully altruistic reasons. Not everybody is going to be a socialist like me. And that's OK. But you're here because you do believe that things are going to be better when we work together and make things together. And that's really important. Every single one of us here started from the same spot. We started from a place of not knowing. We learned. We advanced. And we're giving back in our own way. Even by just sitting here and listening to me, you're giving back to me in a way that I can't calculate or measure. And I appreciate it greatly. Every single person who steps up here is doing it for the greater good of WordPress with the best intentions. No one here is doing it because they think they're smarter than you or better than you or greater than you. They're doing it because they care about something and want to share. One of the points that I really needed to address in this talk is that there are all these days when you know you've done the right thing. And you know that you've done everything that you possibly can to make things better. And people will tell you that they like you, that they like your work, that they respect you, and then there's that one person who said he really didn't like the fact that I closed his plug-in. And I'm sorry. But I know my worth. And even so, it's hard for me to remember the difference between my reputation and my honor. And I have a quote up on the screen from a civil campaign. It's a book written by Lois McMaster Bujold. She's one of my favorite science fiction writers. She writes science fiction in a way that makes you not go, oh god, what are you inventing now? She actually is a scientist. So everything she writes about is believable. And she remembers to keep the humanity in science. And one of her characters says that reputation is what other people know about you. And honor is what you know about yourself. And the point she's trying to make is that as long as you know that you are doing things for the right reason, you can have the internal strength to withstand these horrible things that people will be saying about you. Because they will say it. We're going to be accountable for all of these things. We're going to be accountable for every single action that we do, whether or not it's what we intended to do. We're going to be one day, the 20% minority who gets told, yeah, that feature in WordPress is great, but we're not going to make it. You don't really need it. And most of the people who use WordPress aren't going to use it. If you've ever been to the Ideas Forum on WordPress.org, you'll see me running around there sometimes telling people, yeah, that is a really great idea. But it's probably best as a plug-in for now, because not enough people will use it. And once in a while, somebody pushes back and says, but it's really important. Being really important doesn't mean it's used enough to be pulled in sometimes. So, okay, you want to have a plug, you want to have a way in WordPress Core that lets you duplicate a multi-site site. Anybody who knows me knows that my love affair with multi-site is interesting. I love to hate it. If you have a multi-site, you've got multiple WordPress sites installed and one install of WordPress. And if you want to duplicate it, exactly one to the next, to the next, to the next, it's not actually very easy to do that. But most people don't actually want to do that. A few people do. And for those people, we have plugins. Because WordPress was built to be extendable, plugins are the great way to go. If enough people start using the plugins, then we'll shift over and maybe it'll show up in Core and maybe it won't. But when I have to tell people that it's a really great idea, it's a powerful idea, it's a wonderful idea, but it's probably not going to end up in Core anytime soon, a lot of the time they get very upset to be told they're the minority. They don't like hearing that. This is a part of human nature. You don't want to find out you're the minority and when you do, sometimes you lash back and you yell at people and you say, well, that's just not fair. It actually is fair. It's part of the definition of fair, but it sucks to find out you're on the other side of it. And when they come back at you, no matter what your intention was, you're going to feel bad. And this is the dark part of human nature is that you're going to do things with the best intentions and not be appreciated for it. And when that happens, you get mad. And you have a few options now. And like I said when I was pitching this, I'm going to talk about how you deal with it and how you take these feelings.  Well, you've got your choices. You can correct them. You can let go or you can fight back. Somewhere around here, there's a fellow by the name of Otto and he spends a lot of time talking me down from fighting back at people. Because I have this urge where I want to go, well, actually that's not what this means when I've done this thing. And Otto, Mika, just no. Shush, don't say it. Because you can't win. Because there are people that insist that I'm power hungry, that I have malicious intent when I've closed plugins or when I've said things at a specific time. None of these things are true. I have friends though who listen to me vent. And sometimes I sub tweet. I shouldn't and I know better. And I'm on a Twitter break right now to try to get myself out of that habit because it really, it doesn't help anything. It doesn't actually make me feel any better and it certainly doesn't make the other person feel better if they figure out it's them. And that's just not a really good experience. It inspires the circle of hate which we try to avoid. And the truth of all this is that it's like a game of tic-tac-to. The only winning move is not to play the game. If you've seen war games, that's literally the point of the whole movie is teaching us that sometimes you just, no, don't fight. And it hurts so much because you wanna just tell someone, no, that's not what I meant. Let me explain and you know in your heart that they're not going to listen to you. That they're not going to accept your explanations. They're just gonna see these as excuses. Silence, oh, that's just proof that they were right in the first place. Fighting back, you must be covering something up. There is literally no way to win when someone has decided they're not going to listen to you. So what do you do? Will you survive? On that bombshell, no. Actually, do you have a little bit more? This isn't that kind of talk. I'm not just gonna leave you and say there's nothing you can do. You can survive and I can show you how to survive because outsmarting them sounds like this great idea but it actually doesn't feel good at the end and outplaying them, I mean, this is not actually a game of survival.  There's someone in this room who's going to be smarter than you. That's just the law of averages. So if you ever think you're the smartest person in the room unless your name is Richard Feynman, you're probably not. If you don't know who Richard Feynman is, you can go Google him later. If the win, though, is outlasting, that becomes sort of an eventuality. You just keep going. You just keep fighting. Okay, well, what can we do?  It frustrates you and it annoys the pig. And from that, I always try to remember that there are going to be things that I can't explain things that I can't do, people I can't reach. And this is where I start saying the remark of, well, I'm really sorry that you feel that way. I don't make excuses for anything. I don't tell someone they're wrong. I simply say, I'm sorry that that's how you feel. There is no but at the end of that sentence. It is literally, I'm sorry you feel that way, period. I don't reply anymore after that. And that's really hard to do because if you've read the comment section of anything, you know that you have this urge to go in and say, but you're wrong and you can't do it because you're not going to win. I have to accept the futility that my fight is a game of tic-tac-toe and once you're over the age of six, you can't win a game of tic-tac-toe. You can't lose a game either. You just play to stalemate over and over and over again unless the other person sneezes. So I keep with me though my inner strength because while I'm saying accept the futility that you can't change everything, I don't accept the things I can't change. You know that one about serenity and accepting what we can't change? Yeah, that's no, that's not me at all. I don't believe it. I don't believe that there isn't a single thing we can't change. It's just that we can't change it as quickly as we want to. Accepting futility means I have to accept that today, here, now, I can't change their mind, yet. And then the person that you're going to be outsmarting is not them but yourself because if you can convince yourself not to be stupid, this is the hardest thing in the world, by the way. If you can convince yourself not to be stupid, you will protect yourself from pretty much everything.  This is why we leave ourselves notes and documentation, I swear, this is actually related. If you've ever gone back and looked at code that you wrote like a week ago and wonder was I drunk when I wrote this, it's reminding yourself that you learn more every single day. The me six months ago was a much better program, much worse programmer, excuse me, than the me today. The me in six more months, hopefully she's learned JavaScript deeply, she's trying.  I learn from my mistakes. I don't pick fights. I let things go. When I know I can't change them now and I try to change them by continuing my honor and being the person that I know is good and right. The secret to outplaying people is that you're going to be outplaying your own tendencies and habits. You're going to be outplaying that wait but you're wrong, moment. You know yourself better than anybody else. You know when you're about to snap off that reply that you shouldn't when your neck gets hot. I don't know about you but my face will start to flush and I'll be typing and I'll be hitting the keys and I realize in that moment I cannot hit enter or publish on this comment. I need to delete it and walk away. You know when your humor is going to be a little bit more biting than it should be. You have to learn how to play yourself in those moments to catch yourself before you get too far and step away.  Only person who does that perfectly in the world besides your parents is yourself.  And then I mentioned outlasting. This is not about outliving everyone although whoever lives the longest gets to write the history books and we know this but that takes so much patience and the web is moving so fast that outlasting really only means giving it a month or two of constantly showing that isn't what you meant with your actions and with your emotions. Telling someone that you're sorry you can't help them and sticking by it and walking away and trying to fix things and keep going forward and making things better is going to prove to everyone that your intention was right and in the end they will look back in two or three weeks, not months, not years, weeks and they'll say gee. She said she was sorry, went on making a really awesome product, gave really nice support for all these people. Maybe this guy was just having a bad day and this plugin doesn't really deserve a one star review for someone who didn't like the color of a background. People do do that a lot but you have to do this to survive. I can tell you how I survive. I can tell you to subtweet or to blog or to scream or to ride your bicycle up and up and down through Orange County until your legs are on fire until your blood is pounding so much that your iPhone watch thinks you're having a heart attack and asks you funny questions. I can tell you to talk to a friend or a loved one or a professional, you could try meditation. I really like the breathe app. It actually, I was sitting over here a minute ago meditating right before I came up and talked to just kind of chill myself out and relax. Survival is about self care but it's also about this. You're not code, we are code. Everybody in this room wants to make WordPress better for themselves maybe but also for the community because every time you make it better for yourself you're actually making it better for everyone else as well. So I can't give you the right answer for you but I can remind you of this, you are not alone. We're all here too. And that means that one person maybe, yeah, that thought is gonna stick by my head for a few hours but I'm pretty sure that a couple of my friends who are sitting in the back somewhere, they're gonna catch me on my way out, they're gonna hug me and they're gonna tell me, hey, you know what, you're not your code. And I'm gonna smile and remember, yeah, I'm not, together we are though and that's okay. Because there is joy to be had in Mudville when you make your connections. We rely on each other, we lean on each other, we ask each other for help. When there's a customer you can't deal with you have coworkers and you say, hey, I'm gonna kill this customer if I have to keep explaining to him that when he deletes his files it means they're deleted, can you please try talking to him? And handing it off to somebody else. It's remembering that you're not alone. Every company is going to be okay with you saying, look, I don't know that I can explain it to this guy in a way that won't lose us the customer, can someone help me?  Even the big companies are companies together. And I'm gonna tell you this, there's somebody in this room who rooted for the team who lost the World Series. And there's somebody in this room, probably back there who rooted for the team that won. There you go, that's one. And you know what? I have a connection with this person because I used to live right next to Wrigley Field, literally two blocks away. I lived there for four years, I loved it, I loved the Cubs and that was the greatest World Series I could have possibly dreamed.  But now we have one more connection between us. Not just WordPress, not just IKeto, because I do that too, yeah. We have more connections and there are people here that you have thousands of connections with if you just step up and say, hey, what do you do in WordPress? What do you do outside of WordPress? And you make the connections and you make a community. I wish my friend Andrea Renwick was here. She is one of my greatest friends on the planet and I met her because she made a theme called Pride and Prejudice and I put zombies in the background. And then she did sense and sensibilities and I put a sea monster in the background. And we met on Twitter and we started chatting and within the course of a year, Andrea set me on a path that changed my life. She got me to meet other people. She got me to have the courage that when I was asked, do you wanna speak at WordCamp San Francisco? I said, okay. And when this guy named Shredder who led the WordPress 4.5 release said, hey, you ever think about applying for a job at my company? I tried it and suddenly there I am. My life changed and I remembered I wasn't alone. I wasn't just this lonely bank employee sitting in a corner answering support tickets in my free time because I was bored out of my mind. They don't encourage innovation at banks. They really don't. Especially not from their little errant programmers who sit over in a corner and handle automation.  But it reminds me every day, I'm not alone. This is my community, these are my people. Even if I just share a joke with someone, I've made a connection. And sometimes we're loud about these things and sometimes we're quiet. And sometimes we ask each other for help when we desperately need it because we want an opportunity to change our life because our cats are sick, because we can't afford something that we desperately need or that we maybe just need someone to give us a hand. And we've learned that these things are okay to ask because we're not our code. But we together are the code that keeps WordPress together. My name is Mika Epstein. You probably know me as Ipstonew. I'm a writer, an artist, a dreamer, a contributor to open source. And DreamHouse has very graciously allowed me to come to WordCamps to give some of my time back to review plugins and to give back to this community that has given me and us so much. Thank you. And my buzzer didn't go off so they didn't get to see me spook myself. I had a timer set in case I went over. Now if anybody has any questions, there is a mic in the middle of the room and just come on up and ask. You can ask about anything. It doesn't even have to be about this. You can ask me about plugin reviews if you want to. I promise that I give nice answers. Being constantly under attack is hard. And I believe that that's one of the things that prevents a lot of people from contributing back to the community because they are afraid that the code that they are gonna write is not good enough. What I want to ask you is how is it that you, what are three ways that you handle the way when somebody is attacking you personally? The fear about your code not being good enough, every single person has that. Every single person has that. So do remember that we all started from a place where our code was terrible and even if you're the greatest coder in the world, even Andrew Nason who's one of the best programmers for WordPress, he looks back on his stuff and goes, I can't believe I wrote that. But the three techniques that I use personally for handling people who attack me. The very first one is the minute I recognize someone is attacking me, I walk away. I don't reply right then and there. I step back, if it's on Twitter, I close Twitter. If it's on Facebook, I close Facebook. I step back and walk away and distance myself from it. The next thing I do is I take a moment to think, okay, is there any reason that is justifiable that this person has for being this mad?  There's a huge difference between the two. Some of the names that I've been called are not things that I would repeat and when I'm at home, I'm a pretty foul mouthed person. People can get pretty mean and I do try to take a minute and look, is there anything valid in there? And the last thing I do is I have a gut check and I have my friends who are in the community and I turned to them and I said, hey, am I reading too much into this or this person lose their mind on me? It's remembering that I don't have to reply. It's looking for the truth and it's remembering I'm not alone and those three steps, no matter which way you go about them, they'll help you handle these things because yeah, being attacked constantly is really tiring and if people get bad enough, I just block them on Twitter and Facebook and I don't communicate with them anymore because if it's that bad, there's nothing I can do. Thank you. Hey, so I guess for me, they kind of see the plug-in repository the same way I kind of see Yelp and when I go to Yelp, I automatically- I'm laughing because he's right. I automatically look for the one-stars and as I work for a company that heavily depends on good reviews as a part of our livelihood and those one-stars hurt so much because it directly impacts how we make money. How do you handle that? One-star reviews are really tricky because they come in a few flavors. I talked about this in greater detail at WordCamp Europe. You can watch it at WordPress TV. If you go to my site, slides.halfelf.org, my slides will be up there and you can look at them. One-star reviews are complicated. If it is a legitimate one-star review and not just somebody who's going to go off into a rant about how everything is terrible and you suck, those one-star reviews, talking to them as if they were the calmest, sanest person in the world, tends to actually be to your benefit because what happens is that either they keep screaming and someone who reads that one-star review later will go, well, this person clearly is not stable with their review. I should just discount it or they're going to calm down and start talking to you and those are your two options. If the person actually is a real legitimate troll, we do ask that you come and let us know. If you go to Slack, there's a forums room, just let them know, hey, this person is attacking and they've got four other posts where they're doing the same thing, can you help? And they totally will. That's what we're here for, is to try to clean those up. But sometimes a one-star review is just a way of life. No one is going to universally like your product. That is just a statistical impossibility. But what you can do is concentrate on the pain points that those one-stars bring up, make them better and start getting the five-star reviews, not by bribing people and not by telling them, oh, if you leave me a five-star review, I will make this other product for you that you really want, but just by slowly and steadily showing them that you do mean well. Yoast SEO did this fairly recently where they started telling people, hey, we've made a lot of changes, have you reviewed us? And they suddenly got an influx of five-star reviews because people stopped, took a moment, and said, you know what, they have done a lot. I'm still using this plug and I think it meets everything I need, I'm gonna give it a good review. And it's just consistently applying yourself to making things better will win out over those one-star reviews. But yeah, you're gonna get somebody who loses their mind and I wish I could stop that. If I could ask one more question? Well, just make sure. Is there anyone else who has a question? Because if so, I'd like to make sure they all get through. But if not, yeah, okay, go ahead. Sometimes you get knocked down a few stars, not necessarily because what you offer isn't good. It's because of what you don't offer with your plug-in. Yeah. So how do you handle that part? Especially when you're in the early stages of developing a plug-in and that's like version two, version three of it. And especially in those early stages because those reviews have higher weight. They have deceptively higher weight. And you think about it, you think, well, okay, if I only have five reviews and one is a one-star review because I don't do a thing and one is a three-star review because it mostly worked for what they needed but not quite and one is a five-star review of somebody who really liked it. It averages out to three stars, right? And you think, well, okay, great, now this one-star review has much more weight. When I talked about outlasting, this is kind of what it is because what you need to do is to continually apply yourself to making things better and to get the four-star reviews. I always tell people that you don't want a five-star review, you want a four-star review. Five-star review, there's nothing you can learn from that. This plug-in is awesome, it does everything I want and dancing monkeys and unicorns, great. What you really want is that four-star review who says, this plug-in is wonderful, it does almost everything I want, I just wish the monkeys could wear jackets. People are laughing, but these are some of the crazy things that I've seen in plug-in reviews where people are like, I just wish I could change this one color. And in the moment, the plug-in developer's like, well, hey, that's easy, I can totally give you that ability to change that. Here's how you can do it in CSS right now and I don't really want to build an interface because if you saw Pippin, he talked right before lunch, he says sometimes he tells people, no, he's not adding things to plug-ins because he doesn't want to support them, which is something I strongly agree with. I think if you don't want to support an aspect of your plug-in, it's okay to tell people no. You're gonna have to accept the fact that they may just give you a three-star review because of that, though, because it's not what they want. Reviews are really messy. Auto likes to tell you that reviews are someone's opinion, it's someone's experience. And just because you don't like it doesn't mean it's not real, it just means that they didn't like it. However, we can happily tell you that the majority of people who read reviews on WordPress.org actually read the reviews. They don't just look at the numbers. If they see, hmm, he's got a three-star rating and only three reviews, I should go look at those reviews and see what they are, and people do look, which is really to your benefit. So don't get too hung up, especially in the beginning, if you've got one-star reviews. Get hung up when you're like a year and a half down the line and all of a sudden you have like 31-star reviews from different people with different complaints coming in then you know you've done something completely wrong and you need to go back and fix it. But in the beginning, that's when people are getting a feel for you too. And they're trying to figure out exactly if this is what they needed or if it's not. And sometimes you're gonna have to accept it and say, you know what, this plugin is not going to be for you.  And lose the business, but gain the reputation. And the reputation will last a lot longer than that one-star review that you got a year ago. Thank you. You're welcome. Okay, well, if there's no one else, I will be around all weekend.  Is that someone I know? First of all, I wanted to thank you for your talk. And you know, I mean, I realized that a lot of the questions are about plugins and it might ask as well. But yeah, you know, the talk was great. The talk was great.  Cause I mean, a while back, I probably ended up with like nine or 10 plugins in the repository. There's really only one or two that I'm continuing to be able to support and that sort of thing. I know that there's the adopt me tag in case people are interested in that sort of thing. I'm just wondering if there's like a process that we should go through to have our plugins eventually either adopted or just taken out, or should we just leave them stale to the point where they don't show up in search results anymore? It's entirely up to you which way you go. If you've decided that I would like someone to take over this plugin, I recommend posting on your blog or tweeting or saying, hey, look, this is a plugin I wrote. It's good. If you're interested in it, please let me know. Otherwise in, you know, six months, I'm going to ask the plugin review team to please close it. And if you want that, just email plugins at wordpress.org with a link to the plugin and say, hey, I've written this. It's awesome. I don't really want to support it anymore. Can you close it? And we'll say, sure. And if you come back in six months and say you want to reopen it, we may ask you why. But if you come back in six months and say, hey, I just found this guy who wants to take it over, is that okay? Yeah, we'll totally take care of that. We don't have an automated process yet. That's phase three. The directory if you haven't been paying attention has been getting a revamp. And if you would go to wordpress.org slash plugins, there's a little link that asks you to check out the new one. Please do. We're trying to make it better. We know that the search sucks, by the way. Thank you. You're welcome. Kind of related to that, two questions. One is, let's say you have a plugin that is very similar in function to another plugin. Is there a way to merge two plugins? I would like to kill my plugin and I would be happy to write migration stuff to move it over to somebody else's. Is that ever come up before? It has come up before. The problem is the way we set up the plugin API doesn't really lend itself well to being able to say, well, now that this plugin is gone, everybody should get this one. That's the whole thing, you can't rename a plugin. You can rename it and rebrand it, but Yoast SEO will forever have the URL of wordpress dash SEO because we literally don't have the way to change that without breaking everybody's site. The best thing that I can recommend is push an update that tells them, hey, this plugin is no longer supported. However, I recommend you install this other plugin and when you do, my stuff will magically be migrated over and turn it off. Because what you can do in your own plugin is you can detect if the other plugin is active, copy my data over. Cool. Although I would recommend making sure that that's an opt-in feature. Like they can say, yes, I do want to import my data because otherwise what will happen is someone will overwrite data and not be paying attention. Always assume that users didn't read before they did something. And in case you're wondering, usually that user who didn't read was me. Cool. Second question, if it's okay. Go for it. The other thing that I would love to see WordPress plugin repository supporting is downloading other plugins. So basically dependencies and stuff like that. And I know that this has come up before and I just want to bring it up now at WordCamp US. Yeah, no, don't go small. Go large. So the reason that we don't let you install other plugins is that if a plugin isn't hosted on WordPress.org and you've installed it through WordPress, it becomes questionable who was responsible for installing the plugin. While I'm sure everyone in this room is not going to suggest you install hacked or nulled plugins with backdoors and things like that, that can't be said true of everyone in the universe.  It's just too dangerous. And you can recommend plugins and you can have your plugin pop up and say, hey, if you don't have this other one installed, you've got to. If you look at how WordPress itself does it when you click on the importer and it actually uses the regular WordPress features to go through and install something from WordPress.org, but it walks you through it and you have to say, yes, this is what I want. This is, I'm okay with it. That's okay. But installing it from third parties, we just, we can't allow it right now. We don't have a way to do it safely and sanely for everyone. Again, 26 to 28% of the internet, that's a lot of responsibility. And if we open them up to too much danger, then that devalues WordPress and puts all of us in a pretty bad position. So with the plugin repository and the support of the plugin repository. I did know that this was coming, folks, by the way, that everyone was going to ask about that. Don't worry. Go ahead. With the support of the plugin repository and searching it specifically, let's say I'm looking for the words fatal error and plugin name, whatever plugin name it is. Is there an easy way to find the specific answer that we're looking for within the support forums and the plugin repository? Within, well, the support forums just recently were migrated to the grown-up version of BBPress. They used to be on BBPress One. And if you have any experience with the BBs, you would understand how kind of daunting the prospect of moving that. The woman who moved everything over is a goddess and I don't know how she did it, but she's amazing. The search within specific sections of the support forums, because everything's actually in the support forums, all of those support tickets, those aren't a separate forum. They're in the regular forum. And sadly, they're all in one big giant subcategory for plugins, which means that searching that can be really tedious and messy. And WordPress search is not the greatest or most robust thing in the world. What I recommend people do, and I'm going to apologize for saying this, is to go to Google and type in site, colonwordpress.org, the plugin name and quotes, and then the problem that you're having, and that usually shows things up. And this is gonna be my last question, it looks like. Great, so this is actually about the talk, not about the plugin repo. So. Yay. One of the things from kind of a psychological perspective that's often really helpful in dealing with a community is to assume everyone is coming with the right intent. Yes. And sort of give the benefit of the doubt. Assume good faith. Yet, we have time and time again seeing there are actors in the community who honestly are not acting in good faith. How do you find, in trying to deal with an open source community, where to draw that line, where to decide somebody really has violated a code of conduct or a guideline, versus where you're in that moment of like, I'm annoyed at this person, but maybe it hasn't. I can still believe they have the right intent. A lot of that is the gut check. Like I said, I talk to my friends and I say, hey, am I reading too much into this or did this person lose their mind? Fairly recently, someone on track said some things about a core developer. And I read it, and I looked at it, and I thought, that's just not cool. That's not nice. That's not how you treat someone in a social setting. That's certainly not how you treat them in a professional setting. And I said in no uncertain terms that that kind of behavior really wasn't welcome. And I may have overstepped my bounds. I don't know. I didn't say anything after that. I just told this one person that this isn't cool. This is not how you should be treating people in public. And then I went to the person to whom he had been directing his rant and apologized to them and said, if I've overstepped my bounds, please let me know. But that one moment, I didn't gut check. I didn't ask anybody else's opinion because I now have the experience to know the difference. And I'm the person people come to a lot of the time and say, hey Mika, am I losing my mind or is this person nuts? And it's knowing that you have somebody else to talk to and to just spot check. When I don't have anybody in the WordPress community for that, I have my wife. She's really good at telling me to turn off the keyboard. Having, psychologically, that's why I kept stressing that you're not doing this alone. You have to remember to rely on the community because most of us are good people. And when you make these connections with people over sports or over liking Wapoo, I think most of us do, we have a bond and I can turn to you and say, listen, I don't know how to handle this situation. Can you help me or do you know someone who can? And it's remembering we're not alone and reaching out to the other people to get that extra help. Thanks. All right. So go out there, say hi to someone you haven't met, introduce yourself, find your friends and give them hugs or handshakes wherever they prefer. Remember, not everyone likes hugs and have a good day, everybody.


My dear students in America, the early labor movement harbored a conception of the just society. Now question arises, what is just? Just means a righteous society, a virtuous society, a society based on the principle of rule of law, equity and justice. Just society bane ke liye zeroori hai ke law majuud ho, rule of law majuud ho. Jab rule of law hoga to rights and duties johain wo determined hongi. Now question arises ke right kya hota hai? Right is basically an interest protected and granted by law. Sab se pehle ethics develop hota hai. Jab ethics ke saath sanction attach hojati hai to wo law banjata hai. To just society joh America me kaim hui hai uske piche law ki formulation ka bohot amaldakhal hai. The early labor movement harbored a conception of the just society, deriving from the Ricardian labor theory of value and from the republican ideals of the American Revolution. Which indeed fostered social equality, celebrated honest labor and relied on an independent virtuous citizenship. By the students in America, the transforming economic changes of industrial capitalism ran counter to laborer's wean. The result as early labor leaders saw it was to raise up to distinct classes, the rich and the poor in America. By the students beginning with the working men's parties of the 1830s, the advocates of equal rights mounted a series of reform efforts that spanned the 19th century in America. The most notable were the National Labor Union launched in 1866 and the Knights of Labor which reached its zenith in the mid 1880s. My dear students on the very onset these reform movements might have seemed at odds with trade unionism aiming as they did at the cooperative commonwealth rather than a higher wage, appealing broadly to all producers rather than strictly to wage workers and eschewing the trade union reliance on the strike and boycott. My dear students, trade unionism tended to the workers' immediate needs, labor reformed to their higher hopes. The two were held to be strands of a single movement rooted in a common working class constituency and to some degree sharing a common leadership in America. But equally important, they were strands that had to be kept operationally separate and functionally distinct in America. Hope you have understood the topic. Thank you very much indeed. Thank you.


In the following ten minutes, I'm going to go very fast over the results, some results of about two years of work. Not only mine, but also Larry Swanson's and the statistical analysis was done by Dr. Olaf Sporns from Indiana University. So first some definitions, refresh. So the connectome as it was defined initially by Kötter and Sporns in 2005 was the set of all connections. Well, connection means the can be found at the lowest level, at the axon level or synaptic level can be found between cell classes or cell types or can be found, can be defined at the level of brain regions when brain regions are thought to be let's say more or less black boxes. So to specify between these three levels of organization, microconnectome is the word or the term for connections at the level of brain regions. I like to start each and every presentation about the rat microconnectome with this slide from Larry Swanson's Atlas in 2003. It's the central nervous system of the rat flattened and it shows the central nervous system with all its, let's say, brain regions, gray better subdivisions and parts, as well as the major fiber tracts. To make the short, the low story short, the smallest regions, the best defined, if you want, regions are about 500 and the simplest way to represent a connectome, that means connections of the level of central nervous system would be in a matrix format which will have a 500 by 500 dimension. So 500 columns and 500 rows. And the cerebral cortex, which I'm going to talk today, it's the microconnectome of the cerebral cortex. I'm going to talk today. It's only this small rectangle, just to put things in perspective. In gray is the central nervous system, the cerebral cortex of the rat, as, let's say, made a little bit of dissociation from the base of ganglia. For the nomenclature we have 73 gray matter regions in the cerebral cortex of the rat and cerebral cortex of the rat in our definition or in our nomenclature means also regions like claustrum or the cortical parts of the amygdala. So it's not only, let's say, the set of those 40 or 40-something regions which everybody is used to. So if we have a 73 by 73 matrix, that means we have 5,566 association microconnections in this matrix. Possible microconnections. So the first thing we've done was to start gathering data from the literature, which for the cerebral cortex is quite rich. And we started with neural, not with techniques, tracking techniques that were reliable. So from 1960s to today. Just the word, our way of collating and annotating data is a little bit different than that of neural visas. After about 250 private research papers read, annotated, mapped, remapped. And after about 16,000 reports inserted into the database of the brain architecture management system, we can say that we covered the literature, primary literature, which is related to experiments with track tracers in the rat, cerebral cortex. So this is the first point, the first message, simple message I want to convey this evening. The matrix, so the rat, cerebral cortex, microconnection, or association microconnection is covered about 81%, 81.2%, something like this. We have, since almost all connectivity data are expressed, described in qualitative terms, we have a pretty, let's say, developed way of coding for strengths from very strong, which is red going towards yellow, which is moderate, going towards blue, weak and very weak. We have some reports of the form X projects to Y and doesn't say the strength of the connection. And we say about these that a connection exists, but we don't know the strength. Black means the connection is for sure absent, was found absent. And gray or white means we don't know yet, no data. So in the first form, the rat, cerebral cortex, microconnection looks like this, 73 by 73 again. From is on the vertical on column, to is on horizontal. So what we've done, the problem is when you start analyzing this data, the first problem, I'm not going, sorry, I'm not going to get into the details of evaluating the reliability of reports of track tracers. This is the subject of another, I don't know, maybe a class. The problem is with this, when you start analyzing, the system is with the weights or the strength of connections. What does it mean very strong? What does it mean very strong versus strong or versus moderate? Looking into the rat literature as best as we could. And also looking at the newest findings in the macaque cortex literature, we said that a 10 to the 4 scale, exponential scale or 4 logarithmic scale, 4 units logarithmic scale would be good enough. So 1 in this case 0.7 would mean very strong and the last one very weak would be 10 to minus 4. And what we've got, we've got when we applied cluster analysis and for cluster analysis we use the, let's say, a rather new way of grouping the things called the Louvain algorithm. We found four modules, which here are shown as weighted connections and here log weighted to see better graded. And the second message or simple idea that I try to convey this evening is that the four modules we identify from this data, 81% failed with real data is that these modules are organized topographically and also structural functionally. We can look at these four modules first as a sensory motor core. M1 is, the first module is made only of visual auditory regions. The second M2, which we called, is made of somatosensory and motor regions, but not only primary motor, secondary motor, but also regions like gustatory cortex or visceral cortex, which also motor. The third one would be the, let's say, the dorsal part of a limb limbic shell, if you want, and includes those regions that are more or less involved in the navigation of space of the animal plus anterior singulate cortices, expectation. And finally, the fourth module, which would be something like the ventral part of the shell, the limbic shell is made purely, almost purely of regions related to olfaction. In another way of representing this network of 73 by 73 is in this way, let's say a 3D network, the colors are the ones I used before, so this would be the olfactory module and this would be the visual auditory module. Look at the distance, oops, look at the distance between them. Very few shared connections. And the green one would be the dorsal limbic and here the blue one would be the so-called somatomotor. The size of the bullets are proportional with the degree of the node. So I'm said that I have to wrap up. Okay. The last thing I want to say, I hope I don't abuse your patience, is that the so-called rich club regions, the most important regions in the system are also organized, let's say structurally and let's say are organized in topographical fashion. So I don't say any, I cannot say any conclusions because the story is not said yet. Thank you.