roi llennid ach cigysig ei hyllud? We turn now to First Minister's questions 1. From Ruth Davidson. Thank you, Presiding Officer. This week we learned that another 23,000 patients missed the so-called 12-week guarantee for NHS treatment in Scotland in the three months up to March. That's an utter disgrace. Indeed, under the current Health Secretary, gyda chi'r rhai rwmaeth yn gweithio'r tim ei gair ar gael, rwy'n credu i 74% a todays 68%. Rhyw hwnnw i'r teimlo gyda'r ddafg? Rwy'n credu rhaid o'r ddenograffau gwasanaethu rhai o'r ddafg collegolion ar eu cyfathlif herebyn. Felly mae'n cael gweithio. Llywodraeth ystafwr iolaeth y bydd g Pasteur Castle yn b таких 180 Mil ymddangasig yn mynd i eu h..! For example, looking at the treatment time guarantee, there was an 8.5% reduction in the number of on-going waits over 12 weeks over the last quarter. Outpatient waiting time performance, there was an improvement of 5 percentage points in the last quarter and the total number of new outpatients with waits over 12 weeks was reduced by almost 16 per cent and in diagnostics performance there was a just short of 6 percentage points increase with the number of on-going waits over 6 weeks reduced by 21.7 per cent. So, in direct answer to Ruth Davidson's question, real progress is being made by this government and we will continue the hard work to continue that progress in the weeks and months to come. Ruth Davidson. The trouble with the improvement plan is that it was introduced six months ago and since then the headline figures have got worse, not better and in fact they are the worst they have ever been and, Presiding Officer, we've heard it all before because two years ago to this very day the health secretary's predecessor announced a new £50 million investment plan to reduce waiting times. That would she said reduce waiting times particularly when it comes to the 12-week guarantee for inpatient and day cases? Categorically wrong. So, given the failure of the previous plan and given that the current plan is failing too, why should Scottish patients have any confidence in this government? First Minister. Actually, the plan is not failing and anybody who understands how the health service operates and the integrated nature of it would understand that from the figures I've just read out. When you tackle the longest waits, particularly for outpatient treatment, then you are putting more people into requiring inpatient treatment so you have the effect on the figures that Ruth Davidson is talking about but the underlying trend is in the right direction. We are reducing those who are waiting longest and, whether we are looking at outpatient performance, diagnostic testing performance, which is obviously of crucial importance and inpatient performance as well, we are seeing the numbers with on-going long waits reducing and, of course, for outpatients and diagnostics we have also seen an improvement in the last quarter on the headline figures as well. The improvement plan is working, which is why we are going to stick with it, which is why we are going to continue to invest in that plan. That is in stark contrast to what we are seeing elsewhere in the UK. I know that the UK health secretary is visiting Scotland today. The same UK health secretary who said that the UK government plans to reform social care have had to be put on the back burner because of Brexit and, of course, we would not be able to invest £850 million in a waiting time improvement plan if we would follow Scottish Conservative plans to give tax cuts to the very richest in our country. It is exactly those decisions of the UK government that means that there is an extra £2 billion for Scotland's NHS. If the selective use of statistics by this government were a cure, Scotland would be the healthiest country in the world. The First Minister is conveniently forgetting the failure to meet the 18-week referral target, the one in five patients that are waiting too long for psychological therapy, the fewer than half of patients who are getting musculoskeletal services within four weeks, the almost a fifth of patients with urgent cancer referrals are waiting more than two months. Let me ask the First Minister a straight question. She says that, by October of this year, in just four months' time, this Government will absolutely ensure that 75 per cent of in-patients who are guaranteed to wait less than 12 weeks will fall within that guaranteed timescale. If the Government fails to meet that target, will the health secretary keep her job? The health secretary is getting on with the job of delivering for patients. The targets in the waiting times improvement plan, which are backed by the investment that I have already spoken about, are targets that this Government is determined to deliver on. Ruth Davidson talks about health funding. We have record health funding in Scotland. In fact, health spending in Scotland—and she may want to listen to this—is £185 per person right now, higher than it is in England. That amounts to over £1 billion extra being spent in our health service here than if we were to follow the levels in England. We have record numbers of staff working in our national health service. Ruth Davidson mentioned cancer. 95 per cent of people in Scotland rate their overall experience of cancer care positively. Of course, in A and E, which is crucial to so many people across the country, Scotland's A and E services are the best-performing in the United Kingdom, and they have been for four years running. Ruth Davidson sounds to me that the health minister is keeping her job regardless. The interesting thing is that that treatment time guarantee—a guarantee for every patient in Scotland—you might want to listen to this. Order, please. Order, please. Keep it down. The treatment time guarantee has been breached 212,867 times since it was first introduced by one Nicola Sturgeon. That is 212,000 broken promises to patients from a Government that puts the NHS second behind its own priorities. If nobody is being held accountable, is it any wonder that those promises keep getting broken? First Minister. Of course, since we introduced the treatment time guarantee, 1,767,000 patients have been treated within it faster treatment than they would be getting otherwise. Of course, there has been in the last quarter that 8.5 per cent reduction in the number of on-going waits over 12 weeks. That is because this Government is investing in the waiting times improvement plan, and we will carry on doing that. This Government will dedicate our efforts to ensuring whether it is the health minister or any other minister that we meet these targets. I am not sure that ministers resigning from Governments, given the number that I have had to resign from the Conservative Government recently, is the strongest ground for Ruth Davidson to be on. Can I refer members to my register of interests? In less than 60 minutes, the Cabinet Secretary for Transport will meet the Caledonian Railway Works stakeholder group. What is the Scottish Government's plan to save the Cali? First Minister. As I have said openly, I have said it to the trade unions, we will always look for opportunities to save companies, save plants that are at risk of closure, but it will not always be possible for us to do so. The transport secretary has been looking at all options over this and will, as Richard Leonard says, discuss that shortly. However, this Government has shown our willingness to intervene where it is possible in the interests of workers, but also bearing in mind our responsibilities to the taxpayer to take action. We have done that with BiFab, we have done that over the DL steelworks, we did it with the aluminium smelter in the north of Scotland, so this Government will always be prepared to step in. However, we will always be honest with people where, for whatever reason, that is not possible and continue to work with unions and with companies and with workers to make sure that we get the best possible outcomes. Richard Leonard. The honest experience for those working people is that, yesterday morning, they turned up to work to see a for sale sign nailed to the permit offence, and tomorrow morning, more workers will be issued with compulsory redundancy notices. The unions attending today's meeting told me and I quote, we want to know what the transport secretary is going to do to save the site. Just last month, the current owners offered the depot to the Government at no cost. In fact, they even promised to pay a nominal fee to facilitate it. However, the transport secretary told the workers representatives that we do not nationalisation. First Minister, why is the Scottish Government ruling out purchasing the site and saving those jobs? Obviously, it is not true that this Government does not do nationalisation. I seem to remember against some criticism within this chamber, we nationalised Presswick airport to stop it being closed. We have been willing to step in in other instances as well. My understanding is that some of what Richard Leonard has put to me today is not correct in terms of the offers that the company has made. Of course, we are happy to have discussions with the company and the transport secretary will continue to discuss the matter with trade unions. We will act where we can to save companies from closure. As I have demonstrated with the examples that I have already used, we have a track record in doing that. However, we also have responsibilities to the taxpayer. We have responsibilities to operate within the law on these matters, so it will not always be possible to do that. Where it is not possible to do that, we will be frank and open and honest with workers. However, this Government is proud of its record in these industrial situations, and we will continue to work hard to make sure that we are saving jobs and saving companies wherever we possibly can. Let me recap yesterday a for sale sign. Tomorrow, more workers served with compulsory redundancy notices, and today a meeting of the stakeholder group. Time is running out. The Government has had six months to take decisive action. I raised that with the First Minister back in February. I wrote to the transport secretary just yesterday. Those works have existed in Springburn for 160 years, but once it goes, it goes forever. The site turnover is up. The workers' skills are indispensable. This is a cornerstone of Scotland's engineering base. This is a national asset. So, First Minister, will you act in the national interest? Will you instruct the cabinet secretary for transport to purchase the site, save those jobs before it is too late? I say this to Richard Leonard genuinely. Given the track record of this Government in situations similar to this, of stepping in where we can, of purchasing sites where we can, of coming up with funding arrangements to facilitate the purchase of sites by other companies, given that track record, given our proven determination to save jobs and save companies where we can, if it is the case that that is not possible in this or other circumstances, then perhaps Richard Leonard might conclude that there might be a good reason for that, given the overall responsibilities of this Government to the taxpayer. So, we will continue to discuss with the unions that the transport secretary is doing that later. We are happy to have any and all discussions with the companies, and we will continue to take whatever action we can in situations like this, but we will do that taking account of all of our responsibilities, because that is what responsible Government has to do. We have three constituency supplementaries. The first is from Liam McArthur, to be filled by Rachael Hamilton. Thank you, Presiding Officer. First Minister, we are aware of the on-going industrial action affecting airports across the Highlands and Islands. She will also recognise the significant disruption that this action has caused and continues to cause on lifeline routes serving Orkneyt and other communities across the region. Does she therefore share my disappointment at news yesterday that a further strike is now due to take place on 12 June? Does she regret that this decision coincided with Hyal, confirming that it was tabling a revised offer to staff? Will she ensure that Transport Scotland now allows that revised offer to be put to staff as soon as possible so that this long-running and damaging dispute can be brought to an end? Can I share Liam McArthur's disappointment that this industrial action has taken place and that there is the prospect of further action? Hyal, of course, is covered by public sector pay policy. The policy sets parameters within which Highlands and Islands airport can negotiate a pay settlement with its recognised unions. I understand that Hyal is meeting the unions again next week, and I hope that it will be possible to come to an agreement that avert any possibility of further strike action. I encourage Hyal to continue to talk to the unions to bring this dispute to a resolution as quickly as possible. Rachael Hamilton, to be full by Neil Bibby. First Minister, yesterday I was informed that 48 jobs are to go at EcoLab in Selkirk, and this will be a big blow to the town. I would like to ask the First Minister what support the Scottish Government will give to workers who are facing redundancies and their families at this challenging and worrying time. I share the concerns about the news of redundancies at EcoLab. I will ask the economy minister to make contact with the company to look at whether there is support that the Scottish Government or Scottish Enterprise can offer to avert redundancies. If that is not possible, our PACE initiative, as it always does in those circumstances, will offer assistance directly to individual workers. I am sure that once he has had the opportunity to speak to the company, the economy minister will be happy to talk to the member further in order to update her on what action is possible for the Scottish Government to take. Neil Bibby. Earlier this year, the Lord Advocate asked the Scottish Fatalities Investigation Unit to examine the Craig McClellan case, preparing the ground for a possible fatal accident inquiry into his death. As the First Minister is aware, Craig McClellan was killed in an unprovoked knife attack, killed by a man who had broken an electronic tag and had been on the run for months. The family were told that the Lord Advocate would make a decision on whether to order fatal accident inquiry once an appeal by the man convicted of Craig's murder had been dealt with. That appeal was refused last week. Does the First Minister agree that there is now no good reason to delay a decision on this case any further? For the sake of Craig's family and the public interest, surely the time has come for an independent fatal accident inquiry into the failures that led to this tragic murder? Can I take this opportunity today to convey again my sincere condolences to the family of Craig McClellan? None of us can begin to imagine what they have and continue to go through. Now that the appeal is concluded, I know that the Lord Advocate will be considering the issue of a fatal accident inquiry. As the member is aware, decisions on fatal accident inquiries are for the law officers to take completely independently of ministers, and therefore it would be wrong for me to express any opinion on that. However, I will ensure that the Lord Advocate is made aware of the question that Neil Bibby has asked here today, and I will ask the Lord Advocate to correspond directly with him as a result of that. 3. Willie Rennie Across the United Kingdom, parties backing remain, outpull those backing leave. The momentum is with us. Our chances of stopping Brexit are higher than ever. Yet the First Minister chose this moment to introduce an independent referendum bill that divides the remain parties in Scotland. Her minister didn't even mention her people's vote in yesterday's statement. Why cut and run when we are on the edge of victory? Firstly, to Willie Rennie, I thank you for pointing out the fact that the SNP won the European elections in Scotland. Our best ever result in a European election winning 50 per cent of the seats. Secondly, to Willie Rennie, although I stand to be corrected if I'm getting this wrong, I think that he's actually inaccurate to say that Mike Russell didn't mention a people's vote in his statement yesterday. I think that he did mention a second EU referendum. The SNP supports a second EU referendum, and I think that there now is an opportunity to bring together all of those who support that and try to secure that outcome. It will be helped enormously if Labour, not just in Scotland but in a UK level, get off the fence and back that outcome as well. The thing about Willie Rennie's position is that he believes that Brexit will be a disaster. I agree with him on that. He thinks that the UK should have a chance to reverse Brexit through a second referendum, and I agree with that as well. However, here's where we differ. He thinks that if the UK doesn't take the option of reversing Brexit, Scotland should just have to accept that disaster and become a passive casualty of it. I don't agree with that. I think that Scotland should have the right to choose a different future. I believe that Scotland should have the right to choose an independent future as a European nation. Willie Rennie. The Nicola Sturgeon's election letter to me addressed Dear Edna. I didn't mention independence. That was funny. She's at it again. She is desperate for the UK to fail so that she can push independence once again. She's even named a date, but the momentum is with Remain. Speaker John Berco will block a no-deal Brexit. The Chancellor will bring down any no-deal Prime Minister. Boris Johnson is in court for telling lies. For goodness sake, even Richard Leonard is backing her people's vote. What more does she need? Be positive. Come with me. Fight to win a people's vote. Or once again, will she pursue independence no matter what happens? First Minister. Sorry if I can take a minute to stop laughing before I answer Willie Rennie's. I'm not sure I want to follow him from the 38 per cent of the vote that we got in the European elections to the 12 per cent that the Liberal Democrats have scored, which I have to say was an improvement, so well done to them for that. Alex Cole-Hamilton is pointing out that it was 14. I still don't want to end up there if you don't mind. Willie Rennie did say that he hoped in the chamber that I would take the opportunity to call him Edna, so all I can say is be careful what you wish for. What is it always a dame? On this issue, I think that Willie Rennie frankly is being a bit complacent about the risk of a no-deal Brexit. I hope fervently that there is not a no-deal Brexit, but given the direction of the Conservative Party, I don't think that we can afford to be complacent about that at all. We will continue to argue for a people's vote, we will continue to argue for the revocation of article 50 as an alternative to no-deal Brexit. We will work with whoever across the political spectrum to bring that about, but if we don't succeed on that, and I hope that we do succeed, if we don't succeed, I am not prepared to allow Scotland to sink with this ship. I want Scotland to have an alternative. I want Scotland to have a better future, a future as an independent European country. We have some further supplementary questions. The first is from Jenny Gilruth, to be filled by Monica Lennon. Jenny Gilruth. Today's report from the Commons Home Affairs Select Committee says that the UK settlement scheme for EU citizens risks another windrush. Is this not a salutary warning that we should not be making EU citizens have to apply to remain in their home?  I think that from most of what they have had to say in the last few days, certainly the Scottish Tories have learned nothing at all from the fact that they have been pushed into fourth place in Scotland in these elections, but carry on. The longer they fail to learn these lessons, the better for those of us and those benches is what I say, but Jenny Gilruth raises a really serious issue. Windrush was a scandal. I think that even the Tories would concede that. What European nationals are now being put through of having to apply for the right to continue to live here in their own country is shocking, but also risks repeating that scandal. They should not be being put through that. This is their home, and they should be able to stay here. We should all continue to argue against those measures and continue to send the clearest possible message that those who choose to make this country their home are welcome here, and we want them to stay. Monica Lennon, who is followed by Gillian Martin. A unison survey of Scottish Ambulance Service staff has found that extra resource for the service is not keeping up with demand. Over 7 out of 10 staff fail, and their team budget has been cut. In last year, there was a 30 per cent increase in paramedics, signed off work with stress and depression. I have been in touch with the unison this week, First Minister, and they are rightly calling for urgent action. What will the Government do, and will the health secretary meet the unison as a matter of priority? The health secretary will always be happy to meet trade unions to discuss those issues. We value the job that our Ambulance Service staff do and what are exceptionally challenging circumstances. Our Ambulance Service continues to be one of the best-performing services in the UK, despite continuous increased demand. It also services some of the most rural and remote parts of the country. We have invested almost £900 million in the Ambulance Service in the past four years, and we are committed to supporting the training of an additional 1,000 paramedics over the course of the Parliament. That will build on the almost 18 per cent rise in Ambulance Service staff over the past decade. Lastly, the Ambulance Service is currently carrying out a national review of demand and capacity, and staff-side partners, including unison, should be and, I believe, are fully involved in the work as part of the demand and capacity implementation group. Those issues will continue to be taken extremely seriously. Gillian Martin Thank you, Presiding Officer. I would like to ask the First Minister how proposed legislation on female genital mutilation will increase protection for women and girls. I thank Gillian Martin for raising the issue. I am very pleased that we have introduced the female genital mutilation protection and guidance bill, which will increase the protections for women and girls. The new legislation is a very important step in the Government's efforts to make Scotland equally safe for women and girls. It creates a new protection order to protect women and girls who may be victims of or at risk of FGM and ensures ministers issue statutory guidance to public bodies to improve their response to FGM. The bill is part of our wider work through the implementation of our national action plan on ending FGM, which focuses on prevention, protection from harm and provision of services for women and girls. However, I hope that the bill will attract the support of members from right across the chamber. To ask the First Minister what action the Scottish Government is taking to investigate the disenfranchisement of EU nationals who were denied their vote at the recent EU elections. The number of EU nationals who appear to have been denied the vote in the European elections last week is nothing short of disgraceful. Those are people who live and work here. This is their home. They had as much right to vote as any of the rest of us. The issues that arose were clearly a result of insufficient preparation time because of the provocation over Brexit and a failure to address the concerns raised by the electoral commission following the European elections in 2014. The fact that the UK Government appears to have taken no action to address this matter is unacceptable. The Cabinet Secretary for Constitutional Relations wrote to the UK Government in advance of the election warning that this could happen, and he has now written again calling for a full investigation to take place into this issue. In yesterday's statement, the cabinet secretary said that the proposed franchise for any future referendum would rightly include EU citizens and 16 and 17-year-olds. To save confusion or mistakes reoccurring in the future, surely that must be the standard for all elections. Will the First Minister continue to press the UK Government to adopt this system at Westminster or, even better, put full control for holding democratic votes in the hands of this Parliament? I certainly agree that we should do the latter. Short of that, I think that 16 and 17-year-olds and EU nationals should have the right to vote in all elections in Scotland. We also, as Mike Russell said yesterday and will be covered in separate legislation, want to extend the right to vote to anybody who is legally resident in this country, regardless of what country they come from. That is fair and a sign of the open, inclusive, progressive country that we want to be. We will continue to press the UK Government on these matters. However, I do not think that we should lose sight of what happened last week. I will not have been the only one who spoke to people at polling stations who had been denied the right to vote. I spoke to one constituent who was almost in tears and felt that this was the final straw of all of the stress and anxiety that he had gone through over the past three years. There should be an investigation into that, and any necessary steps should be taken to make sure that that disgrace is never allowed to happen again. Thank you very much, Presiding Officer. I, like many in the chamber, also had constituents denied the right to vote, despite having filled in the appropriate UC1 form. I do not have such faith in the Westminster investigation. I know what the cabinet secretary has done. Can I ask if the Government would consider owning some kind of contact point for citizens in Scotland or EU citizens to register with us if they were unable to vote so that the UK Government does not find out the numbers? We do. First Minister. We will certainly give that consideration. Of course, as Christine Grahame will be aware, we have established an advice line for EU nationals seeking to apply for the right to remain here after Brexit, so that we can do something similar to allow people who were denied the right to vote to register that fact, which would give us the opportunity to understand the scale of it. Mike Russell is noting it down now. I will ask him to explore that possibility and report back to Christine Grahame once we have had the opportunity to do so. To ask the First Minister what the Scottish Government's responses to the report by Age Scotland, that four in 10 people requiring substantial or critical care were found to be waiting more than six weeks to receive it. First Minister. Well, everybody in Scotland or people in Scotland generally are enjoying longer lives. With that, often comes more complex needs, which means demand for social care is growing, underlying why we have already legislated for an introduced integration of health and social care. Age Scotland's report finds that the average waiting time between assessment and receipt of care for those in most need is around three weeks, but we want to go further to ensure that care is provided swiftly for all. That is why we are developing a programme of national support for local reform of adult social care, and that is why we will deliver 711 million pounds of additional direct investment in social care and integration this year. That is an increase of 29 per cent on last year's investment. Jamie Greene Thank the First Minister for that response. She talked about the average time being three weeks. The last time that Age Scotland monitored this, it was two and a half weeks. That number is actually going up, so it is an interesting statistic to measure against. Many of us in the business chamber will be dealing with case work, with constituents who are spending weeks or even months in hospital taking up valuable bed space because their local authority cannot provide care packages either through a lack of finance, a lack of care home space or a lack of staff to provide in-home care. The report by Age Scotland confirms that, since 2011, the number of care home places in Scotland has dropped by over 1,000. That independent report is titled, Is Scotland Meeting Its Commitment to Older People? The report clearly does not think so. What does the First Minister think? The First Minister Of course, more people now are being cared for at home than would have been the case previously, but there are many important messages in the Age Scotland report, and we will study them carefully. I think that the actions that we are already taking are the right ones. We have integrated health and social care, and of course, as I said in my original answer, we are increasing the direct investment in social care and integration. There was also a report out yesterday that the member may have seen from the health foundation that reported that Scotland spends the most money on social care per head of any country in the UK. We are spending 43 per cent more than England and 33 per cent more than Wales, so the investment is there and that is important, but we need to make sure that services are working in the right joined-up way to ensure that the care is there for older people when they need it. We are determined to continue to make the progress that is required to be made there, because, as the member rightly points out, that is one of the factors that has a knock-on effect on our efforts to get acute hospital waiting times down as well. David Stewart will be filled by George Adam. The Age Scotland report suggests that there was limited or patchly monitoring across local authorities of how long people were waiting for social care or the reasons for delays. Does the First Minister think that that is acceptable, and will she accept the recommendations from Age Scotland that more regular data collection on social care is required? We will listen carefully to all the recommendations that Age Scotland makes. We want to make sure that there is good data and also consistent data. There is already a lot of data, for example, on delayed discharges, but it is important that we have the wealth of data to make sure that we can assess whether the actions that we are taking are succeeding or not. We will give due consideration to that recommendation, as we will to all the other recommendations in the report. The First Minister has already mentioned the analysis that was produced by the Health Foundation that highlighted that public spending care for elderly and disabled is as much as 43 per cent higher in Scotland than south of the border, where the Tories are in control. While we can have legitimate concerns, and those should be addressed, does the First Minister not see that as hypocrisy from the Conservative Party and a reflection of where the two Government's priorities lie? I am, of course, responsible for the actions of this Government, and we are prioritising the actions that are required to make the improvements that we all want to see. We have already integrated health and social care. The UK Government's green paper on social care was first promised 812 days ago, and yet there is no sign of it being published. As I referred to earlier, Matt Hancock told a committee last month that it was delayed because of Brexit. We are getting on with that work, and we are also spending proportionately more money on social care than other countries in the UK. All of that is positive, but, as the age Scotland report points out, there is still work to be done and progress to be made, and we are determined to get on and make it. Many social care providers are struggling when it comes to staff, retention and recruitment. Part of the problem may well be Brexit, but a big part of the problem is that, in some parts of the care sector, workers are paid poor terms and wages, poor terms and conditions. Should there not be equal pay across the whole of the care sector? Should a carer not be valued whether they are delivering that care through a private company or through a public company? First Minister. Yes, I agree with that. Of course, this Government has invested to introduce the living wage for workers in social care, and we are pursuing and will continue to pursue providers who are not passing that on, whether they are private sector providers or, indeed, local authority providers, because we want the social care workforce to be valued for the job that they do, which is a vital, tough and challenging job. As Alex Rowley rightly says, Brexit is a big issue here. If you talk to any social care provider, they will say that one of the biggest worries they have is about access to the skills and labour that they need to provide those services, which is why it is so important that we try to come together to stop Brexit and that we come together to stop the current approach that the UK Government is taking to immigration, which is damaging not just our economy but the very fabric of our public services as well. Thank you, Presiding Officer. To ask the First Minister what the Scottish Government's response is to the poverty and inequality commission's recent finding that the current level of spending directed at tackling poverty in Scotland is falling well short of what is needed. The commission's report is a timely reminder of the challenge that we face in undoing the damage of UK Government welfare cuts, austerity and the impacts of Brexit—all issues that were highlighted in the UN special rapporteurs report last week. Scotland is facing a reduction of £3.7 billion in annual social security spending by 2021 as a result of UK Government cuts. The Scottish Government is investing more than £125 million to mitigate the worst impacts of those cuts in this year alone. We are also taking forward our own policies to tackle poverty and inequality, which includes in this year an extra £385 million to support our expansion of childcare, at least £351 million in our council tax reduction scheme and around £435 million in direct assistance through social security measures, as was set out at the budget. Elaine Smith Thank you, Presiding Officer. I thank the First Minister for her response. I think that we all know the damage that Tory austerity and cuts is doing, but it is the First Minister's policies that I would like to talk about. There is a consensus among numerous anti-poverty organisations, including the Government's poverty and inequality commission, to call for urgent action on the introduction of the income supplement. As the head of Oxfam Scotland said, warm words will not make a difference to people who cannot put food on the table. So can the First Minister offer more than warm words today to those in need of the income supplement right now? Will she bring it forward, or will she tell us what interim measures she will put in place? After all, in this chamber in March, can I remind the First Minister that she promised us an update before the end of June? The First Minister If I can point out, it is just now the end of May. There will be an update before the end of June, but we are not in June yet. That, indeed, is the answer that I have given to Richard Leonard. We will bring forward an update on our plans for the income supplement in June, because we are looking at how we would introduce that in a way that lifts the maximum number of children out of poverty. Of course, we have to look at the mechanisms that we need to put in place to practically deliver that. That update will come in June, and it will be open for discussion across the Parliament. We will continue to take our responsibilities seriously. Child poverty in Scotland is too high, but it is lower than it is in any other part of the UK. That is a reflection of the seriousness with which the Government treats it and the policies that we are implementing, the best start grant, for example, that is not being implemented in any other part of the UK. We will continue to do that, but we should all come together, and maybe as part of their post-election reflections over the next few weeks, Labour will consider belatedly joining the Scottish Government in asking for all welfare policies to come to this Parliament so that we can tackle those causes at root, rather than continuing to have to apply sticking plasters to the policies of Tory Governments that we do not vote for. Thank you, Presiding Officer. One of the benchmarks of our society in Scotland is that we are opening and welcoming and that we take our responsibility to refugees extremely seriously. Can the First Minister outline what benefits the Cabinet Secretary for Social Security's announcements yesterday will make for asylum seekers in tackling poverty? First Minister. Can I say how delighted I am in all credit to Shirley-Anne Somerville for this, that we are able now to apply the best start grant to refugee and asylum seekers who have children? We had to discuss that with the UK Government, given its policy of not allowing people in those categories access to public funds, but we want our policies to benefit anybody in poverty and in need in Scotland. We should not judge people on the basis of where they come from. We should judge people on the fact that they are citizens of Scotland and all citizens of Scotland deserve the help that this Government is determined to give them to lift children out of poverty. Can I ask the First Minister whether she agrees that her Government would have much greater resources to tackle poverty in Scotland on top of everything else that it does, and which it does not because it is allowed but because it is the right thing to do. If it did not have to mitigate the worst effects of Tory austerity to the tune of hundreds of millions of pounds, we would not have the levels of poverty that we have, and we would not have the cuts to our budget that are making it harder to deal with those issues. Of course, we also have a Conservative Party in this chamber. They are bereft of policies, but the one policy that they have managed to come forward with in recent years is to give tax cuts to the riches, which would take half a billion pounds out of public services in tackling poverty in this country. The lesson of that in the short term is not to listen to the advice of the Scottish Tories. The lesson in the medium to longer term is that we should get out of a position in Scotland where Tory politicians think that what we can do is a matter of what they allow us to do. Instead, what we do in Scotland is a matter of the choice of the people of our country. The point of order is first from Mr Russell and then from Elaine Smith. Presiding Officer, I know that you are very keen to draw the distinction between opinion and fact in this chamber, but when something is demonstrably untrue, I am sure that you would guide the chamber on how quickly it should be corrected. I have checked the official report and yesterday in my statement I said that the Scottish Government, the SNP at Westminster, will do all that it can to stop Brexit for the whole UK. In particular, it will continue to support a second referendum on EU membership. Given that the leader of the Liberal Democrats made an assertion that I did not say that yesterday, perhaps you could advise him on how quickly he could correct the record. All members are aware of the various mechanisms that are available if they wish to correct the record. However, the point that Mr Russell himself has alerted everybody in the chamber to what was said yesterday very accurately. In terms of the various mechanisms for correcting the record and understanding orders in code of conduct, there are ways to do that. I will do that right now, because earlier I was reading out from the 28th of March official report, but my excuse is that it is a very small type. What it says is that the First Minister said that we will bring forward the update before June, so I read it out wrong. It is not before the end of June, it is before June, which gives us one day. The point of order is for the chair not for members to respond to. I thank Elaine Smith for informing the chamber of the correct entry from the official report, and the members will have noted that. On that note, we will finish on First Minister's questions and move to members' business in a moment in the name of Gordon MacDonald. However, before we do, we will have a short suspension to allow the minister and some members of the gallery to change seats. A short suspension.


