So this is my talk, Exception Groups and why we need them. I'm gonna tell you about a new feature in Python 3.11 that's gonna come out in October. And it's called Exception Groups, a little bit about me. Like he said, my name is Orhan. I come from Israel. I work at the security and I've been doing Python since the military days six years ago. And then I continue to do it in the next six years in my last three jobs. And the weird thing about me is that I love exceptions. Now that might be weird to you because you link exceptions immediately to the problems that you had. Exceptions are a tool essentially that tells you when a problem has happened and it lets you both handle that problem and debug it more easily. So other languages might not have the robustness that Python has when it comes to exceptions. Python actually gives you a lot of information when it raises an exception. As you can see here, you can see the type of the exception. You can see the traceback and which line it happened. You can see the message of the exception and you can even see the local variables in each frame of the stack where it was raised from. So you can even access that Europe Python variable when you raise an exception that has nothing to do with it. So it gives you a lot of information that you can use. So what do exception groups add to that equation? Why do we need to group these exceptions? Why is one not enough? Let's see the PEP for a second and what it says about exception groups. So as you can see here, it tells you that the exception groups allow us to raise and handle multiple unrelated exceptions simultaneously. You can see a little bit here how they're raised and how they're handled with this except star. These are basically the two main additions to the Python language, the exception group and the except star and we're gonna see how they interact exactly. All right, so let's dig into it. First of all, let's see how we can create an exception group and so you can see here that we create an exception group that we need to pass it two parameters, right? The first one is the L message and the second one is a list of exceptions that we will raise. Okay, you can see that we can even pass exception groups as part of these, right? As part of the list of exceptions. That is because exception groups themselves are an exception. They're an instance of exception, which means you can do anything that you can do with a regular exception with them. You can raise them, you can get their message, you can print their trace tag and you have some additional things too. You can see the list of exceptions. It returns the tuple of exceptions and it has some additional methods. For example, this subgroup method will return to you all of the different value errors that were in the exception group or in nested exception groups as well. Okay, this is not supposed to happen. Okay, so now we have exception groups but I'm gonna show you why it's not enough, okay? If we will say, okay, we have some case where we need multiple exceptions, let's assume so. For example, you have this classic function, Smerson Tuesday and if it's Tuesday, it will raise an exception group and otherwise it will raise a normal exception. Now when I handle exceptions, I need to know every time is it an exception group or is it a regular exception that adds this is instance to my code everywhere and it's a bit messy. That's not what we really want to do. We don't want our code to look like that. What do we do? We have accept star. Accept star, we look inside that exception group and it will extract part of the exceptions that match on what we give it. So this accept star memory arrow will only catch the memory arrows out of the group. The rest of them will continue to be raised. But since we have two accept star clauses here, both the accept star memory arrow and the accept star connection arrow, they will all be caught right here and as you can see, we actually enter both of the clauses. This is different from the regular accept where you can only enter one of them. Here you can enter multiple of them and that means a couple of things. First of all, you can't return or break or continue while you're inside an accept star clause because that might hurt the other exceptions that are being raised. So there's a limitation on that and let's see what's more. When we raise a regular exception, it will also be caught in accept star clauses. There is one difference though than a regular accept and it is that this exception will be actually inserted into an exception group. As you can see, accept star actually returns an exception group with all the exceptions that matched. So here you will still get an exception group even though you raise the normal exception. Now you don't need to check in accept star clauses if it's a regular one or if it's a group. It's always a group. Okay. Let's see some use cases. I mean, it's nice, sure exceptions in a group but I guess you've all been coding for some time and you never used it and why do you need it actually? Let's see some use cases. The first one is retries. Do you have some retries in your code who here has retries in their code? Okay, that's a lot of people. So right here we're gonna see an example. Let's assume you have some retry that is from a library. Okay, so you can't actually touch the exception handling yourself and it wants to get some URL. It gets the number of retries that it wants to do and then it will try to get a URL every time that it fails. It tries again until it gets to the third time and in this case and then it will raise the last exception. Okay, so what is the problem here? The problem is that we don't see the former exceptions so we won't be able to handle them in case we want to. For example here, let's assume that it returns us authorization error twice and then too many requests. Okay, I'm not sure why it would do that but okay. Now if we try to get that URL and then catch authorization error, we wouldn't catch it, right? We wouldn't know that we need to log in afterwards. But let's see, illustration, let's see how we can use exception groups to improve that. So we will now have a list of exceptions and each time that we do get an exception we will add it to that list and eventually we're gonna raise an exception group with all of these exceptions. Outside we have changed to accept star and then it will actually catch that authorization error when it happens. It will actually catch both of them, put them in a group and do the log in. Okay, the tome requests will continue to be raised. It's still an error that we need to catch but it does the log in like we wanted it to. The second use case is a bit more complicated. It has to do with the async.io and it's actually relevant in threads, in sub-processes but I've gone with async.io in my example. Who here knows async.io just a little bit? Okay, that's pretty good. I'm just gonna go one minute about what it is and how it works. Async.io lets you run a code concurrently. So it lets you run multiple functions at the same time. Basically you have coroutines. Coroutines are defined with that async keyword before the def and when the coroutines are called they are not immediately executed. When they are called they return an object and we can later await on that object for them to be called. Now we can inside these coroutines also await for some blocking operations for example and in the meantime other coroutines will be executed. Okay, so in this example we create two coroutines. We print it to running both of them. They're not immediately executed and then we await on async.io gather. Async.io gather is a function that lets you await on multiple coroutines basically. So we pass it both coroutines and then they will both be run. Okay, so let's see some example with async.io and let's see what is the problem that we currently have when we run this code. So we create coroutines. We then put them create tasks out of those coroutines. Tasks are like coroutines but they're higher level objects so we have an easier interface for interacting with them. For example, we have that exception method that returns us an exception if one occurred. And now after that we're gonna use async.io wait to wait on those tasks. It's kinda like async.io gather so we can wait on multiple tasks but it returns to us two tuples. The first one are the done tasks and the second one are the pending tasks. Okay, the ones that didn't complete yet. So the coroutines themselves what they're gonna do is they're gonna select one of these arrows based on the eye that you give them and then raise it eventually. And now assume we want to check if any exceptions happen and then handle all of these exceptions. So we now need to iterate over the tasks. We need to check if they had an exception. If they did we will raise that exception and only otherwise we'll handle the task. Now it's a lot of code. I mean all we wanna do is just handle some exceptions, right? Also it's pretty indented and that's kinda ugly. And also we have to raise them ourselves, right? We need to get the exception object and then do the raise ourselves. I don't wanna do that, I want Python or that function that I'm calling async.io wait or something like that to do it for me, right? But it gets actually even worse. Let's assume that you want to stop after the first exception and you would probably wanna do that because you don't wanna waste resources that the coroutines that are still running are wasting. What's gonna happen is that your pending tasks are still running, okay? So after you return from the exception that you got and you now need to go over the pending tasks and cancel them. After you cancel them, even that's not enough because you then need to do async.io wait for them to run for a little bit. Now we want them to run for a little bit because they might have some finally close. That finally close will only be called after that async.io wait is called, okay? I actually didn't know that and I had to fix some bug in my code when I first learned about it for this lecture. So that's all of the code that you need just to handle the exceptions. But I just want to handle the fun parts, right? I want to only see that happy flow, hopefully. Okay, so let's see how we can do that. Let's implement another version of wait ourselves that uses exception groups. Okay, so as you can see, I will now await on this wait instead of async.io wait. And in this wait, I basically implemented what I implemented before and I can use anywhere for my code, I can use this wait function. It will go over the exceptions and it will raise them as an exception group this time. This is the key difference here. Then this exception group can be caught with accept star like we've seen before. And then handled as we see fit. Now, there is one issue here that I have with this code and it's that I don't want to implement wait. I want something else to do it for me. I want it to be some part of a library, preferably the standard library. Well, we're in luck because the Python gods have been good to us and we have exception groups, task groups, sorry. So task groups are basically the new way to create and run tasks. What they do is we use a context manager async with the async.io task group and then we create tasks on the task group and when we exit the code block, all of the task group will run. After it runs, if there are any exceptions, it will raise an exception group for us. So eventually in the main function, I only need to call the run task group and handle the exceptions and the happy flow can all stay inside the run task group method. So that's much cleaner than the earlier iterations that we've seen of it. Okay, so we got to the third and final example. Errors in context managers. And let's see the problem. So we have the main function. In that main function, there is a context manager that we use, a time reporter. It's gonna report the time that this code block has taken and what it's gonna do inside, that's the business logic that we have and we're gonna divide one by zero. I'm really interested in the result and outside if I do have a zero division error, like I should have, I will print a business logic error. Okay, there is only one problem here and it's the time reporter itself, the context manager, also raises an exception when it exits. When it exits, it sends a report and this report doesn't have the connection to the log server or whatever it wants to report and it raises a connection error. So what will happen is that we don't actually raise the zero division error. We won't catch it because what we can raise is the connection error. You can see that it is chained here and there is that zero division error in the message in the trace back but you will actually get a connection error eventually. So let's see how we solve it with exception groups. So now the exit function will catch any exception that it gets and if it does get exceptions, it will raise a group with these exceptions which will contain the original error that we have and the new error and now we can actually catch both exceptions or part of them. So here I only catch the zero division error and eventually I'm printing out business logic error like I wanted to in the first place. Okay, so the other error of course is still raised but that's fine by us because we didn't catch it. And any questions? Any questions online? So we got one in the room, go ahead. Hello. So thank you for the introduction and I have questions you mentioned early and we also saw that in the last example that if you have an accept star you will basically have a fall through and all the other exceptions you're not catching will be re-raised, right? Like you are only catching the zero division error and then you are letting the exception group. The rest of the exception group will be continued to be raised. That's okay, this example will be applied but in the early example you had we are basically switching from a regular exception to a group and then we would not basically catch the other errors. In which previous example was it? Yeah, I think it was. I think I owe or? No, before that early slides. So you had like basically two accept star and so for the context. This one. Yes, yes, this one. And so basically what would happen here if we have like another type of exception that we don't see but we don't want to bury it up elsewhere, right? You don't want to propagate the rest of it? No, yeah. You can use accept star exception or even a base exception and then every other part of the exception group will go to that last exception. Can you also do an accept star on exception group to catch the overall group? Accept star and exception group I think it's this allowed because it's kind of confusing. But you can use, and you can't use accept with accept star. Yeah, you can combine the two in the same clause because it's also pretty confusing. So basically the way to make sure you will catch everything here would be to use a basic exception. Accept star exception. Okay. Okay. Thank you. Let me just check. Are there any questions online? Okay. Hi, it's actually first time I see this accept star and exception groups and I wonder if there is the same effect as sort of with async code now that wherever you have async code in library it sort of poisons everything up and I have a feeling especially the last slide that you showed now you actually have to have the accept star to handle this exception group that let's say this library codes introduce. So is this the life for us now? Do we have to always expect libraries to give exception groups to us? Like do we have to change our whole thing and always put stars everywhere or like how do you feel about this? Great question. So basically you don't have to use exception groups as long as you don't have exception groups you don't need to use accept star. But if there is a library that raises an exception group you can if you want just use the regular accept with accept exception group because exception group is a type of an exception and you don't have even to use accept star and does that answer your question? No, let's say that you are sloppy Python engineer and you just do accept exception not exception group and what if the library code actually throws an exception group? What happens then? Like exactly what you have at the top you do just normal accept exception, right? But let's say that the main is actually a library code that throws an exception group. What happens? So the accept exception will catch an exception group. Okay. Thank you. Thank you. Just a quick one. Do you think it makes sense to subclass the exception group to like define your own or is it more intended to be like... Definitely, definitely. Yeah. You can subclass exception group the same you would the exception and maybe you would want to do an exception group of a certain type and then you'd wanna catch that there specifically. For example, a value error exception group and then you can do a regular accept of value error and maybe you would add some attributes to value error you could definitely do that. Right. So for all intents and purposes you can just use them as you would use exceptions, except they have a place where you can just... Where you can go only to a part of the exception group or... Yeah. All right, thank you. Thank you. Thank you for the talk. Because this is going to require Python 3.11 specific syntax, the accept star. Do you see that as an hindrance for library maintainers to implement it because it means that code is going to work with 3.11 forward? I'm not sure I understand. I think it's an hindrance because by the time that the companies are gonna start using 3.11, 3.14 is already gonna be out. And that's the main thing. But what exactly did you ask? So say I'm writing requests and you had a great example with a re-choice there where instead of bubbling up the last exception you can bubble up all of them with the accept group. If I'm the maintainer of requests and I want to implement that for my re-try function, am I gonna be unable to do that until I drop support from Python 3.10, Python 3.9, Python 3.8? Yeah. Yeah. Okay. Basically, yeah. Thank you. Thanks. Okay, any other questions online? Arun, go ahead. Yeah, related to support, do you know if, or was it part of a PEP that exception group, the type of exception, will be back-ported and will be available from Futures, for instance? It might be, I'm not sure, actually. Because there is nothing against using that in common versions, right?  I guess it's possible, but not sure. Okay. Thank you. Oh, a teeny bit ahead of schedule. So if there's any last question either online or in the room, feel free. If not, let's thank Or again for a fantastic presentation. There was certainly no need to be nervous. Thanks.


