first presenter has been in the European Python community for a very long time. He's also a Django core developer, who I believe these days is responsible for migrations. He seems completely worried about that. Today he's going to be telling us how to SSL all the things. Please welcome Marcus Holterman. Thanks everybody for coming. Thanks for PyCon, for having me. SSL all the things. Good introduction to me. I'm from Germany, living in Berlin these days. My regular contributions to Django started in about 2014 when I picked up every other bug in the migration framework, and then the core team back then got tired of merging my pull requests, so I merged them myself at some point, or had to do that myself. And well, yeah, these days I work at a senior software engineer at LATAPay in Germany, and we do micro payments for online content providers, and should be easy as going out for dinner, you buy or you purchase articles online and at some point you pay your tab. SSL all the things. Ever since Snowden proved that the NSA is spying on all of us, which is a pretty bad thing or pretty serious thing over in Germany for the privacy laws and regulations we have there, we want to make sure we have something to protect ourselves against that. There's also the risk of public unencrypted Wi-Fi's. You don't want the owner of a café, you're constantly going to be able to wire tap your communications with other people. Maybe you're doing your, well, you work from the café and have your business communication over this Wi-Fi.  So everything or one way or the best way to probably protect you from this is to, well, have an encryption on the communication channel you have and make sure nobody can inject or wire tap anything of that. But before I go into any details, I need to tell you something else. I'm not a cryptographer, all examples here are either to the best of my knowledge or to the best of the knowledge of people I trust. And if there's anything in here where you feel you know that this is wrong, please talk to me afterwards before I publish the slides. I'm not telling people the wrong thing. I'm not going to cover everything in this talk about SSL or cryptography because that would be too much and probably enough for an entire conference. SSL 2 and 3 are broken, just don't use that. TLS 1.0, 1.1 are discouraged and superseded by 1.2. If there's a reason to use 1.0 or 1.1 for distribution reasons, then okay, if you can avoid that, then why have that at all? And future looking cryptographers at Google started implementing a thing, a post quantum cryptography algorithm called New Hope called after the Star Wars movie. SSL, what is it or what's TLS? Well, first of all SSL stands for Secure Socket Layer and TSL for Transport Layer Security. But well, these are two words. They are both cryptographic protocols for communication systems and most notably networks. IZARONE provides two out of three parts in information security. The first of that is confidentiality, which is ensured by encrypting the content. That means nobody can read what is transmitted or the underlying thing that's being transmitted. The other thing is integrity. All the messages you send SSL or TLS encrypted are signed. That means nobody can modify them and you ensure that what you send is what the other person receives. The third thing in information security is availability, which is something you cannot cover on a protocol level, that easily at least. This is something you probably do with auto scaling on AWS or something. Now, how do we actually get to TLS? How do we get SSL working? And this is something where a couple of years ago, let's encrypt came up. It's an organization that provides free SSL or TLS certificates. In order to understand how that works, we need to figure out or need to understand how SSL, this entire certificate thing, works in general. And this is a slightly complex graph, but it's the way how the entire trust system, the trust behavior of certificates works. You have your browsers or email clients and they have a bundled so-called trust store. This is a collection of certificates, your browser and trust. This is the thing that you rely on or your distribution or your browser relies on when validating any of the SSL communications you have. For example, you see root CA there. This is whatever is included in the trust store. And CA can then have so-called intermediate certificates, which are certificates signed by their own probably root certificate. That means you include the root CA in the trust store and have intermediate certificates that are signed by that that you can more easily use to distribute and to sign other certificates. The certificates you see at the bottom are the leaf certificates. So these are the certificates you use for all the sites out there or all the services you have out there. That means once you have a certificate in the trust store and you have a trust chain down to a leaf certificate, the leaf certificate is trusted. Now you see root CA3 on the right side. This is not included in the trust store. And this, for example, is let's encrypt as of now. They are not in the current trust stores of all modern browsers. These are Chrome, Firefox, what's out there, Safari, Edge. They are going to be included in, I think, Firefox 50, which is a major step for let's encrypt. Right now they are so-called cross signed by another certificate authority. And because let's encrypt has control over their own intermediate certificate, which is signed by somebody else who is trusted, they can use their intermediate certificate to sign all your certificates. And since we have a certificate chain from root CA2 to the intermediate here to all your leaf certificates, you have a trusted certificate chain. Now let's talk about let's encrypt a bit more. As I said, it's root certificate authority. That's not in the global trust store. Mozilla is going to edit in Firefox 50. Let's encrypt has control over their intermediate set and they can sign everything they want. And sign everything they want is essentially the thing where let's encrypt started to do something that's slightly revolutionized the way certificates are issued these days. Let's encrypt offers and JSON API that you can use to ask them please sign a certificate for these domains for me. And this process is called ACME. What you need for that is an account key, which is probably our A key you use all the other way you use that for in SSL encryption. You would need a certificate key, which is another one and should be different to the account key having the same their possessive security risk. And you need a certificate signing request, which essentially is a thing that you send to let's encrypt and ask them, can you please sign a certificate for these domains? And when you have these three parts, you can go through the process. This might look a bit intimidating right now this diagram, but it's fairly straightforward. You have yourself or your server on the one hand side, you have let's encrypt on the other. This authentication, the first step is that you use your authentication key or your account key to authenticate yourself or your server against let's encrypt. Hey, this is me. You send the account key's public key signed with a private key, which then authenticates that this key belongs to the one who signed it. And let's encrypt starts knowing you. You can include email addresses or pager numbers or something in there to at later points be able to be notified for what expiring certificates. Now, when you've authenticated yourself or registered yourself, it was pretty much the same process in this step. You send let's encrypt this signing request signed with your private key. So let's encrypt now that it's you and you get a so-called challenge back. This is a specially craft string or file you're supposed to put in a specifically defined directory on your web on the web server. So you make this file available to via HTTP because you don't have HTTP as yet. And that's encrypt is going to request this file for each and every domain you ask them to sign, which is this step here. You send them. Okay, I brought this challenge to the file system. It's able to be served. Please do the validation of the challenges. And this is what happens here in the third step. Once this is done, you can ask let's encrypt for the certificate and this is a bit of a polling option because let's encrypt doesn't notify you when they validated all the challenges. But anyway, you ask for the certificates and you get either I'm not sure what kind of response if it's not there yet, but when it's there you get the certificate that you can use. You write this certificate to whatever file system you have, wherever your web service is able to use it or whatever service you wanted to use on. And well, you have SSL. You have an SSL certificate. So far so good. How do we actually use that? Well, you got multiple options. There's an official client that does all the magic. They have implemented an Apache to configuration system demon, whatever thing that rewrites your Apache config files and does all the magic with them. So you don't need to worry about that. I believe they are working on engine x implementation as well. I'm not the biggest fan of that. This is something that should not be done by some service that is that hasn't a will on its own. This is something that from my perspective is something a configuration management system should do. Why if you want to know why watch my talk from last year's pike on Australia on configuration and system management. There's also a script called ACME Tiny by Daniel Rössler. That's about 200 lines and implements exactly the process I shared before. It's really easy to understand 200 lines of Python code. When you want to use that script, have a look at it, how it works. It's really good to understand how the entire process works. If you are in a system that uses system D, maybe use my fork that has system D integrations for that.  There's a let's encrypt aws by Alex Gaynor. I haven't used that myself, but seems legit as in, I know him and he's on the, for example, on the Django security team and does a lot of security related things in the Python world. There's our proxy by Amber Brown, which provides a reverse proxy, kind of auto-configuration to a reverse proxy that you tell, okay, I want to have these domains. They are proxy there and it does all the SSL magic for you. I believe it's written and twisted and a couple of other things. There are a couple of tools out there that you can use. I mentioned before you need to make these challenges available to let's encrypt. You need to do that via HTTP. HTTP is pretty much web server, so let's have a look at an nginx configuration file. I hope you can read that. Essentially, you say I have this file called 80example.com and in .wellnownacme challenges, you point to a directory where you write these challenges to and serve all the files that are existing. Otherwise, you serve a 400. For every other file or every other request, you serve a 400 as well. This makes all the challenges available to let's encrypt and when they validate them, you get their certificate. Great. Now, how do we actually use the tools? Well, considering that we use ACME Tiny, or I use that for my own websites and we use that DjangoProject.com, yeah, it's like 60 lines.  You probably need to restart nginx as well or whatever web server you have, but it's straightforward from there, I guess. It boils down to the same. You need an account key. You need the certificate signing request. You need a directory where you write the challenges, where you write the certificate and the way SSL works or how you're supposed to implement it is that when you look, I think back about the diagram with the root certificates and the intermediate ones, you include the intermediate certificate in your, in the certificate file you're serving on your, through your browser and essentially this combine adds this intermediate certificate for less encrypt. All right. Now, regarding SSL certificate, how do we actually use that in Python? Let's start with the client side.  I do understand that, but it's, I think it's fairly straightforward. We have a main function and in there we open a socket and we set a, we create an SSL default context with a purpose for server auth, which means we authenticate against a server. Then we also don't want to use TLS version one and TLS version one dot one. I mean, this is something you can do or you cannot do depending on what your requirements are and you wrap the socket that we opened before and pass in a host name that you want to validate against. This is essential, something essential you got to do. If you don't put in the host name, any valid certificate there would be valid even though it's a different host name. So Google.com with some other certificate would suddenly be starting to be valid. You don't want to have that. You connect and then handle a connection, whatever that means. This is no magic from our perspective. The server side looks more complicated and there's more things you can do wrong on the server side. It's also a lot more code, but well, it's a server application. Nobody meant to, nobody thinks that writing those are easy anyway. Again, you create a socket and bind it to an address in port. So that's these lines here and you again create an SSL default context. So this default context is you can create it with Python built-ins. Whatever your current Python version thinks is the best practice at this point of time when it was compiled. There's another way to create a context. If you feel really paranoid and want to do it yourself, have a look at the Python docs, but I believe you all run up to date system environments. So you have all the latest Python versions, security updates and all the things there. They should be fine. You can again exclude a couple of protocols. For example, TLS 1.0 or you can't or you don't. So if you exclude it on the server side, you don't have TLS 1.2 on your client side, then they won't be able to connect. Because, well, you have a set of protocols or versions on the one side and a set of versions on the other side that don't overlap. So this is not going to work. Then the next thing is this Cypher string. This is some cryptic, well, what looks like cryptic string and I'm not going to explain what all these different parts in there mean because I have not the best knowledge about that either. This is something that I looked at other websites that do a really good job at telling you this is what you currently should do. I give you a couple of links to where you want to look up those details later. Well, and then everything from there is, again, I guess fairly straightforward. You accept connections and for every connection you wrap the socket, handle the connection and once it's terminated or when you got an SLR, well, you deal with it. What I didn't cover, but at least want to mention because it's a white topic and there's a lot of things you can or could talk about, but yeah, I want to mention a couple of things to you because I feel there you should have heard about them and then have a couple of points where you might want to follow up on. There's a certificate revocation, which is something when you want to do SSL in any form at work, this is something you should be aware of and you should know how to do that because when you need to do that and you don't know how to do it, it's already too late kind of. So certificate revocation means that when you have a certificate which is in production use and is compromised because the key for that is being compromised, you want to have a way to make sure that you in no time change the certificate with something that is not being compromised and if you don't have a plan in place that you hopefully tried out as well, then you waste time there in which your users can be subject to attacks. This is the revocation process is part of the SME protocol or SME process, which is not covered in the slides before, but it's covered for the Let's Encrypt API. Same applies for the account key. If your account key was compromised where you kind of have lost unless you figured out and now how to replace your account key and tell Let's Encrypt, oh, by the way, please don't accept this account key anymore. I'm now known as this one. Again, this is probably something you want to try out before you actually use everything. Then for HTTP and HTTPS, HSTS, HPKP, so HTTP for Transport Security and Public Keypinning are two things you might want to look into when you do HTTPS. But be aware of that when you turn them on and are not aware of the risks, you render your website inaccessible for people who have visited the website during the time you turned it on when you turned it off again. So look into what it entails and what it means and what problems you may run into if you turn it off again or if you turn off SSL. Public Keypinning, so that applies to both of them. Public Keypinning is something not necessarily too important for all of us. It's something if you have a high profile company with lots of attacks on DNS or on lots of, yeah, generally a lot of attacks. This is something you might want to look into. But at least on Django Project, I think we don't use it because it's not worth the effort there. As mentioned before, you have SSL as a protocol and protocol generally means whatever kind of communication you have there. And as you've seen in the code examples there, you don't necessarily need HTTPS or HTTP as a protocol. You can use it for whatever you want to use. What this requirement let's encrypt has is that you serve the challenges via HTTP. So if you are able to have an HTTP server listening on the same domain on port 80, then your other service on port 1234, then you can use a let's encrypt certificate for this other service. Well, things that could go wrong as, again, HTTP, this is something you want to look into. Leaked keys, as briefly mentioned before, you want to have a process in place that you can just follow when some of your keys are leaked, because this is a serious thing and a serious issue that you need to take care of urgently. People claim or claimed, I'm not sure, that the resource usage for SSL communications is unreasonably high compared to plain communication channels. Yes, of course, we do some cryptography. We need more resources there. But when you have fairly recent servers, couple of years old, they all do all that just fine. AAS and I, as in the Intel extensions for their CPUs, is something that can be used by OpenSSL. This is something that your hardware is doing the encryption and not anything software implemented. This is something which is ridiculously fast. And this is nothing that you really need to worry about these days anymore. Alright, as mentioned, a couple of resources you want to look into. CypherList is this magic string I showed you before. I guess they always have the up-to-date version of just look up your string and compare it with those. If they differ, then figure out if you can use the new one or if you have other requirements or backwards requirements or requirements for older browsers that are not supported with the new Cypher string anymore. If you can, just use whatever they suggest. SSL apps is probably the go-to place to figure out all the things you messed up with your SSL config. I believe everything that's not an A these days is something you can change. There's a legitimate reason to be able to change that. Not sure if you need a plus on the rating, but if you've got an F, you seriously messed up. Hinnix Lava gave a couple of talks and wrote a couple of blog posts on TLS and how all this entire thing is just complicated complex and everybody does it wrong anyway. This is the ACME protocol. So if you want to have a deep read on how it works and why it works, the way it works and everything, it's an interesting document. This is the link to the experimental SSL Cypher the cryptographic algorithm Google worked on and the gist for the code snippets I showed you before. Alright. Thanks very much Marcus. Questions? Thank you for that. This seems like a great idea when you've got production or web-facing servers. Quite often I'm going to want to test my changes before I push it out and one of the things I want to make sure I test is SSL. Is there any way, for example, if I'm just doing a local Django deployment and to say containers on my machine that I can get a certificate from Let's Encrypt that's not public-facing? No. You need to have as long as you're able to so you can of course set your production domain in your ETC hosts and then point it to your container as long as you also have a ready to Let's Encrypt talk to that domain as in the DSS lookup Let's Encrypt needs to do does is just public DNS. So you need the public-facing server that answers Let's Encrypt requests and get the certificates or challenges like exchange. I think that Let's Encrypt now allows DNS challenges rather than just HTTP. Let's Encrypt does allow DNS challenges as opposed to or additionally to HTTP. I have not heard about this. I don't know. I'm going to have a look. Thank you. Can you share with us any case studies or any examples of public websites we might know about that it's using Let's Encrypt for their SSL encryption. DjangoProject.com my websites I think I believe all the WordPress sites are now so they are I think 5 million active like not expired and not revoked Let's Encrypt certificates which is a really big number and active for 18 months to use Anyone else got a question for Marcus? Sure thing. So previously when I wanted to use SSL certificates that span multiple domains there's been a there's been a recommendation not to do that because some devices don't support the SNI server name indication feature and we passed that point where most browsers actually support that so we can actually just get on with it and put these on the same IP address. Look into what SSL get your browser requirements figured out and then look at what SSL apps tells you if there's any browser who does not support that that you need. Otherwise you need to serve them on different IP addresses which does not mean so it's about different IP addresses not different domains. So the SNI server name identification which means that each domain within a certificate needs to resolve to its own IP address. So you can still have the same certificate for multiple domains I believe but all those domains have to resolve to different IP addresses. Well thank you very much for that Marcus. Please thank again Marcus Haldeman.


