Let me try again, thank you. Desktop one, desktop two, and I'm so automatic at hitting desktop one. Oh, well, thank you for pointing that out, Ian. This is all the stuff you've missed so far and seeing on the screen. That's a, well, lots of things to see on my screen and list of files. Oh, well, okay, let's get started. I will hand over to who's going to present, Golda. No, Kenny's going to present. He's the one who's working on it. Okay, so I will stop sharing that screen or either screen and turn it back over to Kenny. Yeah, good day everybody. I'll share my screen. I don't need, can we also share my screen? Yeah, I'll share my screen. Okay, so what we are doing right now is to send machine credential to the VCDI format, the W3C format. So I've started running the agents due to because it takes time to run the agents. So I've started running it already prior to the meeting. So this is the Faber agent. We're running the Faber Alice agent. So this is the Faber agents already running and created connection between both of them. So, yes, we're up to that, yeah. So yeah, this is the part where the Faber issued the credential to Alice. We could see the credentials issued, the connection ID, the comments and the formats, if you touch to the VC formats and get to send an offer to Alice and we could see the attachment formats and we could see the credential offer. Where Alice issued a credential of... I think I'm not sure we're seeing... Are we seeing the whole part of your screen, Kenny? I think I'm only seeing the part where the build finished. Do you want to load onto your screen the part with the VCDI credential offer? Okay. Yeah, I'm only seeing the terminal with the Docker Compose build. Okay, I think that's... Maybe it's in a different tab of your terminal or if you wanna share your whole screen either way. Okay, I'm trying to... Yeah, no worries. Let me stop and share again. This seems to be a theme today. There we go. Okay. So is it better right now? Yeah, now we can see. We're seeing the QR code and the rest of the log. Yeah. So, okay, what you guys missed out? The connections were already created between Faber Agent and Alice Agent. So, this was the part where I sent the credential. I issued a credential letter to Alice, which is open running already. We could see that it sent a pillow to the endpoint, send offer, which sent an offer and created a credential proposal with the format of VCDI. As we said before, VCDI just did a written format. But that's the name we chose. We all chose. And also with the filter attachment and credential offer being sent to Alice. So, that's, if you look at Alice, Alice received a credential. Let's get down to where our credentials are. So, our father received and credential was being issued to Alice. Cool. And then... Yeah. Go ahead. Go ahead. That's a little bit. So, as far as the new endpoint, I think we tried to make them as smallest perturbation as possible. I don't know if Sarthak, if you want to share as far as using the new endpoints. Okay. Okay. As far as using them, it should just be a matter of, I don't know if Sarthak, if you want to share as far as using the new endpoints. Okay. Okay. As far as using them, it should just be a matter of choosing the type to use. Yeah. And I don't know, Kenny, if you want to show the piece of the code. I don't know if you had that prepared to just show the call to them in the branch so that people can see how to call them. It's, you know, it's as little different as possible. So, it's like, it's not a whole big chunk, you know, that you have to import. I believe it's just a flag that you're adding.  Do you want to share that Kenny? I'm not sure if you have it handy. I don't want to put you on this. Yeah. I appreciate that. And this should be it. That is when trying to run it, you have to declare, there's a declaration of the credential type. You're running with. Yeah, I mean the code for the new demo. I don't know, like, just to show the, you know, the test that we're running in the code to just to show that it's, it's almost the same as the other demos, but just like a slightly different flag and format. Okay. We get that. Sorry. Yeah. No, no worries. And if there's questions, Sarthak's also here who's been working on it some too. So. The code is still in our repo with a pull request into. The ACAPI. So if anybody has opinions about the pull request. They're welcome to put it in there. I saw a couple of things myself that I want to make it a little more dry. So we're still, you know, we're still doing a few final changes on it or the next couple of weeks before it's actually going to merge. We could just share the, we could just open the PR and share that. I don't want to take too much time here. I don't want to take too much time here. I don't want to take too much time here. I don't want to take too much time here. Stephen, if there's other stuff we got to do. Yeah. Warren, you want to go ahead with your question. Yeah, thanks. I haven't really been. Paying attention to what's been going on in the. In this particular. Branch of investigation. Would somebody mind catching me up a little bit if that's not. This is. Providing a way that the non creds credential is passed in W3C, VC data model format. VCDI means VC data integrity proof. And so the format is of the credential and the presentation is in the. VC data format VC DM. And then it's in the W3C format. So what that means is we're passing data in a standard. W3C standard format. It can be held whether or not. It can be held by a. A holder that may or may not know enough about it. And in particular. We can do parallel signatures, and then we can put in a non creds and a. For example, ECDSA signature on the same credential and leave it up to the holder and where the holder is interacting with a verifier, which signature to use for a given presentation. So that's the sort of goal of this. Does that make sense? Yeah, I think so. So I'm wondering about the compatibility. Like, are there. Wallets that would then be able to ingest this or interact with this that wouldn't have been able to before. Yeah. So we're in parallel to this. There's an effort. A code with us that animal. Solutions is developing that adds this to both credo and, and to bifold. So we plan on using this in BC gov. And, you know, allowing others to use it as well so that, so that we can transition over to always using W3C format credentials. Compliant credentials. And there's no more. Is it a non creds? It's still going to have in a non cred signature, but the format will be W3C format. I see. Okay. Thanks. And then, and then as well as I say that does lead to this idea of a non cred signature so that where a, for example, a jurisdiction or a verifier absolutely requires that a, for instance, hardware base can be used that can be done, but where, but that allows, you know, linkability and less privacy protection. And so where that's not absolutely required, the privacy preserving credential signature can be used. Yeah. I mean, for what it's worth that, I mean, I got interested in this because ceramic is doing a similar thing where it's basically, these are all just JSON blobs and like, why can't we arrange them in a format that's compatible with W3C since that's also a JSON blob with certain rules and, and a signature. And so I'm excited to see everybody kind of standardizing on, on the actual standard and that way, you know, if they have that in the credo wallet, then somebody else who's not even in the non creds universe can like, oh, I look at this credential, they can use it. And I think that's, that's going to be kind of cool. Yeah. Great. Thank you. Any other questions? And yeah, I think I guess you've got it up on the screen, Kenny, as far as just, you know, what it is you need to do to use it is just in, there's a demo there. Excellent. Yeah. So we totally welcome any thoughts as you were preparing for the final merging. We should be getting approval and merging within, we said by March 15th, I think. So that's the goal. And we'll be working with people's group more. Excellent. Hey, all right. Thank you. Thanks very much. Any other questions or comments? All right. Hey, I picked the right screen again. I think you're seeing the, the agenda. Excellent. All right. There we go. Oh, okay. Just a slight delay. I got it. We're actually two screen chairs running for a second there. Interesting. I just grabbed it even without waiting, but we're good. Okay. Good. Okay. Presentation. So updates on various things and on credits RS is Jamie here. Yes. Jamie, you want to give us updates? I believe endorser is done. Yeah, it should be. All integration tests are working for endorsement and running on PRs. And it, yeah. So I think that should be done. Unless something comes up and. Okay. And now we've been working on a design and then Jamie started working on an on credits RS update process. So when you want to transition to using an on credits RS. The multi tenant case had to be handled carefully. Notably. What we want is for an on credits. So we want to have an on credit. So we want to have a tenant to be able to independently update their tenant to use an on credits without having to do it in. In coordination with all of the other tenants. So we didn't want to have an acopie upgrade. Trigger the. So when you start to use the non creds RS, you have to update the rec series of records. You have to use the non creds. And. If that was done at the acopie level versus at the tenant level, then it would require updates to controllers of all of the tenants at the same time. And we didn't want to have that. Certainly in BC gov. We have. Tenants that use their own controllers independent. Implementations of controllers. And so. The process now will allow tenants to upgrade on their schedule. So there's actually a endpoint that is called. And the, the basic idea is the controller would. Ramp down their instances for a given tenant controller. Ramp up the instances with new code that uses the new endpoints for an on credits. And that new code would also call the endpoint to upgrade. So that would all be coordinated within the tenant controller. And independent of. Certain settings in acopie. Obviously there's things you can't do such as. Upgrading from an indie SDK. Tenant. If you will to. Using an on creds. RS directly. So you've got to be on ask our already. And things like that. So. That change has been done. What Jamie's been working on right now is. Making it so that credits and an on credits libraries are both loaded. Into acopie so that tenants can be using either of them. And. And that. All the. Endpoints are available. However, depending on. Which wallet type. The tenant is using whether they're using ask our or ask our an on credits. Certain endpoints will return. Will. Will just return as not available. So if you're using credits, the new endpoints will be not available. If you've transitioned to using an on credits. The old. It will be not available, but those will be. Not removed entirely, but rather. Will be on use. There will be a check and say, no, you can't use this endpoint. Given the state of your. Settings and your tenant. I think I got that all right. And Jamie's enabling that and getting that work done. Jamie, you want to give a brief update on where you are on that then. Yeah, it's pretty close. There's like a lot of work to. Well, there's a lot of work to do with the. Integration tests and. The demo, because. When you run it in a non-creds, then it has to use. The different endpoints for. Creating. Yeah. I think this. Like the schema and credit debt were already done, but now the. There'll be. Different paths for. A non-creds ratification versus normal revocation. So all that had to be. Changed, but. Yeah, I'm hoping to have a PR ready to. By today. Yeah, I saw the PR you put in you. So you've got a start of it in there, but more to do. So that's awesome. Yeah. One quick question on the revocation. Are we in the new. Version, are we a. Controller control of the revocation, like it's all handled by. I don't know, Daniel or Ian. Is that all under the covers? If you will, that's what we wanted, I believe. I believe that is true. The only thing that was like left as a question. And the implementation was whether. We needed to expose recovery processes, which I think we decided we did. Want to have some recovery mechanisms. Okay. Since that's something we've experienced in the wild before. Yeah. But like manually setting up a revocation registry or. A series of. Entries that manually doing any of that stuff has been removed and it's all just handled automatically. Okay, good. Good to hear. I had a, I answered a question on discord where somebody was outlining all the steps they were doing. As a. As a controller and I'm just like cringing because I'm just saying no, you don't have to do all that. If you miss it's done. So. Thanks. It should be pretty straightforward. Like. You have to send a different payload. But it's not like a lot different for creating schemas and credits and then the revocation endpoints. Are almost the exact, or I think they are pretty much the same. For most of them. Okay. So. In theory, it should be pretty easy to change over a bit. Good. Good. Okay. Any other questions, comments on the non creds RS work. Sounds like we're getting to the end of getting to the close to the end of it.  Yes, I'm back enough. Okay. I really like to talk to you and perhaps. Jamie as well and anyone that's interested, let me know, but on. How one goes about implementing another. Ledger. So another VDR in acopai. With an on creds RS in place. I think you've done the most thinking about that. And so would love to have a chat about that. Some folks from Hadera are very interested in this and they want to get started. And I'd love to be able to give them some guidance on how to do that. Cool. Sounds good. All right. Excellent. Thanks. Okay. And Daniel, I saw that you've done some updates on did peer and AFJ interop. And PR 2748 just wondered where you were on that. Yeah, this is again, I've been out for a few weeks. So not a lot of movement, but I've returned to this and started poking around again. I was under the impression that handling multiple versions of a protocol by the same handlers. I was under the impression that was more further along than it actually is. So there's some catch up that needs to be done there in order to make it so we can actually handle 1.0 did exchange and 1.1 did exchange. But I think that's the last thing keeping this PR up at the moment. So I'll be digging into that. It's kind of been done before without a band, but I'm not totally happy with how that's been handled there. So I might follow suit. I might try to improve upon that a little bit. But either way, hoping to make progress and get this done and out of the way as quickly as possible. Excellent. Good. Okay. Not seeing Sheldon here. So we'll move on from that. Akif did rotation. You're getting close to that one. I saw some commits today. Yeah, just was finishing up some of the stuff from the PR comments. So this morning, just working on adding two more end points, which is to create that did appear two and four. So I think that was one of the recommendations is that right now there's no end points to actually do that outside of the did exchange create request. So I'm just pulling some of that logic into a separate endpoint that will be under did rotate. So I can share my screen. Yeah. Ian, are you listening to this? I'm a little worried you're doing the same thing. Oh, we should coordinate. Yeah. Definitely. Yeah, if there's realize you were working on that a key. Well, honest, but maybe I mean you might be doing for me on share my screen and you can share. Oh, there's a beautiful sun coming up here. It's quite bright. Yeah. So you guys can see this. You're not here. I thought he was here just I'm here. Oh, okay. You're. Oh, there you are. You're not. Yeah. So basically it would just be a post method under did rotate. There'll be another one for did peer for and the only two things that I think that is required to create the did peer is whether you have a mediation record and your current endpoint. So I was just pulling the logic out from what's been did exchange. I noticed that things are added in my query here, whereas I'm not sure I usually tend to do things through a JSON body, but you guys can let me know if that's the right way to do things, but. Yeah. There is the setting. There is the setting emit did peer to and did peer for. That's right. Wouldn't we use that. Um, I think that's still all embedded in part of the did exchange logic. So you still have to add things in order for it to create the to call the create method. Yeah, so Steven. The stuff that I'm working on is related to using the did peer to and did peer for and invitations and connections. Yeah, so I don't think there's overlap right now. So. So what the, what the, what the stuff I'm working on it will create a did peer to or did peer for for the invitation based on the setting. And then reuse the, if there's an existing did peer to or did peer for it'll reuse it. And then I've been testing that with connection reuse and blah, blah, blah. The other piece that I talked about working on that I haven't started yet is the ability to actually create did peer to and did peer for independently through the wallet create did. But I haven't, I didn't touch that yet because I was running into the same issues that Akif was just talking about where you need a bunch of extra information that needs to go into the dead. So, yeah. So I think Akif and I should probably just touch base. Yeah. You know, we're not stepping on each other's toes, but I don't, I don't think there's overlap right now. It's just potentially we're touching the same code. Good. Yeah. I'm just wondering if the create should be what you're using a key for rather than putting one under rotate that's. Yeah, I was just kind of thinking about that so this could actually be under the wallet method or sorry wallet endpoint so it should actually be maybe slash did peer to slash create and then did peer for slash create so it can be under here. Well, you wouldn't, you wouldn't need to separate end points because you can, you can just put the method specified in the Jason body and the did create. Yeah. Yeah, okay, we can we can do that and maybe so I can I can maybe stop the work on that it was kind of just minimal work that I was doing this morning but the other thing that we talked about was having as part of did rotate is you need to specify the did to rotate to but the possibility of down the road adding like sort of all in one method that does the did creation and does the calls the rotate in one step so right now it would be a two step method. But I think for the purposes of getting this done I don't know if we would add that right now. Okay. But yeah, yeah. Yeah, so this is just a general concern. It can wait until after a Keith is done talking here but about did peer to okay. Sometime last week is brought to my attention that the service endpoints for I don't remember which agent it was maybe this is something that needs to be brought up in the areas discussion. But some of the service endpoints being generated their type was did calm communication rather than. Yeah, did calm messaging instead of did communication. But there's a difference there in that did communication has a string for service endpoint and did calm communication is supposed to have a JSON object as its service endpoint. Well, it's did calm messaging is supposed to be or is geared I guess more towards did calm v2 rather than v1 and vice versa so just something that was brought up to my attention that I thought I should raise here. Do you have the definitive what it should be. It's so both did communication and did calm messaging have the except field inside of the accepted parameters of that service type. And you can specify whether you want to do did calm v2 with either one of those service types. The main difference between the two is that they're expected to be structured differently. You have the routing keys and recipient keys nested at the same level as the type attribute, whereas in did calm messaging it's nested inside of an object inside of the service endpoint attribute. So it's, as long as you're consistent with your, your structure of the service object itself. You can use either one for either did calm v1 or v2. But it was brought to my attention that the did calm messaging was using a in one of the agents somewhere was using a string rather than an object which was supposed to use. Yeah, as far as I'm aware. As far as I'm aware occupy is is using exclusively did communication for the service objects that it's creating. So where did come messaging is being seen. I suspect that's probably in a fj or credo that we should be looking at for some scrutiny there, I guess. And, and it did communication remind me is it a Jase a string or Jason. For that one, the service endpoint is expected to be a string. Okay. Okay. Thank you for popping in there with the more definitive information day. Okay. Thanks for bringing that up. Let's take a look and did messaging it did I get the string right there. It's that did calm messaging and camel casing. I just typed it in the chat for clarity. Okay. Thanks. I could see the chat because it's so bright in here what a son. Thank you. Okay. All right. Any other comments on did rotation sounds like we've got some coordination to do, but it should be fine. And Ian and a key for work it out and let others know Daniel's looking at the did rotation as well. So you'll have a hand in that one. Yeah, I just, I just want to, I guess so for the updating the wallet met the end point. Because creating a did peer to requires a few extra things. I think that would have to be refactored a bit. So if everyone's okay with that. But just, um, I would only only affect it if you're making a did peer to two or four. Yeah. Two or four. Yeah. I think that's additional features. Right. I think the wallet end points have been overly focused on like did sovereign did key creation so far. So the options are rigidly defined. For what is required to create a did software that key type did. So I think as we, as we support more did methods. The requirements for each did method is going to be quite specific. So I think it makes sense for that options to either be arbitrary. You can specify anything you need. And then the method that you define processes, those options and complains if there's issues with, you know, missing options or anything like that. At the end point level, we just accept an arbitrary objects of options. Okay. I think, I think that makes sense for now. And then down the road, we can continue to generalize it further. So I think that makes that makes it easy to get this implemented. Excellent. Okay. And then the last thing I wanted to touch on. Implementation work that's going on is did RPC or sorry, did com RPC the RPC. Just the lessons learned, Akif and, and what, what is added. Yeah, so that was also me. So the lessons learned was at the time of the initial, the way that our RFC was written is problem reports and acknowledgments were not required and I still we don't need acknowledgement messages from based on the experience of implementing this. But what we did come across is if there was issues with the agent to agent messaging the, the requesting agent doesn't have a sort of context of if anything goes wrong and why it went wrong. So we thought that maybe it might be best for the responding agent to actually send a problem report if there is an issue processing the incoming request at the agent level. And then that would further just complete the transaction. So yeah, I think we just added a little piece in the RFC that a problem report should be could be sent by the responder. Yeah. With that being said, from what I've been told is that the DRPC implementation is working both in Akipai and Credo. So for the intended use cases that the BC wallet team is using it, for example, they seems like it's working well. Yeah. Excellent. Yeah, so Daniel not application layers but just messaging layers at the application layer of the API returns validation errors. But if by chance you pass through the validation and you send some kind of bad message or something that the other agent can understand. Seaborr not Jason. Sorry. You said more instead of Jason. Right. Yeah, you're just basically what you're what you're saying they're Daniels. Yeah. Messaging layer errors. Okay, excellent. All right. We have an RC one Akipai RC one. Are we ready to go with a RC to I think my plan was that did rotation. And ideally the reuse so the two things that are active and close to completion would be included in 012 0. Thinking we could do an RC to I sorry I didn't get a chance to create a query that would show where what's what's in RC to So, you know, or sorry what's in main that is not in RC one. I probably should have had that ready to go. Hang on one sec. Open merged interesting. There we go. So there's RC one there.  We've got a non creds things. One of the main things was the problem with the revocation notification this one. Yeah, that's this one. Yeah. Which was causing issues in. Yeah, so I think we will probably will I'll do an RC to just for that one. But I think we're holding off on on finalizing 012 0 for did rotation and fear did and reuse. I think those things should be all part of 012. We good with that. Yeah, we definitely want this almost know. Sorry, we just definitely don't want any of this non credits upgrade stuff in 12. Okay. Okay. Status of 1.0 I don't know that we need to spend a lot of time on that. It's going to follow 12 fairly closely I think the non credits piece will be will be it with the upgrades. And, you know, people will be able to use it still with prior but but the goal will be upgrading to the ledger agnostic and on creds and be able to use that with a bunch of other ledgers. DRPC was added directly into credo. It is in the main branch, but I'm not sure whether it's going into 050 or not. So, in response Jose to your question I'm not exactly sure where it would be that would have to talk. Yeah discord message on on open wallet would probably help with that. All right. I think we've covered PRs. I don't know if there's any issues that we want to go over. So we're probably done. If there's any other topics people want to bring up. I actually did have a couple of issues that I opened up that might be worth calling out real fast here right here. Yeah. So, first, I'll briefly talk about the multi use invitation one. It's this is really low priority. There's just an issue with emitting the key list update web hook. We can probably push that off. It's not really here on fire. The next one though that did pure respond in kind behavior behaving quite strangely. So, when using a multi use invitation. And having somebody perform a request through that multi use invitation with a did peer to or did peer for for some reason that I do not understand yet. ACPA is still creating an unqualified did, but instead of including the did document and they did doc attach it's doing it did rotate attach. So it's this weird mixture of two different routes through through the protocol. Okay, so this is quite broken at the moment. I need some attention. Okay, this one's really high priority then. Yeah. Okay. Are you able to take that or do we need to find somebody else to this. I can take a look at that one because I think it's going to be the same codes that I'm working on right now. Yeah, you're probably right. Okay. If you don't mind, I'm going to attach your name to it. Thanks Ian. Take a look at it. Yeah, I'll take a look. Okay. Well, that didn't work. Sorry. That worked. All right. Any other ones you wanted to highlight or anyone wants to highlight. We've got the upgrade the two wallets concurrently so recent ones. I did have this one. Daniel I don't know if you want to take a look at this one at all but this is the running the generate open eye which I run when we do a release. I got an error on fail to start. It has to do with permissions and agent log. Aha. I just realized that. All right, I suspect we've seen this before this has to do with the multi multi log. The multi tenant logging change that was made I'm sure. I could certainly take a look. It looks like you were able to work around it though, right? It's probably honestly not required for us to have any logging going on for the open API generation. It just spins up and occupy instance in order to. Oh, I know that. Yeah. So we can probably just remove that line and just call that good. But there is no logging going on. Doesn't occupy have to be running in order to generate the open API. And so then this isn't then the script didn't work. Yeah, I think the script needs adjustment but it's it's a matter of over specifying. Oh, I was able to fix this by removing the log item. That's right. Yeah. Yeah. Yeah. Yeah. Okay. I can probably fix that. I should have realized. So I did realize what was going on. Okay. Sorry about that. It was a while ago. Okay. Log file. I just have to find where that is. I'll take a look. Okay. Oh yeah, there is a fun one here. And again, not a hair on fire one at all, but there's certain places. So we use doc strings to generate internal documentation. And when people put in comments that are documentation doc strings, sometimes they structure the data such that we get errors in generating the documentation. And so there's a handful of places right now where those errors are coming up. So at some point, somebody will take a look at that, but it's pretty low priority. There are some recent one recent ones. Yeah, I think that should cover other than that people are working on some of the other ones I just noticed the one Daniel's working on, for example, the Accompany credo did exchange. So, Sounds good. The poll requests we're getting down to eliminating the last of them. Obviously, we've talked about these ones that to concurrently did rotate. The new format was what we demoed early. The please acts will go away once the, the areas are FC is merged. And then these last three, I'm, I don't know what we'll ever do with those Daniel. I'm hoping you can tell me. Probably end up closing. Yeah, to be honest. Yeah. Yeah. All right. I had any other questions. Oh yeah. Yeah. Yeah, one more issue that was opened a few weeks ago. There was some back and forth on it and then there hasn't been any, any further chatter on it, but it seems like it might be something we will want to do is a 2781 the lack of user agent header one. I don't suppose anybody's heard any movement from the anatomy folks on this. It seems like they have a fix. Maybe all we need to do is just encourage them to open a PR. Yeah. But yeah, this one seemed like a This is preventing occupy from being used in certain environments, which isn't ideal, of course, AWS especially is picky about which user agents it permits. Definitely not ideal. Yeah, okay. And so is cloud player. So I remember doing some Python stuff and the Python was getting blocked because cloud player was like, oh, you might be some sort of bot network. Yeah. Sorry, I'll finish this off in a moment. No need to wait for this. Okay. All right. Any other comments to wrap up. Thanks, Daniel. And I'll I'll try to set up a meeting a little later this week to talk over the how to do a registry had era folks are really anxious for it. So I'd really like to help out, but I don't have an answer of what that is. So I'd like to coordinate something. All right. Thanks all for joining. Yeah, thank you. And with that, we'll wrap up the meeting. Thanks for the demo. Golden team. Kenny and team. And we'll see you in a couple of weeks. Take care all