Time here for more systems. We're going to talk about PF sense versus untangle and which one you might want to get now I've done comparisons before I've done videos on both of these products. These are both products We've used and no, I don't have the time necessarily to review your favorite firewall So I know this question is going to come up and people always ask right away Can you review insert name of firewall and talk about that one? I'm talking about the ones that we actively deploy and use because well It's better than a review of I opened it. I tested it at worked This is we actually deployed these at clients and I can tell you how they performed type of review and type of information I'm going to give here before we dive into which one you should choose Let's first feel like to learn more about me or my company head over to Lawrence systems.com If you like to hire short project, there's a hires button right at the top If you like to help keep this channel sponsor free and thank you to everyone who already has There is a join button here for YouTube and a patreon page. Your support is greatly appreciated If you're looking for deals or discounts on products and services we offer on this channel Check out the affiliate links down below. They're in the description of all of our videos Including a link to our shirt store. We have a wide variety of shirts that we sell and new designs come out Well randomly so check back frequently and finally our forums forums Dot Lawrence systems comm is where you can have a more in-depth discussion about this video and other tech topics You've seen on this channel now back to our content and I want to start with my features chart that I made Earlier this year comparing a handful of different firewalls and yes corrections have been made because there was a policy about the L2 TP VPN And I didn't realize it had support I had got that wrong and I updated it the chart matches the video has me saying I one of these firewalls doesn't support it And I don't know which one it was but I'll leave a link to that video Anyways the operating system that each of these are based on and we're only going to focus on the neck eight PF sensor on tingle Unfortunately, I've done videos on this. We just don't use anymore really any of the US cheese UDM's For people who need anything more than basic routing watch that video and much I'll leave a link to the video where I discussed some of the shortcomings of the USG including the lack of Ability to put multiple LAN IPs on there that still exists right now in October of 2020 They still have not gotten around to updating that request from I don't know four or five years ago So we're going to focus on neck eight versus Untangle or PF sense versus untangle and I bring up neck gate because it's a interesting way this works So PF sense is a hundred percent open source That's at least the very first thing that's going to be different despite someone in the comments It'll get their caps lock on it told me that PF says doesn't feel open source even though they give you the source code they are Legit and open source project no matter what your misgivings are about the company neck gate and neck gate is the hardware provider and The support team for the PF sense system so even though it's open source the business model is selling some hardware and Offering support and that for the PF sense product via the neck gate company So they do give away 100% of the source code you can have all of it and that's this product right here This is specifically for wanting which one this is they'd review of it. This is the SG 2100 Now untangle is also based on open source But you can't have 100% of every feature open source and free untangle has licensing fees attached to it And that it sometimes is enough difference where people have stopped watching and going alright That's it. I don't want something that has any recurring license fees But untangle look leave a link to my recent review of it They do have a free version Which does not have every feature that untangle offers and I break that down and they have links on the website where they Tell you what you get for free and what you get for a subscription and they also have hardware appliances And I'm going to be reviewing this one soon, which is one of the untangle E-Series firewalls that has the Wi-Fi built in so they both offer If you're not interested in trying to roll your own hardware because they both support that or you can just load This on your own hardware and you want to just buy something turnkey from either company You can do that or you can load the software on either company and license fees still apply over at untangle And well the net gates open source net gate slash PF sense PF sense project specifically is fully open source Therefore you can just download and load it now. Let's run down the features Free BSD versus Linux that means that you're going to have a difference in hardware support. So that's something to think about Free BSD is a really really secure and solid operating system and so is Linux But there is definitely a difference in hardware support now It's not that hard to find network card to support free BSD But it's worth noting that there's probably a broader range of hardware support You'll find in Linux and BSD is still really solid, but it's just of note and any time you're building a firewall It's not that hard I've talked about this for finding these especially if you're going to use Finding these Intel cards that are well supported in BSD and I've seen Linux Like I said, it's a little bit more flexible Centralized management. No, there's not a centralized management offering from PF sense or net gate untangle Yes, they have an entire dashboard that this can tie into but that's part of you know The services you can get from untangle and you're tying into their dashboard It's not like something you can host yourself But it does have that ability to do that for management and for reselling purposes and for license management It ties into the dashboard because obviously it's got a contact a licensing server for the extra features They both have open VPN servers and client options IP sack L2 TP VPN policy routing And this is where the nuances start coming in while I can run down and say yes to the features Let's do a little bit of explaining when it comes to the policy routing. It is a little bit more complex This is why I have so many videos on PF sense It is Capable of doing some really advanced tinkering and policy routing But that means it's also a little bit more complex to do and if you're into network engineering It's generally a more favorable thing because people who like myself have been doing network engineering for a long time Really love all the options and bells and whistles and don't mind the complexity because well We've been doing it for a long time for policy routing on an untangle They got some really simple one-click options for like tunneling a VPN out a certain tunnel traffic There's really some simple things you can do an untangle with a couple checkboxes and not having to understand everything And it does it behind the scenes so while they both support it. I won't lie. It's gonna be way easier untangle Intrusion detection sericata or snort they kind of blend this in an untangle you just get sericata But it's also kind of pretty interface on top versus very detailed All the buttons are able to be clicked and very fine-tuned you can still do that a lot in untangle And but some people like the fact that they've simplified it versus it is going to be more complicated That's why I have a much longer video on how to do it on PF sense versus untangle GUIP filtering This is an add-on inside of PF sense for GUIP and DNS filtering with PF blocker And yes, they have it an untangle as part of just built-in modules web content filtering another add-on squid versus Yes, they have entire web filtering part of their license package Advanced traffic shaping. Yes, they have that when failover not part of the free version Which I find kind of odd But if you want when failover of that is an option that they have over on a tangle load balancing Yes, back to the paid integration Also active directory. Well, I said no, but I know someone's gonna hammer out that well You can have a talk LDAP that can talk to directory or some of the other ways like loading a radio server on a Windows machine that can then bridge the gap So no direct integration is why I said no right here Untangle yes direct integration with their directory integrator tool once again part of the paid services But hey, it's a feature that they have in there both have captive portal Let's encrypt certificates is something unique to not unique to only but definitely a feature that's welcome over at PF Sense and HA proxy I've done videos on combining these two because well while you can run a separate proxy server having an all-in-one box is Really convenient because then you can put your DNS entries and make everything matching You can do a one-stop shop for having all your reverse proxies manage your authentication against it and everything else Now one other thing it's really not on this list But this comes down to some nuance that matters a lot to people who are into network engineering And that's aliases and aliases or objects as you want to build them. It's going to be very from Company-to-company I should say on how they may use that nomenclature and what that means is let's take how we create an object In some of the other firewalls and you know, I've done this I've worked with Cisco I've worked with 40 gate I've worked with a lot of different companies and though have you create an object for ports So let's say I have a server that has a group apart ports that need to be opened up I can create an object that object has those ports in it. That's referred to as aliasing inside of PF sense now in PF sense though, you can also group, you know, IPs you can group ports You can have those ports be pulled from external URLs, which is actually really neat and how pf blocker works So it's basically aliasing objects is a little bit interchangeable If you're using some of the other firewalls that use the object language, and it's the same concept I can group a porch together. I can group the you know URLs together so I can actually have actively updated feeds So those are really cool features that are just kind of missing from untangle And it's not that there's not questions about them and there's an entire forum post I can leave a link to where people discuss that they've requested aliases and it does have some Policies that allow you to group things together, but it's not quite the same And I'll leave that link to discussion because they talk about the nuance differences that kind of go out of scope of this Video, but that is kind of a you know a big thing now the overall which one should you choose though is comes down to I Really like pfSense here and at our office why we're using he proxy. We're using let's encrypt I love all the advanced features I love the fact that I can load the radius server right into one device to handle the Authentication to handle everything and someone's probably pulling their hair out screaming going no those all had to be 100% separate servers for Security purposes and no they don't they don't have to be if you set them up properly and configure things properly You can have one device because if they crack one device They usually have access to the other device because if you have authentication to your radius server built into your firewall And someone gets into your firewall doesn't matter if they have access to a server They have the authentication to get into it, but I'm not going to get to out of scope on that debate They have local directory a local user database You can have so you can still mostly do a lot of the same things here at untangle But they also have their directory connector which then allows you to connect to a radio server and active directory and things like that So maybe that's easier. So while I love all the features that are here I won't lie untangled for a lot of small businesses and especially the home users who are going Tom Just give me the answer for a turnkey easy inexpensive solution Untangles kind of a little bit easier for home users The web filtering comes up quite a bit and I'm going to do a deep dive soon into Untangle and their home user addition and review some of their hardware And I wanted to do this because for people that seem Daunted and a little bit scared of loading up a pf sense I mean I've done all these tutorials, but yes My tutorials are fairly in-depth on it because it is a more complex firewall to deploy versus untangles kind of a next Yes, next. Yes, cool. I got the firewall I bought a turnkey piece of hardware and I checked that box for web filtering I bought my license fee to enable all of that and yes it does have a recurring license fee annually, but the home user additions only 50 bucks a year and People go I just needed my kids, you know, not to wander the internet in places where I needed good Reporting and this is one of those things that's kind of nuanced as well the reporting and untangle is definitely really really good and There are third-party ways to export or playing with n-top where you can get some reporting out of pf Sense, but no it's not as good watch my recent review of untangle or play with any of the demos yourself and untangles Reporting is definitely superior to pf senses. There's no argument about that But like being able to play with pf top and dive into sessions. I still kind of like the way pf sense does it and to me, you know forwarding Packets and all the little advanced videos that I have on pf sense still make it to me something better for network engineering But untangle still makes it easier for the majority of end users now the one last thing I'll comment on is things like transparent bridging in some of the reared one-off cases That's something that you can really customize and I've done videos on with pf sense and untangle well less or so But then again, who's doing that? Well, it's an edge case It's not that common and what about the web filtering with it not being in pf sense It's someone's gonna hammer out that I love squid and I don't like squid on pf sense I don't find it to be the smoothest of integrations. I have My reservations about anytime you get a load SSL search and do inspections because it just causes Issues with many applications that don't like having extra search installed And it does open yourself up to potential more threats because now you've got something added to the trust of that particular system and They both have support for doing this. It's just not my favorite way to implement it the basic web filtering that comes with Untangle actually works quite well without doing any type of certificate install Which is you know, like I said something I do like in end users and home users So hopefully this either made your decision a little bit easier and not too much harder But I we see if you're you know more into learning the network engineering You're probably living over here to the pf sense side of the world. Will you load it yourself or buy the hardware? Whichever works for you and if you're going I'm just a home user time and my focus is on you know Software development things like that, but I don't want the kids wandering internet And I'd like to separate my networks and I have a solid firewall That's not some junk consumer thing and I don't mind 50 bucks a year for a home user or even their reasonable prices for small businesses Or if you're an IT provider and you're looking for that, you know Central dashboard management, which everyone seems upset pf sense doesn't have then you can look over here in the final Because someone's gonna ask this question will Tom if you deploy neck eight and pf sense at your clients How do you handle any web filtering and I'll answer that question once again? We use a solar wind stack and load endpoint management because firewalls are not substitutes for endpoint control and endpoint management for things like web filtering So that is right now what we're doing in October of 2020. We're still using solar winds with our clients that we deploy Netgate appliances on for the firewall. So just gonna clarify that question because I don't think I've posted a video about firewalls Where that question doesn't get asked so I'll leave links to videos. I've done on both of these products And you can check them out for yourselves fold disclosure We are in untangled reseller and part of their partner program just FYI But all this was just me doing the video. There's neither company gave me any input about this video I could have disclosed at the beginning, but there's not really anything to disclose about that. All right. Thanks And thank you for making it to the end of the video If you liked this video, please give it a thumbs up if you'd like to see more content from the channel Hit the subscribe button and hit the bell icon if you like YouTube to notify you when new videos come out If you'd like to hire us head over to Lawrence systems calm fill out our contact page and Let us know what we can help you with and what projects you'd like us to work together on If you want to carry on the discussion head over to forums not Lawrence systems calm Where we can carry on the discussion about this video other videos or other tech topics in general even? Suggestions for new videos. They're accepted right there on our forums which are free Also, if you like to help the channel in other ways head over to our affiliate page We have a lot of great tech offers for you and once again, thanks for watching and see you next time


