Yeah. All right. So good morning, good afternoon, good evening, everybody. Really sorry for starting late or about 8 minutes late. And if you're in, you could just type in the chat. Let's say hi. Just say hello, hello, hello. If you're in the room, type in the chat, type in the chat. Let's see. I want to see how many people are in the room. So welcome, everybody. Welcome, everybody. Pascal from Ivory Coast. Excellent. So Ivory Coast is the file. I want to see where people joining us from the farthest place. Currently, Ivory Coast is in the lead right now. Ivory Coast, Ivory Coast is in the lead. Who else? Who is from far and wide? OK, when I say far, compared to Lagos state. So I'm in Lagos. Let's see how far you are. OK, so Ivory Coast, number one, as in, is farthest away from Nigeria right now, or Lagos. Anybody else? Who else is coming or joining us from far and wide? Where are you joining us from? OK, so today, today, what are we talking about today? We're talking about what is the difference between reporting and analytics? Sounds like a very simple question, right? But in my research, there's so many different ideas around it. But I have a very simple definition for you that's going to make it so much easier to understand this. Reporting and analytics. If you do reporting or you do analytics, type in the chat, which one do you do more of? Reporting or analytics? And you just type reporting or analytics. Which one do you do more of? Type in the chat, type in the chat. What do you do more of? To do more of reporting or analytics? Great. So you can join us from those in YouTube. Join us on YouTube. Join us on LinkedIn. Join us on Twitter. So you're all welcome. You're all welcome coming in. Just keep coming in. Hi, Boyewa. How are you doing? Dini Ti, I hope I got your name right. Join us from LinkedIn. Right, so what do you do more of? Reporting or analytics? So Dini Ti does more reporting. Okay, you do more of reporting. That's great. Larry does both reporting and analytics, okay? Maybe after I define analytics, we'll know whether it's true. You do both reporting and analytics, okay? So share, share what you do. That's here. Okay, let me just quickly introduce myself. So I'm David Brown. Managing partner, D-Brand Consulting and also, well, former consultant to the World Bank and then also consultant for the Nigerian Governors Forum. I'm also a Microsoft Most Valuable Professional. What that means is just that we do a lot, I do a lot of stuff for the community, share lots of stuff, lots of ideas like I'm trying to do today. And I work in D-Brand Consulting. That's my main focus, really, that's where I work. And these are all my handles. I'll link them. You can check out some videos on YouTube. And yeah, so today I'm gonna be working with Samson. Samson, if you can say hello to everybody, we're both gonna be talking about reporting and analytics. What's the difference, right? Really, for me, I want to get what you guys think. What do you think is the difference? What are you working on? And hi, hi, Samson. Oh, we can't hear Samson. Hello. Hello, David. Hello, everyone. Hi, Samson. Since you're joining us from behind the wall, one nice-looking wall, where are you joining us? I'm joining from Lagos, Nigeria. Lagos, so right now we have someone from Ivory Coast. That's the farthest away. So anybody else wants to share where they're joining us from? I think the farthest person will probably get a nice small price. Office training is going to get a small price. All right, so let's jump in, let's jump in. So get your questions ready. You can drop your questions in the chat box or you can click on this link in the chat and you'll be allowed into the studio. So if you really want to go into the studio, we'll send a link and then you can ask your questions live, right? So yeah, so that's basically, that's how you kind of connect to us. And be sure to turn on your camera once you join the studio. So it will let some of you into the studio so you could talk, all right? Great. So what next? So when it comes to reporting analytics, one tells what and the other tells why. What do we mean by that? We'll see that very soon. But really reporting analytics, let's go to the dictionary, right? But what I want to do is go to the people's dictionary or the people's encyclopedia and let's see what they had to say about what a reporting is. So let's take the encyclopedia or Wikipedia definition of reporting and let's see if that really makes sense. Yeah, let's do that. Okay, so what is reporting? As far as Wikipedia is concerned, a report is a document that presents information in an organized format for a specific audience and purpose. A report is a document that presents information in an organized format for a specific audience or purpose. Makes sense. Although summaries of reports may be delivered orally, complete reports are almost always in the form of a written document.  But most times you kind of type it all out, probably on PowerPoint or maybe it's Excel, here is the sales report. Excel is usually our best bet, right? You take sales report, you present that that's your report. Now, it's static, really. And it has certain, the significance of reports include reports, present adequate information on various aspects of the business, right? So every single department in the business has a report. I don't think it's possible for anyone to work in a business that doesn't do a report. Everybody in the business has one form of report or the other because that's how your supervisor manages what you do. You need to give them a report, either orally or written. All the skills and knowledge of professionals are communicated through reports. So you get a consultant, at the end they have nice big reports for you and that's the output of their consulting, right? Processes are documented as well. So you have quite a lot of things in reports. Reports help to help top line to make decision-making. It helps them in the decision-making process. Does it help them make data-driven decisions? Well, we'll come to that, we'll come to that one. So let me just jump straight to, okay, a rule, continuing with the report, a rule and balance report also helps in problem solving. Well, yes, I think I agree with that, but for problem solving, I think you need to, our own definition of reports or what I think is a report is just a static information of what happened in the past. So a report really tells you what happened. But reports also communicate the planning policies and other matters regarding the organization. New reports play a role in Ombudsman, which means you're kind of the person that is checking that people are following the rules. Checks and balances is reports. So you submit reports to your regulator, the setting, maybe quarterly reports, monthly reports, annual reports, you need to submit those reports to your regulator. And if you don't, you're in trouble. So that's really reporting, right? So then what's analytics? As far as the same Wikipedia says, it says analytics is a systematic computational analysis of data or statistics. It's used for discovery, interpretation, and communication of meaningful patterns in data. The key word there is patterns, really. Patterns in data, analytics tries to identify the patterns in data and see whether they make sense, right? Part of the definition is also entails applying data patterns towards effective decision-making. So that word decision-making appears in both reports and analytics. Decision-making is a key thing. Well, it can be valuable in areas rich with recorded information. Analytics relies on simultaneous application of statistics, computer programming, and operational research, and also quantity performance, quantitative performance. So statistics is very key, and I think that's the key thing there, because currently, even our reports have computational programming to create our reports. It has, well, operational research on the historical data is what we're reporting, but I think statistics is very, very important. But all these definitions, I prefer one that I will share with you now. When it comes to reporting and analytics, what we are trying to do is convert data into information, that's one, data into information, and then information into insights, and then insights into action. To me, this is my own kind of summarized definition of reporting and analytics. Data must be converted into information, information to insights, insights to action. Now, can you guess which part of this is reporting and which part is analytics? Just type in the chat. Let's split this into two. What's reporting here and what's analytics? Can you share? Tell me what you think. Which reporting and what's analytics? Okay, seeing various comments, all right. Okay, so let's see. Let's split into two, and to the left, really, that's reporting. In my opinion, that is reporting, and to the right, that's analytics. So analytics is insights and action. So if you're not getting insights and you're not taking action, you're not really doing analytics, but on the other hand, data must be converted to information to get reports. Reports must inform. If your reports are not informing, they're not reports. Yeah, so that, to me, is a more simpler definition, but really, even simpler definition to that is reporting tells you what happened. That's what reports are supposed to do. Reports tell you what happened. Analytics tells you why did it happen. So when it comes to analytics, it's really saying why did it happen while reporting is what happened. And for me, that simplifies reporting versus analytics. If you'd remember anything, that's all you should remember. Reporting tells you what happened. Analytics tells you why it happened. Right? Now, let's even go a step further. Now let's look at analytics a little bit more because reporting, we already know, it's kind of a static, we do reporting every day, but when does reporting cross to analytics is that insight corner? But there's a fine line and people define analytics in so many ways, but let me pick some. See what I've seen. Descriptive, predictive, prescriptive, right? And I'll keep this slide up for you just to have a quick kind of look at it. Descriptive, predictive, prescriptive, right? Now, I'll take it off because to me it's a bit confusing, but what is descriptive? So descriptive, you're saying that it sounds a little bit more like reporting, descriptive. So it's just telling you what happened. It's really telling you what happened. That's all it's doing. And I already told you that reporting tells you what happened. But descriptive goes a little step further. That information piece, right? You're giving a little bit more information for it to become just not just a static report, but more a descriptive analytics. You're breaking the data into the various silos. So for descriptive analytics, I think you're going into the 4Ws a little bit more. What are the 4Ws? 4Ws is saying who did what, where and when. 4Ws of reporting, right? Who did what, where and when. So every single report is about somebody who that did something, which is the what, which is someone that sold products. Sold, I don't know, maybe I sold this phone, right? I sold my phone. So the what is phone, that's my product, right? The who is me. So who did what? I sold a phone. Where is, okay, I sold the phone to someone in our shop in, I don't know, which location? Timbuktu, right? So that's the who did what, sold the phone, where in one shop in a Gege, right? And then when, when did I do that? Oh, it was around 4 p.m. yesterday, right? 4 p.m. on Thursday or 4 p.m. on the 2nd of January, 2023, which hasn't happened yet, so 2022. So that is the who did what, where and when. So every single data you pick has those four, minimum. Think about it, any data that you have, any data you gather has those four. So the information in your report could use those four things in different ways. Now, if you kind of go into deeper detail into reporting on those four, you could decide that, do you know what? It seems that there is a kind of relationship between selling in a Gege in the morning and it seems in the afternoon, we don't do much sales. Why don't we do much sales in the afternoon? Who knows, maybe everybody has gone to work and the people that will buy are not there until the evening. So now you're going deeper into information in your report. You're doing a little bit more descriptive. Yeah, go back to this slide. A little bit more descriptive. You are summarizing the metrics and you're using a lot more graphs. You have different intervals. You are breaking, you are putting data into buckets. Those are intervals there and then you are clustering things. So this is you trying to describe things, right? And sometimes some people say, okay, you're doing a little regression for those that know statistics. Yeah, you're inferring. So when you look at your report, say, why do we sell? We're selling more in a Gege in the mornings. Why? Okay, people are rushing to work. Okay, then you're now inferring something. That's inference. That's what inference is. You're inferring or looking at the data and thinking this is what it is. But that's descriptive. So you're doing a bit of descriptive analytics on your static report. There is another thing. If you check online, you would see that between descriptive and predictive, there is actually another one. Some people have put in diagnostic analytics. I just wanted to keep this three for you. Diagnostic analytics. What do we mean by diagnostic analytics? Anybody here, can you type in the chat? Let me see if anyone knows what that means. Diagnostic analytics. Anybody? It's what is diagnostic analytics? What does that mean? Okay, seeing some. Who did what? What was done? Where was it done? Okay, when was it done? Yeah, nice. Diagnostic analytics or diagnostic? Really, descriptive is what happened. Diagnostic is why did it happen? That's what diagnostics tries to do.  Okay, why? Why don't they buy in the afternoons? And they are going a bit deeper into the why. So that's what diagnostic analytics really means. And that sits between descriptive and predictive. So it's in between here, but I didn't put it there. I just want to keep the thing simple. So when you see diagnostic, don't get confused. It's just saying, oh, we've described what happened, but just trying to kind of say, okay, why do you think it happened? We're going a bit deeper to say, why did it happen? There are relationships in the data that can tell us that. Now, predictive, predictive is kind of predicting, right? So it's now using actual models. For it to be predictive, you must use a model. You know, when you say, why are we not selling?  That is still descriptive analytics. You are thinking, oh, I think everybody has gone to work. You haven't gone and built a model, done a detailed regression and let the model tell you why, right?  That's all.  So you see all sorts of complex things there, spatial forecasting, regression of predictive responses. Arima, as in, Arima is a autoregressive, something called autoregressive integrated monitoring or moving average, autoregressive integrated moving average. These are all statisticians. You don't need to know all these things. You don't, guess what? The software and tools you currently have can do all these things for you, all right? The software and tools will go through and check, oh, how are sales in the morning compared to sales in the afternoon, compared to sales in the evening? Then it will do all these correlations and stuff. Then it will do regressions and then you can, the system will tell you, oh, this is the prediction. So you should know basic statistics to understand predictive, but you don't need to know more than that. You don't need to become a data scientist. This is the job of a data scientist. But everybody else, in my opinion, you need to know reporting and you need to know descriptive analytics. Predictive, prescriptive and all the other ones are for data scientists or if you have a tool like Power BI, all those things will happen in the background. So Power BI will do the uncertain services from Microsoft and also Google.  Well, it's good to have an idea what is happening in the background. So we said analytics is descriptive. In between descriptive and predictive, we have diagnostic telling you why, then predictive is saying, okay, I'm going to kind of predict that this is going to happen in the future. Now, I'm also a financial modeler. I build financial models. So technically I'm doing predictive analytics because I'm building a model to kind of tell me what's going to happen in the future. It may be a linear kind of model, but it's still predicting what's going to happen based on data in the past. So technically it is predictive. You do budgeting, you do a budget based on data. You're predicting what's happening. So those are basic predictive analytics, right? Analysis of the future. Then we have prescriptive. So prescriptive is basic. The difference between predictive and prescriptive is prescriptive is like a doctor. It's prescribing solutions for you, saying, hey, this is what you need to do. So when you do predictive, predictive says, these are things that we think are happening here, but prescriptive just says, hey, we've done all the analysis. Do this. So it's telling you, these are the things you must do. So that's the big difference. Now, one easy explanation of prescriptive. Think about this. You have like maybe a transportation business or let's even assume you have a call center. Now you have a thousand staff in this call center and you need to kind of get all this staff home and early in the morning, you need to bring them to work. And you have about 50 buses. You could use prescriptive analytics to build a model that says these 50 buses, the way we're gonna arrange them is these five buses go through this route. These other bus go through that route. All the buses, you will now route the buses in a way that reduces your cost. The overall cost and the overall consumption of fuel, you'll calculate it that if they follow these routes, it will reduce our cost in total. So what you're actually doing is an optimization model. You have done, you've plotted some constraints. If you follow this route, it's gonna be 40 kilometers.  Now it may sound complex, but Excel can do that too. I don't know if any of you have heard of Solva. Go check out Solva. There's a tool called Solva. Go online, say Solva for optimization. And you'll see some models you can use in Excel. So that's prescriptive because the model will say, hey, this is what you should do. This five buses go this route. Those six buses go that route. These two buses go this route and it's telling you what to do. To what? Reduce cost because that's your objective. So these are, that is analytics, really. Guess what? Another confusion. There's another analytics that has just come out or they've kind of defined it after prescriptive. Who knows what it is? So we have descriptive, predictive, prescriptive. In fact, in between descriptive and predictive is the middle one which I said diagnostic. And then after prescriptive, you know prescriptive is telling you what to do. The models are telling you what to do. We have a last one called what? Any idea? Who knows? What's the fifth one that we have? Let me see anyone getting it. Anybody? Anybody getting it? Anybody have someone from Yobi? Yeah, that's great. Hi, Bobokar. So the last one, I don't think anyone has got it, is cognitive. Cognitive analytics. Oh, Samson got it. Yeah, but Samson here with me so I can't give you that. Samson knows. I don't accept. Okay, so it's cognitive. Yes, cognitive analytics. And what is cognitive? All that is is we are saying that, look, it's AI and machine learning that is going deep and taking, doing deep analysis and making those decisions for you. So it's almost like saying, okay, it's not you, the human being that makes that last decision. It's AI analytics using cognitive services. So we have, for cognitive, if you check Microsoft or Google, there are some tools in Microsoft or Google. Well, we have Rich from Atlanta. Oh, sorry, the guy from Ivory Coast. Atlanta beats you. Atlanta is pretty far, right? So Rich is in the lead when it comes to distance from Lagos. Hi, I think we should give him an applause for that. Yeah, excellent. Okay, so descriptive, diagnostic, predictive, prescriptive and cognitive. So those are the analytics. But what do you do? What reporting do you currently do? And do you now that you have an idea about analytics, tell me which you do. Do you do descriptive? Of course, everybody does reporting. I know everybody does reporting. Yeah, but which analytics do you do? So type in the chat, which analytics do you do? And let's talk about it, right? Which analytics do you do? And if you want to jump in and have a chat with me, let's do. So I wrote a small blog post about this. I'll probably share that with you. I'll share that blog post. So it's on our website, Debra and consulting. And what kind of analytics do you do now that I've kind of defined what it really means? Remember my simple definition. Or maybe I should even go back to it. So let's go back to that simple definition. Look at it here, right? Your reporting is what happened. And that's just data and information. What happened? Analytics is why did it happen? So even if you have descriptive, you're saying, okay, what happened? We're going a bit deeper to try and have insights. That's what descriptive is, trying to get insights. What is diagnostic?  That's diagnostic, right? I mean, that's what diagnostic is. Then what is predictive? Well, predictive tells you, it's trying to predict what will happen, right? It's trying to say what will happen. And for you to know what will happen, you need to already know why, because what will happen in the future? You need to know why the past happened and use that information to predict. So it's still why did it happen? You're now taking why and trying to understand the future. So that's predictive. Then you have prescriptive. Prescriptive means you're taking action. So look at our definition. Analytics is why did it happen? And it's simply insights and action. Your insights are descriptive analytics. Your insights also are predictive analytics. So descriptive checks the past, predictive is checking the future. In between descriptive and predictive, we said is diagnostic is the new one. I mean, they've added that now called diagnostic, which tries to just tell you why, right? But again, you're now going to go to prescriptive and cognitive. It's a bit confusing. Just take this definition. Analytics is why did it happen? Reporting is what happened. Reporting simply is what happened. And I think this to me makes sense. And I'm trying to fit the worldwide definition into this. You have your predictive where saying, hey, it's insights you get in the past data and using those insights to predict the future, right? And why do you want to predict the future? So that you can do prescriptive analytics, which means you can take action. And then the last one, cognitive analytics simply means, hey, AI and machine learning are going to do those actions for me because we've already kind of built that model in the way that it can do those. So those AI tech and all those machine learning technology can do that. And what is AI? AI simply is, and what's machine learning? Machine learning is learning from your reports, running from your data and trying to find patterns in your data. That's what machine learning is doing. It's finding patterns and learning from those patterns and then making a guess as to, oh, based on this pattern, this course is going to happen. And then kind of changing the model a bit to fit. It's almost like fitting the model so that it perfectly predicts something. So machine learning technically is predictive analytics, right? And then the AI bots that use the machine learning and all of that trying to make decisions, trying to use that almost like brain-like power, which is why it's called cognitive, right? Cognitive analytics, that brain-like power to take action. So that is what I have for you today. Reporting analytics is pretty simplified as data turning to information, information turning to insights and insights into action. But now you need to take action and build this because to me, I have this theory or we have this theory in D Brown, right? That it's you that needs to build this, not IT, not one data scientist, you have to build it. So how do you build this? That's the question. How do you build this? Anybody, anybody want to try? What do you think? How do you currently build this? Can someone, now you can request to join and then we'll add you up. Samson, if anyone requests to want to talk, let's have a discussion. How do you build this tool? So you can see we've shared the link. We've shared the link for where you can get the blog post. So I have a blog post on this reporting versus analytics. You can click on the link. The link is shared with you on LinkedIn, Twitter, and YouTube. So how do you build this? Now, if you want to join, please feel to join, make sure you join. If there's a link, just click on the link. But if you want to join, I think you have to join through LinkedIn. So click on that link and let's have a chat. And say, OK, how do you currently build this? And let's have a discussion around it and see if I can help you understand a few things there. OK. Nice to meet you. So who is joining us? Who is joining us? Before you join us, I want to just type one key takeaway you've got from this, one key takeaway about reporting versus analytics. Tell me what you think. Tell me what you've got. While we're waiting, I'll just tell the general stories. Because this has always been confusing for people. And I think it starts with data. And I think when, I don't know when the word, I don't know who coined the word big data. I think that was really, that was just a marketing. It's just a marketing, right? Big data. Oh, it sounds really complex. All that means is data is getting a lot. And it's true. Data is just getting so much. It keeps on doubling, I think, every five years of some statistics I saw. And that's what big data is. So it's nothing special. It's not a special kind of data. It's just data, right? And with these IoT devices, IoT is internet of things where you can connect. Soon your toaster will be talking to your fridge.  And your fridge decides to switch on the toaster. And maybe they were fighting, right? And this fridge switched on the toaster. And because there was something in the toaster, something catches fire. So your fridge basically burnt your house. I mean, that could be the future, right?  But that's what's happening now, right? Those IoT devices, I think it's Facebook. Facebook did something. They had this AI talking to another AI, right? So they got them talking. Just the AI tool they built. And they got them talking to each other. After a while, those AI decided that English was really a poor way to communicate. And they started creating another language. They had to shut it down. Facebook shut it down because, I mean, create another more efficient language that only both of them will know. Even the creators of the AI will not know. So there's a lot of gray area around there. And that's what the big data is all about. Oh, there's so much data. We're using it for all sorts of wonderful stuff. So it's like a wild, wild west right now. That's what's happening, which is quite exciting, right? So just take the simple bit. The data, you need to convert it to information. I need to automate that. You don't need to manually do that. And your information, you need to also automate the process of getting insights from your information so that we can make data-driven decisions, which is the action side of things. To me, that's simple. And that's what we're doing in our daily job. Right. Anyone ask any questions for me? Or you want to join in and tell me what you think. Any questions? Just type it in the chat. I got disconnected. And I didn't get the question on what is meant to be built. OK. So I was asking, for me, this is reporting analytics. What do you have on the screen? Data moves to information. Information gets converted to insights. Insights get converted to action. That, to me, is reporting analytics, reporting being the data and information bit, and analytics being the insights and action bit. But technically, data is needed for both reporting and analytics. So that's my simple definition. What I was saying is, how do you currently do this at work? Or how do you currently build your reports at work? And let's have a general discussion. What are the difficulties you have in the analytics side? And let me see how I can help you directly. Given this to anyone that wants to jump on board and just talk to me directly, there's a StreamYard link there. Just click it. You'll join. And my colleagues will let you in. And we can have a chat. I want to have a chat with at least one person. And if not, just ask me any questions you have. And then I will put that up and answer the questions. So this is the Q&A section. Let's go. So anybody beating Atlanta? Is there anyone from Australia here? Yeah, that would be nice. So by the way, we have a webinar coming up. And the webinar is going to be on a solution to this. As in, how do you build reporting analytics solution? What kind of framework can you use? We're going to talk to you about a framework you could use to actually build that. It's a very detailed webinar. It's going to give you lots of insights. I think that webinar is coming up. I think there's a link we can put to register for the webinar. Make sure you follow us on LinkedIn, YouTube, Twitter, and you will be able to get some information on the webinar. So we have Ifyoma joining us. Ifyoma, are you there? Your camera. Hi, Ifyoma. Hello. Good. How are you? Good, good, good. I can see lots of files at the back there. Those are all reports. So all stored reports, right? Technically, they're reports. Yeah, yeah. So good. Where are you joining us from? Oh, good. You're close. You're not far. That's good. And so what question do you have? OK, so how do you do reporting currently? This thing that I showed, this data information and insights, is that how you do reporting? Oh, so you build a financial model? OK. Important to the financial model. And that generates the great information. Great. So you're an accountant. So what you're using is information from past data, information from the past, to generate a model. And that model gives you insights on the future as to what the future should be, isn't it? And then you put that in the form of financial statements and stuff, which is how you report that out. OK, so you're a modular. That's excellent. Do people take action based on that analytics or that financial model? Are people taking action in your office based on that? OK, so majorly the decision makers. And is everything done on Excel? Or do you use another software? What software do you use? OK. Like? OK, so you use various accounting software and other apps as well. Great. Great. So there's quite a lot of data in your business. So there's still the need. Do you use, for example, Power BI or Tableau or Click? Do you do reporting with those business intelligence tools? OK. OK, basic Excel stuff. All right, excellent. Well done. Thank you very much for sharing. Thanks, thanks. You can give a hand.  Thank you. Thank you. Thank you. Thank you. In fact, if you will, let me give you a virtual clap. Thank you. All right. So Power BI, so Rich. Oh, well, you're using Power BI, Rich. That's good. And do you want to talk about how you use Power BI? Would you like to share? How do you use Power BI? So I'll tell you a story about Power BI. So Power BI, we are Microsoft partners. So you could say we're a bit biased in Microsoft, but Microsoft really has an excellent tool. And if you check the Gartner report, there's an independent body called Gartner. And they read business intelligence software. Power BI is way ahead of nearly all the competition, as far as Gartner is concerned. So Power BI was invented in 2015 around July. Luckily for me, I was in Israel in February 2015 for the kind of pre-launch of Power BI. And we saw the team, very small team. I think it probably was the only one from Africa in that meeting. And Power BI really was born in 2009, not 2015. The technology that makes up Power BI was actually experimented on in Excel. So in Excel 2010, you had Power Pivot. You had DAX. You had something called Power Query and M. I know I'm talking technical now. Power Pivot, DAX, Power Query, M. Go check them out. Power Query and M is an ETL. It's extracting, transforming, and loading data. See this data here? That's what Power Query does. It extracts, transforms, and then loads the data in a very nice structured way. And if you don't have data in a structured way, you can't do reporting. You can't do analytics. So once you have that data nicely structured, the next thing you do is you build a data model. Why? Because you need that data to be in a nice structured way so you can get information out of it. And the most efficient way in the world to do that is a data model. And that's Power BI. So that's what Power Pivot in Excel does. That's what the data model in Power BI does. Build a data model, and then information starts coming up. And that is reporting. Now, another clue.  I don't think it's possible for any business in the world to do proper analytics if they haven't already automated their reporting. In the webinar, we're going to show you exactly how you can do that. How do you just quickly automate all your reports? So your reports are going on fine, but then you're now focusing on analytics, getting insights from your data and information, and taking action. So that's really what we need to do. And that's what will transform your business. And really, that is it about reporting and analytics. Pretty simple. There's nothing to it, really.  And next thing to do with reports is try and get them to be more descriptive. Do some descriptive analytics with your reporting. Now, if you look at this visual, this is a beautiful visual. This to me is how you can take descriptive analytics to a greater level to try and understand what's happening. So this is going to be descriptive and diagnostic analytics. See this image? This is the image of the world. And in 1901, the image of the world in 1901, all these greens are the Americas, which is North and South America. These yellows are Europe. All the yellows, those are countries in Europe. The reds are Asia, right? The blues are Africa. Now, of course, this big red is obviously China and this other red is obviously India, right? And this green, who knows what this green is? This is North and South America. That's obviously the United States. So this other green is the United States. So what you're checking here is to see how has the world improved over the years? How has the world changed? And we're going to do analytics. We're going to do descriptive analytics showing life expectancy, which is a proxy for health.  So we're saying, hey, we're going to plot life expectancy in the y-axis from 20 years old to 90 years old, right? Life expectancy. And in the x-axis, we're going to plot income per person, which is basically saying, what is our income per person? Adjusted for inflation for this 100 years that I'm going to show you, right? So from $500 to $64,000. Now, where would you want to be in this chart? Where do you think the most successful countries should be? Pretend as if you've split it into four. Should they be at the top left, at the bottom left, at the top right, or the bottom right? Can you type in the chart? Where should, the most successful country in the world? Where should they be on this chart? Type, type, type in the chart. Okay, type in the chart. Let me see what comments we have. The most successful countries in the world, where should they be? Top right, so Dada got it. So Dada, Cain Day, well done, well done. Yes, yes, yes. So you said top right, yeah right. So that's where the wealthiest and healthiest countries should be. So income has been split into four categories, right? Level one income, this is this bar here, this column here. Level two income level, level three, and level four. So level four is the highest. In 1901, most of the world was in level one. Level one is poverty. Level one is basically poverty. Level one is poverty. Level one is poverty. Level one is basically poverty. The average, anyone in level one is really very poor. Level two, you're just coming out of poverty. Level three, you're getting richer. Level four, you're the richest. Now, let's play the world over time. Let's just play the world and see how it's been from 1901. Now remember the first world war? Can you see how everybody dropped in the first world war? The human beings, they don't learn. Second world war came, another drop, right? And then look at China, look at China to the far left. See how fast they're flying around. They're going around and they're straight moving to the right. Do you see how fast China moved? China and India were China faster, moved all the way to the top right, and the whole world actually got healthier and kind of wealthier, but at least the whole world got healthier. You can see that. So this is 2018. And what we've just done is we've played a hundred years or more, right? And this is analytics. This is descriptive analytics, and this is what it would be nice for everyone to be able to do, not data scientists, right? You should be able to do some deep descriptive analytics, which hopefully leads to, this is more descriptive and diagnostic analytics, which will now lead to predictive. So you can start predicting the future, just like Ifyoma is doing projections to the future, right? And all we did here is we said, oh, there are two variables in our data that we think are correlated. What do we mean by that? Two variables we think are related to each other, right? Life expectancy, which is wealth, a health we think is related to wealth. It may not be perfect relationship. It doesn't mean if you are rich, you would always be healthy. No, it doesn't flow, but there is a relationship between wealth and health, right? So yeah, so that is, once you identify that, and that's what your descriptive analytics will do for you. And then you can use that to predict. Then we played the world and we saw how the entire world has shifted. And then we can make better data-driven decisions about what's happening in the world. We need to eliminate poverty, right? You can see some people, mostly African countries are still in abject poverty. If you want to check this out and go plot even more details, go to GapMinder.com. GapMinder, that's where we got this from, GapMinder.com. Excellent website. And you could check that out, right? Great. So I think Rich had a comment. Let me just put that up. So you had a comment saying that I am working, let me see. I am working to integrate Power BI with our accounting software. Okay, we use it for project management. Excellent. What's your accounting software? I know there are some connectors from Power BI to accounting. So accounting software. Let me know what your accounting software is, Rich. So if you're integrating it with accounting software, let me explain that a bit so you understand. So you have Power BI, just take it as a house and accounting software, another house, right? So Power BI is one house and accounting software is another house. How do you get these two houses talking to each other, right? So you have accounting software, Power BI. They need to talk to each other. So think about accounting software as French, a French speaking guy. Power BI speaks English, only English. How do you get these two to talk to each other, anybody? French guy, English guy. They can't talk to each other. You need someone in the middle. You need an interpreter. You need someone to translate English to French. Then they can talk. So your accounting software and Power BI are not speaking the same language. You need something in the middle to translate. Guess what they call that thing? That's what an API is. So when you hear API, that's a translator between one system and another system. That's an English, French translator, yeah? So typically what Microsoft, Google, what all of them do is they try and get all their software talking to each other. And they do that by creating APIs, right? So they create APIs. So when you hear API, just say, oh, that's a translator. So when you buy a software, first thing you should ask yourself, oh, I use Power BI, or I use click, or I use Tableau. Is there a way that this, my Power BI can talk to this software? If the answer is no, oh, there's no way, but usually it's yes. If the answer is yes, let's start with yes. That means there is something called a connector, really an API that can connect Power BI to that software. Now, but remember, some translators are not very good, right? Some people don't translate that well. So if you don't have a good translator, you may know only maybe 100 words. So your API too doesn't translate everything from Power BI to everything in the software. So you may need to continue building it up and making it better and better and better. Do you get it? But if you don't have a translator, what you could do is accounting software, download the data, maybe to Excel, Power BI, from Excel to Power BI. So there are various ways to integrate. And in the webinar, we shall talk about it a bit. So make sure you register for the webinar coming up in a couple of weeks. And we have a major, major course coming up also in July 11th. So if you want information on that, let me know as well. Is the webinar being recorded? This is a live, is the LinkedIn live being recorded? Yeah, this LinkedIn live is being recorded. Yeah, it's been recorded. Yes, yes, we're recording that. In July 11th, we have a 10 week program that's going to teach reporting or post automation and analytics academy. That's the program we have that's coming up on the July 11th. And we have, we also have, so this program is a 10 week program just teaches you how to automate all your reporting analytics. Everything in your reporting analytics, how do you automate it yourself? Not IT, you don't need IT and you don't need any big prior knowledge. You just follow a methodology. And I'm going to talk about the methodology in the webinar. So make sure you register for the webinar where I'll go into detail about that methodology, right? So I'm David Brown and this is me. I've kind of had so many hats on. So I think I'm kind of lucky to have worked as a master trainer, ATD master trainer. So ATD is association for talent development based in the US. So I'm master trainer. I'm also ATD master instructional designer. I like teaching. And then I'm also a member of CFA society, a member of charter, I'm a charter accountant. I'm also a member of charter management accounting. I'm also a charter tax. So many charters around tax accounting finance and then my finance expert as well. But then I'm also a data expert. So I'm a Microsoft MVP. So we are a firm D Brown consulting and Microsoft partners. So I have that data piece as well. So I have the finance piece, the data piece, the training piece, the instructional design piece. And that kind of all comes together and creating a methodology for how do we wrangle this data and make sense of it in our industry and departments. So if you want a free Excel training to learn a little bit of my methodology, go over to Office Training Hub. Office Training Hub, you could think there's a free Excel course there. Just it's just about a one hour course. It will give you an idea of how I think about data and how I use data to actually solve problems. So thanks everybody. And I think we have kind of gone way over our time. I hope you enjoyed this LinkedIn Live. And if you have any more questions, I'll just hang around a bit for any questions you have and answer those questions. Thank you, everybody. So we need an ODBC, ODBS, ODB connector to link Power BI to our accounting software. Okay, so we could have a chat about that. But really, Rich, you could use the Power BI ODBC connector. So the ODBC connector, just take ODBC as this. Accounting software, Power BI. ODBC is a way to connect to nearly everything. It's like a Swiss Army knife of connectors, right? It can connect to nearly everything. So I do think your accounting software should be able to connect via an ODBC connector. But if not, it means you need to build a connector, right? Or what you could do, Rich, is just download the data, download the data dump and then connect Power BI directly to that data dump and then program how the data dump gets downloaded every day or every week, depending on how often you want to do it. That can be your temporary solution, right? So just download. And if you get tired of downloading, you can also automate the downloads as well. You could use Power Automate for that. So I've given you lots of stuff. You could go research that, but let us know, right? We have another LinkedIn live, I think next week. Now we're talking about another topic. So make sure to join us. I hope you enjoyed this, everybody. If you did, please send a comment. Type a comment below if you enjoyed this session. And the Reports Automation Analytics Academy, you could go join the waiting list for that. And then please definitely have an ultimate guide to building your data analytics systems, a webinar. That's coming up where? I don't know. If you have the link, so why don't you drop that link off? So the ultimate guide to building your data analytics system. I think the one and a half hour webinar is coming up, I can't remember the date now, but we have the link for you there, RA3 webinar. So check it out, bit.ly.ly in your platform on YouTube, LinkedIn, make sure you register for this webinar. We're gonna go deep into understanding how you build the ultimate guide to building your data analytics system. Very detailed guide.  It's probably about 25 page guide. You're gonna get that as your gift and you're gonna get one or two other gifts as well. And it's all free, this webinar is happening on the 28th of June. So make sure you register for it. Click on the link to register, share the link out for anyone that does reporting analytics, right? Those people that do reporting analytics as their daily thing, please share the link. And yeah, I'm sure you would enjoy that. So let's see, any questions I have? A question from Ramadhan, or Ramadhan here, Kaede. Since it's question time, any suggestions for a data analytics enthusiast who's looking to start from the scratch as a big beginner with little or no knowledge? Perhaps a course or you have a school, one can register. Well, there is a telegram site. I would like you to join right now. We have about 1,700 people on this telegram site. And what we do there is we just load free, lots of free content, special free content to teach you data, data platform. It's mainly the data platform for Power BI. So let me see if I can find that for you. Let me see if I can find that for you right now. I'll share with you the telegram platform, right? So nice question, Kaede. Any other thing I can help you with? I'm happy to continue answering questions. Telegram coming up. Let's see. Pascal, you're interested in financial modeling course. Okay, Pascal. For Pascal, what I would suggest financial modeling is like one of our major, major trainings, right? You could, there are two things you could do. You could go to our YouTube channel, but what you should do is I'll show you a course that you could do on Office Training Hub, right? If you're interested in financial modeling, we have a course on Office Training Hub that you could check out. Let me put that up for you. So there's this Office Training Hub is the e-learning platform for D-Brown Consulting. Then you go to financial modeling and you'll be able to see lots of courses there, right? So check that out. But if you can, if you also do it free, you go to our free YouTube channel and there's lots of modeling content you have there for free. So fundamentals of financial modeling, building corporate financial models, there's a bundle. This bundle has five courses in it. So this is the most popular one we have. I think there's a promo going on. I think you have a few days left. I think there's a promo going on. Yeah, I think you have the half price promo or something. So this is my recommendation. This course called Advanced Financial Modular Online Self-Case. You have five courses there. These are the five courses. How to think like a financial modeler, Excel fundamentals for analysts, all the Excel skills you need as an analyst, fundamentals of financial modeling. Then you have building a corporate financial model from scratch. And then you have the step-by-step guide to do the exam. There is a Canadian certification for financial modeling. So this, once you've learned everything, you can then do this Canadian exam, Canadian certification. Let me show you what that is. It's the Financial Modeling Institute, right? So they have this certification for Advanced Financial Modular Certification and we're a certified trainer.  You do this Advanced Financial Modular Step-by-Step Guide. So you probably have a thousand videos or stuff to go through here, a lot of stuff, a lot of work. Then you'll be ready for these exams, right? You can see limited time, next exams, 15th of June. So check out Financial Modeling Institute. Okay, when is D Brown going to have training on second stage of financial modeling? Oh, Ibrahim Kazim, hi Kazim. So yeah, good question. So when is D Brown going to have a training on the level two of financial modeling? Well, what we're doing is, you know, it's a business, right? So we need to get enough people that are doing level two to kind of justify the investment in specific content for level two, but I have good news for you. The content we're building, we currently have a corporate finance modeling course and what we're doing is, when you do the corporate finance course, we're going to now pull out specific things you need for the CFM exam. So we're building this step-by-step guide. This one, can you see this? This advanced financial modeler exam step-by-step guide, we're building the chartered financial modeler exam step-by-step guide. So watch out for that, that will be coming. But if you do our more advanced financial modeling courses, you already have the skills you need for level two, right? So I hope that answers. Thanks, Ibrahim, for that. Any more questions for me? Any more questions on reporting analytics? Since a lot of you like financial modeling, which is good. Any more questions? Any more questions? So Kazim was joining us from, okay, LinkedIn. We have some people joining us from YouTube as well. So I think there was this question, build a data analytics system, six questions. Okay, this is, there's also another blog post that we have around that. Okay, so everybody, I think we've come to time now. I think there's an evaluation link we're going to send out or there's a link we're going to click for you to go through. And yeah, I've got the telegram group. I don't know who else is interested in joining that group. So it's called Power Platform Nigeria. Let me share the link for you. Let me share the link. Okay, so Power Platform Nigeria. So if you could have that link shared with everybody. Okay, great. I've just posted the link. I'll try to post on other platforms. So the team can share that out. Great. Yeah, so in Brian, you said you mean the chartered stage of the exam. Yes, that is the second level two. So that's what I was referring to the level two. You're going to have a chartered financial modeler exam step by step guide very soon. That's specific for level two. Great. So click on the link everybody and you can join the telegram group where we have all sorts of interesting, all sorts of interesting content on Power BI, Power Automate, Power Virtual Agents and stuff like that. So, okay, any more questions? Any more questions for me? Okay, this is the Power Platform group. So I have 1,660 members and you'll be able to get links to various free, everything here is free. And what do we do? And we basically jointly building capabilities in Microsoft Power Platform, Power BI, Power Apps, Power Automate and Power Virtual Agents. That's our focus for this group. So join for free. There's so much material, so many links to all sorts of wonderful things, content training, yeah, join, join, join. All right, so everybody, thank you very much and I'll call it, we're calling it, create a closing in the next few seconds and 10 seconds and plunge him down by closing. Thank you very much, everyone. Last potential question. Oh, Rich is also interested in level two of financial modeling. Excellent, so Rich is also a financial modeler. I believe you lost connection when you answered my question. Oops, I did. Oh, sorry about that. Okay, I'll answer it again. So I'm saying that level two of the Financial Modeling Institute, what level two is it goes deeper into modeling, where you're actually modeling solutions to problems, right? So remember when we said reporting analytics, let me go back to that. So what they're doing even level two is you're gonna be given a problem and then you need to build a model to solve that problem. So it's not financial models. It could be, it's financial models, yes, but a specific issue. So you need a certain level of, you need the different skill sets. You need different skill sets in understanding timing. Timing is a very important thing. How do you time certain things that happen in your model at certain times? How do you build those timings into your model? How do you do debts? How do you calculate lots of debt, service coverage ratio, all the DSCR, you have your LLCRs and all those kind of ratios. How do you build that into your model to solve a specific problem that a model needs to solve? So we're gonna build a step-by-step guide to teach you how to think in that way, to build solutions for that. But we have other courses that project finance courses that you could do as well. But before the end of this year, you should have a step-by-step guide, right? But please follow us. We do webinars every month, so you could also learn from that. And go to our YouTube channel, Type D Brown Consulting, that quite a lot of content there that's similar to what level two is. But I'll have a better answer for you soon for the end of this year. Okay, so thanks a lot, everybody. Link to Telegram, okay. We shared the link. Can we share the link to Telegram again? Ibrahim would like that. Yes, join Telegram. Yeah, we've got that for you. Click on the link. Great. Okay, so all right. So bye-bye, everyone. It was great chatting and hopefully we'll see you again next week. So I have another link in live where we're talking about analytics and how you can use analytics to solve really serious big problems, big, big problems. But guess what? You must have automated all your reporting first before you do that. So thanks everybody and see you next week. Yes.


