Okay, so welcome to the Dapper Day 2024 virtual conference. The subject of today will be Dapper and Cubemcube. And so we will do the presentation with Vior. Hello, hello, everyone. My name is Dior. And about I'm a founder and city of Cubemcube. And you can find me and connect me in GitHub and also with email at cio.nabat and at cubemcube.io. Very happy to be here. So me, Jim Flesch, I'm responsible. I'm leading the .NET team at Alio Hope. You can join me at jim.flesch at alio.be. I'm also owner of three words, available open source, available on GitHub and also working on a guidance tool, which is available on the Visual Studio Marketplace. You can reach me to the email address info at the full .NET and at GFish for you on Twitter. So the first thing that I would like to we would like to say is that we did already a presentation on the Dapper Cubemcube 79 presenting Dapper and Cubemcube and all the work that was done by Dior. So please check this first. It's also valuable information. And on the agenda today, the purpose is to really show how to work, how to use Dapper and Cubemcube from a dev machine to a Kubernetes environment. OK, so it will be with .NET 8 and even Aspire 8. We will spend sometimes about set-uping everything, but also how to build a microservices application and which are the best practice regarding Dapper and the configuration to use it correctly from the dev to the production environment. OK, again, what is Cubemcube? Cubemcube is an enterprise-grade message broker and message queue. It's very scalable, high availability and secure, meant to be run on native Kubernetes cluster. Cubemcube has four components in the ecosystem. One of them is the main one is a Cubemcube cluster. It's a very small, fast and lightweight cluster of a messaging broker. And we have three families of components. One of them is the Cubemcube target that is open source that able to connect Cubemcube cluster to different sources like databases, cash, many others. What we call the third party targets. The second one is sources, meaning that it's a component to ingest data into Cubemcube. And the third one is what we call Cubemcube bridges that able us to connect between Cubemcube cluster in order to provide some hierarchy and able to build a complex architecture of Cubemcube cluster together. What I'm going to show you now is how to set up very quickly Cubemcube in your desktop. We're going to use the Docker version of Cubemcube. A binary will be soon, a direct binary will be soon be available. And now what I'm going to show you, I'm going to show you the whole flow of how to run it. So in order to get a Cubemcube key in order to run Cubemcube locally or in your cluster, you can go to cubemcube.io and click on the try free button. When you will click it, you will be redirected to the account page. Here you have three options to sign up. I'm going to use the Gmail option. I'm going to click on it. And after two, three seconds, I will be able to register. And then we have the options to how to install Cubemcube. I'm going to use the option with Docker. I'm going to click on the run Docker and just pass it to my terminal, run it, and that's it. I'm going to go back to my web and I can click on the dashboard. And here I'm getting the Cubemcube dashboard in a couple of seconds. Okay, fine. So me, I will now present, so I will share my screen to show you what personally I'm doing also. So I'm back to the presentation. You see that me personally, I'm mapping a volume, meaning that if I show on my local deaf environment, I click on the dashboard of Cubemcube. We can see that I have already some topics that exist. So I will just show you that how easily. And this is something that I like because when we develop, sometimes we need, we want to have something really clean to understand the different message that are sent. So what I just do by having this capability to map to a local storage so I just stop here, I go to the folder where I've mapped. There is a store which is created. I just delete it. So if you look at the store, you will see that there is somewhere binaries to store the information from the messages that are used by or sent to Cubemcube. So I will just delete it. And now when I restart my Docker image and I click on the Cubemcube dashboard, see that I have a fresh image with no topics, no channel. Nothing is there. And so I can start with a fresh image. I can compare when I am playing the application. We will go back to the dashboard in the next part of the presentation. So concerning the cell-based architecture, at Avia we are analyzing the business needs and we are decomposing this in three levels. The lowest level is the level that we will use to start to build the cell, which is a set of microservices that will just implement the business needs. We have an API gateway and a messaging platform, which is used by the Cubemcube to exchange the messages between the different cells in the cell and outside of the cell. The guidance is supporting this and will create everything regarding the gateways, the services and adding data to deal with the messaging platform and the cache. Regarding the cell-based architecture, when we implement this in the code, what I like is that the developer has the same configuration that he will have to build when he will deploy in a production environment. So it means that, looking on the development, all the components that we have to use for all the services that exist in the cell, I put this also in one folder and the developer has to deal with the scope and define this correctly to select which is the component that will be used for a specific services, exactly like when we deploy on Kubernetes. We deploy in a namespace all the components and we have to play with the scope to say this component is used by these services and not by the other one. So we see this in the solution that I have. So we can see we have a structure with a back-end and front-end, but we look at the back-end part and so we have different services, contract, core, mail. And what we can see is that we have a dapper folder and a dapper folder is where we will see the different configuration that will use, that we may use when we develop in development or in this case the staging one. What we see is that the same component are defined for the development and the staging. And if I take here the store one, we see that we use the scope to define which is the service that will be using this one. And so the developer has exactly the same constraint regarding dapper with the defining the good scope when you run. And so after it's just a copy-paste that we have to do and to give only the configuration in the address or the password. For the typical component with KubeMQ, we adapt the PubSub. For example, in this example, we adapt the PubSub button with dapper. And what you need to set up is as simple the address of your KubeMQ cluster or instance. In this case, we are running on localhost. Then we have two, what we call PubSub event type. One we call event and the second, what we call event store. And the difference between them, events are very fast PubSub that in memory and store is a PubSub with persistence. Means that you later on be able to retrieve message, all one, start from beginning and any kind of replay mechanism with your channel. Group is the ability to group couple clients together in order to be able to do some, for example, load balancing between services. A client that is a unique idea for the service in order to identify to KubeMQ service, say KubeMQ server, which one is the client is connected. Okay, so Leo, if I'm on a service and I just publish a message to a topic in this case, sorry, the group and the client ID is not something that I need to configure on the component level because it's not used in fact. Yes, but if you want to keep the name of the server who send you in order to see in your dashboard the details you will need to set the client. The group is on the receiver side. Okay, good. So if you have your services deployed in the communities environment that you see replicas is set to three, for example. And if you want to just receive the message that it was published by one of the instance, you'd have to define a group. Otherwise, you will receive the message three times. And so it's really important to have this concept in mind. It depends on what you want to do in fact. And when I generate the code via the guidance is that the components directory is linked to the development folder. And just I remember because we define all the services that we will start and we show you this in Aspire are linked to the same folder where all the components are defined. It means that immediately the developer is in front of the same way the apper is configuring when you deploy in Kubernetes meaning that you have on your name space a lot of components that are declared and just the scope is used to trigger, to filter what will be used for this specific services or not. And so when they are developing and they do a mistake they will see this immediately and they will be able to correctly configure the staging of the development environment. So now I will switch to the solution and I will go to the apper settings. I think here I've already cleaned this so because I'm on Aspire so there is no data for static you see before. I was using the apper sidekick locally on the development machine and we are still using it. And on this project where I'm able to run this with the data Aspire to check and validate everything. In this case, I comment this part so sidekick will not be used. And if I look at the Aspire solution here on the program I can see that for each service that exists I have a dapper sidekick. So I'm using currently the preview two the preview three theoretically is for this month February but at the moment we are doing the record of this presentation only on preview two. And you see that we define the resource pass and the resource pass is just to mention the dapper development environment and all the configuration that we use. And this is something that I use for each services and those services will be deployed at the end in communities in a namespace. So really important, I'm going to do a demo and show you the dashboard and we'll see this so it's not the moment for the moment to show that. I will again continue the presentation. No, when we go in production we have not yet for all the application dapper and incubanities so we are not fully migrating incubanities. So for the application that are not yet able to be deployed on the communities environment it's more because we don't have yet a cubanities on-prem and for critical application we don't do this in the cloud for the moment. So in this case, we are still running dapper on the sidekick as an anti-services. So we use the sidekick functionality we activate this via the settings but when we deploy in cubanities in this case we just annotate the YAML file to deploy and manifest we mention the app ID and we remove the section with the dapper sidekick and so we are able really to switch from so locally it will be on Aspire aid in production it will be all as an anti-service or incubanities and we are really flexible and we can play this easily. And this is what I like in the architecture is the capability to really switch and have a lot of flexibility. So now we will see the cube and cube dashboard and all the possibilities and for this I will just start by running the application with the Aspire and show this in live. So I will run the application. So I start this and Aspire will start everything for me. So he will launch all the different services he will launch the Aspire dashboard and we can see that the Aspire will start the dapper sidecar side by side with the different services then it will also give me the access to the app which is just a component. And when I launch this, the app will be launched I'm able to connect to my web page and we can go to the different services that exist and I can, for example, queries the list of components. That's more or less what it's done. We will see the part regarding tracing and so we have to do everything which is done nicely and I can see also, I will show you this how the logs of the dapper, I can see that the QMQ component is started correctly, so we have the secret store but we have also the Pupsup QMQ and we can see this. So we have an environment which is up and running. Oh, no, I will go to the Http so I will launch the dashboard of QMQ that I've started the application even if there is no message. I have already the services who are listening to the different topic that I create for this application and I will have a look on what is going to the user. So when we create a user and so on, there is a mechanism where message is sent, it will be created a message to say, okay, you are registered and so Leo, there is here two concepts in which is subscribing and watching. Can you explain which is different between the subscribe and watch? Yes, the subscribe is a simulation of really client subscribe to the message, like to the channel. So we actually will get the messages and watch is like a monitoring, means like in eyes, what's going on on the channel and is not looking and actually accepting the client. So it's like a meaningful debugging and all development mode that you will be able to watch on top of the channel. By the way, it's very, very useful in other messaging pattern like command and queries that you can see who is sending a request, who is responding and this is the same way how you can really watch on the channel and see what is the traffic running in this channel. Okay, so me, I will subscribe to this channel, meaning that now when I will publish a message, I will be able to see and we will see the content, what is in this message and I'm using the cloud event, so I'm using that one with cloud event and so you will see what is happening. So now I will show this in the application again. So when I have subscribed to the user, so I will create a company. So there is a message which is sent, but I will show this with the user and now I will create a user. So each one I create a user, a message is sent to the adapter and Q&Q and Q&Q to the mail services. Mail is sent, so you can see here the mail which is sent and I go to the Q&Q dashboard, sorry. And when I click because I have subscribed, I can see the message and the content. So you see the data also, it's a cloud event message. So meaning that we have the cloud event information, so in the data is my message and we can see the trace and the trace ID which is used to, for the open telemetry, I will show this in the aspire and so based on, we use also the type to after listen and based on the type that is used, the message will be routed to the services to be handled by the mail. Okay, I will show you this in the project because it's really interesting probably to show this. So thanks to that, I can see what is happening on the wire and when I subscribe, which is also interesting is that I can take a copy of this message and I can republish it. Okay, so I can just click it. I will re-send this to, I will send it and know that I have sent it but the mail is recent because the mail is receiving the message again. And so this is really handy when you are debugging your application and you have a full process and you need just to test a component, you just publish the message again and again and so you can debug your services and it's really interesting in this feature and easy for a developer to use this via the dashboard of human Q. So now if I go back to maybe the project, what I do also is that for at the level of the project, I have for each services that exist a dapper controller and I will go to this one which is not really interesting but I will use the mail one for example. And so the dapper controller is something which is with a specific group name that I exclude from the swagger page because it's only something that will be used by my dapper. So I don't want to be able to see this in the swagger page and for each event that is created I have a pulse with the root and if I look at the dapper component for the mail there is a subscriptions definition and here you can see for the type of message each root that will be used to reach the service and this is how the glue is done. So we have seen the message created, the cloud event type is also sent. QMQ is transporting this. I can see this in the dashboard and this is mapped to the good end point via the subscription. Regarding a little open telemetry concept is not really the open telemetry one but here the QMQ as a concept of also where you can see all the clients that were connected and exchanging messages via a specific channel and so it's a nice view because you can already see and have information about who is sending, who is receiving who is sending and receiving. So a nice feature to understand I can see now really the normal message are using, not republishing multiple times via the dashboard the message. I can see the gateway code with the old concept which are inside regarding the security, the contract which is called to create the user, the message which is sent via dapper and the PubSoup mechanism and I can really see the trace and all the detail about this message via the sign to the open telemetry. Leo will explain the CACI tool and what is it exactly? CACI just run it and then automatically it will open a new web page. I can see that I have the dashboard, it's currently cleaned there is no no QBIM queue. I have running K3D as a local client, local Kubernetes cluster. What I'm going to do now I'm just going to click put my license key to that cluster and that's it. We're going to wait about 10 to 12 seconds and he will bring up all the necessary components. In Kubernetes we are using the operator in order to load all the QBIM components as we have reached target sources and then in 10 seconds we can see that it's up and running. If you want to look on the dashboard you can click here and this is the dashboard of the cluster that you have. We have currently two nodes that are going up as we speak, you see the third one going up and then from here we can continue if we want to see more we can see logs, we can see services endpoint, we can do port forwarding if we want to have a local exposure to the cluster so we can set here and then automatically all the traffic for port 50,000 on GLPC will be forward and here we can have more all the settings, images torization, TLS, routing, health many, many, many things that will to run out of the box QBIM Q is running almost without any configuration and that's it. Thanks Leo, I think it's really interesting and how easy it is to finally deploy QMQ in the production environment the last slide which is the Q&A custom and also