What's up everyone? It's your girl, Kenzie here from Leighton Sports Cards and I'm Rapid 2022, top five star baseball hobby, eight box case break number 28, random divisions. There's a look at the random results. Again, you can always find those at leightonsportsfarms.com underneath the results tab and the link is also in chat for you. Might need the case, huh? All right, here we go. Good luck everyone. Thanks again for the fill last baseball break of the day for the daytime. We're moving into some football after this, mosaic. Again, we are all sold out for daytime. Force has group breaks again, starting at 5 p.m. I do believe his personals are full. So if you order anything, now it'll most likely get ripped with me tomorrow morning for Sunday daytime personals. Here we go. Good luck. Solid last case, let's see if we can get out of this one. All right, starting off. We've got rookie auto to 75, Cal Raleigh for the Mariners. Mariners getting the first hit here. I like the design with that green. 70 out of 75, kind of a color match there for the Mariners, AL West. And we've got nice, how about a Johnny Bench? Going to the Reds, NL Central, classic. Johnny Bench, good start to the case there. We've got rookie auto for the Rockies, Ryan Vallade, NL West, Ryan Vallade. And AL East, we've got a Nomar Garcia Para. Red Sox, Garcia Para. Got rookie auto, Tyler McGill, going to the Metz, NL East. Going back to the NL Central, we've got purple, 7 of 50, a Joey Vado. Nice one there, Joey Vado. Feeling something, I feel like a bad barrel or something crazy. That'd be something, though. We have rookie auto, oh wow. Luis Gill, Yankees. Yankees, Luis Gill, rookie auto. AL East, next one is nasty. Who's got him? Going back to the AL East, Regina A. With the Patch Auto, 6 of 10, Vladdie Guerrero Jr. That is sick. Looks like part of the B on Blue Jays. That is a beauty. Congrats on that one, Regina. Army Patch Auto, game used too. Very nice, we will mag that one for you. Vladdie, all right. Heaten up here. Here, we've got Golden Grafs, Nelson Cruz, 15 of 20, Tampa, AL East, Regina. Heaten up, Golden Grafs, sign that, very big too. Nice hit. And then we've got a Chipper Jones, going to the Braves. Wow, and AL East on that one. Scott U on the Chipper. Sick, looks like we might have a redemption here. Oh, redemption's right on the top. Not looking, not looking, let's slow it. All right, let's see. Five Star Base Auto of Gerendran for the Red Sox. There you go, Red Sox, AL East, Regina. My goodness, this next card is filthy. Current Reds, oh, there's one current. But Red Sox Legends here, going back to Regina. Triple Auto, four out of Stremsky. Big Papy Ortiz and Rapid Devours. Wow, sick. Congrats on that one, Regina is absolutely killing this case of the AL East. Wow, Triple Auto, all on card too. Nasty, we'll mag that one for you, Regina. Sick hit. That's what I'm saying, Rich, right? Regina's killing it. Couple boxes left here, let's see what else we can get. Let's see another Triple Auto. Oh, we got a Golden Graph here. Eight out of 10, Robbie Ray for the Mariners. AL West. AL West. In back to back cases, we got this kid. How about an O'Neil Cruz, Rookie Auto, and Al Central. Namcoo, Al. There you go, Namcoo. Nice, O'Neil Cruz. Of course, Regina, that's a heck of a hit. That Triple Red Sox. The Vladdie, man, forgot about the Vladdie too. She's killing it. We're gonna mag that Cruz. Last box here. I'm gonna drop the insurance link here for you, Regina, in case you wanna add some insurance to your package. Yeah, this is definitely made up for it, absolutely. There's the link for you if you wanna grab some insurance. You got some beautiful cards headed your way. Last box here. We've got Rookie Auto of Riley Adams going to Washington, Nets and AL East. Yep, sure thing. And last hit of the break, we've got nine out of 75 Ivan Rodriguez. Ivan Rodriguez, Florida Marlins. So that will go to Florida Marlins. That's gonna be, yeah, Miami Marlins now. N.L. East. N.L. East, Scott U. Just call him Hudge, didn't they? Is that Ivan Rodriguez? Nice one there. All right, let's go ahead and do a quick recap here. We had Riley Adams, Nationals. Robbie Ray, Mariners. We had Jaron Durand, Redemption, Red Sox. Chipper Jones, Braves. Nelson Cruz for the Rays. Louise Gill, Yankees, a Joey Vado, Reds. Kylie McGill, Metz. And Nomar Garcia-Para. Red Sox, Ryan Vallade, Rockies. Cal Raleigh for the Mariners. Johnny Bench for the Reds. We had the Ivan Rodriguez for the Marlins. Then, few Magged Cards this break. We had the O'Neill Cruz, Rookie Otto. Nice one there, Pirates. I thought so, Mark Pudge, yeah. Now we have the Patch Otto, Game Use Patch Otto, six of 10, Vladigarero Jr. Formus Regina. And such a nasty card. Triple on-card Otto, four of five. Carly Stromsky, David Ortiz, and Rafi Devers for the Red Sox. Also going to Regina. Congrats on those hits. Thanks again, everyone. We got some football coming up in a few.


