Buenas tardes, thank you for coming. This talk is about how to introduce micro-service and serverless architectures in Python Pro is in general. I will try to explain this one with practical examples. For the side whether micro-service or serverless architecture operations I will shoot for your architectures or not. Basicamente we start now with a couple of definitions, what are micro-service and serverless as common samples. This is the main points I am going to talk. First I will talk about micro-service in Python, what are the frameworks and the tools that we have in Python for building applications following this type of architectures. Later I will introduce basically serverless, what are serverless and functions as a service, the main points of this type of architecture. Later I will comment what are the main Python frameworks for working for example with Amazon with services from Python. Then I will center into tools that will comment like SAPA and Chalice. And finally I will try to show some demos for deploying AWS Lambda functions from Amazon console. This is a graphical view from Google Trends where we can see the evolution of pom steps. Basicamente micro-service are at this moment are over serverless, but the term serverless began to be no more at the beginning of 2017. Basicamente no days micro-service is a more used term than serverless, but in the next years maybe serverless architecture, serverless topics will increase can equal input of micro-service. This is the evolution with I think that micro-service in the next years can equal or put over micro-service in the next years. When we are talking about micro-service, basicamente a micro-service architecture puts each functionality into a separate service and scale by distributing the service across servers. Micro-service architecture exist when your system is divided in small responsibility blocks and those blocks doesn't know each other, they only have a common point of communication. Generally a message key we can, in Python for example, we can find some tools like Celery, Redis, Rave MQ for example for developing our architecture with micro-services. In general if you are welding micro-service in Python for example we have these two frameworks, tornado and twisted, basicamente these two frameworks are very useful when you have, when you increase the number of concurrent requests and it's important that these requests are calling in synchronous mode and these two frameworks are very useful for this, for when you have a very, a lot of concurrent requests and you have these requests in a specific process, in a specific thread, in a synchronous way you can use these frameworks. With Python also we have a classical Benigno Asingayo and an HTTP for example in micro-service architectures, asynchronous calls play a fundamental role when a process used to be performed in a signal application, no implicate server and micro-service. Asynchronous calls can be as simple as separates a thread or process within a micro-service by its application. In this example we are using Asingayo and HTTP as the main model for doing these tasks in our application. In Python also we have, we can, we can find frameworks like Flash or Django frameworks. These frameworks basically are oriented to developing our REST APIs and communication system based on HTTP. With this perfect we, for welding our micro-service architectures. These two frameworks are the most known in Python ecosystem for basically for work-read web projects. In my opinion we have to, to show you one, one of these between the un one flags. I think that the biggest option is flags maybe because it fits perfectly with the principle of unirresponsibility in micro-service architecture. Flags also allows to be more or terrain for example if you want to create an API management or working with non-relational database or other systems like GraphQL and now I will command this kind of architecture with GraphQL. For example for the performance point of view there are some studies that say that flash turn out to consume 8% less memory and half 6% response time faster than Django. And in this study and from the performance point of view in terms of memory, CPU and response time flash has a better performance than Django. And from the, and we are developing our architecture thinking in this kind of tool. We must keep in mind that when we talk about micro-service it's usually combined by a greater consumption of memory and resources. And the performance is important to know this aspect, study this aspect in our application. Another type of architecture we find in micro-service is the use of GraphQL. GraphQL brings a micro-service arrangement such a data ownership separation, granular data control for execution and service coaching. Another benefit of adopting GraphQL is the fact that you can fundamentally assert greater control over the data loading process. Because the process for data loaders goes into its own point, you can control in a granular way how data is transferred. And GraphQL provides in this aspect a good solution for doing this kind of applications. Also we can combine the combination of GraphQL with Python basical is designed to replace REST API we can build with flash or Django REST framework we can use the combination with GraphQL with Python. What are the frameworks that we can use? For example Graph in Python is a library for building GraphQL APIs in Python in an easy way and it can integrate with applications by in Django flash or an SQL alchemy for example. Basicaly Graphen for example allows you to define your models, define the attributes in your model and I saw per square is to get the data for those particular models. In the same way that we have the Django OREM for example, we can use Graphen to define our models and schemas and interact with other phase were relational or not relational. Another type of architecture that we can build with micro-service for example is using the combination of Django and Celerity for example Django can emit many tasks for if we have an architecture we can use for example Redis or Ravi MQ as message broker and Celerity basicaly what provides is an asynchronous distributed task key and we can pass the mesas to the application. Celerity is a good solution for real-time operation also but supports scheduling as well and as a command is useful for Celerity is very useful for background task processing and you can communicate with Django through the message broker like Redis or Ravi MQ. Another solution that we can use in Python is using the use of Celerity MQ Celerity MQ provides a building blocks to develop a scalable distributed system on top of sockets. Basicaly we can build for example a simple public subscribe micro-service for example with Celerity MQ on Flash we can build in a simple way this kind of architecture for example this can be our server or publisher in this example the response of service call is published as a message we have a mesas and the mesas will publish in the socket that provides Celerity MQ and later our client will write the mesas from this socket and the application will respond to that message and this is the client part where we can exchange our Celerity MQ client or subscriber in this example we have a client that will have the init method with the constructor where we initialize the host, the port and the context for subscribe the client and basically the client is subscribed to the channel where the server is sending a message and when the server sends a message the client responds calling with the resist message and connecting to the subscriber topic well in general the idea with micro-service what is the idea is to break the monolithic architecture and separate each is relevant functionality in a specific component micro-service also has software in stereo and improve incrementally in simple test as the service are the couple from each other it's very easy to upgrade and improve service without causing the other to go down micro-service also can be much better libres via container for example with docker we are working with docker or cobertness solution for example micro-service are very useful solution because provides an effective a complete virtual operating system environment processa isolación and so on well now I am in commenting the serverless part the serverless well I will start with the definition this is the definition that we can find in Wikipedia I think basically serverless computing is the practice of building and running service and applications without having to worry about provisioning and management servers basically what we are doing is the code is running in executing environments that are managed by cloud providers such as Amazon, Google, Microsoft and so on will serverless you can deploy your code in the cloud without worrying about instance capacity basically is automatically managed by the cloud provider in a completely transparent way by the developer well serverless architecture basically the serverless architecture that I am going to comment is based on function as a service function as a service means that every serverless model that you are programming has a function and this function is execute on the cloud basically provides features like scalability, provisioning deploying all these things that you normally are executing in your local machine you can use these cloud providers for executing this command and another feature is that you only pay for the time your code is running in the server cloud provider serverless computing basically the best feature that has is that allow us to focus on building the application without managing infrastructure and what provides to the developer is the developer's focus in the inputs the inputs of the London function and the logic in between and the rest of the of the French2 servers memory, CPU the rest is all managed by the cloud provider and you only need to focus in the important of the application the logical of your applications and the inputs and the outputs in general serverless functions these are use cases for example we can build recipe is in the same way that we can that we can find we can build with flash or dango res framework we can also use this kind of for building chatbots for events also it depends the cloud provider for example Amazon provides the S3 event for 5 processing data ingestion also we can is very useful this kind of architecture for data and S3 processing IOT projects insider handling because for example Amazon for example provides a cloud watch event log and another time of tax related with schedule tax like monitoring or attempting all these are use cases that we can that we can find in serverless for managing the projects in general ladder will comment the drawbacks of serverless but in general serverless functions are well suited to operations that take a very short time to complete and no resource intensive because why because a cloud provider normally impose execute on time and memory limits with mean that if the workload is a long running process a conventional server model may be more appropriate than using instead of using a serverless solution we can we need to use a conventional server because our process our thread or our application execs the time and memory limits imposed by the cloud provider this is another example that that provides for example with Amazon and this is a sample for processes and serving multimedia with AWL circuit this is popularized by Amazon basically is an image processing event handle function the function where the function this is our function and the function is connected to a data store such as Amazon S3 that emits change event and each time a new image is uploaded to a folder in S3 and event is generated and for water to the event handle function that generates a zoomed in image that is stored in another folder and in that way we can see that each time a client upload a multimedia to the S3 the S3 is the data storage of Amazon and each time a client will upload a multimedia to this data storage the process is executed is the multimedia event is a video the land of the function is responsible to call in for example elastic transcode service this is the service that use Amazon internally for converting processing video and so on and if we have an image then we call the Amazon the other service that has Amazon for this task and basically all this graph is our function and depending the events that produce it calls one side or another the benefits that provides serverless solution basically you don't have to worry about clusters, load balancing you lower infrastructure cost as I commented before by developing a serverless system the infrastructure cost can be greatly optimized as there couldn't be a need for servers to be running permanently and the server starts whenever the function is triggered or event is produced and stop whenever the function gets executed successfully and the draubash also we have a little draubash for example draubash related with the bug in the plugin and monitoring but well the plugin and monitoring for example the behavior of multiple functions maybe can be more complicated that monitoring a micro service for example in this kind of architecture for the bug in for example we have a good support in general there is a good support for most tools I want to comment later most tools include visualize logs in different development environments for example in Amazon we have cloud watch logs for getting metrics monitoring and debugging but well there are many tools but it can be better in the future another draubash that we have is the tools around the development automation of serverless there are many developments but many many of these tools are still in development are in futures and so on and another draubash is we have no control over the containers because what are doing these cloud providers when you call when you have a landing function in a cloud provider internally creates a container for executing the code and so on and we have no control over this execute on environment in the containers well this is regarding the cloud providers the mass no maybe it can be Amazon because we have a lot of service one of I am commenting now is the lambda service also we have Google cloud platform Microsoft Azure for open source solution we have Apache OpenWish and Qubeless Qubeless is a serverless framework for Kubernetes we work with Kubernetes we can use Qubeless for a serverless framework for doing these tags and OpenWish is an open source project for IBM basically provides native support for many language and supports many languages and run time via docker containers basically these two frameworks are designed to be deployed over for example we are working with docker we can deploy over docker or Qubeless clusters and they offer a serverless open source environment where we can execute our code and they support many languages like Java, Python, Node PHP and so on well and at this point I am going to center now in the lambda service for Amazon lambda is the main Qubeless service dedicated to serverless computing it is integrated with the rest of Amazon service like the AP Gateway DynamoDB notification service S3 and so on it's a service basically it's a service that allows you to write Python code that gets executed in response to events like HTTP request or for example when we upload to a file to Amazon storage we can write our functions for responding to the events like this what is the basically with Amazon we have two types of calls we can to approximation when we are programming with Amazon we have two approximations the synchronous that implies that we have a res API and through the AP Gateway we involve lambda functions behind the API we have the classical request response and the other approximation for working with with lambdas is the asynchronous way that implies that there is a lambda function that is listening to events for example with a file it should flow out to storage in Amazon or when we get a notification in Amazon notification service and when this produce this action then is called the lambda function lambda functions are equivalent to sellery workers if we know this kind of architecture if we have work we sellery lambda function is the equivalent the idea with lambda functions is that they can be triggered asynchronely via some AWS events basically the benefit of running a lambda function is that you don't have to to deploy a sellery micro service that needs to run 24x7 to be a message from a Kiwi a lambda function is a handle function that Amazon can invoke when the service executes your code this is the basic syntax the real syntax structure when created a handle function invite we have as parameter the event and the context the event is the parameter for passing data to the handler this parameter is usually a picton dictionary type and the context is this parameter provides the runtime information to your handle function and the return value of this function can be anything from bashing values to dictone edis converted to JSON stream for example how we can create this function in Amazon for example with the AWS clai command from this client we can create a lambda function basically we provide the region of our account in Amazon the C file with our code our role the run time with the pinton version that we are executing another parameter related with memory and time out and what that is this equivalent to we go to our console in Amazon this is the web interface that provides Amazon to creating a lambda function basically we can deploy our lambda function we are adding a C file and from the configuration point of view the most important is obviously specify the run time with python the python version what are the main frameworks that we have in python well for simplify the development process of lambda functions there are some frameworks and tools released from developing are managing your python serverless applications I will focus in two main sapanzalis but there are many others like serverless lambify and python lambda basically we are working with lambda functions important to know the Amazon epigate way this service lets you define an API that is full managed by the by Amazon and provides offers a variety of way to control access your APIs for example the serverless framework this is a framework that is built in JavaScript and requires Node.js you can install it via npm and so on and provides a boiler templates for creating our projects well I am going to start now with STAPA STAPA basically is a framework that in an easy way you can deploy your python applications with AWS lambda and IP gateway with STAPA each request is given its own virtual HTTP server and it communicates with the Amazon epigate way for doing this control basically you can communicate basically it creates a virtual server in the cloud and it executes and it creates an API in Amazon epigate way basically for working with STAPA STAPA provides a common line tool for lambda functions and for developing for deploying for working for example with flash and dango it has a lot of features in this example we can see that in an easy way with STAPA init command this tool provides an interactive wizard that helps you to set up STAPA projects quickly when you are first getting started the command line tool as you simple questions for example it detects if you are working with flash or dango projects it has the capacity to detect automatically this feature and the security of this command as you about the configuration environments if you are working in develop stage of production and other variables like your main lambda function and in a simple command you can deploy, update or destroy an application for a specified stage that is the development stage or production once you create your project you manage the configuration directly in the SAP settings file basically this is a simple JSON that stores your project for your project configuration for a stage and in retours information about region executon root time executon and application settings basically when you deploy SAPA automatically it creates the package it will load the file to amazon storage data storage creates and manage the necessary policies and roles on the users and register all information in the API gateway this is an example where we can see that with SAPA basically we need we need a virtual M and this is the hello world for SAPA execute with a simple command SAPA deploy and development automatically package create the API gateway routes and deploy the API gateway and you have the role where the service is working also another interesting feature that provides SAPA is that offers the possibility to execute functions in a synchronous way in this example for example you have a Flux API to make an order you can call a function in a completely separate lambda instance by using the SAPA syntax decorator and you can set all your lambda functions in the same way that you can configure your accelerated workers this is the equivalent to configure the accelerated worker for example and the solution that we are going to comment is the chalice chalice is a micro framework for managing the the lambda functions and the API gateway in the same way that we have seen with SAPA chalice provides a command line tool for creating the plugin managing your app the project is available in PyPy you can install with PyNistar and available in GitHub basically provides chalice enables a single play page HTTP handling and you can use Python decorators for example the root decorator that automatically builds a routing table for the lambda function to invoke functions based on the request pass and method in this example for example we are declaring our a function with the uproot weather and pass a parameter the city for maintaining the weather for example we can build our recipe in a easy way with chalice for example we have a classical recipe for getting updating or deleting objects in this case for task for tall object the code is very simple for example we only need to annotate the function with the decorator root and specifying with the method in the method parameter we define we want to get a post, a delete or a port and basically for doing this task we can use for example in this case we are getting the torch for a database in memory for example and for update we need also the id of the tall below and we can see that we pass the id parameter for modify the tall information and we can see that in a easy way we can develop our recipe and deploy automatically in in this case chalice provides many options this is the options that provide we can deploy our application in local in localhost we can create a new project we can generate policies and this is basically what this does chalice when we made a chalice deploy chalice internally update the random functions send the change to lambda the epic way where the cpi already found and deploy in the environment and finally if we want to test this kind of solutions in our machine with docker for example we have a collection of containers for testing IWS lambda environment in particular we have the docker lambda image it is a sandbox local environment that replicates the life AWS lambda environment almost identically including software, libraries environment variables, context objects and mihaibos and finally for commenting the cost that suppose using this service we have the service call is basically a cost calculator where we introduce the number of executions the estimated execution the memory it will include a free type because Amazon includes a free type for testing this this kind of service and depending what are the the input of this of memory and so on it retours the cost the possible cost of using this service and you can compare what is the the most cheaper solution for making a provision of your of your project for example for learning this time of architecture we have most examples Amazon provides blueprints are examples that are configured that are pre-configured basically are configured templates for learning this kind of architectures and in the serverless G hub we have most examples for learning this kind of of solutions we can find how to program our telegram bot for example in Amazon develop our API our REST API with DynamoDB for example that is a database for Amazon and finally these are the reference for making the tool and that's all these are for conclusions basically serverless architecture using serverless we can improve microservice architecture eliminating the need to have the service algo effective and well serverless provides many advantage and the use of serverless computing is increasing in in in energy ads and that's all, thank you we have time for maybe one question regarding this kind of architectures what I found with my team is that we had an issue with external dependencies because usually when you are in Amazon or you are in Google Cloud when you depend on third party libraries that sometimes are compiled they really deny you to install do you have this issue in some point or an issue Latin with third party libraries dependencies when you get into this architecture where you are doing pure Python are you able to import third party libraries because my team has been always having trouble with this I have not been in trouble with third party but I mean some pypy compiler modules or whatever you can install whatever library that you need if the dependencies is in pypy there will be no problems for us in Google Cloud it failed basically failed so that's what I mean and how easy is to remove from this kind of architecture and to write on if you say it's a mistake for removing this project provide the command tool for example getting out from Amazon and moving to another provider or just moving into your own server you need to run our on premise on your servers I'm afraid we don't have time for any more questions let's give another big round of applause to Jose


