Welcome to JSATV Europe and our live two-days event on 2023 predictions. I'm Jean-Marc Lehmann, joining me today is Amsterdam-based Sarah Paulen in mefield city of Hashi Corp. Sarah, thank you so much for joining me. Thank you for having me. We were just saying it was freezing where you are in Amsterdam. It's not much but in London but... It is properly cold here and given we all ride bikes everywhere for transport, it makes it a little bit a little bit difficult so hopefully... I'm not even imagining it with a cold wind. I mean, even though it's cold where we are, what's very hot is the market that we operate in. So I wanted to jump into what's been the biggest changes the sector has seen in 2022 across the region that you cover. Yeah, I think we've seen a couple major trends, the first just being attrition in general. Companies are having a really hard time hiring but also both keeping employees, which I think we saw begin with COVID and during the COVID times, but that seems to be propagating more and more. And in some industries that's going up to about 50% based off of what I'm hearing from some of our customers. So that's been one major challenge and something that's quite hot. How do we skill up the market? How do we make sure that our employees are getting what we need? And how are we fitting both culture and skilling within organizations? The second one is that jump to multi-cloud. I think we did a survey with Forrester and we're looking at over 50% of organizations are now running some form of multi-cloud. So in combination with that attrition, how are you managing the scalability of multiple clouds and the skills that are required to maintain both clouds, which then brings us into the security side of things. Security is super hot topic. I think we'll remain a very hot topic, especially given some of the breaches that we've seen more recently. So how do we get some of those skills then into the security market? And how do we change kind of our perspective on how are all of these things coming together? And then 5G. I think 5G has actually done a lot for the market in terms of what are we looking at. So previously it was really about a combination of virtualization and physical. But as 5G starts taking off and really starts driving the market and what is going on in terms of architecture and requirements, particularly in terms of latency, this virtualization is going to become much more complex and we'll be looking at containers, serverless, all of these things, all of these edge computing devices, they're really going to start taking off, I think. And we're already seeing some of that happening. It's great. I mean, there's so much to pick and choose from what you just said, because everything you said is basically just going to open so many new use cases that we've never even thought about in the past. I mean, everything you said, it can also fit into a prediction for next year. But if you have to choose one as in a big thing that you expect to happen next year, what do you think it will be? I think security is going to continue to be a very hot topic, because what we're having to do is adjust what we've previously done and how we've looked at security. So if you look at what has been addressed previously and how we've dealt with security controls from a technology standpoint, a lot of that has been managed through IP addresses. And because of all of these changes in the market, things like the 5G, the virtualization, multi-cloud, we can't really pin those security controls anymore to those IP addresses, which means we really have to start turning things on its head and how do we start leveraging that. At the same time, we need to make sure that we're securing the networks that kind of link all of these different things and drive those via identity. And that becomes a really complex undertaking and requires a different way of looking at security, making sure that nothing has the right necessarily to have that inherited trust that we've previously said is acceptable. And it was, when we were dealing with more physical devices and things running on these physical devices, that was an okay security model. But now, because everything is kind of logically based and we as humans are innately flawed and we make errors, we can't really assume anymore that inherited security is going to be sufficient anymore. Interesting. I wanted to ask because you work within the open source remit. So what does open source fit into all this? You've already kind of mentioned containers and serverless. It's been quite a few years since I last looked into that specific part of the sector with the Cloud Native Foundation. This is all pre-COVID because we used to go to Berlin and all that for the conference. So give us just an update of where we are with open source in Europe along the lines of where you just touched on special security. Yeah. So open source continues to thrive. And I think open source is a requirement for the community because it allows so many new adventures and just opens the door in terms of innovation for everyone where a lot of organizations, I think start drawing back a little bit and being quite wary about open source is the backing. So if you look at open source, you can sort of break it down into two areas. So at HashiCorp, we have our open source offering. Anyone's welcome to use that. But then we also have the more enterprise side of things so that if an organization wants to make sure that that's scalable or has the backing of support, then that's in place. So what we're seeing is kind of this deviation between these two enterprise and open source so that you still get access to the technology. But then if you need the additional support, that's there and you have that backing. And as we see legislation like Dora rollout, which is about operational resiliency, having that support is going to become more and more critical because it's going to be mandated on a regulatory level. So the creativity and the innovation that comes from open source, I think is unparalleled and organizations really need to look into that. I do understand though, also coming from the security standpoint that you need to be able to have full control over the software that is running in your organization. Okay. Because I was going to ask if that sort of separation between enterprise and consumer was more kind of a marketing cells thoughts. But so it was more regulation driven than anything else. It can be regulation driven. It can also be scalability. So if we take, you know, a good example, just being HashiCorp in general, our open source tooling gives you a lot of functionality. It's more or less the same feeling of the product but then the enterprise allows you to do is really scale that on a much larger scale so that you have that required workflow and it can handle the required load as necessary. Okay. So if we're looking to what HashiCorp is going to be doing in 2023, so of course I'm sure you're going to be building on a log for you just said, but won't be the main three things you're going to be pushing out to the market and even region-wise as well. Well, if there's going to be any specifics to different parts within the region, you're going to be operating with it. Yeah. So one thing just being this idea of zero trust and the zero trust security, how do you make sure that you can secure with, you know, reasonable parameters, your workloads, make sure that you aren't trusting anything but then everything is authenticated and identity driven. And I think that's something largely the market is responding to across the board. We're also realizing that, you know, within Europe, we have different requirements than the United States, for example, things like data sovereignty are becoming a really large issue. So making sure that we have that in place so that the security side is fully responded to and making sure that there's the ease of operability there as well so that you're ensuring that you have that iteration speed that you can enable high performing teams, essentially, without the cognitive load that's kind of associated with that. So really trying to pull that all together and make sure that teams have access to all of these tools. Interesting. Just quickly picking up on the data sovereignty point because both the audience would be very American. So I think it would be quite interesting for them to understand a bit that. So the sign is really coming through now. I can't see you anymore. This is just the sun now. I was going to ask, in the old days before GDPR started, everything was getting a little bit messy because each country was doing their own thing. There was another regulation. I can't remember the name now, actually, but then GDPR came in and it was meant to standardize everything across the block. But we seem to be now not only have that, but each country seems to be also starting to go back and look into their own national legislations. Where are we with all this? And the sovereign clouds, Germany and France being two big countries doing that. Just give us a general overview of what data sovereignty is within Europe. Yeah, so there are different levels of required data sovereignty. I think the biggest divide we see and the largest concern that we see, especially as we're dealing with some multinational companies and companies that have presence within several countries within Europe is really the European data sovereignty. There are a couple legislations and regulations that have come out of the US which make it, in theory, possible for the US government to then gain access or knowledge over data which is residing even in Europe, contrary to popular belief. And now that we've seen things like Shrems 2 with the US and EU Shield which has fallen, that's really called into question a lot more. What is actually possible? And there's a lot of uncertainty there because there's not a whole lot of jurisprudence. On the flip side, we're also seeing, like you said, countries like Germany, France, say that that data actually has to remain within their own specified countries. And that really has a large impact, particularly for things like public sector. It would be the equivalent of making sure that in the United States you don't want government information then floating out to a different country where, in theory, there could be some political blowback. So the question then becomes, how do you balance all of that? Because on a certain level, managing all of that is extremely difficult, especially if you're using something like public cloud. And there's a lot of value to public cloud. So how do you balance that risk and where does that risk fall as well? And that's becoming quite a hot topic here within Europe as well. Okay, interesting. And then, sorry, so if people want to learn more about Hashi Corp and reach out, maybe just delve into that topic of their sovereignty and regulation because they can go on for many days and weeks and years, if anything. How can they reach out? Well, so for Hashi Corp in and of itself, if you want to check out some of our tooling, HashiCorp.com is a great place to start to see what we have available in our portfolio. My absolute favorite thing I have to confess is Arman, who's one of our co-founders and Mitchell as well have some amazing videos up on YouTube just about what are secrets management, what are some of these key problems that we're trying to solve, how HashiCorp began even. So if you just go on to YouTube and Google Arman Dadgar or Mitchell Hashimoto, you'll come up with some really great stuff there. And then if you want to start getting a little bit more hands-on, either the HCP platform, which is the cloud-based platform where you can start experimenting with some of these tools that are already spun up in a cloud environment or conversely learn.hashicorp.com, that'll give you an idea of some of the use cases that we're trying to solve and give you some step-by-step tutorials as well. I love the YouTube element because so often people forget YouTube is the second largest search engine in the world, the first one being Google and YouTube is on by Google. Oh, for sure. And I know that a lot of organizations now are really heavily relying on YouTube for things like tutorials and learning just across the board. That's where you get all your information. And then last question I'll probably miss. If you had to describe how you feel about next year in one word, what word would you choose? I think the word for me is going to be innovation. Next year is all about how do we spend things to our advantage and look at things a little bit differently. Okay, interesting. I'm curious to see what's going to come out by the end of 2023. Me too. Sarah Paulin, thanks so much for talking to me. And to our viewers, thank you for tuning into JSA TV Live. Don't forget to check out our social channels for more content. Until next time, happy networking. Thanks so much. Thank you.