Storms leave distinctive deposits in the rock record. We're going to start by talking about offshore storm deposits that occur in environments where mud is generally accumulating. So these are quiet water environments and they are accumulating mud between storms. A lot of times these environments will include bioturbation, at least in Phanerozoic sediments. So as a storm approaches, with its waves and currents, the sediment in this environment can start being transported, but it's really at the peak storm that you get the most sediment transport and often erosion. So this erosion is happening at the peak of waves and currents. And in some cases, that can include mud rip-up costs, because the mud is consolidated and it will act like these larger grains. That first bit of the storm, after the peak of the storm, the storm starts waning, or the currents and waves are decreasing through time. So the storm retreating or migrating offwards. So in general, after the peak passes, the ability to transport sediment decreases. And so the course of grains are deposited first and then the finer grains. So often, after this erosion surface, you end up with finding upward sediment at the base of the storm deposit. The currents and storms can persist for long enough to keep moving fine to very fine sand. And this is the grain size that you tend to get the Hamakki cross stratification. So this is the Hamakki cross stratification, and this is a combination of waves and currents from the storm. Eventually, the currents end, but you still often have waves, and you end up with wave rippled tops to these beds. After the storm leaves, the deposition usually goes back to the fine grained mud accumulation here. So starting above this in here. So depending on the size of the storm and the strength of the storm, the deposits can vary. So sometimes they might only contain the HCS and wave ripples. Then go back to the mud. Sometimes they might have some coarser sediments and very little of the Hamakki cross stratification. If, for example, there's a big current and not so much wave activity, there aren't always wave ripples at the top. And then sometimes the erosion is so extensive that you end up with a storm deposit sitting on top of each other. Each one of these sandstones here represents a single storm deposit. And the storm deposits typically find upward and have the Hamakki cross stratification and often wave ripples in the upper parts of them. Thanks for watching.


