Amazing. Hello everyone. Today I'm happy to talk about ZEF management with OpenMatic. Let's start what I want to talk about today. First of all, the different components. So ZEF in general, I hope everyone is aware of what ZEF is. Can you maybe raise your hand if you've never heard about it and have no clue what it is? Jawao, that's a lie. My macros turned on. Yeah, it should be, so of course. Second thing, Salt and Deepsea, OpenMatic in general, and then Bromisois and Grafana. Yep, come in, please. Let's start with ZEF in general. What is ZEF? Just a quick introduction. Maybe there are some folks who've never heard about it. ZEF is a distributed object storage. The cool thing is it not only supports object, as it's part of its name. It also supports block and file storage. So you can say maybe it's the unified storage because it combines all the different storage layers. ZEF per se is designed for scalability and reliability in general. And of course, this is a thing of definition performance. ZEF motivation principles, why was ZEF initially started? Or what are the ideas behind the development? ZEF is a totally scale-out system. So it scales horizontally up to thousands of storage nodes. You can combine them into one big cluster. It was from the beginning designed to have no single point of failure. This is really important. This is a key differentiator to other storage solutions. It runs, of course, on top of commodity hardware because you just need a standard Linux. Doesn't matter. And on top, just install the SES packages. So you could use your hardware. You usually use. It does self-manage and self-heating whenever it's possible. So there are lots of mechanism included into ZEF which makes sure that the ZEF cluster is always up and running in a consistent state. And of course, it's completely open source. Those are the components of ZEF. So the different ways how to get access to the data. First of all, underneath there is the rados layer here. This is the distributed object storage underneath. And then you have four different ways to access this data. First of all, there's lib rados directly. So you can query lib rados via your preferred programming language just to mention a few CC++, Java, Python, whatever, feel free to use. Then there is the rados gateway. This is a REST gateway compatible to S3 and Swift. Lots of time used with OpenStack, I guess you already heard, and other talks yesterday and today. Then we have RBD, the rados block device. Those are mainly used for virtual machines to directly add physical storage to the virtual machine. And last but not least, ZEFFS, so the file system from ZEF on top. Those are the different ways how to get data out of your distributed ZEF storage. Solved, that's another key component. I think almost everyone knows what Solved, if you've ever heard about Puppet, Chaff, Ansible, all the deployment tools. Solved is yet another deployment tool, of course. But what were the reasons why we have chosen Solved and not all the one of the other existing tools? The answer is quite easy. Solved is really scalable, up to those many nodes. I see your face, Owen, up to a few thousands of nodes. What's really nifty is the parallel execution included in Solved. So if you run a command on your client, so-called Minions, this is executed in parallel. So this makes it, on the other hand, really fast. And it has its own protocols. So there is no initial SSH connection needed to get things done. So this makes it really fast. As usual, it's easy to get started. I guess everyone tells you that his thing is easy to get started with. I think Solved is because you just have to write some YAML files. So that's doable, I guess, for almost everyone. And it has a really active community. So feel free to contribute. What we made with Solved is something that's called Deepsea. That could be a little bit weird. What is Deepsea? Deepsea is just a tool that uses Solved and combines Solved to be able to manage and orchestrate almost the whole SSH cluster, from the initial deployment to upgrades to adding nodes, deleting OSDs, all the kind of stuff that's included into Deepsea. And it uses Solved at the end. Right now, Deepsea supports those kind of features. First of all, I already mentioned the initial deployment, configuration. Then something that we call engulf. This is the initial support to import all the SEF clusters, or SEF cluster you deployed, for example, with SEF deploy. So if you have, in the past, in your environment deployed, a cluster with SEF deploy, you can migrate it on fly with Deepsea to Deepsea. Then Deepsea is able to deploy the radar's gateway for single site deployments, where it's also possible to deploy the SEF-FS MDS. Then we can create and also create the shares for SEF-FS and S3 for NFS Ganesha. This is possible with Deepsea. And there are some more features. We're able to deploy ISCSI targets, and as well as the ISCSI gateways. Right now with LRBD, in the future with TCMU Runner. This is right now under heavy development. Then we also deploy the Grafana and the Prometheus node. We're using to monitor our cluster environment, to gather the data, and to visualize it at the end. And the interesting thing, and also one part of the topic of this presentation today, it can also deploy and do the initial configuration of OpenATIC. Let's talk about OpenATIC. OpenATIC is an open source management and monitoring, I would say, UI for SEF. In the past, it was a little bit more, but I will talk about this in one minute. The idea behind OpenATIC when we initially started was we want to build up a web UI tool that an admin would like to use, because most of the time, there are several UIs out there. They're really cool. But at the end, you're still using the CLI, because it's more powerful. It's faster. And in general, you have lots of folks who just don't like UIs in general. So we had in mind we want to build something that is usable for administrators as well. A really important thing was to build OpenATIC as well. I would say kind of stateless, so that those administrators who are, yeah, want to manage their cluster with the CLI, with different tools, with different REST APIs. Doesn't matter. Can still do that without the need to have caching and all the kind of stuff, which is sometimes really annoying to do that. Just look in the past for those who have seen or know about OpenATIC from last year or did not follow the whole development this year. What we had with 2.x already was set cluster and status dashboards. Those were based still on Nagios. Gathering the data was Nagios, anti-singer. We had initial pool management and also pool monitoring, also based on Nagios. We were already able to manage, delete, create new RBDs. We could monitor them. We had the view of cluster nodes and roles. There was just a list with the node name underneath. So you were aware how many nodes are part of my cluster, but there was no interaction with it. So no further command was just a view only. And the support for multiple set clusters. So if you had, for example, a development cluster and a productive cluster, you could just put them both underneath the same UI and manage them within one centralized UI. Notable changes in 3.x, I guess, that's really, yeah. That was a big step forward. We refactored the whole code base. As I mentioned before, with 2.x it still was possible to also manage local storage. That means, initially, OpenMatic was built to be a local storage UI, to set up LVM, NFS shares of top, iSCSI, all the kind of things. And we removed all of this code within the 3.x release in a new branches. And we refactored. So it's now support, theft only. There's no traditional support anymore. As I mentioned earlier, it's now completely stateless. You can just spin it up, do changes somewhere else. Doesn't matter. OpenMatic will instantly recognize, because we'll just gather the data live from the cluster. From a developer perspective, a little bit of simplified installation. We now have just a single package and not a UI and a backend package anymore. We removed a lot of dependencies, because we removed the traditional stuff. And now we don't need all the LVM and all the other stuff. So we removed all the packages. Really important thing, and already noticeable on the web UI, is that we've removed the monitoring. So Nagios anti-sync with PNP for Nagios, with something more, I would say, 2000. And now it's 18. So we replaced it with Prometheus and Trafana.  I will show you later in the live demo. I guess this makes more sense. New features, we added to 3.x. We not only refactored the whole code base, we added new dashboards based on the new monitoring system we added. So we added dashboards from Trafana directly, gathering the data with Prometheus. And then we added the Trafana dashboards into the UI, including them. We're now able to manage the self-object gateway within the UI. We can manage iSCSI targets in the UI via LRBD, so create new iSCSI targets at initiator, at authentication rules, whatever you want. We can create NFS shares with NFS Ganesha, also within the UI. So there's no need to go to the CLI anymore. And really important, we support the newest release, the newest stable release, Luminus. And also with some Luminus features, for example, they were introduced with Luminus, such as pool compression. That's also possible to set within the UI. Last but not least, we improved a little bit the pool management or LBD management. We add more capabilities. We can now set cluster-wide OSD flags. I will show you later. And with Prometheus, we are now able to do node monitoring as well. So we not only gather the data from our self-clusters and the pools and the OSDs, we also gather the data from the nodes itself. So CPU, memory, network bands are bent with all the kind of stuff. And you're able to view this in the UI as well. While I already talked about Prometheus and Grafana, let me just tell you just a little bit about what it is. I guess you already heard. I know they have separate booths and separate presentations about it, but just to wrap up. Prometheus is a time-serious database. It collects all the data, while it's node exporter, for example, or self-exporter, and gather the data. And then we have it in one time-serious database, which is quite nice. But the user expects something more visible. So we are using Grafana. So we're adding Prometheus as a source to Grafana to visualize those data within CRAS to make it more, yeah. I would say human consumption to make it, I would say pretty. Those dashboards, as I mentioned already, are exposed via the OpenEdict dashboard. But this is really important. The standalone dashboards are still accessible. So if you decide to create your own dashboards, or you want to use this overall Grafana instance for your whole environment, and you just want to have one instead of several dedicated Grafana instances, you can do that. So there's no encapsulating, something like that. It's just a default Grafana instance. And we are embedding those graphs. And if you want to change something off the defaults, feel free to do that. There's Grafana still reachable on port 3000. Just connect to it and modify your Grafana. Same thing for Prometheus as well. Just a little bit about architecture, how it looks like. From a web UI perspective, if a user opens the web UI, it directly talks to the OpenEdict back end. This is completely written in Python. And then we have different ways to get the data out of the ZEV cluster. First of all, you have seen in the ZEV stack at the beginning, we are using libredas together, some data from ZEV directly. Then we are asking a ZEV object gateway as well. Then the important part for deployment. And right now, for the iSCSI management and NFS management, we are querying the solved rest API. We're querying, at the end, we're using deep-sea. So we're querying the solved API. And the solved API triggers deep-sea to get all the data and to give us the data back. And then to show nice, shiny, fancy graphs, we're using Grafana embedded into our UI. Yeah, come on in. Just a short outlook. I try to keep those slides as I don't want to rush through, but I think everyone is more interested in a live demo instead of slides, because I've written it down in a presentation description. So I will keep this as short as possible. Just the outlook. And I'm really happy to do that, because it's awesome. This is the OpenEdict login screen. This has a cool logo. And there's a locking thing. It's nice. And it's a little bit of black as cool. But this wasn't the outlook. The outlook is more like this. But now it's the question, what really changed? What is OpenEdict? Yeah, you're right. We replaced the logo. Now we're using the upstream theft logo. Which is kind of cool? That's obviously OpenEdict 4.0. We released it with this new cool logo. Now just kidding, there's a lot of more behind. Why are we using this logo and why do we replace the word OpenEdict completely with theft is, and I'm really happy to announce this, is that the idea is to get OpenEdict upstream, directly OpenEdict upstream. The idea behind this is to replace the existing manager dashboard with OpenEdict. At the end, it's a theft dashboard. There is no mention of OpenEdict, the name anymore. Of course, it's still in the code. But it will go away. We will try to push all of that. We are right now refactoring it into theft manager as the default dashboard. We made this decision like I think two or three weeks ago. So this is brand new. And feel free to spread this around the world. If you're interested in on what we are currently working on, right now we're developing the initial pull request in our own GitHub repo. And ideas as soon as we have something that is compatible, we will push it upstream. That's the idea behind it. So in the future, there's no standalone of OpenEdict more, it's just its default part of theft. So as I promised from the beginning, I have a live team and I hope this Wi-Fi is better as it was the whole week. Let's give it a try. Most cool is that I have to take a look here and scroll here. That's really nice. No mirror screen. Let's see if this is working. Nice. The Wi-Fi is awesome. I do it this. So I skipped the login screen. I know it's awesome, but I skipped it. I'm already locked in. Everyone can take a look at this. There's also a live demo on demo.openedict.org. If you want to play with it, feel free to do it. It will be reset every day at midnight. So if it's broken or not reachable for a few hours, then someone did something stupid and then it will be there next day again. This is the landing page. This is the landing page. This is the initial Kravana dashboard I was talking about. So what we did was we embedded the default as you can see, a default Kravana dashboard into our UI to use it from there. There we get a quick overview about the status of your current class, the heel status. How many pools do you have? About the size you used. Within that, you have all the cool Kravana features, this overlaying. You can zoom in directly. All the graphs will update automatically to this timestamp you have chosen. So this is really cool. Then we added not just a single dashboard. Those are the default dashboards from our end. But as I mentioned, if you need more, just add them within the Kravana UI. Just one thing to mention, name them differently. Because if you name them the same way that we did, you do an upgrade right now. It will just override your files. So just name it differently. Maybe to mention, because I put it on the slide, this is the node statistics. We're gathering now CPU memory, all the data, and visualize them from every node that's part of the cluster. If this would have been physical hardware, we would get those data as well. But those are virtual machines on hosted. So there is no smart data. You can switch between different nodes. This cluster is a cluster out of seven nodes. So if I'm interested in this node, just click on it. You get directly the information from this node. Same thing. I'm not quite sure. I want to show all of the dash, just a few. For OSD, for example. So if you're interested in a specific OSD utilization, how many PG's are stored there, we're gathering the data and visualize it here. Let's go to the OSD tab. This cluster is really big. It has in some six OSDs, which is amazing. If you click on OSD, it will automatically show you the graph you've seen on the initial dashboard as well. So we embedded those pool OSDs, node graphs, on those tabs as well. So there's no need to go to the initial dashboard, but you could if you want to. One thing that's really new is to configure cluster-wide OSD flags. So within the UI, you can now set flags like, you can pause the cluster, of course, which makes it inaccessible anymore. You can send no-scrap all the things you're usually using within the UI. That's not possible within OpenMatic. From the RBDs tab, same here. You get some initial information about the RBDs. Then the statistics is, again, the Grafana dashboard, and there are no statistics. That's cool. We can add new just to show you the dialog, what we are able to do. You can give it a name, say, okay, which pool it should belong to. That doesn't make sense. You can give it a size. You can use the default features or adapt the features to you need. We also tried to add a few hints and tried to combine those features because there are several features that are belongs to each other, and it's not possible to set a feature without setting the other feature beforehand. So we tried to visualize this within the UI. So as soon as you click a feature, all the other features that are not possible right now are created out and vice versa. Yeah, this is one of the hints we've added, for example, you have done something and now it reminds you you really want to leave the page because you did not click create or what else. This is the pool, looks quite similar with details of the pools. You also get, again, the statistics. So the dashboard of those pools, there they are, there should be more. Yep, here it is. There's more. The resolution of this beamer is awesome. Just to show you here what's possible to do, you can say, okay, I want to replicate it or in a ratio-coded pool, for example, if you click on re-applicated, you get those various variables you can configure. Same for a ratio-coded, it will instantly update the fields and then you can say, okay, what do I want? I want compression. Now you have to select an application on top. You have to select, thanks, you have to select what do you want to use the pool for, for example, for CepFS or RBD. That's all possible within the UI. And I guess this is a link to upstream. If you have a problem to calculate replacement groups, which could be sometimes a little bit difficult, there's a direct link to upstream with the formula, how to do it, to calculate what's best for your specific pool. We improved the notes tab a little bit. In the last version, we just had shown the host name and that's it. Now we also show cluster, the roles, those are assigned to those nodes. So for example, this one is our master administrator and automatic node. This is monitoring node manager and storage or this is an ITW for iSCSI gateway and also storage node, for example. Same here, if you click on statistics, you get a statistics for just specific nodes. And you can also trigger a task. We included crop and deeps crop. So with the UI or within the UI, you can click and say, okay, I need to scrub this node. iSCSI, that's one of the new features we've added in the backend powered by Deepsea. We're using Deepsea. Within iSCSI and NFS, we also added the managed service dialogue so you can stop and start the iSCSI and the NFS Ganesha services or at least restart if you have to and just to show you what we've added. First of all, of course, iSCSI share needs a name. You have to specify the portal as in this cluster, I only deployed one iSCSI gateway so I can only select this one single node. I can add, for example, an image, it's a demo image and then we added authentication as well. D4 is just user password and the initiator list, but we also added user authentication and discovery authentication and you can combine them as well if you want. I know it's sometimes kind of hard to do that. I usually just stick to user password but maybe some of you using, for example, I don't know, user authentication so you can still do that. Same for more or less NFS. There should, in a few seconds, appear right here also the managed service so there we can also start and stop the NFS service if we have to. We get those, what's really nifty, we added, for example, those little hints so how do you mount this share to a specific client? If you have no idea how to do that, just copy and paste this command to your client and that's it. So we try to improve the usability over time and there's lots of things we have to improve but I think we made a good step forward. Let me just add an existing share to show you what's possible to do. Just five more minutes, wifi please. I have 10, amazing, then I can just reset. Yeah, there should be an added dialogue of NFS. I think everyone, can you mention? Yeah, you have a question, sure. Yeah, sure. Okay, the question was if we can do something interactively with failure, so for example with this crash or something, automatically if something happens to the cluster, if we can trigger something, no that's not part of the web UI so far or not part of the core. You get just notified that there's something wrong and then you have to do something.  That's amazing, let's click here. So no, right now this is not automatically possible but I guess that's something for the future. That's really cool. I don't know why let's click on that. I don't trust this wifi here. You shouldn't. And I don't. I don't know then more, how many clients are connected to it? I don't know. I can't set up a hotspot. Or I skipped the NFS part. If it's not, I can try to let it program. Yeah, why so long let's give it a try. I know if it's a general wifi problem or a problem of this instance. Or someone of you, why I was talking connected to the live demo, right? And did something. Evil you, I haven't, should not mention it. That's the reason why I'm in full screen, oh no. Object gateway. So we are now able to manage the users of the gateways as well. So create new users and adapt quota for example. Initially you get those details listed here. Then we also have statistics again. I hope this is working better. Yeah, of course. You can create your users, add for example, sub users for Swift. You can add the keys you need and you want to. You can adapt the capabilities of this user. For example, a user should just read for example. You can set just adapt those. You can set user quota. And interesting, you can limit it by size or by amount of objects. And the same for the bucket. So you can also limit. I'm not quite sure if you are able to see this because of the hats. By also size and quota if you want to. A really cool and amazing thing is still the crush map. We've visualized within the UI. It's just a visualization of the crush map. You can't do anything with it. It's just a view only. And 2.x, we had a edible crush map thingy included. But yeah, after you figured out that it's so easy, we implemented that you were able to just track and drop for example, your rack or your notes within the tree and click on save here. I think this is a great idea. I want to reorder my whole crush map. And we figured out maybe to prevent the user, this is not the best idea to let them play with. We need something more guided like wizard to create a crush map or to change something. So we decided we want to remove the edit feature for now and edit later again as soon as we have something that is more major than just a track and drop virtual tree. But it is still there. But I think I'm definitely sure it will go away more or less with self-upstream. Users is unspectacular. I guess the cool thing about it is that it's the settings page we added to the new version. It's now possible to specify, for example, the Deepsea host, the Grafana host, or the Object Gateway host within the UI. You don't have to go to the CLI and configure the IP addresses, passwords, whatever shared secrets there. This could be done within the UI. This, for example, this cluster was spined up with Deepsea completely. So those details are automatically added with Deepsea if you deploy it with Deepsea. That's what I mentioned that Deepsea is capable of deploying OpenMatic and do the initial configuration. So we have the same for Object. Here's for Grafana. So if you have, I don't know, dedicated Grafana instance in your environment somewhere else, sure, why not use it. And last but not least, the pass to the key ring and the user behind. What is always really helpful for us is this little thing, I just want to mention it, because it's not used that often, report a bug. So if you found something, don't just close the software and run away. It would be really helpful to let us know that you found something or you had problems or documentation is totally horrible or the whole thing is total crap, then we want to hear why. That would be really important to us. It's not, on the one hand, it's really cool if you say this is really helpful, but what is even more helpful is to know what is not perfect, what is missing and what features, yeah, are not working currently. One thing before we go to question and answer is the API recorder I just want to show you. You can click on the API report. I hope this, we can give it a try. I'm not quite sure if this really, this is not a big cluster and I hope it will survive. I will show you the API recorder. This is something for those folks who have, don't like to read the documentation in general. How many space do I have? I guess one gig is sufficient, right? Blah, blah, blah, it doesn't matter. Yep, there it is and now you can click stop and the cool thing is now we get more or less, I would say, up and running Python script out of it with the calls that we did. So that's exactly what we did. We're calling our own REST API within the UI, so this is what we did. So you can adapt those settings and use this script to, for example, create new RBD devices and so there's no need to read the whole documentation because most of the time I don't like documentation. So as we have just five minutes left, I would switch really quickly to question and answer. Yes, sir. Yeah, yeah. And at this point, you're definitely right. You have a problem with the single management system. You can make it more or less high-available with, for example, syncing the data and do a pacemaker cluster behind for the management thing. But at the end, this wouldn't influence the accessibility of your data because if the management node is down or corrupt in any case, it doesn't matter, your clients can still access the data. This is completely independent of the deployed cluster. But yes, in this case, you're totally right. This is exactly what we are currently working on. Exactly. So the idea behind or the outlook for the future is to have this all based on the core. So that it is part of the cluster to do the deployment. But for now, we have to stick with what we have and this is from our end, Deepsea and upstream users. Yeah, most of the time, I guess, that's Ansible. Yeah, sure, sure. Doesn't matter. So that's what I mentioned. What we are using Deepsea to deploy the cluster is just for deployment and also you can use it for orchestration. But if there's something broken within this master management system, it doesn't matter. You can manually fix your cluster. You can still access the web UI, for example. You can just spin up a new web UI because it's stateless. This will directly gather the data. So yeah, it would be, it's not, it's in this case a single point, but it doesn't affect your clients or your data. Yes. So it's a question about how opinionated the open advocate is. We're running, for instance, Ceph using the Ceph Docker project. So we're running Ceph with Docker, ourself using Ceph. And we have our stats in OpenTSDB and we display them in Grafana as well. So how well would open addict play with that scenario? Generally speaking, out of the box with Grafana wouldn't be a problem. We can still show all the data within the UI. The only thing that would be missing is the iSCSI NFS management part because therefore we need deep-sea right now. So this part would be, yeah, not usable within the UI. But the rest is fine. And the idea or the plan behind why we're moving upstream is to remove this dependency as well to be completely independent at the end and not relay on, I don't know, specific deployment tool to remove exactly this behavior. Another question? I have one minute left or? One minute. One minute. Yep. On the OSD display, how does it scale if you've got hundreds of elements there filtering and positioning? On this page, it's not a problem because we do pagination. So we gather the data and then we have this pagination here from a default of 10 that can scale up to 100, for example. But you're right, and we already replaced this just to mention it. For example...