This research has developed a novel rechargeable aqueous zinc ion battery, ZIB, with metal organic framework MOF, materials as both the cathode and anode. The MOF materials used in the battery are able to store zinc ions while also providing a stable zinc stripping slash plating process on the zinc anode, resulting in a much higher cycle life compared to previous batteries. This article was authored by Xu Heqiao Pu, Bao Zhengjiang, Shanli Wang, and others.


Hi, thanks for joining us. Continuing part two of our microservices talk. And in this session, we'll be talking about deploying infrastructure foundations. My name is Sean Murakami. I'm with IBM Cloud, and this is Andy Bodang. So we're going to talk about what infrastructure foundations means in relation to the 12 Factor Act. But first, I want to talk about applications in general and when we're developing these microservices and applications, most applications today utilize one or more network resources and services. They tend to consume platform services to help enrich and enhance the capabilities of the application. But there are two types of services from a platform perspective. First, we can think of these as dependent services. So these are the services that help maintain the persistence and data of your application, things like databases, identity, and object storage. And the other set of services are the services that help support the integrity of the application, the things that help operators and developers understand what's going on. These include monitoring, metering, and logging services. So I'm going to talk a little bit about the 12 Factor application methodology. And the infrastructure foundations are composed of three of these. And these are highlighted here. First, we have the backing services, logs, and administration process. And I'll go over a brief overview of all of these. And finally, we'll show this in practice with the BluePick app that Manuel also had mentioned. First, we start off the admin process and management. While we develop these microservices, we want to ensure that the developers have the capabilities to quickly provision and utilize resources. We don't want the platform to stand in the way of accelerating their development process. So these should be consumed via APIs in a self-service manner that can provide these resources in an on-demand way. So these APIs should allow the developers and consumers that are trying to do these developments of these micros services to help tune and tweak and enhance or decrease the resources from compute resources, like memory and CPU, to network and storage. In addition, monitoring and metering play a very important part in a microservices architecture. You want to ensure that you monitor everything, even though you think that you may not need at that time. Because when things are going great, who cares what's really going on behind the scenes? But when things go wrong, it's really hard to understand what things are happening, especially in a decoupled microservices architecture. There could be events coming from one service that may or may not be related to another. So gathering a lot of information is key to help triage and help find the root cause of what's really going on with the composition of the app. The monitoring also helps avoid cascading failures. As I said, one service may impact another service. And at the end, the user only sees that your application is not working. So ensuring that the health and the lifecycle of the various services that are being consumed by your application is very important. The metrics help identify the health of the app, things like the reaction time or response times your user is interacting with your application. But the metrics also help give the operators and developers a sense of what's going on. The model resources that these applications are consuming help the operators and developers increase the resources as needed before the end user sees any issues. So it's very important that the platform provides these capabilities to help prevent future errors and ensure the integrity. But along with these events, we want to make sure that there's a well-defined process of how to handle them. So what happens when a service goes down? Or what happens if a number of nodes start failing? The alerts and events that are generated by the metrics and meeting components should provide insight to the people that are going to be triaging that event. In addition, logs from their application to services should provide additional insight to how your application is being used. As a developer, you don't want to have to know where your logs are going. It should be easily ingrained into the platform. What I mean by that is, as a developer, I should be able to focus on my application, know that there's a logging function, and in the end, I should be able to consume them from a centralized location. All the logs, because we have a lot of different services and applications running in these environments, they should be all aggregated and consumed and centralized, where a developer or an operator can go in, look, and inspect. If things are healthy, do I need to make changes in certain areas? And they should be easily searchable. If you have a lot of services, a very complex application can be consuming many services. So it's very important that we're able to assimilate the different events that are going on there. That provides a baseline for analysis and analytics of your application running in the platform. Finally, we'll talk about backing services. Now, this is really the key to help enrich your microservice application. Backing services should be treated as a decoupled state. What I mean by that is that you, as a developer, should know or have the hope that the services are available when you need them, so that when you do development, that they're dynamically linked into your application. The resources are critical, but all of the app logic should treat them as a dynamic bind. And they should be consumed as a well-set of defined APIs and consume this cure matter, typically wrapped as an application token or a service token. And the key point here is that, as a developer, I shouldn't have to worry how they're deployed or how they're managed because these services are typically managed by SMEs. Some examples of this. We start with data stores, things like databases, relational, document or graph, or file storage. So think of applications that maybe it's a gaming application. We need to store game state. We could use Object Store there. Or if it's a multimedia application, we can store images or video content in your Object Store. Messaging services help enhance the communication between your application and one or more services using message hubs in a Pub-Sub manner. Or if you need to consume messaging services to help reach out to your customers or your users by using push notifications. Security is always a big concern around services in the platform. That's why we want, as a developer or an operator, ensuring that these, ensuring that the services and applications are isolated in a secure way using various methods like proxies and API gateways. To also enhance the experience, single science, identity management, such as single sign-on, can help enhance the experience. You don't want your users to be logging into various services just to get a particular type of feature. And finally, the platform should also help you enhance what you've developed. Say you started an application as a simple web app. And then you want to extend that to maybe a mobile application. The platform should be able to give you that capability to easily transport a very simple web page to a mobile client. And then an additional enhancement, things like adding text-to-speech or image recognition can really help your application and user base grow. So from what I talked about, we really want to show you how it's done firsthand. And these are going to go over this BluePick app, show you the different types of services that we use, the architecture, how they interact, and the final outcome of this composable application. Andy? All right. Just think on it. Yeah? All right. Great. Thank you, Sean. So lots of slides. Let's get into a demo. Menwell introduced you guys to the BluePick application. I'm just going to actually show you it now. Some hot body here. There we go. All right. So I'm not sure if you remember the slide, but the BluePick app consists of a Swift-based back end and a Swift-based front end, so an iOS mobile application. And that's really what I'm going to show you guys right now. And like Sean said, we'll get into the architecture and how we actually deploy those services in a little bit.  Get that out of the way here. All right. So here's BluePick. BluePick's really, it's a photo sharing application that we've decorated with. Just like Sean said, we take that simple application and you want to make it more featureful. You want to make the user experience better. So it's a photo sharing application that does a little more. And I'll show you what. Here's the app. It's just a stream of photos right now. But what I can do is I can go ahead and I think it's a little off against some reverb there. I need to adjust the disc. I think my resolution is a little high because I can't see the bottom of this. Can you swing it? No. See the bottom here? Sorry about this. No, it takes one size. There isn't a button. You can scale. Yeah, I just need to adjust it. Sorry, guys. Display. Scaled. You can scale the simulator. Oh, you can? Yeah. I don't know how to do that. Is that on the simulator? All right. Scale. There we are. Lower. Lower. There we go. There's my buttons. OK. All right. So I'm going to simulate taking a photo with the emulator. And there's some sample photos here. So I'll grab one. And let's go ahead. This one looks nice. Let's give it a title here. Spell that right. There we are. OK. Let's post that photo. All right. So what it's going to do is it's going to upload it to our back end. And there's going to be some processing that gets done in the back. While that's happening, I'm going to flip over. I'll show you the front end. All right, I'm sorry. I'm going to show you the web front end for our application. So here it is. We have some kind of mobile login client access. So it does support logging in Facebook. I'm just going to do anonymous login for now. And you should be able to see our photo. Network's a little slow. But it is there. If I click on our photo here, you can see that's the title I just added. And off the bat, you can see we have a little extra things. There's actually some geographical information associated with this photo. And we're going to get into that, what those services are. But it's actually taking, I don't know if that's right here, the temperature. But we're simulating getting the temperature associated with a geographic location and then mapping that to the image. And that's going to be handled in the back end. We didn't actually put that in. All I gave it was a title. Let me just refresh the mobile app here. OK. And I can see on my photo the same kind of temperature reading here. But even more so, we have these tags that were generated. So we're actually using, and I'll get into this when we get to the architecture. But we're actually using Watson, the Alchemy Vision API. And what that does is it takes the photo, does some image recognition, and generates those tags for us and applies that to our photo. So you can see those are being populated right there. That's in a nutshell what the application is doing. I'm going to flip back to some slides. We're going to get back to some demos. So bear with me. All right. Let's hop back here. Great. All right. So you've seen this slide before. And really, as I said, and Manuel had said, these yellow dots, these signify our Swift-based application. So we have a back end in Apple Swift and an iOS app in Apple Swift. I showed you the web app. You can see on the left there in the pink. And then the rest of these services. So the kind of flow that I just demoed, so we took a picture of the iOS app. And then we went and uploaded that. So that goes and that hits. Let me see if I can turn this on here. All right. So we took a picture in our iOS app. I just showed you the web app, the web front end for our Ketura back end here, as Manuel mentioned. Ketura is a Swift-based web framework. So when Ketura gets the picture, it's going to go ahead and dump that into our object storage. So we get a photo, toss it over there. And the title that we associate with that photo, that's going to get dumped in as metadata into our cloud and storage here. So we have two storage services that are supporting the application. And then the interesting stuff happens. So those tags and the weather data that I showed you that got generated, those are happening on OpenWisk. I'm not sure who else is familiar with OpenWisk. It's a serverless platform, serverless computing platform. But on OpenWisk, as I mentioned, we have the Watson Vision API that's doing our image recognition. And we also have the Insights for Weather service. And that's where we're getting our weather data that's associated with the geographic information of the photo, the geotag, if you will. So we take that photo. It gets pushed through our back end, stored in object storage, metadata is in cloud end. And then as soon as that happens, OpenWisk is event driven. So what we're going to do is once that photo gets uploaded, OpenWisk is going to go ahead and kick off these jobs. So Alchemy Vision, like I just said, it grabs that photo out of the object storage, does some image processing. It's going to get those tags, and it's going to dump those back into cloud end. Associated VM metadata with our object in the object storage. Same thing with the Insights for Weather, the Weather Data Company. So that's going to take the geotag, like I mentioned. Same thing. Dump that right back into cloud end. So now we've taken that simple application of taking a photo, uploading it, that simple action. And we've enhanced the experience very simply. And what I'm going to transition into next is how our platform really facilitates that and makes that simple. So what Sean was covering earlier is this concept of infrastructure foundations. And really, in the context of BluePic, everything that has color up here would be categorized as infrastructure foundations. So all these services that we just went through, the role they play, that would be BluePic's infrastructure foundation. Now I'm done boring you with the slides. I'm going to hop into some more demos. I do have some recorded demos because I wasn't sure about the network. But if we have time at the end, I can do some more live stuff. So let's hop into the first one. Really what we're going to get into now, once I get that, I don't need this stuff. Demo one, perfect. Let me just minimize this stuff. We'll leave that there. So infrastructure foundations. Now we want to go into, as Sean said, the platform should really make that easy to do. It should make it one click provisioning. I shouldn't have to deal with the intricacies of binding those services to my applications. I shouldn't have to deal with the technical details of managing those services. They should be there. Once I provision them, they should be there for my app to consume. As you can see here, I have a set of services that's not the full set of services, if you remember the whole list from our architecture slide. We're missing the Watson Alchemy API and the WeatherData services. What we're going to do is we're going to go ahead and provision those. Just show you how easy it can be to do this. So we're going to hop over to the service catalog. And as Sean mentioned, this is ever-growing. We take more and more technologies and we want to enable them on the platform for a developer to consume. So we're going to go find the Alchemy API. And right now, we want to bind that to that application. So we're going to select our blue pic. And that's it. Got the blue pic. We do need to name it specifically just because of how the app is implemented. There's a configuration. It looks for a specific name. So we've got to give the service the right name. You can see from the catalog it gives you a little highlight of what features are available, some of the pricing plans. The free doesn't work if you routinely do it. So it had to do with the standard. So we're going to go ahead and provision that. I didn't mean to say it doesn't work. It doesn't like you to do it again. It wants you to delay it. So what it's telling me now is it wants me to restage my application. And what that's going to do is it's going to handle binding, that binding that happens. It's going to take care of that and redeploy the application, restage it. I chose not to do that at the moment because I'm going to provision a couple of services. All right, great. So now we can see here our Alchemy API has been provisioned. Perfect. We have one more to go. So let's go back to our catalog. We're going to find that weather data service. I was going really slow when I recorded these. Just to note that these services are being deployed separate from the application. So the services, the instances are being generated. And what happens is, again, this whole concept of late binding or dynamic binding and linking happens at deployment time. So that's why the message comes up as restage your app. Because at the time when a new service comes on board, you want to make sure that the application consumes that new service. So the restage takes place so that it can now talk to this new instance. That's a really good point. There's nothing saying that you have to have your application running here in order to consume these services. They can just as easily be consumed externally. You'll just have to handle the actual binding of the app to the service. All right. Once again, the weather service, we're going to go ahead and bind that to our BluePick app. Give it the right name. I'm going to go ahead, make sure we got the right pricing plan, and go ahead and create that. All right. So with a few clicks, we've got our services ready. That's the whole set of services that our BluePick needs, and that's the Infrastructure Foundation. It wants me to restage again. I opted not to. So we've got our full set of services, and now we're going to get into, we're going to fire up our application because it's stopped right now. It wouldn't run very well without the services that it needed. Those services represent one of the circles on the architecture chart. Right. Yeah. Each one of those boxes that we just saw in that view, what's going on here? Play. They correspond to the architecture diagram. The second one we showed where it had just the colors of the infrastructure services, they map one to one to those. All right. So like I said, we're going to go ahead. I stopped touching that. We're going to start our application up. And what Sean also mentioned, and what we're going to get into next that you really should come to expect out of a platform, is these kind of common features or tools that should be available to you and that are common across. When I say common, I mean I would hazard a guess most if not all applications are concerned with at least logging if not monitoring as well. So what we're going to dive into now are some of the logging and monitoring features that are available for our BluePick app. This is all default. Yeah. Again, I didn't do any provisioning in terms of logging or monitoring. Those are automatically there. Yeah. So we're going to get into that. So as Sean had said, in terms of logs, we want them centralized. We don't want to have to go to multiple locations, go tail-flogs over here and have multiple terminals. They should just all be in one spot. They should be formatted and searchable. So they not only look nice, but we can actually do things with them. They're not just a bulk of data. As you can see here, Cloud Foundry is the actual platform that BlueMix is built on. And what we're showing you here, what I'm showing you here, is we can filter where the source that those logs are coming from. So I showed you the Cloud Foundry logs. The DEA is actually the service that runs the application. And what this is showing you is that if you have multiple instances and you wanted to specify a single instance, you have that option too. And later on, actually, I'm going to get into some more logging and monitoring options that you have that are also integrated. So that was kind of a simplistic view of the logging that's available. There's actually a more customizable dashboard. If you're familiar with Elk and the Kibana dashboard, that we actually have that integrated as well. So if you want to have a little more flexibility, you're able to do that as well. Now I'm getting into kind of the baked in, the batteries included monitoring that's available. In terms of monitoring, you can only go so far in terms of the batteries included model. So what this is going to get into is, oh, sorry. So what that was doing is my application, when I hit start, it's doing that restaging. I opted not to restage at the time. So it's restaging that app, and that's why it needs to be started at the moment. So now I'm going to get into some of the baseline monitoring that's available. And really, those consist of two categories. Those are availability, as I just skipped a whole part of the, sorry about that. Sorry about this. I skipped a whole section here. All right, let's play from there. So this is going to show you availability. Our application, in terms of availability, you want that deployed in multi-region. And that's really what this graph is showing you. So the backend is actually provisioned. You can see here in three separate spots. It's showing you that it's down right now, and that's because it's currently restaging the application. So it's not actually up right now. I can get in, and when I get to more of a live demo, I'll show you that it actually is running. It has to be because of the iOS demo I showed you earlier. So some of the out-of-box testing that is available is response time. So this is just going to provide you with some kind of simplistic metrics in terms of how quickly the base route of your app is responding. And you can see we've got the activity log. The app's been started and stopped. And here, this is a graph that's showing you the response time. So there's three different colors here. I hope that's yellow, blue, and green. Those correspond, you can see down here, Amsterdam, Melbourne, and San Jose. So those correspond to the three different locations on the map that you saw up top that our application's deployed. And because this is just deployed, there's not a whole slew of data at the moment. But it's already gathering metrics for you. So you can see the instance that's deployed in Melbourne. It's responding with a 1.6 second response time. So response time is one. And then availability. That's the other batteries included monitoring that we have. And again, there's not a whole lot of data at the moment with this demo, this recorded demo. But this is going to show you the uptime of your application. All right, that's the end of demo one. I have another recorded demo that we can get into. 10 minutes left. All right, great. So I'll just go through this one and then we'll open up for questions. So as I mentioned, I showed you the simplified view of what monitoring and logging that are available. Now I'm getting into more of the customizable features that we have. This is a little bit different of a URL. So it's logmet.ng.bloomix.net. But it's still going to get the consolidated metrics and logs. And it's going to show you the same kind of data that I was just showing you in the other view, but in a more customizable way. So for those of you who are familiar with Kibana, here's our Kibana. And these are the logs that we were just seeing. You can see updated app. Apps now listening. So those are application logs. And really what you have here, you have the ability to customize your log view. In the other view you didn't, you could at least select the source at the platform layer, as well as the instance number. And here we have much more flexibility. I can add things like the application name that is coming from the organization name and the space name, where the apps actually deployed. And there's a whole other set of tagging and different kind of metadata about those logs that you have to control to customize how you want to view here. So here I'm adding the organization name, the space name, and it's pretty quick, right? And then there you go. So if I had a few different applications that would be a little more useful, this is just to demo that capability. But you can kind of see it if it's a water hose of logs, I want that ability to kind of customize what I'm looking at to make sense of all that bulk data.  I want to show you guys that this is actually running. Let me get the right window up here. All right, great. So this is the web front end we showed you earlier. And here I am in a web browser hitting Bluemix right now. This is the same thing that we've been looking at in our recorded demos. I'm just going to go into show you a little bit more. We have a little bit more data now that the app's been running for a little while, and we've been interacting with it. So in the recorded demo, I kind of had some red here. And that was because the app was currently staging. So it had a little downtime. But now we're back up at 100% availability. I didn't define any more complex tests to perform, but that test is now passing at least. So if we drill down into that, you're going to see that we have actually some more data down in the response time graph once it loads it in here. There we go. So lots of pretty colors. So there's a lot more data for us to look at and do things with. Apart from that, I think that's kind of the end of this. So that is the infrastructure foundations in terms of the 12-factor app. What you're going to hear in the next session, Dan's going to cover some of the options for running these microservices, kind of some trade-offs in terms of how they're get deployed and run, and some of the options that you have. I think we've got about five minutes. If there's any questions, could you please just take them to the microphone? All right, well, thanks for joining us. In about five minutes, we're going to have some refreshments. I think he said we're going to start the beverage service. The beer's coming. Thank you. Please stay for the next couple of sessions. I think we're going to have a little bit of a break, and then we'll be resuming soon. Thank you.