The 100% success rate bitcoin by signal is flashing yet again back in January, which is the last time that this by signal flash I told you guys about it did a whole video and everything what happened after that bitcoin went up over 52% so hopefully you guys listened if not you might be in luck because the by signal has flashed once again What's up guys? My name is j and welcome to bitcoin daily in today's video We will be breaking down the by signal. That's flashing on the bitcoin chart We'll break down the indicator how it works and why a signal has been so successful in the past Including back in January of this year So the indicator is known as the hash ribbons indicator on trade of you just go up to indicators search for hash ribbons And it's the first one right here once added to your chart will pop up on the bottom just like this This indicator is based off bitcoin's hash rate, which is the measure of computing power being used on the bitcoin network The higher the hash rate the more powerful the network is and the more security is against potential attacks when the hash rate is high It means that a lot of miners are actively participating in the network and when it's low it means that there's less minor participation Hash rate can also be used as an indicator of interest and adoption of bitcoin as more miners join the network It means that more people are investing in bitcoin and as a result the hash rate increases as you can see in the chart We're currently at all time highs in bitcoin's hash rate meaning that interest and adoption of bitcoin has continued to go up Now the hash rate alone doesn't generate the by signal on the hash ribbons indicator The by signal is based on the relationship between the hash rate bitcoin's price and its moving average when looking at the chart You can see that we have different colored dots. This has to do with that relationship between those three components So let's dive into the specific process of how the hash ribbons indicator generates a biasing So the bi signal is generated in three stages. First, we have the miners capitulation state This is when the 30 day simple moving average of the hash rate falls below the 60 day simple moving average and the hash ribbon chart turns red This stage indicates that miners are losing interest and confidence in the network and it's a bearish signal for the market Next we have the end of the capitulation state This is when the 30 day simple moving average of the hash rate rises above the 60 day simple moving average Which creates this green dot and the hash ribbons chart becomes green This stage indicates that miners interest and confidence in the network is recovering and it's a bullish signal for the market Finally, we have the recovery of bitcoin's price momentum stage This is when the 10 day simple moving average of the bitcoin price rises above the 20 day simple moving average The blue dot lights up with a signal to buy this stage indicates that price momentum is recovering And it's a bullish signal for the market It's worth noting that all three stages must occur in sequence for the bi signal to be generated The blue bi signal only flashes when the network hash rate and the price momentum are both recovering Now that we understand the process of how the hash ribbons indicator generates a bi signal Let's take a look at how it's done historically including how it performed when it gave its last signal this year back in January So last time it gave us that bi signal was back here in early January And as you can already see bitcoin's price went up over 52 percent from that bi signal You can see that last year in the summer it hit capitulation stage and it hit stage two But it never hit that stage three Which is it why it did not give a bi signal during this time here Which ended up being good because as you guys can see the price went down If we look back to august of 2021 We can see that we got a bi signal there and bitcoin's price went up 57 percent after that bi signal If we look back to november of 2020 when we got a bi signal here You can see that bitcoin's price went up 235 percent And if you keep going back on bitcoin's chart following these bi signals You're going to see over and over again bitcoin's price has always gone up after the bi signal And eight out of 11 times that this bi signal has happened The bi signal from the hash ribbons was indeed an indicator of the macro bottom of the bitcoin price Including in january the bi signal from the hash ribbons indicator was indeed An indicator of the macro bottom of the bitcoin price So as you guys can see the hash ribbons indicator is a powerful tool for identifying potential Bottoms and finding good times to add to your bitcoin long-term positions I have alerts set up on this indicator on the weekly time frame And I recommend you guys to set it up as well This has gone 11 for 11 a 100 success rate So when this indicator has flashed a bi signal It's always been a good time to add to your long-term position If you guys found this video informative Don't forget to hit that like button And consider subscribing to the channel for more content just like this And before you go if you guys are looking to find the next 100x crypto I've found a way to leverage millions of dollars in research In this recent video I show you how to leverage the research And investments of three of the world's leading venture capitalist firms in crypto Just click the video on the screen right now I'll see you guys there Peace and love