Welcome to Drinks Made Easy. It's almost Halloween where the veil between the living and the dead is thinnest. And we're bringing to you the Devil Cocktail, but be careful how many times you use the D word or you might invoke some presences you don't really want. To build the Devil Cocktail you start with two ounces of cognac. Next you'll add half an ounce of white creme de menthe, cap that off into a shaker tin full of ice, and give it a quick shake. Straight into the glass of your choice and then garnish with a little bit of cayenne pepper. Or if you have a friend who says they can do a lot of spice or you just want to f*** up their evening, add a lot of cayenne pepper. And there you have the Devil Cocktail. Thanks so much for watching. Please be sure to like, subscribe, and click on the bell icon so you'll be notified any time it releases a new video.  Cheers when drinks made easy. Does that make sense? Yeah. Yeah, okay.


What's up everybody, Jason here for jasperjasecasebrakes.com This is the last filler to unlock a one-box break of Immaculate Basketball We're giving away the last 10 spots in that break with this 2021 Kenini multi-packed cello of prism basketball number 241 So first we'll do the break, we'll randomize the customer names and teams There should be the hits out then at the end we'll randomize the original customer names list and the top 10 get into the break So good luck everybody. Let's do the break first roll it and One and a two three times for the names and teams one Two and three Steve Locke down to Steven three times one Two three Blazers down to the wizards All right, let me go grab a pack really quick and then we'll start this All right, so again stick to what you got guys. This is just for the quick pack filler Well, yeah, it's kind of like the movie of mr. 3000, right ended up being mr. 2000 99 97 or something like that. So shit I would unretire to if I If I was only like three away You know even at 13 away, I would have I would have tried to get 3000 But the whole point is that would any teams at the time even give him a shot because maybe he wasn't so good anymore Is the question fresh as a chewer all right, so let's switch scenes and let's do the break giveaway now So again top ten get in roll it Three and a six nine times. Good luck one two three four five six seven eight nine Oh Steve you are in Steven flat you're in Steven flat Nick Steven Diego Nick Allen Sam and Kevin Congrats guys top ten are in So you guys now have a spot in the break and coming up next is immaculate basketball