Ring in the New Year with amazing savings from Appalachian Wireless. Get the Galaxy S7 for just $49.99 when you sign a renew a two-year service agreement. Better service, bigger savings. That's today's Appalachian Wireless. Big Sandy Community and Technical College was awarded a $3.5 million power grant from the Appalachian Regional Commission. The grant will help create a diverse economic future in coal-impacted communities in eastern Kentucky. In order to do that, we are looking at ways that we can contribute and be a part of the 21st century economy. And those are jobs that are in some ways high-tech. They're high-wage. Some can be performed remotely. The grant was the largest of the 28 awards announced last Thursday. Hazard Community and Technical College in southeast Kentucky Community and Technical College will join Big Sandy to create digital hubs for fast-track training for high-speed jobs. Companies are looking for some of the basic foundational elements of showing up for work on time and work ethic. We have those types of things. So if we can build on that and equip our students and our citizens with these types of skills, we feel like we can transform the economy in eastern Kentucky. Big Sandy, in partnership with SOAR and the Eastern Kentucky Concentrated Employment Program, created the Eastern Kentucky Coal County Transformation Project as a way to strengthen digital innovation and entrepreneurship across a 16-county region in eastern Kentucky. The program will establish educational programs that develop workforce skills in cybersecurity, medical coding, and advanced manufacturing. As much as the curriculum is 21st century, the approach is 21st century because you have an employer that is working with us to tell us exactly what they need for the students to compete for the jobs that they have. The project will serve 300 trainees and improve operations of 30 existing businesses. The grant will last for three years. Reporting in Prestonsburg for EKB News, I'm Shelby Steele. Thank you.