Mwneud i chi. Fygonwyd, 9.30, ac yn ein jwgoel. Rydyn ni wedi gweithio i'n newid y cadw. Dw i'n gwellwedd y blwyddyn yng Nghymru. Fodd fawr i chi am y gweithreys mwy Llywodraeth, i'n Llywodraeth, i'n Llywodraeth, i'n Llywodraeth. On i, ar ei wneud ddim yn bach oherwydd, pancakes a drafyn, on i, ddim yn fwy hi'n mynd. Mae'r first item on the agenda is decision on taking business in private, and our first item today will be for the committee to agree to take items 5 and 6 in private. Item 5 is made up of two complaint reports from the Commissioner for Ethical Standards and Public Life, and item 6 is a consideration of a draft report, and do members agree to take these items in private? Thank you very much. Item 2 will move on. Decision on taking business in private again is to decide to take future consideration of the reports from the Commissioner and the committee's draft reports on the complaints in private at a future meeting. Do members agree to take these in private? First business of today, agenda item 3, and that relates to cross-party groups. This is to take evidence on the proposed cross-party group on St Andrew's Day, and I'd like to welcome Tom Arthur MSP to the meeting. Tom is the convener of the proposed group, and I'd like to invite Tom to make an opening statement about the purpose of the group, please. Thank you very much, convener, and good morning to the committee. Having served in this committee for two years, it's a pleasure to be back here, and I'd like to take this opportunity to congratulate you, convener, on your appointment. By means of introduction of this proposed cross-party group, I would like to give a bit of background. Dennis Canavan, who was an independent MSP up until 2007, was able to secure unanimous support in the Scottish Parliament for the passing of his St Andrew's Day bank holiday bill, which became an act at the beginning of 2007. That act has made provisions for public bodies and businesses to recognise the 30th of November, or, if the 30th of November falls on a weekend, the Monday following, as a public holiday. However, it does not compel business-eater banks, for example, to recognise it as a bank holiday, but it gives that provision in lieu of the local holiday. I was approached by Dennis Canavan, who has had a long-standing interest in this area, and has been pioneering and spearheading efforts to get greater recognition of St Andrew's Day, both as a holiday and as a cultural event through the St Andrew's Day campaign committee. I was approached by Dennis shortly after summer recess. He had been working on establishing this cross-party group with Christina McKelvey, but Christina McKelvey was appointed as a minister before summer recess. Consequently, I was asked by Christina and Dennis to take forward this cross-party group. We had our first meeting some weeks ago, which was well attended, and it was a great deal of enthusiasm and energy, and clear cross-party interest, as is illustrated in the range of MSPs who have agreed to join the proposed cross-party group. The purpose of the group, as outlined, is firstly to promote the celebration of St Andrew's Day more generally, as Dennis Canavan has very eloquently stated many times in public. Unlike in other countries such as France, where Bastille Day seems a pivotal celebration, or in the United States, where Independence Day and Thanksgiving Day seems a pivotal celebration, or indeed closer to home in Ireland, where St Patrick's Day is, St Andrew's Day does not have the same status and recognition in Scotland as the other respective national holidays do in their home countries. It was a clear aim and desire to promote St Andrew's Day as a public holiday to encourage more businesses and public bodies to take it up and to encourage greater participation. As a view in doing this, it is a chance to bring people together to celebrate Scottish culture, heritage history and Scottish diversity, to celebrate our international connections in Scottish diaspora and to celebrate the immense contribution that all new Scots make. I refer to the range of members in the group that is an international component. St Andrew's Day is not a figure solely celebrated in Scotland, a patron saint of other countries such as Ukraine, and is a clear interest internationally as well. In encouraging the celebration of St Andrew's Day, it helps to connect Scotland globally and celebrate that shared link. That will be a key aspect of the group. I highlight some of the key themes that we will be looking to work on within the group. Clearly, there is the Winter Festival programme, which is bookmarked by St Andrew's Day and Bunsnight. There is a Glasgow Recaring City event, which many will be familiar with, with the huge congas that occurred in Hamden Park and around schools. It is a great opportunity for families and communities and schools to come together, again celebrating Scotland's diversity. In an inclusive manner, there is the St Andrew's Fair Saturday celebrations. That is a nice counterpoint to a small business Saturday in some regards, in celebrating fairness and communities and diversity. There is a desire to recognise St Andrew's Day as a school holiday. As I have stated previously, I am promoting Scotland's international connections through St Andrew's Day. I conclude by saying that this is a topic, a theme and a cause that has consistently gained and sustained cross-party support across this Parliament since the act was passed in 2007. I would be happy to answer any questions that the committee may have. Thank you very much for that, Tom Arthur. Just before we go on, I should have mentioned, as Tom started speaking, I remember, to turn the sound off on my phone so that I am not interrupting anything. If anyone else is in the same position, please do so just now. We will move on to any questions that members may have for Tom Arthur. There are two things that I wanted to highlight. One is really a question and one is more of a looking for a solution. There are 104 cross-party groups now, all competing for time, MSPs, time, space, etc. How confident are you that people will continue to be able to attend the group going on? I am obviously saying to Andrew's Day that, unlike a lot of the groups, it is a specific time of the year, a specific day of the year. Will it be more popular close to that time rather than perhaps further away? I appreciate a lot of the work that has got to be done ahead. How confident are you that you will be able to keep the interest of MSPs in attending and find time for it? Thank you very much. That is an excellent question and I am aware that the committee has been considering for a long time. I would respond by saying that there has been a sustained interest in this area. There was an Andrew's Day campaign committee led by Dennis Canavan and that has sustained interest in this area both within and out with Parliament for some considerable time. With regard to the second point, there will clearly be a focus of interest around St Andrew's Day. However, as we are all aware, in preparation for these events and in highlighting them, that is an all-year task. While the campus APG approved by the committee would clearly gain more interest in the autumn as we approach St Andrew's Day, I believe that it would have sustained interest throughout the year from those members and communities looking to explore ways in which they can plan for St Andrew's Day in their particular areas. I have a couple more questions, but Jamie is going to follow up on them. It was a second one very quickly. Cross-party groups are one of the main reasons to inform MSPs. Is the responsibility of promoting something like St Andrew's Day, which I think we would all agree with? Could that not be covered by a number of public bodies, including Visit Scotland events, Creative Scotland, etc? Would you hope to have them involved? Are you looking to create an overarching committee campaign to do that? Does that need to be a cross-party group effectively? Again, it is a very fair point. Clearly, we want the group to be as diverse and inclusive as possible and we will look to reach out to those bodies. Part of the purpose of the group is in allowing a range of stakeholders to perhaps have access and contact to come together. It gives communities and the grass roots an opportunity to contribute ideas and to share their vision of how St Andrew's Day could be celebrated. As well as having that campaigning purpose, it provides a forum for the generation of ideas and approaches towards St Andrew's Day. Maureen Watt, and then Tom Mason. I got an impressive list of non-MSP members of the group. When you were introducing the topic, you mentioned a lot of the Winter Festival programme, which I think is a bit central belt centric.  It is a pity that we have to have one that St Andrew's Day is not celebrated more within our own country. The work that Dennis Canavan has done on this really needs to be taken forward to the next level. What steps will you take to make sure that this is a truly national festival and not just perhaps Glasgow centric or central belt centric? It is a very good question and a very fair point. I think that there are two aspects to that. There is the work of the cross-party group itself and the ideas that it promotes. Clearly, with cross-party groups meeting most often and most commonly in Edinburgh, that can present challenges of accessibility for people from rural communities, be that in the borders of the north of Scotland or in our island communities. So we would, as a cross-party group, clearly be very open and welcome to exploring means to be as inclusive as possible, whether that be through people being able to dial in to the meetings or indeed taking the CPG on the road and meeting in other towns and cities. I think that that extends to the second point, to make St Andrew's Day as national and as inclusive as possible, not concentrated in the central belt. It is vital that we get those voices in those other communities and in the diverse ways in which they may choose to celebrate St Andrew's Day. The cross-party group provides a forum for many of those individuals and communities in groups right across Scotland to contribute and in so doing so they will help to shape the strategy to make St Andrew's Day celebrations more inclusive that truly reflect all of the rich tapestry of Scotland. In some ways you have answered my question, but I am still a bit concerned that by having a cross-party group it rather takes the wind out of the possibility of developing all the events and activities for St Andrew's Day more outside, as it is more a make the country do something as opposed to informing the Parliament. We know what St Andrew's Day is and what can be done. In fact, in some ways having a cross-party group would not restrict the activities of other people and rather divert the activities of other people and take the power out of them. It is a fairly made point and I am addressing that concern what I would say is that the CPG is but one tool in the toolbox. It is one of the available options that people have. Communities across Scotland will choose to celebrate St Andrew's Day in their own way and clearly there will be some thematic commonality right across the country. What the cross-party group does is providing a forum for the stimulation of ideas for how St Andrew's Day can be celebrated and the proposals and strategies to be put forward. It gives communities access to a range of MSPs and as we all know in our respective constituencies and regions, MSPs can leverage that status to help to promote certain outcomes. I think that it was an opportunity for MSPs to become more informed and to become more understanding of how St Andrew's Day is celebrated and that can be particularly useful. For example, MSPs from one part of the country may be exposed to ideas from another part of the country through the cross-party group but otherwise they would not be and consequently they will be able to share those ideas with groups in their own constituency region and therefore helping to promote proliferation of those ideas about how St Andrew's Day can be celebrated. It is also very fundamentally to encourage networking as well and to build up relationships and contacts. How would you measure success? Taking my criticism that might take the authority out of other organisations. At the end of the day, how would you measure success with the group? I think that that was clearly going to be a grassroots element. This is not going to be simply reliant upon public bodies having officially sanctioned events. This will be about communities, charities, the third sector and various other organisations coming together, both within their communities and nationally to work together. On how we would measure success, that is a key question. Clearly we are now almost 12 years on from the passing of the St Andrew's Day holiday act. Success could be measured across a number of ways. It could be measured by how many public bodies and businesses recognise and take use to St Andrew's Day holiday. It can be measured by the number of events taking place. I think that more generally it can be measured by public perception and attitudes towards St Andrew's Day and how that is for businesses who do not celebrate St Andrew's Day by taking a holiday. In a way, for example, we think about our bar and restaurant sector, which will often give a great deal of attention to St Patrick's Day. Perhaps one indicator, for example, would be that level of attention being paid to St Andrew's Day. In terms of any thematic events that occur within businesses as well as businesses taking use of the holiday would be one indicator, for example, of an uptake of interest in the St Andrew's Day holiday. I think that that is an excellent point, convener, and I would agree wholeheartedly that that will be the ultimate measure of success for the endeavours of this group and those across Scotland who want to promote St Andrew's Day to the level of recognition that it truly deserves. Well, thank you very much. Any other questions at all? No. Well, thank you very much, Tom Arthur, and thanks for attending. The committee will consider whether to approve the application for a St Andrew's Day cross party group, and we'll inform you of the decision thereafter. Thank you very much. Agenda item 4, as you will see on your agenda, will have a discussion in terms of whether to accord recognition to the proposed cross party group of St Andrew's Day. Has anyone had any comments they would like to make, whereas the group should be brought into existence in Agil Patterson? I didn't pose a question myself, but my observation is clearly that there's a need to promote St Andrew's Day. I don't think there's any question about that in the work that is needed to be done. I can't think of a body out there that would take this on board and run with it and give it the energy and the exposure that it needs. I've got a lot of time for Dennis Canavan himself and the way that he's proceeded so far. It's been a long shift for him, but I do believe there is a need for it. It's not a one-day event that we're talking about here. It's all the work leading up to that one-day event. It's getting into the Scottish psyche. I think that to celebrate the achievements in Scotland and maybe recognising some of the things that's not just the things that you would highlight normally, there's all ways to make a country. I would fully support and wish it well. The point that you made at the end, convener, was very apt that the success of this group will be that this group doesn't need to exist in the future. I think that probably our bodies—Vent Scotland was one of the ones that I mentioned—should be doing more with this. Until we get to that stage that it is promoted a bit more, I have no issues with the group going ahead. Members, do we agree that the St Andrews Day cross-party group should be allowed to continue? On-balance, yes. We will inform Mr Arthur about the decision there. We will move into a private session. I will let all the members of the public who have gathered.