One of his pictures are equivalent to ten of somebody else's. You know, you go to movies, you go to movies to be, to be involved in the picture, to get a sense, I just want to, I want to lose myself up in that screen for a few hours, and in a sense, notice like to be human. Then you come across certain kinds of films that when you go to the theatre and when you see them, you're completely surprised. They make you look at life a different way, they make you look at being human a different way. They touch areas that you don't want to touch sometimes, it's provoke you. And then there's that rarest of films where when you see it continually over years, 10, 15, 20, 30, 40 years, you still see more in it. And what's even better is that if you're making pictures, you go back to this well, this source for A, inspiration, and B, and maybe it should be A, is to learn, to learn how to make pictures, to learn. And remember when you get tired, especially if you make 10 or 12 films in your life, you get tired and you say, why, how can I get that better? What can I do? You look at that source, you look at that inspiration, you say, well, Kubrick, Kubrick wouldn't let it stay this way. He would have changed that angle, he would have worked it out, he would have tried to figure out getting more time to shoot the scene this way or that way, he would have really seen it through to its end. And for that inspiration, I must say, I must say, it's looking at his films.  Sometimes you can see the rhythm of the cutting and the camera moves. And when he cuts in a two shot conversation, the classic one is Mr. Grady, Jack Torrance in the back from crossing the invisible line with the red background, the cuts. And when he cuts, when he destroys the invisible line, and when the shot gets tighter, on which line of dialogue. Did you know, Mr. Torrance, that you're savvy? As a filmmaker, you have to tell a story to the audience. And in so doing, you have to translate it through an image, which means that you direct the eye and the heart to look in a certain way, the way you want it to be, the way you want them to see it. And I never saw anybody tell a story that way. Pretty much every one of the films, pretty much every one of the films, you could study the shots.  They affected me. And then I went back, when I began to learn more about filmmaking, I went back and I kept saying, why is that one so powerful? Why is it so powerful? I went back and I tried to trace backwards the shots. And then eventually, you know, eventually it was, I started making films before there was video. So I had to do this going from theater to theater, you know. So it was a different thing, I was trying to write down notes. So why does something stay with you for so many years? Why do the tracking shots and pads of glory stay with you? It's really a person with a very strong, powerful storytelling ability, talent, genius, who could create a solid rock image that has conviction and that that is the image. What's in that frame stays in that frame. What isn't in the frame is out. And that's it. You have to compose it in that frame. I didn't know he was a still photographer before. And it's of course the still photography, once you get that image, but then it moves. Still cameras don't move, you know. And so it has this extraordinary authority saying, look, I'm going to tell you the story this way and you're going to see it this way. Then you add to that what I feel about this picture is when you add to that, you add to that, assuming there's good and there's bad, assuming something is wrong and something is right, what are we ultimately as human beings? Are we fundamentally good? Are we fundamentally bad? I think there's where you... That's why you can watch these films again and again and again. The shining is fascinating for that. It's really all going on in his head. Jack's head, you know.  Remarkable film, remarkable. And the more you see eyes wide shut, the more you get involved in that world, at a certain point you don't want to because it's too painful. When I went to see it, I expected much more than a film. And I said, we got it. Hey everyone, I hope you enjoyed. Obviously this week's video was a bit different than usual. I'm working on a bigger video for next week and felt a little bit behind after the holidays. I needed some more time to catch up. I've also wanted to try content that's a little bit different than usual, and this was the perfect excuse to do that. Anyway, please let me know if you want more content like this or if I should just stick to the film dissection. If you're not already, be sure to hit that subscribe button. And if you want more Kubrick and Scorsese, I put a playlist of all of my videos on their films. Thanks for watching and I will see you next week. Again, I'm really excited to share that one with you.