Fluid management is an important part of perioperative care for patients undergoing neurosurgery. It is necessary to maintain normal blood volume levels and avoid excessive osmolarity. The best way to do this is by administering the right amount of fluids at the right time. There are some differences of opinion regarding which type of fluid should be used and how much should be given. Recent studies have shown that certain types of fluids may be more effective than others, but further research is needed before any definitive conclusions can be drawn. In general, however, it is important to ensure that the patient's body is well hydrated throughout the surgery and recovery process. This article was authored by Tihariu.


Good Friday morning, I'm Jay Fidel and it's Friday and you know what that means. Trump week and we have a wonderful list of of points to cover this morning. Before we do though there's one point of interest that we want to bring to your attention. Cynthia and I have both looked at this and we've found it excruciatingly funny. Now it seems that parodies are sweeping the nation and one of the big parodies is Randy Rainbow. Randy Rainbow has dozens of parody videos on YouTube and they're hysterical and we want to show you one of them just as an example of the quality, the production quality and the humor and you know and the care and concern that has gone into these parodies which makes them so funny. There are others but let's look at this one from Randy Rainbow which is so part of it. It's a very stable genius. Whatever girl. What a way to begin a Friday. Now that's just one example of dozens that Randy Rainbow had, I don't know what his real name, that Randy Rainbow has on YouTube. There are others too, the guy named Don Caron who has a quartet that has these very funny parody songs. But you know the news item here is that Randy and others are making parodies that are very high quality and they are very popular. They're getting millions of views on YouTube and they make fun of you know who. So it's perfectly in line with our Trump read to report this to you and tell you there's something sweeping the country on YouTube as parodies. What do you think Cynthia? I think it's genius and I think that it's genius. I really do believe it's genius, yes. Rimes with never mind. I love the way it's the parody on real things. So it's funny yes but it shows kind of the ridiculousness of this president which is what I love about it. I think that's just like I said I think it's genius. Well it's sweeping the country I think just by the number of views and the quality of these things is just fabulous and you know the power of derision, the power of parody, this has got to take a toll. It's got to maybe reach the base and make it clear you know the absurdity of what has been happening and they cover all kinds of events you know. The other thing I want to report to you Cynthia is that there's a you know wikipedia. A lot of people put wikipedia down you know sort of all-purpose online encyclopedia but there you know there is one I call it an article it's more than an article though it's a listing of all the lawsuits against Trump now about policies and actions that he's taken which are unconstitutional which are in violation of law and it goes on and on and on with citations so if you're a lawyer or if you're interested in learning about all this litigation or just seeing the magnitude of it go on wikipedia and look up you know Trump lawsuits or Trump litigation you'll find this right away or Trump court cases you'll find it right away and it's it's it's updated like daily right so this is what you want to look at and we should look at it from one of our shows if you want to know all the lawsuits that are that are happening a lot of them have not been resolved and there's a pipeline of them and when they start getting resolved we're going to see some interesting developments worth talking about here I agree I you know after I looked at those when you sent those to me I looked at that and I decided I wanted to see okay so how many lawsuits did Obama have in his eight years 35 all totaled from the GOP against his executive orders I didn't get a chance to look and really see how many of them were favorable for the GOP or favorable for Obama I didn't get to see that part but just as far as how many were brought against him there's 35 all totaled in the eight years Trump has 45 and he hasn't even been there for four years yet so I think that really says a lot just how unbalanced it is kind of look at the subject matter I mean I don't think that uh I don't think that the suits against Obama were were founded in violations of the United States Constitution no I don't think they were a section on this website a number of lawsuits right based on Trump's alleged violation well it's more than a legend violation of the various provisions right in the Constitution well the they separated out to in what is that article you something which is really great they separated out between the sexual abuse ones that are against him the ones that are against the emoluments the ones that are against the campaign finance things there so they're all separated out too so they're easy to really you're following a given area right of lawsuit and easy to find the suit that you care about but suffice to say there are tons and tons and they have been accumulating at a rapid rate I would say the rate has been increasing over the last few months anyway let's talk about our our observations of what Trump has been doing this week there's plenty of it and try to connect the dots the first topic and this is your agenda Cynthia and Cynthia Sinclair okay Trump wants putting back on the G seven hyphen eight what's going on there are so many lies that he told around this whole subject to and now we're finally starting to hear from other world leaders so we really know what the truth is he was saying that everybody's behind him they're all open to it actually no they're not open to it they are absolutely adamantly opposed to having him come back they excluded him because he invaded Crimea right so um he's still there he's still occupying the place it's not like he said okay I did wrong I'll come back I'm sorry right no he's still there he's still in Ukraine too Ukraine he's still doing more Ukraine and and and what's interesting just a little footnote is that Trump has stopped American aid to Ukraine yes just right last couple days and you know one of those catch me if you can sort of things where he doesn't really announce it because he doesn't have press conferences he has a helicopter struts so to speak so he can use the excuse I didn't really hear the question correctly does anyway so yeah so it's emerging that Trump is Putin's best friend yes and they got a relationship but oh yeah in the in the Randy rainbow he calls him he calls Putin uncle daddy or something Trump's daddy Trump's daddy right yeah well you know um there were they did take a vote six people I mean six of the leaders said no first Trump was all by himself out there he created a rather large argument the very first night of the whole thing um and then he says well Putin outsmarted Obama Obama should have kept him from doing that but he didn't and Putin just outsmarted him so we can't really hold it against Putin because all he did was it was really Obama's fault everything's always Obama's so ridiculous so there were some really big lies that he told about the summit when he was there um the first one was there was no fights when in reality there was bitter disagreements throughout the whole entire thing when he was being questioned about North Korea and he's talking about what a great guy Kim Jong-un is and how what a great relationship they have with him and and even his wife even Milania is very fond of him and all this like they were best friends but in reality she's never even met him and so the way they tried to cover that up was well I talked to her about him all the time and that's why she likes him so much she's crazy the way they try to cover up these lies and Kim Jong-un meanwhile is firing missiles all over the Pacific all over the Pacific and has now a submarine that is capable of firing nuclear weapons selling a great relationship yeah and and he's done so well with all the things that he promised Trump hasn't done one single thing he promised Trump going back to the g7 so okay back to the g7 um he says that when he's being questioned about the whole china tariff you know trade war um he says that he just loves Xi Jinping that they're just very good friends that they called him and said they want to make a deal just not true at all they didn't call him to say they wanted to make a deal it's really in reality they're fighting amongst themselves some of them want to sit down and try to make a deal and the rest of them don't even want to sit down at all so there's a big thing going on between the paper reported that uh that china Xi Jinping has not made any concessions whatsoever none tariff no tariff doesn't matter doesn't haven't conceded anything to trump and there is no incipient agreement in fact i'm not sure that trump knows what the agreement you know he wants is he doesn't know what agreement he's beating people up that's what he does well he likes to say that china has been ripping us off for all these years and it's all everybody else's fault the two bushes should have fixed it you know clinton should have fixed it obama should but he's the chosen one he's going to be the one to fix it he doesn't know what to do and he has no agenda on this phony agreement that he hopes but they aren't responding at all no um so it's interesting well let's let's let's let's make some traction here one more big lie i think and one more big thing that i think was really important and telling you um and that is that he did not go to the meeting that was about climate change well that's when he had to rearrange his sock draw yes that's what he was doing well he told everybody what he was doing was meeting with germany and i think it was israel um and uh they they are pictured in the meeting in the climate change meeting so obviously he wasn't meeting with them right oh that's not true it's just a lie another lie there were a bunch of big lies that that he told um okay let's move on yeah let's move away no wait because i want to say the derral thing really quick he is inviting everyone for the g7 the g7 next g7 is going to be here in america and he wants to have it at one of his clubs a big one that he has down in in derral florida the derral club and um so this you know puts him in a position to make hundreds of thousands of dollars more like probably millions because they're all going to bring their you know their entourage they're going to bring everybody with them everybody's got to rent a place and the rents will be high and the rents will be jacked up you know they will provided that the club is still there because there's a tornado and a story in his story in his head right straight from morrillado so who knows if any of his clubs will even be there okay we take a short break that's Cynthia Sinclair i'm jay fidel this is trump week we'll be right back hello everybody my name is walter kawaii uh i'm your host for a monthly live streaming video entitled ukulele songs of hawaii where i bring on guests we enjoy talking story about the music industry here in hawaii uh sometimes going back uh 50 decades if possible and uh always having some good fun talking with entertainers we're here located at think tech hawaii downtown honolulu at the pioneer plaza building and uh in their studios and so join me next month for ukulele songs of hawaii hi i'm rusty kimori host of beyond the lines i was the head coach for the punahoe boys varsity tennis team for 22 years and we're fortunate to win 22 consecutive state championship this show is based on my book which is also titled beyond the lines and it's about leadership creating a superior culture of excellence achieving and sustaining success and finding greatness if you're a student parent sports or business person and want to improve your life and the lives of people around you tune in and join me on mondays at 11 a.m as we go beyond the lines on think tech hawaii aloha hey trump week you know if you had to define obama you the word that comes to mind is decent yes it wasn't right all the time but he was always decent um you know in the case of trump if you look for a word to define him it would be mean right and unethical okay yeah crooked thank you um so you know aside from this ethical consideration over using mara lago for government business um there are either other things too and one thing that popped up uh this week was his attempt and maybe he will succeed at deporting sick children children who will die without american medical care want to talk about well i think one of the most dramatic examples of that is a little girl who was um actually they went out and invited her in because it's such a rare disease for clinical trials right for clinical trials in san francisco she was there and um she is now they said she probably wouldn't live until she was even eight years old she wouldn't even see eight she's now like 24 she's already graduated from college with honors right um and is really active in helping other people with that same disease and she got a letter and this letter that they're sending yeah isabel she's just sweetest can be um this is amazing attitude and she lives in a wheelchair i mean she goes through incredible she has to have pain the treatments every week yeah weekly treatments infusions or she will die or she will die right no one is keeping her alive so he wants to send her away she's got to go 33 days everybody that was sick that got one of these letters it is a deportation letter that says you have to leave within 33 days or we're going to come find you by the way the government is not paying for medical care no her family has regular medical insurance insurance right that covers the cost of it so this is one of those situations you know related to his attempt to deny green cards if you've taken government benefits there are no government benefits involved here right really awful what he's doing he's essentially issuing a death warrant for this child he is no longer a child a young a young woman not just this child there's a lot of them there's apparently over a thousand of them these letters that went out to different kids that are only here for medical treatments and that they have to leave their families they and their families have to leave within 33 days and one of the things that's important about this is that there's no advocate there's no avenue for them to follow up to you know to try to go back and say wait no how do I fight this in court can I prove that I really am and really need this you know there's no there's no appeals process there's nothing which means I mean the fair chance here is the matter what kind of outrage we have or that the country has or right thinking people decent people have these these kids will probably have to leave and they will probably die like the one in question is about yeah is about so if you're looking for decency you won't find it there in fact it gets worse all the time it gets heartless reminds me of the apprentice with a heartless senseless ass backwards firings to people all the time right that's what we got in this administration I don't know who could relate to that I don't either that cruelty that let's talk about environment we got we got we're in the middle of time boy you spoke of how we had to clean his sock drawer while they he's seven we're talking about environment right but it gets much worse than that boy does it ever comes to mind is the story of the ton gas forest I've been there I have to breathtakingly beautiful I agree and it is a big part of the North American contribution to retaining the carbon and avoiding or minimizing really a climate change but he's going to tear that up just like logging Bolsonaro in Brazil that's right he says nothing about the fires in Amazon in the Amazon and he's refused to give any money to help to fight them even though all the other countries came forward with money to help and what he's doing in the ton gas is he's just letting oil and gas come up there and you know mine for whatever they want wherever they want same with the loggers the logging they have carte blanche do whatever you want and you know I was watching a piece on that they were interviewing some of the fishermen and some of the people who live up there and they that's where they get their livelihood is from all of the animals and wildlife that live there and not to mention just the ecosystem the complete ecosystem that is there it will be destroyed destroyed they're going to destroy it and you know one question this raises for me we should discuss at least briefly is can he do this legally maybe it's going to be one of those suits in the wikipedia list how can he wake up one morning at the side he's going to wreck a national forest you know the United States went through a lot of trouble create the national park national forest system and this guy wakes up one morning and got a bad hair day actually most days are bad and he wants to destroy the Congress forest in Alaska the biggest asset in Alaska is its environment and he's going to do that because he wants to because he can can he doesn't require some acts of some agency doesn't require the act of Congress doesn't require somebody to make you know a determination maybe an environmental impact statement you know I'm not sure that he can do this and we have to find people who can resist this either on a regulatory basis or in court so to stop him from destroying our environment is well it won't be the EPA that stops him that's true regulatory office that should stop him but you know he's not that it's not going to happen which is the reason why he can get away with doing all this yeah and I think we just need a groundswell of people you know we we need one of those grassroots movements to just rise up in the public to stop him from doing this because it's just crazy and it won't be the Department of Agriculture because they're in the same place I mean he has these yes men these secretaries who are yes men and and they just go along with whatever Trump wants the Department of Agriculture the Secretary of Agriculture Purdue I think so was out in you know in farmland and maybe Indiana somewhere in the Midwest and he gave a speech and he called the farmers who complained about the tariffs he called them winers they're whining they should tough it up these are people that have lost their livelihoods right there's going to be a lot of bankruptcies there are already some farm the farm belt can't tolerate this the farmers are beginning to understand that you know these promises of whatever I don't know what promises were made about this because you can't much make much of a promise about the tariffs you know are not coming true and that Trump is killing them and I think where they might have been sticking with him six months ago that's over I I think you're right it is over and you know he says well I look at all this money I've given them I've given them 11 billion dollars or something like this these handouts well eat and some only the big corporations really that are getting the money and the little guys are not that's true there was a piece about that yeah and so that's actually not getting the money he promised the little guys are not and so they're losing their farms they're losing all of this year's crop anyway and then they have no market so even if he drops all these tariffs it took some of these guys 20 and plus years to get these markets together in China right so um they're not going to be able to just bring put them back up again they're going to have to find new markets that's that takes time and only the big guys are going to survive the little guys forget it they're gone but you know the the EPA speaking of the EPA a minute ago they have just done a big giant rollback on regulating methane emissions which is the number one cause of killing green house effect it is the biggest creator of the greenhouse effect all it's all all about greed and all the shell and mobile uh exxon all these guys you know any part of it that's how stupid this whole thing is is there like no no no no no we don't want to get involved in that thank you but no thank you we have other ways to make the money like lng right which they're all involved in so okay so this is really interesting uh at the same time no action in congress on the environment it's all being rolled back at the trump level no action and his uh departments or his secretaries are all in his pocket right so what we have is a degradation of any environmental policy in there oh yeah it's absolutely even the auto manufacturers are against him right on on the emissions standards um the other thing is we should talk about this you know so let me ask you a rhetorical question seen any action on gun control huh yeah right he walked that right back you know um what did what did what's his name less year no pierce this is the guy with the nr a yeah la pierre that's it la pierre thank you um he called trump shortly after trump had said yeah we need background checks we need yeah yeah yeah and then he talked to la pierre and now crickets we hear nothing well he walked it back oh yeah he walked it back and said well we already have a lot of you know those in place already yeah oh it's only really it's only a matter of time if we have another spate of these attacks you know this uh domestic terrorism people use the same weapons they've been using because there's been no control on those weapons and shoot up a lot of people in there in this kind of competitive mode let me see if i can shoot more people than the last guy shot let me just destroy everybody in sight that's what's going to happen it's just a matter of days or weeks and some guy some yonkel is going to do that again well you know my thoughts behind that because i've been saying it all along um i think he's trying to make these people do this i think he's poking the bear poking these people to try to rile them up so that he can have a full blown riot on his hands so he can declare martial law i really believe that's what is that if he's always going towards power right and everything he does is taking power away from the people and putting it back in his squarely in his corner and so the more powerful he gets the more power he wants and there's nothing more powerful than martial law oh yeah well you can stop an election everything you stop anything everything you are all powerful election and everybody answers to you well it's going that way isn't it it is going that way and i've seen it going that way from the very beginning i'm not so sure i agree with you though um on the point of he's got the methodology here i think he's very you know narcissistic and trophistic i say trophistic that sounds like trump is it's a simple mechanism he hasn't had the ego stroke all day all and it's very short-term thinking right and uh what you know what happens is he's got he's got a list of points many of which are lies most of which are lies and he keeps rolling them out over 10 000 lies now i thought it was 15 but it was well it's actually i have a thing i found some out um in the last okay he's said nine thousand fourteen lies or misleading statements in the last 773 days cnn says it's 10 000 the new yorker says and this is the important one i think 2140 lies in the last six months okay and that was um 16 averages 16 per day but in june and july just those two months alone there were 4229 so he's going up yes it's getting worse he's upping his lies and you know it's for a purpose it's to desensitize our ability to recognize a lie right right right he's he's lolling us somehow he's getting into a new normal where lies are the normal and what happens if you have a lot of lies like that we're not including yet kelly and conway and his various yes men secretaries and his most fabulous uh attorney general who is now chasing komi around i thought that finished and he got no not oh it's still not done put him in jail he puts his adversaries in jail or or ruins their life in some way right just like the apprentice these and you know these these lies and these his little jukebox of of things that he trots out like oh let's have another tax break can he afford the tax break he's giving away hundreds of millions maybe billions to the farmers but he wants to do a tax break what um you know we're going into you know trillions and gazillions of of budget deficit and he's going to give a tax break i mean the point the point i make is that he's got his jukebox worth a ridiculous statement so he's testing us that he has no brain trust that can stop him that can feedback or push back on his uh you know crazy three o'clock in the morning hamburger ideas and so you know what is that is that is that a methodology is that something you plan you know it's very instrumental uh when some reporter asked him in connection with his quote negotiations uh with china so you know you've been uh you've been beating them up at the same time you know you've been saying you got a great relationship what kind of negotiation is that and trump said you don't understand that's my style my style is to keep them off balance and so they never know what's going to happen that's my negotiating style at that point the reporter said well actually what is your point in this negotiation that's when trump trump changed the subject as i write so bottom line is uh there may not be a methodology here there may not be a specific target he's looking for you know we used to talk about him being a dictator like hitler or others um he may wind up that way but he's i don't think he has a plan he didn't have a plan to deal with china or north korea he doesn't really have a plan to deal with iran or brazil or climate change he doesn't have plans he doesn't have policies it's what he wakes up in the morning with this is the scariest thing of all why because you're going to make a big mistake that way a series of mistakes and get the world in a pickle kind of like he has already you mean kind of like he has already right but i think there is a little bit of a plan i think he does have a bit of an idea i think his goal he may not know exactly what route he's going to take to get there but i know his goal is all power because that's what narcissists do that's their only thing they care about is being in control and having power well and yeah and there's a plan too to confuse people and distract them exactly and make the truth elusive right this is very troublesome and and what happened uh yesterday was very troublesome with uh with biden because biden was caught on making various conditions of his story about the war in afghanistan and his involvement in pinning a medal or not on some soldier uh which which really sounded creepy to me because he was talking about in one rendition talking about a navy captain who was out there in the field they don't have navy captains out there in the field that's a very senior rank i don't think he understood bottom bottom line is that biden's credibility is seriously jeopardized right now yes it is and the average the average citizen can all of these guys you know they're all telling us stories what are we to believe trump started it you know but there's there's evidence that others are doing it too and this is a big problem in terms of finding a leader who will take us out of trump's swamp uh and i fear that it may not be biden he may not he may be over the over the top on this i don't think it is and maybe it's elizabeth warren actually i hope it's elizabeth warren i think she's tough enough to fight him and you won't push her around i think biden is too nice to be honest i think he has too much class to lower himself to trump's level and fight back that way i think if trump hits him with stuff he's gonna just crumble because he's too decent he doesn't have it together he's too decent and he's yeah he's a little scattered and i i was surprised to find him this scattered in his different speeches but you know the the thing i like about warren is that she is just right to the point and she's got a plan she's not scattered she's not telling lies you know and the whole indian thing heck everybody in america has a little bit of indian in them so you know i don't think she should have that held against her we're out of here synthia we're done but there's like 20 more things to talk about well save them till next week aloha aloha everyone