Hi everyone, I'm Joe for Jaspy's Case Breaks dot com coming at you with a one brief case break of 2021 Panini flawless baseball random team break number 38 Big thanks to this group right here Thanks to the Eds Dale Russell Anthony Steve and of course Carl. He loves this flawless baseball big Thanks to all the baseball teams for being in let's roll it randomize it five and a one six times for names and teams one two three four five No one six and final time Got Carl down to ed p Five and a one six times for the baseball teams one two three four five And a one sixth and final time Got the atl down to the Anaheim Angels of California of Los Angeles and I'm All right Carl with the brave Steve Orioles Guardians Giants Carl Royals Cubs White Sox Russell with the Phillies Dale with the Brewers Carl Rangers and Pirates Ed with the A's Carl Rays Dodgers Tigers Steve with the Yankees Carl with the twins Ed with the Mets Carl Diamondbacks Reds Astros Nats and Mariners Ed with the Marlins Carl Padres Rockies Blue Jays Anthony with the Cardinals Carl with the Red Sox and Ed with the Angels South of ties by team We're gonna pause the video just for a moment and when we come back We'll see if there's any trades and then we'll have the break stick around All right. Welcome back. No deals were done to the trade window is closed Thanks everybody for getting in on this. I appreciate it There is random team 38 Now if you're wondering if there's more flawless I did find one more case that was in my cabinet here It was the second half of an old random number block break. I guess we were trying to do 2021 flaws baseball random number blocks I guess it wasn't really Moving quickly. So we never ended up posting that second half But I found it and now it's in the store. So just keep in mind. That's the second half of an old case that we were doing Not from a fresh case, but still flaws. So it should be nice All right. Now if we're lucky, we'll have a third card here No, we don't but the gem is on the left side Looks like we got an autograph on the right side Hide those keep the keep the mystery Keep it mysterious keep it Mysterio, let's do the slider box first All right, Vlad Guerrero, Jr. 9 out of 10 Toronto Carl got mastercraft triple relic Luis a pericio 25 the Orioles Steve H. You know Bobby Dalvik 9 out of 10 Looks like the top of the B for Boston, right? It's gonna fit into a 90 180 top loader is this slider box zone It's kind of fits but Better off in a slider box Bobby Dalvik going to Carl and the Red Sox Thanks dual relic and auto Another thick one here two out of ten Evan white Dual relic and autograph for Seattle. That's also for Carl And we've got another nice one rookie patch signatures Jermyn Mercedes 14 out 25 another nice patch right there White Sox also for Carl. Oh another thick one. That's Tori Hunter three out of five Twins that's gonna be for Carl out of fives and under gets the world famous train whistle All aboard the big hit express And a couple more here. We've got keeper Ruiz 14 out of 20. It's Dodgers edition another big catching prospect said Ended up going off to the Nationals But this is Dodgers edition for Carl and last one here. This is White Sox edition of Nick Madrigal 9 out of 10 Carl has both the Cubs and the White Sox so Wouldn't have mattered Yeah, kind of a story on it. Yeah, he was a real solid player. All right now. You're in cased cards on this side is the gem Which are naturally my not lab grown. That's what the small prince says here and the gem 20 or out of 20 10 out of 20 Juan Soto Diamond Nationals edition ed P in the Nets and Should be your auto Shohei Otani Wow five out of ten show you Tani quad relic and Autograph and that's for the angels. That's for ed P and the angels Ed sweeping the encased cards right here. There you go gang That's that the case is closed on random team 38 appreciate everybody getting in We got one more briefcase in the store. Jasper's case breaks calm That's from a from an old case from an old break that we did. It's a loose box So just keep that in mind before you buy in I'm Joe for Jasper's case breaks calm. I'll see you next time for the next one. Bye