Personal Finance PowerPoint Presentation, Second Mortgage. Get ready to get financially fit by practicing personal finance. Most of this information can be found at Investopedia Second Mortgage, which you can find online. Take a look at the references, resources, continue your research from there. This is by Julia Kagan, updated July 31st, 2021. What is a second mortgage? So typically if you're going through a home purchasing process, usually we can't put all the money down upfront. We need some type of financing, some type of loan. That's what we're talking about here. Possibly some situations you might want or need multiple loans in place, hence the second mortgage. So a second mortgage is a type of subordinate mortgage, subordinate to something else, another mortgage. Made while an original mortgage is still in effect. So we don't have a situation where the second mortgage is replacing another mortgage replacing the original mortgage, for example. But now we've got the two mortgages in place. Now remember the one component that gets a little complicated with this, which is why you've got this kind of subordinate item in here, is that when you have the home loans, typically the lender is going to safeguard themselves in the event that you default that you don't pay on the loan by having the loan as collateral so that in that event they can foreclose and so on and so forth. But if you've got two loans from different lenders and something like that, then you've got a situation of, well, who has the primary recourse to the collateral? So it might go then the primary mortgage would have the first recourse most likely then, and then the subordinate would have the second. That doesn't mean that they have no recourse on collateral on the home, but it would be second to the first loan being paid off basically first. So in the event of default, the original mortgage would receive all proceeds from the properties liquidation until it is all paid off. Remember that the lenders don't want to foreclose, they want to get paid on the loan. But clearly they want the collateral there in the event that the loan isn't paid so that they can recoup the loan amount by selling the home. So that would mean that if the first loan, like if you sold the home for $200,000 and the first loan was only $100,000, that would mean the second loan would still have that recourse for the value of the home, for the added value of the home to cover it. But it doesn't have that primary recourse and if there was a decrease in the value of the home, then the second mortgage would be more at risk in that instance than the primary one and that's why it would be subordinate, not as good a position, but still possibly having some benefit from the home as recourse. Since the second mortgage would receive payments only when the first mortgage has been paid off, the interest rate charged for the second mortgage tends to be higher. Why? Because they're taking on more risk and we're talking about a risk versus reward type of situation. So if the bank wants to then sell money because it's a market contract, they want to have the loan, they want to earn interest, but they've got to mitigate that with the possibility that you don't pay the money and therefore they're going to do things like have the collateral and if they're secondary to the capacity to the collateral in the event of something bad happening, you're not paying, then that's going to mean more risk, which means they're going to compensate for that with less favorable terms and the amount borrowed will be lower than that of the first mortgage. So clearly you're going to be able to borrow less typically on the second as well. So using a mortgage calculator is a good resource to budget these costs. How a second mortgage works, what does it mean to take out a second mortgage? When most people purchase a home or property, they take out a home loan from a lending institution that uses the property as collateral. So in the event that there's a default, the property is a collateral. The bank doesn't own the home, the bank can't tell you how to mow your lawn, what color to paint your home and so on. But if you don't pay, then they have the recourse to the home and so it's a little bit different. Keep that distinct in your mind. A lot of people say the bank owns 80% of my home or something like that. That's not technically true. That's someone being a little bit sarcastic in terms of the loan, right? They're kind of overstating the position. What really happens is you've got the home and then you've got a loan which equals 80% of it and the bank has recourse in the event that you don't pay. However, they can't tell you how to use the home unless that happens. So this home loan is called a mortgage or more specifically a first mortgage. The borrower must be repaid the loan in monthly installments made up of a portion of the principal amount and interest payments. So over time, as the homeowner makes good on their monthly payments, the home's value also appreciates economically. So in other words, we could talk about the equity in the home, the difference between the price of the home market price and also the loan value. Two things that you could think about affecting that equity. One, when you're paying down the loan, the amount that's going towards principal is not interest. Interest is like the rent on the use of the money. The principal is going to be paying down the loan that hopefully will increase the gap between the liability, the loan amount and the value of the home, assuming the home stays even in market value. But then of course, we're hoping the home goes up in market value, which is the other factor, another factor that can increase that gap between the market value and the home. Obviously, the home could go down in value, which wouldn't be good, would be less equity happening in that instance. So the difference between the home's current market value and any remaining mortgage payment is called the home equity. So now you're saying, I got home equity, I've got assets, more assets than liabilities. I'm looking good, but possibly you don't have the cash flow at that point because you can't tap into the equity, can't buy your groceries with the equity. So maybe then, maybe then if you need the cash flow, then you could think about tapping into the equity. How can you do that?  So a homeowner may decide to borrow against their home equity to fund other projects or expenditures like that vacation to the Bahamas. The loan they take out against their home equity is a second mortgage as they already have an outstanding first mortgage. The second mortgage is a lump sum payment made out to the borrower at the beginning of the loan. Like first mortgages, second mortgages must be repaid over a specific term at a fixed or variable interest rate depending on the loan agreement signed with the lender. So you got a similar kind of process, but now you got to think about the equity in the home, possibly for that second loan. So the loan must be paid off first before the borrower can take on another mortgage against his home equity. So using a haylock as a second mortgage, an H-E-L-O-C, haylock, some borrowers use a home equity loan line of credit, a haylock as a second mortgage. A haylock is a revolving line of credit that is guaranteed by the equity in the home. So you might be saying, hey, look, I need like a credit card kind of thing here. You can use my home equity as a collateral for it so I can spend and then repay as I choose. So that's what I'd like to do. So the haylock account is structured like a credit card account in that you can only borrow up to the predetermined amount and make monthly payments on the account depending on how much you currently owe on the loan. So that can give a whole lot more flexibility. If you know exactly how much you need, then it might be cheaper to take out a loan right against it because then you could fix it and the credit card option might be a little bit more expensive in terms of rates and so on possibly. But it gives you that flexibility if you don't know how much you need and you think you'd like to have the capacity to have some cash flow available to you in the event that an emergency happens. As the balance of the loan increases, so will the payments. However, the interest rates on a haylock and second mortgages in general are lower than interest rates on credit cards and unsecured debt. So if you're saying, hey, look, I can do this on my credit card or I can do a haylock, then maybe the haylock is the way to go because of that sec that the credit card doesn't have the support in the event that you default where the haylock does. So you would think the lender would have more favorable terms and therefore give you possibly more favorable terms possibly in the way of lower interest rates. So since the first or purchase mortgage is used as a loan for buying the property many people use second mortgages as loans for large expenditures that may be very difficult to finance. For example, people may take out a second mortgage to fund a child's college education. Whew, those are getting expensive or purchase a new vehicle. Requirements for a second mortgage to qualify for a second mortgage. You will need to meet a few financial requirements. You will need at least a credit score of 620. You got to hit that hurdle again with that credit score we've seen in the past. A debt to income of 43%. And you will need to have a decent amount of equity in your first home. That's the difference between the loan value and the fair value of the home which could have gone up because either you pay down principal on the loan which means you've had it for a substantial amount of time because those first payments are mostly interest. So it takes a while to pay down the principal and hopefully the home went up in value because you were savvy investor and you bought a home that just skyrocketed in market value afterwards and now you just dip it into that by low so high. That's my motto. Because you are using the equity in your home for the second mortgage you will need to have enough not only to take out your second loan but be able to keep approximately 20% of your home's equity in the first mortgage. So they're going to have similar kind of equity requirements. They're probably not going to want to allow you to finance the entire home because then if you default they're going to be at risk there because they want you invested in the home just like with the purchase process. They want you invested in the home meaning it's not completely financed typically and if the market went down then they'd have a problem if the home was completely financed so they still want you to have some equity in there. So special considerations. Let's do some special stuff. Borrowing limits. It may be possible to borrow a hefty amount of money with a second mortgage. Second mortgage loans use your home presumably a significant asset as collateral so the more equity you have in the home the better. So if you got equity in the home that's good stuff because you might be able to tap into it with a mortgage although again it's not as liquid of course as other types of assets. So most lenders will allow you to borrow at least up to 80% of your home's value and some lenders will let you borrow more. You have to borrow enough money to cover your first and second mortgage mortgage as well. So we got the approval time. What's the approval time? Like all mortgages there is a process for obtaining a HELOC or a home equity loan and the timeline may vary. It's not like a magical thing that just kind of happens. You don't snap your fingers you got to go through a process. So you will need to apply for an appraisal of your home will need to be done and it usually takes the lenders underwriter a few weeks to review your application. So clearly they're going to have to determine what is the market price of the home so they can kind of determine how much loan you might be able to pick up on that as one of the factors. So it could be four weeks or it could be longer depending on your circumstances. Second mortgage costs what's the cost of doing this kind of thing. I like the sound of this. How much is it going to cost me? Just like the purchase mortgage there are costs associated with taking a second mortgage. These costs include appraisal fees, costs to run a credit check and origination fees. So obviously these can be significant when you're talking about something as large as the process as the mortgage is not going to be as tedious a process as the original purchase but still somewhat tedious process. Although most second mortgage lenders state that they don't charge closing costs the borrower still must pay closing costs in some way as the cost is included in the total price of taking out a second loan on a home. Since a lender in a second position takes on more risk than one in the first position not all lenders offer a second mortgage. So the second mortgage some people are going to say hey look I don't like being in the subordinate position because I take on more risk I'm not doing it but other lenders will depends on the risk versus the reward analysis of the lender. Those who do offer them take great steps to ensure that the borrower is good to make payments on the loan. So clearly if you're going to be taking on more risk you do your due diligence to make sure the lender has the capacity to make the payments. When considering a borrower's application for a home equity loan the lender will check whether the property has significant equity in the first mortgage a high credit score stable employment history and low debt to income ratio. So we've seen these factors before similar kind of factors as we saw with the first loans. Let's just take a quick look at them once again. So obviously they're going to look at the equity which we've been talking about which could have gone up since the home purchase process happened. Hopefully that's probably why most people might be tapping into that equity. They're like hey I got some equity here why don't I cash that cash that in to buy myself something that I want to buy or something like that. So the equity is going to be a factor clearly because that's going to help them to consider the home still as a legitimate resource in the event that there's a default on the payment. So then we've got the equity in the first mortgage a high credit. So you've got to consider the equity that the first mortgage is going to be eating up and how much remaining equity would be there for the second a high credit score. Clearly the credit score is still going to be a significant factor. The stable employment history. So they're going to be looking at the employment history going back a few years for the employment history. Typically confirming the gross income because that's easier to confirm say than expenses. They can do so with the W to possibly bank statements and with the tax returns. So they'll be taking a look at that more stable types of things they like to see. You would think as a lender you would expect that would be the case if you were the lender. I want to see like a tenured professor who basically couldn't be fired if he did something horrible. Right. They're locked in. They're going to be paid no matter what right what happens. That's what I want to see as the bank. So if you're if you're an hourly employee not so much faith but still might be OK. If you're a sole proprietor then the bank's not really too happy with you oftentimes even if you're doing quite well which is a little disturbing and annoying. You could see why there would be an increased risk to them and where they're coming from on that. So and then of course the debt to income ratio is going to be a critical factor advantages and disadvantages of a second mortgage taking out a second mortgage means you can access a large amount of cash using your home as collateral going to cash in that collateral. It's not always a good idea. So you don't want to use it as a credit card. I'm just kind of joking here but you know that's obviously kind of what people think when there's an increase in the housing market people like to cash in that collateral. So often these loans come with low interest rates plus a tax benefit. You can use second mortgage to finance home improvements pay for higher education costs or consolidate debt. So you want to take into consideration the use of the second mortgage to make sure to determine whether or not there's going to be a tax implication for it or not. So make sure that you're doing your due diligence if the tax consideration is a significant one for the second loan. So the risk of taking out a second mortgage however are not unsubstantial nor inexpensive. So expect to pay closing costs appraisal fees a credit checks during the process and you run the risk of losing your home if you can't make payments. So obviously if you're taking on more debt you got risk involved taking on the more debt. So you want to be doing your due diligence and thinking about the risks versus rewards. What are you using the money for. Is it worthwhile to use to take out the loan to do whatever you need to do with the cash flow or would you be better off keeping that investment in the home. So pro second mortgage allows you to access the untapped equity in your home for cash. The helox and home equity loans can help pay for big ticket items like college or major renovations. Interest rates on second mortgages are lower than on private loans or credit cards. So if you so if you're comparing that to other ways to get financing if you're saying I need financing and I got I can go to the credit card and get a loan from the bank or I have equity in the home then oftentimes the equity in the home is going to give you more better financing terms. If you don't need financing then then you just want to take it out so you can go to the Bahamas or something like that you might want to may not be worth taking on the risk in that case. But you know it's up to you cons. If you can't pay a second mortgage back you risk losing your home. So clearly you know you're taking on debt if you can't pay the debt. There's consequences or usually there is must put past new laws or something removing consequences and then but there'll be consequences to that if they do that. But it'll be weird. So if it costs money to close on a second mortgage so obviously there's going to be some upfront costs to processing the mortgage. If your home doesn't appraise high enough and you don't have enough equity in your home you may not qualify for a second mortgage so you can only do it if you qualify for it. So can you get a second mortgage to buy another house. Yes you can use a home equity line of credit or a home equity loan to purchase a second home. Can you get a second mortgage if you have bad credit. Probably not. Most mortgage loans call for at least a credit score of 620.4 620. So that and obviously the lenders might be a little bit more skeptical on the second because they're losing to have a little bit more risk involved because they're going to be subordinate to the primary loan credit scores possibly being more more significant in their calculation. Then what happens to a second mortgage after foreclosure on the first. So when your first mortgage goes into foreclosure your other light leans including a second mortgage will be removed from the first mortgage. The second mortgage becomes its own entity to be paid back. So what can you do to stop a second mortgage foreclosure. Make sure to pay your loan on time seems kind of obvious to be honest. But and if you find it difficult to make payments contact your lender right away. So clearly if you can't make payments I think that would be the more question. How do I stop the foreclosure. Well you make your mortgage payments. But then of course what if I can't afford the mortgage payments. Well that's when you want to contact the lender and see if you can work something out with the lender. Remember that in the event that that you're going to go into default the lender doesn't want that to happen because they're not in the business of foreclosing. So you might have some leeway with them to come up terms that would be beneficial for both parties considering the situation that we are currently in at that point in time. So you probably don't want to just ignore it and not talk to the lender most likely because then then you know you're not going to be able to look into possible alternatives. You typically want to be up front with the lender and say hey look I got a cash flow problem. I can't pay the bills at what they're at at this point. It is what it is. You know I can I'll show it to you and basically let me know what we can do at this point if there's anything we can do prior or so to defer or not do the foreclosure process and the bank has some incentive to try to work something out at that point. So how do you refinance a second mortgage. Yes you can refinance a home loan or HELOC following basically the same steps you would follow to refinance the first mortgage so you can refinance them A silent second mortgage is simply a second mortgage taken on a home for down payment money but is not disclosed to the original mortgage lender on the first home mortgage. The bottom line. If you qualify for one second mortgages can help you pay for home improvements and major renovations a second down payment on a second home or to help pay for your child's college. They can also be a method to consolidate debt so this would be a method if you look at a finance someone that's trying to consolidate the debt possibly credit card bills and so on using the money from the second mortgage to pay off other sources of outstanding debt. Why would you want to do that possibly because you can get lower rates and so on due to the fact the second mortgage has the collateral possibly then their capacity to get the lower rates which may have carried even higher interest rates so clearly you'd be consolidating the rates hopefully in the consolidation process.