이것도 रब नहीं बार ने आब वो सकते हैं। अब अबी सब लोकोने कता नहीं फीप या है ना अबई सब निखलेगा ना गरी आए थे नहीं बार कोईने तेपा अगे, वो गो समकभी आपने नहीं वो नहीं सकते है और में सब क्यों करचा थी प्रचाह। करती थाँब �對不對 Ever Instead, तुरंगड है? घुह स Edison 능ा। तुरंगड बारा serlaughing और घर तुरंगड ठबटाा तयकी का दूत ना uitल थास pinned तबटाindi chakra अगम दीखािया सद руб का जूग स्थ PK नसी दिक लान्चिवर क् communion आ� skill अगर ऄाउन्ती, और नाख्पूर, श surt- दु� how it thought it thought from Nakpur, Small town earth, Shakthanda अगर माज जीदना, समथ से प्रदटिर एकॉजी में। And I am comfortable with posterity filters. अगर बघफ दुत, क्यदर के साच़ाट आश्दोन जीवाड़ा। That's my Twitter handle and GitHub handle. अगाडी आप वरी भी बागनागे चाद, माझा धेरे उताई गर वह की सागगम चाँ, आब आब गोईग। और आप दोगी एक ठाँ मैरे साहँगर, लास हुँँँँँँँँँँँँँँँ यूग रह Monga सब वाग Lux ताई मेरे बाख साग सई या पयोंझे आगध ज niżFI अखगे वाख � этом होगी मेंखneys के वॊँऌया light ुआप जोत चफ वो बच्चान ही पहलेम। एक मेंएлюч़कना गद अब दरंते कल JSON बनक है गद वीगच मैं रहोनहोंं भा newspaper ह felony . kavani और आगर बार नाईण, और और जोग चाल बदे लोग था. प्रिधि अब आपा दिगर सब करने गागर वार्च्ठाती थरित अब दोगत गगे. तोगागर औरमे धआखर जब आसाग शाथ रहानी आन्था. एो than एक और वाड़नुं कुलया वादिट होगा बिदादू जरी तोगे थी आप रबा याद बुद्गार निदा तरानी की ऽने रहर्तादी धेखना क्योंग नीशारा दूगती के ख़ूगती रहा है अजी तब अजो मुपनिदिया, आप आप ँन money ूग खुटिंग वॉईbook ।ंधिछ उगा वॉग़न कुड़ के आदा आप ओगे दूँ से आप यादन और narrower वॉद कुड़े आप शाम न की जाध के विड़गाड्स अक और तोप IKEA prehabilitation. Mobile xtures  YJाज़ुउउउउउउउउउउउउउउउउउउउउउउउउउउउउउउउउ  Stall  � only अभाजली लाग। और मुतर से वो जुगा मुताई क्रिर सेंजा कि साण जै लागा कर ऐसा, मुतलिका साण तब आप घे कुई सभेगतिवा है, वैंगा भाजली बाजली के सिल्ग, आपको, देगा उना तो वेंगा. from the रीक of the उक्रिदून थियानी शिखन लाँगार के लागार अंगर तुद अछैप्ते तुच्वाँजा, यह चीश़्ेद, देशा बोड़ालीग बिपीडी। अजिए और उसक्ताद अजिए जाद़ि यह में लाँगार जाद़ी टीेश कि पर स्पहने बाजदी सब भी थियानी वि And invalidating environment exists We need to intervene to work on both aspects of it And then achieve our results which can be stability which can be prosperity or abundance Cool The other thing that I want to focus on is ethnic knowledge By ethnic knowledge I mean that a particular section of people Or it can be majority or minority, we won't get into that But a particular group of people who align with a particular cultural idea Have some knowledge that exists within that group अद्तोने क्या वाग़ा सोप्रोंप, सब या सब हो... दो�書, मिर्न की वाग़ा सोप्रोंप, सब आब मैंग़्ा सोप्रोंप, सब आब मिख़ा है मुझेटा है, छल्दे झास्द, छल्ड़्ब, स्वृदे. fixes so if we take a group of software developers as a ethnic group let's say if we were a culture So we would have our things documented somewhere in some format and we would have that knowledge represented in some way like when we talk her at the conference the talk is the way of representation of that knowledge now when we sit to study that knowledge so when we study music it's called musically इसना काँगाकाँँतार्वेल्गा काहाँगाँतारा है तो आप छकतारा गगाँताँ आप एक चृटे। अगर विसा सावाबा विसा क्या व्ठाष of etnic culture अआदब आँ सोथा, कि से तो कानापे जाग़ रहों थे। जरगन देखा गया जाग़ागार जी से ख़ह जो। गेंथा, और से वान वावा लुगेज़े, आदब वावान, और करत्द्वान लाग घोभोट, काना को बरट्खरे लोगातिया थालौ accommodant under the real world. को बाधिया बहु Spell wouldn't fit but अगा सesters of parties today mostinois मुझ्नाने क्छी अलीजी। Έे सुबि के एक वोत को उगाता औ背 temos銄 सिए को Stones, को को सिए के... को वाो शंऍे लार सिए की आए. कुफ कि कर नहीं आपा cus size with 600 integrating. what are the languages that do you work on now i have another conflict that i talk about the natural spoken languages or may i talk about JavaScript or Ruby coming back to the bioscience approach what we did in melga tygur reserve was we identified the needs of the local people and we said let us address the emotional security aspect and also create a validating environment let us not таким tell them that we are tourist आदडियादिये खल्ड़ानानुँँँँँ. और दीवादियान कुहाँँँँँँँँँँँँँँँँ जम्गल प्री सफारी से लगे क्चछाआ terrorists are going for jungle safaris. विर्जानाना मदा। सजहां बुटो। आर्जाना दूबिया. विर्जाना विर्जाना पर्णोग अना सरीई षलत परड़ाड. नम्से तीनन बागत बन। सचंटर रची ऑरगानी च्यूक जो जित रब आप ख्शादाश। विर्जाना मादए मदायogram if you speed through the roads inside the tiger reserve or if you take a gypsy the nocturnal wildlife gets disturbed the mating patterns differ and conservation doesn't happen no mating no conservation so um so with this approach what we did was we brought all tourists at a farm location at a deep sky observation site we put our motorized telescope over there and we asked them to just lie down on the floor and watch the sky move and then we kept curating that event by telling them that this is that constellation this is the significance of it and then this is how it looks from the telescope and things like that it was pretty interesting for them um what it also meant was uh we didn't have to touch anything in the tribal habitat so migra tiger reserve has a lot of corku tribals and there is no electricity yet there so they are not exposed to mobile networks yet like they know what a mobile is they know the latest bollywood songs but they don't use mobiles they don't have television sets and they don't have a pipe water supply either so there's no western toilet over there uh they practice dry toilets or recently they've started using indian toilets with the swaj bhaiyat mission now how if if i combine biosocial approach with ethnic knowledge so if i were to do it in the context of an ethnic culture that is corku culture in this case what we did was we renamed the event like this first event was called messiah marathon this event was called ifill dodo so in corku language ifill means star and dodo means watching so we renamed it in the tribal language which has not been documented anywhere yet and at the same time we introduced stories from the folklore of corku on astronomy so it was ethno astronomy and we got the villagers to come and narrate that story to everybody and we told them that hey you know what the tourists are coming in for you you are not here for them so why don't you just tell about yourself and we had a lot of villagers come over and we did many of these so uh the sukir pilta is is is in gondi so gond tribe is another tribe so we did that in pens tiger reserve and this was done in gondi culture we got a lot of validation so we're talking about validating environments right so we got a lot of handwritten feedback hand written because there's no internet there's no technology there the villagers cannot they don't have access to online reviews so we got hand written feedback from the tourists and the tourists were super happy like they wrote like two three pages of feedback each of them and they were they this and also we what we also did was that we introduced the food as something that the corku tribe eats when we did it in mail guard so we didn't give paneer butter masala we gave them like if i were to tell that in punay it's pitla bakri so there we call it besan and we did a thicha with it and we had it under the stars so it was quite a nice experience which people don't get in commercial tourism or in mass tourism so people were pretty happy about it and they paid a lot of money also another validation that we got was in terms of finances so i come from nakpur our temperatures go to up to 48 degrees in summers so there's no tourism that happens in summers in the tiger reserve but in this case we got about 50 people into events across two events and the summer revenue was 30 000 for the first event and 45 000 for the next event so everybody had that financial validation also what it impacted was we created an alternative to nocturnal tourism and reduced human activity we built the social capital by encouraging and we did this with the forest department so there was a lot of trust that was built between forest staff and the locals they were they had been conflicting because the forest staff had always been telling them that you you are a criminal you you are cutting wood you are poaching tigers and you need to go from here so that trust started coming up there was an alternative livelihood that they started seeing as compared to poaching because if you can generate 30 000 in one night you don't need to poach a tiger that gets you 10 000 at the same time there was minimum on no side effect to the habitat now katha ka saar ye hai ethnic knowledge coupled with biosocial interventions which is about validation and emotional security for people just telling them that a whatever you are doing is okay we we can accept it can be used for conservation and that is the theme of the project now coming back to ethnic knowledge when we say that it is represented in regional languages and dialects when i traveled i started making friends by picking up some local language gestures like hi hello kese ho sorry kana kaya kya like how are kana kaya we started doing that so for example in nagaland there are 16 official tribes that the state recognizes so if you want to say hello there are 16 ways of doing it in nagaland it was pretty pretty interesting and very fascinating when i was at hornbill festival in nagaland at the same time there's there's a lot many other languages so when we start studying these language linguistic nuances so it is called linguistic geography or dialectology now speaking about the linguistic spread in india what we have is there there is the eighth schedule of the constitution of india which recognizes official languages in india so the scheduled languages as they are called we have 22 scheduled languages in india what it means as every state has adopted one language which is an administrative language for that state and every curriculum or every academic material would be printed in a national language in an international language and in a regional language a scheduled language now there are 45 more languages that have been demanded to be included in the eighth schedule but we have 19 500 languages in dialects in india those can be reduced to over 1300 rationalized mother tongue what that means is there are over 1300 languages that have been practiced within families and passed on through generations to each other those 1300 languages can be reduced further into 121 mainstream languages each of which is practiced by at least 10 000 people in the country so right now the representation of these languages is 22 scheduled 99 unscheduled even if we were to start and every language has a lot of material that that we can study we can derive inferences from and design a biosocial approach if we want to achieve conservation like i cannot go to a corku tribe and say that hey you know what abhi marathi mein batkar can't do that i cannot go to a gondy tribal and i can say so if i were to tell you what the differences are so if i if i have to tell if i have to talk about gondy where i come from i come from gondwana nakpur pulsing gondwana so um if i have to tell anybody that hey it was nice meeting you so in gondy the way you say that is um nakun nase mile masik atun khusi atun it has no connection with any language any other language that you can find khusi probably so the challenges that we have are these languages are underrepresented and marginalized there is no poor or no propagation so the only mode of propagation is spoken word the spoken word gets translated to the next generation and with every passing generation we are losing out a huge chunk of knowledge so it is susceptible and vulnerable to extinction we have we already have some languages that have gone extinct because all the newer generations have migrated to an urban landscape and they don't they have no clue about what the tribal recipes were or what the agricultural practices were or how housing happened there and what is the ecology there so they have no clue so um uh what becomes a primary priority for me is to first document and archive this knowledge because it is undocumented they don't even have a script so so we need to start from there now there are some ongoing projects which which are already doing something for the rural landscape so pari network which is the people's archive for of rural India it's already doing this within pari there is this grind mill songs project which was executed in this part of Maharashtra where we are right now in the western ghats the villages that fall in the western ghats so so people poor people who live in the hills so they have an organization that they formed and they documented the grind mill so a grind mill is that so the women of the marginalized women of the marginalized community used to get together and they used to network and socialize over the grind mill because they were not allowed to talk about these topics at home so the only way to document gender inequality in that landscape was through those grind mill songs so there was somebody who came in and documented those songs for 20 years and they archived 110 000 songs translated them in english and french and 30 000 of those songs have been audio recorded and have been put up as open data on pari network um has anybody gone through this website ever jashne rehta or rehta foundation okay so uh rehta has been instrumental in conservation of hindustani languages so urdu in the avadi braj all these languages that existed in adi kaal or bhakti kaal so they uh they have been documenting all that literature and they have been putting up in a very good ux which allows you to understand what it means like in this case this uh this ghazal is uh is uh is from amir khusro which was a 14th century poet uh he's also known as the father of ghazals kawalis and uh rubai so uh he was half in half hindu and half persian so he he wrote in persian urdu avadi braj everything so this particular ghazal has a very unique character uh the first three words are in persian and the last four words are in avadi so it goes so it's half hindi or sounds like hindi and half of it sounds like alien it's persian right uh which is which is what brings us to project langdon what it is about now i'll stop talking gibberish and i'll come to the point um project langdon is about four things that i intend to achieve uh one is documentation and archive what i just spoke about um um how that is done how that can be done so documentation can be done with a web app uh like rehta uh which whose primary function would be to transliterate and translate so in this case when you see zihale miskin and you see a hindi devnagri script and beneath that you see the meaning of it so the hindi script and the urdu script is the transliteration and the meaning of it is the translation um archiving is is about knowledge representation how do i represent it digitally how do i store it in a particular format that can be used to derive inferences out of it like why do i want to document it i need to answer that question do i need to do it just because i want to sound cool or is it for entertainment or for my ego boost i need to answer these questions so i need to do it to infer that knowledge so the way i did a bio-social intervention in melga tiger reserve i need to understand what a star means in corku that inference is present in that ethnic knowledge which is undocumented which needs to be archived and there needs to be a system because there is so much over such overwhelming amount of information out there 19 500 languages and dialects out there with a lot of literature a lot of meaning a lot of knowledge inside it how do i do it manually i can't do it manually so i need to put up a system for inferences and then based on those inferences i need to recommend a bio-social intervention to public bodies to private bodies or to organizations that lie like the gharib dongari dongri gharib lokanshi sangatana so if i were to provide them with a bio-social intervention i can recommend it to them that hey you know what if mass tourism is not working for you try night sky observation for that there needs to be a holistic knowledge that needs to be documented somewhere where i i intersect ecology astronomy ethnic knowledge linguistic geography and it becomes an intersectional approach it's not a single issue activism that i'm doing where i say that okay i want to conserve habitat and everybody else needs to just go away so i cannot be an environmental activist and ignore human aspect of it so it has to be an intersectional the the Venn diagrams converge uh they intersect they don't converge so i need to take an intersectional approach and then ultimately my aim is to conserve chronology samjiye uh ish mein jo basic technology ka evaluation tha ho chuka hai and right now i'm at a stage where i'm working on the documentation and archive part where i i'm working on the uh knowledge representation bit of it rehta has cracked the ux like nobody else so i'm not even thinking twice about redoing it i might just connect with them and understand if there is a collaboration opportunity which i have already initiated with somebody if that doesn't happen i would like for them to open source their ux and so that we can use and share it anyway it's a it's a it's a foundation and they they promote open sharing so so that is a sense that i have and if they are not doing react probably i'll do react just because i want to so anyway the next stage would be to create come up with an inference engine which comes which which churns out some inferences out of that knowledge like what what is it what what is something valuable that is in our context right now so if zehala miskin was written in the 14th century what does it have for us right now why is it important for us or why should i even read it so there needs to be something in it for us so the systems need to churn out that relatable inferences for that we need to train it and finally there's a recommendation engine which churns out recommendations for a biosocial interval my purpose is biosocial intervention but it can be used for anything else also like it can be used to to create a business model which is connected with the ethnic knowledge coming back coming to the tech aspect of it probably you would smile now so i needed something for ui development i needed something to have like this is a basic web app requirement like it's nothing fancy this is even if you have to build a web app it would be something like this like you'll have you'll need something to log in users sign up users forgot password email bejo ye karo wo karo adrak lesson okay so then you need something to persist that data when i'm representing that knowledge i need something to persist that data in a way that it can be inferred and recommended then i need something for a role based authorization mechanism where because i'll have some contributors i'll have some moderators i'll have some admins so i need a role based authorization mechanism somewhere where i define privileges either based on a group identity or based on karma rating or based on reputation the way it happens on stack overflow or wherever else then i'll need something to test can't forget that and finally i need something for continuous integration and continuous delivery later stage requirements would be inference and recommendation engine that is something which which connects the like it's the it's the crux of this this thing which serves the purpose of conservation and if i were to open it up i'll need a developer experience like i'll need a cli experience or something which people can just clone the repository and start contributing so this is something which i started thinking about earlier this year we are still in the second month so it's still early this year and i started working on the software aspect of it early in february like first of february i started working on this my evaluation parameters were how is the learning curve how much documentation is available what sort of supporting libraries are available what is the library ecosystem around it what is the developer adoption so that if i have to do it with other people how do i select the technology i need more developers i need community support and i need to balance simplicity versus convenience so just realize everything that is simple is not easy simple is not easy most simple things are very difficult to achieve so but in in the in that that whatever that that feeling of achieving simplicity and feeling god i might just lose out on convenience so i need to balance it out somewhere i cannot just you know by any jasakta all right um this was a question that i wanted to answer because i have primarily been in the view camp i always developed in view js i i never did react so i thought okay why not let's let's just go for an adventure with this but where react one was on the documentation and supporting libraries and the you know community and adoption bit so it sort of fulfilled most of this view is getting there now when i started on view there was not much happening on view but right now i see a lot of traction there so anyway i went with react just because buzzword compliance also serverless so you know i just wanted to sound cool this is what the technology stack looks like for ui development i picked a semantic ui for react um and there is this ui component explorer called storybook js pretty awesome stuff for user authentication i relied on aws cognito user pools i wanted to build a cloud native application i wanted to build a serverless setup so i did aws cognito user pools for the sign up and login flows for data persistence i went with aws dynamo db and graphql interfacing um uh because we we all know that javascript is winning ground in most areas right now so i wanted to stay closer uh to that so i didn't want to deviate very far away from it um so data persistence with graphql uh allows us direct connectivity with react or view or any other front end framework without needing a rest api in between so it it just removes that overhead of having a crowd api uh which is which can be easily fulfilled with graphql there are use cases where a rest api is required so it is not a drop-in replacement for rest apis but for most of my use cases i saw graphql serve the purpose for role-based authorization i used something called user pools cognito user pools and there is something called graphql transform so is there anybody who has done graphql in this in this room okay um so i have some slides on the on the tech stack uh at a later stage i don't know if i'd be able to cover it right now but they'll be available for your reference uh on azgeek site and it's it's it's all public domain material so uh for testing i use jest uh for javascript testing uh for ci um i i went with aws amplify console um if people who are not aware of what continuous integration is you push to a git branch and automatically a build triggers and you have this nice app deployed for you waiting for you to test it out so you don't have to actually deploy it manually and the reason i'm sharing these aspects with you is because if you are a front end developer and want to explore full stack development if you are a server coder but if you want to explore ui development if you are a database administrator and if you want to explore api development so there are these easier tools that are available where you can manage this without writing much code so the initial entry barrier goes away um okay a graph data persistence because i i need a inference engine and recommendation engine there is something called a graph database who all are familiar with this term a graph database okay so a graph database is something that what it sounds like like it's a database that stores data in the form of a graph how many people come from computer science background like okay so graph theory boring topic so uh that is applied somewhere uh for data persistence and all those shortest part traveling sales man yadaya kuch bayesian okay byzantine agreement border gateway protocol so all that is is implemented somewhere and it is available for real life use like real world to solve real world problems as i phalto meini tha wo and the querying interface for it the way we write sql queries uh for relational databases uh the graph querying interface there are many i use gremlin and sparkle uh sparkle it's called sparkle uh ui ux inspiration of course uh rehta um i might collaborate with them or ask them for permission to use their ux and develop something on the same lines now uh coming to knowledge representation so i'm not going to talk about the nitty gritties of how i set this up it's there in the slides you can go and refer and you can knock your socks off um knowledge representation um because there is so much knowledge that is there and i need a way to represent it knowledge representation uh happens to be an ai concept where um uh you represent knowledge in a way that computers and machines can assess it and infer something out of it we have a challenge that we have so many scripts written scripts so it needs to accommodate for that there is this uh transliteration and translation example that i wanted to quote so there is this uh denagri script that is written on your right there is a transliteration of it in english script in the english alphabet and at the bottom there is a translation of it um now uh i'll skip this part um now how do knowledge graphs look like so that translates to flower in english and it transliterates to phol in english script in the english alphabet so you can represent that as a graph and then you can add some meta information and say that it's a hindi word this is an english word and that's an english word and flower also transliterates to hindi hindi newspaper and then you can have directions translation is bidirectional transliteration is unidirectional and then you can have like a cycle within that graph where you have multiple translations in the same languages these are labeled property graphs it's a specific type of a graph where you label it that you say that all these are nouns so you can have a vocabulary of verbs you can have a vocabulary of adjectives you can have a vocabulary of any other grammatical construct now how do you create these graphs you create these in gremlin this is the syntax i'll skip this for the benefit of time you just do an add vertex add edge so what these nodes fool push flower these are nodes and or vertices of the graph and the things that connect are the edges so you create an edge you create a vertex vertex and then you connect it so there's a very simple syntax that you follow this is how it looks like it's got an id and it's got some labeled content to it and when i start adding edges it looks like this now what is this useful for so it's useful for traversal so what does flower translate to so it gives me a list of vertices now it's not human readable so what i do is i say that give me the content of it so i say what does flower translate to it tells me push for fool then if i say what does fool translate to so it says push for flower then i say what does fool translate to in english so you can go as granular as you want and you can have a translation and transliteration mechanism setup using a graph database with a simple graph query and all this is all this can be executed using lambda functions while being in your javascript comfort zone so you don't have to move away from it you just have to write it somewhere and you can trigger it from a node js application also so app sync which is a graphql engine it supports integration of lambda functions and you can connect various data stores with it it doesn't it does not have to be only dynamo db it can be a graph store it can be a key value store like it can be a memory store like radius and so on so lpg works lpg is not the subsidy while lpg it's it's labeled property graphs so it it works great for travelers and it's a candidate for oltp systems where a transaction is important online transaction processing so i want a quick translation of something i'll do a traversal now what is the other aspect of it so there is something called semantic graphs where i i say that a grammar can be represented in graph like asts like an abstract syntax tree so tree is a special case of graph so you can actually represent the language in a graph and construct a sentence out of it so this is a ghazal by another by amir khusrowit says so what it means is uh so uh i pick this example because it it connects ecology also like if i were to study climate change i can say that okay palasas stop blooming right now it used to bloom in the 14th century so climate change is real something like that uh then i can also add some information and say that it's a noun in the lpg you saw that it was noun was represented as a label there is no label here then i can make it further complex and i can say that ambua tesu sakalbans are so come from hindi language then i can say hindi comes hindi is also a noun and hindi comes from english language this script that i that i've written and english is also a noun and it comes from english language so there's a self-reference okay so this is a complex graph if you if you compare this with the lpg that we saw this is a more complex graph and it is used to answer more complex questions that what happens in today's season in sakalban what happens in the jungle in the jungle okay so um yeah sure so um i'll have to cut it short because there's no time um thank you so much for being patient one important slide um not really i mean i've covered most of it thank you