curtains zejo thank you for having me one more time last time welcome back again I have a project of me thank you I have been up and down ya who is bluehume I've been there for quite a while and I feel this is my time and things are picking up and for those who know me, hi, and for those who don't, hello, Blavin de anaku, jasasa. Ya man, nime otsuma, inaitua feel, feel, feel the vibe, feel the vibe, it's a very nice song. Asante ajo. So how, how is the promotion coming through? Promotion in endapwa and I thank you guys, thank you Miki Jones, thank you Y-254 and Stefan Tunmenewebia, Shukranjo because many party platform mama. Ya man, welcome. And ya, I'm doing a video, I've been touring, nime itwa ma Lindy, mi kwa Diani and we did a video for feel the vibe, so bado, ndia tu na fanya ma Zenitwaje, tu na fanya ma Editing, Editing Evee na Lindy, so in like two, three weeks ita kwa ready video. Ya man. Ya, so. So tell us when did you start your music career? Music career. Okay, me and Miki Jones we come from way back, he do go tukamadare, mi ni boy wa gateo by there. He got there was your mother. He got there was your mother. Tukamadare maze, slim cause entertainment, madare yote. Ya man. Wanaji ju watwa kina raise, kina billi, kina, and the late week emosh, ya. Ya. Ya oni wasitulia, nza na umgoma, nilene. Batuyu tu li kwa atwei. When is this? Ya. Hei. Niza se maji sasa, li kwa ni moka gani, li kwa ni 90s evi. 90s something after evi. Sezi kumbuka po, but. Okay, basically you don't have time to learn some ziki na ni na ni ni, but nile uto ibadu. We didn't know there's a professional, there's a professional style to it. You see it, li kwa tu nile, when they show, pige, upige show, perform, madame, ni ni ni ni ni. But I can say, seriously, nilene sasa kwa kucheki music ni kariyan, and music ni nalipa, niza se ma ni around to two or eight upo evi. Two or eight upo. So that is when uli anza kufanya recording zama iyondu yo lupo umeha, minges zaza professionally. Do na ingia studio, sasa una record. But as many artists, seeing goma ya kwanza tu ina Tokiaga, ina Tokiaga na una kwa star.  On a land.  Yeah, I want to. And um, ya, I've been there, nili kwa nimi toro kia kwa live music kikidogo, kupigama function zivi apakule. Okay. And um, nikaikani ni anza kari ango kwa shelf kidogo, but um, now I'm back. Again, I don't know how to put it, but I'm back again, after so many hurdles, nani nanini, I'm back. And I'm doing new things, new stuff. And uh, ya, professionally, I'm branding myself in a professional way. Yeah. And I hope for the best. Choo choo. Choo. Yeah. So nauliza, kama umepigama show zivi? Shows ya, kama yo, yo to aircoast. Yeah. We did a couple of shows, and um, tutu ta include couple of shorts kwa my fill the vibe video. Okay. Eh, so on. Choo choo. Najari ubado kujiprofile and uh, kujibrand. And ya, hoping for the best. Okay. Ya, that one I can say inshala, monezimungu a kitu jalia. Inshala, But I have... Ni kona connections kava mungu'a mi fungwa, fungwa doha z Ni kona connections kava And collab o ekijipa Tashkul Yyye. Tashkul. So projectile una push saini Feel the vibe. Ya, feel the vibe. So feel the vibe zili kamaade. How did you come up with the feel the vibes? Everything, production, nini nini? Alaa? Well... There's a producer called Chao. Chao ni... He's a best player in one of the best bands in Nairobi, Reggae bands, in fact, in Nairobi. So Ali ni tumiai o beata, kanae ambi wei ni aje blavio ni bu skiza io beatu ni ambi, kawne zango kanae. Nika ifu skiza, nika ifu feel, misteri tuzi li kamae vo. Tu kuaengia studio, tu kua record, feel the vibe was born. Feel the vibe? Ya man. Boss of the feel the vibe? Ya, ya, ya. First time up, Y244. For the second time. Half life production. Half life productions, ya. Ya. And this is how we do it. When we come back, we gonna bust up the feel the vibe, ya blavio ni out of half life production. Owa si om e piga. Big tunes, ya. Mavridim zigi ne moenda sana.