Yeah, hello everyone So I'm going to talk about Julia Which is an intermediate representation or an intermediate language for Ethereum contracts You know, let's just first see what are the problems? Why would we need a new language or am I just crazy that we need a new language? In fact, we do have a couple of problems and most of these problems actually related to the Solidity compiler itself And the first problem is, you know auditing contracts written in Solidity is not that simple I'll explain that in a bit Then the Solidity compiler is written in C++ and a lot of things a lot of helpers a lot of Code generators are of course within C++ and they are quite complex And you know with time they can become even more complex as more features are added The next problem is optimizations, you know different optimization steps on the compilation that can become very complex as well This one so far hasn't been an issue because Solidity can only output EVM bytecode But you know in the future we might move on to new virtual machines So one such virtual machine is called EVM 1.5 and that one is called E-wasn In the current state of Solidity That would be a quiet big change to rewrite the compiler supporting any of those And lastly creating the ASLs or domain-specific languages it doesn't really exist at the moment and The most practical way to do that is to compile your domain-specific language to Solidity or to Serpent And by doing that you will be exposed to the very same problems Solidity is exposed to So this is one of the example for auditing Right the multiple parts to auditing first of all one needs to make sure that the contract written in Solidity Does what a functional specification says in this case? The intention was to being able to redeem the money once, but I don't think the contract does that The second problem with auditing which might not be done in every single case is Verifying that the compiler creates bytecode accordingly to the source code So there are two examples there. The top one is a assembly call in functional Representation so functional inline assembly And there you see four variables in the call That is quite readable in the bottom. There is the EVM bytecode counterpart and It doesn't really look readable the tone of swaps and dubs the reason for that is in Solidity every variable is Has a life cycle of existence until the end of the block So in that case there they still exist after the call So they have to be kept on the stack and therefore we need to swap them around and we need to make duplications of them I Guess you can agree that it's quite hard to verify that even bytecode Actually corresponds to that assembly and these are this is one example for helpers This actually is the code for pushing a value to an array First we retrieve the length we increase the length of the array and we resize it Then we get the reference in this example We get the reference of a storage slot and the storage offset and then finally we can interact with that array So there must be a way to improve this Let's just take a step back and look at other compilers, you know outside of the Ethereum So basically for many years Compilers traditional compilers have been working in different stages The first stage is the front end which parses the source code does Analysis check several things and finally creates an intermediate representation of the program The next stage is the middle end which can apply different optimizations on the front end on the intermediate representation And the last one is the back end of course, which generates bytecode for the target machine and again It can do optimizations there Compared to that solidity only has two stages or more like 1.5 stages There's one stage which does everything and there's another one which optimizes Evian bytecode At this stage has no idea What the source code was now introducing an intermediate language would change it to Ha or they'll have all that are compilers work However, there is a big difference Because the reason most compilers work that way is they target multiple machines So if you look at GCC or LLVM They support a like C and you can compile the same C code to multiple computers And with compiler toolkits, they also support multiple languages on the input side and they can utilize the same back-end written Of course this applies to solidity But the main reason and this makes sense for solidity is verification of what happens within the compiler Well, actually, I just set these there and Yeah, like the last point Evian bytecode and Since this intermediate representation this language By definition has to be a much simpler language than solidity is and that of course means the bytecode generation of it should be much more simple So what does the language look like? Here's a simple contract. It just returns a string and This is an incomplete example of that contract in Julia The important part is the one highlighted on the top. So you create the if you look at the string That string is encoded there in hexadecimal It is assigned to a variable. It is a bi encoded into memory and that memory is returned The part on the bottom is you know a helper a compiler real output into the contracts What it helper does is it receives Control when the contract is called and it decides which function within the contract should be executed Or in the case none of the match. It just ensures that the contract hasn't received any money And you can extend this with the missing parts because you see there's an ABI encode string Ensure nowhere you transfer Extract call signature. So these are in this slide Of course, not all of them are implemented But you can see they're fairly simple. These are all helpers Which will be outputted into each of the contracts and that happens already But all of this is written in C++ and it's hidden from the eye There's one thing which one can notice here Extra call signature is a one-liner That's why optimizations make sense This one should be in line. It shouldn't be a function call. It should be just the those few instructions Now here's the the helper you have seen and Here's a possible way to write it in Julia. I think it's much more readable So, you know by moving most of the compiler into Julia from C++ gives us a couple of benefits It should help all the think efforts Because one can't just review this much more simple language Julia and all the helpers written in them As opposed to finding someone who's happy to review C++. I mean I wouldn't want to review C++ And it also allows a simple framework for optimizations because basically here you will just Optimize Julia code right now if you want to optimize contracts You should also do optimization steps in solidity in the solid part before it gets converted to EVM and In fact, we only have one single Tiny simple optimization step in solidity everything else is in EVM And you know if you have all these helpers written in Julia and they are verified They could be used by another languages as well in the ecosystem So where do we stand right now? Julia I guess looked familiar to those who use solidity because it looked kind of like the inline assembly solidity has and That's of course because it is an evolutionary step from inline assembly So inline assembly was introduced last year It supported jumps instructions and functional instructions but over time we have restricted that we remove the You know more risky parts and we added a couple of new features like functions for loops which statements and Yeah Okay, so one question there. I guess those people doing a Serpent the wiper would ask why not do it with LLL because LLL exists and Serpent actually use LLL as an intermediate language So the two main reasons is LLL is really based on EVM. It's based on the EVM op codes It has a couple of extensions on top, but it's really is just EVM assembly in a list-like language and Of course, we had this organic evolution of inline assembly, which was already used So the language features we have We have variables which can be typed Well, in fact There's Julia, which is the intermediate language that must be typed and then we have inline assembly Which you can already use that is not typed The functions with statements And I guess soon we will have an if statement as well without any else condition And we have four loops that important part. We don't have instructions EVM op codes behave just like functions. They're not a separate kind of expression So variables and functions these support multiple assignment they are initialized to the default value of zero and Functions can have multiple inputs and multiple outputs.  I just missed to mark it Because the right-hand side has to be a single expression. It cannot be a tuple expression And that is a simple function and that's how you call it now this which statement is the core of The entire language It can have multiple cases. It can have a default value at least one case either a Specified case or the default case has to be present one major difference here for anyone Used to normal languages is a switch statement would support full true and you would have a keyboard break To stop at any given point of time Now Julia doesn't have that every part of a switch statement Will be executed entirely. There's no break and there's no fault true That's a very important thing, but it might not look Obvious from these examples so basically how this gets compiled into bytecode is In EVM it will do a couple of comparisons. Does it equal zero if not do that? Does it equal zero? Does it equal one? Does it equal those if not else? and The last feature we have is for loops which has an initializer has a Condition has a post block and the block Now one interesting part here is in an initializer So actually all the blocks initializer block and post block. They are the same scope So any variable created in initializer is valid in the for loop, but it's not valid outside It does support break a Couple of examples Okay So we do actually have different backends and Solidity for Julia Right now EVM the normal EVM we have is of course working and we have even 1.5 implemented The interesting part of it even 1.5 is that it supports Basically functions and stack frames and so it's you know, that's the main improvement And what it means we can really easily translate Julia functions into EVM 1.5 functions And that makes it really easy to verify E-wasm is a different back-end which is in progress it already works, but it's not finished So it's not really part of the tree yet And the last back-end I think possible is even doing a JavaScript back-end the use case There would be someone is writing You know more parts of the application did up in solidity right now You have to only write the on-chains part in solidity, but you could in the future write off-chain parts in solidity and compile those parts into JavaScript If anyone volunteers, I'm happy to help to get that back and done And we already have a tiny bit of third-party support for Julia There is a Julia interpreter in LEM And that's the URL for it. I think it was written in less than a week So that probably shows that the language is quite simple to deal with And I did a toy LLL to Julia compiler just to see you know How much effort would it take it takes a couple of hours to write that even less if you have a parser ready and And lastly You know with Julia it should be easy enough to create domain specific languages Because Julia is quite low-level, but at the same time it does have a lot of convenient features like functions and switch statements That is actually example of compiling LLL to Julia and as you can see most of those parts Entirely resemble the LLL counterparts. It is also highlights the need for optimizations Because the first step in using Julia converting from any language to Julia is to be able to ensure The code is correct. So it will be verbose There won't be an optimization at that level and the next step one can apply Simple optimization step by step. So in this case here, I Would want the LLL to Julia compiler to output this code, but it it's not really optimized So it's the next step. I would want an optimizer to inline a node So below get owner wouldn't call node. It would just have cold data As cold data load as an instruction So that's just an overview What happened in the last couple of months regarding solidity and Julia and as you can see in 0.12 we have released support for functions for loops and And 0.17 which was recently the added support for a new ABI encoder So many people who were complaining the lack of support for structs That new ABI encoder enables support for passing structs between functions Now that's already in the compiler, but it has to be enabled by a special experimental switch Because you know, we are not we are not really confident yet that it should be used in production But if someone wants to try out it, it's certainly possible Hopefully in the next release we will have a new ABI decoder merged at the same time and that will enable Functions to receive structs because right now you can send structs, but you cannot receive structs and then hopefully two releases from now we will have a First version of a solidity to Julia compiler as part of solidity and then in the future you wasn't So it can be already tried out if you dare those are the common line options To use the solidity compiler to compile assembly and you can also switch to Julia mode The only difference there is using types And the last line is Changing the output machine if you're interested in Julia or solidity development You can join the solidity dash dev channel on Gitter or you can just talk to me directly at AXIC on Gitter Thank you