So hello, my name is Simon Thornit. I'm a senior software developer at Catalyst I'm here today to talk to you all about an open-source plugin that we've been working on That will hopefully help many of you here plus the wider community And that plug-in is the data import tool Now over the course of this presentation, I'm going to try and cover a few different things What the plug-in is and how it works the problems that we try and aim to hope solve with it How it's been developed the approach that we decided to take in this instance and hopefully how that can benefit everyone in here even if the vanilla solution doesn't quite meet your requirements and Finally the Q&A session at the end So First off, what is it and how does it work? So you'll have to excuse me reading my script constantly The data import tool is a plug-in that will enable you to connect your Moodle to an Sorry, will enable you to connect your Moodle to an external data source and Automatically keep categories cohorts courses users and users enrollments synced up And up to date You'll understand more about how this works as we step through the plug-in and the various settings And then how we actually manage this is via the settings interface, which I'm gonna bring up now That is a horrible resolution. I am so sorry.  Okay, so just imagine you can actually read that and I'll step through it So here you can see the general tab That's what the first word actually says this tab contains the global configuration and connection settings and you'll Hopefully see at the top Global connections So this allows you to enable and define the settings for external connections to a database A local file or an SFTP file They are there. I promise and This will determine the shared setting that each import task will be able each import task will be able to use Again, you're gonna see that on the next screen in a little bit At the bottom. We actually have the log settings So here you can define the types of import logs you want to store whether it's just successful logs error logs Or whether yeah, whether you want everything or custom and finally at the bottom there You can define a list of email addresses of people who will be notified with Yeah, any Thoughts like a theater. Am I being flagged off to get off the stage? No No, okay So, yeah, what was I emails? Yeah So basically you can define a comma-separated list of emails of people who are gonna be notified at the end of the schedule task of Basically, how messed up it was any errors any problems warnings and so on so Let's have a look at the core step That's even worse right It was a really big page. So I split it into three screens. So just It's like a magic eye thing just squint and you'll be able to read it So starting with the left image, you'll see that we have the option to enable the task pretty self-explanatory We also have the schedule This uses the same Unix Cron format that you would have seen in the schedule tasks in the rest of your system And it allows for Individual customization of each of the tasks now again right at the very top You'll see that there are the different tabs. So category Cohort course user and user enrollment. I'm only gonna go through the user one in this level and you'll kind of see why on the next screen in a minute Now this is where under the connections You'll see where the global connections that we were just talking about on the previous screen get used So within each of the tasks you have the option to choose whether or not you want to use the global connection that you've Just defined so you can have all of your tasks picking up all of that data from the same place for consistency Or alternatively you can define at each task level where you want each individual set of data coming from So your courses could come from an external database. Your users could come in through CSV files. There's being exported from your user management system The it's completely configurable however you want to use it Under so under all the connection settings on to the middle screen, we have the general settings For courses we have the options of what we're going to do with the external if the external course has been removed So in this instance, we've got hide selected So you can hide it delete it or do nothing with it the task itself actually defines this so You could choose to back it up. You could choose to reset it You could extend this and make those modifications however you want And underneath that just a boolean flag just to say whether or not we actually want to keep the courses updated Do you just want to pull in the courses once and then forget about them? Or do you want to constantly keep courses users and everything in sync with the external system? Finally, we've got the mappings. So we've got the in the middle of the bottom You've got local mappings and then remote mappings up here Local mappings tell us what field the remote data will use to determine the linked to Moodle So in the case of courses, we need to know both the category field and course field that is there The remote mappings let us know what column in your data maps to the local field within the system So you don't need to worry about restructuring or reformatting your data We can just pick it up and modify it and handle the transformation at the task level Okay, so now with the exception of the mappings which are obviously really specific to each area of the system I haven't got screenshots for all of those The main difference between all of them is the import task settings import our settings, which you can see here So we've got the category I Can read that the category the cohort the course the user and the user enrollments Category has the most complex one Simply because it isn't just the category it obviously contains all the contains all the courses and everything So here you can actually specify the action that you want to take against those courses So if the category gets deleted You can then choose what you want to do with the course you can move it somewhere else You can hide them and so on Similar kind of functionality to what the course one has um Excuse me Okay, so Cohorts and courses can choose to be deleted or hidden users can obviously be deleted or suspended User enrollments you can unenroll the user with all of these you have the option to do nothing If the data disappears off your remote system if you don't want it to you can just leave it on the LMS You don't have to delete everything out the system But the idea is to give you the configuration the choices to how you want to configure this and how you want to use it okay, so Why did we create this? We created this in conjunction with a few of our different partners a lot of them are having the same problem of their user management systems and so on they wanted to get data Share data between things so we have started having a lot of discussions and trying to work out if we could build a Singular solution that would meet everyone's requirements No, you can't do that So what instead we tried to do was to create this plug-in that was completely configurable, but importantly it is fully extendable Which we're gonna get to in a second We did talk obviously about trying to use as much of the core functionality as possible in terms of the front-end interfaces but they can be Scattered across the system some of them don't enable automation and if anyone here has tried to do that Obviously, it can be quite a time-consuming and complex task to actually try and integrate into the system And also tends to break with upgrades as well So our hope was to remove some of the stressors when dealing with data imports by using this plug-in And it interacts directly with the core functionality of Moodles Now to get on what to what I was just alluding to about how it's been actually been developed During the presentation. I've referred to this data import tool as a plug-in, which isn't which isn't actually accurate It's 13 Or more precisely. It's actually one plug-in. Let's get that thought it was actually one plug-in and then 13 sub 12 sub plugins which are structured like so So everything from the settings the connections and the import types are Their own sub plugins that define the logic the form settings They all as you'll see have a base sub plug-in this handles most of the heavy lifting So all of those forms that you saw on the previous page Just an array of information. It's all passed through and generated to each of the base plug-ins to handle all of that So the main plug-in actually operates more as a framework for loading these These particular sub plug-ins the settings connections and import types And obviously the reason that we chose to go with this is for extendability and customization What may work for your average person or may work for one person one client isn't necessarily going to work for any of you In fact The chances are of a vanilla plug-in working out the box for everything is probably going to be quite slim You can use it for a good amount of things, but for everything You'll you'll want to be able to customize and extend it and that was why we went for with this and What I'll do is I'll give you an example of how this could work my favorite one so So you have a HR system and it's exporting a user see the user CSV file onto the mood of server For you to load in with a local file connection Now obviously being security conscious you want to have the file encrypted Now by default the local file connection isn't going to be able to handle the decryption side of things It doesn't have an area to put in the decryption key or anything like that However, with the sub plug-in framework, you can actually create the new connection sub plug-in that handles this with about 25 lines of code so So by creating a new sub plug-in that extends the existing file sub plug-in You just need the few lines of code to add the settings. So the ones that you saw on the course page All of those settings down in the center You would obviously want to add in say something like a password filled with a decryption key that you'd want to use and Then you just need a few lines of code within the actual Process itself to handle the decryption before it gets passed back to the vanilla to the vanilla local file plug-in So you're just handling the decryption not actually worrying about any of the process you give that to the parent and Make the setting changes pass it back to the parent and it loads it and it loads it into the system It should be relatively straightforward Something that originally could have taken days of development work to do is Down to a matter of hours and obviously that's not including testing deployment and everything else But you know for the most part it's a relatively straightforward process because we have the framework We have the sub plug-ins and you can build upon them And it's not just limited to those five tabs that you saw if you wanted to load in grade information again, we could you could have a great great sub plug-in type and anything Everything is handled by the framework in that regard so You could create new collection connection plugins so you could load it from an external web service that's something I've been asked a few times Can we load Use the data or course data in for from our web service? Well, yeah, you just need to create a new connection sub plug-in that handles that you define the settings And it all builds in with the actual framework to run the request regularly and pull all of that information in One of the reasons we focused on this approach was to reduce the need to modify core code Modifying core code whilst seems easier and can usually be quite minor Can have lasting and far-reaching implications as I'm sure many of you are probably aware if you've had to do anything like that so For starters, you're no longer on the maintained version Which means that update security leases bug fix and everything can't just be pulled in as they are so Instead of using a vanilla plug-in and then making the modification so that it suits your requirements By using something like this and by using the sub-proget plug-in approach You do early By using the sub-plug-in approach You don't need to you can keep the vanilla plug-in as a core instance That is update updated and maintained for you And then it's just your small sub-plug-ins that you need to be aware of when it comes to doing upgrades and anything's coming in and With a lot of the heavy lifting being handled by the framework It should be relatively minor in terms of the work that you actually have to do to keep these in a step with each other I Think that's about it. Oh So before Q&A I'm a developer. I don't I don't do talking very well So it's time for the cute a bit. Well before we get to the QA I want to preemptively answer the first question that I get which is Where is it? I want it where can I have it? Where can I look at it? Where can I pick it apart? so On the screen now you're gonna see a link to the catalyst repo where the plug-in will be housed in quotes The aim was to try and have a beta release already for this. I'm gonna step aside Have a beta release already for this for this week Unfortunately due to various different reasons that didn't happen We're still in the alpha and going through some of the local testing within our actual development team But you will see that there are a couple of discussions on there There's the beta release discussion and the full release discussion What I would ask you to do is that if you are interested in this and you do want to Be a guinea pig and run some testing as well Please go and subscribe to the discussion And I will be posting updates on there with regards to actual release schedules and release plans I am sorry that we don't actually have the final code But I didn't want to push up what I have got and it yeah No one wants to push up half finished stuff. So yeah Those are the discussions and Yeah, that's everything Any questions? Can I make a recommendation the next time can someone move this under the AC? It's boiling up here Do we have any questions for Simon? Sounds very very interesting. I was wondering if it's also available for workplace, or it's Currently only aimed at core. It's currently only been developed for Moodle That doesn't mean it won't work with workplace It's certainly something that we can have a look at if it does require any Modifications to it to make it work specifically with workplace, then we would probably fork off of this in a separate repo But there's no reason why it couldn't From what what I'm aware of in terms of how it functions and how we've designed it But certainly something we can have a look at I'll actually make an Sam, can you make a note of that check workplace? Thank you. I've left my notebook at the table anymore Hi there one question that I have is Are you trying to aim to replace the already existing external database enrollment that is already? present in Moodle core because I feel like 30% or so of the functionality is kind of covered by this however having used that functionality I know it's kind of difficult to get it up and running and your Approach seemed to be like Way more usable. Let's put it this way and so that's where my question is coming from No, I can appreciate we're coming from The thing is is that the the issue that we had with it and certainly with the discussions that we were having Was the problem was in the name is that it's database only obviously you've got the external database That you can use for things like the user enrollments Which runs in and picks up on sync when the user tries to log in it will go through and do those bits We found it quite difficult to do it preemptively as well when people want to report on things before the users even access the course as to Who's on the course? but also trying to Bundle it all in one package so that you only have to go to one place to deal with things and Also, whilst you have the external database tool If you wanted to put something in there where you want to load in say grades or something else from somewhere Something custom the option to extend and add all of those things Is difficult to actually do and to maintain that going forward? So it was just as a way to try and give everyone one place to go kind of a one-size-fits-all Most solution and then add the customizations in from there. I appreciate that so if I understand that correctly it currently does not have the Like the functionality that the external database Authentication because it's two different things actually has where if a user is present in an external database and locks on to Moodle The tool can check if that user is present in the external database and then migrates it over to Moodle Is that something that your tool is going to cover as well or is that planned? Not at the moment But that actually ties into triggers and events which is kind of a phase two thing that we've been looking at obviously We've got the schedule as you saw with the schedule task and be able to define the frequency for something like that You could run it every cron run if you wanted to But one of the other things that we have been discussing is triggers and events such as course created course updated And use a login events for example being able to select from them and choose to pull information around That sounds super interesting. Awesome. Thank you very much. Thank you Thank you very much as well. I was wondering maybe you could point out For short What's about it? Is there any kind of documentation how to write sub models for this and? Whether in the future there might be breaking changes how do you have plans how to communicate them and Okay, so most of the communications that we're going to be doing will be through the actual github in terms of any announcements and releases and bits and pieces Backwards compatibility for any major changes and major breakages I'm a big fan of Actually going through a deprecation cycle of keeping things in a deprecated stage So we ended up with both and then slowly phase that out to give everyone a chance to go through and make those corrections With regards to the actual documentation for the sub plugins. We have templates for the sub plugins. They are Incredibly lightweight as I said the actual building that whole settings page For the course for example is only about I think that 80 lines of code And most of that is just an array of information and language strings the heavy lifting is mostly done by the base plug-in But we will be providing Documentations and templates as well And obviously more than happy to have questions and feedback and anything slung at me on the on the discussion Yeah, so I hope that helps