Yes, thanks, Luigi, and welcome everybody. So I'm going to talk and spend the next around 30 minutes, maybe a few more, talking just about recapping Qt 6, what led us there, what motivated us to do Qt 6, where we are with Qt 6.1 and a little bit of an outlook into Qt 6 as slightly beyond. Let's get going. To start with, when we're doing a major version update, it's always important that we think a bit about what's really the important thing in the tooling we're doing, what is the thing that's actually driving us. And for Qt, it has always been for all the 20 years or more than 20 years I've been working with Qt. It's been about making life easy for developers, making development of applications, cross-platform applications and then into embedded devices, fun and easy. Simplify that. That's the thing that has been driving us all along. And for Qt 6, we wanted to take the next step there and do some more changes that further improve this. So let's have a little bit of a look into Qt 6 and what has been motivating us there, things that we've been doing. But before we go there, let's take a little bit of a high-level view. For Qt 6, we had a couple of high-level goals and fixing certain architectural limitations that we have discovered over the years in Qt 5. We wanted to improve performance in quite a few places. A very important topic for us has been to clean our house a little bit, get rid of legacy APIs, old code, things that we don't want to use or maintain anymore. We wanted to try to see what we can do with package management support and have that better supported within Qt. I don't think we're quite there yet with Qt 6, but it is still something that's on our agenda. Make the core product, the core of Qt a bit smaller and more modular, maybe also allowing us to handle add-ons slightly in a different way. But then, of course, also very, very importantly that we are keeping the compatibility with Qt 5 as much as is possible. We also have a couple of important high-level values that we need to keep up and that's our user's value. This is the cross-platform nature of Qt that we are basically running on every desktop operating system out there, every mobile operating system and a wide variety of embedded systems. The maintainability, compatibility that Qt actually takes the burden of bringing your application to the next version of a platform away from you that we're trying to take that and that the code that you're writing is actually generically very maintainable over time. Scalability, you can go from very low-end embedded systems to complex high-end desktop applications, connected applications that span multiple devices, multiple large systems like that. APIs and whatever we're having on the tooling side should be intuitive and easy to use. We're proud of the documentation that we're having and we want to keep it that way. Having a world-class documentation is really, really important and the thing that got over the last year is more and more important for us is also the tooling. So a couple of high-level goals, as I said, cleaning up our code base and our architecture and not new features. That was the main goal for Qt 6.0 and is still the main goal for 6.1 and 6.2. We're not focusing that much on bringing tons of new features to you at this point in time, but rather clean up what we have and prepare it for the future. Nevertheless, you'll see some pretty cool stuff also already in 6.0 and more of that coming in 6.1 and 6.2. Compatibility, as I mentioned before, is really, really important for us. And we have a very large user base out there. KDE is one of the big projects that's using Qt, but we have so many other people. There are billions of lines of code that are written against Qt. And that means we need to make it easy to bring all that code over from Qt 5 to over to Qt 6. So we wanted to make sure that Qt 6.0 is as source-compatible as we can with Qt 5.0. There's still, nevertheless, some porting that will be required. And I think some of you who have been working on that already within KDE have maybe seen a bit of that. We have removed all the deprecated functionality that goes back to the house cleaning that we wanted to do and preparing ourselves for the future, which means you'll have to clean up certain pieces. But most of that can be done on top of 5.15, enabling deprecation warnings. We'll get you along where they are. And those changes really prepare us for now for the next years to come so that we can hopefully also Qt 6.0 can have a rather long lifetime. Let's have a little bit of a look at the large architectural changes we've been doing for Qt 6.0. The first one was to move over to C++ 17. That has been an important topic for us. We wanted to move along with the C++ standard and make sure that we can also use new features that are available in those new C++ versions. We've moved to C++ 11 with Qt 5.6. Now was the time to take the next big step and also start using that in our code, in our own code, but also modernizing some of our APIs to at least to some extent were possible to make use of modern C++ features. Let's start off at the low end what we've been doing on our containers. A large amount of work has gone into that area. A big thing for us was to look at Qlist and Qvector, the two containers that were doing similar things. There were some implementation issues with Qlist. Many of you might be aware of them. And we've now had a close look at those and in the end decided to bring those together to have one class in Qt for doing list-like operations. And Qvector nowadays is an alliance to Qlist. We've introduced 64-bit support for all the containers. So they're all using Qsize type now to store size-related and index-related information, meaning you can have more than two billion items in the container, something that was requested for a very long time for many of our users. Qhash and Qmap got completely rewritten. Qmap basically is now using standard map underneath behind the scenes and can actually be converted or moved to and from a standard container. Qhash, we have gone a different route and we implemented it completely on our own. I'll show you on the next slide a little bit why. And then we went in and filled lots of API gaps that we used containers, had touts, standard containers. Make sure we can consistently use move operations, and place ranges and initialize lists and other things. So with Qhash, we actually went back and did our own implementation. And here's a little bit of the reason why. We had a look at standard unordered map and whether that could be a solution to base ourselves on top of that. But what we found when we did some benchmarking and some measurements was that standard unordered map was performing rather similar to Qhash and Qt5. It was a bit better in terms of memory usage and consumption, but there are other hash tables out there who can do a lot better. And we went in and looked at that and then implemented a hash table that gives a very good compromise or gives us very good performance also for large hash tables and a much, much lower memory consumption than what we had with Qhash and Qt5. We were finished also another item that was only 80% done in Qt5 and that was its Unicode handling and all our string classes. In Qt6 now, all text handling is Unicode-based. We assume basically UTF-8 for data that we're reading in by default and UTF-16 for all our internal data that we're storing. Our source code, for source code we have by default is also assume UTF-8 and we've cleaned up all our string-related classes to make sure that we have now a consistent set where we added Qtf8 string view for UTF-8 encoded data and the view into UTF-8 encoded data. We had Qt string view already and completed that one, made it mirror all of the read-only API of Q string and deprecated certain APIs such as Q string ref. Finally, we also took the step to remove the legacy and coding support for out of Qt core. So Qt text code is not part of Qt core anymore. We have a Q string converter classes that can do Unicode conversions plus Latin one and local 8-bit. A second big topic for us was the support of bindings. Bindings are a concept that came and that we introduced in QML and Qt Quick. And that is probably the feature that made Qt Quick really, really successful over the last years. Having the ability to bind arbitrary expressions to properties and making sure the properties get up automatically updated whenever a dependency, something in the expression changes has proven to be extremely powerful. And with Qt 6, we wanted to bring that support down to Qt 6 to make it available to all of Qt and bring it to C++ so that when you're doing C++ development, you can use bindings the same way as you can use them in Qt Quick. Wanted to make sure that we have a seamless integration there with Q object and make it a simple extension of the existing property system. In addition, we also introduced a new Q property class which supports bindable properties also outside of Q object. Here's a simple example in Qt Quick. You can easily, if you define, for example, a rectangle and it has a property width, height and border and you can easily bind here the width to the height. So when you change the width, the height will get adjusted. It's actually a square using those bindings and it has a border that is 10% of the height and thus 10% of the width. And those relationships always hold. In Qt 6, you can do that the same thing in C++ and the code is rather similar. So we have a rectangle as a struct with three properties, width, height and border and then you can set up in the constructor, you can set up your bindings where you bind the width to the height to the width and the border to 10% of the height. The second really, really big change and new feature for us was redoing our graphics architecture. This is probably the one area in Qt where we've done a lot of work apart from Qt Core and the changes there. This is probably the area that has received most work there. And the reason for that is that the world has changed significantly since we introduced Qt 5 in this area. When we did Qt 5.0, OpenGL was the cross-platform API that you could use for 3D and hardware accelerated graphics. It was pretty much supported everywhere, even though it was to some extent a little bit of a second-class citizen on Windows. It was still supported there and you could get good OpenGL drivers on Windows. But the world has changed over the last couple of years. Apple introduced Map Metal as their new 3D graphics API has gone so far as to de-procate OpenGL. Vulkan has come up by the Chronos Group as a successor and Microsoft is focusing more and more of their work also on Direct 3D. So it was time for us to change that and introduce something that helps take this away because now we're having a situation where there are lots of many different APIs. And for us as a cross-platform framework, of course, the job is then to see how we can take that burden away from the application developer. So we added what a thin layer on top of those graphics API called the Qt Rendering Hardware Interface and build Qt Quick, the scene graph, Qt Quick 2D and 3D on top of that. In addition, we introduced a new module called Qt Shader Tools to be able to handle shaders in a cross-platform way. The Rendering Hardware Interface is actually a very thin abstraction layer for 3D graphics APIs, covering OpenGL, Metal, Direct 3D and Vulkan. And it abstracts multiple graphic, all the graphical objects that we need, materials, measures, shaders and so on. For the moment, it's an internal API tuned towards the needs of Qt. We are considering making parts of that public also in the long-term, probably QPA style so that we will not guarantee full compatibility between the minor Qt versions, but there is certainly a need for users to also be able to integrate with the Rendering Hardware Interface in the future. But for now, it's an internal API. Integrates with our platform and the window system abstraction layers. And Qt Quick, Qt Quick 3D with 6.2 also multimedia and other modules also Qt 3D are now fully ported to using that Rendering Hardware Interface. Qt Shader Tools is the complementing module that we need to be able to do that. It's there to support cross-platform shaders. The shading language is different, different between the different graphics APIs between Metal, OpenGL, Vulkan and Direct 3D. But with Qt Shader Tools, you can write the shader once in a cross-platform GLSL or in a Vulkan-style GLSL, and then we can recompile it to all the graphics APIs, both at build time and also dynamically at runtime. What's important to remember here is that Qt 6 now uses the native graphics API of each operating system. So whatever the graphics API is that your operating uses, we're using it by default. We'll be using Metal on macOS, Direct 3D on Windows, OpenGL or Vulkan on Linux and so on. This is really important and make sure that we can get the best possible support on all of those different operating systems. Qt Quick 3D is a module that we introduced in Qt 5.14, 5.15, but it has received a lot of changes and a lot of good things in Qt 6. We're now basically working on one combined scene graph for both 2D and 3D in Qt Quick, which means you can very efficiently combine 2D and 3D in one scene in your UI and then bet them into each other. We've extended and improved the support for PBR materials significantly and also made sure that we can easily import GLTF where we support the full base spec and most of the common extensions. The Quick 3D has also gained a lot of new features like a 3D particle system where you can do really cool animated 3D effects, instance rendering in case you need millions of objects in your scene and also things like mesh morphing animations are now supported. So you can easily connect that and hook that up in QML to the state changes of your user interface. Finally, we've been pushing for better seeming and styling of the Qt Quick controls. Qt Quick controls, as we have them in Qt 5.14, 5.15, were not really styleable. There was a little bit of some seeming support using PIX maps, but they didn't use the native style of the underlying operating system. That's something we've fixed now with Qt 6 and we have now native look and feel for Qt Quick controls on macOS, Windows and Linux. We're also planning on extending that into the mobile platforms now moving forward. And here, the longer term goal for us is, of course, also to make sure that Qt Quick becomes something that you can fully use also on desktop and mobile if you want it, even if you want to do native looking user interfaces. So we will be working on extending also the feature set of Qt 6 to cover those things. The reason here is also that Qt Quick is much more suited to modern fluid animated user interfaces than what we can do with Qt Widgets. For everybody who has tried to implement animations within Qt Widgets knows that this is a rather difficult job to do. It's tedious, arrow-prone work. Qt Quick makes that a lot easier and we want to make sure that all of our users can benefit from that also on desktop and the mobile platforms. We worked on the pointer event handling, touch event, mouse event, tablet events, and unified those in with one common base class called QPaint pointer event. The advantage here is that, and it solves the problem that we had before when in certain complex controls and use cases, it was really, really difficult to get all the use cases working with different events there. So, for example, a touch-enabled controls inside a flicker, they will always work with that, and we can do that much better now with pointer events. In addition, we are also now tracking the input devices' history of the event points, allowing you to be able to use that extended information in many use cases. As I mentioned before, another big topic for us is, of course, also the tooling around Qt, the developer experience. Qt Creator as the main developer tools is something that we've spent a lot of time improving on, on improving. And the developer tooling, of course, fully supports Qt 6 nowadays. We have wizards for Qt 6 compliance projects. You can inspect all the Qt Quick types in the debugger. We know about, the editor knows about the new QML and C++ language features. And of course, you also have inline access to the documentation and the examples. We've done also a lot of work in improving the C++ support, the generic C++ support in Qt Creator, with new and improved refactoring, refactoring tools, removed the Clang code model up to Clang 11, and had a much tighter integration now of Clazy and Clang Tidy. And finally, did also lots of other smaller changes just to improve that experience. And finally, of course, also in Qt Creator, we've vastly improved CMake support. We're having that there. A lot of the improvements come through the work that we've been doing, bringing Qt over and porting Qt to use CMake as its native build system, improving a lot of the CMake support for Qt, also upstream in the CMake project, and then also doing that integration into the tooling and Qt Creator. That's the second big tool that we're doing a lot of work on that's on the designer experiences Qt Design Studio. Qt Design Studio is a tool that's there to graphically create user interfaces and do all the UI work in a graphical tool. We've done a lot of work there to improve that. So one of the goals for us when we moved over to Qt 6 was to unify the design tooling. In Qt 5, we still had Qt 3D Studio as a separate tool for doing 3D UI design. It was also using a language that was different from QML. We've unified all of that. It's all built around QML as the programming language and this one unified design tool with Qt 3D Studio. You can now mix 2D and 3D content seamlessly there. Doing a lot of work to improve that further. One of the goals for us here with Design Studio is to improve the interoperability with Qt Creator. Qt Design Studio is in many ways Qt Creator. It's using the same application shell around it. It is basically just having somewhat different plugins and the different selection of plugins and some changes to the UI compared to Qt Creator. So that's going to happen and we have still a bit of work to do in that front. And we of course have a big goal of making sure that all our UI features and Qt Quick 3D are toolable. Now, also advanced things like particles, skeletal animations, and that we have a lot of low code features available there for the developers and designers so that you can visually program a lot of the UI logic. Things like shader programming tools, wireframe tools for 2D shapes and paths, all of those kind of things are things that we want to add to Qt Design Studio. Beyond Qt 6.1, what's happening there? What are we working on right now? As you probably know, Qt 6.2 has just recently gone into feature freeze and most of the work has been there focused around putting the remaining add-ons to Qt 6. Turn activity with mode objects. With 6.1, we had already charts and data visualization, many others. All of those are coming back in 6.2 and 6.2 should be to the largest extent feature complete in meaning having the same feature set as Qt 5.15. There's a lot of bug fixing we have been doing and working on making sure that we have stability and maturity. 6.2 will be the first long-term supported release for the on the commercial side as well. So we want to make sure it's as good as possible. And of course also make sure that the development targets then again match what we had in Qt 5 by adding integrity QNX web assembly and more embedded hardware platforms. A larger change that's happening with Qt 6 is that we're getting a completely rewritten Qt multimedia. I've been myself working a lot on that module with an easier to use API and hopefully a consistent cross-platform feature set. Qt multimedia has been, let's say, a module that was that we were never really happy with during the Qt 5 lifetime. And I think I hope that we can now with Qt 6 get something that's really good and easy to use and that also our users will be happy with Qt Web Engine will live a little bit more its own life with Qt 6. We will be working on decoupling it from the Qt 3 release cycles allowing it to do faster releases. Basically, always base it on top of the latest most secure Chromium and be able to use that latest Web Engine version with multiple Qt web versions. And of course, finally also Qt for Python is something that we're bringing along all the way and where we want to support everything there. So here's the list of the supported modules that we had. As you can see, we already had quite a lot of things available in Qt 6.0. In 6.1, we added another 7.8 modules and with 6.2, most of the remaining modules that we had in Qt 5 are then available as well as you see Bluetooth, multimedia, NFC, remote objects, serial bus, you name it. On the platform side in Qt 6.1 we're basically supporting Windows 10, macOS 11 on Intel hardware and Linux as development hosts. And then have also Windows 10, macOS 10.14 and newer Linux desktop and embedded as target environments on the mobile side, Android and iOS. And then finally, we're having on the embedded side Q and X in the category as tech previews. For 6.2, this is improving slightly and we're then also supporting macOS 11 on ARM on Apple Silicon fully, both as a development host and the target environment. We're fully supporting then Q and X and integrity and we're bringing WebAssembly back as well. Okay, and here finally, just to give you an overview over the release schedule, Qt 6.1 has been released in May. We're working on Qt 6.2 and hope to have it out in September this year. And then if you look closely, you can see that we're adjusting our release schedule slightly. We're continuing to have a six bi-annual releases every six months, but we're shifting them forward a little bit. We used to have them in usually November, December and May just before Christmas and just before the summer vacation break. We're now shifting that more towards spring and autumn with March and September. That is our long-term goal. Okay, and that brings me to the end of my presentation here. Thank you very much for listening and I think I'm happy to answer as many questions as possible in the remaining 10 minutes. Thank you, Lars. There is a lot of work ongoing and when you have to deal with a base library or base framework better, like Qt, so it's always complicated when you have to do breaking changes. But we have a lot of questions. So let's start. So from the Nicholas asks, we need one wide codec support in KDE to handle arbitrary data from the internet. Any plans for bringing that back in the future in some form? So first of all, it's not completely gone. The existing Qt text codec support is there in the Qt 5 Compat Library. So you still have that available. The plan for me for the longer term is or the change was twofold actually. One of them was that I was never really happy with the Qt text codec API and QString Converter, QString Encoder, Decoder has a much better API in that respect. For the long term, I think that and I've designed QString Encoder and Decoder in a way that we can extend it and basically add a little bit of a plugin infrastructure there to it so that it can support other encodings as well. Probably just using ICU as a backend there and where the plugin would solve most of those issues. Hasn't happened yet for 6.2. It's a little bit on the backlog right now because it's not that urgent for most people. There are very few applications that need the full codec support these days. It's basically an email application. When you're doing that, there might be still a little bit, the web browsers, but they're anyway doing their own stuff. And then it's maybe a text editor and that's where it ends. So it's sort of a little bit that corner case, use case these days. If you look at how much of the text and the data out there is unicode encoded these days. Yeah, compatibility is sometimes it's important. So the other, another very voted question from David is, would it be possible to create our own new style, quick control style? For us, fusion is not really native. I understand that fusion is not really native for KDE. I think it's possible. I haven't actually looked into the architecture. And I mean, of course we can certainly consider how to do that, whether you wanna do that as a plugin in KDE or contributed upstream to Qt. Both of those are actually should be possible and if there's hindrances in the way, we can see what we can do to enable that. Sean is also talking, I think later on here here and ask him, I think he knows more, meant much more about the system than I do. Okay. There are some questions. I'm going to combine three questions about modules which are not in the list. People are asking especially about Qt Speech, Qt Location and about Qt GamePad, if there are plans for those three. Yes. So Qt GamePad, let's start with that one, is basically, I think it's, we just haven't published it, it does compile against Qt 6. So if you pull the code from Git, from code reviewer from Garrett, it just, as far as I know, it works against Qt 6. Not currently supported, we're not quite sure what to do about the module in the longer term, but it is there, the code is there and it should work. Qt Location is something that will come after 6.2 and we will be working on bringing that back. And then Qt Speech has always been a difficult module for us as well. Thanks to Speech and then Speech Recognition, we were never really happy with it. So we're not quite sure yet what we do, what we're going to do about it, but any feedback in that area would certainly be welcome. What people need, I would really like to hear what people want from the module, what they need. Okay. I have another Qt Quick Controls question, but let's try it anyway. Maybe it will be for the next speakers, but what do you define as native look and feel for Qt Quick Controls on Linux? Currently we're using Fusion there. And the question is, what is the native look and feel? Because KDE has been using the Qt Styling mechanism to define its own things. GNOME has been doing something else. It has always been a little bit of a mess and that makes it somewhat difficult. But as I said, I think Sean might also be able to answer a bit better there, what we can or can't do. So be ready for the next talk, people. So, okay, the next question is on the graphics side. So Windows also support Vulkan and sometimes you get better performance by choosing one or the other. I guess DirectX is the other. Can you somehow manually choose which graphics API is being used for a certain platform? Yes, there's an environment variable you can set to choose the platform. So you can do that just by setting an environment variable and it will use the one that you want. Of course, you'll have to be a bit careful if you yourself use certain graphics APIs directly. Then you have to make sure that those match, but other than that, just do it. We have another short but technical question. So why Q-Sites type instead of size T? Because we've had a long discussion around that one and the problem is that we've always used signed integers for indices in all our containers, also partially because sometimes you could use negative indices to indicate that you're coming from the end. Now, size itself of a container can only be positive, I agree, but those indices should be the same type. So we had to choose a signed integer to keep compatibility. It would have broken, using a unsigned version would have broken a lot of existing code out there, much, much more than we would have been able to, than we wanted to. The second argument was a bit that also many people in the C++ community think that signed is actually the better type or would be the better type for doing those things. It just causes less trouble in many other areas. Okay, and I guess the final question we're really almost out of time. It's the Qt Gamepad that I was asking before. There is a really, the question is a bit more detailed. It's a bit more specialized than that. So the question is really, if Qt Gamepad support is done, any plan for managing Gamepad events in the future? As said, we'll have to see what we do with Qt Gamepad first and how to handle that. There's certainly some work ongoing also because we are looking into areas like, even though with Qt Quick 3D, how can we extend that with VR support and those kind of things. And then those kind of game controllers fall in a bit more naturally also in terms of how things that you might wanna use to control your user interface then. So we'll have to see but that's work that's ongoing. I'm not sure exactly what the plans are but there's probably after 6.3 something to look into. Okay, I don't see any other question and in fact the time is almost basically running out. So Lars, thanks a lot for this presentation. Thanks a lot for all the work going for Qt in Qt and we will hear again about Qt in the next talks but thanks again. So a bit round of virtual applause. Unfortunately, the only virtual at this point. Well, thank you very much for listening everybody and have a good remaining couple of hours of academy and a nice weekend everybody.