Hello and welcome to the Grand Line Review, your source for everything long piece. And today we have a review of chapter 960, introducing Kozuki Oden. And this week is very much a nice subdued flashback introduction, very much as expected. The first few chapters of flashbacks generally kick off as a mini arc of their own, with what seems to be a fair bit of down time in character building before we really get into things. And that's exactly what 960 did. It gave us a great glimpse of a pre-Kaito Wano and showed us some young but familiar faces. The standout portion of the chapter easily being Oden though. In terms of his design, the revelation of what we've been waiting for for years and years at this point is surprisingly normal. Almost exactly what I would have imagined whenever I saw his silhouettes in previous chapters, but he still manages to come across as every bit as if not more bizarre of a person than I would have thought possible. His introduction, while seemingly understated, gorging himself on Oden, is one of the most striking reveals of a flashback character I think we've had, if only for the circumstance alone. It's hilariously morbid, but I love that Oden is first shown to us eating and drinking over the funeral fire of a clear acquaintance of his. And the best part is, it's not like Oden is just a dickish opportunist either. He seems to be taking this ritual incredibly seriously. Every shot of his face shows a man determined to seeing this experience through. And my favorite part is that cool semi-silhouetted walkoff afterwards, giving his condolences to the family. But before we even see that, we are treated to more of Oden's exploits from Kozuki Tsukiaki, Oden's father and the then choken of Wano. And to say that Tsukiaki seems more tame in contrast to Oden would be, you know, the understatement of the century, but Tsukiaki actually reminds me a lot of Sengoku back when he was a fleet admiral. Back then, his entire existence was just one big face palm, usually as a result of Garp or his family doing something foolish or annoying. But both he and Tsukiaki have that look of extensive responsibility that has gradually taken its toll over the years. During the section, it's also implied that Oden's various exploits and talents are a solid trait of the Kozuki family, meaning that Tsukiaki probably has quite a bit to show off himself. Although I do really enjoy his exasperated character thus far. Probably the biggest actual reveal in this chapter comes in the form of Denjirou though, which was unexpected because he's the only red scabbard who, discounting all of the fan theories, we haven't seen yet. But I will say that it does tick another one of my Act 3 Wano predictions off quite nicely because I did say that it was finally time for Denjirou to make an appearance, so that's pretty awesome, with three chapters into Act 3 and I'm already going two for seven. But as much as I'd like to talk about my impressions of Denjirou as a character, there is a huge shadow looming over him because his seemingly simple design is going to lead to another great wave of theories. Two in particular that I've seen given the most focus, the first of which is that Denjirou is Skoppa Gaban because you know they both smile and wear sunglasses. You know, to be fair, they do bear a great resemblance to each other. I mean, this young Denjirou even has a miniature version of Skoppa Gaban's very angular nose. And you know what? If Denjirou starts wielding an axe during this flashback, then maybe I'll change my mind, but I'm not on board with this thought at all. I think that this is probably a case of desperate theory crafters jumping on any parallels they can find and the characters in this world, which has been built over 22 years, do sometimes have similar designs. It happens. Now, over the second is a bit more striking and that's partially helped by the connection to Wado that we already have, but I have to admit Denjirou looks a hell of a lot like a young Koshiro. And not only that, but he appears to be carrying a sword that looks like it could very possibly be the Wado Ichimonji. But in this case, let's be real here. The Wado is probably one of the most generic sword designs in the entire series. I mean, the blade that Kinemon wields in this chapter also looks like the Wado at first glance, so I'm not putting too much stock into that idea either. But the other thing about this whole Koshiro idea is that the timelines don't match up because 24 years ago, Roger was executed and in chapter zero, we were shown that Koshiro was already in East Blue and the Kuina was already born at that time. However, it wouldn't be until four years later that the tragedy on Wano would occur at which point the Nine Red Scabbards were assumedly all on the island.  So I think a greater possibility is that Denjirou is indeed related to Koshiro, but that's probably as far as that goes. As for Denjirou presented in this chapter, I really like how much of a crafty lad he is. The interaction with the store owner was pretty brilliant as well as his last part with Kinamon and Kinamon. Well, I know we've seen him before, but my God, Kinamon's hair is fantastic. In color, I'm picturing it as this bleach blonde punk rocker 80s style thing, which seems to fit his rebellious and unscrupulous nature at the moment. I mean, he even tried to steal money from Suru, who in her younger years had not quite developed her classical Japanese aesthetics. And actually it would seem that the more people age and Wano, the more they begin to look like a traditional painting. Suru was an absolute boss, so I love how she wrecked Kinamon, which is pretty impressive because during this chapter, Yogoro even told his lackeys that nobody would stand a chance against Kinamon in a one-on-one fight. And you know, it's good to have a reminder every now and then that Kinamon does possess a pretty high degree of skill, which I personally often forget because he is more often than not relegated to the role of being a joke character in his history of One Piece. Stepping back into the present though, one of my favorite moments of this chapter actually occurred on the cover page with Beige frantically searching Dressrosa for Lola. I love that he's wearing a moustache, which is a nice reference to the disguises that the Straw Hats first used on the island, but he's also very close to the statues of Lucy and Usopp. I really hope that one of the covers is going to be dedicated to him recognizing Luffy and reacting to the statue, although unfortunately, Beige never met Usopp, so that one probably won't mean anything to him. But I love these connections that are coming back into play, even more so than last week. It reminds me that One Piece has so much flavor in history and how nice it is to see a world continue to spin without the Straw Hats as a central focus. That's more or less it for this week though. Yeah, I know there's a lot of stuff about the adorable boar and its parent coming to wreck the capital, which I'm sure will have an epic resolution of some kind next chapter, but all in all this was a fairly standard beginning to a flashback. It was nice, laid back, and an enjoyable experience to read. Not a hell of a lot to digest and talk about a great length, but it also doesn't need that. Chapter 960 took the time it needed to begin setting the stage for what I suspect will be a fairly great story going forward over the next couple of months. And that pretty much does it for chapter 960. If you enjoyed this video and the content this channel produced in general, then please do consider donating to the Grand Line Review Patreon because the support of all of your amazing people is what continues to make this channel possible. And if you'd like to see more videos like this, but applied to other anime and manga series, then please do check out my second channel, New World Review, for all of your wider needs. And if you'd like to join the fun at any time, then please do head over to my Discord server where a wide array of shenanigans takes place on a daily basis. And finally, please do comment with your thoughts on the chapter. This has been the Grand Line Review, and I'll see you next time.