know because I've heard a lot of anecdotes about issues happening at this property and I'm wondering if there's been any formal complaints that we've received at the town of violations being committed at this property. That would definitely be very helpful in making this decision. I know right now the things I'm considering with this property is, I know there's been a lot of talk about the size of the lot and the exceptions being allowed for, you know, maybe one or two feet kind of thing. And it seems like the property and the structures that are there, the structures are currently there. There's no necessarily new structure. The only new surface area that's going up would be the driveway, which our own engineer said they believe it would improve safety as well as water runoff, which is, you know, my major concern with putting more in pervious surface when we're already hearing from neighbors about issues of flooding where those are now both being addressed. So I don't see, I don't see that the lot size being a major issue here when we're talking about a garage, a structure that's, if they were trying to build that garage that this proposal was we're going to build a garage there or build another structure, I think the answer would be absolutely not that that lot is undersized and this is not the intention. But I think in this case where that garage is already there, it's a structure that currently exists that's being converted. I think that the argument on the lot size doesn't quite apply here and I'd like to hear from other board members their thoughts on that issue of the undersized lot. I will say that it's my opinion that both of the structures on this lot, which is quite small, are very close to both East Pleasant Street and Strong Street uncomfortably close to those two roads, which are fairly major roads. It's access to Wildwood School with children going across there consistently and the fact that the cars are parked there alongside the existing garage frequently in excess of what is anticipated is both a hazard because of the way that they come out of the parking area that they're in right now. But it's also a hazard because if you're walking or running you have to walk around the cars and onto the street. I don't understand why the garage was not being used for some time if that was one of the stipulations for the rental units to begin with. And I find that because of the configuration adding more the addition of the dwelling units in the garage would not be in keeping with the rest of the neighborhood. My opinion. Mr. Langsdale. Yeah to that the parking as it is now is I mean we have comments from different neighbors. I have Mr. Cobb's letter. I have Iver Brick's letter both of which are talking about the traffic problems and that making this change would cause even more problems. However the cars that are parked there now have to as we're just saying have to back out into strong street and especially if they want to go west they have to back in go across a whole lane of traffic to get into the westbound lane. If the cars were parked in the garage it would still be the same problem. They would still be backing out. As my understanding is when I was there and I think from the pictures the cars that are parked there now do not stick out into the sidewalk so that you don't have to go out around into the street or anyway to get past the cars. But the problem is that they have to back out. And if this is not if this proposal is not accepted then that remains the same. The parking as proposed if the proposal is accepted means that the cars would be parked in four spaces in the back. They would when they come out they would come out facing the street facing the sidewalk and therefore would see easily any children or runners or anything plus traffic going by. To me there's no question that this is parking wise this is a vast improvement to what is there now. Because if we don't approve this the parking remains the same and it is more dangerous than what would have happened under the approval. Now to what Mr. Maxwell was talking about I have here Mr. Cobb's letter from I think December in which he says the number of violation I quote the number of violations this rental property has accrued in just a few years is well documented in the property records adding another rental to this mix does not seem suitable or wise. So I along with Mr. Maxwell said okay where are these records what has been levied against this property in the last few years and how long is have these people now owned this property and what are the violations that have been reported and recorded during their ownership of this property. Maureen we can get that information and distribute it to the board members probably tomorrow or the next day right? Sure yeah certainly you know day or two. I could look it up right now actually if you want but yeah I can provide that in preparation the next meeting if you wish. Please do and and the rental permit as well. I think the strongest case in looking through this I the strongest case for this is that increased safety on the sidewalk because I think that parking in the in the back is a far safer thing. I'm also concerned though is that the current and while it wouldn't it wouldn't increase safety a lot but the current rental requirement having and I think I'm right having to park in the garage isn't being obeyed. The landlord could have under the current situation used the driveway that's there and had parking behind the garage and could have solved that problem right now and hasn't done that. So in ways the current situation is a result of the land the current owner of the property allowing to park on the out in front of the garage and not even not even comply with the current rental permit and Mr. Langsdale I went when I went past there today just to look or the other day just to look at this it really depends on the size of the car and the accuracy of the part of the parker whether the whether the sidewalk is blocked or not. If it's a large car and they give themselves a lot of room it that it's more than the bumper that's into the into the sidewalk. So we do have it is a it's a bad situation as it's currently is currently exists. Thanks Mr. J. The other stuff that's that I what I'm more concerned with I'm really concerned also with what it does to the neighborhood and I I'm a big fan of infill. I think it makes a lot of sense. I think it makes a lot of sense especially in the denser downtown area. I'm not sure that it makes sense here. I'm not I just that's what I struggle with more than anything else is the additional people living in a that small space when you don't have that in the rest of the of the neighborhood. The concern that the neighbors that what we're just going to see all sorts of garages and other you know the dwelling units converted I don't know that that's real because there's not a lot of extra dwelling not a lot of units out there or structures out there that existed before the zoning the bylaws were passed and that are available for this kind of conversion. I just I don't know that that's true or not but I do know that when you increase the amount of of students and pressure in the area and whether we can limit it to students as a question the increasing amount of pressure in the area and the density and it does start to change the neighborhood in ways that may not be it's not good for the neighborhoods. So that's the question I have the struggle I have is between those two points and I and I'm just not ready to make make a call on it yet. The last concern I have is about the drainage. I'm I just don't believe I just would want to see more that that that drainage is going to benefit. I just I look at that land I see the slope I see a gravel an abandoned gravel driveway and I say that isn't that isn't within two percentage points of brand new asphalt. There's more more so the ground soaks up more than that and maybe that's just that's all experiential as opposed to a good analysis technical analysis but it just I have a hard time believing that that is almost the identical what you see there today is almost identical to new asphalt and so I worry that we don't have enough in the terms of of of drainage and the impact that has on the neighbors is a concern to me so that's where I'm coming from amongst the our board members I just wanted to share that I haven't made my decision yet but those are those are what I'm concerned about and the last thing is I think it'd be great if there were families in there that makes up that does appeal to me but I don't know that that can be enforced or that we can rely upon that miss parks miss parks I was going to say I'm also concerned about it that impervious surface because all of the pictures that we've looked at there is grass growing there and so there's a big difference to me between grass and asphalt and I do see that there's a couple of stones here and there at the beginning ending at the end of the driveway and I do believe that that that cars have driven over that but I do think there's that it stands out to me that that's a lot of pavement going over grass in the backyard the other thing that concerns me is two dwellings on one lot I don't think that's a normal situation for Amherst to allow two separate dwelling units on one building lot but I do get Dylan's point that it's existing and so you have to deal with what's existing and the other thing that stands out for me is the parking issue is an issue today it's and if if that parking lot were put in and the garage were left as it is that would take care of a lot of problems with this property so putting a dwelling in the garage does not solve the parking problem putting a parking lot in the back solves the parking problem I know that the owner does not have an incentive to put parking in the back unless there's a dwelling unit but I see them as two separate issues like you know I we shouldn't have to agree to allow the dwelling in order to handle a parking problem that is existing now it would be nice if that were just taken care of so that's on my mind is that I understand that it's an improvement in safety but that's that's not because there's not a dwelling unit there and if I may comment on your comment it's almost as if this could be it could be handled without um on the landowner could handle this on his own you could put that that part the parking behind the garage the existing garage now regardless of whether we whether we approve the special permit or not and solve the problem and or the I don't know if the town could require that but that would be that would solve the safety problem for the that I see on that street one other thing parks one other thing I forgot to say is that we are I hear the neighbors and I hear the concern and I you know that that has an impact on on for me when you know when neighbors talk about how you know how they feel that this is not an improvement to the neighborhood for them it's a detriment and so I do I do hear that I want to say that and on a whole another subject I am frustrated that we keep getting paperwork at the last minute and I do work full time and so I can't always with if paperwork is sent to us in the morning I can't necessarily see it until 4 30 and so I do feel like I don't have enough time to review all of the information and like mr. sparkles presentation or response to tom reedy's letter is really useful but you know when we don't get it until we're actually at the meeting it's it's it's harder for me to kind of put everything together into a cohesive idea so I just I second Keith Langstahl's concern about having paperwork in a timely fashion because every time we've said that it still hasn't happened so you know and I know there's a lot of factors that weigh into that but maybe maybe the thing to do is to have a hard deadline and just say you know three days before we just don't look at it you know it you know that that's a really good point I mean that's what we try to do with this the last the bylaw change is to have seven days and then have if it wasn't had some flexibility that we could judge and we just and what we found is that it didn't work very well and I think we just need to put everybody on notice that you got to get stuff in seven days before that's just a hard and fast rule now there's going to be many de minimis changes and de minimis things that have to come up in the seven days and we have to make a we'll have to make a judgment about that or the chair will have to make a judgment about that but I just think we have to have a hard and fast rule on seven days because we do have people that work we have people we just can't and and and I think that the in this case the two respondents were were tried to get something in early but they didn't meet the seven days but I think we just have to put everybody on notice mr. reading mr. sparkle for the next meeting for all meeting in the front in the future we need seven days ahead of time of the information to come in because I think most many of the people on this board work I'm lucky I don't any have to anymore but you can't get this done in 24 hours and I but I don't I also think that it's going to be difficult for the staff to get all the the project reports done seven days ahead of time because they have to respond to what they see so we're not going to get the project application report until a couple days of I think a couple days before the the meeting because you have to factor in the the other material coming in so that that will continue to be something that will probably have to be looked at on a you know on a Monday for a Thursday for a Thursday meeting or a Tuesday on a Thursday meeting and I'm is that going to be acceptable to board members to have that as the one thing that comes later or not or do we have to move 14 days back and then have the project report seven days ahead of time for me I think what you're saying about the Monday uh is is quite good uh and I know that you know Maureen gets information sent to her she has to process it and then get it out to us so that if if the if the material comes in seven days before and then three or four days later Maureen is able then to get it out to us that should be fine I mean but yeah so it's just it's just this last minute it's it's too much so and the pay grade isn't great enough you know yeah that would be good with me certainly all right what we I think the important thing is to put everybody on notice is that seven days is now hard and fast and we really do we really do intend to enforce that one two we'll try to get that the goal is to get that project application report out as quickly as possible Maureen and you tell us if that's not going to be possible on Monday if that's then maybe we have to move maybe we have to move the date not seven days but we have to consider changing our rules to have it nine days ahead of time but you need to you need to tell us what how much time you need to to prepare the project application report reasonably reasonable amount of time and that and maybe you can't do that right now but that's what we have to that's the piece of information we really have to have you know four days three days ahead of time and you can't do it when you're getting stuff at the last minute so you let us know how much time you need for this okay and we'll base the requirement on that okay all right so um we're just about at nine o'clock does anybody else have Ms. Pollock Mr. Chair so I've been sort of you know I'm in keeping notes of this meeting um I I've jotted down a list of things that the board would like in preparation of the next meeting well so you know you individually will review Mr. Attorney Redie's memo I will provide you all a copy of Mr. Sparkle's PowerPoint presentation from tonight about items for the applicant to perhaps consider submitting is about the change of amount of tenants the prohibition of student rental in the converted dwelling gatherings and over at night guests you know you you may want to consider updating the lease to reflect those proposals that you have um I believe the chair asked for more information about the store water design and calculations and a little more clarity about the law coverage update the site plan to show the if you if you decide to extend the fence to show that that length of extension and update the fence detail um that would remove the sort of the gaps um penetrating at the top um and I will provide the board a copy of the rental permit parking plan the existing uh rental permit and parking plan and and to see if there's any violations on record I believe there aren't any violations on record but I will certainly just uh look into that I think that was it's or Mr. Meadow one other question for Mr. Moore um can the town put up no parking signs along that road I'll let Mr. Moore answer that that might be a fire that yeah that I mean that's a um generally it's a recommendation that might start with either public works or the police department but the decision is ultimately made by the town council on whether or not there's a no parking zone you know the board could certainly be creative if they don't want parking in the front of the converted of the of the garage with boulders or or something that would sort of block a car we could create a condition that there would be would be making it impossible to park in front of the the garage but you still have the you still have a case of parking to the left of the driveway so that's uh you can make it all impossible I guess with a lot of boulders or fences or something you have to be creative all right um are there other questions comments suggestions then when's our next meeting Maureen uh let me check my calendar I believe it's February 11th February 11th all right so right as of tonight the requirement is for seven days ahead of time for any any new material Maureen if you find that that's not that doesn't give you enough time inform the applicant and um Mr. Reedy of the the date you need to get material ahead of time okay sure okay but uh but it would be safe to say you know so next week would be the fourth and the 11th uh you know if um Bucky it sounds like if I'm getting any submissions it would be via Bucky Sparkle so if I could get submissions by the third that would be great okay all right third okay is that all right stay uh Wednesday yep Wednesday so but sooner sooner is always better sooner is always better but I'll I'll type in in my outlook the ball that you on February 3rd okay so the submissions on the third for this meeting is there other items on the agenda for that there is there is um another special permit application uh for 34 Baker Street it's a continued public hearing and I want to say there might be one public meeting that is a sort of minimal a minor request but I can't exactly think of the item and also I might be making that up but uh 34 Baker Street is on the agenda all right so we are gonna I is there a motion to continue this matter until the 11th of February at six o'clock and um I um about that um so the 34 Baker Street public hearing um was continued from the December 10th meeting and if you bear with me unfortunately for a few moments uh I I believe we continued it to 630 so and that might have been one of the last 630 ZBA meetings that we have um so uh we could if if it's um okay with you know attorney Bard and and mr. Mora we could open this public hearing at 6 and then open the Baker Street at 630 if if that's okay fine fine with me okay that works okay so we'll do six o'clock if everyone's closer with that all right six o'clock and then we'll move to Baker Street at 630 and we'll go back to this it's exactly all right that works fine okay and then the last thing is do people want to have an administrative meeting to discuss the discuss submission requirements or have we solved that problem for now submission requirements well the due date seven we I had originally the beginning of this talked about having a this discussed at an administrative meeting um and if we need to have an administrative meeting to discuss it that we could do it at the end of that next part the 11th if not we don't need to do it and we've solved the problem we can move on I think I think we've solved the problem but um I don't know if either the members want to speak mr. Langsdale you raised it first uh I I think we've talked about it and I think we can go forward I'm fine good all right so we have those two meetings to two matters to meet on the 11th all right so I'll Mr. Maxfield has moved to continue this meeting to the 11th at 6 o'clock is there a second second this is a roll call vote um so we have mr. Langsdale hi chair votes aye mr. Langsdale votes aye mr. mr park miss parks aye mr. maxfield aye mr. meadows hi motion carries unanimously the meeting is continued until the 11th at 6 o'clock public hearing is continued excuse me thank you the public hearing is continued to 6 o'clock the next order of business is any public comments on matters not before the board tonight any attendees have a comment we have no no comments and no matters that were not anticipated before 48 hours before the meeting I think we're done with the the um the public hearing do I have a motion to adjourn don't move is there a second second this there's no discussion and this is a roll call vote aye vote aye mr. Langsdale aye miss parks aye mr. Maxfield aye mr. Meadows aye we are adjourned thank you thank you everybody thank you everyone good night