Monday morning Day off yesterday or the weather is bad I think it's pretty windy today Dry Progress 15 on here It's a little Small pike We've got this customer's gift A little towel here I've got my own towel for this To get the pikes off I'm going to get that set up now That's up for this end Alex I'm loaded The drill's up ready to drill It's only a narrow tower But we've got the trestles in here It's a lovely tower We'll get Alex to return here And then I'm going to press the trestle on this end Alex is just getting a mix in now So hit the ground run hopefully I'll just get some lockers for Alex Let's get this other one set up Seems to be the new old towel How much longer I can make it Stop for getting stuff I'm up here, I'm finishing up For this Once I get a course above the block work It's a lintel height Doing this pike up Just to be a case of getting that side done then But yeah, the wind is very It's scary up here But yeah We'll throw it back on time once And we'll get this up as quick as we can Sooner than better Alex is up to lintel height And he's starting the little pike now I'm struggling my way down here It's so cramped, so awkward I've just been to get some more Santa Cement from Fairwoods And I'm More or less laboring on Alex at the moment So once I get this up To something like scaffold height I'm not going that high with it I'm not going to struggle Once Alex is done at that end We can swap the scaffold to this end And carry on A couple of course of course And the wall plate And then obviously my little pike at this end So It's not a matter if we finish today It's what time we finish today because it's getting finished So we'll go back on to the time lapse for a bit more We'll get Alex some more time Right, it's just after one We've had our lunch Once he's back that up Off there He's just going to cut the blocks rough And then he can make the router suit Once he's done on there We can move this scaffold along out of the way Up in this gate Put the tower at the end And I can get this end finished off So probably going to be a late one But it's going to get finished That's the main thing Not the biggest of jobs But because it was hard work Didn't really film much at the end Because the sun is So hopefully you'll have seen some Chest mount footage of us Going to be a little He's got some bricks in the warplane And there's me spirit level Right See you on the next one So I wasn't quite local I've paid a quick visit to the extension job So obviously this is the end of the video This is a little update And now the roof's all done Wind is yet to go in That's on order Made a lovely job of that roof Bit of a fast since coming through now That's not a problem