Hello, and welcome. This is Rod Davis, and in this video you will learn how to invite people to an event using 30 boxes. Are you ready? Okay, then let's begin. First, open 30 boxes where, for training purposes, I scheduled a three-day meeting to review videos in YouTube, and now I want to invite people to this event. So now the first thing I must do is to share my calendar with the people I want to invite. To do this, I go to settings, clicking on settings that opens up my settings. There are various options. Let's go to buddies and others. I'll click on add a buddy, and now you put in the email address of everyone you want to invite to the meeting, but one at a time. Once you put the first one in, you click on the add button at the bottom of the instruction box, and there you see you're now sharing your calendar with that individual. You want to add another, put in their email address, click add at the bottom of the instructions box, and now you're sharing your calendar with that individual as well. You press OK. So now you've accomplished sharing your calendar with your buddies. Now go back to 30 boxes, hover over the event, and click on the edit button because now it's time to invite them. So you go to the invite space there and put in the email address of the people one at a time that you want to invite to the meeting. Update the event, and you have accomplished that one. To add another, click on the edit again, add the email address in the invite space, and that's accomplished. Update the event, and now the people you have invited will receive notice and have a chance to confirm, and that is the simple process in 30 boxes for inviting people to your event. Until the next time, I hope that's helpful.


So we now have up next we have Sarah Spencer who's going to be talking to us about her fantastic Machine knitting and I think it's now an easy to say internet famous tapestry that she has here at EMF for us Good morning everyone. Thanks for coming along emf has been yeah close to my heart for a few years now I went to our emf 2014 and I've been in love with it ever since Now that this particular talk I've actually had to cut it down a little bit It was originally a 45 minute talk. So my apologies if I rush through a few things here and there mostly the The visible needed universe tapestry is actually right at the end of the talk So I really want to just get along to that because I think a lot of you also want to hear about that as well But most of the talk is is actually about the technology that that made made the tapestry All right, so let's get started I Hacked a domestic knitting machine for the 1980s and I turned it into a network printer I know that sounds completely ridiculous and you're probably used to that after a couple of days here at EMF But bear with me and I hope I will have convinced you that that's exactly what I did, but Happy to hear from the audience how you think I went Right, so how do I define anything network printer? So it needs to accept an image from my computer over the network with more than two colors in any single row So me personally, I'm not a big fan of black and white printing. I like to print I like to print in color And it can hit hands-free Mostly So this is a really old piece of tech comes from the 1980s. It's It's interesting to you to try and modify and there's certainly and young itself is quite a fuzzy material to work with So things don't always go according to plan, which is why I'm like, okay Well, it's it mostly does what I claim that it does Right so chapter one standing on giant Who here has actually seen a knitting printer, sorry, it's a knitting machine Oh a good chunk of the audience. I want to say about 40% roughly, which is fantastic. How about in real life? Have you seen one in real life? Excellent here about 35% which is so fantastic So I don't need to spend too much time right now on I'm going through the the technicals But basically this image shows you what a knitting machine actually looks like We've got like a bed of needles So, you know traditional knitting needles you have two needles and you pass the knitting from one needle to the next You turn around you pass it back again, and that's knitting on this machine However, it has one needle per knit So that zoomed in graphic that you can see with the needles passing along So you've got a carriage and that the carriage pulls the needles out to collect the knitting and then it pushes the back in again And then they come out pop out again. That's actually what does the knitting so because it manipulates multiple needles at once It can actually do it really fast So I think that's kind of the main difference between traditional knitting needles and a machine which uses one needle per knit And these machines are typically about 200 needles wide So you can do about like 200 needles with me or 200 nits wide Right, so this is actually really hard work So this video is the lovely Lorna what who's demonstrating a particular technique called Intagia knitting and she's using her knitting machine here So I wanted to show you this because I want to emphasize how much work Using these new machines are it's a bit like a sewing machine in the sense that you sit there And you have to engage with the knitting machine in order to produce knitting So it is considered a handcraft Even though you're using machine to simplify some parts of the tasks other things can be greatly Complicated by having over 200 needles if you're using a ribby, then there's actually 400 needles Yeah, so it is a handcraft and I had a crazy idea about automating this Which is a little bit little bit nutty I'm not gonna spend too much time on this slide But basically I want to emphasize that the these neat old knitting machines They they originally started being built in the night in 1955 or the brother range specifically the brother brand And they stopped making them the night in 1996 I think that was the brother 9 970 that was the last machine they've reduced basically the industry changed and People just weren't buying knitting machines as much anymore It was just so much cheaper and easy to just go out and buy your knits without having to make them at home Yeah, the industry changed so it They aren't being produced anymore So there's a there's a huge variety in terms of hacked knitting There's a huge variety of different machines all the way from purely mechanical to Electron knitting which actually has an on-board computer But yeah, so there's a bit of a lull in the actual history of knitting machines and then in 2007 There's this incredible server hack, which I'm gonna show you in a moment By a pair of Berlin student Berlin art students And then from there we actually see a whole bunch of other hacks coming in on these old knitting machines Specifically the electro range we have an Adafruit hack a yab shield, which is incredible basically replaces the on-board computer And then the knitter rate has anyone here seen heard of the knitter rate on Kickstarter Yeah, we've got a couple of people. How amazing is that machine? It's so so knitter rate is is a whole new domestic knitting machine, which was produced By a team who tried to start an open-source knitting machine project But because the hardware is so specific and these two or is so intricate that it needs to be mass it needs to be produced in a Factory they couldn't actually make it open source Completely so yeah knitter rate amazing machine really really cool right, so this is the the gel somnia by a pair of Berlin art students Make Delena and Hannah I don't actually know very much about this I can infer from the photo that they've taken an old Mechanical and Pizzio machine which has a punch card system in it, and then they've you can see this the silver Devices a servos which are reaching into an old punch card system and manipulating the punch card as it as it goes Which is fantastic. This is the only hack that I've seen out on the internet Anyway, that actually hacks a purely mechanical knitting machine I have a purely mechanical knitting machine at home haven't managed to hack it yet So I would absolutely love to find out more about this if anyone else can speak German and help me search for it But the actual hack that I use today is based on the Adafruit hack Which is the the core part of the hack was actually written by Steve Conklin with help of Lee more Frieda and and Becky Stern, so Steve actually wrote a Python floppy drive emulator and This Python floppy drive emulator if you use a hacked FTDI cable can plug directly into the old floppy drive port on the brother 930 knitting machine so the original floppy drive port the intention was you You draw out your knitting pattern onto a mylar sheet I'd basically a piece of paper you scan it into the onboard scan on the knitting machine and then you can Save so you can back up your patterns onto floppy drive and recover them again But I mean why why use the onboard scan and we can just talk directly to to this floppy old floppy drive port And upload patterns that were never originally, you know part of the scanning process Which is absolutely brilliant. That's something that Steve Conklin built that part of this hack, which is absolutely incredible Right so with with Python we can now Create a an image and it can be converted into a new pattern and then upload directly onto this very old knitting machine the 930 And that's the that's the URL for it I don't have the stage so we're talking roughly 2013 now and this is when I'm like this is so amazing This is incredible. I need to get into this and I found by complete coincidence on the London London hackspace wiki they had documented that they have a a brother 915 knitting machine and Anyway, just you know the documentation like it's in this location. You know you can find it here These are the maintainers I'm like you guys are awesome. I jumped onto the IC channel. I'm like, do you mind if I come along and like Hack your knitting machine like Sure, why not come on in and I'm like, oh you guys are so cool So mad shout out to the London Hackspace who actually got me into all of this in the first place really amazing group of people So this is this is me taking the Adafruit hack and using it on their brother 915 in a machine You'd think so the original Adafruit hack from the US it was on a 930 in a machine and then the The one that we had at London Hackspace was the brother 915 in a machine. They think 939 50 They must be quite similar surely the hack would just you know work seamlessly and not really The 930 in a machine is a 16-bit knitting machine and the 950 is a 32-bit quite different It took me a little while to figure out how to modify the hack to get it working on 32 bit But I did in the end and this is one of the very first things that I knitted from my computer So you can see the graphic there on my computer and the computer is Connected using ft of hacked ftgi cable, which I believe Charles Yain old actually hacked that ftgi cable for me So shout out to Charles isn't the audience today Yeah, so that was my first actual Print if you will Right, so this is my modification of the original hack that works for the nine nine fifty or specifically nine fifty I bet I'm nine fifty nine fifty I similar enough Right, so first point at point can accept an image from my computer Check. Yeah, I think I think I managed to do that. So that's that's good Right over the network Anyone here heard of octoprint? Octoprint for 3d printing. Yeah, we've got a few hands going up about ten I want to say roughly so octoprint is um is a web interface that effect is effectively designed to be a Interface to send your your files through to a 3d printer and I quite like the the implementation of it how you can modify some tweak it I'm pretty sure there's a preview feature as well You can do all these really cool things before you actually send it through to a 3d a 3d printer So I'm I created octonit So octonit is a web Interface that is sitting on a raspberry pi and the raspberry pi is the thing that is connected to the floppy drive port on my nini machine at home So now I don't I don't even have my computer connected to it anymore. I can be a completely different room I can set up an image. I can send it to octo octonit and it can Pre I can preview the the graphic in the actual knitting grid Before I I get the nini machine to stop to stop printing it So octonit it's the web interface for it and this is where octonit lives today So that's the rise reply connected to my nini machine And that's my source code for it. So it's now working over the network. Which is nice Right, so not just black and white and this is where things get quite interesting So When I was at learn a hackspace, I was running some tutorials for people to teach them how to actually work with these old knitting machines And I created some samples. So I was particularly interested in multicolor knitting or These samples in particular to color knitting. So I was learning I was actually learning about knitting and learning how to knit And at the same time trying to hack this knitting machine, which is blew my mind in a few places So here's some some samples that I made for the learn hackspace. I don't know if I still have them anymore They're kicking around a few years ago So these are four examples of ferrule and targia double-jackard latched ferrule. So they're just different techniques of knitting to color The mate in the front they look very very similar and this is the thing I want to point out that they look similar from the front but in the back. It's a wildly different story Fair on particular It works quite well for to color but when it comes to three color it on a knitting machine Anyway, there's a lot of hand manipulation and it gets quite complicated Same for a latched ferrule and in targia is probably the most complicated of the lot in terms of trying to get it to work on The machine so there's a lot of hand manipulation now. I'm trying to automate this process to simplify it. Excuse me So the particular technique that I was quite fond of is double-jackard and Double-jackard is double-layed knitting So you've got knits in the front and it's in the back and the pearls are in the middle for anyone familiar with the knitting terminology there So two layers. So you actually have one picture on the front and a completely different picture on the back It was really awesome. So we don't have to handle float like yarn. That's not being knit into the front In another technique like ferrule it'll be floated in the back, which is just a strand of yarn Which is okay if you have really short strands, but when your strands are Quite get quite long and they can get tangled they can start pulling on the knitting and the knitting can actually start falling apart Which isn't good. So I was quite fond of double-jackard and Not just for the reason that it's nice and neat and clean, but also because it really simplifies the process So this is me doing double-jackard So at this point we've got the network part and this is the actual knitting by knitting by hand So you can see there's two parts of this process There's the the left and right motion and then there's the button pressing left and right and button pressing and Compared to the video they showed you earlier of of learn of what knitting the intagia This is a lot closer to being possible to automate, which is what really excited me about this So double-jackard loved it Now the other cool thing was the knitting machine was always always possible to do multicolor knitting to do more than just two colors the patterns themselves actually supported it and in this card that you can see just On the right right hand side you can see numbers and there's numbers change you got one one one two and then one three Then one three four so you could always support multiple colors But what I really know in particular what I noticed about the original Adafruit hack was it didn't support multiple colors so when Steve Conclune and and Lee more Frida when they were looking into this They never completely reverse engineer the file format for these old knitting machine patterns So they never quite worked everything out So just with a process of Hacking it and trying and see what what you know changing things and see what seeing what happened Reverse engineering I worked out a few things like how to change the width and the height So the original Mylar sheets were 60 Essentially 60 pixels wide and 150 pixels tall, but the knitting machine can support a variable width and height So that was one really cool thing that really helped me And that that actually turned out to be a really important step to find out the next thing which is This Mimo field which always happens which was always blank in the original hack And this I'm pretty sure this comment here if I can read it out to I'm pretty sure the comment was written by I'm by Steve saying the Mimo seems to always be blank I have no idea really and I noticed that it was always the same Length as the number of rows in the knitting. So there's always the same size as the number of rows in the knitting and and that's where I'm like The color integer that's where we store the color integer It's how the knitting machine know is what color it's supposed to be for that particular row So I was super excited about that. That was that was a major epiphany moment for me. That was big turning point I think it's a circa 2014 this stage Right, so that's where I could work out that given an image and given Knowing what color we're doing in each particular row. I modified the hack again to support this color integer and Yeah, and I managed to knit out the More than two colors successfully Something else that I should probably point out is that the actual knitting itself Well, the limitation of only having one color changer on one side means that you have the you have the color on the carriage You go all the way from the color changer to the other side So you've started knitting on that row and then you have to return to the color changer before you can actually switch colors again So it actually has to knit up and then knit back Which means that in all of the patterns that were originally designed for the the brother 950i and any previous knitting machines It always had double height and I can show that to you in that previous example here It always doubles so you got 1 1 1 1 1 2 2 1 1 through 3 It's always doubling because always has to return to the color changer And in order to get that to look like a pixel to look like the images that I had on my computer I also had to double the width as well So I've been really really quite frustrating. I want to one nit per pixel. That's what I wanted That's just that was the thing. I really was quite passionate about so at this stage, I think what Let's be 2016 at this point. So I'd Returned home from London. I only had a two-year working visa here. I'm an Aussie by the way Returned home from London got married had a kid and and this is what this is the thing that was just sitting in the back My mind going we need to fix this we need to solve what we need to we need to make it happen So one thing about having a newborn is of course that you spend a lot of time awake your hands are full You are physically exhausted, but your mind doesn't really get exercise much at all So I found that I spent an awful lot of time thinking about this problem I was I had my hands before I couldn't actually do any typing or do any like in testing or anything but I thought about it and This is what I came up with Four different potential solutions to this particular problem and the computer scientist and me thought well Let's just do them all. Let's just program all of them and see what happens and This is the output We have here is Four nits per pixel. So that's that one Just to skip through a little bit what I call the offset method one it per pixel and The elongation problem is somewhat Reduced which I'll explain that every time you do a pass of the knitting carriage You have to knit into the back because it's it's bird's eye And I won't go into that too much But the more you need into the back and don't need into the front the longer the piece gets to try and Counteract the number of rows in the back that aren't in the front Which is actually pulling on the whole piece and so it resolves this by actually just elongating the problem or elongating the piece and This offset method I was most I was most happy with So one it per pixel this is something that no one else had previously done in the space before Using more than two colors. I did actually Go on to some knitting machine Forums and sort of a big big blog post on this on how it works and how you can do it out Like you can actually test the theory on a on a knitting pattern sheet and scan it into the knitting machine If you don't already have an already hacked a knitting machine, you can still test this idea Most people are quite confused by it. I Am I did get feedback from one crowd who? release commercial software for these knitting machines And they and and yeah, the main feedback from them. I got was it's interesting Doesn't work though, it's not possible It's right here. I've done it Physical it's I've done it anyway There's a there's the back because I'm a knitting machine Enthusiast I wish I the back of my work. So that's the back Done in double jack card with bird's eye backing and just a small Comment on for color There's gizmo and for color I don't do too much for color because with that many that many rows in the back that aren't in the front of that it's actually starting to Bulk up the knitting of a bit. It looks okay when you look at it in a picture But if even you want to come come up here after my talk and want to feel some of this fabric Yeah, for color just doesn't quite feel right as a fabric although it looks all right. So I Have tried for color Excuse me, so there's my code I've updated my code again So feel free if you're at all curious about hacked in any machine worlds. You can you can download that and have a play with it I believe that a a hab hack which is the completely replacing the onboard computer with a with a What I believe is an Arduino based machine. I believe that they've actually started incorporating this new Three color knitting pattern theory. So I believe you can actually produce My algorithm on there on their machine now, which is awesome Right. So more than two cars in any single row after all that. Do you reckon I've done it? Yeah, all right, sweet. That's really okay. Moving on hands free mostly Right, so I didn't actually reinvent the wheel this time. I just went out on board a brother motor K100 They're expensive. So you have to be a really committed to jump into one of these I did actually want to make my own motor arm that would you know reach down and do the actual side part for side swiping for me But you know, I've got a toddler so it's my excuse But the automatic color changer So I did mention earlier that we have two particular actions that were between me and getting an automatic knitting machine so one was that side swiping which is replaced by a Brother motor arm and the other one I actually went to I have to admit I went to my husband to who's really quite amazing in the world of hardware hacking I went to my husband asked him. Hey, can you automate this button pressing for me? And I need to take one look at the problem is like not can't be done Couple of days later, he can but he came back to me. He's like, oh, actually I can I've already done it Um, so this is his is a github repo. He's actually got so he's got not just the code for this Hardware device that he's created He's also got some instructions on how to build one Which is awesome So I've been getting a lot of requests saying hey when you're gonna sell them when you can sell them when you're gonna sell them I'm like Eventually, but you can just actually build your own Yeah, so big shout out to major really really cool on piece of tech So putting it all together. There's a time lapse video. So this is what this is where I say it's mostly automated So I still need to cast on For any hand it is out there that appreciate the casting of processes quite frustrating no matter We like what part of the knitting world you come from Yeah, the nice thing is I can actually walk away from the knitting Which is pretty much my goal that's really what I wanted to achieve which is good fun I do still have to come back roughly every hundred rows or so because the knitting is coming down underneath the knitting machine And it's being held down by weights. Sorry after about a hundred rows the weights are getting close to the floor and I need to Come back and move I'll try and automate that one too for you Right so so that so this particular knit actually was completely flawless it worked beautifully Other than that came back and move the move the weights It worked beautifully except the the device I was using to take the the time lapse it ran out of battery So you just have to trust me that it worked There we go cut out there And also the the casting off process looks very similar to the casting on so I just have to for each needle It's holding a knit. I just need to to close it off and finish it up So this is the piece of that that I was knitting that particular day It's a um tessellator rocket scarf MC Escher style. Good fun, right? Can hit nann hands-free mostly? What do you reckon did we get there? Sweet Okay, so I've got three minutes now to talk about the universe. So I'm gonna speed up my talking even quicker Oh, these are other things that I've done previously. So I've done more than just the universe So feel free to come talk to me about them afterwards All right, so My goodness I tweeted this on Sunday and it got since since last Sunday so a week now actually nothing about it It got four fourteen thousand retweets and seventy two to seventy two thousand likes on Twitter Wow That was overwhelming Yeah, amazing uproaring of love from the internet community, which is absolutely incredible I've never done anything that anyone's liked that much before so so so amazing So this piece was actually part sponsored by emf camp it wouldn't exist without emf camp I really want to emphasize that So the blue yarn and the white yarn was paid for by emf camp But I like I was a little bit too ambitious and I made it too big so that emf camp couldn't actually afford the gray yarn and you know That's fun So what you're seeing here is a picture of the The visible universe that we can see with the naked human eye So it's all 88 constellations across the top We've got the constellations in the northern hemisphere across the bottom of the constellations in the southern hemisphere There's the equatorial line that's through the center Which is basically the equator of the of the earth and projected out into space so you can get a sense of where What yeah, what part of northern and southern hemisphere you can see The gray cloud is actually representation of the Milky Way and We've also got the Sun the moon in the planets in this particular piece The stars have been scaled according to their luminosity or magnification actually So humans can see up to magnification five or six with a naked eye Comfortably, so that's that's how you can see that this piece Shows up to make the magnification five So it's really the the visible universe according to the naked human eye The planets I actually designed the planets to line up to a particular date and time and they lined up At 6 p.m. Friday the 31st the day that emf opened where to hit a deadline Oh So there's 88 official constellations Out there. There's actually 89 Which have been labeled in this piece and that's because serpents Constellation the one and only constellation out of the mall that is actually Split into two non contiguous parts so serpents Serpents quarter and serpents kaput have actually been labeled separately because it's non contiguous So that's why there's actually 89 constellations on this map. I just want to emphasize that It's been nitted using Luke Luke police sauce Australian wolf close to close to home So it's essentially 100% Australian made and because of that I I gave one constellation In this star map its modern name and that's the southern cross which can be seen on the Australian flag Yeah, I should emphasize again I couldn't have done this without the help from help and support from my husband I've been working on this for a couple of months now, and it's been pretty much every single weekend for several months Trying to get this piece finished for emf camp. So a big shout out to John Spencer. He's been absolutely amazing Yeah, and surprise it also lights up so I took this by the way Actually one one minute overdue now, so I'm trying to talk really quickly I took I took the star map to a hackathon in my workplace R. E. A. I. O Where I work is real estate.com. Do you and I got a team an amazing incredible team of 18 people and we say like a Designers front-end developers back-end developers system architects and and we got together over three days We built a website that talks to an AWS lander service that talks to an AWS IOT service that lights up Neo pixels in the knitting Which is controlled by an ESP 32 So incredible, but only eight of the constellations light up So eventually I would love to have to finish it and light them all up, but yeah you so you can actually see this piece In this tent Look for this tent. It is the lounge and you'll find it in there if you want to have it That's it


