So, good morning everyone. So, a little bit about me. I am currently working in Red Hat in the Fedora engineering team as Fedora cloud engineer. I am also an ambassador and contributor to Fedora project for almost over 10 years now. I am one of the core developers of C Python that is the Python programming language and I try to write blog posts at kusheldast.in. So, that is my formal work and whenever I get free time I try to become Superman. You can see this. I used to practice at home. Nowadays I am being able to fly outside also, but this talk is not about that part, but this talk is more about what I do at work that is Fedora cloud. But even before I go into that side I want to, I have few questions actually for my audience. How many of you are actually using Python in your day to day or somewhere in your work part? Can you please raise the hand? Okay. So, around 50 percent I guess. So, okay. Good. So, what we do at when I mean, what when I say Fedora cloud. So, it is actually not any public cloud running somewhere, but it is more about the image which runs on different cloud infrastructure. That is you can run this image on OpenStack or OpenNebula or CloudStack or we also generate the AMIs for AWS. So, if you look at from that perspective, the major two customers are obviously right now AWS and OpenStack. And for OpenStack, what we create is normal standard QCao2 images which can be used in most of the other cloud infrastructure. And we also put the same image into others places like DigitalOcean where you can boot up a Fedora. So, as you know, Fedora project is a community project. So, it is a group of community people along with engineers and people from Red Hat who work on this project. And part of the project is actually testing whatever we release, correct? So, we don't want to give you any broken software, any broken opening system which you cannot use. So, and most of our test cases in general are actual best commands. So, let's say I actually started working full-time on Fedora cloud in 2014. So, part of my job was to make sure that whatever we release is good. So, work along with the QA team who are like we have a great QA team, but they are always overloaded with work. So, what we do is we ask volunteers to download the image or boot up an instance in AWS and log in manually using SSH and then execute some commands and check the output. I have this actually. So, this is one of the commands. So, one of our goal is or one of the test case what we say is no service should fail at the time of boot up. Like whatever the default things are should always start properly. So, the idea is you log in, you execute the command and then you check the output like nothing should have been failed. And this is just one example. So, there are things like AC Linux would be enforcing. We want that to be working properly. Like different packages must have been installed, things like that. But this I'm trying to tell you what we do as test cases. And this is how all the images get tested manually by people. And that's the exact point where the failure part comes in. So, the biggest problem we got in was about not tested enough. Because end of the day, it is human who are testing the images. There was no automated system at that moment. And like I think it was Fedora 22 around that time just before the release date, we made some kind of mistake which made the image unusable in certain ways. And the release engineering team was really, really angry because it happened just the night before. So, they had to work really hard to make sure that actual release goes out is working. And in another case, after a few months, we also have a project called Fedora Atomic project. So, Fedora Atomic is now the primary output of the cloud group, which is an operating system meant for containers, a bare minimal operating system with atomic states. So, that's meant for containers. But in between, we did a, I think we did a nightly release, which never had Docker. So, and you cannot install a package inside Atomic. It has to come directly from the, as a part of the operating system, but that was our mistake in a nightly build. So, we tried in various ways to fix this. And me being a very lazy guy, that's true.  So, my point was, it was difficult for me to every time go boot up a, try to upload an image to OpenStack or try to download the image locally and then go through various steps to make sure that a cloud image can boot on my laptop without having an actual cloud and then test it. That was my condition. And if we look into the next question about the projects. So, the way I was trying to solve my problem, I think many of you do the same thing. If I just asked right now, how many of you have any kind of pet project lying around on your laptop or in a corner of your server, which you use to help yourself in a certain part of your job? Do you have any such pet projects? Yes, no? So, we all know how this project starts, correct? It starts the open source way, scratch your own itch. So, you have a problem, you solve yourself. That's how most of the project starts. But then the next stage happens. I'm skipping. This is one such example. So, it can happen that you will find someone on internet that who is trying to solve the same problem in a wrong way. Or it might happen that you will find one of your friend or co-worker has the exact same problem and they need some kind of solution. So, what do you do? You generally help them out, correct? We all of us do. And we go like, hey, I wrote this best script or I wrote this Python or anything. I wrote this application. Why don't we use it? And we try to give them this simple project. So, what was before that? What was your baby? Suddenly, there are no two people using it. And instead of two people, it can become 100 people. It can be even bigger. So, that project can sometimes become something which is there in all of our work laptop or all of our server's places. But at the same time, think after six months, think after one year, what happens? How many of you actually remember what you wrote as a program script or email after six months down the line? I mean, or one year? Do you remember everything you did a year ago? Yes, no? Anyone? I also don't. So, and then, like as system administrator or DevOps, when we manage various these systems, and as I think most of us will agree that all of us have some scripts which helps us to automate some part of our work. How do you think what will happen like when your company or job will require some new guy to come in and actually fill in your soup? Will they be able to understand what you're doing in that script and the stuff? But at the same time, our main part or work is to make sure that we don't get into those failures at the same time. And for that, we are actually we want something which is there in all our computers. In my case, it was all our cloud systems, the operating system which will work on those cloud. And there are mainly those two main parts. One is base, the standard base. Not all the commands may be available to any particular installation, let's say default installation. And the other thing was Python. So I would actually tell you my talks may primary agenda today is actually to convince you to convert those base scripts into something more readable usable Python scripts. So yes, I'm telling you what is my rest of my talk is about. That's it. So this is the actually end result of my whole project, whatever I was doing. So it's a very small Python tool, like around 1000 lines of Python code, I guess in total, which can boot up a cloud image on a laptop, or it can actually now do vagrant images also, or it can boot up something in the AWS and execute a series of test cases, which can be which are actually basically any Linux command. And at the end of the thing, it will report generate a report and it will destroy that instance. So we use this right now in our production Fedora environment, as a part of the Fedora QA process, that we test every each and every build we do, every each and every cloud build. So I'm giving you this link right here, because if you want to check it out, it's there is completely open source licensed code, and you can actually install and execute it on your laptop.  But coming back to my problem, like we had those bass grapes and obviously, as you know, there are not many people who can come up in the beginning and help us with those tests. So now this is actually a line from a poem called Zen of Python. How many of you know about it? Zen of Python. So for the people who never saw this before, actually going to, it's not used enough. So in any Python, if you start Python interpreter, and just type these, actually import these in this case. So this is the Zen of Python. This is one way of saying what we love about Python, what we want to do in Python as a programming language. And you will find there are like thousands of explanations of this particular poem on internet. So one of the major part was readability counts. So think like this. For my work, what I had to do was parse some sort of configuration file. In my case, we started with JSON, and then parse it to a place where we can actually use it inside our code or script. And all of you, at least most of you are here bass experts. If nothing else, you know how to work around with the cell. And you can also very easily imagine how easy that is to do it in bass. And at the same time, how easy it is for a newcomer to come and actually understand what you do. I know it can be done very easily for many people, not for me though. But how easy it will become for the next fresh out of the college student or a CIS admin who never worked that much. So this is one of the example configuration what I have for my project. So in this case, what I say is it's with a name, it's a VM and the image which one to boot up and some RAM and the username. So I actually had a JSON parsing example from GitHub, but I don't want to show it here because it's too large, like how to parse that thing over. Instead, I'm just going to show what we do in Python. So we already, in the part of the standard library, we have a JSON module. So it provides two different, is this, thanks. So that provides two different methods. One is to load from a directly from file, or the other option is to actually load it from a string, like if you already read that information. And that will provide you a very nice, in our case it was a dictionary of the data we want to read. So the next thing, so we just had a tool which can solve our problem for us, but that's not the end of the thing. As I mentioned, one of our biggest problem was we never had enough people. In most cases, it's not a computer, human become the major issue. So it was same with us that we never had enough people to do the testing for us, other than the automatism pass or write new test cases. So what we did next was that we moved out from only those simple commands, but we moved into something you may think a little bit complex. We used something called Python unit test cases. So that command becomes something like this. If you're coming from any programming language background, you can actually understand most of this code. And what we basically check is that no units, loaded units, should fail. That's why zero loaded units listed as failed. But what is the benefit? What is the benefit coming out of that bad script into a Python unit test case like this? So for answer, I have a question to you again. How many of you actually have code running on your production which can do release blocking? This is a release blocking thing for us, by the way, which is written by second year college students in India? Anyone? Or you can think about if you don't have college students that way, you can think about interns. Do you have interns writing release blocking code? We do. Not interns, but volunteers, contributors, like one kid is from Bangalore, Farhan, one girl, Trishna sees from second year again, computer science student from Calcutta. So they wrote most of these test cases now, like over the last one year. And the benefit is that they already know Python as a programming language, which they learned, which they use in other places also. So what they figured out, like, oh, we can easily jump in and start contributing to this. And they can already understand, like, what is the effect out of it, that they can block such a big project like Fedora to be released. So before that, there was almost no one else coming in with new test cases. And almost in the last one year, I never had to write a single one, because we just had to document like, hey, we do you want to test this? And someone just came up, I want to write this, give me a day. So by nightfall, we already had the test case written, then we discussed about it. And all these test cases, by the way, again, are on GitHub with open source license. So later on, if you want to check it out, one of the major feature of the language, what we call is batteries included. That means the standard language, the standard language comes with a standard library. Python standard library has way too many different modules for you the batteries. So it has modules to do SMTP to send out emails. It has modules to, like, say, if you do not have enough networking related commands installed, it can give you a socket player, which can you can use. It has a simple HTTP server module, which I can use to create an HTTP server out of a couple of lines of code. I just can name all of them. So there are many. One easy way to look what you have. This is the standard Python 3.x, I compiled it locally. So it will show only the things which are there in the standard library, I hope. Like you can see FTP leave, stats module, URL leave, unit test cases, mock objects. So there are, is this visible? So there are various modules available right now for you in Python standard library, which is again there in all of your servers, which are running. So another thing, the language using a complete programming language rather than only basketting will help you out is about errors. So this is again a line from our poem that errors should never pass silently. So Python has a programming language provides you different various ways to look into the errors in a granular level. So I'm going to open up a code from the same project. This is again part of the, like I skipped few things. But again, this is a part of the code coming from the tuner. I guess, yeah, it works. So we can see like we can have exact error case conditions. And most of the Python modules, most of the Python projects you'll work with, they will have this kind of granularity, where you can see you can go get into the exact error statement. Even though many times it happens that the developers chose not to go through these details and they prefer to just say file or directory not found. That happens too. So again, this is one slide I actually added. I completely missed about it. But yesterday by Joe told me like, hey, we should talk about that part also debugging. You know how easy or difficult it is to debug in various programming languages. So if you want to full blown debugger any part of your code, you can just add the actually this one line, which is basically two statements import the Python debugger and just start the trace. And then you can go through the whole program. Most of the times I personally just use print statements.  Again, a little bit different thing, Python decorators. This is a feature of the language which provides us many useful solutions. So one of the things we have about our test cases is that our test cases can become today from a getting test that is that means that the same test can block a release from to a certain extent where it may not block a release. It still will fail, but it may not block a release or a test case can become something only for let's say AWS instances instead of all clouds. So we have or that's only one that's not only one single test case, it can become more than one. So think about a condition where you have to move suddenly like 100 test cases from one state to another state. Do you want to add if else loops or if else statements to all of the source code? So this is just one such example. You remember I said that we had missing Docker few days back. So this is where we are testing if the Docker is installed or not. But again, this is not supposed to run on a bare minimal base image, the cloud base image we have because that's for everyone. Not everyone will want Docker on the image. So this has to run only on atomic images. So what we do is we add something on the top of the function with the address sign, where we say that if it is atomic, then you go ahead or skip it. So I'm going to a little bit more details about this part of the code base coming in as functions as first class objects. So in Python, because Python has a dynamic language, you can pass around functions just like a normal data.  So I just have a function which will check if the number is greater than 10 and divisible by two. And if only that, then it will increment or multiply it with two double or else it will return minus one. And we have a function called map, which takes input. The first input is a function. And the next is a list of inputs which will apply to the function. And at the end you can see it did only for the values which are two in that case. And this is how we write a decorator. So this is the example of a very basic decorator. So where we are taking a function as an argument and returning another function as a result, the last line return wrapper. So what happens that if I go next, we have a normal standard function def hello. And just on top of it, I wrote the name of our decorator, adrid my underscore decorator. So even though we call hello, it's still automatically added those extra code, the extra layer on top of the function call. And it did, even after my function exists, that after the call. So you can add these features to, say, add some kind of special error checks to, let's say, 10 of your source code functions. Another major usage of Python in the system level is about being a glue language. It's a great glue language. That means you don't have to reimplement or write actual programs. But instead of that, what we do is, you use existing applications, existing scripts and code, and use Python to glue them all together. That's where one of the major feature for Python on system comes in. And that's where most of the operating system use it, use it as a glue language. I'm going to give an example again in the same problem. So I wrote to me, I thought, oh, we are done like we can automatically now test, we have people who are coming in contributing new test cases. So we had one final call. It's an IRC meeting actually on one of the Fedora channels. We go for discussion. And two weeks before production, the release engineering suddenly mentioned that, oh, we, by the way, you did something wrong in one way, that we also do Vagrant, and we have to test that too. We cannot just say that, oh, we'll test only half of it, we'll not test the rest of it. So as the part of the Fedora Cloud Group, we release Vagrant boxes, both for Fedora base image and the atomic image. So, yeah, it was just exactly two weeks before going into production. We are in stage environment, we just have to move it to production. And so our answer was like, okay, because we knew at that moment that we don't have to develop a new Vagrant. What we have to do is just use the Vagrant and test it out. So what we had code something like using this particular function call, subprocess.popen. This helps us to call any other random command within our opening system. If you remember before, there was a system call. It's basically a wrapper on top of this, but we wrote and our Vagrant code, the code base which actually does Vagrant, it does something like this. You may laugh at it. So it adds the image as a box and we already write down the Vagrant file and then you can see up the Vagrant. It actually calls the Vagrant up command with the provider because we test both on Livert and on VirtualBox. And again, we check the output to see if everything is up and running, if not destroyed. So if you remember yesterday's morning talk about crash-only software, so our tool actually assumes, I never actually never knew about crash-only software before, but in general our tool assumes that we crashed at the last time. So it tries to clean up everything and then come into a state to do so. And that happens a lot of time with Vagrant because it works really great over VirtualBox. But with Livert, sometimes, sometimes if it crashes for some other reason, it may give you different outcome. But again, using Python and using the calling the system commands, just like this, helped us to get the Vagrant feature up by next day morning. So it only took us a couple of hours to add the whole Vagrant plugged into the system. And we as you can see, we never wrote anything super new. We just all the steps one by one, the way you generally do in a basket also. But using a proper programming language, that gives us the option like, you know, the new people again, the same thing anyone can understand. And everyone even like in our community went through the point, they read the source code and they said like, okay, we can put this on production because if anything happens almost all of us can go and fix it. So yeah, this is the failure I was talking about. I actually have a blog post about it. So Livert, the storage was failing because we forcefully removed the image file. So again, that's our mistake as a programmer, but we did that at the first.  As I mentioned, from the community, what they're looking from us is that happy users, correct, happy cloud users. So they don't want us only testing for like one particular cloud. So today they may want us to test for two cloud providers. Tomorrow they want us for the third one or the fourth one or the fifth one. It can grow. So I'm going to talk a little bit about a project which we use inside our code base. That is called libcloud. It's Apache mod. It's a project from Apache. And it's already can give you options, same code style options for 30 different providers. That means you can fire up cloud instances over 30 different cloud providers, including AWS, OpenStack, Eucalyptus and many more. And when I actually used it, I used it, I just went ahead with this because I knew there are enough better documentation and I can use it with both OpenStack and AWS. I never even noticed that it provides 30 different providers. So now I know that when in future we'll be able to automatically test on any other cloud platform, we're going to use the same project and we don't have to increase our technical depth. This is again another point about C library usage. So Python as a standard, as a programming language standard, we make sure that our users should be able to use already written C applications, C libraries. So we have various ways. You can use something like CFI, CFFI or you can write your own extension by raw C by hand. And that's one of the major reason like our C extension code is is huge. There are so many different projects for which we have a Python extension written using C. And again, many people actually says Python is slow, correct? Are there anyone here who will say that? Yes, no? In some cases, yes, correct? So this again, this becomes easy way if you feel like, oh, I don't should not use Python, but instead of that, you can use that other library which is written in C or C++ and get it working with your Python code. So from the programmer's point of view, you will still be using Python, but you are using a library which is written in C or C plus plus. Now, the best part of the language, the language comes with a great community. All of you almost, most of you are here from Bangalore and how many of you heard about Bankpipers? Okay, only very few. For the rest of you, Bankpipers is, I think, one of the oldest and the most active Python community in India. We have monthly meetings here in Bangalore and some special workshops also. And it's exactly same in the global level. So if you go to Haas Python channel on IRC and ask any question, it's almost certain that you will get an answer. You can talk to almost most of the upstream developers over the mailing list and places. We have a core mentorship list where if you want to contribute to the language, you can go and do that. That way, you will increase your own scope into the whole language area, how it is improving for the future. Even all the discussion, what happens about how the features will change of the language that is there in public. And we have something called sprints on in the Python, Python US. There, the last four days of the conference, we all sit together in few rooms and we write new part of the language and different other projects. So if you, even if you are a complete newbie, you can come to us in the Python sprints or even one of the bankpipers meetup and you can start doing Python from there. Whatever I learned about Python or about programming in general, I give the full credit to community all the time. And for Python, I mostly learned a lot of things from JS, who is sitting there silently. So and that happened thanks to the community only. So at the end, I'm going to talk about two things, two particular Python projects, which are actually of great help for sysadmins. One of them is fabric. Anyone here used fabric before? Oh, so a lot of you. I just copy pasted one example from the documentation. Like this is not a difficult function, correct? Yes, no, anything? Okay, someone said yes, I guess there. Okay, I'm sorry. But yeah, so you have to learn at least this difficult thing. So and using the fab command, you can now after this, you can execute it over thousands of different hosts at the same time. So so if you have to do something over a lot of servers, a lot of different places, you can actually reduce to eat to a Python code, something like this and then execute and do some particular job. Let it be a git pull or deploy something else. Just thinking if I go more examples, no. So the other Python project, how many of you here already know what is this? So somebody said that, say it loud, shout it out. Ansible, correct? Another great example of a Python project, which is being used all over the world now to manage our systems. And I don't know if you saw it or not, but you can actually extend Ansible by writing your own Python modules. The source code is available. There are lots of great docs also. So if you want to use Ansible something super fancy, you can do that. Actually part of our project, my project that to me, particular case was being able to use Ansible so that we can set up complex systems, something like Kubernetes. As a part of the federal project, we actually publish our infrastructure details also. So we have a Fedora Ansible repo. I'll give you the link later on over Twitter to my slides. So the repo part is actually clickable. So you can go or you can search Fedora Ansible repo. So we publish all our roles, playbooks, every details on internet so that you can actually reuse parts of them. Documentation, how many of you think documentation is important? So I try to talk about documentation at least once in most of my talks because I find it like one of the most critical thing of our work. So we use something called RST restructure text to document most of the Python projects. So if you go to any of those docs in readdadocs.org, all of them are written in RST. And the presentation you are actually looking at right now. I also wrote it using RST. There's a Python 3 tool called hovercraft. So I can actually and this is the same way to write doc string in every Python function. So when you write some Python code, you also want to mention correct what it does. Or when you do help on up some Python code, it shows you those doc strings and you can write the same restructure text there. So that's the end of my presentation. And I think I'll open for some questions now. I should have at least eight, seven, eight minutes. That's my Twitter handle. If you want to have and want to know anything about Fedora or how we are doing in the cloud, or if you want to come and volunteer or you want to use the same technologies of your place, you can come and ask us over the Fedora booth. We'll just point you to the right link. Hello. Yeah. Yeah. Not really a question. I just want to stress a very important thing that we have to do is we all are involved in operations in some capacity or other. The fact that we we are an open source community, I'm talking about Fedora, we are an open source community and we have our entire Ansible modules, playbooks, everything is open. And that says a lot about what we are trying to achieve here in terms of community relations that you can actually browse our entire infrastructure code. We have that sort of faith in community and that sort of, you know, inviting to please help us, please, you know, help us in contribution. Yeah. I mean, he is also part of the Fedora infrastructure community. So yeah, other than the passwords and few other things, I mean, few other variables, everything else is open there for you. So you can take that and start using it in your production system. And yes, we use that thing only. I mean, right now, I think all of our production and staging environment is on Ansible and all of the things are available in the repo. So you can trust our like code to be used in your production also. Like any other question, anything related to Python or any open source communities or stuff? Or like if you want to start and nothing really about that. So it's about the fabric. OK, so I teach Python and then when I'm teaching Python to develop, I can tell everyone to go and use fabric. But I always get this trouble. OK, so I teach Python 3 and when I go to fabric, fabric is not a ruler for Python 3. So you end up do everything else in Python 3 and just for fabric, you have to go back to Python 2. Yeah, so. So what we try to say that if you're someone is learning Python right now, you should learn from Python 3 itself because that's the future of the language and moving from Python 3 to 2 is very easy compared to if you know only Python 2 and if you want to move forward to Python 3. So yes, there are some projects which are still on Python 2 only and sometimes it's difficult. But the basic of the language is most of the time is same. But the test cases which I showed those are all Python 3, by the way, because from a default Fedora installation only has Python 3, not Python 2. The other thing is what in slides I saw you said Python 2.8. What's that? Oh, you got the job. Yeah, I know. I was meant to be caught. I just put it up just to see if people are actually noticing what I am doing on the screen. So yes, there will be no Python 2.8. Thanks for noticing that. So Python 2.7 is the last major release of the Python 2.x. We'll be doing bug fixing. But all the major releases, all the new features will be always on Python 2. 3.x series that is 3.6 upcoming. So there will be no Python 2.8. Thanks for noticing that. Any other question? By the way, if you want a Python resource, like there are so many, we have great tutorial documentation. I also have an open book on the internet called Python for you and me. You can just Google about it. It's again on restutter text on the readerdocs.org. Yes, please. Yeah. Yeah, I can see you now. Yeah, so question on Ansible. So is this a like a computer for Chef and Puppet, you know, for deploying on cloud or is it more on your own infrastructure? It's, you can say it's almost similar thing and it's not only for cloud, you can use it anywhere in the same way. And it's written again on Python and has its own features. So I'm not an Ansible expert to, you know, tell you which is better or why it is better. But yeah, it is exactly the same. Yeah, they are in the same space. Yes. So you can just type Ansible and these days, like too many people are using it. So you'll find a solution. Anything else? Yes, back. Yeah, I'd like to add to the Ansible Chef thing. I don't think Ansible is like a direct computer to Chef or Puppet. We use both of them together. You know, you can use Chef and Puppet for your config management and you can use Ansible for, you know, having like run these parallel commands, have some sort of a dynamic inventory for your network devices and stuff, right? So they can coexist together, provided you decide the use cases for both of them. Yes, and Ansible right now can actually do network configuration also. So it's like in Fedora, we use Ansible for everything, like in case. So depending on your use case, of course. Any other question? Hello. Hello. Done. Oh, yeah, okay. Can you throw some light on the project atomic and how different it is from CoreOS where people think like you know, every component of the kernel is a Docker container. Rather than there are two approaches. Where you have a microkernel or you go with containers. Everything is. Yeah, so I have someone better than me here to answer. So can we get the mic to hear? So here's from the project atomic team. Yeah, hello. So I'm out of the right. Yeah, you can stand up actually. OK, so project atomic is in the same space as CoreOS, obviously. But there's a lot of difference in terms of if you look granularity of the project. So project atomic actually is a framework. It is not operating system. But using the framework, we can create the atomic host from the existing packages of Fedora, CentOS and Red Hat Interpen Linux or any RPM based operating systems. Right. So what is the benefit? The benefit is the trust chain we have already that we actually build a trust chain RPM. So RPMs are basically secure, signed through GPEG and all the stuff. So we create an operating system for containers out of all these RPMs. And the way the name suggests atomic operating systems is basically set less. So when you start the operating system, the whole operating system stays in one state. When you upgrade it, it goes to another state. And if this stuff doesn't work for you, we can revert back to the previous state. It's like it for operating systems. So the idea is when you run containers, right. So the operating system is like the catcher. You should not worry about the operating system much. The attention should be on inside for the application to the containers. So how do we create an operating system that will reduce the work of operations guys or sisters? I mean, so that they spend less time maintaining the operating systems.  There's so many other things around. But they're competitors. Yeah. Any other questions or else I can go down? Yeah, no, we're going to wrap the questions for now. Okay. So I'll be there in the federal booth. So if you have any questions throughout the day, come and meet me there. Thank you.