Welcome to the real-time communications track of DevConf this year, where we're having three talks in a row about related subjects, and the first one by Daniel Pocock here, and while we're on the subject of real-time communication, I'd just like to thank GradWorld.com, who have provided the free calls out of the conference on my desk phone, which if you haven't taken advantage of, well, you need to do that before the network goes away. Also involved in the track is Zafir Cohen, and two other people whose names I was told about 30 seconds ago, and I've now forgotten. You can do the rest. Okay. Welcome to Vomarcu in DevConf. Who's just come down for the day? Some visitors, and who's been to one of my DevConf talks before? Yeah, a couple of people. Okay. So this afternoon we've got a whole track on real-time communications, so I'm going to start with an introduction, and then Zafir is going to help with some discussion about asterisk in Debian. Catalan has been participating in the Google Summer of Code. He's going to go through some things with SIP conferencing and WebRTC, and we'll get back to what WebRTC is in a little bit. And finally, we'll finish off with Emil Ivov from Jitsi. Who's heard of Jitsi? Yeah. So free Java soft phone supports SIP and Java and other protocols. It's actually been around for many years, and he's the founder of the Jitsi project. It's one of the most heavily developed open-source soft phones. It's been very successful, so it's really good to have Emil down at DevConf today. In February, we gave a similar presentation at FOSSTEM in Brussels, and we spoke about the importance of free software for free communications. A lot of people say to me, I've got this thing called Skype, and it's free. I say, no, it's not. We have a different definition of free, and Skype doesn't quite fit that definition. And so we've had some help explaining that in the last few weeks. So the helpers come from the NSA. They've published thousands of documents revealing how they monitor solutions that are not free. And so people are more aware of this topic than at any time before. I've certainly found that they're interested in my websites, like the Lumicall website and the RTC Kickstart. They doubled overnight when the NSA started to be documented in a public domain. Just by coincidence, on the 5th of June, in the evening, I published a blog about the gold standard in free communications. I can't see if I can bring that up on the projector without losing everything else. So that was on the 5th of June. And then the next morning, we had this. All of a sudden, there's a lot of attention on this topic, and it just came out of nowhere. I knew nothing about this. It was just coincidence. But a lot of people then started saying, why have you been talking about this? Why is this important? And why has it been on your blog or at FOSSTEM? So it is an important topic at the moment. Just this week, we've seen it's not just the NSA. It's not fair to be unreasonable with our American friends. Here in London, the rubbish bins are out to get you.  And they have them everywhere. Except you can't find a rubbish bin on the London Underground, so you have to carry a rubbish with you if you go there. But in the streets, you'll find these everywhere. And they've been gathering everyone's movements, who you associate with or who is in the same proximity on a regular basis where you go to eat, those types of things. So these things are widespread. They happen in different technologies and in different countries. And if the opportunity is there, it seems there will be someone who will look to find a commercial possibility with that. So we've seen the statement from Google this week that the users should not expect that when they send an email to a Gmail account, they should not expect that that is a private communication. And that was in a court document that they're using in their defence. A Skype. I mean, I'm not going to say so much about it. I don't think I need to. Mobile networks around the world, we've seen similar patterns. And is there anything left that users can trust? Well, there is. It's been 20 years in the making. And a solution that had anticipated these problems from the beginning. And of course, I'm talking about Debian. I'm talking about free software. And it's not just Debian. Richard Storman's been talking about this for years, even before Debian started. And other people have been talking about the need for free software, for transparency. If your software is not free, if you don't have the source code, how can you know what's in there? How can you know that your software is not the next iteration of that London rubbish bin? That it's got something in there to monitor you. But it actually goes a step further. It's an existential issue for the free software community. The free software and free communications are linked. That as long as people have this peer pressure to use a technology that their friends are using, that they want to talk to their partner, they want to talk to their parents, they want to talk to their friends. And their friends insist on a proprietary solution. Then that's a real challenge for us. Because then they want to change their whole way of computing. They want to run a closed operating system that can run this closed communication system. And that undermines a lot of our work in other areas, whether it's free presentation software or free email software or free web browsers. All of these suffer at the hands of closed communication software that's supposedly free. The peer pressure is probably stronger with communication software than with any other type of software that I've just mentioned. Someone's not going to have pressure from their partner to change their accounting software or to change their email program. You can use any email program to communicate with anyone else. But when you want to talk to someone or to see them with the webcam, that's a personal connection that will be pressure there. And a lot of people will not argue with that. And they will try the proprietary solution. And then once they start using it, it's hard to get them away from that. Another issue is this question of why didn't people just abandon services like Gmail when all of this news came out? There's been no statistics, of course. None of these companies will want to say, oh, look, all our users are running away. But certainly, I see just as many emails from people using these services as I was saying before. So people are continuing to use them, even though they know that they've got holes in them. So people don't appreciate the individual risk. Like, if you were out in Manawa for Debcon 12, you wouldn't walk down the streets with a big expensive camera in one hand and a laptop in the other hand. Because you can appreciate the risk of doing that. And with no disrespect to the people of Nicaragua, but there were situations there where people were challenged about their security. But when it comes to email, people have no perception of any threat whatsoever. It comes to telephone calls or just maintaining a list of your friends on a social network.  But with all this attention on the subject, there's never been a better time to be promoting free software solutions. So who wants to get started to run open source communication software? So what's the strategy to do this? Obviously, if people were keen on this, they would have all done it already. Everyone would have free software. So we've got a gap there and we've got a bridge that. So I've documented a strategy here. It's fairly straightforward. One of the first things to look at is the federation. It's how we can interact between our domains, just like we do with email. SIP and JABA, the two common protocols for voice over IP and multimedia communications and they both support federation. Some versions of the software that you might have tried before did not support federation very well or very securely, but that has improved in the last 12 months. Certainly with Debian 7, with Weezy, you have federated SIP and federated JABA in the standard stable packages. The next thing is to get around NAT. Who's ever had an attempt to make a call with a soft phone and they've had audio or video in just one direction? Yeah, it's a common problem. And one of the reasons for that is the NAT, that firewalls and NAT devices are blocking something in one direction and the software doesn't know how to deal with it. There was no standard solution and for quite some time manufacturers are actually making routers and other devices that would try to help you. It's just each one would try to help in a different way and they'd end up fighting with each other and making the problem worse. Then a standard came along and that's called TURN. TURN provides a mechanism for relaying video, voice, and all other types of streams and sockets in a range of scenarios. That's going to be part of the solution. Running both SIP and JABA. Some of the people you want to speak to will be using JABA and some of them will be using SIP. We have a lot of these hardware devices out there and they're predominantly SIP devices, very few JABA devices. There are a lot of very good chat products that people have on their desktop or on their laptop or on their mobile phone and most of those are JABA based. The user identifiers which is basically like your email address can be interchangeable between SIP and JABA. The only thing that we have to keep in mind is you have to run something like a dual stack. It's like running IPv4 and IPv6 at the same time. We have to run both of them to be successful, to maximize the probability that you can get any call to anybody through either of these protocols. If the other person only has one of these but you have both then chances are your call will succeed and you'll continue using free software. The final thing is to attack from every mode of communication. We can now do this from a web browser with no plugin required. If you have a blog, if you have a small business website, where you have a contact form and you have your phone number, you can now put a JABA script control and a little bit of HTML and people can call you as long as they have the new browser. They don't need to install anything. Now let's get a little prompt to agree to let your website use their microphone and potentially their webcam. Mobile devices, the fastest growing form of internet access by far and most of them now are Android which is Linux based which is great. There's a number of options for real-time communications with CIP and JABA on Android. That's part of the picture that tapping into those options and providing Debian infrastructure and to act as a server for those apps is another way we can move forward and hard phones. Some people just feel comfortable with a physical phone. It looks like the phone that they have now that's monitoring them, but it's better. Just putting these phones into the homes of people that you communicate with that won't use a computer can be very powerful. Just looking more closely at turn from that busting, a single turn server instance will support both your CIP and your JABA users. You don't have to set up multiple turn servers. It's independent of these protocols. It supports various things like tunneling through HTTPS. If you're hoping to receive calls from people that are on corporate networks where their internet access is tightly restricted and their only access is using a proxy and they can proxy HTTPS, they can use turn. Setting up your turn server to listen for port 443 can be very powerful. It's a standard feature in the WebRTC protocol. For anyone developing any of these WebRTC solutions, whether they're doing it with CIP over WebRTC or whether it's some proprietary solution, turn is still a part of that solution. It's in the browser itself. It's not in the JAVA script. There are three turn servers in Debian. One of them, the return server in reciprocate, is in stable, in Weezy. The open turn server from Jitsi and there's the RFC <IP_ADDRESS> turn server project. They're both in unstable and I believe they've migrated to testing. There are three compelling solutions. If one doesn't work for you, there's a good chance that another of those solutions will work. All of the communities are very active and they're helping with bugs on those packages. You can't go wrong choosing a turn server. Setting up a CIP proxy is a first step. A lot of people have heard of asterisk or free switch and they've tried to start there. They're great products, but they have a lot of bells and whistles. Sometimes that can make the project a lot more complicated to begin with. The advice I normally give people is if you want to get federated quickly and if you just want to start trying this out, just set up a basic CIP proxy. It doesn't have voicemail. It doesn't have queues. It doesn't have all these other fancy applications. It's just a way for people to call each other, but it will support federation and you can add in PBX such as asterisk or free switch later on. They can work as an extension to your proxy. There are two popular choices. They're both packaged in Debian. One is the repro from reciprocate and the other is Camilo. Both of these solutions support TLS, which is quite important for federation now. They support WebRTC and they support the federation itself, so routing calls between domains. A lot of older solutions would just work in a local domain. They were trying to replace an office phone system. They were not meant to go out on the public internet and if they did, they would often find themselves a very big bill. These solutions hopefully won't leave you in that scenario because they're so simple. It's easier to understand what you're deploying and hopefully make it secure. The next step is the Jabba server. Once again, it's important to start with something simple. I use the eJabbaD. It's based on Erlang. It's very stable. It has a web interface where you can set up users. It can work with your LDAP if you have one to authenticate people with a single password. It's very convenient, very quick. You can often set that up in maybe an hour. Both of these solutions are packaged, so you don't have to compile anything or whatever. Taking it further. Once you've got all of those things in place, then it's a good time to look at more advanced solutions. I've listed some of them here. A soft PBX. Let's say you do want voicemail, you do want queues, you want to have a menu system where people are prompted to who they want to speak to. Then you will have to look at putting in a soft PBX. You can connect those solutions to your existing proxy. You don't have to replace the proxy, rather, you connect them together. If you want to do conferencing, you can use a soft PBX to do that, or you can use a standalone conferencing server. In Catalan, we'll talk about that in the next session. The other direction you might want to go is with Jabba, which is formerly XMPP. There are a number of solutions now to rival Facebook and Twitter for social networking features. But once again, these are a next step. After you get your basic Jabba server running, after your users have a user ID and they're able to chat, then you can look at these things coming in later. But they are there, and they're also packaged in Debian or they're open source, and you can get your hands on them and try them out. So that's all of the slides. Here are some of the packages that I've provided already for voiceover IP. There's a few others in the list as well. With Drupal, I've been working through the packaging of JavaScript so that we can make a WebRTC control that is dropped in like any other Drupal module. So then anybody running a Drupal blog, and there are millions of them out there, can just add a WebRTC calling feature on their blog just as easily as they can add a web form with email. When someone asks them, do you want to talk to me with Skype, for example, they can say no. Just come to my blog and talk to me with that. It's not only good for putting the proprietary solutions aside, but it also helps people to raise the profile of their websites, their blogs, or whatever their preferred online identity might be. So if you're running a business, you want to get people to come to your business website. You don't want them to register their details with a third party, if you can avoid it. Some of the other solutions we've got here, Reciprocate, of course. So I also work on the upstream development of Reciprocate, particularly the WebRTC code. So if anyone has any questions about that, feel free to hassle me on the Reciprocate mailing list. We've got the RFC 5766 turn server and the JIT-C turn server as well. And we've also got the Cipex Tappy. This is an alternative CIP stack, and we're using that to provide the media framework for conferencing. In the future, we might look at doing that with the WebRTC media framework, which can run standalone as well in other applications. And this provides more advanced codecs and other options for conferencing. Has anyone got any questions at this stage? I'll just wait for the microphone. Someone put a microphone. About browser compatibility with WebRTC, there is probably nothing in stable which would support WebRTC in terms of browsers. That's what Backports is for. Right. And you mentioned the possibility to use your smartphone, for example, you, well, Android is installed on most. Do they come with such a browser out of the box or would they have to install latest version of Firefox or something to use WebRTC? How widespread would it be for a smartphone user to just use WebRTC to talk to someone? For the smartphones, it's really an emerging thing. Ericsson Research released a browser which they call Bowser, which supports WebRTC. I haven't tried it extensively and I can't say if it works or not, but that is out there and that's worth a shot. The whole thing is a moving target. Smartphone users are particularly likely to be behind that as well and to have other connectivity problems. While we're still sorting out WebRTC issues just on the normal office PCs and home PCs, then some of those mobile connectivity issues will probably come last. You can see that the support for turn over TLS has only just been realized with the latest release of Chrome from Google. I haven't checked where Firefox is with that, but naturally they'll try and follow what Chrome is doing to interoperate as much as possible, but these things are still falling into place. With the original version of WebRTC in both browsers, you could only use UDP for your media streams. Now you can put your media stream in a TLS session through a proxy, which is a big step forward for connectivity with people on a restricted network. So these things, even when they're implemented in the desktop browsers, they might not follow in the mobile browsers right away. The one reality is with the mobiles, people also have to look at dedicated apps rather than waiting for the features in the browser. A lot of people have tried the non-free applications like Viber, for example. Lumicall aims to provide a similar sort of level of convenience, but with a genuinely free experience, because it's open source. People can install the app. They register their user ID as their phone number so that they can immediately call other people just by knowing someone's number. They don't need to go and say, what's your user ID on Lumicall and start making up a list of all their friends. It's automatic. It's linked to their phone number. These are the types of things that we can do to make it easier for people on mobile. That's the situation with mobile. I see that taking time to really settle down for the WebRTC in particular. Do you have other questions? What sort of resource does running Cyprocade on your server potentially take in terms of, is it tiny, enormous, might use a lot of bandwidth? This thing costs about maybe 20 francs or $20, depending where you're from, and you can run parts of Cyprocade on one of these. It's a very basic router. On a server, it's not very demanding. The Cyprocade stack actually runs on an Android device as well. You can run the return server on a device like this to provide constant and net traversal wherever you are. If you have one of these in your home running the turn server and you're out on some odd network with your laptop or your mobile phone, then you can basically use Turn to call home and to relay your media streams, which also gives you a level of privacy as well as the security that you can get through awkward network situations. It's not a very demanding stack. It's been optimized quite extensively. On the other hand, it is a very full implementation of SIP and related standards, so it's not the smallest stack by any means, but it still runs well on small devices. End up relaying, so there are considerations as to how much data you're sending through your box because the turn server ends up being intermediary if it can't make a direct connection. Is that right? Yes, and it uses access control so that only authorized users can relay. There are situations and it varies from country to country. In some countries, virtually everyone has to relay their calls because their telecoms market is very regulated and they're very much afraid of these technologies and they have to set up VPNs and relay everything. In other countries, it's just a question of what hardware people have. People with very bad routers often find that they can't make proper calls without something relaying their calls for them. So a turn server will help those users. Maybe one in ten users will need relaying in like a western country at the moment. So, more questions? So I see that it takes, we'll take a bit more time until WebRTC becomes as a big use as it would need to be to just tell somebody to go to the website. But imagine that would be the case. For me as somebody who would like to then use WebRTC, there are standalone programs who do WebRTC and for which I would then not need to use my browser, which I only want to use for browsing and not video stuff. But a standalone application which would just be like other calling applications but just would do WebRTC or multiple protocols for that matter. Okay, so what you're saying is someone wants to call you? Yes, and I don't want to use my browser but a standalone application. Does it exist? Is anyone here make soft phones? Emil? He gives a microphone too. Hey, Emil from GT. So the whole point of, I'm not sure if many of you here have tried coding with WebRTC, but basically the way it works is that you tell your browser, I imagine you've already said that, you tell your browser I want to do audio and video and then it generates a block which is an SDP, which I suppose you've already seen maybe. And the whole reason for using SDP was so that interoperability with other protocols such as SIP would be easier. So one would hope that, yes, you would be able to do that. You would be able to use a browser to connect to any SIP soft phone and receive codes without you needing to start a browser. Now, that was a plan. In reality, things got a little bit more complicated than that because as you all know, WebRTC requires a bunch of things that weren't necessarily available in regular SIP soft phones such as, for example, support for rice and not just standard vanilla ice, but trick-wise support for bundles, support for DTLS. Most of these things are currently unavailable in most soft phones today, really actually all of them. Now, what is going to happen most likely is that all of these soft phones are going to just adopt and implement the additional protocols that they need to. This is what we are currently doing in JITZ. We're implementing support for ice per SIP. We already had it for XNPP and we are also working on implementing DTLS. Today, however, there are already people who are using JITZ through XNPP, through Jingle, to make codes to a browser and receive codes from a browser. The short answer is, eventually, it would be possible today. It is a little bit of a hassle. There are some unusual side effects of trying this. Catalan, have you got the polycom phone there? Did you just pass me the polycom phone? One of the first things that I did when I try WebRTC is to make a call from the browser to one of the regular phones I had on my desk. So the SIP relayed the call from the browser to the phone and the phone crashed and rebooted itself immediately. So you have to be careful when you have to test these things before you roll them out in a commercial environment, for example. They do have this impact because the protocols are a moving target. Things are improving, but older devices will struggle with the newer protocols. I'd just like to have one comment here. The reason why some of these phones would still work today is because the WebRTC implementation in Chrome today uses SDS for key negotiation for SRDP, which is the conventional way security was being handled in SIP for quite a while. Recently, a couple of weeks ago, actually, the ITF agreed that SDS would not only be mandatory to implement, sorry, would not only not be mandatory to implement by WebRTC implementation, but it must not be used by WebRTC implementation. So all of these that actually supported SRDP on some level are going to be with their current implementation obsolete and we would have to wait for firmware updates or for new versions of soft phones. Just a simple answer to the question. GTC has only recently been introduced into unstable.  Yeah, yeah, it's okay now. A simple answer to the question. GTC has only now been introduced into unstable and it's not even yet, it's still too young for Jesse even. There are a number of other soft phones probably of lesser quality, still already in the archive. Linphone, SFL phone, which is awkward, but has most of the features and yeah, and what, yeah, the other one. SFL phone should have it, I think. Yeah, should have it. I tried to configure it a while ago and was unsuccessful of using it, but there is a switch in the configuration panel and there's also a gate that should function as a soft phone and a bit odd and it doesn't seem to have a complete TLS support on the client side. Just to give an example, I'm not sure if I can do too much about that. Yeah. Empathy is a default soft phone in the GNOME desktop and during the testing phase of Weezy, I discovered that empathy was hard coded to relay things via Google's turn servers so that it wouldn't actually let you connect with the turn servers that are packaged in Debian. So in about March, I opened a bug just commenting that this may be against the privacy expectations of many users and I was just surprised to see this taking on a whole new meaning with the things that have happened recently, that there probably are other soft phones that have hard coded settings and this is another area where it's important to have free and open source software because then you can go in and you can discover these things and you can say, well, look, that needs to change and you can change it. So this is an opportunity to add a new configuration parameter to support any arbitrary turn server. So the current scenario, it's constantly improving but there's still little gotchas like this that you need to know about. So we've got more questions? Okay, also another basic comment. All the soft phones that we mentioned can do CIP but it's unencrypted CIP will work and will work well but I think maybe the basic assumption here for all of us is that this is not what we want, right? I'm happy with plain text CIP, making a phone call without a low rest of the world. For me, it's fine that plain CIP will be working. There's no hard demand for me to have encrypted audio streams. Any other questions? Zafrid, do you want to tell people a little bit more about the asterisk situation in Debian? A bit more about asterisk and other packages. Okay, about some packages you didn't mention. Okay, free switch, you mentioned free switch. Free switch is not yet in Debian. If you want to help packaging it, please contact me or Phil Hans should be here in the room. Okay, asterisk 11 is not yet packaged. It should hopefully be uploaded very soon. We're waiting on the PJ project package. It's now in the new queue. Asterisk 11 is the version that finally supports WebRTC and all of those things. The basic CIP TLS support is already in the existing package in Weezy. More on that, you didn't mention but there's a third alternative not widely used called Yeat. It's there. The maintainers are responsive to patches. So if you use it and have any problems, feel free to report bugs. Yeah. Okay, great. Well, our time is up. So thanks for coming along to the session. We have more questions. Feel free to comment. Afterwards, we have a free RTC mailing list. Have a look at opentelecoms.org. You can find details of some of the mailing lists for discussion of the general principles and also for specific projects. And everyone will be more than happy to help here. So thanks again for coming to Debtcon. Thank you for that.