No worries. Hello everyone. And yeah, I'd like to show you a recent project we worked on under salsa. So we had a project where the client wanted text to speed feature implemented on the site. So we opted for Amazon poll. So let me share my presentation and talk to you about Amazon polly and how we made like how we integrated with the triple site. So let me start the presentation. Is the text clear? Yep. So my session title is using Amazon polly to convert text to speech in Drupal. So the agenda is initially just, yeah, we'll keep it short and sweet so we'll just talk a bit of like an overview of Amazon polly and then the solution architecture. And I'll demo to you how it looks in the real side and then happy to take any questions. So what is Amazon polly? So it's a service offered by Amazon under the package of AWS services. It converts text to speech using deep learning. And it's really, it was my first interaction with it and it's really quite good in terms of the features as well as ease of use and also the, yeah, it really provides a nice way of converting text to speech. So the main features are that it supports multiple languages and accents. It doesn't, it's a limited list. It's not every language or accent, but it's really extensive. It covers, I think the major live languages, like world live languages, so it's good enough. And they offer two options. One is they call it neural mode. And that's more lifelike speech. So it sounds as natural as possible. And then there's a standard mode which is more robotic, if you could say. And, and both, yeah, we come to pricing that those this two modes have two different pricing. The neural one is a bit more expensive. And then the good thing about Amazon polly it integrates well with other AWS services so you can integrate it with Amazon S3 with lambada if you want if you want to create a back ends like surface less back end using lambada. And also it offers a lot of customization options for example, you can add some, let's say the way you pronounce certain words you can customize it you can add poses to certain places you can emphasize on certain sentences. So it provides a huge list of customization options. And you can, you can choose, for example, if you want male voice female voice. And as I mentioned the accent, not only the language but also the accent for example English you have the American English, the British and then the Australian English for example and it's quite cost effective because they charge per character. So a million character which is like it's quite huge is like a narrating a 23 hours movie, you could say it's about $16 if you go for the neural mode, and it's about $4 if you go for the standard mode so it's really cost effective and the good thing is, they don't charge you for the playback so once you convert the text to speech it sources as an MP3 file, and that MP3 file you can either store it in your on your like if you have your own data center for example or you can sort in S3. So the playback is not charged they just charge you the amount of characters you convert to speech. So that's really cost effective if you have a news article let's say three pages, it costs about 16 cent American dollars, and maybe three cents, if it's really standard mode so it's really it's quite cost effective. And that's one of the reasons the client went for the solution. So, just to give you a solution like overview about the solution architecture so what we have is here the Drupal site, and we created a custom module that you know basically when you save the node, it will take the content, and then create a Q item, and using cron will process the Q item and when you when you post the item, we are basically sending the content to Amazon poly, and Amazon poly then converted to the speech and stores the file as MP3. You have some options you can sort as MP3 or different audio formats, and then Amazon poly stores the file in S3 in our, in our case we use that approach but in other cases you can store it in your local if you want. But in our case we thought it's easier if you just start in S3. And what happens is, once the file is converted, Amazon poly returns the file URL to us, and then we store that file URL within the node we have a field in the node, and the file will be attached to the node that way. So when you load the node and the front end, we check if that field has a value, basically the file URL, and then we basically play the audio. So that's how it works. We initially went with this Q approach because we thought the processing might be a bit extensive, and maybe to take time so we didn't want to really have a performance overhead there. But later on we find out actually it wasn't really a big concern because Amazon poly is quite performance, so it really processes, like we tested several like, or different lengths of articles and usually the file is ready within like a second or less. So it's really performance, we didn't have any issue with the overhead because everything is happening, the processing is happening in Amazon poly. So we're not really processing anything in our Drupal site. So the Q option was offered that eventually right now we went just for the immediate conversion. So once you said no, we send the content to Amazon poly, we get it back and then that's how we we process it at the moment, but the option is there, and I'll show you later on the demo, how you can configure the options. So, yes, the process as I mentioned now, once you load the node, you save the node, and then you get the content fields, you can specify the content field using a custom view mode we created for the node. So you can specify which, because not all fields, you know, like, we don't want all fields to be converted to speech. For example, if you have an image field, there's no point. But you can specify which field they say the body field or description on any other text based field, and you can arrange also the ordering of the fields for example if you want the body to be pronounced or narrated before the description you can do that by arranging all the fields in the view mode. Also, we strip certain HTML tags from the content because, yeah, not every HTML element, it's worth converting to speech for example images, or let's say video. So what we do is before we send the content we make sure that we are just sending mainly text content, and not nothing else. So we do strip certain HTML tags from the content. And then Amazon Poly supports a kind of markup language called speech synthesis markup language SSML. And that allows you basically to control how the voice narrates the content. For example, we can say, after each list list item, add three second pause for example, so you can say look at that, that point of the text, can you add a pause for three seconds when the text is narrated, there will be a pause. So you can control basically how the text is narrated using the SSML markup language. And, as I mentioned, we have two options when we send data we can immediately send the data to Amazon Poly when we save the node, or we queue it, and then later on we can process it via corn in the background. And then once we get the S3 object URL, we save it to the field in the node. In the front end, we have a custom block so that allows you to basically place the audio player anywhere on the page. And also we use a really good JavaScript library called media element JS. It's really full-fledged audio and media player in general. You can use for playing video files or audio files, and we customize it. We created our own audio player using the media element JS to, yeah, to just fit the styling or the branding of the site. So now let me just quickly demo to you how it works. So let me know if you're seeing my browser. Yes, actually. So let me go back here. So can you see the site now? Yep, it's test page. Yep, test page. This is a GovCMS test site. I set up on my local. And really Amazon Poly, just to show you the interface or how to manage the Amazon Poly in the EdgeOS console, you can see it doesn't offer a lot of options here because it's really, the idea is to really be simple to set up. So here basically just to test the feature, but you don't have any additional, you don't have to configure anything. The only thing you need to do is basically create a user, IAM user, add it to have access to the Amazon Poly service, and then use the same user and add it to the S3 bucket, create a custom S3 bucket, add that user there. So Amazon Poly can actually store the file in the S3. So that's all you need to configure in Amazon Poly really. There's nothing much, you can add some customizations, the one I mentioned just now. So for example here you can add some lexons, for example how to pronounce certain words or you can, if you have for example acronyms, if you want how to pronounce those acronyms you can specify them here. And this just shows you the list of recent tasks that they conversion tasks basically. So that's it. And this shows you the engine. As I mentioned there's neural and there's a standard. And then it shows you also the voices, because you can specify different voices based on the available language. So for example here for English Australian, you do have the options of female and male. And then here you can specify the neural mode or not. So just to give you an example how it works. So this is a neural mode. If you listen to it. Hi there, my name is Olivia. I will read any text you type here. You'll notice it's a bit more natural than if we go for the standard one. So the standard one, let's say Nicole here. Hi there. My name is Nicole. I will read any text you type here. Yeah, so it's that's the differences. And, yeah, and here is the s3 packet where we store the empty files so I'll show you how it looks in the front end. So basically add a content. And let's say I'll add the test content about Atlantic Ocean. Let's just cover some text from here. And that's it. And we just just publish it. One thing to note is, in the current implementation, we are really not checking the publishing state. We can configure the module to save the file every time you save the node, but our assumption is we want to leave it, you know, up to the client and the tutorial process to determine one to create the audio file. So here, as you can, as you can see, we have this field text to speech. So you can enable this field. And this will make will convert this text into the audio file. So once I publish this now, you'll notice now we have listened to article button appearing above the content. We have to wait for a second just for Amazon poly to create the file and place it here. So if I check the list now. So now this is scheduled as you can see it's in the, the queue and it should be completed shortly. So it's already completed. So it's really quick. And once I play the file. Atlantic Ocean. The Atlantic Ocean occupies an elongated as shaped base and extend that's that's how it works. So the settings so you can set the text to speech feature settings in two places. The first place is in the content type itself we added a third party configuration, and this third party configuration allows you to either enable text to speech for all the content from this content type. Also you can allow an override so basically if you enable this, and you uncheck this box that means content editors will not have the option to disable the text to speech feature. So if you allow this way that means they will have the optionally they can enable uncertain content content items if they want to and then this is what I was talking about about the different processing mode so you can have either to convert the content to audio immediately or just and check this if you want the content to be queued and then processed in the background by Chrome. Another setting is just like API settings for example the AWS user credentials so I won't be showing that now, but it's, it's, it's a general settings here we can specify the AWS user and the credentials, as well as you can also choose. I think that's why I can just delete the user later on so I'll just show you quickly. So you can specify the access keys and stuff, and then the bucket is three bucket, as well as wish language and voice generation mode whether it's standard or neutral. And then you here you can also select the available voices. So, this way. Yeah, I'll show you quickly the custom view modes we created for this content type. So if I go back here. I'll just show you quickly. We have this remote extra speech. And that's where you basically specify which fields will be sent to the Amazon policy so for example if I want the public state to appear I can do it I can just drag drop here and save the view mode. Also I can place it above the body. So this gives you the options if you want to not really follow the actual layout in the front end. You can specify different layout here when the text is narrated. There is a custom widget we created for this. The reason we created custom widget is we didn't want to have two different fields for the audio URL, and also the option to enable the text to speech feature so we created one field and that field actually uses double serialization API to save the three values which is the enable checkbox, enable disable checkbox and the audio file URL, and another thing we do check as well is we compare the content. If let's say an audio file is generated when we save the node again we do a comparison to make sure we are not generating the regenerating the file and necessary we compare the content. See if there are any changes there if there are no changes we're not we're not going to be regenerating the file but if there are changes then we will generate the file. So we do have we do keep a hashed version of the content. And then we compare it when we save the node to make sure that we are unnecessarily not you know regenerating the MP3 file. And yeah that's that's about it. I'm just making sure that I haven't forgotten anything else. Yeah, that's that's about it so it's it was really good experience and even though there are some commercial alternatives to Amazon Poly that offers a lot of features but I think in terms of pricing in terms of customization. I think it was really good choice. And it was really good to see that we have now tools that allows you to, you know, basically provide more accessibility because when you have the main use of text to speech is mainly for accessibility also for, you know it's more user friendly because if you have a long article, you can just listen to it instead of reading the whole thing. You can use it also for broadcasting mainly this one of the use cases of Amazon Poly to support broadcasting where you can you can create the article on your blog and then convert that to audio file way and then you can stream that audio file as a broadcast. So it's really powerful feature and yeah it was fun to work with. And so any questions. I did have a few questions as we went along. I think you answered many of them which is good. I was just going to ask about use cases that you mentioned the podcast. And the other thing I was going to ask was about accessibility right so this was, what is the main intent for this for the for the client. Yeah, for the client was mainly because they was mainly because actually some people, they're reading skill, especially in non English speakers native speakers, they're reading skill might not be as good as they're listening, or in terms of comprehension I think so they they understand better when they listen to things so that's why we have this feature, especially because it was a parent from the corporate crisis that you know publishing announcements, not everyone can understand what the content is because maybe the reading skill is not up to, you know, the level X. So, yeah the audio file makes it easy for them to listen to it, and maybe that will help them understand the content better. Yep. That's cool. And I was going to ask about slang and other kind of words but I noticed that you had the lexicon there so I suppose you could add, you know, whatever terms you wanted to so that it would be there right or does it just read through. Yep, so you can add, you know you can add different lexicon and, as I mentioned also for acronyms for example, right, you can do it here. Also you can do it in Drupal, for example, where you can configure like your alarm, we didn't have that option here but we can have an option where when you send the content you can also send or use SSML to Yeah, around acronyms and stuff like that. So it's really a powerful tool. Yeah, it's cool. I had just one more question or just around again. For accessibility, can this be used to create, or I suppose it would be right to generate audio transcripts effectively that's what it is right. And it's actually supports creating for video files so you can support here. It supports creating transcripts for video files so you can, and it's interestingly they charge a bit differently for the video than the audio but still the pricing is really, really good because they do offer up to I believe 16 million character within the free type. So you have the free, free usage and on top after you finish the free user then they will start charging you so I think the bill for this particular client maybe like the month will be less than $50. Yeah, for the amount of usage they use right now. And one thing we also provided is a way to bulk generate. I believe that that module is not enabled here but we did offer another thing which is you can both generate the audio file for multiple content from here to for patch processing. Yeah, this is the last thing I was going to say is just that I think it's interesting because one of the shortcomings it's very difficult to get triple a rating for for accessibility on sites is normally comes down to the cost of getting audio transcripts for instance because someone's actually going to write and someone's actually going to spend the time to talk it through, especially when you have media releases which could be several pages or or a video right. This would be a very powerful expose cost effective way to increase and narrow that gap to get to triple a I think it's cool. Exactly. It's really cool and it's again the pricing the best thing about the pricing is bear character, and you can have pay as you go. So it's really really good like, as I mentioned at three hours, 23 hours is video or like audio file also like a million characters equals 23 hours of audio is only $16 if you use the most advanced mode which is the neural mode. But if you use the standard one is only $4 American dollars. So it's really it's really cost effective. And, and the good thing about this one is you have fully customization so you can, you can determine what you want to send, and how you can process it, and then you can also use other services in Amazon to complement the whole package. So you can do all the processing right now we're doing in Drupal but you can do the whole processing in Amazon, and you just get the end file and just publish it in your site. Because S3 is a public place, you can actually use this file in other sites, you can use it in your own let's say other services, you know because everyone can access the S3. That's what I was going to ask. That's my question before. Is there anyone else that has any other questions. Yeah, obligatory question. Since this is a Drupal module, is it available for anyone else to use or is it specific to this client or Our goal is definitely to contribute this. Yeah, this module back to the community. So that's our goal and and when we worked on it to be really focused on having it really self contained so everything, the audio player everything is within the module. So, it will require some polishing but I believe we can definitely contribute this one back and the client. Yeah, and the client is a believer in open source as well. Thanks. Anyone else. Okay. Well, thank you very much for that. Yeah, that was excellent. That's actually quite interesting and I can see so many uses for that. That's pretty cool. Stop recording here. Thank you.