Hi and welcome to the session. I am Asha and I am going to help you with the following question that says, find the sum two n terms of each of the following series. First is 1 into 2 plus 2 into 3 plus 3 into 4 plus 4 into 5 plus so on. Let us now begin with the solution and let the k term of the given series be denoted by ak. So the general term ak would be equal to k into k plus 1 since the first term can be written as 1 into 1 plus 1, second term can be written as 2 into 2 plus 1, third term can be written as 3 into 3 plus 1, fourth term can be written as 4 into 4 plus 1 and so on. And now since we need to find the sum two n terms therefore taking summation on both the sides, k running from 1 to n ak is equal to summation k square plus k, k running from 1 to n. This is further equal to summation k running from 1 to n k square plus summation k running from 1 to n k. Now summation k square such that k running from 1 to n is equal to n into n plus 1 into 2n plus 1 upon 6 plus and summation k, k running from 1 to n is n into n plus 1 upon 2. But in further simplifying comes equal to n into n plus 1 upon 6 to n plus 1 plus 3. So this is equal to n into n plus 1 upon 6 into 2 times of n plus 2. So 2, 3s are 6 and the answer is n into n plus 1 into n plus 2 upon 3. And therefore the answer is 1 into 2 plus 2 into 3 plus 3 into 4 plus 4 into 5 plus so on up to n into n plus 1 is equal to n into n plus 1 into n plus 2 upon 3 into n plus 1 into n plus 2. So this concludes the session. Take care and have a good day.