Just how big was it for you guys to finally sustain a drive there late in the fourth and capitalized? Yeah, I mean our defense has been doing an amazing job all year and so we took advantage of the opportunity when we needed it most and proud of this team and we went down there. It took a while penalties and you know getting through penalties, them getting penalties, us sustaining drives. You know we left a lot of yards out there I believe but I'm stoked that you know just getting better each week and fighting through adversities each week and I think a big thing that we did that we haven't done is capitalizing on those turnovers and which is I know that it was a play and be you guys want to talk about it's those things are important especially when they give them that load to be don't settle for three get the get the six so I was a really cool cool to see us do that that was it was awesome. Taylor your viewpoint on that fake field role and what happened to anything? Um I think honestly like my job on that is to you know get the guy off the edge and team to the sideline and I did that I think the backer just kind of right before the snappy plus over you know break that hit in the chin it's one of those things man I heard it and I was like oh my I thought he was dead but he's fine I talked to him on the sidelines he was he was a okay so unfortunate you hope you want to get those it's unfortunate we didn't get it and hopefully next time we do get it. Do you ever get surprised by Gravel's aggression? I mean I don't know if like don't play on like surprise and so they they call a call we're gonna do it um you know I mean the look was there we we had it just I think that back was just a little over left I didn't really see the whole picture I was focused on what I had to do so yeah it's unfortunate not to get it but um you know you make the call we just gotta execute it you know they they have that much trust in us we gotta get it done so. Kern maybe had to run a little tougher there a little sharper cut no he just keep on the ball you're doing all right Kern I think Kern's the best player on the team right now statistically right he's killing it might be he's the best putter in the league right so I mean he's a lock the pro ball yeah he's a stud man I mean I don't want to jinx him but the guy's a stud so I like his attitude too he's a good guy is there any relief Taylor knowing that you were able to build upon last week's success and knowing that's kind of been a bugaboo for you guys yeah oh bugaboo that's a fun word um yeah that's very good that's a good job it goes with the voice so I think yes so last year this time we were three and four right once we go to a bi-week and we think we lost the Chargers in London went to a bi-week and then we came back I think we were like three in a row or something like that but there you know the ebbs and flows in the beginning you know it was kind of you know not having a bi-week having to fight through this is the time of year guys start getting nicked up bruised up and so um the guys fighting playing with passion um you know we had an opportunity early in the game to do to do better if the offense has stayed in better drives and there's just always stuff to grow on then we have to do a better job I'll tell you what my first two plays dear god I was terrified I was like this is gonna be the longest year in my entire life the first one I whiff and the next one he jumps to snap like no one's this is I was like this guy so hats off to five eight man in fact he didn't had a first this first couple plays he was definitely outside I was like are you kidding me so uh that's I mean you gotta jump the snap man I mean that's that's a huge part of the game and like I said those first two I mean when I got I'm willing to amend he got me on those first two and you know we just gotta do better early and keep moving the way these last two games have unfolded with you guys kind of hanging on and living on the edge is that what does that say about I guess just this team in general sounds like an 80 song um not ever you don't know you're too old to remember the 90s I mean it's good I don't remember your question honestly but I think the the last two games are defenses put us in positions to win and at the end of the game they've they've just done an incredible job and our offense is slowly getting better but there's like I said there's so many yards we left in the field so living on the edge is fun I mean you'd hope you know we had a lot of opportunities there to make it not as fun to watch Taylor sorry guys it's already just the 90 yard drive what was the mindset for you guys knowing yeah well our mindset on every single drive is to score um but you know it's just one guy making a play here and there and we just kept talking about in the huddle anytime there was a break it was one guy hey we like we just need one guy to make a spark because if we didn't get through that mud and it's kind of like three and now or you're in three four five plays and then don't really go anywhere stalls you know you just need one guy to make a play and we ended up uh we got a few of those man it was awesome and John sorry go ahead no he doesn't know that's a perfect area to end up yeah he was a stud today yeah I think um you know I think that that's a it says a lot about Delaney because Delaney is as a leader on this team he's talking to Johnny all the time their lockers are right next to each other he is um John who has so much athletic ability he's very very gifted and to have um you know somebody like there he is right there and he's got a voice for radio man you hear that thing sounds like Brian Arakpo but for Delaney to go hey maybe do this little bit of savvy vet things to pick those up early in his career um he's done an incredible job man and uh it was a hurt to lose him last year and we're happy to have him back