The Nigeria Centre for Disease Control, NCDC has discharged 796 people in Adamaa state after they were treated and tested negative to COVID-19. The NCDC disclosed this on its official Twitter handle on Saturday. Nigeria's total recoveries had increased to 156,250 in the past 24 hours, while active cases stood at 7,823. The agency said it registered 13 new COVID-19 cases in three states, which raised the total number of cases in the country to 165,370. NCDC said no new death was recorded from the disease, which had already claimed 2065 lives nationwide.


Let's go. You see this in the track or academy? Just wait a second, it takes a while. OK, you can start, Cameron. Hi, everyone, welcome to the webinar on what's new for developers in the latest version of the application platform from DHS2. We hope that you're able to join us and learn about some of the exciting new features that we've added to several of the tools that we build for application developers. I'm also excited to start off this webinar with a presentation of our newest developer advocate who has joined our team just this month and is probably very overwhelmed with everything that DHS2 encompasses. But we're very excited to have him on board and to see what we can do to enhance the community of developers and the learning material and the connection that we have with third party developers all over the world. So with that, I'll turn it over to Hermann to introduce himself very quickly. Yeah, hello, thank you, Austin. So my name is Hermann Biscousso, you know that. So I just joined the DHS team as a developer advocate. And I'm originally from Buenos Aires. I just wanted to tell you where I come from, right? But I live in Madrid with my family right now. So just to give you a bit of information about my background, I was a computer nurse since I was around eight years old. But I have a formal computer system education at university. And after focusing a lot on software development, I had the opportunity to create and run developer advocacy programs for multiple companies. The first one was a company called DB4O, where I was running an open source project, which was an embedded database. And that was it for me. I decided that I wanted to do developer advocacy instead of focusing exclusively on software development, right? So I enjoyed a lot the interactions with the developer community within an open source project that was especially interesting. So I decided to focus on those roles. And the last one was at Amazon. I was actually a developer evangelist in the Alexa team. They probably heard of the voice assistant, right? So the question is, why is this appealing to me? Why am I interested in all of this? So sometime ago, I read a book called The Wisdom of Crowds, where there was some farmers in a rural area participating in a kind of contest. They had to guess the weight of a goat, right? So everybody would write down in a piece of paper how much, what was the weight of this goat? And suddenly the winner was the one that had the closest number to that goat. But someone decided to average all those papers, to create an average of the weight. And that number was super, super, super close to the weight of the goat, even better than the best guess, right? So this is just an example of how the collecting wisdom can be very powerful. And that's what really fascinates me. So my job, among other things, would be to make sure that we as a community empower ourselves to get the best out of DHS2 and work together in supporting each other. So that's my main concern right now. I'll make sure that your voice is heard as a developer, that your feedback translates into positive changes, that the features that you need are incorporated into the queue, which is super important. And of course, that your contributions don't go unnoticed. So we will be running special programs so your contributions are visible, okay? So I'm sure I will see some of you face to face when we have a chance to meet, they hope we put COVID-19 behind and we do some real live events. So please join me and let's make this community rock together. Thank you, Rossin. That's all I have to say for now, but I hope that's an acceptable intro for, so people understand what I'm really doing here, okay? Thank you. Absolutely, thank you, Hermann. And I know we can't hear our audience, but I'm sure they're all applauding and cheering wildly because I'm excited and I'm sure that they are too. I wish that we could hear them. So if you're excited, please let us know on the community of practice. Thank you. So I'll be monitoring the entry and the community of practice. So if you have questions, please send them there. Yeah, I was going to actually also allow this, yeah, share this very quickly before we move on with the webinar. We do have a community of practice thread for this webinar. So if you go to the community.dhs2.org, the top entry here, it should be the top for a little while, is this, it's talking about this webinar and you can actually, that's where you're probably watching it right now. We are monitoring this. So if you click this reply button and type a reply, we will be able to answer it live on this webinar as well. So please, if you have any questions, if you're excited about Hermann joining the team and what we're going to do together as a community, please do click reply and add your feedback on that thread. So with that, I'll turn it back over to the presentation. I'm going to just very quickly for we have a big group of a big developer community and there are people with different levels of experience with DHS2 with application development. So I'm just going to give a quick kind of rundown of what an application is in the DHS2 ecosystem, what the application platform is and the different components within it. And then I will turn it over to some of my colleagues on the development team who have built some of these great features that we'll be sharing with you today. And what we'll be going over is the new features that have been introduced in the last several months, three or so months, particularly with the version eight release of the application platform. And what that means for you as developers. So with that, I also wanted to take this opportunity to very quickly show the new application management app in DHS2 237, which is coming out today. So in DHS2 237, if you go to app management, you will see something that's very different than the app you saw before. There's a lot more information about the different applications that are currently installed, including the core applications. So the ones that are bundled automatically with DHS2 when you install it. And in particular, you'll see that on the core apps screen you can actually see when new versions of those core apps are available. This is part of an effort for the core development team at the University of Oslo to release more quickly applications and allow them to be installed into DHS2 servers that have been maybe a little bit older. So this will allow you to adopt just a single application, much lower risk to adopt to that new version in DHS2. And that's all made available through this app management app and the app hub, which is at apps.dhs2.org. You can also see a lot more information about the apps that are coming from that app hub, such as description, screenshots, different versions that are available, contact information, that type of thing. So I wanted to take that opportunity to talk about the app management app, but to take a step back, what is an application? So the nine squares in the top right corner of this screen is the application selector in DHS2. If you open that up, you'll see a list of all the apps that have been installed. And there are many more that are available as well. I'll actually show this to you quickly so that we can just see it visually. So if you click on this top right here, you'll see that these are all of the applications that are installed in this DHS2 instance. Some of these are bundled and available when you install DHS2 itself. Others you need to manually add to the system because they might be developed by any of you out there. So if we go to this app management application, which is, as I mentioned, has been significantly improved in the 237 release, you can see that we have the ability now to update the app management app to the latest version. There might not be a version that's later than the one that's currently installed. So we can go ahead and click update to latest version. And now we've actually updated this application very quickly from the app hub. So this is what a DHS2 application is. There are many others that might be installed in your system. As I said, many of these are things that you might use to do data entry or to do a maps application, yeah, to analyze maps in DHS2. It might also be something that a third party developer, not the University of Oslo has developed. We have a few that are installed in this example. One of those is a training application, which is a very cool piece of technology that allows you to walk through the use of different applications in DHS2. But all of these are, and this one's gonna take a minute to load, so I'm not gonna wait for it to load, but all of these are different DHS2 applications that you can build using the tools that we provide in the application platform. What is that application platform? So there are many components within an app. If you've been a DHS2 developer for a little while, you've probably seen this slide before. There are many different components of what makes up an application. And importantly, most of these things are common to all applications. So they don't need to be re-implemented in every app that you build, every app that we build. And so instead of having to construct an entire web application that takes care of all of these different things collectively, in every single time we build a new application, or you build a new application, or someone in the community builds an application, we have extracted out all of those common pieces and provided them as the application platform tool and allow the apps to be much smaller, easier to manage, easier to maintain, and also more consistent because all of those common pieces are shared between the different applications. And importantly, this is something that we use internally in the University of Oslo and the 34 applications that we manage. But it is exactly the same that is provided to anyone else who wants to build a DHS2 application. So the long-term goal of this app platform is that anything that the University of Oslo and the core developers can do to build a core application should be just as easy and available to third-party developers to build that same application or something that we haven't necessarily thought of or that is applicable to a slightly different use case. That's the long-term goal. And there are three major components of this application platform when you actually get down into how to use it to build an app. The first is what we call CLI app scripts and that allows you to basically gives you tools at development time to more quickly and more consistently develop, test, build, and deploy your application. Birkel talked a little bit about deploying. There's two different mechanisms for deployment from the CLI apps scripts. There's one which installs your application directly into a live DHS2 instance. And then what Birkel talked about is a new functionality to publish directly a new version to the app hub which then makes it available in that app management app I showed earlier to other DHS2 instances in a while. The second component of the app platform is the runtime which is a library that helps you interact with the DHS2 server and the functionality of the app shell. This has no user interface. It's just a functional library that lets you kind of hide away a lot of the complexity of talking to the API and those types of things. And Ismay will talk a little bit about a new functionality in the app runtime that allows caching of data automatically when using the use data query hook in the app runtime. The third component here is UI. We won't talk much about UI today because we're focusing on some of the other functionalities that have been added to the CLI apps scripts in the app runtime. But there is an entire UI React component library and design system which implements the DHS2 design system and gives you reusable components to use in your own applications. An important one that has been added very recently to UI that may be of interest to many people is the data table components. So if you're interested in that, if that's something you might be looking to use in your application, go to developers.dhs2.org and go to the documentation for the UI library and you can find some examples of how that is used. And if you have any questions, please post them on the community of practice or in the Slack developer workspace and we will be happy to answer that. We'll probably have a webinar specifically on UI components as we are adding a few more in the near future as well. And we'll talk about that on a separate session. So now to talk about some of the new features that have been added to these app platform components in the last few months, I will turn it over to several of my colleagues. First off, I will turn it over to MediRemi who it will talk about deduplication and proxy commands. And this is really important because this works around the cookie issue that has been plaguing many developers for quite some time because Chrome has started to deprecate the cross site cookies that have enabled a local host application to talk to a server that's running on a different domain name. So with that, I'll turn it over to Medi to talk a little bit about deduplication and proxy commands. If I want, let me just share my screen. Okay. Can I want to see my screen now? Just be visible. Yeah, cool. Cool, so I've got... Sorry, can you guys hear me then? Okay. I don't see your screen. I don't know if the rest is using it. I do. Okay, cool. I'll continue and hopefully it will sort itself out. So yeah, hi everyone. I'm Medi and I'm here to talk about two new features which are both implemented as commands in the CLI. So they should all be usable right now if you just upgrade your dependencies. And the first feature is the proxy server. So as Austin said, unfortunately, we've had issues with removing support for cross site cookies for security reasons and that's going to affect many of your workflows. The development is going to serve an application locally at local host 3000 but then connect to an external server which might be your production server or another instance like a staging server. And unfortunately, since Chrome version 90 cross site cookies where you're connecting from a locally hosted app to an external server have been dedicated and don't work without workarounds. So previously we recommended adding these command and options to your Chrome flags which did work until this September when Chrome 94 came out and moved these options. So now we've got a new recommended workaround which is our new proxy server and what that does is it allows the application to talk to another server locally, so on localhost 8080, which then talks to your external DHS to instance and by having both your application and the proxy on localhost, it rather won't complain as cookies on the same host. So to use it's pretty easy. You just make sure that your CLI app script dependency is version 8 or greater. Then you add the proxy option to the start command and then you pass the URL of your external server. I've got an example here with a URL but of course for your own server it's been your own link and it'll work the exact same way. So by default the proxy will be on localhost 8080 but you can change that and if you've already got something running on 8080 or use 8081 and so on. So once you run the start command with the proxy option once you have your login modal you'll just change your server to localhost 8080 instead of your external server and everything should work as it normally does. You should not see any difference if you do piece file a bug and it will sort that out for you. Now I'll do questions for this feature at the end of this presentation. So I'll go through a lot file validation now and then any questions for the proxy will also be at the end of this presentation. So when you add dependencies to your package.json file your run.lock file and your node modules folder will be updated to contain all dependencies and sub-dependencies required by your application. Now sometimes that means that if two dependencies depend on the same package you might get multiple versions of that package. For example, if you have the app runtime version 3 and the CDI Apps Scripts version 8 a new lock file will have the app runtimes version 3 and 3.2 because you have two sub-dependencies in your package.json. Even though they're not explicit in your package.json that's how nplr yarn will resolve it for you. So although this is harmless most of the time some dependencies do need global shared state or context and context is shared within one version of the package. So if you have multiple versions you have contacting global state. If you don't need this the app runtime is one example of a package that does not work with multiple versions of present because we need stateful things like alerts for requests and other things that make your application work well. So unfortunately yarn v version 1 doesn't deduplicate automatically but yarn v 2 and v 3 do do that. Since we don't support yarn v 1 what we've done is implement this validation deduplication for you automatically in the start and build commands. So right now while you're doing that for certain libraries that we know are vulnerable to this issue or are susceptible to this issue such as app runtime, UI and React where you only want one single version. So when you run start and build your dot file will be automatically validated and you'll either get a warning if using start but if you run build then it will actually resolve those issues for you. So in general whenever you run the start command and we have other validations we only show warnings or for build that we do fix those warnings and it just makes your life easier that way. You can also run deduplicate manually but in that case you will have to run yarn install afterwards to sort out your node modules folder. If you run the build command it will do yarn install after deduplicating so that should handle everything for you. So in general you want to run build but if for some reason you want to check your dot file you can run deduplicate. And I'm happy to take any questions you have right now. We don't have questions from the community right now. Okay. Yeah, thank you very much Madi. Again to everyone else if you have any questions please post them on the community of practice in that thread and we will respond to them. I saw that there was a number of welcoming posts for Hermann already so great to see that. I do see one person typing and they're going to ask a question or add another congratulatory welcome to Hermann but we can get back to that in a minute when that... We got it. Can you update the tutorials for our platform? I followed the tutorial but still was not able to install Dev environment. Also it would be nice if you will add ask other core DHS to Dev to check from time to time the forums and answers to the questions. We will address that as we go forward. Yeah, absolutely. We do need to update some of the documentation on the app platform and some other developer documentation. We are continually growing that so you'll see more and more coming through. If you have any specific questions that you were struggling with to get the Dev environment set up please share them on the community practice and tag myself or Hermann and we will respond and make sure that that gets addressed. If you already have a post that's open please share it as well and we'll make sure that we get to that. Thank you. Next up we have command line app hub publishing and we will move it over to Birk to talk a little bit about that. Thank you. I'm Birk I'm a front-end developer at DHS too. You might have a new command to the CLI tool that you hopefully have some experience with and you can create your apps with. Here you can see the documentation. Can you see my screen now? Hopefully. Maybe zoom in a little bit. Here's the documentation for the D2 Apps Scripts command. This is done to help you upload apps to the app hub. Hopefully you want to share the app hub here. This is appstages to the app hub and you can log in and upload your own app. I'll show you how to use this command to upload new versions. Here I have a sample app that I want to add new versions to. Instead of having to manually upload new apps that might be annoying. Sorry for that right-click.  Instead of doing this manually we now have a command you might have seen this before I presented this during the experts academy this summer but we will re-trade this and we have made some improvements and there's still some new stuff coming. So here you can see the visual studio code of this sample app. It's very simple. It's just a platform app in it through the D2 Apps Scripts in it. Here we have a D2 config file. So I've added the title to not have like in the package you need to have like a dash we call it Webinar app and then you need the minimum DHS version this app is compatible with to be able to upload it to the app. We need two other major pieces of information here. The first one is the ID of the app. So after you upload it to the app you can go to your URL here and get the ID of the app. We will make this easier to find but right now this is the way you do it. So if you click here then you add an ID field with this ID. So this is to be able to when we upload to match this app in the app hub.  And here you can see that you can create an API key and it's important to keep it in secret and secure since this you don't want to get that compromised. So you'll only be able to see this once and you click for it here and then I go back here and here you can see my terminal. So here I can do export so I will make this environment variable which is the best practice here token and then hopefully you can see it is this small as well maybe I will try to make it bigger. So here export D2 app hub token and then we paste in what we got here. And then we can do so if we now do yarn version so now we simulate creating a new version of this app that we want to upload right. So now we got a new version and the package JSON is uploaded and then you do yarn build to build your app. I've built it now but let's do it again. Then after this we can upload it to the app hub by using the new D2 app scripts command D2 app scripts publish so hopefully this will run creating archive so if you're doing D2 app scripts publish and the cool thing about this command is everything is read from the package and the built scripts. So you don't have to pass anything any params to the command everything is done for you and the version is uploaded to the app hub. So if we now go to the app hub again your apps webinar app and you can see we have a new version so hopefully this will make it easier for you to upload your apps you can even integrate this pretty easily with GitHub actions since everything is done or read from the commands you don't need to pass anything you just need to set up the secret token in your secrets on GitHub. There's if you go to developerstages.org you go to docs and then you go here for continuous delivery to app hub you can follow a guide that will take you through some of the process I did now to get your API key and then you can set up the ID and here you can find a sample GitHub action word flow you can paste into your repository and then when you create go to GitHub and you create a new release it will automatically build and publish your new build to the app hub. So this way you can integrate our own continuous delivery process and have your app updated and ready and you don't need to go through the manual process of uploading new versions or emailing versions to others through email or any other way. So hopefully this will help you be able to have your app ready and updated. So I think that's it for me if there's any questions we will answer them and again I want to refer you to these documentation pages here's both one for submitting an app to the app hub and please follow the guidelines that is linked when you're uploading an app so the uploading an app here there's a link to the app hub submission guidelines so we can easily approve your app and then you can utilize these commands in your further development process. I think that's for me. That's great we don't have questions in the community so I think we can move to the next presentation if that's fine Austin. Yeah sounds good again feel free to add any questions you have to the community practice and we'll answer them here but thank you Birk I know that's something we've presented before but I think it's really important to highlight that it's a very powerful way to standardize and automate the way you deploy versions consistently to the app hub it's really good to see that again and next up we have in-memory caching and stale wall revalidate which will be presented by Esme so I'll just go ahead and turn it right over to you Esme to talk about that Thank you Austin yeah I will briefly talk about the changes that we've made new features in the app runtime I will share my screen in a second so this is the app runtime repository some of you might have already seen that we've enabled stale wall revalidate and queried into application in the app runtime so I'll briefly go through how it works what that means for detailed information the change log contains detailed instructions on everything that has changed what you can do to solve dependency issues if you run into those so make sure to take a look there these changes were introduced in version 3 and I hope this text is readable see I'm getting a message that my screen sharing is paused let me see just share my screen still looks now we can see your terminal sorry this is a text editor yeah is that a text readable yep okay this is a very simple data fashion component from quite similar to components that you've written yourself where you're using data from the back end use data query to fetch it so what we used to do is if the hook was loading loading would be true you'd render say a loading spinner and then you check for errors and if everything's okay you'd render the data and let's say that the data is refreshed say someone does something click some button and the data is fetched again what used to happen is that loading again etc etc so basically it would always show the loading spinner so what we've enabled now which is called civil revalidate is that as soon as you have data it will skip the loading state show the old data while the new data is being fetched it will just swap out the old data with the new data so your users will only see the loading spinner when the initial data is being fetched and after that it will just show the still data briefly and swap it out with the new data you don't have to change anything in your code to sort of opt into this new behavior it's the new default so that means that for the new runtime as it says here loading will only be true during the initial load now it's possible that you want to opt out of this behavior say you have where it's really important that it only shows the correct data and that you say you rather have a loading spinner in between that's possible for that we have the fetching property which is new since version 3 and fetching will basically behave like our old loading property so you can just get it from the hook here and if you swap out your loading usage with fetching it will basically show the loading spinner every time again so it's a very simple change but it means that your app in general will feel more responsive because you don't have the loading spinner every time and you can just keep rendering data one other thing besides this change is say you have this component and it has a query and this component is duplicated throughout your app say you have like 5, 6 of these components throughout the app so it's something like like this so for example for example use the same data component but we're rendering it 3 times here so what used to happen before version 3 is that it would fire up 3 identical queries which is a bit of a waste so what we're doing now is we're deduplicating queries so as long as there is a query in flight and there are other identical queries happening at the same time then we just deduplicate them so we just send one request you don't have to do anything for that it happens automatically it will only deduplicate requests that are exactly identical so you shouldn't run into anything any issues with because it differs slightly because as soon as it's different you don't want to deduplicate it and that's basically it so for any detailed instructions I encourage you to take a look at the changelog and we'll make sure that the documentation is updated so that it reflects the current state and if you run into anything that Prince wants to know and I will take care of it I don't know if there are any questions no, we don't have questions right now there's a question in the community of practice related to authorization of apps that's unrelated so I think we can move forward thank you very much nice presentation next this way next we will turn it over to last but not least progressive web app support which is a really big topic that we will introduce here today has been added to the app platform and I will let Kai go ahead and give an introduction to progressive web apps in DHS2 applications thanks Austin yeah, there is a lot that could be said about the things that we've been working on here but I'm going to keep it a little bit short today and I have prepared a blog post that will cover things that I'll talk about today in a bit more detail and even a few more things that I'll link to in the community of practice when I'm done speaking so you can refer to that if you're curious about learning more also coming up there will be some more detailed blog posts about the tech design that we've done behind it that you might find interesting but for now I'll just describe a little bit about what's available and then point you to some resources if you're interested first thing that I'll mention is that PWA means progressive web app which can mean a lot of things but for our purposes it means that the app is installable like you can add it to a computer or a mobile device and so it'll behave a bit like a native app but also most importantly that it's offline capable so you'll be able to take these apps offline and access them through the internet connection which should be a big deal for apps that are expected to be used in low internet connectivity areas or in places where the connection is kind of inconsistent so in the dashboard app which in 237 will be using these PWA features I'll use this as an example of the things that we have available I'll show you now that in the old version of the dashboard app this is in 236 before it's using the PWA features if I use this developer tool to simulate being offline and reload the app we'll see that we don't get any service the app doesn't run we don't get the scripts that run the core functionality if we go to the new one that's available in 237 what we have is that when we go offline I'm running this one on localhost which is why you saw that login screen what happens when we go offline is that we can still see the application and this dashboard which we've saved offline now not all the dashboards are saved offline and that introduces the next thing that we have as part of the suite of features that we have here we call these dashboards here or the thing that we wrap them in cacheable sections to be able to save an individual bit of content in the app offline without saving all of them offline is what we've enabled so that you can save an individual dashboard without saving potentially dozens or hundreds of dashboards so this one's already saved offline here but when you use a cacheable section and wrap a section with that what you can do is in the dashboards app here we have this make available offline button what that'll do is it'll reload this section use this mask to block interaction with the screen and then we have a tool that listens to the network requests that are sent as this section of content loads and I'll save it in an offline cache so now we see this notification here that this section has been saved offline and if we simulate being offline with the developer tool and reload the app we can still see this content that we have saved so in the app platform we made a React API to enable these cacheable sections for your apps as well and I can show you a quick example of what that code looks like in a moment yeah I'll go ahead and do that now there are two main features there's a hook that accesses the controls for starting a recording to capture that section offline and then around this simulated dashboard here we have this cacheable section wrapper that goes around it and controls reloading the section and putting the loading mask over it so you can go and check out the blog post to check out more details about that but that's just a little preview of what that looks like and another feature that is part of this suite of tools let's see there we go hang on I need to move my zoom tools a little bit here okay you can also see this offline indicator here this is another tool that's available with the suite of offline tools that's available in the runtime is that we have a hook that can tell you whether your device is online or offline at a given time so we have this indicator in the header bar up here tells you that we're offline in other places around the dashboard app like in this button here some features are disabled while offline like creating a new dashboard or filtering the dashboard so that's useful if you're just working with functionality in apps that should be offline capable one thing that you might see as you're working with a PWA app is that updates to the app need to happen in a new way because this app caches the core scripts that run the app and they're kind of installed in the browser and run from there instead of being accessed from the server whenever there's a new app available you'll need to install those new scripts to run the app so you see an update or a prompt like this that gives you the option to update the app and when you click that you can reload and then you'll have the new version of the app you'll need to do that the first time that you upload and use the offline capable version of an app these tools have some drawbacks and catches and need to be designed around so they're provided on an opt-in basis you opt-in by setting a setting in your d2.config.js file the option is pretty simple it's just adding pwa enabled is true and then you get the basic offline functionality the offline caching tools you'll need to do a bit more setup if you're using the caching sections but that's described in the documentation here there are some other caveats about security as in the data that's cached offline here can be inspected by a malicious actor who gets access to a device so you want to take extra precautions when you're thinking about applying this in an app you want to make sure that you have good safety practices in place if this is going to be used in an app that's going to be used on shared devices and you want to be aware of the potential drawbacks there there are some tools that we have here for example if you use the logout function in the header bar it will clear the sensitive data that you might have cached offline and then when you log back in you'll see that the cached dashboards are no longer available the same thing happens if you log in here the sensitive caches will be cleared coming up next in the PWA features will be encryption of the offline data as the first thing that we'll be working on so that it can handle sensitive data on shared devices better we'll also be working on some cached normalization to improve performance and storage capability I'll be working on that blog post describing the tech developments that should come out in the coming week or two and then to wrap up I'll just share some links to this blog post and the relevant documentation in the platform and run time documentation sites and I'll add those to the community of practice I'll just take a peek here see if there are any questions looks like we're looks like there aren't so that's all for me I'll pass it back to the hosts thanks a lot thanks a lot Kai as you mentioned there's a lot that we could talk about how that works under the hood and some pretty cool technology that we're using to enable offline capabilities in our applications in a generic way and I'm really looking forward to the technical deep dives that you're writing about that which will be really cool to share with the community and I think it's just even if you don't know anything about DHS2 it's really cool technology and stuff that we're working on I did see that there was there are two people currently posting something in terms of questions first one is for Ismay does the refetch display a loading indicator using a refetch component I'm not sure exactly what that means but does that mean something to you Ismay? Not the refetch component but I assume that the question is asking also whether the loading state will always be triggered when you're refetching so it depends because currently with a refetch you can pass new variables so you have some variables in your query so that can mean that basically it's a different query it's not exactly the same as the previous one so there won't be any cached data so that means that the loading state will be triggered again it's also possible that you're refetching without passing any new variables so if it's just a refresh of the same data so if you're doing that, if you're not re-changing the query then it will show the stale data by default basically show the stale data while it's reloading so it depends on whether you're refetching with new variables or not I guess that's what's meant with a refetch component basically the loading spinner if not then let me know but that's basically what will happen Thanks if anyone else has any questions please feel free to post them on the community practice now or in the future as well so this will be available as a recording in the same community practice post where you're probably watching it now we will have the YouTube video of this webinar available and so if you have any questions when you're watching this video after the fact or if you have any questions when you look through the documentation or try to use some of these features please feel free to post them there on the community practice you can also post them in separate topics if they're unrelated or not directly related to the content of this topic Herman is there anything else you wanted to talk about in terms of the community or next steps I know we have a few things that we're kind of looking at but if not we'll probably wrap it up first of all we'll be trying to improve the developer journey to make it smoother for everybody and then working on specific programs to enhance contributions and to also recognize contributions but I basically have one very small comment which is feel free to PM me in the community of practice if you feel like you have ideas on how to improve the community on what kind of programs we should be working on etc. very glad to receive feedback on how we can make the community better together just that yeah great really looking forward to it and thank you very much to all of our presenters today really exciting features that we've added to the developer tooling and really looking forward to seeing what apps are developed using these new features again please feel free to have on Slack or on the community practice to the rest of the team and with that I think we will wrap it up for today so thank you all very much for joining us and we look forward to seeing you next time thank you