Hi everyone, Joe for jaspyscasebreaks.com coming at you with 2020-2021 Panini Mosaic UEFA Euro Soccer Featuring the teams in that big tournament going on right now. This is random country break number seven from a fresh case And we sold 12 spots all card chip and everyone gets two countries from that list below. So big thanks to this group here Let's double you up. There's all the countries right there as well. Let's roll it. Let's randomize it Two and a five, seven times for names and countries. One, two, three, four, five, six and seven Seven and final time. We got Roger down to Dayton. Alright, seven times for the teams. One, two, three, four, five, six, and I said seven, right? Yeah, once more. Seven and final time again. And we got Hungary down to Russia. Alright, Roger with Hungary, Joshua with Ukraine, Pascal with England and Slovakia, Joshua with Switzerland, Pascal with Turkey, Dayton with Germany, Alex with Spain, Joshua with France, Pascal with Portugal, Alex with Scotland, Joshua with North Macedonia, Pascal with Denmark and Croatia, Brandon with Austria, Dayton with Finland, Taylor with Italy, Brandon with Poland, Taylor with the Czech Republic, Dayton with Wales, Joshua with Sweden and the Netherlands, Roger with Belgium and Dayton with Russia. Alright, let's alphabetize this by column B. And while you're considering trades, let's pop open this fresh case. Let's see what happens. Alright, so here's the fresh case of Mose, right there. You can kind of see the label right there. Flip these up to two box stacks here. You can see those two boxes on the top camera right there. So we'll go one, two, three, four, five, six on the dice roll. Let's use that nice Liverpool red right there. And it's one. So the very left box, the very left stack right here is the one we're going to do.  These will save for next time. Next time I'll just grab two random boxes. This is as random as it'll get. So now let's go back to this list right here. And Dayton's wondering if Portugal's available. I'm not sure if Pascal's here in the room right now, but we'll pause the video and allow for a little bit of trade chatter. When we come back, we'll see if there's any trades and then we'll have the break. Stick around. Alright, welcome back folks. A little bit of trade chatter, but in the end, no deals were done. Thanks everyone for getting in. These names kind of printed out, kind of huge on this list right here. Alright, next box. Good luck. Big quarterfinals matchups coming on tomorrow. Don't feed the trolls, Dayton. That's what they want. Tomorrow we got some great quarterfinals matchups coming up. I'm very excited about Friday and Saturday. We'll have some two big quarterfinals matchups. I had Portugal and France as a couple of my picks to move on. Unfortunately, they have not moved on. Let's get this over here. But I do have a little investment on Switzerland, on Italy, and Denmark. So I feel pretty good about that. At least I got some teams in on the mix. Of course, personally I would like to see England get into the action, but I do not have an investment on them. Yeah, England, Italy, Belgium. That's going to be a fun match to watch. Although, I don't know, Euros can get weird. I feel like it'll be like this. The most unexpected match will end up having like five goals in between the two teams. I feel like that's how it goes. Here's a nice parallel here. It's key for more. One out of 49. Yeah, I'm a fan of dogs, PJ. Always chasing the underdogs. Favorites are too easy. You can see Mason Greenwood in on the action. Jayden Sancho. We were just talking about this yesterday. Jayden Sancho is now, I think, pretty much, I think he announced this morning, pretty much a Manchester United player now. Yeah, he is. And there's a nice mosaic parallel Christiane Ronaldo. That's for Portugal. Gareth Bale might come to the Galaxy. That'd be cool. I feel like Gareth Bale would crush him in MLS. There's another Liverpool player here. Portugal's Diogo Jota. England has a lot of exciting young players. Here's another England player coming up. Kyle Saca right here for Arsenal. He's pretty solid. Not sure if De Bruyne is available for the match. Yeah, 72 million pounds. That's a lot. Although the fee could have been higher. I feel like last year, last year didn't Manchester United or someone offer like over 100 million pounds? So I feel like they, you know, they had a friendlier fee. There's Gareth Bale right here. Remember, all card ship. So it might be worth taking a look at some of these rookies or holding on to them because, you know, in the future you never know what might happen. There's a Filippo in Vaghi. Forza Azuri. That'll be for Taylor in Italy. A lot of fun inserts here too. Yeah, worth looking up a lot of these rookies and stuff like that. And I think we were discussing this yesterday too. I think Manchester City will actually get a little bit of that, a little piece of that transfer fee because they had to deal with Dortmund when they moved Jadon Sancho from England to Dortmund. So it's somewhat ironically Manchester United are going to put some extra money into the pockets of their rivals, their inner city rivals. Inter? Inner? Intra? Inner city rivals? Inner city rivals. Whatever the word is. Wow, PSG's looking to get Ronaldo or Pobo? That would be crazy. Lionel Messi is technically a free agent too, although I have a feeling he'll be back with Barcelona. All right, next box. Good luck. This is Cristiano Ronaldo. He's a pretty solid Portugal. Phil Foden. Let's see if he can make some magic happen for England. This is Eden Hazard. I think Hazard is, some of the guys are talking about Eden Hazard in the chat. I think he's healthier because I think he played the last match. I'm not sure about Alex Witzel. I feel like De Bruyne is okay too. I think he should be healthy. There's Jadon Sancho again. And a Mosaic Silver Rookie. Joswiak for Poland. That'll be for Brandon. The Jadon Sancho, of course, goes to England. That'll be for Pascal. So if Jadon Sancho has a good rest of the tournament, you know, and goes to a high profile club like, officially goes to a high profile club like Manchester United, I think it is pretty much official, if not officially official value of that card. Go up Sergio Ramos with PSG. I'm not a fan of the Sergio Ramos.  And a Robert Lewandowski out of 25. Nice fuchsia parallel here. That's for Brandon in Poland. Yeah, no, not far from my favorite player. He's had some run-ins with some Liverpool players in key matches, which I was not a fan of. That red parallel not numbered, but that'll go to Russia. All cardship. Miss Phil Foden. I'd rather have him by ears. You don't need your ears to play soccer, but if you're Mosala, you kind of need your shoulder when you're running around. You can't have that hurt when you're pumping your arms, running up and down the pitch. I'd rather have Sergio Ramos by his ears. That would have been better. Well, the grudge is soft since Liverpool has won a Champions League. But if they hadn't, yeah, I would be holding a much stronger grudge. True, it's wise that it did bite a shoulder, right? Still, not an injury that would knock him out of the game like Mr. Ramos. Nice Christian Erickson. I don't know if he's going to play soccer again, but I'm glad he's okay. I was a really scary moment to start the tournament. Pascal with Denmark. Imagine if Denmark had Christian Erickson. There's Andy Robertson, Liverpool man right there, too. Kieran Trivier and Kylian Mbappe for France. Kind of a shocking exit for this team, but I guess a lot of drama happening around that club. Like parents are yelling at each other? I think like Mbappe's... Someone else, some other French players like Mom was yelling at Mbappe's dad about the penalty. It was a whole thing. Anyway, that was 2020-2021 Panini Mosaic UEFA Euro Soccer 2 box. Break number 8, Random Country Break number 8. Thanks for watching. I'm Joe. I'll see you. Actually, this is Break 7. Break 8 coming up a little bit later. I think the... I'll change the title on the list here. Break 7. There you go. Thanks for watching. Thanks for breaking with us. There will be some more later in the store. I'll see you next time for the next one on Jasper's Case Breaks.com.