we have seen the setup of an electrolytic cell before and one of the applications of electrolysis is in purification of metals. So let's say if one of the electrodes is made up of copper but it also has some impurities and after electrolysis copper gets deposited on the other electrode and the impurities fall into the solution and you get pure copper. But the question is when this sort of setup is used? How much of copper will be deposited on the electrode and in 1830s Michael Faraday had a similar question and he figured out a way to calculate how much of the deposition takes place on the electrode which is called Faraday's first law of electrolysis. So let's see how we can describe this relation. Now the first thing to note is that the weight deposited will be proportional to the charge through the electrode and instead of thinking of this charge if you look at this circuit you can also think in terms of the current through this circuit. So the weight or the amount of deposition will be proportional to the current i times the time t and we are writing this in this form because we know that current is nothing but the charge per unit time. So the weight or the amount of the deposition will be proportional to the current times the time for which the current passes through the electrode. So we can get rid of this proportionality sign and write this as w is equal to some z times the current times the time and this z is called the electrochemical equivalent and if you look at the units of this z this z is actually equal to w by it and we know from before that instead of writing it in terms of current we can write this in terms of charge as w by q. So if you look at the units of z it will be in the form of kg per coulombs so mass per charge. So one way to think about this z is that it is telling us how much of the material is deposited when some q charge passes through it. So let's say that the charge that is passed is one coulomb so then we can think of this electrochemical equivalent or z as the amount of substance deposited when a charge of one coulomb is passing through this electrode. So if we know the value of z and we know the current i passing through this circuit and we know that for how much time we allow the current to pass through this circuit we can use these three values to find out the amount of substance that is deposited. But the thing is this z is a value that is calculated by experiments. So the question is can we rewrite this z in terms of some quantities that we already know for a given electrode material and if we do that it makes our life easier because we can then just plug in those values and if we know the value of current and if we know the value of the time for which the current is passed we can easily calculate the amount of substance deposited. So let's see if there is a way in which we can rewrite the z. Before we look at the electrochemical equivalent let's look at the electrode where the deposition is happening. Let's take an example let's say we have silver ions that gain electrons and silver is deposited. So we can think of this as one mole of silver ions reacting with one mole of electrons to give one mole of silver and we know that the molar mass of silver is approximately 108 grams per mole. So that means for every mole of electrons one mole of silver is deposited or we can say that 108 grams of silver is deposited for every one mole of electrons. Now what if the metal that is deposited is copper. So in case of copper we have this copper ion which gains two electrons to get deposited at the electrode. Now because there is a factor of two here for every two moles of electrons we get one mole of copper and again because the molar mass of copper is 64 grams per mole I can write this as two moles of electrons give me 64 grams of copper that is deposited at the electrode and let's take one last example which is of aluminum. So we have this aluminum ion which is gaining three electrons and getting deposited as aluminum at the electrodes and as you can see in this case we now have three moles of electrons which is giving you one mole of aluminum that is deposited and since we know that the molar mass of aluminum is around 27 grams per mole we can say that for three moles of electrons we get one mole or 27 grams of aluminum that is deposited. So in all of these cases if I want to think how much of the deposition will happen for one mole of electrons I can calculate that by dividing the weight deposited by the number of moles of electrons. So in this case the weight deposited per mole will be 108 divided by one. Now in this case since 64 grams are deposited for two moles of electrons the weight deposited per mole of electrons will be 64 divided by 2 and you can already see the trend in this case the weight deposited per mole of electrons will be 27 divided by 3. So looking at this pattern we can generalize this to write that the weight deposited in grams for one mole of electrons will be equal to the molar mass which I am going to denote by this m in grams per mole divided by n where n is the number of moles of electrons that are taking part in this reaction. Now let's look at this one mole of electrons. So let's say I want to find out what is going to be the charge of one mole of electrons. So I can write the charge of one mole of electrons in coulombs as equal to the charge of one electron times Avogadro's number. Since we know these values let's plug them in. So the charge of an electron is 1.602 into 10 to the power minus 19 coulombs times Avogadro's number which is 6.022 times 10 to the power 23. So if you solve this this comes out to be around 96472 coulombs and we can approximate this a bit further and we can write this as 96500 coulombs. So we have two pieces of information now we have the weight deposited in grams for one mole of electrons and we know the charge of one mole of electrons and now if we go back to the electrochemical equivalent we know that it was of the form of w by q. So let's use both of these pieces of information and try to come up with a simpler way of expressing z. So we saw before how the weight of substance that is deposited at the electrode is equal to z that is the electrochemical equivalent times the current times the time for which the current flows and we also saw that the electrochemical equivalent will be of the form of weight per charge or kilograms or grams per coulomb. So we can simplify this equation by plugging in the value of z from here. So we can write this weight of substance deposited is equal to this z will become w by q or m divided by n divided by q that is this 96500. So instead of dividing it here I can write it as multiplied by 1 over 96500 times current times t. So this will be equal to the weight of the substance deposited and because to plug in z we use grams here this will be in grams. So this right here is the relationship that represents Faraday's first law using which we can calculate the weight of the substance deposited in grams if we know the molar mass the number of moles of electrons taking part in the reaction the current through the electrodes and the time for which the current is passed and usually this current is given in amps or amperes and this time is given in seconds. So if we know all of these values we can use them to calculate the weight of the substance deposited in grams and this relationship is the quantitative form of Faraday's first law. And one more thing sometimes in problems you will see situations where instead of a deposition happening at the electrode gases will be produced. So in that case can you still use this relationship to find out how much of the gas is produced? Well yes but you have to make some simple rearrangements here. So if we just take this m to the left hand side we have w by m on the left side and everything else that was known on the right side. So if we calculate this value this w by m that is the weight divided by molar mass is also equal to the number of moles. So if we know these values what we are calculating is the number of moles of gas that are produced at the electrode and we also know that one mole of gas occupies a volume of 22.4 litres at standard temperature and pressure conditions. So for a mu moles of gas that we calculated using these numbers let's say that it will occupy a volume of v litres. So we know the value of mu from this calculation so to find v we can simply just cross multiply and we can get the volume of gas that is released at one of the electrodes using the same expression that we saw before.