Jonas, you have all the motions, so could you please? Yes, so I move to authorize a reduction in force of a .4 FTE elementary art teacher and a .1 FTE elementary music teacher. Could I have a second? I second. Dorothy seconds. All those in favor, please say aye. Aye. Aye. Aye. All those opposed, please say no. No. The ayes have it. The motion passes. Next one. I move to approve a new teacher nomination for Brennan Lynch as a U32 special educator. Can somebody second it please? Dorothy has seconded. All those in favor of approving the new teacher nomination, please say aye. Aye. Aye. Aye. Any opposed, please say no. No opposed. The ayes have it. I move to approve the resignations of Casey Leclerc, U32 school nurse. Christina Strowbridge, a Dodie pre-K teacher. Meta Bravos, callous music teacher. Jennifer Britell, U32 school nurse. And Robert Reed. A, I'm sorry. Hold on. It's Montpelier pre-K. I think. Yeah. Yeah. I have a second. Second. Any comments or. We're just saying thank you. I just see some cameras went on. So I want to make sure there were no comments. All those in favor of approving the resignations as read by Jonas. And in your document, please say aye. Aye. Aye. Any opposed, please say no. Hearing none, the ayes have it. I move to approve leave of absence request from Christine Fitch. At U32 and extended leave. Request for the remainder of the 2020-2021 school year. Nicole Schaefer of U32. A leave request of 0.4 FTE. For FY 22, reducing the FTE to 0.6. And Ben Heights of U32. I move to approve leave of absence request from Christine Fitch. For FY 22, reducing the FTE to 0.6. And Ben Heights of U32 leave request of 0.6 FTE. Reducing the FTE to 0.4. Including congratulations for earning a Rowland fellowship. Second. Thank you, Scott. So we. All those in favor of approving the leave of absence request as read, please say aye. Aye. Aye. Aye. Hearing none, the ayes have it. And I move to approve the retirement of Mark Chaplin, a U32 science teacher with many special thanks and congratulations for 47 years of teaching and coaching at U32. Second. No second then. And let's not Mark was a fabulous chemistry teacher who helped so many students learn actually learn chemistry. He was a great teacher. He was a great teacher. He was a great teacher. Aside from his. You know, coaching prowess. He's just a phenomenon that we will sorely miss. In our youth 32 community. And he can we vote to not accept it? Can't we do that? Yes, we can. It will be symbolic, but we can. He's also taking care of all our trails. All this years too. And it's just an amazing human being. So. Yeah. Yeah. Yeah. Yeah. And it says to see his letter. No, maybe it just said I resigned and there was no need. But last week when we had a resignation, it was red. So was his simply just I'm. Retiring. Stephen. His was very basic as it was as. Plain spoken as Mark typically is. In addition to him retiring and being a wonderful human being. And when my son talks about wanting to be a teacher, it's to be like Mark and Kathy. Because they did accept. All the children. They brought the children forward. The sense of humor. And I just feel like those kind of people as teachers. Unfortunately are rare. And I think it's just, you know, a lot of people. And especially who stay in the community like they did. And influence so many people in teaching. Actually, both of my children, but. Will was the athlete. Arby was the. Not athlete at all. And Kathy. Had a huge impact on Arby's life as well. So Mark and Kathy, it's just kind of a combination. But as Mark retires, I think that just needs to be noted. And I think that's a good point. Got Thompson. Thanks. Carrie will remember that the U 32 board. Voted to. Dedicate the track to name the track. After Mark and Kathy. And it might be something that we could. Consider. As a board. I think it would be great to be able to have our voice in there too. Would welcome the opportunity. Yeah, I think several of us, there are kids have been impacted by both Mark and. Mark and Kathy. So we will talk about that part at a later meeting. Scott and. Brian. Yeah, I just wanted to point out that we did have a, on the Brennan Lynch nomination form. There was a, just a typo on there. It said if leave of absence or resignation. Name of employee. Brennan Lynch is replacing Susan, not Susan, my yet. Susan price. I just wanted to clear the record here. Thank you for clarifying, Brian. And we haven't voted on Mark. I know that we don't want him to go, but we still have to vote. And so all those in favor of letting Mark retire. Please. As the motion was read, please say aye. Aye. Aye. Any opposed. None. The eyes have it. Jonas, I know that you're almost done. So he's taken a little long. Did you get that change? Yes, I did. Okay. So that finishes our business for today. I just need to correct the record. Because I think it was on mute when the vote came for the reduction in force. And I was voting against it. I realized I was on mute, so it may not have been heard, but I voted against that. Okay. Thank you. Could I have a motion to end the meeting? Can I make two comments before we leave? First, I would like to. At some point here, whether or not we're going to maintain the online. Classroom presence for students because we're coming up, I think, against the deadline. And the second is. Brian mentioned that. The district is going to be getting millions of dollars. And we heard Dan French talk about that on the radio, or at least I did this morning. And I would like this board to. Put together a committee to work with the administration. And staff members. In regard to a strategic plan in terms of how we can best use those millions of dollars. That are coming into our agenda. But have it as a board. Sitting at the table as opposed to being presented with a plan after the fact. And I think that that would be a wonderful thing for us to do. Okay. Thank you. I think Dorothy raised her hand before me. So. Michael. My thought was when I heard that was. Will some other school districts try to encourage some of our value teachers to move to a new place? That's what worries me. Thank you, Darcy. Any other comments before we adjourn? Brian. No, I would just say that I would welcome a board input, but I would, I prefer to have. The leadership team work get together first. And then try to find ways to involve the board and a greater community. With regards to the recovery plan. We'll put that as an as a next agenda item so that we can all discuss. Great. Okay. Everybody ready to adjourn? Could I have a motion to adjourn? Scott. Yeah. No, I would just say that I would welcome a board input, but I would prefer to have a leadership team work get together first. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Could I have a motion to adjourn? Scott? Yeah. Yeah. Okay. All those in favor, leave the meeting. No, you'd say I. Hi. Hi. Good night. Good night, everybody.