And that's it. Thank you. So for those of you who attended QtCon last year, I've been talking about Qt3D in Qt 5.7, which was the first stable release. And the aim of this talk is basically to give a quick recap of what happened since then. Turns out we've been fairly busy, and I expected to get more time. So that basically means no lunch break for you. All right, so that's basically what we are going to cover. I will totally run through the first few bits because that's mainly trying to get you to remember the basics of Qt3D so that I don't lose everyone in the room. And then after that, we will cover really what's new. So for the novelties, that's mainly pretty much everywhere. We did a few changes for input. We have a big new block, which is about animations in Qt3D. And also for the quality of the rendering, we have new materials. We have new ways of making texture or integrating with Qt Painter, Qt Quick, and so on. So we'll see that. All right, so what is Qt3D? Just so that you remember that. So it's really not completely about 3D internally. It's really multipurpose and not just for making games. And at the core of it, it's really just a simulation engine, a software time one. Just happens that when you want to do 3D seriously, you need such a simulation engine. And so it's been designed to be scalable and extensible and flexible. All right, so the core is really not about 3D. And that's because we want to be able to deal with AI, logic, audio, and so on with that. And it just happens that there's, on top of it, a 3D renderer. And you get all you need for system simulation. So that could be mechanical systems, physics, and so on. And it turns out that games, you simulate physics. And mechanical systems. Yeah, then I will skip on that, because that's not very relevant for today. If there's one thing I want you to remember from last year, that will be what's coming now. So that's why I'm going through it again. The whole API of Qt3D is designed around the concept, which is what we call the entity component system. And so we briefly see and remember what that is. So that's an architectural pattern. It's fairly popular in game engines, actually. And contrary to some of the bad habits, we might have it favors quite a lot composition compared to inheritance. So one way to see it is that an entity is your general purpose object. OK, it doesn't do anything by itself. And then this entity will get its behavior by combining data. And that data comes from typed components, each component being a thin slice of behavior that you attach to your entity. And that's the combination of those components, which basically describes what your object in simulation does. And the fact that we split between the actual behavior and the data, so from the front end API that you get, you just manipulate data and no behavior, that allows us to manage the API better over time. Because that's much easier for us to just add some key there on new property on an object or deprecate one and change the behavior in everything private. So the way it looks for these kind of things, what we have there is that an entity can have several components. One component also for avoiding blowing your memory, we allow you to have a component attached to several entities for reuse. They all look the same, for instance. You want to use the same material everywhere. And then each component provides a bit of data, which might be relevant for physics, which might be relevant for putting it somewhere in space for its aspect, its shape, or for its animation. And then on the back end side, so that's a part that you don't see when you're a user, we have what we call aspects, which are the system part of our entity component system. And those aspects, they are visited data to find out what to do with the object, and that's where the actual behavior comes from. That's the part which is heavily multithreaded. All right, so just to wrap this up, last year I showed that example that just you get an idea about how that maps when you try to put something on screen. So if we want to display a donut, we basically end up with generally one entity, because those entities are objects, right? So we put them in a tree, like any cube object. That's generally good practice to have an entity which happens to be the root entity, which encompass everything you have in your simulation. And then one entity per object in your simulation. And turns out that in that particular one, we have just one donut. So we'll have one entity which is our donut. If we have just the entity, we see nothing on screen. And that's why we will give some behavior to that entity by attaching some component subclasses. In the case of our donut, we only need two. We need a geometry, so mesh to say, okay, I have an object in my simulation. It happens that it would be a torus, right? So I have a mesh representing my torus. And if I have that, I don't know how it looks yet, okay? I just know it's a geometrical shape. So we give it also a second component, which is material, which will control how the surface of the torus will be rendered. And so in that case, that's one with some foam shading and with several textures and so on, okay? So one entity, two components, and you get your donut on screen, pretty much it. All right, just a last word on that. On the API, we did the effort for Q3D to have everything accessible on C++ or from QML, okay? So the API is really one-on-one between QML and C++. I will tend to show in this talk mostly QML code just because it's more concise. But I mean, as long as you know that it maps one-on-one and you know how to convert from class name to entity names to element names on the QML side on vice versa, that's fairly trivial. So that's perfect, Miran, the C++ classes are named just in the same way than for Q classes with the Q prefix. And to get to the element name on the QML side where you just drop the Q in front, right? That's, so you have Q entity which becomes just entity and so on. All right, so what's new? For input handling, not many big changes, everything we add before is still there. We just figured that we missed something in the API so we added that. If you remember, I mentioned that we had a way to specify axis. So I can create an axis with Q3D to say, okay, I will have an axis, let's say, controlling the rotation of an object. And what we did is that if I have a joystick, that's actually easy, right? I have a physical axis and then I can just move it. Sometimes I don't have that and I want to control this virtual axis from the keyboard. And I want that when I press on the button, this virtual axis slowly goes left, for instance. And when I press another key, it slowly goes right to simulate as if I would have a physical joystick and move it slowly in one direction or another, okay? And that was pretty much it, right? So we would have just a value of where my axis is. But then to actually do the rotation of my object, I just have the plain value of where my axis is. So if I want to have my object rotate over time, I would have to have a timer at the right period and then each time read the position of my axis and then increment the rotation of my object. So that felt wrong, right? Because you would suddenly write very imperative code, have to have a timer, make sure that the timer is at the right frequency and so on. So clearly some piece was missing and that's what we fixed, okay?  But then we had this problem of how do I control the value in my simulation over time based on what's happening with my inputs and in particular of my axis? So obviously we use an axis for that and we only got the axis position, which is fairly limiting and that forces us to have this imperative code everywhere and this imperative code is executed on the main thread instead of being in the simulator. So that's kind of annoying. And so we need to sample over time and we might even have to integrate because if our axis is supposed to be about acceleration and not velocity then you have to integrate that. So just a headache. So in 5.8 we introduced a new class which is axis accumulator and axis accumulator basically does all that work for you. It's executed on the simulator end, right? So it's at the right frequency based on the simulation and so on. So it will manage this value over time for you and it takes an axis as input and then we'll do all the work. And you can actually declare that axis is supposed to be about velocity or acceleration and the integration will be done for you by the accumulator. That's all done in the secondary threads. So code wise it looks like this. So you would still have your logical device.  And that's the guy that previously were harassing for information from a timer. So to avoid that then later on you have your axis accumulator where you specify the input axis which is the mouse y axis in that case. And then you just say this one controls velocity, right? So when I'm completely on one end of my axis I have then the maximum velocity for the rotation for instance of my object. And I can scale that because my axis goes from minus one to one, right? Just at this position. So I can say yeah it's minus one to one but really the maximum speed I want that's 50 RPM for instance. So then I can say convert that minus one to one to one. If I'm at one I want 50 RPM, right? And that's pretty much what you get. And then the axis accumulator has a value property and you just have to bind on that. Okay, and once you're bound on it you're done. Okay, so let me show you briefly. So I will have to drop the mic. Okay, so I want you, all right. What's going on now? Okay, that one, right. So the idea there is, so I try to run the old one but for some reason doesn't want you. The idea there is that I have page up and page down which controls the rotation of the large box that we have in the center. And so previously what would happen, which I wanted to show but won't be able to for some reason, is that when you go page up you would see the, you would see it spinning, right? Because we would get signals telling us it's slowly going somewhere and we would add that to the rotation and then at one point the axis was stopping emitting signals, right? And so we wouldn't see the cube spinning anymore but in that case, I mean with the accumulator then we don't have this kind of effect and we have the speed and if I leave then it's slowly get back to stop again, okay? So that's all computed for you and nothing more to do than the code I just showed. All right, so the big part now that's the animations. So before 5.9, if you want animations, well you could reuse the Qt Quick animations, right? Because that's based on property bindings and so on. So that's what we did, right previously. But main problem is that they are on the main thread, okay? So they are on the main thread which means that you can't really do something else, right?  And the big problem that they are then not synchronized with the frame rate of the engine. So very often you would see with these kind of animations like some frames keeping because that was slowly getting out of sync. And so what we did is to have a new aspect which is the animation aspect that you can register on your engine and then you can have extra animation that will run inside of the engine. So there's no search synchronization problem anymore. And also that reduce the communication between the main thread and the secondary thread for the properties changing due to the animations. So there will be API and that's mainly classes narrating from the abstract animation clip which contains the data about a particular animation. And then we have classes narrating from abstract clip animator, okay? Which is not the data of the animation in this case but the one which is responsible of the information on how we want to play a particular clip. Okay? So there's a separation there and that's the actual component that you put on entities. So narrating from that, from the abstract animation clip we have animation clip simply. And that one represents key frame based clip which is generally a good thing for artists but not so much for developers because it's kind of involving to actually write the code for describing that. And so animation clip holds animation clip data through the clip data property. And those animation clip data can only be created from C++ for now because we didn't quite figure nice API from the QML side. And the clip data has a set of channels which describe the properties which are controlled by the clip. And each channel has one or more channel components for complex type. So typically if I want to control a position, right, I would have a position channel which are three components X, Y, Z. Okay, that's typically how it's done. And then each component will have a list of key frame which will describe the value of a particular component at a given point in time and the easing curve which has to be used to get to that point, okay? Not getting too much in the details of that. In practice, we don't expect people to use much a C++ API for that because it's just or able to write. You have to figure out all the values, right? That's generally how to do by hand or the values of the values key frames of the values components. That's not necessarily something you want to do by hand. So we also have animation clip loader. Animation clip loader loads the same pack of data but coming from a JSON file. And that JSON file, that's something which is more accessible to artists if you have an export to it. And so we also provide a plugin for Blender which allow artists to basically control their object using the Blender tool so they can nicely draw their, place their key frame and draw their easing curve, export that to JSON, right? And then the developer can pick that up and get it in the scene. All right. And so the use for that one, that simply you get an animation clip loader and then you give it a source, point it to the JSON and then you will be able to play it. So that's just a pure data. So to play my clip, I still need to have an animator. So we'll have the simple clip animator, we'll see a few more in a minute, which will point to a clip. That case, a clip coming from animation clip loader. And then I mentioned that we add channels and channel components. And I still need to declare which channel controls which object in my simulation, okay? And so for that, there's a channel mapper in the animator which allows to say, to give a channel mapping. So for instance, I can say the channel location coming from the animation will target the transform object and the property translation inside of that transform object, okay? So now I'm controlling the translation of my object based on that particular channel. Same thing for the rotation and then same thing for instance for the color. And now I will run that one. Clip loader. All right. So I just have a cube, okay? And that cube is basically the code we had on the slide is referring to that particular cube. And when I click on it, okay? I just get my animation and I see the different properties being applied on the cube while the animation is going with fine control of the easing curves and so on, okay? So if the animation is kind of me, I did it myself. All right, but that's fairly simple animation there. Very often you would need to have more than one and to be able to move from one animation to another one, potentially having several playing at the same time. And you want to create a completely new animation based on more, on simpler animations. So you need to combine them and again, we want to do that on the engine side, right? We don't want you to do all the job of creating new animations from the JSON file on the front end, for instance. And so for that, we also provide Blending Operators and that will make it possible to have new variations of a particular animation based on other ones. Typical example you might have seen in games that I have a character who is working, right? And at one point, he starts to run. As people doing the animation, you prepare the animation for working, you prepare the animation for running and then on the program side, you just say, okay, I'm 50% in between, right? And then you get something else, okay?  So if I have a character who is working and then gets to run, other developer will have just a factor which goes from zero and I slowly get it to one and then my character is fully running. That's just of the idea.  So you need to combine all this kind of stuff. And so for that, there's a blended clip animator where you specify a blend tree, okay? And we have two operators so far which are additive and LURP. And so the additive clip blend that we have the main clip and then we add something else on top, okay? And then we have the LURP clean blend where we basically interpolate between two different animations and the leaves of that blend tree are animation clips, okay? So here we can, for the example I was giving, we can imagine having like three different clips, one for walk, one for run, one for jump. And then depending what my character does, I'm in between walking or running so I have a LURP blend in that case and the jump comes on top of that, right? So I would have an additive blend for it. And so I have a small example for that one as well. Again, not necessarily the prettiest animations in the world.  Yes. So what we have there is a small toy plane, right? And then, okay, my toy plane is flying, okay? So that's the main. We have basically the same blend tree structure than what we had on the slide. So it's just flying around, right? So it's slowly going that way. But then if I have a hotshot piloting the plane, right? I could prop up a bit the roll strength there and then we would have on top of the regular animation. We start to do a roll before plane and if we want to have the roll completely added to it, right? We get our plane, which does this kind of thing. So that comes on top of the regular animation that we had. And then that's the easy one, right? It's just fine and flying and so I could LURP as well toward like something in flight where I have some turbulences, right? And we see that the plane goes in one direction or the other. And of course I can have those small turbulences and then have the roll at the same time, right? Depending on what the pilot is trying to do in that particular situation. And I get a completely new animations, right? And again, that's all interpolated on the back end side. New things as well, so that's the materials. We had only font-based lighting on 5.7. And on 5.9 we introduced PBR, which is physics-based rendering. So we have new materials, which basically gives much better rendering in that case, which are based on the metal rough model. So for an object you can specify if that's metallic or not, or if that's rough or not, right? And depending on that you get different rendering. So that also allows to introduce ritual lights. Previously we had only the direction lights, spot light, point light, and now on top of that we have the environment lightning, which is available to those materials. So that's a new component. You can specify an environment light where you specify two textures which characterize the type of lighting you have in your wall scene. And that's what you see reflecting on the object, so that's what we barely see on the sphere, but I will show the example later, more examples later on. And generally you want to see that environment because it provides light to your objects, but then as the observer of the scene, you generally want to see that environment around. So we also introduce the skybox, which allows you to actually get a look on that particular thing. So I'm supposed to be over already, so I would just mention that we got painted textures as well. I can show you, for those who want to stay a bit longer, I will show you the examples if you want. Painted textures. Oh, there's a group picture as well, okay. Yes? I heard through the grapevine that...