Is it on? All right. So who in this room doesn't know what a pull request is? There's at least one, perfect. Two. All right, so a pull request is essentially the, it's the github word for it, really, for just requesting a code review for some sort of change. And in reality, I was talking to a few people, I think it was during lunch or last night, I don't remember, and there was some conversation about how people would use github for like planning their wedding. So that's kind of a completely different way to do it. So we're gonna dive into, pull request, I'm just using as a very general term for just, if you're in a situation where you deal with a code review and it sucks. So to start out, that is a live github repo. So github.com slash AU Smith slash how not to review a pull request. If you wanna copy of the slides because I will have some links in them, this way maybe you don't have to take pictures. So let's look at a maybe possibly decent pull request comment. So here I'm specifically pointing out, hey, these are, you may not want to do this, you may not want to use the same ID here because here's a link to the documentation that says how we can't do that. The action items are very clear for you person and this is the last good comment that's going to be in this entire presentation. All right, so in my professional career so far, I have seen four types of code review behavior. There's timid code reviews, so they're going to be, or rather rabbits. So questioning their statements in the code review may lack conviction, so it's hard to determine exactly what to take as the action item from them. Then there's idealists that they're probably not really reading your code, they're probably a little more interested in their solution for the problem. Then there's Spartans, so they're going to be a little bit more terse, hard to get further information from. Maybe their comment was just straight up missing information, or maybe it was just something really short, like fix this. Then there's tornadoes. So these would be a bit more indiscriminate, so when you submit a pull request on GitHub, it will actually highlight trailing white space.  Sometimes a little overzealous. So these are especially more entertaining when you start to combine them. So someone who's not, their comments don't have a lot of conviction, but they come in on absolutely everything. Or maybe Spartan idealists.  Or Spartan idealist rabbit, oh. All right, we've exceeded my Photoshop skills. So let's look at some actual code comments. You may notice throughout this presentation from here on out, there's little cat personas. Those are actually my cats. Fun aside, my partner bought that little outfit for our cat just for this presentation. Okay, so let's say Business Cat here is my engineering manager, and I just submitted this code change that has this changing operating systems. And so they comment, did you even read the memos? So at this point, I'm totally frantically reading through my emails, trying to figure out what the hell I missed from my manager and wondering whether or not it's gonna come up in my next review. Or how about if I submitted an open source change, and I was just straight up told, delete your account. I kind of don't feel okay with that one. An I statement, I don't feel okay with this. Or if someone just said, why would you even do this? Like me reading that, I'm totally like, why would you even do this?  And it's not like I went out there and had this as the title of my pull request. Though you may actually notice if you go to that GitHub repo reference at the beginning that this is actually the title of one pull request on that repo. This is not typically what we're seeking when we submit a code change, right? Let's look at a few more that are on the more passive aggressive side. Like just fix this. So, all right, sure. I happen to know just because the spelling's very obviously wrong here, but what if that was a slightly more abstract situation? Or on that same really light code change, maybe change this to do something useful? Yeah, that doesn't feel great. Or how about just a link to the correct spelling? The second comment there, whatever, this is fine. Totally would have been acceptable and made me feel just as badly if they had done that this is fine dog. Or how about this is not bad for someone in your position. All right, so notice that all of these were totally attacking the actual author of the change and they weren't focused on the actual code that we were trying to make changes to. What was nice about not being first in artifacts today is that multiple people, both John and Aisha, mentioned taking a deep breath and that's gonna be kind of our focus here. So that concept is called active pausing.  So one example is taking a deep breath, right? Or this might manifest in the form of you taking a five minute walk before giving a response or maybe you pause before responding to an email, like you write out all of your feedback and then you just minimize that window and come back to it in half an hour. The goal here is not to bottle it up. It's not to say, okay, so I felt that emotion so now I'm gonna completely ignore it and I'm never gonna go and do that fit on the mattress in the middle of my living room later, like John was describing. It's instead to identify what emotions you are feeling, consider why you feel those emotions, think about your desired outcome and that one's important. You need to think about what you want to happen with your follow-up interaction with them and then choose the responses most likely to achieve that outcome. If you're interested in reading more about active pausing, the first two are more focused on the definition and the last link there is talking about some physical exercises that you can do like stress balls and the like. All right, so let's talk about typos. Sometime they can be totally harmlessly funny, like take capsule till dead or embarrassing. We remember all who served hot breakfast, who had served hot breakfast. Or downright insulting like the Lyndon B. Johnson School of Pubic Affairs. Fun story about this one. So Lyndon B. Johnson's school apparently issued an official apology and sent out new copies of the commencement program afterwards. That was nice of them. So how can typos, I mean, I don't know that I would have wanted to keep that but I probably would have burned it and enjoyed that cathartic experience. So how can that actually affect a comment in a code review? We have made the mistake of overcomplicating things before. We should now make this mistake again. I think they meant we should not make this mistake again. And assuming this is my engineering manager, it's got double meaning, like do they want us to overcomplicate that, I don't know. My point though is that written communication presents many avenues to misinterpretation.  I think that was supposed to be you hit on all the points. I think connotation is important. Like what an innocent change. So was I supposed to know better? Is that an insult or emphasis? Like when someone writes why not try X? I might read why not try X? Like questioning me or why not try X? Like hey, maybe this is a better solution. Or commas are really, really important. So I definitely did a double take when this one showed up in an email a couple weeks ago. I have too soon to be three children and wife. I'm not sure if they wanted to say sons. I'm also not sure if it's a wife. So I'm assuming they meant I have too soon to be three children and a wife, I think. All right, let's go back to this. So, hey, delete your account. That sucks, right? Or how about what were you thinking? It was more like Darth Vader from episode three in Star Wars, right? Just shouting in the sky. So, exactly. So this one actually has a interesting story and is one of the few non-fictional comments in here. So I was being told, I went out asking others, coworkers and friends, some examples of bad code review experiences they had had. And this was a college friend said that they had just graduated, they were their first week into their job and they submit this and they're excited and they submit their first code change. They submit their first pull request. And this is a 50 to 100 person company and this is the comment that her CEO pops into this first pull request. Their self-confidence is shattered at this point, right? How about I would consider your solution if you had senior in your title. I'm seriously not sure why senior in my title would matter at all here. This one is not a true story, by the way. Oh, for me. So these boil down to the concept of psychological safety which came up as the number one key factor for a successful team at Google after they did an internal study, I believe the year was 2012. And it's the concept of can we take risks on our team without feeling insecure or embarrassed? Alex Harms, so earlier this week, there were apparently a few conferences earlier this week besides RailsConf. So DevOps Days in Atlanta was Tuesday, Wednesday this week and Alex Harms did this really good presentation which I highly encourage you checking out called Psychological Safety the Hard Parts. And she had this really good comment saying of nobody, wow, I spilled nobody wrong. Nobody sets out to do the wrong thing. That's impressive. All right, that one's not intentional, right? Also if you wanna see an absolutely awesome presentation I recommend that Vimeo link cause she is presenting at the Lean Agile Scotland conference and her slides end up not working. So she ends up doing the entire presentation without slides which was freaking awesome. Similar to the talk we just did actually. And without this sense of safety we tend to see teams have a breakdown of creativity and support within the team and the result is usually a decrease in productivity. That link is from an O'Reilly conference where a Slack manager came in with a Slack join Slack as a manager and they had a product that they had to produce within two months of her joining the company and this is where I was first exposed to psychological safety. All right, let's go back to some code comments. You should initialize this variable before entering the loop. All right, well I'm pretty sure I did that on line 15. So did you miss it? Or maybe suggesting that four char in characters should be four C in characters? Like that seems a little pedantic. Or how about the all important naming problem where they just kind of generally are, I'm not sure they read the actual code at this point. So for me these boiled down to a concept that called trust but verify where if for example, this individual had instead trusted the person who wrote the code to have at least run it once, they probably would have known that, hey it was already initialized first. This concept where you're willing to trust your teammates, like you hired them, right? So you're willing to trust your teammates and also verify what they did. I think this applies to both technical and human problems personally and I try to apply it to my everyday. A recent example of this was a coworker of mine was fighting with a technology called RabbitMQ and he had been handed some, he had been handed a set of certificates from another team who had tasked us with spinning up the RabbitMQ server and he was bashing his head against the problem for like three days where it just wouldn't run and then he realized that the certificates he was handed were actually bad but it took three days of troubleshooting for him to find that. So totally trusted the other guy to do the right thing but forgot to do the verification step. This sort of comment like what test cases has it been verified against? I encourage everybody to put that sort of review comment in code reviews. This doesn't need to be fictional. So, let's say that Count C here just missed it. Let's give them the benefit of the doubt. We're all human. We all make mistakes. We're emotional beings. Shit happens. Adam Osborn who I didn't learn about until I started putting together this presentation looking for good quotes. He said, people think computers will keep them from making mistakes. They're wrong. With computers, you make mistakes faster. And this kind of lines up with the mentality today that we should fail fast, right? Though I kind of disagree with the concept of we use computers to fail more. I don't like that idea but I definitely like the rest of the concept and if you're curious about Adam Osborn. Apparently in 1981 he was working on portable computers. So that was cool. All right, so what I hope you take away from this presentation. Active pausing is really, really useful for being able to get to a positive outcome when you start to feel emotional or feel an emotion, not emotional. Written communications are really hard and really easy to misinterpret. Psychological safety helps teams be productive. So creating that safe space for other people is really important. Trust but verify. You'll be happier, I promise. And we all make mistakes. The obligatory slide of a lot of links and why I made this into a GitHub repo in the first place because I didn't want people to be like, what the hell are all these links? The first two are focused around the code review process itself. That very first one actually is a great presentation that a blog post about a presentation at a conference earlier this year on basically the same topic that this ended up being. Fortunately I had already submitted the abstract at this point. The second one is a good blog series. The third item is actually a talk from Uptime Conf last August here in Pittsburgh, which was, it was really, really good. If you wanna watch someone present better than I ever will in my life, I encourage that presentation, but that's where I learned about Trust but Verify. We mentioned the successful Google teams. We mentioned the Slack engineering manager. Anatomy have a great pull request. This is a member of the Rails core team talking about his experience reviewing open source pull requests and what makes them good and easy to review. And then the last two are if you're interested in the concept of mindfulness, which active pausing is a part of mindfulness. John Kabat-Zinn is considered the foremost expert in the subject and Time Magazine thought it was an important enough topic to do an entire issue on at the end of last year. So thank you very much. Thanks for your time. Those really are my cats. We do take lots and lots of pictures of them. The obligatory comment that I failed to mention at the beginning is I worked for a company called Pindrop.  So yeah, thanks for your time.