So the latest patch arrived last Thursday which would be in the 15th of July. It wasn't the patch many of us thought it was going to be which introduced many buffs and changes to our classes but it was a patch to fix certain issues. But guys after having a look online it doesn't seem it's been that great with this patch at all. Today we get into it. How's it going guys? My name's DPJ and if you enjoyed the video leaving a like really helps out and if you like what you see and want to see more outriders be sure to subscribe. So the latest patch arrived last Thursday. It didn't change or add much but it claims to have fixed a few issues the game has and the next patch we will get will be that big patch with the many buffs to our classes and the way in which things work. Now I covered the patch notes the last week under the latest patch and went on to enjoy my weekend had a break won't lie gaming's due at the moment so why not. But I then jumped on my discord literally about an hour ago noticed many folks complaining about the latest patch. I then had a quick look through the reddit and you are seeing some of the issues people are having on the screen now. It seems as though it's the latest patch is a bad one. The very fixed borealist set actually doesn't seem to work at all. Many issues claimed to be fixed or made better have not worked and caused other problems. Signing issues still persistent. The game's stuttering and freezing again. Kicking people again. Horrible connections and much much more. So what's actually happened here? I mean the patch is prior to this while the few prior to this latest patch was setting up the game to be great again. It actually felt good playing it. Prior to those patches though I think we can all confirm we expected PCF patches on the game to fix one thing and break two others at the same time. And it's been like that since the start. But like I said these PCF patches started to actually work and make the game feel much better and setting it up to be a much much better game and when these changes to our subclasses arrived we'll have a better foundation to play with. Well that wasn't to the latest patch guards. It seems for many many people this has taken a U turn. Now it does seem PCF are aware of the issues the latest patch seems to have had on the game and it doesn't seem like they are fretting at all. I believe they think they have it under control and will roll out any fixes needed which is good to know. My only theory is the next major patch and what it's going to do in terms of yes we all can't wait for buffs and changes to our classes. Although we don't know what's actually going to happen here what PCF has said that they are making changes to the way in which some of these work from the ground up and have to be done according to the game which is expected. So many many changes to our classes are to be expected within the next major patch. But this latest patch from what we've had now leaves me thinking if they don't get this right and break things further it could bury this game even more and I don't think it can take much more bites. So this next patch which promises these changes I will and I'm sad to say this I feel it might be delayed slightly while all the fixes are made. I mean I don't want it to happen but it just might happen it might just be for the best and while if needs be needs be. I'd rather a good working patch than something that comes and breaks the game even further but that's just me. So yes guys the latest patch definitely hasn't gone too planned I feel it might impact the next patch so don't be surprised this week PCF announced a delay while all things go down or we get a preview of what's being changed and then it's announced at a further date that's what I feel is going to happen. But yeah guys tell me your thoughts on this latest patch. I personally myself I haven't jumped in and tested it yet but let me know how it is for you. Have you had any issues? Have you noticed ability to the game drop? Or is there anything else you want to add even if it's a good thing where you haven't had any problems at all? Let me know down below in that comments section.  But yeah the latest patch for the game has taken a slight u-turn and gone back in the other direction. Hopefully PCF can get this sorted and when that next patch arrives we'll completely forget about what's gone down here. On that note the end of the video has arrived if you enjoyed it even a lot really helps out if you're new around here I want to see more out riders be sure to subscribe and hopefully guys I will see you on that next one