Auction was sort of dominated at one stage by auction alliance. They were very much the biggest. And when auction alliance shut its doors, it actually spawned a number of different auction houses. And some of the guys went to all cores, some of the guys sort of roll auctions, then you have high streets. And, you know, so there were several different auction houses of several robes at one stage, four cam high street. And you had a number of different


Greetings everyone again. We are recording this. Welcome to the secure retrospective for 11.7 And today we are going to start with Fabio. Fabio, sorry. He's kidding me. Stop doing that. I guess we won't have Fabio with us. We'll speak for him. We significantly changed the scope of the 6666 which is the upper remediate issue. We especially changed significantly the scope after the start of the cycle. So that's a problem because when we start the cycle we commit on something and for that case we didn't know what we were committing to. So there are some comments in the doc from Camille, Tetiana, and me and myself. For the sake of time I will try to submit that. Please feel free to speak out if I'm doing something wrong. We need more time before we kick off to make sure that we go through all the issues and we spot all the missing points and the gas that could happen during the next release. So that's also part of the improvement. And I think we've discussed that a lot already. We've been asking the engineering team to spend some time on the issues for the next iteration. But I have the feeling that just telling it won't solve the problem at all. So we need to change something. And I think the solution for my point of view at least would be to make sure that we end up all development by the end of the month and not the future freeze. So that we have some time to discuss with reviewers if needed to spot and fix bugs in the current iteration before it's getting shipped to work on all the things that would be left over for the next iteration. What do you think of that? I see everyone nodding. No one wants to comment. We still have some time to kill because Olivier is the next on the line. So I will move his points. Is Lucas with us by the way? The IP one? Yes, I'm with you. I will move your points if you don't mind. No worries. Yeah, what went bad? We had an issue that was catch late. That's the one that was resolved today. And I don't know if the better solution would have been to not ship the project filter because we didn't have enough time. Sorry, brain is already farting. And yeah, and I also think there are some UX things, but it's good. It aligns with our iteration value that we just can go and better things up in the next iterations. Yeah, Lucas, I have a ticket in for that. That's a line with the ticket you put in for the UX stuff. I think we did get crunched on time again. I think the GDK or some issues with how data is coming in and we can see it was a problem. When I reviewed it, I don't think there were more than 20 projects to see, so it's hard to see that issue right away. But again, I think there's a bit of, there's some issues getting parity with what we're seeing in GitLab that's live and what we're testing against or developing with, right? So it's a common mistake because for us, it's because of the missing seeding. It's hard, you know, and we run into issues, whether it's just UX or also performance issues when suddenly a project has like 10,000 vulnerabilities or something like that, right? So that just happens and you just encounter these issues once you actually use it. And I mean that people are encountering these issues is actually good because it means they started using it and they found something. I mean, we will never be 100% safe. And I mean, issues around not having anything or around having too much are always there. So, yeah, I just wanted, because otherwise I'm just impulsive, I just wanted to put something on the bad side of things. Maybe Olivier is here yet and yeah, we can switch over. And I think it's converging also in the idea of having this last week between the end of the month and the future freeze to do that kind of things. If we have something deployed on staging or dev, and you can ping me on this, it's really good to have another pair of eyes on that kind of features because as you can see with that issue, with just a few seconds and a few clicks, I was able to spot that kind of bug. I mean, I'm not saying that I'm better than the others to spot that kind of bugs, but I'm coming from different contexts. And just stepping back from time to time, it's good to spot that kind of things. So, I would like to spend that time at the end of the iteration to really test the feature from end-to-end without anyone on my shoulders, behind my shoulders saying you should click there. I should click myself and make the whole process, the whole user experience myself. That's the best way to spot gas in the UX in the feature itself, the bugs and the things. I'd say that this is exactly what the review app is aiming at, because I think we should do that at the time of merging the feature, at least when it's switching the final major request, because we have a lot of major requests right now. So, just before closing the issue, the last major request, the review app for that major request should really be the place to do the QA of a feature. I mean, to be perfectly honest, I think it's fine like it happened with the project drop-down. I don't think it's fine, we catch it so late. I think it's perfectly fine that we merged something where we just can filter for many projects and then iterate on it. And it's just a bit unfortunate that we had to do another MR that needs to be picked now by the needs managers, but other than that, I think it's fine. And you're completely right. Review apps, that would be amazing if we could leverage them more early in the process. That could help, but not in that case. If you take the review app for the 6666, just a comment. Excuse me, Philip. Just a comment on review apps. I don't find them usable actually, at least during the last week. They are hanging constantly, or giving me 500 errors. Is it behavior actually common and widespread? Or it's just me? Now, the QALITY team in the discussion group yesterday talked about that. And this is actually one thing they are focusing on to improve the reliability of the review app, because it also implies some smoke tests, because some of the test jobs are running on the review apps too. So they will be fixing that. And the other thing that is currently blocking the security is that it's something that we work on in this situation, is that we don't really see correctly the review app with the security feature, what the security feature needs. So it's not the best place today for us, but it's really the goal we should aim at. Thanks. That's exactly what I wanted to add. We don't see that correctly. And in the case of this issue, we are also waiting for some other features to store the data in the database. So even if we have the review app in place, we wouldn't be able to face that correctly, because the database will be pretty empty. This is something that we should improve in the future. Olivier, you have two next points, if you want to talk to them, please. Yes, the first one, we are aware of it, but it's worth mentioning that we delayed way too much the results of the dependency scanning project again, because it's the second time. And this is not really bad for the end user, for the customers, because we are still in time for the 22, but it really makes the release process and the QA process to hang a long time. And we obviously are doing mistakes, like I did. In this case, I forgot to enable the feature flag to enable the dependency scanning on the production environment. So it just went out of my mind. It was before the Christmas holidays, and we just figured that this week, you figured that Philippe went trying to display dependency scanning issues, vulnerabilities on the group security dashboard. So we shipped on production, because it was a race candidate. So in production, we shipped the adding of dependency scanning vulnerabilities to the group level security dashboard, but it was empty. So it's not a big issue, but it demonstrates that we should force ourselves to stick more to the process and avoid delaying. Even if it's technically possible, this should stay really rare, and we should take more care about staying in the process. I'm just keeping seeing the same thing again. So I would just stop talking. Actually, you have the next point. Did you cover that one? Yeah, sorry. Yeah, the second one is about storing container scanning reports in the database. So it was merged without being reviewed by someone else's team, and it actually went with some flows in master. So we added a feature flag in the reach right before the code freeze so that we are able to do some fixes before the 19, because when you are using a feature freeze, you are able to do some changes until the 19th of the month with your approval of the risk manager, of course. But in the end, I think we finally disabled it, but the decision is not yet taken. But we may finally disable totally container scanning due to other issues, and because you also figured out that the model is not the best right now to cover upcoming needs for container scanning, and it might not be a good idea to start filling the database if we want to change it or to add monetary properties in next iteration. Yeah, makes sense. Anyone want to comment on this? Okay, let's move to what can be improved. I mean, they're forming the engineering evaluation with front and back end. I guess the only thing we can change to improve that is making sure that we keep the last week. If you see something else, feel free to add that as a comment in there. Otherwise, just saying it, I'm really not sure it's going to solve the problem. We've been there, I think, in many retros already, and we have so many issues that we don't have any spare time to work on what's coming next. My suggestion to Fabio was to create some kind of office hours like it was suggested for the UX, and make sure that we have one meeting per week to discuss on the next issues of the next iteration. That's the only way for everyone to come with their homework and actually discuss about that. Otherwise, I'm completely fine saying you should do that and please do that for the next time, but I have the feeling that in the next race role, we will have to solve the problem. So let's see how it's going. I think it's also due to how our team is made and what we're working on. I mean, for the code diff, the feature that was delayed or the scope was reduced about providing the patch for dependency scanning updates, it's something really complicated for people not familiar with this kind of feature. And on top of that, we are also, I said, a new team, not really familiar also with the GitLab code base. So maybe with the upcoming changes in 2019, we will be more focused on a specific area. So we will have more knowledge about the upcoming features because some of the issues that are planned for the next iteration, we are just totally blind about how to do them. And that doesn't help on planning them correctly and estimating them correctly. Yeah, I believe it. There are two things that we can add also on this. Maybe we'll add that to the doc. The first one is sometimes we are expecting some other dependency, a component that is developed by another team, we don't know if it's going to be ready or not. Sometimes it's, for example, the reports, we were waiting for them, not for that feature especially, but you see what I mean, we were waiting for the reports, and if they are done, we can use them. If they are not, we need to plan B. So that's a lot of expectations and that's a lot of planning in advance. So sometimes it's just better to wait for the last minute to have all the details. And the second point is we, as you said, we rarely spot all the edge cases of a feature before starting to work on it. And I'm not sure that this is something we can work around or find something something better to do with it. If we keep switching between subject, we count, there is no way we count. I mean, when you're playing with Seth and the next iteration, you're playing with Dast, you're playing with totally different project and features, and it's not easy to think in advance about upcoming issues. Yeah, I agree with that too, especially because all of the different reports act so differently. So when I designed them, I designed them to output to the user the same way. And as we've seen in a few new issues, it doesn't really work like that. So it's even hard for me to understand how we should be showing this data to the user that's beneficial if it's kind of very different, right? Yeah, while I'm writing my comment on, do you have the next point again on the feature flags? Yeah, I just want to have an advertised feature flag. And so I already talked about it in the weekly, but it's worth talking in the retrospective too. Please, if you're working on the GeekLab raise application, of course, because we don't have such option on our site project. But please use the feature flag. It's really handy, and it allows to, it's not a good thing to rely on this, but it kind of helps in some cases. So as I said, you can kind of skip the code freeze pressure if you have your feature behind the feature flag. It's not good in term of procrastinating and doing the job later, but it's good for avoiding the review rush and merging things within the hurry because there is a code freeze date. Instead, you can have one or two days more to correctly review and eventually fix some little things before merging. So this is really easy to set up. Please use it. And it's really handy. So the default approach for us is to cover any new feature with the feature flag while we're in alpha state. Even if we are not in alpha state, because it's something really rare at GeekLab to use the term alpha or beta on the feature, because we are constantly iterating on every features, actually. So kind of everything will be alpha or beta. But yes, basically, if you're introducing something, you're better introducing it behind the feature flag. I also forgot to mention one important thing is about the default enabled option. You have to keep in mind that the feature flag, you can act on the feature flag on our own environment, like staging or the production environments, but you can't act on the feature flag for the on-premise instances from our customers. So it's really important to consider that if you set a default enabled fast, false, sorry, it will be disabled on all our customers on-premise instances. And the opposite is true. If you've said default true, like this is the case for continuous scanning, I'm currently have a match request open because I put it with default enabled true and I disable it for the production environment, but I have to submit another match request to remove the default enabled true because we don't want the feature to work on the on-premise instances. So please keep this in mind when using the feature flag. I mean, I think it's more about practice. It's whether you think that something should be enabled by default or whether you should explicitly enable that.  It just makes like configuration maintaining and ensuring that everything is on the green path. And like if you see the staging is okay, it basically means that you don't have to do anything else on production and like you know that it's working. If it's not working, you just can disable this feature ahead of the time before it gets deployed. But if it's still working and you don't manage to fix that, you can quickly prepare a match request and still match it before we finish that, like before we finish release the actual release, not a release candidate. So I mean, it's up to like to the example. If something like, I would say if something is finished and you assume that it's finished, it should rather be enabled by default. If something is like in fly, it should be disabled by default because this piece alone doesn't make sense to be enabled. So I think it's based on basically on how complete is the feature. If it's like the incremental iteration that is not finished, I would say disabled. If it's done, just enable it by default to not impact later on having to remove that, like change the status. Yeah, that makes sense. All right, for the sake of sign, and we have the opportunity to keep that meeting under the 30 minutes. So I think we are going to head for that. And we just have three points in what went well, and we all will be able to attend the company call because there are a lot of annonces today. Let's start with Tatiana. You wanted to talk about small remarks. Yeah, so we have this big feature about filters in security dashboard, and because it was exploited in a smaller task on different MRs, it allows us to iterate inside of the iteration and synchronize with front-end. So it's not good that there is no same because maybe he have some different vision of this process. But from my point of view, it was great to have small MRs. Great point. I didn't tell my comment in the doc, but Fabian is not there, but Fabian is also a great job with the auto-remediate by splitting the work in many small MRs, even if in the end we just had one big MR. But we had the chance to see every step or every part of the feature in a different MR that was super useful, even if in the end we were just closing them because they were not adding any value or they were not working as they know, but that was super helpful. We should do that whenever we can. Lucas, I please. Yes, so despite all changing up the scope and everything, it's still landed with docs, with screenshots. That's awesome. I want to thank everyone and it landed despite the holy days, which is awesome, which is my next point. Yeah, that's really interesting to me because we basically just normally would have had, I think, 21 days in the release cycle, working days and basically taking off Christmas and New Year's means five to seven days taking off, which is like a quarter of the release cycle. So yeah, that's that. Any comments? I just wanted to add that this is also this month that we started the reaction rotation, which means having one team member that is not working on deliverables. But on the other side, we had new team members coming. But that's still a point. All right, is there anything else you want to mention to discuss to improve? I think we are in January. We'll take the two minutes remaining or four minutes remaining. I really like the idea of having once a year of meeting with the team. Very casual. The best would be a retreat, but we're not there yet. I don't want to organize that right now. It's going to happen in 2019. Don't worry, but not really soon. So I want something earlier than that to see what we could improve, not a withdrawal of the previous iteration, but the withdrawal of the previous year. There are probably a lot of areas in QA or I don't know, in the processes that we can improve on. We never take the time to discuss that kind of things quietly. So I will organize that if you don't mind. And I will invite all of you, we will have a one-on-one session with a kind of brainstorming session. And I'm pretty sure that a lot of good ideas could come from that kind of meeting. Also some new features. This is the kind of meeting where when we spot something that is missing for us, we can convert that to a feature that will be helpful not only for our team, but for a lot of customers as well. So this is something that I will put in place and I will ping you once it's there. And with that, if you don't have any more questions or comments, nope. Thank you very much. Enjoy your rest of your day and see you in the company call. Bye-bye. Bye-bye.