You wanna talk to him about that? Huh? I'm not sure if I can tell. I don't know what I'm saying. We used to talk back in the day. Yeah. I think we're thinking the same people. Oh, and the mascot. The upgraded. For the game! Ah! Is that fun? I just had fun. That's what fun felt like. Huh. I'm on 2K20 with it. All right, my brain cells don't work. Like normal brain cells. So I booted up my PS4. Like I couldn't just stick the disk into PS5. Don't judge me. Hey, y'all new to the channel, be sure to subscribe. Apparently everybody and their parents is going back to NBA 2K20. I gotta figure out why. I enlisted the help of a good Samiritan. A good citizen. Never does any crimes. It's always a law abiding very constructive member of society, vortex. Oh, me? Yeah. Yeah, you man. No, I'm in a goddamn my career game.   I didn't like this game in its prime. But looking back at this right now. It's better. Yeah, I don't know why it's better. What's up with me? Oh my God. Why was I dressed like this? Hey, why is it so active? What's going on right now? Three level score. This is the all time great build. Yes. Hey, are they got ready up? I know it's a little scary.  The latency is still as bad as I remember. I like that. Oh, I don't know my jump shot. When have you ever known your jump shot? You. Yes, sir. Board tags green. Yeah, we out. Going off, I got a hop step. Oh, I hate this guy so much. He's going to shoot that. Don't shoot that. Don't. Don't. He shot a no bar. Look at him now. Look at him. So he's trolling. OK, got it. That's what we're doing now. We're trolling. He's not good for nothing, man. Oh, you know, we're going to get fancy with it.   But you're worse than Vortex. He's one for four. Hee! Ah! First. No, I've already scored. Then I didn't get excited for my last bug. I kind of messed that up for me. Oh. Rugger, pass it. We're off to Vortex. Big greens! Damn, I forgot, like, bills could really shoot from wherever in this game. I remember that. Oh, I have green at Vortex. Pump, pump, mellow, pump, pump, pump, white. Oh, OK. I see you, Vortex. Now I'm open.  Let's get it. Big greens. We got Jay with the ball. Jay at the hash.  How does he make all his whites? How does he do that, man?  All right. I forgot my best 3%. Clicking triangle right beside him is 3%. I forgot about that. Why is the first time? Are they up? Oh, wait. He's open. Go, go, go, Rugger. No, Vortex, you took a two. What is wrong with you? But we have no shooters on the team. I'm on the team. Why would you say that? No. We got 15 rebounds.  Now, 2K19, I can really understand people doing that. You know what I'm saying? But this game, I can't understand the glorification, bro. I can't. Because 2K21 current gen is rushed. 2K21 next gen is an absolute disaster right now until some updates hit. And in this game, it's just like a dry version of the very fun 2K19 that everybody enjoyed. This video is brought to you by Current. Current is the future of banking. It's a mobile bank with a Visa debit card. But why, agent? Why should I use Current? I got the answer for you. Well, first of all, it's a real bank account with no hidden fees or no minimum balance. If you need some cash, you got access to over 55,000 free ATMs. If in 2021, people are still giving you checks, you can deposit that check using the camera on your phone. It works with Apple Pay, Google Pay, Cash App, Venmo. They got free overdraft up to $100. You can get paid up to two days faster. And as you use the card, you can earn points on your purchase and you can redeem those points for cash. They're the only ones doing this. Ladies and gentlemen, this card shifts for free and it takes about two minutes to sign up. Do yourself a favor, man. Head to the description or the pinned comment. Here's the card. This is what it looks like all pretty. Current.com slash agent. That's Current.com slash agent. Takes you a moment to sign up, fellas. Thank you, Current, for helping sponsor this video. Let's get back to it. Euro! Oh, I think you're gonna leave me. I guess we're taking the three. Hey, hey, hey. Why are your teammate guarding? They're not passing, neither.  Good job, buddy. Good job, teammate. Yeah, teammate! Bro, I was right there. They just gave me the slowest imaginable contest. It's not gonna work if he sits in the paint. Yeah! Look at that move. Look at that move. Green! Oh, teammate! Oh my God. Yo, mind, mind, mind. Young agent, young agent. I don't miss, baby. Haven't missed yet. Not since I figured out it's a 98-Rose jump shot. Let me deed his mother a big job, man. He's been with Square. They did. One of them fell asleep and the other one forgot you could shoot. Give it up, give it up, give it up, give it up. Give it up, give it up. I'm wide open. Please do not shoot that. Please do not shoot that. Please, please, teammate. Please. I'm open, I'm open. He! No threes, though. Just don't no threes. No! He braked. I hate this game so much, man. For the game! Protect. I got it, I got it, I got it. Hey, you're open. They made me fade and it's a two. Bro, how do we keep? Oh, protects, protects! Man, we can't choke this. Another game-winner attempt. We can't choke it. That's deep! No, let's go.  I just had fun. That's what fun felt like. Huh. You want to write a report about it? For my report, I'd like to acknowledge the fact that I just played a game where a guy dropped 21 points on me. We still won the game, though, so it's fine. Teammate was bad. Playing with one Randizi. Still had a great time. My shots were indeed hitting. I was hitting all of the shots as the kids would say. I had fun. That is my report. Okay, that's my report. Have fun. I think we're facing the same people. Oh, and the mask on. They upgraded. Oh man, Vortex, put on your tryhard cap, man. Get your three second, four second, five second, and two second offenses ready. I'm gonna get my shot, man. I'm gonna be sitting on the hash all pretty. All right, watch me. Yes, sir, Vortex. Big greens, big shots. And that's how we get down. I'm gonna stop. The moves for Vortex. We all five, baby. God, there are no threes, though. Yeah, no threes, no threes, no threes. I said double teaming. Why are you double teaming? Why are you double teaming? Putting a Randizi on a mascot might be bad vibes. No cap. You got a man, you got a man, you got a man. He didn't step up. Oh my God. Dee, somebody! Random! Green, good shots, good shots. We need one stop. Bro, that's what we need right now. That's a bad, I thought you were calling out. Why? Oh my God.  Good shot, Vortex. Good shot, good shot, good shot, good shot. All right. Vortex! Vortex, take it all the way. Ooh, for safety, baby. Now, man. Three, two, one, he's sold, he's sold. Oh, we got a good bounce. All the way, Vortex. Actually, before we do that, let me just stop by here. You know what I'm saying? My little boo thing. It's been a minute since I seen her, man. Let me talk to her real quick, see what she's talking about. Glad to see you back. She said, nice to see you back. She misses me, man. I miss you too. It's been a minute since I bought boo's. I like the tank top you got on it. You look good in blue. You wanna talk to her about that? Huh? I'm not sure. We used to talk back in the day, yeah.  What's going on right now? That bozo right there pulled up, but he's just checking people on his phone. The game is two years old, buddy. Get off your phone and play a game. I can't tell, am I being trolled right now? Let's go top right. He's checking us. He's checking records. I hate people, man. Too late, we just lost. And then we lost the top left too because now they have a game. I'm gonna commit.  What's up with him? Hey, let's go 22-0, 22-0. Ah, never mind. Since we just leave people with point blank open vortex. Hey, hey, hey, don't say names. You might have not been me. It was you. That's why I checked first before I said your name.  Oh my God, bro. Scott, why are you doing all the way? You're wasting all your ammunition in the back court. Why? Back in the day, man, when we used to play with Danny boy, I'm in the corner. I'm in the cut. I know you see me. Why is he taking? All right, bro. He's not touching the ball again. Hey, teammate, you're getting ticked down right now, buddy. The f*** you holding the ball the whole clock for? He's part of the reason why games like 2K are unplayable unless you have a team. He is it. Dunk on his head top, man. I want to score you. And he can't. What a horrible. The fact that my full white misses and that s*** release went in is mind blowing, by the way. He's not guarding nobody neither. He's just waiting. Do you see him wait there for the rebound? I swear to God, I f***ed this guy. Yo, why is Scott the only mother f***ing? Who can hit those? You about the ball? Want him open? He's not gonna. He's gonna explode down in the back court. That's why. Thank the Lord, Mike. I appreciate you. Good cut. Hee! Yup, he throws four attacks. Go, let's go. Let's get it, baby. Oh, look at him. He's on him.  Yeah! Not anymore. Stay on him.  Let me just in clicks.   I hate this game so much, man. I got to be very careful how I pass this. If I click it too fast, it just go to him. Good game. It's all a team for attacks. Again, I want to give a huge thank you to Current for helping sponsor this video, man. Link is in the description and the pinned comment.  Takes a moment to sign up and ships for free. Do yourself a favor, man. It's the future of banking, fellas. Some videos on the screen right now. Thank you guys for watching. I'm gonna catch you guys in the next one. I'm out.