Proof of Stake. Is Proof of Stake just an elaborate Rube Goldberg machine? Quoting from Samson Mao, Proof of Stake doesn't really work because it is essentially perpetual energy. Proof of Stake is secure because you know everyone has a stake in it, but they're ignoring external threats. What if you have a competing network? What if you have Justin's son with Tron who's trying to overtake Ethereum? He could just buy out some of the stake and attack the network, or a hacker. But it's more likely a competing network would be incentivized to destroy a Proof of Stake because if they destroy one network, another network goes up. This is a complex question. I don't actually agree with Samson in this particular analysis of Proof of Stake. For one thing, one of the challenges with the idea of what if someone buys enough stake is exactly the same challenge that you have with Proof of Work and markets in general? What if someone buys a big chunk of Bitcoin in order to crash the market by then dumping it on the market? After all, governments have billions of dollars. Couldn't they just buy up most of the Bitcoin and supply and dump it? What if someone buys all of the ASICs that are coming out of manufacturing plants or buys lots and lots of ASICs and then uses them to attack the network? What if someone buys all of the stake of a coin? The truth is that the action of going into a market and massively increasing demand in order to get a substantial proportion of the currency or the ASICs or the mining power, etc., has a side effect. That side effect, of course, is that you're driving up the price as you're doing it. That price action will be asymptotic, which means that effectively the more you buy, the higher you drive up the price and the more constrained the supply becomes, the more you fail to buy up significant amounts of the currency or the ASICs because the last percentage of supply, the price of the last percentage of supply, of course, approaches infinity as you approach that element of supply. No matter what, in any market like that, the amount of supply that is currently available to purchase is low compared to the amount of supply that has already been purchased in the market but is not available to buy. Ironically, in Bitcoin, we call that the stock-to-flow model. It's basically a fundamental principle for why Bitcoin theoretically has great price appreciation potential because the actual stock of available Bitcoin versus the flow of new Bitcoin that's available on the market to buy, that ratio is pretty high. That means that there's not enough Bitcoin available on the market vis-à-vis the stock of Bitcoin that is fixed and not available to buy. Same thing applies when you're talking about proof-of-stake systems. So, keep in mind, while you're buying up the percentage of stake, you're also increasing the value of the currency that other people already have and creating demand for it. There is a theoretical possibility that you could do this. However, that is no different than the possibility of doing something similar to crash the market with Bitcoin or doing something similar to crash the market by buying up all of the ASICs. I don't really see the analogy and I disagree with this. That doesn't mean that I know that proof-of-stake can work at scale and resist attacks as well as proof-of-work. I do believe that proof-of-work has a higher qualitative immunity element than proof-of-stake. Essentially, the immutability that is provided by proof-of-work is different and better than the immutability provided by proof-of-stake. In a proof-of-work system, it costs money to change the past because you have to expend the energy. Even if you have 100% of the mining, you still have to do the work to change the past. You still have to produce proof-of-work. You also still have to follow the rules of consensus or you end up forking the network because the economic activity of the network, which is concentrated in exchanges, merchants and users, their wallets and nodes that they're operating will not follow a different set of rules just because you change them with the mining power. Same thing applies with proof-of-stake. You can't just unilaterally change the rules, but there is less cost in changing the past. Can staking and DeFi or decentralized finance coexist? I recently came across several articles about how DeFi could hurt cryptocurrencies whose consensus model is built on proof-of-stake. And there's a link there to that medium article, which was a really interesting read. You can find that in the questions section. The author basically reasons that one can simply take over most of the stakes from a cryptocurrency by offering its users more attractive rewards somewhere else in a DeFi project. What do you think about this opinion? So to paraphrase a bit, when you have staking in a proof-of-stake system, you put up your staked coin. Let's say Ether, although Ether is currently a proof-of-work system, but is planning to go to proof-of-stake, you put up your Ether in the proof-of-stake system in order to ensure the security of the network. And that Ether then can earn a tiny bit of reward effectively through the block subsidy from the new Ether that's being generated in each new block. Now, that's not the only way to earn money on Ether. In fact, the whole field of decentralized finance has merged with a whole bunch of financial products that are built on smart contracts.  And of course, when you're lending to others, you're using your Ether as collateral in order to do lending or to borrow a different token. And in that case, you earn interest through that lending activity. And so what happens if the interest that is being produced from lending is better than the return that is being produced by staking your coins in proof-of-stake? Well, a rational economic actor in that case would move their coins from the staking to some kind of lending platform in order to make a better return on their investment. And if you follow that train of thought further, you could arrive at a point where a lot of people move from staking their coins instead to lending or investing their coins in a variety of decentralized finance instruments. And that means that the pool of stakers is pretty small, which makes it easier for someone to take over the proof-of-stake algorithm. The equivalent of what would be a 51% attack in a proof-of-work system is a one-third staking attack in a proof-of-stake system. You have to have about two-thirds of the staking actors acting honestly. And there's two ways to beat that system. One is to put up more stake than everybody else, but the other is to simultaneously reduce the stake that everybody else is putting up. And one way to do that is to artificially drive up the interest rates or returns on decentralized finance products. At least that's the theory behind this and other articles that have been written on this topic. Now, this gets a bit more complicated because the actual return you get from staking depends on the monetary policy of the underlying cryptocurrency. So if you're operating in a network that is inflationary, then there is a continuous block subsidy which generates returns for those staking. But what if you had a neutral or deflationary monetary policy at which point you no longer have block subsidy generating lavish rewards, but instead the rewards were diminishing over time, then that drives even more pressure for people to make better returns in an open market by staking the coins in an decentralized finance project instead of putting them as a stake against the proof-of-stake system? All of this is very complicated. This is part of the dynamic nature of open markets and economics in this new realm. And honestly, nobody knows exactly how this is going to play out. And part of the reason we don't know is because people behave differently at scale and with real money at stake than they do on paper when simulated in a financial simulation, an agent-based simulation, as one mentioned in that article. So we're going to have to see. One interesting thing that I didn't see mentioned is the possibility of being able to have your ethers simultaneously collateralizing a loan and staked against proof-of-stake. I don't know if that's possible, but it might be possible to stake coins that are collateralized in a smart contract against the proof-of-stake algorithm, in which case some of this problem goes away. And again, no good answers here. This is one of those. We're going to have to see how it plays out. And certainly this interplay between how much money is locked in decentralized finance contracts versus how much is locked in proof-of-stake is going to be a very, very interesting development as proof-of-stake coins develop in the future. If you enjoyed this video, please subscribe, like, and share. All my work is shared for free. So if you want to support it, join me on Patreon.