So welcome to palindrome day in all three major system the first time in over 900 years It'll take a few more than a hundred for next one Not that anything other than isodates matters, but like we have it in all me three major ones Same as last year same as the one before same as for quite some time now We are the world's largest conference and you are part of this We have a ton of events. We have endless So I need to read it out. Yeah, we have eight hundred ninety three events 450 hours of content eight hundred thirty six speakers 67 deaf rooms so 72 tracks 63 stands all of those numbers went up, which is good We saw quite a few less Mech addresses this year for a simple reason that we got better at filtering out the stupid shit which people were doing And also people played less so we had roughly 11k mech addresses on the network We strengthened the network protections even a little bit more cause we kind of needed to but that works So we almost doubled the amount of swag which we had Still things were gone on for noon of the first day basically Some things reached even into the afternoon, but we need to scale this up even more We are doing this slowly cause we don't want to get into a situation where we have to throw away tons of t-shirts and such But yeah, we obviously need more this year the record is the three XL t-shirt which ran out to Saturday 1400 So food Yeah, it's tons of food should I read it out show of hands good Very large, thank you to the sponsors at least the major ones I'm going to read out the rest as well. I'm going to read out of London. So you'll be for the venue. Thank you very much Then as corner source sponsors Google and Red Hat Main sponsors RM AWS back market Cisco code thing CNCF cold draw IO of Facebook open source github Infomaniac and OpenTab Now this is the most annoying slide of all cause I listed all the names of all the volunteers and you can't read them but it's six full pages of people Any volunteers not busy are more than welcome to join us on stage and get your round of applause directly in person Same for Steph, which you're not seeing on the slides, but also. Thank you to Steph Thank you to all of you cause without you. This would be kind of empty and boring. So thank you Same as every year, please send feedback to feedback at for stem org also every talk on the website has a feedback link so you can just go there and Give feedback to talks to anything like we really need this course This tells us how did you find all all the talks all the content which in turn helps us? Make next year's edition even better If you're a speaker or a deaf room manager, you should have gotten email with your talk to review your talk Please do so if you didn't yet get email, please send email to video at for stem org and we can resend the link to you It's a ton of work to make all this work So when you leave, please take all the trash you see if it's not yours. I really don't care Take it and and put it in the bin Anyone who has some time, please just group up here to to be assigned with cars for for teardown Of course, it's really a lot of work and even if you help just half an hour on our that's that's super helpful People who stay here Any network cable you find in which you are allowed to tear down you can actually keep Yeah, meeting point for anyone wearing an old FOSDM or OSDM t-shirt is 18 1815 west side of Chanteau the main entrance And we have cake up here. We have cupcakes on all four exits See you next year