The smart irrigation smartwash discussion paper is developed by the Land and Water Division of FAO as a contribution to the topical debate on the rapidly evolving situation of COVID-19 and its impact on nutrition and food security beyond the well-defined health risks. End-outly, exploiting irrigation potential has a major role in enhancing food security. However, expanding irrigation entails considerable growth in water use. Meanwhile, provision of safe water for sanitation is the precondition to slow down the spread of the pandemic. The twin-track smart irrigation smartwash approach clearly embodies that water resources should be employed for multiple uses in order to respond to both food security and health needs. The fight against the pandemic is a marathon, not a sprint. As far as emergency interventions can be highly beneficial in reducing the most negative impacts of hunger and pandemics, countries are required to define their strategies to protect the most vulnerable and ensure resources are available for the most basic human needs – food security and human health. This evolving assessment starts with the identification of geographical hotspots of COVID-19 impacts in the context of agriculture, food production and hygiene. The mapping is carried out along largely agreed risk indicators of food insecurity and health. The probability of food security impacts is assessed through irrigated agriculture and the probability of health impact through the provision of safe water. Countries with the most overlapping levels of vulnerability are identified as potential hotspots. On the other side, the spreading trend of the pandemic is analysed considering also the reliability of reported cases. The intersection between countries with high vulnerability related to agricultural production and countries with high vulnerability related to the pandemic spread are finally defined as geographical hotspots. After the vulnerability mapping and analysis investment categorization matrix is completed, the investment packages for interventions can be proposed for the affected countries. Here we can divide the investment packages into two levels of interventions – the on-form level and the system level. There are hundreds of system level water conservation technologies. However, a set of selected technologies that meet the multiple use criteria are presented in this paper to address the challenges under consideration that is the food security and public hygiene.