A blast on an army bus in Damascus has killed 14 people. State media reported that it is the deadliest bomb in the Syrian capital in years, quickly followed by army shelling in rebel-held Idlib. Rescue workers said 12 people were killed. A roadside bomb attack in Syria's capital, Damascus killed over a dozen military personnel on Wednesday. State media reported that a bus carrying the soldiers was crossing a bridge in central Damascus during early morning rush hour when two explosive devices went off. Images of the charred cabin of the bus were shared on Syrian state TV's Telegram account, and rescue workers removing body parts from the scene. A third device was diffused by an army engineering unit. No group has yet claimed the attack, but officials have called it a terrorist blast. There have been several attacks this year on army vehicles in eastern Syria by suspected Islamic state militants who still operate in the sprawling desert area. But blasts in Damascus are rare. That's because forces loyal to President Bashar al-Assad took control of rebel enclaves around the city.


The current account is the broadest measure of a country's interaction with the rest of the world. So if you are running a deficit, most importantly that means that you are importing more goods and services than you are exporting. The current account also includes net income on dividends and interest payments and there's a small component that is transfers things like foreign aid. Most recent data shows that the U.S. current account deficit is a much smaller share of the overall economy than it was as recently as 2007 and that is overall really good news. The very large persistent U.S. current account deficit was one of the most concerning challenges for U.S. macro policy makers and there are a number of reasons for that. The concern was that if you have a very large deficit you've got to fund it somehow and that essentially meant that the U.S. was either selling off its assets or accumulating debts relative to the rest of the world and that makes a country extremely vulnerable in the chance that other countries will reduce their willingness to invest and so that was a real problem. In fact that did not turn out to be what caused the crisis and in fact as I mentioned we are in a very different situation where the current account is at a very manageable size. At the same time economists always talk about pluses and minuses. Part of the improvement has resulted from very positive increases in U.S. exports and the challenge is whether the U.S. can continue to increase its exports to the rest of the world.