The subject for today's video, like the last one, sadly has emerged from Twitter drama. In my last video I disavowed a movement that has called itself post-libertarianism, and this time I find myself agreeing with post-libertarians on this issue.   Neither are true. Both sides are reasonable, and while I'm going to defend my particular side here, I'm going to give credit to the other at the end by steelmaning their position and showing where I think it fails. So the drama emerged when Thoe Bishop quoted Rothbard, who said the following in his article, a programme for right-wing populism, part of his paleo-strategy in the 1990s of trying to unite libertarians with the old right, as they're called, who wanted to reverse the policies of early 20th century politicians like Woodrow Wilson and FDR. He wrote, Take back the streets, get rid of the bums. Again, unleash the cops to clear the streets of bums and vagrants. Where will they go? Who cares? Hopefully they will disappear. That is, move from the ranks of the petted and costed bum class to the ranks of the productive members of society. I mostly agree with Rothbard on this proposal, as well as Thoe Bishop and people like him who've been defending this on Twitter for the last few days. I'm aware this seems extremely confusing with how in my last video I was harshly criticising the movement which he has aligned himself to and it's easy to see why people of that movement find this particular position justified. Like so many confusing positions that I find myself in while discussing libertarian theory, I can quickly disentangle it using one crucial thing, property rights. My issue with post-libertarians was that they praised the violation of some property rights in the name of stopping other property rights being violated. But this situation is different as we have a clear view of one group whose property rights are being violated and another whose only property is their body and they often find that body in the position of trespassing on someone else's property. And so begins my explanation. Government property is illegitimate. It is either obtained by confiscating land and or materials without consent or rightful claim or the land and materials are purchased using tax money collected through theft and coercion. Either way the ownership and maintenance of property by the state is done only through force and is not legitimate. The government does not rightly own anything or even have a right to exist. I claim this, Rothbard claims this, Hopper claims this, I'm hopeful that Thoe claims this unequivocally and I will never claim anything different or promote any idea which insinuates that government ownership is ever justified. But now let's ask two questions. Does the government exist? Yes. Does the government hold and maintain property assuming ownership? Yes. With this reality in mind let us ask ourselves if anything can be done with this property in the meantime or if we as libertarians are supposed to just sit on our hands and do nothing hoping that one day the state just vanishes and then we can finally get to work. If you're a fan of Michael Malice you should already be well versed in dealing with hypotheticals and not being so autistic as to answer actually both are bad. If you had a button in front of you and every time you pressed it one million dollars were diverted from the ATF's budget to fund government housing what would you do? If you wouldn't press it or at least press it as many times as it took so that all the computers, AC, vehicles and police equipment in all ATF offices across the US had to be removed leaving the agency completely unable to function then quite frankly you are useless to the libertarian cause and unless you removed every single dollar from the ATF's budget you're hardly much use at all. We could of course go on forever about how terrible in quality, efficiency and calculation that government housing projects are but if you don't have the sense of scale to see that every dollar which goes to the ATF is significantly more harmful than towards the production of those houses you need a good long think about what you stand for and how you deal with it in reality. These hypotheticals are extremely valuable in shaking up the lack of scale that libertarians can often box themselves into and they get you in a state of mind ready to deal with real issues in a serious and nuanced way. If we don't do this then we are a movement who will never actually do any moving until our objectives are already achieved. How do you achieve your objective when you refuse to move towards it? That's anyone's guess. We can ponder as much as we like about the perfect way that things should be done but we can fall into the trap of only doing this rather than also looking outside at the imperfect world and trying to make it better. If something can be done with government property whilst it is illegitimately held we need to explore what is preferable and to what ends. I'm going to defend the view of Hans Hermann Hopper that this property can be justly steered towards emulating the likely management which would occur if it was held privately as opposed to being left entirely up to the discretion of petty local council politicians that the ends it should be steered towards are that of a low time preference libertarian social order and away from a hedonistic leftist egalitarian one and that the ones to do the steering are taxpayers who by their position of having their money forcibly taken to maintain this illegitimately held property they have preference in its use and management over those who do not have money forcibly taken for it. Let's consider a library. It's a building illegitimately owned and managed by the government on a piece of land which is the same and filled with property which is the same. The purpose of this building is for people to go in and read or take out books in silence. The government claims it is a public good meaning it is open to absolutely anyone and nobody can be discriminated against entering or excluded from its use but there are two easily unequal groups here those who have taxes forcibly levied from their wealth and income to fund the library and those who do not. Already with this inequality egalitarianism and public good theory shows itself to be an illusion. If there were 10 taxpayers in the library and a homeless person out of their mind and high on self-destructive hard drugs were to enter the library, scream nonsense, crap on the floor and knock all the books off the shelves egalitarianism would say they have just as much of a right to use it in this manner as anyone else. When given this scenario I doubt any egalitarian would actually agree to this in which case they are not in fact egalitarians because once again it is an illusion. The managers and tax-paying customers of the library have more of a claim to use this property than someone who is unemployed and does not pay taxes. This greater claim however is not a total immutable claim. This is not to say that taxpayers have the same property and occupation rights as an owner, shareholder or even customer of a private business but their claim is greater than a non-tax payer and as such they are more entitled to the use and exclusion policies of tax-funded goods and can within reason remove people undertaking behaviour that they find intolerable. This does not mean that any unemployed person is not allowed to enter or use this property but that their being in and using it is contingent on the tacit permission of the other class of people involved. This class is the tax-paying class and as I have stated their forced funding of this service gives them priority and preference in its use the same way that a paying customer of a private business can very reasonably expect to be treated with preference over a non-paying person. I said that the ends which should be steered towards are the ones of a libertarian social order which is one of low time preference, high trust, common decency and personal responsibility. It is an unfortunate truth that homeless people and egalitarians are extremely highly predisposed to enable the opposite of these values and prevent the environment necessary to breed acceptance of libertarianism in the minds of its people and this acceptance is contingent on nothing more than a cohesive civil society. It is not an inherent trait of being homeless that such a person should be a drug addict, belligerent, destructive or highly likely to commit the crimes of theft, assault or trespassing but as a result of their environment these results have a great likelihood. Do not think for a second I would not rather that such a person was not this way that they could be helped and rehabilitated that is without a shred of doubt the optimal turn of events but when a person is being subjected to a disturbance or crime by a vagrant giving them a leaflet for the local homeless charity will achieve absolutely nothing. As long as they can come and go whenever and wherever they please on property illegitimately held by the government and proclaimed to be public the incentive to stop engaging in destructive and hedonistic behaviour is a lot lower than it otherwise would be. This gets at the last portion of Rothbard's point that these homeless people would hopefully disappear in air quotes not literally meaning dying or disappearing from the face of the earth but meaning the homeless people would disappear by transforming themselves from their state of self-destructive homelessness and into being a productive member of society. How this happens should not be an area that is hand-waved away imagining that a homeless person can turn their life around without any assistance. A society in a libertarian social order should have the moral fibre to help a person in such dire need but of course you can only help someone who is first willing to help themselves and you cannot subscribe to the egalitarian myth that they have just as much of a right to use something like a public park as a taxpayer and their family. To summarise my position state property such as public libraries and public parks should absolutely be privatised and managed as the private owner chooses but they're not so rather than doing nothing we should be proactive and try to order the state's management of this property in a way which emulates private ownership by enforcing standards that we would expect any private owner to do. While the property rights here are not perfect one group has a greater claim to the property than another and they should function as shareholders being allowed a degree of executive control and expected to use this control in a way which builds a healthy social environment and decreases reliance on state ownership. This is in the benefit to libertarians trying to achieve a better legal system and social order to a huge degree. How the taxpayers would do this via a vote or some other form of moderation is a topic I leave open for other people to come up with answers for but now I want to discuss some genuine concerns and detail an opposing theory and then say why the one I've defended is better. So we need to remember who Rothbard said should be the ones unleashed. Cops. But we should also remember the point he made prior to this one in the same paper.  Cops must be unleashed and allowed to administer instant punishment. Subject of course to liability when they are an error. Let's say that part again. Subject of course to liability when they are in error. Wouldn't that be nice but we have to acknowledge it is at present not likely. Rothbard did write this paper to unite libertarians and the old right and as we have seen ever since early 2020, making right-wingers get on board with police accountability has become extremely easy once the lack of accountability actually starts to affect them. We Hopkins especially should hammer this point home endlessly if we discuss the topic with anyone on the right as they're likely to agree by default on the other issues. Achieving police accountability for a very long time seemed to me as totally impossible due to the blocking of it by conservatives for which I've chewed them out on this channel many a time but thanks in no small part to the fantastic work of the previously mentioned Michael malice frustration with and animosity towards government law enforcement from the right has begun to take off but consider another point with a nuanced hypothetical if somebody broke into your home and you had no way at hand to defend yourself should you do nothing at all or call the police probably call the police yes you run the risk that they'll show up 20 minutes later be useless at best or actually shoot or arrest you at worst but there are legitimate reasons to use state protection services as there is to use state roads and as much as we meme it driving on a road does not mean you aren't a libertarian in the industries of protection services for the civil populace and road management the government has assumed itself an illegitimate monopoly by doing this they force you to pay for it whether you want it or not and by forcibly taking up so much of the market share of these products it guts the competitive edge of the private sector shrinks demand and therefore supply making private alternatives rare and very costly this is not your fault and while it is preferable to take the private alternatives if you can afford it on top of your taxes which the government doesn't let you opt out of then you should but if you are an average person who pays taxes and needs some muscle to protect yourself your true property or state owned property which you have a greater claim for you're going to use the police and that is absolutely permissible state police should absolutely be abolished as should state property but while they are here you are entitled to use them if you fund them involuntarily and have preference over those who do not if you call the police and they act in error it is their fault not yours now the good theoretical rebuttal comes from blocky ins as i'll call them as in followers of water block lots of agorists have taken up the fight against hoppians in this drama but frankly they often end up just making fools of themselves most of the time and have little to add but saying cops bad as if this is news to us what agorists and blocky ins do defend is a nearly identical homestead principle and the homestead principle is indeed logical legal and libertarian acknowledging that state property does not actually have a legitimate owner it could be considered exactly the same as abandoned property at that point it can be homesteaded by the first person who gets there and wants to claim it so for hobo sleeps in a state owned kids playground they have homesteaded the available property and become the rightful owner but here's a problem with that as a solution the government does not give a shit about rightful homestead principle and to be honest neither does the hobo it's quite absurd to imagine walking up to a drug adult half conscious homeless person and saying to them how do you do fellow libertarian i see you've done a mighty fine job homesteading this vacant property would you like to trade my pen for one of your cigarettes and then getting an intelligible response back from them then after that the government would just enforce its illegitimate claim and kick them out anyway and you've achieved nothing my point there doesn't refute the homestead principle theory it only calls it impractical and useless undercurrent conditions but the homestead principle also does not refute my point that a taxpayer has a greater claim than a non taxpayer while the government does enforce its illegitimate claims this emulation is the best way to start working towards creating a society where the homestead principle is actually used and respected if we don't take these steps then it will remain useless and these steps are supported by the just principle of differing strengths in property rights claims i think i'm going to leave it here i hope this explanation will bring some desperately needed maturity of understanding of both sides of the argument as it has turned into an emotional playground fight for the most part my recommendation for you now is to go on spotify where you can listen for free to the whole audiobook of hopper's grand slam book democracy the god that failed to develop a greater appreciation of the concepts i've talked about such as time preference libertarian social order and private property emulation for now take it easy