 So this is the FTC3 sale presentation on Nicolba. I am the CEO and co-founder of Connectify. We are committed to the accessibility of FTC3, making it available to everyone, making it really easy to adopt. FTC3 sales, part of that story. Our product Connectify is also part of that story. If you're in the bridging conversation previous to this, you may want to talk to us. It's kind of what we do. We provide FTC3 as a cloud service, which means that you can connect anything anywhere, regardless of desktop container technology, in a browser, mobile, et cetera. We will enable it for FTC3. Previously, I was CTO at OpenFin, where I led the creation of FTC3, and I was the chair of the FTC3 group for the first several years, as well as a board member of FINOS, and also kind of a serial desktop agent creator, and FTC3 sales, maybe the last desktop agent I'll create. Okay, Seb. Sure, hi. I'm Seb Benbaric. I'm the city of Norman and Sons. You probably don't know us. We know as big as Accenture, but we actually do make a difference in the capital market. So we are, I think, imagine a Venn diagram between capital market and user experience. It's been very, very thin, and it's getting wider and wider. And what we do is we actually sit down with a different kind of stakeholders on trading platforms or risk management system, and also all those people we don't see. And we make sure that we kind of streamline the process. And as someone the other day came up with a stat about a trader as something like 32 apps on the desktop, and I was like, did they steal that from us? Because we literally actually wanted to look at all the different apps they were using, and I think that was probably that number. What I'm talking to you today with Nick, I mean, Nick is a veteran. My claim to fame, I guess, is that I was one of the first employee in Europe to do desktop container when it was a fairly new thing. When I was demoing to the different prospective clients, half of the slide where to explain that HTML5, that's how we call it at the time, was the next kind of technology you should use on trading platform, and everyone thought we were crazy. The people we could convince then end up in a problem. We have IE6, it doesn't work. We have problem of having that render on the desktop, so can you help us? So that's where we kind of like starting to use that technology. And later on I joined Norman and Son to actually use that technology more, and there's more desktop vendors out there, and we actually play with all of them. And it came to my mind, we probably are missing something. We're missing a slide now. A slide, we're missing a slide. That's what we're missing, right, sorry. So, why FDC-free cell, you already kind of talk about it. So it's a container, but we wanted something that is fully open source. FDC-free is an open source standard, and we think that it actually makes sense to have a container that is itself open source that we can use. We wanted also something that is not just a toy. I wanted something that is actually full feature that you can actually use to obviously show what the technology can do, and we will show you a bit later, but also that you can use in production. I mean, it's not mostly, it's not to replace the vendors, I'm gonna be honest, but there's a lot of people out there who are building the container. And I'm like, please, please don't, right? If you want to be in the container business, you have vendor solution you can, but if you really want to do it for whatever reason, you have an option to contribute with the community. So, I think it's better, it's stronger if we work together to actually build that piece of software. And also FDC-free is a standard, it's out there, it's great. I mean, I kind of have an understanding of how good it was, but being here at Finos, I mean, all those chatter about, like we really need it, we use it every day. We want it to be making it even more accessible, so you can really kind of download the piece of software and get started right away. So, that's about the why, but what it actually is, I don't think we kind of fully explained, so it's gonna be a lot to me. So, yeah, it's, so FDC-free sale, it's an open source desktop container, right? Which means that, as we were saying, it is the, it's a container built on Electron that provides FDC-free functionality. It is, in fact, a Finos project, right? It's been fully contributed, which means it's much easier for everyone in finance to collaborate around it, and not to steal Rob's thunder, I don't know if I'm gonna steal your thunder. It is also, it's FDC-31.2 compliant, but if it wasn't supposed to, please keep it in the room, if it wasn't, yeah, okay, yeah. So, yeah, we're pretty proud of that, it was a journey. Everyone who's been involved with that compliance conformance testing knows. The tech stack itself is, as we said before, Electron, and for those of you who caught Jacob's, Jacob Groundwater from the Electron teams talk earlier, which was great. He said, don't fork Electron unless you have to. We don't fork Electron. We're following all those kinds of best practices he talked about. We also have, we use VIT for a lot of the build process, as well as Electron Builder, which isn't up there, unfortunately. We use React for the UI. We use TypeScript because you'd be crazy not to, and of course, we use FDC-3. I think it's important to point out that FDC-3 has a great set of NPM modules that provide you with all the interfaces to ensure that you're doing the right things. So, a bit about the architecture, going back to the point about doing, following the best practices for Electron, right? Like, FDC-3's sale is a lot like most any other Electron-based apps. You have a main process, which is the kind of browser process, node process that handles all the routing and business logic around FDC-3. It's going to expose APIs that it then injects into the renderer processes where the apps in sale actually live. That's all kind of standard, hard for course, Electron structure. Where it's a little, I think a little fancy, right? Is that we also, we talk to the app directories, and we aggregate them within our main process. And in that, we actually sort out the difference between 1.2 and 2.0, and we allow 1.2 and 2.0 apps to interoperate with each other because they're all working off of the same object model which we keep within the main process. And the other, and we then inject based on that configuration the 1.2 or the 2.0 API into those renderer processes. The other thing that's, I think really nice from a security standpoint about FDC-3's sale is that the only thing it injects into the renderer processes for where the apps actually run, everything else is built in, so it's not the only remote code we load are the apps. They're using FDC-3, but the only thing we decorate that with is the actual standard FDC-3 API which leaves a much smaller security surface area to think about because we're not injecting any additional windowing APIs or notification APIs or anything like that for apps to potentially use or abuse. And the other nice thing is that when we do talk about those APIs in the FDC-3 group, we actually talk about the security ramifications of the APIs we're exposing. So there is at least some oversight from a security standpoint about what goes in FDC-3's sale that's very aligned with the FDC-3 standards process itself. Right, so we kind of identified two, I mean, there's a lot of different user needs, but two that we wanted to highlight today. One is the context of like, okay, FDC-3 standards is standard and you can actually read what it does. We thought like, why if we could have an app where you can actually see the power of FDC-3 and all the things that it can do for you? So that's kind of like the first use case we're gonna talk about. And we're gonna do something that is considered crazy in the demo scene is to do an actual live demo. So let's just launch the sale here. But that's considered crazy. Yep, with a spotty Wi-Fi it is. So here you go, I just launched sale. And the first thing you load here, and you can configure that, is the app directory that Rob introduced this morning. So this is basically going to the Fino's directory and just fetching all the different metadata of the different apps that we've got today. So we have NextJ here, we have adaptable tools, Blotter, we have CharaQ, Symphony, the usual suspect. And what you can do is things that you probably seen, if you've been in Fino's for a while, you've probably seen like a few times there, but I have the ability to launch, we use that app to show as a launcher, the ability here to raise an intent. So for instance, I'm looking at, let's look at Adobe, how are they doing at the moment? So let's do a chart here. Let's launch chart IQ. I think there's some Cossack people in the room, so it's always good. So here I just literally form that app over here, which is self-contained in Sandbox. I launch another app, the CharaQ app, with the metadata about Adobe as a ticker. We can also just view quotes, instruments, et cetera. Now, what's interesting is that all those intents that you can see here, they're actually coming from the app directory. It knows that all those apps that are in the directory loaded in memory can do those different intents. So let's start Symphony over here, and apologies, but I do need to log in to Symphony. This is an open source project. It's quite new. We have an issue I think about during SSO. So if you're good in SSO, please contribute for it, but in the meantime, I'm just gonna go and put my details here and going into, let's chat to Nick. I don't think he's free to talk to me, but look, and I'm just going to start the chat here. And boom, Nick. Hi, Nick. We were testing cash tags on that one. Yes, I was, yeah, IBM, since they stopped doing treadlands, I was wondering how they're doing. So, yes, you've seen that like a million times. I'm going to show you that chart here. We are going to broadcast now. So I put them on the red channel, which is usually the most popular when we're doing demos. And let's see about, I don't know, AMG. So again, you've seen that a few times, but you have the ability here to broadcast the different events and the app, which because like in terms of the user experience, they look exactly the same, but they're definitely not the same application. They're all sandboxed and they talk to one another. So this is, we already know about FDC3, that's kind of what it does for you. And yeah, I think that's it in terms of the intro part of it. Okay, yeah. Let's talk about something a bit more exciting. Yeah, I'm going to do something. I'm going to like see you're like doing a live demo that and raise it by showing code, right? So this is the second use case while you're connected. Oh, yeah, yeah, yeah. As a developer, I want an easy way to develop FDC3 applications so that I can deliver value to my customer faster. So Nick is going to show you. Yeah, so let's take the scenario of somebody who's working with FDC3 for the first time, right? And they're just going to start a project and please bear with me for one moment. Okay, so, and let's say I've got, is that visible enough? No, you're okay. All right, here. Can you hear the back? Yeah. You don't really need, this is just, so I really like to write vanilla HTML JavaScript and CSS when I have the opportunity. And since it's a demo and I'm supposed to be focused, we're supposed to be focusing on FDC3, I thought it was a good opportunity. So let's say I'm a developer, I write a very simple contacts viewer app, right? And all it does right now is it just takes a contact from the query string and loads it from some data source and displays it, and it looks something like that, like this guy here, or if we pass in Rob's contact in, or me if you pass in my contact, right? Pretty boring stuff. Well, let's say now, maybe my boss has come to me and said, you need to implement FDC3, and I don't know what FDC3 is, and so now I've got to figure that out. So what do I do? I go to GitHub, I find FDC3 sale, I clone it, I MPM install it, and then I then read a little bit about FDC3, and I change this app into something that looks like this. We're now, instead of loading from a query string, I'm going to start FDC3, sorry, I'm gonna listen for FDC3 ready, it's gonna call my FDC3 start function, that's gonna add an intent listener for view contact, and then it's gonna render my contact with that, it's gonna pull the contact identifier off the context and render the contact using the same rendering function I was using before. So basically I've swapped out query string parameters for capturing intents. So now I've got FDC3 sale set up in my local, and one of the cool things about FDC3 sale that I'm actually gonna show you first in the code is that now, how do I get this app to actually open up an FDC3 sale, it actually has to be in the directory in order to do that for the container to open it up. Sale actually lets you load multiple directories, it will then, you can specify multiple directories, and it will then join them all together into a single directory, which will then make available. So I would then author my own sort of mini directory that has just this single definition for my app, right? And you can see here that it's got a URL to my step one app, I'm gonna give it a name and things like this, and then it's got this configuration here for the view contact intent, and it's gonna take an FDC3 contact as a context, and this is kind of cool. That is me saying, hey, I'm gonna use the 1.2 API because that's what it can form in or what I'm familiar with. So now I can go over here, and I can simply, I can set an environment variable that puts together that configuration file plus the Finnows directory if I wanna have some apps to play with, and then I can just start it. And actually it should work pretty fast here. So, and then boom, here's my app up here. So my app isn't gonna work with, if I just open it directly now because it needs to have a contact provided to it now for it to display anything because I'm kind of a bad app developer, but if I go here now and I raise an intent, I should actually see my app listed. So here's view contact, and here it is, sale demo step one, right? I opened that, and hey, there's me. So that was kind of cool, right? Like we just kind of moved stuff to FDC3 pretty quickly, but I think we'd all agree that was a pretty lame app. It doesn't really have much information or anything like that. So we go back to the drawing board and we're gonna add in some portfolio data, and we're going to have that portfolio data raise some more FDC3 stuff, right? So maybe I'm gonna have the instruments broadcast and I'm gonna be able to have a little link next to each instrument that lets me view all the intents and apps available for that context, for that instrument. So that one is actually gonna look pretty much identical to the first one because all that stuff is gonna happen in the rendering layer. So if we, so here is where I'm gonna get my portfolio data and in there, I'm gonna do a broadcast and here is where I'm raising the intent. So it's like, I'm sorry, it's actually raise intent for context, so I spell it right. Here is where I'm gonna raise intent for context, and it's like literally two lines of code, right? We all know this, we've developed FDC3, it's not that much code to write. So when I run, not that one, this is where it got dangerous, right? I was like, I'm gonna run live code and that's what happens. That's why people don't do this usually, only fools like me. So you, now this is what my app is gonna look like now. I'll grace this with sub. And now here's the portfolio and now here's the portfolio and we can see all this stuff, right? Now this is all pretty basic. Well, I'm gonna show you some pretty interesting things about sale specifically, right? So so far we saw it's easy to like create your own directories and like step through apps and like incrementally add them into the directory and then be able to use the Phinos directory to have some things to play against. What we can see here though, so just to show you like that's the raise and tend for context, but here's what's interesting. This is the broadcast. So I can put this onto a color now and say broadcast Amazon. Let's add some other app that wasn't picking up this broadcast. One of the things I can actually do in sale is I mentioned before there's an object model. One of the things we've started add in and it would be great to get, this is like one of those first good issues, right? Is making this look prettier, but this is actually a viewer that shows you the whole object model that sale is operating against. So you can view the actual state in action. So if I go over to channels here, here's the red channel. I should be able to see, oh yeah, here's the context I just broadcast, right? And it's not instantaneous. That's another good first issue. And there's Microsoft, now here's Amazon, right? So the other thing we can see too, that's really nice, is that I can see here's my sale demo. I can see first of all it's on FTC3 1.2. I can see the URL it's going to. I can see all the directory data that is loaded up for it. All this is accessible to me as a developer as I'm working within sale, which becomes very, very helpful for debugging FTC3, right? In fact, I use this multiple times in trying to figure out what's going wrong with the conformance tests. You also have all the internal IDs for things. And so for those familiar with the FTC3 2.0 APIs, this view ID here, this is going to become your instance ID in sale, right? I mean, in FTC3 2.0, that's what we're going to return to you. That's our unique identifier for that instance of the app. So this becomes very helpful for visualizing what's going wrong when things are going wrong. So how are we doing on time? Because, yeah, yeah. So finally I just want to show one last thing. I'm going to fast forward to the very end, which is, sorry, we've been maybe talking too much. So the, we've got here, so let's say now the next step really is that we've gotten, we have something working with FTC3, it's doing all the bells and whistles. We want to try out 2.0 and we want to have it be able to interoperate with the 1.2 world. We saw that before, but let's just make sure that that really works. So we can see here in this directory, I've got 1.2, this is going to be the same app, and I've got my 2.0 version here. Okay, and then we're going to run that and then we're going to do the same thing. We go and open our grid and this time we will honor Rob. And we're going to, now we see when we raise the intent for view contact, we have two options here, sale demo version 2.0 and sale demo version 1.2. Let's open 2.0 and that's exciting. Look, it's got a snazzy now in FTC3 2.0 headline in the top of it. So, but the point here more than anything else is that these things interoperate because these, we are able, so for example, actually, if I open up the adaptable blotter and we look at this in the session viewer, we can see that's 1.2. So we go over here and now when, yeah, see that's, that is the wrong example. Yeah, yeah, I got, I messed up, but I have a solution. This one is 2.0, the FTC3 2.0. So we send a message from 1.2 to 2.0. The reality is actually we're doing it throughout the whole demo. I'm just explicitly showing it to you there. And they're able to go back and forth without really any issue. So that obviously will help a lot with the transition as we go from 1.2 to 2.0 and we have to bring a lot of apps kind of kicking and screaming with us. So I'm gonna stop there with that portion. That's close. So there wasn't that crazy after all. I think we got it working in the end. So yeah, to recap, so we have FTC3 cell which is a new open source container desktop agent. And we really hope that it's gonna help with the adoption of FTC3 for people who are already using the standard or people who are wanting to use the standard. We think it's really gonna help the developer experience. We hope it's gonna help also educating people in the business because you'll be able to very quickly kind of do a proof of concept of what the technician can do. And sometimes it's kind of the challenge when you're taking like us, just convey the power of what you can do with FTC3 is a tough one. And also we believe that because it's open source, you'll be able to decide what the roadmap's gonna be. So depending on what is best for, you decide what's best for yourself. So you can really like shaping what this new project is today. But what's immediately next? Yeah, so immediately next, we do have conformance for 2.0 coming up. That's gonna be hopefully a really exciting time. And we have also big focus, I think that we should have is on this of publishing an auto update. So this kind of goes back to the little electron security thing. Electron makes it very easy to do auto updating. There's a lot of resources available, especially for open source projects around that. So we wanna make sure that anybody using sale can have auto updating integrated into their project very easily and that we have a clear line for people to be able to make published signed packages of their sale project. And that's something again, we'll be looking to the community to sort of give us feedback on in terms of how they wanna do the signing. Do they wanna Finno's signed version or do they want to have something signed by their company that's putting out their kind of product on sale? And then finally, we're looking to you to community engagement in terms of feedback on things. There's a lot of interesting topics. I think we've just scratched the surface on in FTC3, among them the UX of interop, as well as the security of interop, I think are great places for us to start modeling a lot of those things out with an FTC3 sale and to have like a way to really engage beyond abstract standards meetings. So finally, get involved please. Especially if you've maybe felt like the standards process is not as engaging for you because you want to write code, this is a great place to get involved. You can also just give us feedback. We have a Slack channel obviously and we have email, but go to GitHub, check out the project, star it, clone it, try it out, make contributions. We'd love to see that engagement. Even if there are issues, Seb and I have an hour list that we're gonna start to structure the issues so that it'll be clear for people where they can get in and get involved. And anything you want to add there? Yeah, something I want to add. So yeah, obviously contribute. I think it was a bit of the theme of the day. People say like, this is our open source project, please go and why should you contribute to ours? It's kind of like what I'm gonna say now. First, I think there's an opportunity to do something that is kind of like needed. We see a lot of customers who are always saying like, I think this is stable stake, how we have the open source version and that's kind of like the answer to that. But also, so Nick kind of started a project and Rob as well and I've been kind of I did to the group and what I've contributed to open source before and I always find it really daunting. You go there and it's really kind of, it's not even meritocratic. It's more like kind of, you're not very accepting until you're proven there. Now, I guarantee you if you raise, and I guarantee you know like on me, if you raise a full request today, it's gonna be like in a review like within a week, which is kind of like something you don't usually see in an open source project. So go on GitHub, raise issues and you're really a farmer's person then. Thank you. You're good.