maybe at some point you realized I want to delete my Facebook account but my Facebook account is my only source to get information about events be it rave events or community events. Misha, Max, Misha, Max and Joseph also thought about that and then they realized that the open-source mobility events platform mobility needs to be more popular so that people can delete their Facebook account and use Mobileson instead. Today they're talking about how that is going and how Mobileson works and we're really glad to have you have them here. Well first of all I will welcome everyone at home behind their various screens. In these weird times I'm very grateful we are very grateful to be here today and to talk a bit about a close future that we are craving for and that we are already preparing with hope and confidence. Berlin, let's take back control of our events. At a small introduction this is Joseph, my name is Max and Misha will join us later in a more digital way. Joseph is a linguist and he's a free software enthusiast and he likes to give talks like this and give workshops on crypto parties about digital privacy. He will talk to you a bit about the Fiddiverse and the Mobileson how it's created and how it works. Misha is an event organizer and a festival organizer and she is part of the Berlin nightlife. She knows a lot of club owners and festival organizers and she will talk to you a bit about their problems, their hopes and their dreams. I'm Max and I'm an actor and a musician and so I'm part as well of the Berlin artistic life and I'm part of a documentary that we are shooting right now as well for Arte. It's called Disappear and will come out next year. We are all based in Berlin and we are very interested in new ways of communication and technology and we ask ourselves how can we take back control of our events. I have to start one and a half years ago when I could follow Mark. Mark is the director of both films Nothing to Hide and Disappear where we wanted to find out more about massive aliens and on how to reduce your digital footprints. I had the chance to follow Mark to the CCC, the Chaos Communication Camp 2019. We went there, we met obviously a lot of people and at one point we talked to Joseph and we were like well there are so many artists they don't know, they are a bit forced into sites like Facebook and Twitter or Instagram to just name a few to post their events or to promote their events and that there is not really a lot of different possibilities to go around that so a lot of people stuck to Facebook just because of that and then we got to know that there was another workshop organised by Reclaim Club Culture which we took part of and a lot of other participants as well and we really heard the needs of a lot of people that wanted a big change on that topic. So when we came back from the camp we sat down with a bunch of different artists and programmers and we turned our head around this question. As we heard more and more about Fediverse we were pretty sure that Fediverse could be a possibility to create self-controlled social network of different applications put together. So we got into contact with Framasoft. Framasoft is an NGO that created sites like PeerTube and Mobilizing. Mobilizing we want to talk about today is a decentralized and federated free and open source event calendar and could be a game changer in the near future for artists and organisers to publish their events. After meeting that we had on the internet with the creators of Mobilizing we got interested in creating our own Berlin based instant to group all the events in Berlin and to cross post them on different platforms. More details on that of how instance work and how Mobilizing works. Joseph we'll give you in a minute. Mobilizing right now is a demo version so it's really the first version and our goal is to involve both utilities and the design of this page and create a new space against these big corporations. So far so good. Now I would give the word to Misha. So Misha what's going on in Berlin's underground club scene. Hi I'm Misha. Thank you Max for the introduction. I'm very happy to be here today and to have the possibility to talk about Mobilizing and Fediverse as an alternative to Facebook and the Facebook event calendar. I am among other things an event organizer myself and with different collectives I already hosted several club events and open airs in Berlin and also organized and worked at different festivals in Europe and Germany. So I know how hard it is as an artist or an event organizer to promote yourself or your event successfully without an instance like Facebook. And when I asked myself or my friends who are also very critical towards Facebook but on the other hand also active contributors to the Berlin club scene or at least regular party attendees why they still use Facebook. They always say well because I want to know what's going on in Berlin. I want to know where my friends are going or they say because I need to promote myself as an artist or to promote the event that I'm organizing. So basically it comes down to the Facebook event calendar why it is that we still didn't quit this platform that none of us really like using. So it is somehow schizophrenic that the Berlin club scene is so dependent on a platform like Facebook. It is schizophrenic because I think that the club scene not only in Berlin but also internationally has always been this little utopic island in a capitalistic and patriarchal society that tries to create a safe space for all the people who do not fit the heteronormous and heteronormative stereotypes of that society and of that system. So on parties on techno parties who could free ourselves anonymously and without fearing the consequences outside the club doors. And most people I work with they still have this utopic vision of a society where everybody has equal rights no matter their sex or their gender or their sexuality their religion their skin color or where they are geographically or socially born into. And Facebook is all of this not all of this what we stand for Facebook is not its algorithms do not allow for an autonomous choice. Facebook is and I hope I don't offend anybody by saying this because I also myself still use Facebook but it's capitalistic is sexist it allows for racism it exploits the users and their users data and we still depend on it in order to pay our rent and the rents of our clubs. There was a club in Berlin that was always a lot against Facebook and in 2019 they decided to join and wrote a huge statement about their decision and they said that on the one hand they needed to take back the control of their public persona because there was already Facebook pages of that club which they did not create themselves and they didn't know who did it. So they wanted to take back this control and other collectors and event organizers who are also hosting events at that club said look without Facebook and this event calendar we cannot promote our event successfully so they did a little analysis and it was true. The events that were promoted over Facebook and the Facebook event calendar had a lot more paying attendees than those who were promoted without Facebook and with rising rents and running expenses in Berlin the club was forced to join the game that they did not want to play in order to be able to pay their rent they just could not afford it not to be on Facebook anymore. So now this is basically why we are here because we want to present an alternative to a scene that has huge international attention so maybe we can hear even gather a critical mass that makes it possible to establish an alternative to Facebook and this is mobile is on and free open source independent and decentralized software and now I would yeah like to give back to Joseph because he can now talk a little bit more about how this exactly works. Thank you very much. So thank you Max and thank you Misha. So I'm gonna talk a little bit more about mobile is on and the activity pub protocol both of which are in the spirit of the Reclaim Club Culture Movement which is calling for more non-commercial autonomous free spaces in the Berlin club scene. So as Misha mentioned many people are still using Facebook for the events even though they don't agree with Facebook as a service and this is because they have no choice Facebook is a closed system you're there in it or you're out. Facebook is proprietary meaning that the service decides how the users use the service and the users have no no options. It's a centralized system meaning that Facebook controls everything about it including the data and all the ways that they can use and abuse their users data. It's not just privacy issues it's also their policies when it comes to which content is permitted on the service. So Facebook is a US based corporation with its own culturally specific ideas of what's acceptable and what's family friendly.  These are not Berlin values. Mobile is on by contrast it's free software. It's developed by from a soft a French non-profit and it's released with a free software license the AGPL. Free doesn't refer to the cost it refers to the four freedoms granted by the license that's the freedoms to use study share and improve the software. In short free software users control the software in comparison to proprietary software where the software controls the users and free software is how we can make autonomous free spaces possible in the digital world. Moreover mobile is on is decentralized and federated in comparison to Facebook which is a centralized service where Facebook controls the entire system it decides what the terms of service are it decides how the data is used. Mobile is on is a gives users choice. There are a number of servers that can be part of the network and users can choose which server has the terms of service they agree with. They can decide the users of that server can decide which instances they want to federate with. Mobile is on can do this because it's based on the activity pub protocol which is an open decentralized social networking protocol for client server and federated server to server communication. Each of the servers is independent in the network that means each can have their own communities their own interests and their own rules activity pub is a standard of the worldwide web consortium and you can think of it as a common language describing social networks so that there's a shared vocabulary across services and there are already many services using the activity pub protocol. You have master done which is a Twitter alternative peer tube a YouTube alternative next cloud a Dropbox alternative pixel fed an Instagram alternative all making up what's called the Fediverse a portmanteau of Federation and universe. The Fediverse is an ensemble of federated services all of which can communicate with each other which means that if you're using one service such as mastodon you can publish posts shares and likes with any other service that are part of the Fediverse services. Since most mastodon and mobile is on speak the same language a mastodon follow user which is like Twitter can follow events on mobile is on even if they don't have an account with mobile is on they can comment on the events in mobile is on again even if they don't have an account with mobile is on this would be like a Twitter user following Facebook events even without a Facebook account. This enables autonomy self determination and user choice across a giant social network with no walled gardens and this way the content is separate from the platforms as max already mentioned mobile is on is still in development the first version was released in October there are other event management software services that are looking to implement activity pub for example get together but at the moment as far as we know mobile is on is the only one that's done this if you want to take a test run of mobile is on without committing to it you can go to their demo demo dot mobile is on dot org all the data is deleted after 24 hours you can set up a profile set your user settings you can take a look at how the federated identity works it looks a lot like an email address you can explore find out for example that there's a talk today about mobile is on at the CCC the main reason that we're here today is because we want to rally Berliners to start using mobile is on and to encourage that max Misha and some other people are setting up a server in Berlin for Berlin for Berlin clubs in the Berlin scene to do this we have a volunteer systems administrator to maintain the server we have a programmer that's working on cross posting so that if an event appears in Facebook it also appears in mobile is on we've a volunteer organizer to found an association collect donations to maintain the server over a longer period of time and we have a couple of interested club and event organizers and several users what we want to what we need we need more event organizers and most importantly we need more users we need a critical mass to break out of the vicious cycle that users won't use it until their events but event managers won't use the service until their users this network effect can only be broken if enough people start using it we're looking for contributors to help write a mobile is on Berlin terms of service we want this to be an instance that reflects Berlin values we're looking for designers to help design a user interface with a Berlin flavor it's free software so we can control the server we can contribute back to the project and eventually we want to see more mobile is on instances both in Berlin and around the world well how could you can you get involved with us and in this project first of all you could join our mailing list and contribute to the project at lists dot postio dot de slash list info slash mobilize on dot Berlin and you can join a mobilizing instance here you see the instances at instances dot join mobilizing dot org slash instances and for sure you can contact us directly and work with the Berlin community and for sure this is all small steps so it can take a while for people to know about this and to move over to mobilizing and get this thing going well we thank you all very much for listening and watching and we hope you stay safe and you have a good night already thanks a lot for the talk we have some questions the first question is a hint and a question somebody's suggestion suggesting to link mobilize on to what's it up what's it up dot de which apparently is a Berlin German event site is that possible are there any plans to link it up to other sites or is it only possible to link it up within a federated Fediwurst network the website if they're using the activity pub protocol it's certainly possible to federate with them and I would be very interested to contact them and see if there's any ways that there could be some collaboration I mean it seems like this is very much in in the spirit of what we're trying to do so yes okay dear people asking that just write him an email and you will just get in contact next question are there plans to grow or groups in a club slash event context in other cities in Germany already interested in establishing slash using mobile is a mobile liason in Munich well as we said we try first to do this instance in Berlin but it's more like to show other people that it's possible and that we hope that other cities will follow the Berlin instance and can contact us on how it works and how they should do it and mobilizing in such you can go wherever you are you can visit it and you can check events from other cities but this instant is really then based on on these Berlin events that we are trying to to to get people together here for these events okay thank you contact us because certainly they can learn from our mistakes if they decide to do something similar in Munich or perhaps there's ways that there could be some collaboration I'm sure there's overlapping interests and ways that we could work together okay so you also just write him an email and then as a third question in a federated network who would be responsible for moderating hate speech or illegal content yes so this would be up to the instances themselves so each server can decide with which other servers they want to federate with and there it actually is some precedence for this there was in 2014 with the diaspora network which is using not the activity pub protocol but the diaspora protocol but it's a similar federation of servers and there was a problem where ISIS was spreading propaganda after they were kicked off other social networks in the diaspora network and the server administrators the systems administrators effectively cut them out of the larger federation and marginalizing them you can't stop them from serving their own servers of course but you can stop them from them communicating with the larger network but that's going to depend on the systems administrators or the people running the various instances but this is I mean this is something that I would say is a feature of this federation that you're not letting Twitter or Facebook decide what is okay and what's not okay there are a lot of things that Twitter allows that I would say if I were running Twitter I would not allow and this kind of federated network actually gives that possibility to decide that cool I think that drunk sounds really good and maybe it's the first starting point for replacing Facebook that's so in all the world we're a bit over the time so I think we're going to stop it here now as always there's the discussion room at discussion.rc3.ou.social where you're welcome to join and then you can talk to them and have more follow-up questions and maybe oh there's another question that just came in is there an API to send events on mobilize on instance from another platform? Yes as far as I know yes but that's you can look there's the mobilize on the activity pub protocol which would be what would be relevant here would be you can go to the World Wide Web Consortium and they have a full explanation of the details behind the protocol. Okay so maybe that's something for the discussion room just go there if you have any other questions we will proceed shortly with another talk on open source. Thanks a lot guys for having this talk and thank you very much. Thank you.