The 9th Senate has sustained a query issued against the National Examination Council by the Auditor General for the Federation for allegedly awarding a 6.5 billion-hour contract without following due process. This query is contained in the Auditor General of the Federation 2017 report, already been considered by the Senate Public Accounts Committee. The Auditor General of the Federation said the contract involved the printing of security and non-security documents by the examination body. The chairman of the SPAC, Senator Mathew, said the NECO management did not sufficiently defend the contract award process. The committee sustained the queries on the grounds that NECO could not provide evidence of approval from the ministerial sender's board before awarding contracts beyond its threshold.


The goal of the commercialization process is that the research evolves to something more that can benefit you and society. If UIA has decided that they want to take your idea further, the process of commercialization begins. The first step will be for you and UIA to decide upon the ownership of the project. Then, UIA makes an agreement with the commercialization partner. The commercialization partner, UIA needs shopping and you will discuss the plan, participation and further work. Your idea will then be analyzed by a professional team. Then we have something called the verification phase. Our team performs activities such as impact exploration, business development workshops, funding advice, concept testing, rights protection, prototyping and establishing contact with customers and users. This phase can be financed by National Fournier 2020 and you can choose to participate in a way that suits you.


Fel y cymdeithasol, mae'r 1st amser yn gallu cysylltu rymdangosio, a'r 1st amser yn gweithio wahanol, gyda Llaner ac gwirionedd y digwydd, mewn sumpolion yn gwybod ein dymлю wedi cael ei ddweudau i ddweud y cysylltu rymdangosio. Felly, mae'n gweldion wedi cael ei ddweudau. Ryghwm yn y cysylltu, nr 1, ac mae'n gweldion hyd yn ddweudiedig, rydyn ni'n ddweud i'r Rhyw Llineard. Thysgfwrdd, namen nhw gwrthogau GFG payfydd yn byw i gwyllwyr gyfoedd yng nghymru a'u gofydd. Mae GFG yn gweithio i'r gyfwyr ar gael cyfryd gyflym PNNG i'r cyflwyf gynniddiol gwyllwyr o'r gwyllwyr gyflym PNNG i'r cyflym PNG i'r cyflym PNNG i'r cyflym PNB i'r cyflym plataformau Mae gwirionedd ar y gyffredinant yn ymddangosion gyffredinant. Richard Leonard. Mae'r cwestiwch cwestiwch yn ymwyno gyda'r Sanjeev Gupta ysgawdd 25 yma, ond mae Mr Gupta wedi cael gael, yn ni'n cwestiwch cwestiwch psyllfa ar gyfer a llun, y多af code l amendment cael seithi eich pethur,huwch, tiwl poECT yn benddo'i, acute honno, Chris Howe ac yn booz materialeid, eraill i ddech chi i fan gwaithommenau sy'n gweithio'i rhan o mawr. reducing mae'n adref,続ed yn gallu ei regard arwpu i'ch kopi swyddi erroed. Mae'r adref a genedlaeth mae'n adref i ddechrau dosbyn nhw, ac mae'r bidion o brydwyr yn cael ffr�isi dweudio i dalethog ar parade cael wneud. Da everything it is not unusual for meetings that have been arranged to have to be postponed or rearranged. I have already confirmed that, with the change in portfolio, I am currently arranging to meet the executive chairmen. I cannot comment on any on-going live investigation, but what I will confirm is that regular contact is on-going between officials and GFG alliance, and as I say, early in my tenure I am arranging a meeting. I also want to put on the record that it was absolutely right for the Scottish Government to intervene to save the Lochaber smelter and we will never apologise for taking access to safeguard and promote jobs in industry. As I say, I'm looking to meet the executive chairman and I shall be glad to update Mr Leonard on that meeting. Briefly Willie Rennie. We were promised 2,000 jobs at the Lochaber smelter but hardly any have emerged since then. We are very concerned that there was supposed to break ground for the new billet plant last year, but it hasn't even started and production was supposed to begin next year. Can the minister tell us what on earth is going on? There's over 90 years worth of experience of Aluminum making at Fort William and it's a national strategic asset and that underlines the Government's involvement with them. On the matter of jobs, which I agree is very important, GFG has created over 40 new jobs in Lochaber since 2016, increasing direct employment in the complex to 214 and, of course, supporting a valuable supply chain with hundreds of associated jobs. Question 3 has been withdrawn. Question 4, Clare Baker. Thank you. To ask the Scottish Government whether it will provide an update on its review of how to increase the number of corporatives, social enterprises and employee-owned businesses as part of the move to a wellbeing economy. I'm very happy to, Presiding Officer. The independent review, which is focused on increasing the number of social enterprises, employee-owned businesses and cooperatives in Scotland, is due for completion in spring. The review group is being chaired by Neil McEnroy, who is the global lead for community wealth building within the Democracy Collaborative and Chair of the Economic Development Association in Scotland. The review process will ensure that expertise from right across those business models will be considered and I look forward to receiving its findings. Clare Baker. I thank the cabinet secretary for that sponsor. I look forward to the review, which has been delayed. We have been waiting for it for a wee while. We know that in order to achieve the aim of 500 employee-owned businesses in Scotland by 2030, there needs to be a significant ramping up of related activity. The cabinet secretary will know that new cooperatives are more than twice as likely to survive than other start-ups and cooperatives are five times less likely to cease trading than other businesses. What is the Scottish Government going to do to increase awareness of cooperative business models for potential new businesses? How is it encouraging existing businesses to consider adopting those types of models? Will the refreshed end-set provide answers to those questions and the set change that we need? I would say that, like Clare Baker, I am absolutely in agreement of the importance of ensuring that local people and businesses have a meaningful role in owning, producing and benefiting from the wealth that they create. I absolutely support that as a wellbeing economy secretary and I have seen great examples of it in my constituency. In terms of actions to be taken, I will very much draw that from the review when it is complete. I am hoping to receive a very wide spectrum of views as part of that and I will draw any actions in support of that target that she rightly mentions from that review. Question 5 has been withdrawn. To ask the Scottish Government what discussions it has had with the UK Government regarding an increased windfall tax on the excess profits of large oil and gas companies in light of reports that the income from any such tax could be used to support households struggling with the cost of loving crisis, including in Scotland. Households across the country continue to face a serious cost of loving crisis due to the UK Government's economic mismanagement. We support a simple, holistic and predictable windfall tax on oil and gas company profits to help with that, but Labour's plans to increase the current levy to pay for nuclear power plants in England is simply wrong. I hope that Carol Mawkins, in her position today, perhaps to outline how much additional revenue she predicts would come to Scotland in the next few years should Labour form the next UK Government. I am sure that she wants to be transparent with people of Scotland to be held accountable should that investment not be for coming. It is the Government's responsibility to answer questions. I ask the minister if she thinks that it will be a disappointment, but possibly not a surprise, that the SNP and the Green Government have placed themselves firmly behind the oil and gas giants on this issue rather than working people. This policy could create funds to support households struggling with the cost of living, but the SNP would rather protect the eye-washing excess profits of those at the very top. Can I ask the minister why she thinks that her party is more aligned with Douglas Ross and the Scottish Conservatives on this issue than with the working people of Scotland? Carol Mawkins is asking me about a policy that is reserved to those in the party of government down in the UK. I think that it is fairly acceptable that I ask her, given that her party is hoping to become that UK Government potentially this year, what their plans are with regard to a windfall tax and what, if any, ring-fenced funds might be deployed in Scotland as a result of that windfall tax. I reiterate my point that it is fair enough for anyone to ask anybody who wants to be an incumbent of number 10 what they want to do with that windfall tax and what they want to support. If the answer is that they want to support nuclear power plants in England, I would say that the Scottish people will make a very clear judgment. I also say in the answer to our question if I could hear myself, Presiding Officer. Minister, could you please resume your seat a second? There is far too much heckling going on while the answer is being provided. Let's have the courtesy of listening to the question and listening to the response. Minister. I would also say that a UK-wide EPL has been in place since 2022 to tax the windfall profits of the oil and gas sector, which every party signed up to. It is the level of that tax and the unintended consequences that there may be for jobs, particularly when I come from in the north-east, if that windfall tax were increased. Thank you, and supplementary Jackie Dunbar. Thank you, Presiding Officer. While the Scottish Government continues to do what it can with its limited powers to ensure folk receive the help that they need during the Tory cost of living crisis, can I ask the minister what assessment has been made of the potential long-term impact on jobs and folk's energy bills of Labour's aggressive windfall tax plans for the North Sea, coupled with Keir Starmer abandoning his £28 billion green investment pledge? Minister. I think that my last answer to Carolyn Mack, and I actually put that very question to her because the result, the long-term impact on jobs and people's energy bills on Labour's plans has not been articulated. The Scottish Government continues to do what it can to ensure people who need it most receive the help that they need during this cost crisis. Offshore energies UK, of course, has made clear that Labour's windfall tax proposals could cost tens of thousands of jobs and impact investment in the sector. We believe that Labour's plans are so jambolic. The industry believes that Labour's plans are so jambolic, having been revised numerous times. Jackie Dunbar makes a very good point when she brings in about her headline 28 billion investment pledge being dropped entirely, not given any certainty for the transition of the energy sector. That zero investment is the greatest economic opportunity we have as a nation, and it's critical for our climate and social justice ambitions. It's also critical for the future of where Jackie Dunbar represents, and it's disappointing to see Labour's equivocating at a time when this investment is so needed. Question 7, Murdo Fraser. To ask the Scottish Government how outcomes from the new deal for business will be measured. The new deal for business is about resetting the relationship between government and business, aligning our objectives and working in partnership on policy goals to support a thriving wellbeing economy. The new deal for business metric subgroup is developing a set of metrics on business sentiment, engagement and confidence, which will be used in conjunction with indicators to measure outcomes from the new deal for business. Murdo Fraser. I thank the cabinet secretary for her response. The new deal for business when it was announced was warmly welcomed as a change in direction from this Government, but it's fair to say that its members are now bitterly disappointed that their voices have not been listened to across a range of issues. There is a chance for the Government to redeem itself. Just this week, the Scottish Retail Consortium highlighted that the large business supplement payable in non-domestic rates is currently double the rate payable by businesses south of the border, and that will cost Scottish businesses £125 million extra over the next two years. If the Government is serious about listening to business and delivering on the new deal, will it commit to reducing this Scotland-only surcharge? As regards the new deal for business, early in my position as the economy secretary, I've met my co-chair, and I'll hold the first delivery board next week. I've already been clear that I want, and I know that the members want, focused agendas, business-like agendas with measurable output. In respect of support for business, I am acutely aware of the pressures that have been bearing down on business in Scotland, not least from the extremely difficult financial circumstances, many of which are created or exacerbated by Murdo Fraser's colleagues in the UK Government. In the most challenging budgetary settlement in the devolution era, we've had to make difficult choices in order to protect our public services, including our NHS, but I remain absolutely committed to working with the business community, understanding what they would like to see, and advocating for that. A couple of supplementaries first, Gordon MacDonald. Last month it was announced that the UK went into recession in 2023. Can the cabinet secretary tell us, chamber, whether the new deal for business designed to support economic growth had an impact on the Scottish economy, helping it to continue to grow, or did we follow the UK into recession? Cabinet secretary. I would characterise this as the failing UK economic model, saw the UK Government enter a technical recession at the end of 2023 with two consecutive quarters of negative growth. The Scottish economy is, of course, being intrinsically bound within that failing model, still battling against some of the extremely challenging circumstances, including self-imposed Brexit and the self-imposed disastrous mini-budget. It is encouraging, however, that, unlike the UK, Scotland has avoided a recession in 2023. Daniel Johnson. Metrics are clearly vital to track and progress on the new deal for business. Can I ask what the Government's responses to yesterday's report from the CBI in Fraser of Allander are, showing that Scotland lags the UK average on 10 out of 13 productivity metrics? Is the Government going to use those metrics, and when will we see improvement? Cabinet secretary. I, like Daniel Johnson, paid very close attention to CBI's release from yesterday. I thought that it was a very interesting account of various opportunities and challenges currently bearing down on the Scottish economy. I'll continue to engage with CBI on much of the points that they raise. I go back to the answer to my first question, which is about the importance of the new deal for business and those metrics that we're developing as part of measuring the outputs which I will very closely foster with the members of the group. Graham Simpson. Thank you to ask the Scottish Government whether it is on course to achieve its 2030 target for reducing emissions. Cabinet secretary. Scotland's emissions have halved from 1990 to 2021, and at the same time our economy grew by 57 per cent, which I think is a fantastic example of how economic growth and decarbonisation are mutually inclusive and reinforcing. Scotland's 2030 target, which every party in this chamber voted for, was always extremely stretching. Indeed, the Committee on the Climate Change was clear at the time. It went beyond what they would recommend. However, I will continue to push to meet our targets through direct action in Scotland and by working with UK Government, pushing them to take the action where that's needed. Graham Simpson. I thank the cabinet secretary for that answer, but she didn't actually answer the original question, which was whether it's on course to achieve the target. It is a stretching target and to achieve it would require an 8.9 per cent annual reduction in emissions from 2021 to 2030. Can I ask the cabinet secretary has she had any discussions with the climate change committee on this and what do they say about whether Scotland is on course to meet that target? Cabinet secretary. The Committee on climate change are statutory advisers on decarbonisation and, indeed, on the pathway to 2045. Of course, I have had conversations with the Committee on climate change, both on our near-term and mid-century targets. I am extremely proud of the progress that Scotland has made today, but I am utterly clear-eyed about the challenges ahead, not least that very near-term challenge up to 2030. I am considering all those matters very closely, particularly in respect of the need to produce a climate change plan. I will update Parliament on any decisions that have been made in due course. I have got a number of supplementaries. I will look to take all of them first. Bill Ked. Thank you very much, cabinet secretary. We are here, we here, all acknowledge the fact that, while Scotland is tied to the rest of the UK, the progress of our emissions targets will continue to be impacted by events at Westminster. Can the cabinet secretary therefore outline what impact UK government policies such as rowing back in climate commitments and cutting Scotland's capital budget by almost 10 per cent has had and may continue to have on Scotland's emissions targets and journey to net zero? Cabinet secretary. The rowing back on various critical policies by the UK Government, including the Prime Minister's announcements last year, has the potential to have a devastating impact on our environment. As was pointed out by many commentators at the time, it is a great complete economic literacy. More than that, it has also inflicted a serious further blow to the UK's already diminished international reputation. I have to also mention the budgetary settlement that Scotland has been handed, and in particular that almost 10 per cent cut our capital budget over the next five years from the UK Government. All of that taken together, does rather point to a Government completely unserious about the threat of the climate emergency. Thank you, Deputy Presiding Officer. Last year, it was revealed that Scotland had yet again missed its legally binding target for cutting greenhouse gas emissions in 2021. I was glad to hear that the Scottish Government have accepted or partially accepted 99 recommendations made by the Climate Change Committee. Can the cabinet secretary outline exactly what progress the Scottish Government has made in implementing those recommendations to reach this 2030 target? Deputy Presiding Officer, I mentioned in response to a previous answer that I am really proud of what this Government has achieved in respect of decarbonisation. Whether it is planting 75 per cent of all trees in the UK and Scotland in recent years, £0.25 billion investment in peatland restoration, 37 per cent of our waters being within marine protected areas, having developed four low-emission zones, having completed the world's largest round of offshore wind, floating wind, all of that has helped to contribute to the fact that we are now halfway to net zero. However, as I've also said, I'm very clear eyed about the challenges ahead and I'm considering all of that in respect of the development of the climate change plan. Key Forbes. Does the cabinet secretary accept that a lot of businesses in Scotland are very keen to help the Government meet that net zero target? One of the things they hate more than anything else is when targets are shifted like they have been under the UK Government that are more interested in winning elections than actually securing net zero. Cabinet secretary. Absolutely. I think in terms of the trajectory for net zero, as with most things, certainty and clarity on direction of travel is what business and investors seek the most. I would point to the coming together of the economy in net zero within Scottish Government as something which ought to give business a great comfort in that regard. As far as I'm concerned, the energy transition is the era-defining opportunity ahead of us economically as well as being an environmental imperative and I'll continue to pursue that. Morris Golden. Deputy Presiding Officer, when will the 2013 household waste recycling target be met? Cabinet secretary. As Mr Golden knows the circular economy bill and waste route map is currently progressing through parliamentary committees led by my colleague Lorna Slater. It looks across a spectrum of commitments that were made some prior to the climate emergency and looks to update that and I know that he's part of the scrutiny of that just now. Insofar as he's not been able to ask those questions of my colleague Lorna Slater in committee, I'll endeavour to have a written update provided to him. Older inter-Island ferries of which Shetland has several over 40 years old were not built with net zero targets in mind. Ferry emissions make up a large proportion of Shetland's emissions output. What assessment has the Scottish Government made on the impact of replacement vessels and short subsea tunnels to connect communities and reduce emissions? Cabinet secretary. The suite of options for better connectivity for our islands is currently being considered as part of the islands connectivity plan. It is led by the transport secretary Fiona Hyslop. Beatrice Wishart is absolutely right to point out the need to decarbonise our ferry fleet. We have to recognise that there is a pace that that can happen in line with the technologies coming on stream and being commercially available. This is something that I'm currently discussing with my counterparts throughout the UK in respect of the emissions trading scheme. Thank you. Douglas Lomstone. Cabinet secretary, from her discussions with the Climate Change Committee, have they advised the Scottish Government that they will miss its 2030 emissions target? Yes or no, cabinet secretary. Cabinet secretary. It has always been the view of the Committee of Climate Change that the 75 per cent target by 2030 was beyond what was achievable. They advised the Scottish Parliament of that prior to all members of this chamber voting for it. That concludes portfolio questions on wellbeing, economy, net zero and energy. There will be a brief pause before we move to the next portfolio to allow you front benches to change. The next portfolio is finance and parliamentary business. Again members wishing to ask a supplementary question should press the request to speak buttons during the relevant question and I call question number one, Alexander Burnett. Thank you, Deputy Presiding Officer. To ask the Scottish Government what discussions the finance secretary has had with ministerial colleagues regarding the impact of its current income tax policy in light of reports that higher taxes could deter experienced professionals from moving to Scotland. Minister Tom Arthur. Matters relating to all Government policy are regularly discussed and considered between members of the Scottish Government's Cabinet. That includes discussions regarding the 2024-25 Scottish budget. It is important to remember that people base their decisions on where to live and work on a wide range of factors and not just the tax they pay. Those who call Scotland home enjoy a range of support not available elsewhere in the UK. That helps to explain why net migration to Scotland from the rest of the UK has been consistently positive since Scottish income tax was introduced in 2017-18. Alexander Burnett. Minister will be aware that the new tax rates will mean that the average doctor will now pay £5,000 more than their counterparts in the rest of the UK. Given that both the British Medical and Dental Associations have said that tax hikes undermine efforts to recruit experienced staff and rural communities are at an even greater disadvantage, can the minister say how much those hikes will reduce output in the health service? Minister. One thing that I would know is that broadly across the Scottish public sector we see examples of better remuneration than we do elsewhere in the UK. Of course on matters pertaining to income tax policy we take into account a range of factors and considerations and of course we regularly engage with partners and colleagues to understand what the implications may be. Had we followed the prescription outlined by the Conservatives on income tax policy it would leave us with some £1.5 billion less when we currently have to support public services and that would be particularly harmful including for our NHS. Number of hopefully brief supplementaries first, Kenneth Gibson. Can the minister confirm that net migration of working-age people from the rest of the UK is positive that housing costs are lower in Scotland, council taxes are lower, there is free personal and nursing care, no dental or eye tests, no tuition fees or prescription charges and that the NHS is better, the quality of life is better, the people are welcoming? In short, who wouldn't want to move here? Minister. Indeed, it is the case and it has been that way every single year since Scottish income tax was introduced in 2017-18 with regards to migration, so it's hardly surprising that we have these migration figures, these net migration figures when benefits to people living in Scotland are so comprehensive as the member sets out. I will leave it to others to explain how slashing taxes and running public services into the ground would make Scotland a better place to live which would be the consequences if we implemented the tax cuts that the Tories want to see. Has he looked at the evidence with NHS consultants? Dr Allan Robertson yesterday who is the chair of the Scottish consultant committee, highlighted 436 gaps in the consultant workforce which was up from last year and he said the new top rates of tax introduced in Scotland brings a competitive disadvantage that our consultants face. It's becoming increasingly clear so what actual evidence has he gathered about the impact of tax rates on consultant recruitment because this is important. Minister. The member raises an important point around marginal rates and I'm not going to contest it, it's important we continue to pay careful attention to that. On the broader point around forecasting revenues and behaviour that is of course something that the Tories want to see where we are not to use our income tax powers in the progressive way that we are that would mean less funding for public services including the NHS. My colleague Kenneth Gibson has already highlighted the important fact that significantly more working age people move from Ireland to Scotland every year than move in the opposite direction and clearly as the minister has highlighted value the additional public services they receive here. I understand that we are collecting longitudinal data on the movement of taxpayer location between Scotland and the rest of the UK and vice versa. So can I ask if the minister is aware when that data will be available and whether it will be separated by tax band? Mr McKee for his supplementary and I think in answering this will also supplement my answer to Mr Rennie. The Scottish Government has contributed and has continued to work with stakeholders to expand the evidence to make taxpayer behaviour in Scotland. HMRC is finalising publication of this new longitudinal data set and it is intended to be published later this year. The new data set will show taxpayer migration across the UK by tax band providing a valuable addition to the evidence space but I'm sure opposition parties and read members across the chamber will welcome. To ask the Scottish Government what plans it has to invest and revitalise town centres in odd binarius. Minister Joe Fitzpatrick. We are committed to supporting the vibrancy and vitality of our town and neighbourhood centres as we continue to implement the word leading town centre first principle and support progress through delivery of the town centre action plan. Support for town centre regeneration has been backed by our capital investment programmes including the place based investment programme regeneration capital fund and the vacant and direct land investment programme all of which have helped to accelerate shared ambitions for town centre action. However, the UK Government's reduction in our capital budget will impact the support that we can provide in 2024-25. Fulton MacGregor. I thank the minister for that response. High streets were always valuable community centres for urban areas. They provided an opportunity to shop local and engage with neighbours, friends, family in the wider community. In urban centres like Coatbridge in my constituency I've suffered from a lack of football and indeed before. Along with other issues like fuel costs, labour shortages and inflation. What support can the Scottish Government give to current businesses that are struggling on our high streets due to these high energy cost labour shortages, due to Brexit and the impact of inflation in goods and services due to the current UK Government's maled administration of the economy? Minister. Fulton MacGregor makes some strong points particularly in relation to the impact of Brexit which we did not vote for in Scotland because of the inflationary pressures made much worse by the disastrous trust-quarting budget supported by Conservatives in this Parliament. The Scottish budget continues to support business and communities with a competitive non-domestic rate package. We've frozen the basic rate property rate levied on properties with a rateable value of up to £51,000 delivering the lowest such rate in the UK for six consecutive years and saving rate pairs an estimated £37 million in 2024-25 compared to an inflationary increase. We are also offering a package of reliefs in 2024-25 worth an estimated £685 million that includes maintaining a small business bonus scheme which I think remains the most generous scheme of its kind across the UK. I have a number of supplementaries I'll try to get them in but they will all have to be brief in the responses likewise Paul Sweeney. The recent announcement of the suspension generation capital grant fund has come as a blow particularly to Springburn and Glasgow which I'd hoped to see capital investment as a result of that funding award. Will the minister agree to meet with me and indeed all colleagues who represent that area to look at how we can invest in Springburn area which will solely need to that capital investment? To the capital investment budget are absolutely genuine and a 10 per cent reduction to our capital investment over the next five or so years is really challenging. Member will be aware that the cabinet finance will be bringing capital spending back to the chamber in order that that can be looked up properly. Will the minister join me in commending South Lancer Council for bringing forward ambitious town centre master plans for Hamilton and East Kilbride? Can the Government outline how it will support local authorities who have seen a massive decline in the number of planning officers and other experts within local government? How can we start to see more resources and more support for our planning departments? The Government is really welcomes all the work that we have with our local authorities in terms of regeneration. This is one of the areas where I think across the parties my cosly colleague is a conservative member Gail McGuire and I think it's one of the areas where we really try to work in collaboration to do what's right for the area. The reductions in capital budget is really challenging. The issues around planning resources and I'm sure the member will be pleased to be aware of the consultation that we have just launched to look at how we properly resource our planning system across Scotland looking at a range of options in terms of both how we do our business but also how the planning regimes across Scotland are properly fully funded. The minister would recognise that when large employers leave a town, the impact in the town centre can be substantial and since the socio-economic task force in Verklyde was formed 1,200 jobs have been lost in the local economy and will be worsened if e.e. leave the community. The local council has invested £72 million in capital projects to regenerate the town centre. When is the Government going to come to the table and that socio-economic task force already from the council to keep jobs and improve the town centre? Move slightly out with my portfolio but these are really important matters that matter to members of the community and the member will be aware that the Scottish Government is engaging closely with the task force. Question 3, Kenneth Gibson Thank you, Presiding Officer. To ask the Scottish Government what assessment has made of the impact on its financial planning process of the UK Government having autumn and spring statements for a multi-year budget approach? Minister Tom Arthur. In short, not a positive impact due to the lateness of the autumn statement and the lack of any advanced sight of the impacts of the decisions that have been taken in the autumn statement. Our budget process was later than we would have desired. Now, only a week on from stage 3 of our budget being voted on in this Parliament, we now have a UK spring budget which will have an impact on our budget plans. We recognise that greater certainty over the medium would help organisations to plan ahead, but sadly we are tired to the UK budget process, which is rendering this nearly impossible to deliver meaningfully. After all, we are still in a position where only in recent weeks were faced more negative consequentials to financial transactions. Even after our budgets have been set, they are still open to being impacted by UK Government actions. I thank the minister for that comprehensive reply. It is clear that the Chancellor's two UK Westminster budgets in less than four months aim desperately to hold on to a few extra seats, can only play havoc with Scotland's own budgeting processes. Nevertheless, Accounts Commission has long argued that even in such circumstances, long-term budgeting will still bring efficiencies and better service delivery for local authorities. Is that not also the case with the Scottish Government? Indeed, given the disappointment of both the autumn statement and the spring budget statement, we are considering our resource spending outlook in light of further funding changes and the actions that need to deliver sustainable finances. The Scottish Government continues to review and seek to improve its financial planning processes, including better multi-year planning through spending reviews to support better planning overall. We also recognise that certainty over the medium term would help organisations to plan ahead. It will take time to analyse the impacts in Scotland and the people of Scotland before setting out next steps following that. We are considering implications for the Scottish budget and what the Chancellor has set out today. We will be taking proposals to Cabinet for consideration before the Deputy First Minister returns to Parliament in due course. On that multi-year theme, the Scottish Government said last year that wherever possible, multi-year certainty will be provided to support strategic planning and investment when it was relating to local authorities. What progress has been made in that? I touched on my earlier remarks. We are seeking to do that and to engage, but what makes this a challenge with an area of some discussion yesterday at the Finance Committee is the uncertainty that we face around our fiscal position with regard to the UK Government, where we do face due to the rhythm of UK fiscal events uncertainty throughout the year. We will continue to engage with partners to identify ways in which we can provide that long-term certainty. Ultimately, if our budget is facing long-term uncertainty because it makes it very difficult for us to provide that to partners. To ask the Scottish Government what spending is allocated from its budget to date for its plans for a national care service. From the 2023-24 budget today up to the end of January, £8.6 million has been spent from a total plan budget of £10 million. Everyone agrees that we need to vastly improve people's experiences of accessing and delivering social care in Scotland. However, the SNP's plan to spend as much as £2.2 billion to stick Scottish national in front of our care service is not the answer. The reality is that councils cannot afford to take on the financial cost of implementing a national care service. They need fair funding from this Government that they have refused to deliver year on year. Just like the roll-out of free childcare, is the Scottish Government setting up our care service to fail? On two points. We are engaging constructively with partners and there has been a significant reduction in costs projected. We will continue to look at all opportunities to lower cost and maximise finance and resource to the front line. No Conservatives can come to this chamber and start criticising the Government around the fiscal settlement for local government. When a member wants to cut public spending £1.5 billion a tax cut that would benefit disproportionately the best off in society, it is simply not a consistent position and the people of Scotland can see right through it. Briefly, Daniel Johnson. The latest financial memorandum shows a cost range of up to 50 per cent. Given that we are about to vote on this bill in a matter of weeks, will we know the final cost before we vote? Minister. As the member will appreciate, there has been significant work undertaken by the minister. That work is continuing to be taken forward ahead of stage 2 and the minister's committee to continue to engage with members to provide as much information to Parliament as possible ahead of that consideration. To ask the Scottish Government when the finance secretary last met the UK Government and what was discussed. Minister Tom Arthur. The Deputy First Minister spoke to the Chief Secretary to the Treasury this morning ahead of the chancellor's budget statement and reiterated the need to prioritise investment in public services and infrastructure over tax cuts. That followed a meeting in January where she set out Scottish Government priorities for the UK budget. I also wrote to the chief secretary last month and the Deputy First Minister wrote to the chancellor urging him to invest in public services and provide targeted support for people with the cost of living crisis. What is the Scottish budget in detail and what it means for the Scottish budget? Thank the minister for that response. Today's Tory Government spring budget does little to improve capital investment and they have again failed to match Scotland's lead in terms of social security. There is no UK equivalent of the Scottish child payment and no essentials guarantee for people on universal credit. This budget will do nothing to lift people out of poverty. I appreciate the statement that hasn't long finished but can the minister outline the potential consequences for people in Scotland following the UK Government's announcement today and can he confirm how the SNP in government is ensuring that we are investing to strengthen the social contract and lift people out of poverty? Despite calling on the chancellor to provide an essential guarantee and abolish damaging policies such as the two-child limit and the bedroom tax, the UK Government has failed in this budget to tackle poverty. We are carefully considering the implications for the Scottish budget from today's announcement and the Deputy First Minister will report back to Parliament in due course. Through the Scottish budget we are mitigating as best as we can the actions of the UK Government and I am proud that we are investing £6.3 billion in the coming years in social security benefits and £100,000 for your children will live in relative and absolute poverty in 24-25 as a result of our policies. David Torrance To ask the Scottish Government how it has received a final report from the Scottish Local Authorities Renumination Committee. Minister Joe FitzPatrick To the Scottish Local Authorities Renumination Committee recommendation report was published on the Scottish Government website on 16 February this year. David Torrance Thank you Minister for that answer. Increasing the diversity of councillors as a priority shared by COSLA and the Scottish Government, does the minister agree that the recommendations in the report include the suggestions that sevens payments for councillors losing office should be introduced with the help to tackle existing recruitment and retaining barriers? Minister. Probably worth just putting on the record that when I seized being a councillor before becoming an MSP well many years ago I received a severance payment but being a councillor can involve a significant amount of important work in local communities and their terms and conditions should reflect that. It's also important that remuneration does not act as a barrier to encouraging a diverse range of people to stand for elective office. We want to encourage people from across our communities who wish to stand as a councillor in their local area. The remuneration committee report had a number of recommendations that require appropriate deliberation which the Scottish Government will take forward in partnership with COSLA. Supplementary Pam Gosall. The Scottish Local Authorities Remuneration committee recommends that the resettlements of severance payments are introduced for councillors losing office. That would be modelled on the system applied to MSPs and be in place for the next election cycle. Has the minister been made aware of any costings of such an arrangement and if so, can he explain what data has been used to inform the costings and will he be providing the chamber with that data? To Mr Torrance in my answer there are I think 22 recommendations within the report. It's really important that we look at those reports that the recommendations in partnership with our local Government colleagues and then come back for deliberation. Obviously, if there are any changes I'm pretty sure that the local government committee will be taking an interest in that and we will obviously come back to the Parliament in the usual way with any actions that we intend to take forward. If I might it's probably a useful point to thank the members of SLAC for their really hard work. They took a really broad approach to that and I think it's hopefully a piece of work to get behind but I think it's important that it's taken forward in partnership with our local government colleagues. To ask the Scottish Government how much it will allocate through its budget to fund potential cost increases related to improvements to the A720 city bypass grade separation of the sheriff hall roundabout. Despite the start challenges we face as a result of the UK Government budget settlement the Scottish Government remains committed to separation of sheriff hall roundabout as part of our £300 million commitment to the Edinburgh and South East Scotland city region deal. Indeed, we continue to progress the proposed improvements through the statutory process so we can deliver the scheme as soon as possible. As with all projects construction of the improvements can only commence if approved under the statutory authorization process and whereafter a timetable for its progress can be set in line with the annual Scottish budget setting process. I thank the minister for that answer but it's now been over a year since the public inquiry closed and can I ask the minister why is it taking so long for that to report and also what assessment has now been made by ministers around potential cost increases for this project. Given the Scottish Government and UK Government have committed £300 million to this it is quite clear that this huge delay we are now mid-parliament will have cost implications so can I ask what does that look like to the public? I thank Mr Briggs for his supplementary and I would want to recognise the member's long-standing interest in this area and indeed his campaigning on the matter. As he will appreciate there is a statutory process on their way and it is important that that is respected. The independent reporter, as a member is aware has submitted their conclusions and recommendations which are under active consideration prior to a decision being made by Scottish ministers but I would want to, as I stated in my original answer, reassure the member of the Scottish Government's commitment in this area but I'm sure that he appreciates and recognises we need to observe and uphold those statutory processes. Question 8 is not lodged therefore that concludes portfolio questions on finance and parliamentary business there will be a brief pause before we move to the next item of business and we hope that there will be more benches to change.