We start this afternoon's business with portfolio questions. Question 1 from Marie Todd. To ask the Scottish Government what action it is taking in response to reports that every tenant and homeless accommodation in the highlands is in rent arrears following the roll-out of universal credit by the Department of Work and Pensions. Minister Jeane Freeman. The roll-out of universal credit is indeed causing unacceptable levels of anxiety, hardship and rent arrears. In particular, the six-week wait for the first payment, which I know is turning out to be even longer in areas like Inverness, is pushing people into crisis and resulting in significant rent arrears for local authorities and landlords. That is why the Cabinet Secretary for Communities, Social Security and Equality has written to the Secretary of State for Work and Pensions requesting a halt to the roll-out of full service universal credit until those problems are fully resolved by the UK Government. Marie Todd. I'm delighted to hear that the Scottish Government asked for a halt to universal credit roll-out as it's clearly damaging my constituents, pushing them into poverty and we're seeing record renter ears of £900. Do you agree with me that this system must be paused until the UK Government resolved the issue of it being a minimum of six weeks to get to your first payment, which for all income family can mean the difference between heating and eating? I say to the member that I certainly do. Once again, we have a UK Government pursuing a policy regardless of its negative and damaging impact on people's lives. It is quite simply a disgrace that in pursuing that policy the UK Government is continuing to fail to address the weaknesses in it and in its delivery. The issues such as the six-week delay, which I find totally unacceptable, were all identified by the Westminster Work and Pensions Committee and are being investigated by this Parliament's Social Security Committee and have been raised by local authorities and the local government association. Once again, the UK Government is not listening, which is why I suspect that Frank Field, the chair of that Westminster committee, has accused him of having his head in the sand. Once again, we are having to urge the UK Government to address these issues immediately. I am glad to accept the invitation to meet with Ms Todd, Drew Henry and local partners in Inverness to discuss the difficulties facing their constituents. Mark Griffin. I welcome the minister's answer and agree that the roll-out must be halted, but that halting will not stop the hardship families in the Slothian and Inverness experience. I hope that the minister will extend DHPs to send a problem there and send that bill to Damien Greene. Stopping the roll-out will undoubtedly impact on the use of our flexibilities here in Scotland. Last week in gender called on the Government to review its own proposals because the draft regulations do not meet their intended objective. However, with no set implementation date for the housing payment flexibilities and potentially being put back further, will the minister come forward with regulations to deliver split payments so that we can be sure to use those flexibilities to deliver the gender equality that is sorely lacking from the current Tory system? I have to say that I admire the member's optimism at the idea that we would pay for something and then send a bill to the UK Government with any expectation at all that it would be paid back. We are already committed to £116 million a year from this Government to mitigate the very worst effects of the UK Government's welfare cuts. In terms of the implementation dates and the point that he makes with regards to engender, we have already said that we are considering actively how to implement our commitment to deliver on split payments. Indeed, engender is involved in that discussion. The consultation on the regulations on flexibility was simply on the two aspects of fortnightly payments and payment of rent direct to social and private landlords. We will rely on the DWP to deliver those. In calling for a halt to the implementation and roll-out of universal credit, we will begin discussions with DWP on how they will implement our flexibilities. We will continue our discussions with engender and other organisations on exactly the criteria that we could use reasonably to implement the delivery of split payments. I will, of course, inform the Parliament and the Social Security Committee when we have reached that decision. Edward Mountain. Part of the way of helping homeless people is not only to ensure that they have houses available for them, but jobs are also available for them. Long-term unemployment has more than doubled under the SNP to nearly 50,000 people. What action is the Scottish Government taking to help those in long-term unemployment find work and thus reduce their dependence on welfare? It's not quite the minister's brief, but very briefly minister. I'm more than happy to, thank you, Presiding Officer. Of course, Mr Mountain will also know that, in terms of youth unemployment, Scotland has now one of the best records in Europe, next only to Germany and certainly much further ahead than the rest of the UK. Our actions in terms of helping those moving from unemployment to employment of course covers our devolved employment programmes whereby by not applying sanctions, we are absolutely confident that we will have greater success than is currently the case. Without the hardship, misery and anxiety imposed on those who have to go through the UK Government's employment programmes. In addition, our job grant proposal, our manifesto commitment, which we will come forward with the details of implementation in the near future, will additionally help those individuals. Without pre-empting a future question, I have to say to Mr Mountain that if the UK Government would do the right thing on housing benefit for 18 to 21-year-olds, then we might indeed have fewer people who are homeless. Question number two, Colin Smyth. To ask the Scottish Government what action it will take to raise the incomes of families with children living in poverty. Cabinet Secretary, Angela Constance. The Scottish Government is committed to maximising incomes and tackling poverty and inequality. That's why we've taken a number of actions to help low-income households in the face of UK Government's austerity agenda and welfare cuts. Let me give the member and the chamber some specific examples. We are investing massively in childcare and early years. The total benefit to families from the 1,140-hour commitment of funded entitlement is estimated to be worth over £4,500 a year per child. We are also providing free-school meals for all children in primary 1,2,3,7 families around £380 per child per year. We are maintaining our commitment to support people in Scotland affected by UK welfare cuts via the Scottish welfare fund, mitigating the bedroom tax and the council tax reduction scheme, which together provide a substantial support to tens of thousands of families every year. In addition, our fairer Scotland action plan sets out 50 concrete actions that will take over the course of this Parliament to tackle poverty and inequality. Last week, it was revealed that child poverty in Scotland was on the increase with 40,000 more kids falling into poverty. Despite that rise, the First Minister failed to mention the word poverty once in her conference speech at the weekend, and today we'll spend two minutes talking about child poverty as opposed to two days we will be debating another referendum. Will the cabinet secretary use those two minutes today to commit the Government to a real positive action that will make a difference by supporting the calls by the child poverty action group to widen the scope of the child poverty bill to allow for a £240 per year rise in child benefit this year, taking tens of thousands of children out of poverty? Does the Parliament have the powers to help to tackle child poverty? Will she use them? The cabinet secretary has been working to eradicate child poverty all her political life, and it has to be regretted that there was very little comment last week from the Opposition on the truly shocking rise in child poverty that we are seeing in Scotland and, indeed, across the UK. A shocking rise in child poverty in a country as rich as Scotland is purely unacceptable for us to have one in four of our children, 260,000 children living in Scotland, living in relative poverty. However, as part of our programme for government, we are in the process of introducing a fundamentally important child poverty bill, which is all about eradicating child poverty in this country. With respect to the member's point on regard to child benefit, I have said before on many occasions in this chamber as we proceed with the child poverty bill, as we proceed with our new social security powers. It is imperative that we discuss, debate and challenge each other about what more we can do within the powers and resources that we have. I have no aspiration to close down any aspect of that debate. However, the one thing that I do know is that if we are going to be successful in turning around child poverty in this country, we have to ensure that we get more support to those in need. What I would say with respect to the Labour Party with regard to its proposal, which will cost £225 million each year, on seven out of every £10 would be spent on children not living in poverty. What we have to do is a government, we have to proceed with getting more support to those children in most need. We have to proceed indeed with the new powers that we have and also our very ambitious targets around affordable housing. Gillian Martin. Thank you, Presiding Officer. Can the cabinet secretary comment on the potential impact on women and families on low incomes who rely on child benefit but who will now be asked to prove that they have been raped in order to get payments for a third child by the UK Government? We are fundamentally opposed to this policy, which is frankly inhumane and irrational. Indeed, I would go further. It's a policy that I would consider to be barbaric. We remain deeply concerned about the impact of this policy. Actually, the impact will have on low-income families, many of whom are already feeling the effects of other so-called welfare reforms on their income. There is no, to be clear, absolutely no acceptable process which can ever be put in place involving a woman being forced to disclose being raped in order to access social security support for her child. Many other organisations, Presiding Officer, have said likewise and their experience in this field should be heeded. Adam Tomkins. I associate myself and my party with a number of the remarks that the cabinet secretary made in response to Colin Smyth's question. On the subject of the child poverty bill, the Life Chances Act requires UK ministers to report on the number of children living in workless households. Given that, as we know, work is the best route out of poverty, and those are, of course, not my words but the JRFs, why does the Scottish Government's child poverty bill not include a similar provision for Scotland? Cabinet Secretary. I think what Mr Tomkins really needs to recognise that, yes, work is imperative, but work has to pay. What the scandalous and shocking figures showed last week is that the number of poor children living in households that are working households is now at 70 per cent. Quite clearly, work is not paying in this country. Despite evidence of economic growth, we have seen no real rise in wages. What we all know to be true is that, while there are many different measurements of poverty and child poverty in particular, we have to galvanise action around the fact that income or lack of income is the biggest driver of poverty. That is why, in the face of a Conservative Government who has scrapped statutory income targets, we are now embarked on our journey to reintroduce those statutory income targets, but statutory income targets are more ambitious than the targets that were scrapped by the Conservatives. Given the rise in child poverty in Scotland and across the UK, it is perhaps not surprising that the Tory Government has scrapped those statutory income targets. Therefore, in my view, we are trying to sweep child poverty under the carpet. Alex Rowley. Most of Scotland would have been horrified last week when it saw the increase in child poverty and, while it does not escape me, the impact failed Tory austerity in leading to a lot of that child poverty. The important point is what we are going to do about it, and I think that that is what people want to say. The last Labour Government lifted over 200,000 children in Scotland out of poverty, over a million children in the UK out of poverty, and it did so by introducing tax credits. So, while the minister may want to target and say that the child poverty action idea of £5 on child benefit would not target, there is the opportunity to look at tax credits and increasing tax credits. There is the opportunity to look at free school meals and target the funding through free school meals. There are a number of ways. My question would be, we need to work together on this. Are you willing to work across this Parliament to tackle the blight of child poverty in Scotland, which is not acceptable? I am indeed more than willing to work across this Parliament and across local and national Government and Civic Scotland to address the absolute scandal of child poverty in a country as rich as ours. I would with kindness remind Mr Rowley that the Labour Party, if my memory serves me correct, voted against free school meals. I think where he raises an interesting point is around the Labour Government's use of tax credits in terms of 97 to the early 2000s where they did make progress in child poverty before it then stagnated. So, there is indeed more to be done. We should have a sense of urgency and a sense of impetus. I do remind Mr Rowley that unfortunately we don't have powers over tax credits, but we are always going to be looking much more at what we can do. The reality is that, with 15 per cent of welfare spend, the reality is that we will not be able to make up for all the unfairness in the remaining 85 per cent. As a Government, what we are doing, we are investing heavily in childcare and early learning. We have a new £29 million programme that is looking at tackling poverty. We have a commitment to deliver at least 50,000 affordable homes. Of course, we have 50 very concrete actions that are set out in our fairer Scotland action plan. I just sometimes wish that for the members across there, while I am absolutely open to scrutiny, we should all be examining our hearts very closely to look at what more we should be doing. I sometimes wish to point the finger a bit more at this law over here. I suggest that we have a lot of time on these early questions. Question 3, James Kelly. To ask the Scottish Government what provision it is taking to support social housing. Minister Kevin Stewart. Thank you, Presiding Officer. The provision of social housing is and will remain a priority for this Government. We are committed to maintaining and expanding our social housing stock as part of creating a fairer society. To do that, we have clearly set out our ambition, committed over £3 billion worth of funding for the delivery of 50,000 affordable homes in the current Parliament. 35 of those will be for social housing, an increase of 75 per cent on our previous social rented targets, which we know not only were they achieved, but they were exceeded. James Kelly. I noted in a recent reply to Alex Rowley that there had been slow progress towards the Scottish Government's target of achieving 35,000 socially rented properties with only 6,000 forecasts to be complete so far. Given that backdrop, it was something of a surprise at the Finance Committee last week to find out when Derek Mackay presented evidence on the spring budget revision that £20 million had been underspent on the housing budget and had been allocated elsewhere in the budget. Does the minister not agree if he thinks that housing is a priority, that that is an outrage and that he should be seeking at this late stage to reverse that decision and ensure that the £20 million is spent in this financial year? Minister. Presiding Officer, I think that Mr Kelly was at the Finance and Constitution Committee on Wednesday 15 March where this matter was discussed. We have had a healthy and encouraging start to the programme with over 20 per cent new-build starts of affordable homes that were approved in 2016. In terms of the number that he quotes in terms of £20 million, that relates to money from the affordable home supply programme that was given back to the capital departmental expenditure to be redistributed with the understanding that it would be reallocated to the NHSP at a later date. I will reiterate what I said previously. We have committed £3 billion of resource over the course of this Parliament. If Mr Kelly is looking for scandals, the biggest scandal is the fact that in the last term of the Labour-Liberal coalition they managed to build a total of only six council houses in Scotland. To ask the Scottish Government what investment it will make in social housing in South Lanarkshire over this parliamentary session and how many homes for social housing will that provide. The Scottish Government will make over £35 million available to South Lanarkshire Council over 2017-18 to deliver their affordable housing priorities. That will deliver an estimated 600 completed homes for social rent over those two years alone. We also know that councils need as much advanced notice as possible of their full resource planning assumptions for 2018, 2019 and beyond. That is why later this year the Scottish Government will bring forward a new offer of resource planning assumptions for councils to March 2021. Graham Simpson I thank the minister for that previous answer. It is interesting to hear how much money is going to South Lanarkshire. What is he doing to ensure that some of that money is going to the smaller housing associations not just in South Lanarkshire but across the country? Thank you, Presiding Officer. I know that Mr Simpson has asked similar questions before. What I want to see right across the country is co-operation between all partners to deliver the 50,000 affordable homes in Scotland. Is Mr Simpson as well aware that I have been looking at council strategic housing investment plans and looking closely to see what involvement community-based housing associations are playing in delivery? I said to the local government committee that I would report back to them after analysis was done and was complete on those ships. I intend to do so and I will embark to let Mr Simpson know exactly what the situation is regarding community-based housing associations at that point. Edward Mountain To ask the Scottish Government how it encourages volunteering in communities. The Scottish Government recognises the vital contributions made by volunteers to communities across Scotland and we provide a range of support to enable people to participate on issues that matter to them. Our £1.1 million volunteer support fund provides for community-level grants to create new or enhanced volunteering projects and to increase the diversity of volunteers. We also provide £800,000 to volunteer Scotland to develop, promote and enhance volunteering across the country. In addition, the £8.4 million provided through Scotland's third sector interfaces and Voluntary Action Scotland includes support for volunteer development. Edward Mountain Thank you, Minister for that answer. As the Scottish Government knows, volunteering in the Highlands is well above the national average. Given in 2015, nearly 77,000 people volunteered in the Highlands through an organisational group. Interestingly, with more women than men volunteering, does the Scottish Government support HIE and their investment in projects such as Project Trust in Argyll that encourage volunteer opportunities? How will they take the information from the Highlands to roll out what is being achieved across Scotland? It is true that volunteering is highest in rural areas in comparison to urban areas. Volunteering in rural areas is at 65 per cent and 49 per cent in more urban areas. Highlands and Islands Enterprise does a stellar amount of work in supporting social enterprise and volunteering in that part of the world. Tavish Scott To ask the Scottish Government when details of funding for the third sector interface model for the 17-18 financial year will be finalised. Third sector interfaces such as Voluntary Action Shetland had their funding protected at the same level as 2016-17 for the first quarter of 2017-18. With a draft Scottish budget published in December 2016 we wanted to make sure that third sector organisations had sufficient time to plan and discuss their work for the next financial year. A further offer of grant funding for the remainder of 2017-18 will be issued shortly. Tavish Scott I thank the cabinet secretary for that reply and also for the letters that she wrote to me on Voluntary Action Shetland and the needs of that particular organisation who are doing important work in this whole area. Would she accept that the point that she has just made on one quarter is indeed the challenge in terms of long-term staff contracts and indeed providing provision over a period of time? Would she undertake to at least explore the potential to be anordinately helpful, not just for Voluntary Action Shetland but indeed for voluntary organisations more generally? Cabinet secretary. Yes, I accept the content of Mr Scott's question. If I can say to him in terms of the funding for the next financial year, we hope to have issued grant funding by the end of April, beginning of May. We are glad to have been able to have protected the overall third sector budget at £24.5 million. The point that he makes about the need to move to three-year rolling funding is well made. He will have noted that we have made progress in that with the equality budget and as we move forward we will be looking to extend that to other areas where the third sector benefits in line with our manifesto commitment. To ask the Scottish Government what powers and responsibilities have been devolved to Highlands and Islands communities in the last 10 years. Minister Kevin Stewart. Empowering communities has always been a focus of this Government. We want to strengthen the voices of communities and the decisions that matter to them and empower people to take forward the solutions that can make a difference to the communities where they live and work. Our Community Empowerment Act provides new rights to communities to participate in community planning and make participation requests. It also introduced asset transfer to make it easier for communities to take over public sector property for the benefit of their communities. Our Community Choice programme also enables communities in the Highlands and Islands area and across Scotland to make decisions on local spending priorities. We want to continue to improve the relationship between citizens, communities and councils, which is why our programme for government set out our commitment to review the roles and responsibilities of local government. Kate Forbes. Minister for that answer. There are a number of communities in my constituency using the Empowerment Act to do everything from building houses to hydro schemes, health centres to schools. What analysis is the Scottish Government doing on the success of community empowerment legislation and how are they helping communities to make the most of it? I am always interested to see communities thrive and use the Community Empowerment Act to their benefit. I am particularly pleased to hear about community hydro schemes as there is a very successful one in my constituency at Donside village. The Scottish Government will keep under review the different parts of the Community Empowerment Act to look at the impact on improving outcomes for people and communities across Scotland. Obviously participation requests that part of the act comes into play on 1 April. I will be keeping a very close eye on what is happening across the country to see where they are being utilised. The request will show whether a council is already engaging well or not with its communities. Ms Forbes can be absolutely assured that we will continue to analyse and review every aspect of this act. Question 7 Gordon Lindhurst. To ask the Scottish Government what progress it is making on improvements to the planning system in light of the review of the Scottish planning system. Following extensive stakeholder engagement we published a consultation paper in January inviting views in our 20 proposals for change. The consultation is open until 4 April and during that time we have held a number of engagement events and public drop-in sessions around the country. We have engaged with a large number of stakeholders on our proposals. I hope that everyone will take this opportunity to make their views known and I look forward to seeing the responses. Gordon Lindhurst. I thank the cabinet secretary for that answer. Yesterday the Scottish Government announced that a decision on the proposed Pentland film studio in the outskirts of Edinburgh would not be affected by the PURDA rule in place for the local government elections in May. Can the cabinet secretary confirm that a decision will be made on that before the elections in May and that another political delaying tactic by a Government scared to make what should be a local decision before a local election? Minister. I thank Mr Lindhurst for the promotion. First of all, it's news to me that I'm a cabinet secretary. Mr Lindhurst and other members should know that it is not the job of the planning minister to speak in this chamber about live planning applications. We received the report on Pentland from the reporter on 22 December just prior to the Christmas and New Year holidays. Officials have been looking at that in the meantime and a decision will be taken after all of that is analysed. Question 8. To ask the Scottish Government what its position is on the 72 per cent of respondents to its consultation and social security in Scotland, believing that it should aim to deliver social security through already available public sector services and organisations. Minister Jeane Freeman. I thank the member for his question. While it is true that 72 per cent of respondents to our consultation said that social security should be available through public sector services, 84 per cent also stated that the social security agency should deliver all the devolved benefits. I think what that shows is that people who are responding the over 500 written responses we had and indeed in the many meetings and discussions I attended individuals and group organisations knew that there are a variety of models that need to be assessed. I expect to announce in the spring a preferred model for the social security agency that that decision will draw upon the evidence from a detailed options appraisal exercise as well as the responses to social security consultation and will hold true to our commitment that the social security system will be consistent, person-centred and uphold the principles of dignity, fairness and respect. Jackson Carlaw. I thank the minister for that response. I too had noted the contradiction between those two responses. Given the shambles that ensued last embarked upon a bespoke delivery system with farm payments, what confidence can the people of Scotland have and what assurances can the minister give that Scottish Government and competence will not be history repeating itself? Minister Jeane Freeman. I do not want to start trading shambles with Mr Carlaw but you know shambles of universal credit we have already touched on at the start of these portfolio questions. I have already given the social security committee the absolute assurance that all the lessons learned from various IT and other programmes conducted not only by this Government but by the UK Government themselves will be built into and learned from as we build our social security system and service for Scotland. Indeed, that is precisely why we are taking that planned approach that we have talked about so often in this chamber. Learning from the consultation exercise but very importantly using the direct personal experience through our experience panels which I am sure Mr Carlaw and other colleagues are promoting for us to recruit those 2,000 volunteers whose personal experience we will draw on and gain much from. I would remind the chamber that I am the parliamentary liaison officer to the cabinet secretary. To ask the Scottish Government whether it has received assurances that it will not impose the changes to housing benefit for 18 to 21-year-olds in Scotland while discussions regarding a possible exemption are on-going. Minister, Jeane Freeman. I regret to say that no, we have not had that assurance. The DWP rejected our request to draft their regulations in such a way that would allow us to use existing Scotland Act powers so that we could ensure that young people do not lose access to much needed housing support. Despite on-going engagement and a number of requests to this effect we have not received any reassurances from the UK Government even though the DWP's regulations are expected to come into force on 1 April. That is both disappointing and dismissive of the difficulties that many young people face in obtaining and sustaining a tenancy in Scotland. Mary Evans. I thank the minister for that response which I agree is incredibly disappointing that the Tory Government is removing housing support from vulnerable young people and that the impact of that policy will lead to a rise in homelessness of people in that age group. Minister. I agree with that. The policy will clearly lead to a rise in homelessness amongst the age group, the 18 to 21-year-olds that we are talking about. Our commitment as a Government is to retain housing benefit support for that age group. The ludicrous consequence of the UK Government's policy is that if a young person is assessed as homeless our strong homeless legislation in Scotland means that they will be entitled to a minimum of temporary accommodation and therefore will become eligible for the housing element of the universal credit but will not be able to move into settled accommodation without losing that entitlement again. As the chief executive officer of Centrepoint said, the UK Government should scrap the policy rather than try to make a bad policy work. Question 10 Fulton MacGregor. To ask the Scottish Government what action it is taking in light of the report shifting the curve that people in minority ethnic groups are often the most disadvantaged and can face additional barriers when trying to get out of poverty. We want to remove barriers that minority ethnic groups face as we aim to create a fairer, more equal Scotland. Our race equality framework published last year set out our approach to tackling a range of poverty-related issues through to 2030. Actions include improving information and services on benefit uptake and money advice amongst minority ethnic groups and publishing an equality's evidence strategy in spring 2017. Our fairer Scotland action plan provides a set of poverty and inequality actions that will benefit all of Scotland, including minority ethnic groups too, such as bringing forward a child poverty bill, tackling the poverty premium and delivering at least 50,000 affordable homes over the current parliamentary term. Scottish ministers also benefit from advice on our approach from both the race equality framework adviser and independent adviser on poverty and inequality. Fulton MacGregor. I thank the cabinet secretary for that response. Given the on-going Scottish Government anti-poverty work and the aspirations of the race equality framework to tackle poverty for minority ethnic communities, would the cabinet secretary consider asking the independent adviser on poverty and inequality and the race equality network adviser to meet and discuss the intersections of race and poverty and what could be done to address the disadvantage and barriers faced by minority ethnic communities? Cabinet secretary. I am pleased to say that the advisers have already met to discuss their respective roles and are due to meet again next month. I will make sure that both advisers are aware of the concerns that Fulton MacGregor has raised today. In the meantime, we are working to ensure that the advice that we receive from our advisers is joined up and encourages co-ordinated cross-Government action. That is why our Fairer Scotland action plan is also committed to establishing a national poverty and inequality commission later this year and I will announce the details of that commission shortly. Does the cabinet secretary recognise my concern from the European Court of Justice ruling that has made a ruling that says that employers can ban their workers from wearing a headscarf at work? That has a particular impact on Muslim women accessing the labour market but also has implications for Catholics who may wear a cross at work, Jewish men who wear a skullcap or indeed Sikhs who wear a turban. Can she therefore please tell us what the Scottish Government will do to address the issue and what action if any needs to be taken here in terms of the impact on employers and what impact it has on Scottish courts? I thank Mr Sarwar for his question. We are very much aware and have looked at the detail of the judgment from the European Court which has ruled that in some instances employers have the right to have an eternal rule to not allow the wearing of philosophical, political or religious symbols and that includes for example the Islamic headscarf for women. In terms of my position and this Government's position we are not in the position ever of telling women what to wear. It is a matter of individual choice and conscience whether a woman wants to wear a headscarf that is of significance to her personal beliefs. I can confirm as I did yesterday at a race equality framework event marking the anniversary of the publication of the action that we will take in and around race equality that we have no plans to introduce any legislation on this matter and we are not required to do so. To ask the Scottish Government what its response is to concerns that the Child Poverty Scotland Bill does not contain sufficient measures to lift children out of poverty. We consulted extensively on the Child Poverty Bill and received very broad support for our proposals. John Dickey of the Child Poverty Action Group welcomed the bill saying that the ambitious new targets and the legislative framework that underpins them will help to ensure that child poverty remains high and that the Government is constantly healthy account. I couldn't agree more with that. The bill will make Scotland the only part of the UK with statutory targets on child poverty and demonstrates that we in stark contrast to the UK Government will continue to prioritise tackling child poverty. The bill contains a number of measures that will do that. The point is not just measuring it but tackling it. Does the Scottish Government accept a link between child poverty and educational under-attainment? If so, and given the First Minister's claim that closing the attainment gap is her top priority, why does the recently introduced Child Poverty Bill contain no provision requiring Scottish ministers to take steps to address or indeed to close the attainment gap? It's somewhat ironic that the reason that we are having to introduce a child poverty bill in the first place is that the UK Government scrapped statutory income targets. Statutory, they recognise that the main driver of child poverty is income or indeed lack of income. So, as a Government, we won't be found guilty or wanting like the UK Government who seemed determined to sweep child poverty under the carpet. Can I also say to Mr Tronson, I'm sure he knows this point for sure, is that what the bill will do, it will require ministers indeed to meet for ambitious statutory targets to reduce child poverty by 2030, but the targets set the framework for action, but the action itself does indeed come from policies, which is why the bill also requires ministers to have a child poverty delivery plan with very specific measures and policies to lift children out of poverty, and the first plan will be published next year and updated in 2021 and 2026. Thank you, cabinet secretary. That concludes topical questions. Apologies to members who were not able to call, but we're quite tight for time given the number of speakers who wish to contribute this.


This video is sponsored by PDFElement. You know what, I'm going to move this lighting bag, it's just a little bit too harsh. Just give me a sec, I think that's a little bit better. So yeah, I purchased this excellent conditioned MacBook Pro in space gray, 13 inch, 256 gigabytes of storage, 8 gigabytes of RAM from MicroCenter. I actually didn't go through Apple's refurbished program or Apple's refurbished site to purchase a laptop, but I did strongly consider it. The reason why I went with MicroCenter is because MicroCenter has a lot of really amazing deals. I actually just purchased some AirPods not too long ago for like $50, $60 off. They're basically $10 more than the non-wireless charging AirPods, and those were on sale too, to put it in perspective. So first, obviously, affordability. I mentioned earlier in my last video that I wasn't sure what laptop I wanted to purchase. I wasn't sold on the XPS. I didn't want to pay a lot of money for the 15 inch MacBook Pro because I knew the 16 inch was coming out. Video editing became a pain with the MacBook Air, so I needed to replace my MacBook Air with another laptop. Luckily, I was able to sell that for a good amount of money, and I was able to put that towards my next laptop. Anyways, I digress. I went the refurbished route because I figured that's a nice way to play it safe. I could take the cash that I made from my MacBook Air and I could put it towards a refurbished MacBook Pro at MicroCenter, and I have 5% off, so I didn't actually pay too much out of pocket for the 2017 MacBook Pro that I have right now. So I played it safe because I figured, hey, if I want to upgrade within the next 6 months or a year, my pockets won't hurt too much. One of the main reasons why I decided to go ahead and purchase a refurbished laptop from Apple is because I trust that it's just going to work out of the box, whether it's refurbished or brand new. Apple products just work, and that's one of the main reasons why I continuously purchase Apple products and why they're so popular among so many people. Another reason is because I purchased it from MicroCenter, which is an authorized Apple reseller, so I feel really comfortable getting my refurbished laptop from them because, one, they're an amazing tech store. Two, some of their laptops come with 90-day warranties. Some of their laptops come with a year warranty. You also can pay an additional fee to get a MicroCenter warranty. They have a warranty where, let's say you drop your laptop and it shatters and it just can't be fixed, then they'll just give you a gift card for however much money you spent on that laptop to purchase a new laptop. So that's another reason why I feel comfortable is because of the warranty options. Since this video is focused on the Apple refurbished experience and specifically my refurbished MacBook Pro experience, I thought that it will be the perfect time to talk about a great productivity application that is on my MacBook Pro and happens to be the sponsor of this video, PDF Element. If I could describe this app in four words, it would be PDF Editing Made Simple. When searching for a job, especially in the tech industry, you sometimes need to make adjustments to your resume so your skill sets and experience correlate well with the job that you're applying for. Applying to 50 to 100 jobs can be exhausting, so the last thing you need to do is jump through hurdles to edit your resume. PDF Element solves this problem by making the editing experience simple and easy to use. You can create a PDF on your Mac by selecting images or text files from your local storage or even by simply dragging and dropping an image or text file into the application. From there, your PDF will be ready to be edited. Editing is as simple as selecting the edit option in the left navigation bar, then double clicking the section you would like to edit. I find this easy approach to editing beneficial, especially when in a time crunch or creating a resume from scratch, like this example. To learn more about PDF Element, be sure to check out their redesign website where you can learn about scanning images into a working PDF that are fully editable and searchable in over 25 languages, encrypt highly sensitive files that you are sending over the network, use industry standard encrypted digital signatures or you can even create your own handwritten signatures through DigiSign and so much more. The link is down below. I know I talked about the money factor a little bit, but I want to go back and touch on that point a little bit because one of the main reasons why I wanted to make this video is to shed light to those who want to invest in Apple products, but maybe you don't have the cash to spend 2 grand on that 15 inch or 2 grand on that higher spec 13 inch MacBook Pro. I know I'm someone who doesn't want to spend that amount of money for a laptop, especially if you're not necessarily in love with the laptop, but you're more so purchasing it because you know it's going to be reliable and maybe it's a little bit more powerful than the previous laptop that you've had or the current one that you have. Pretty much what my case was and for those of you who are college students who want to rely on a laptop and you don't want to spend a ton of money, I think refurbished is a great route because you can get a less expensive laptop so you can actually find a really nice MacBook Pro refurbished 13 inch for you know $7, $800 less than what it typically would be and then you can get the warranty so you feel really comfortable. If anything happens, let's say you buy it from Micro Center, if anything happens, they'll fix it. If it can't be fixed, I'll get a gift card to get a new laptop. Maybe I'll have more money in my pocket then and I can actually get a brand new laptop. Also for those of you all who want to buy the iPad Pro which is really expensive iPad, really I'm just saying if you want to get an Apple product and you don't have 100% of the money that you need, maybe you have 80% of what you would need to get an iPad Pro or a MacBook Pro, those higher end devices that Apple sells. You can take that 80% and that'll be 100% of what it would cost for a refurbished model because I know it can be frustrating sometimes looking at how expensive some of these Apple products are especially the laptops and they are really expensive a lot of times overpriced but you can get a refurbished model and that's okay. Also if you're purchasing a refurbished laptop from let's say Apple.com or you know in store I don't know if they're they usually never have anything refurbished in store but from what I've seen it usually doesn't take too long to ship a refurbished Apple product to the store that you want to pick it up from. Apple also guarantees that your device that you're purchasing refurbished is going to go through a rigorous refurbished testing process which basically means it goes through full testing and make sure that it meets all the functional requirements that a brand new laptop would. So the laptop is thoroughly clean and inspected it's basically like new with you know 15 maybe even 30% off and if you purchase your refurbished laptop from the Apple store or your refurbished product through Apple it does get a guaranteed one-year warranty and there's also Apple care that's available which is another thing to keep in mind so if you don't get it from Micro Center obviously Apple will give you Apple care I'm pretty sure Micro Center offers it as well so just to talk a little bit more about my experience with my refurbished laptop if I'm being honest with you I can be really cheap and my next laptop I'm not gonna do this but my laptop doesn't have a warranty I haven't had any problems thank God I'm gonna knock on wood with that one okay um yeah haven't had any problems and it didn't it doesn't have a warranty I don't I can't remember how long I've had this laptop for I'm looking down because I'm my laptop's right here but I think I've had it for I'd say close to a year now and haven't had any problems and I've used some competitors laptops that were not even refurbished just open box which basically means they returned their laptop within you know 15 or 30 days and you know they just didn't like it didn't have any problems they just didn't like it and it was real finicky Apple says that their refurbished products are as good as new products and from my experience I don't see any difference between my refurbished MacBook Pro and the brand new MacBook Pro and air that I've purchased in the past and I know there's a stigma that people don't really like to buy refurbished items because you're worried that you're gonna have problems but Apple you know I mentioned this earlier they do rigorously test their products just think about Apple's history their products are always reliable and remember that if you are purchasing from a third party vendor that they may not have the same benefits that Apple would have so my recommendation is to you know when you go to the store ask them what benefits they have for refurbished products and then you know compare and contrast to what Apple would give you as benefits if you were to purchase the item through them your stock does fluctuate because it all depends on what items that people are returning or have had replaced so if you see something that you really like and you have the cash to purchase it my recommendation is to do that that even happened to me at Micro Center there was like a 15 inch MacBook Pro that I was interested in someone purchased it and you never know when the next time you know there's a third party vendor or Apple is gonna get that same device back in stock another thing that I appreciate Apple did or does for their refurbished products is the unboxing experience brand new or refurbished products are basically indistinguishable so I know Apple says that their products are like new and I love how they say hey all the way down to the unboxing experience is going to be very similar if not the same as if you were purchasing a brand new laptop that concludes this video thanks for sticking around if you're still here give this video a thumbs up subscribe to the channel if you haven't already hit the notification bell so you can know soon as I release a video share this video with someone who you think might benefit from it you know someone who's maybe in the market for an iPad or you know Apple Watch or even a MacBook Pro iMac all that good stuff and as always have a blessed rest of your week I'll see you all soon peace


What's up guys and welcome back to the John McKee channel. Thank you so much for watching today's video is gonna be super super fun So here's the thing. I bought three EV ETB boxes And I don't want to open them, but I feel like I should open one at least so here they are I have three three of these coveted EV ETB boxes. Oh man. Look at this They smell bland I'm going to be opening one and I do have more ETBs coming I think it's only fair that I do open one of these just because I've been getting so many comments and so much love and support on these Pokemon videos, so Let's let's unbox one of these puppies and to see what's inside Whoo-hoo. Also, I would like to just mention the fact that you guys have been super super extremely supportive of My Pokemon unboxing videos and it's just been truly truly a dream Thank you so much for all the support the kind words all the above like to get this video up to let's see 200 likes So if you haven't already, please make sure to smash Smash that like button and make sure to subscribe as well So right away you open the box you get, you know all the pulls that you could potentially get from this box Go through. Oh, I do want to get ditto. I want to get the ditto V card So here is all of the cards that you could pull from this pack Gotta collect them all obviously take that top off. You got your EV sleeves just like this energies that they provide Just like that EV V max Card you got some coins here and obviously we got these obviously you get 10 will hacks that come in this ETB and without further ado I think we should just get into it set out the Charizard packs to the side because those will be opened last Or maybe I should just open one right now and save one for later. We'll do that. Let's let's do that Actually, we'll do that instead. Honestly. I love doing this. I love unboxing and a packing these Pokemon cards So let's get right into it. I'm actually gonna keep the code card for myself here. Let's go one two three four Flip it over last time we tapped we had some good luck. So We're double tapped. Let's go. Yo, yellow energy again. I'm always getting yellow energy. Okay, here we go Eldegoss Luxio, that's a that's a great artwork. Grokey Spinnerrack shinks Horsey Horsey look at that. That's a cute horse. He's just a cute little guy. It's the cute little dude Yadma Oh, we got a first hollow our Aracuda Aracuda and Manaphy. All right, so we got one hollow out of that pack put this off to the side here Boom, we got our common cards. Let's sleeve. Mr. Aracuda. All right, Aracuda Aracuda Put this off to the side here a hollows boom right next to Evie I'm gonna keep the code card for myself. We got one two three four, okay Double tapped. Let's turn around fire, baby. Let's go thwacky Kramarant rusted shield Spinnerrack Beuzel Rowlett Trapinch Snom rusted shield in reverse hollow will we get it and we got dreadnought No hollow no reverse. It's all good. Let's sleeve up a rusted tallow Sleeve that up put it next to you Evie perfect And we continue on with our next pack YouTubers in general are now making Pokemon content For the views and Pokemon content, you know just because they want to sell and they want to become scalpers But you know, I don't know I look at myself as a YouTube creator and I'm I'm just like man I love opening this and hopefully you guys ball guy. Let's go you guys see the Johnny Q channel And you guys know that I love to compile everything that I do on my channel coughing We got horsey and for me. It's just about having fun and and being about opening the packs and just getting my hands on packs and just seeing what we can pull and so That's why I like doing this more peco spinner rack Look at that full art.   I think I think there's another one behind here Bro pro bad V full art. Look at that We go yo to major polls in that second pack Let's go. That's that's what I'm talking about. Let's sleeve these guys up Yo, our second pack and we got some major polls going. Let's go. Oh That's exciting dude. That's so good. I'm glad I was a I'm glad I thought to unbox one ETB. I Got two more So whoo two more boxes it hopefully you guys see just how genuine I want to be when I unbox these Pokemon ETBs and packs. Alright guys, here we go. Let's double-tap it Let's see the shield the goss Cramorant coughing. That's a flare Cacnea Choodo. Oh choodo looks so cute. Just chewing. He's chewing on stuff because he's choodo. We got the Eevee. Oh Nick it reverse holo We got a pickle look at that. Oh Pull after pull after pull you guys. Let's freaking go. Oh I'm gonna smash someone in this TCG. Let's go. Oh That's so good Yo, that is literally three packs in a row. We're just get amazing Pools you guys make sure to drop a like make sure to leave a comment. Let's go the next pack. Let's open this beast Yo, the double tapping is working out for us. We're getting in some major polls right now Pulling some major cards double tap for good luck. Let's do it. Okay. We've got Luxio ball guy I love ball guy Tropias cause it flared. Fleur. I'm sorry Cacnea Kufant or Kufant Beuzel Spinner rack Reverse holo choodo. Let's go. He's so cute. Just chewing on everything and We got Celebi That that was an okay pack not not the best but not the worst. We got that reverse holo Choodo. I don't think I have that card yet. Add it to my collection All right guys, let's Let's unpack this sucker See what we get one two three four All right double tap for good luck. Let's try it out. Okay. I feel good about this one rusted sword Luxio man, I feel like it's like the same thing over and over thwacky Cacnea Kufant Beuzel spinner rack Shinks we got a hollow phalanx and do we get something else? Do we get a major V? Oh Okay, we got a hollow easing Who wants wheezing wheezing is just another form of he gets upgraded from coughing so who wants wheezing phalanx that's Or phalanx, right? That's a hollow right there. Love that Glarian wheezing. All right. We'll keep you. Why not? Hey, okay onto the next pack. Here we go Guys, I feel good about this pack right here Obviously, I would love to pull a shiny Charizard just as anybody would so let's get into it We're gonna double tap for good luck. Let's get it. Here we go J-tricks ball guy. I'll do ball guy that guy's awesome.  All right. All right. It that's that's all good. It wasn't the best pull, but hey, it's something Something is better than nothing. Am I right and I write let's go. All right these guys in their sleeves Three more total to unbox or unpack so let's get into it keeping this here we go one two three four Double tap for the good luck. Let's get it. Boom Okay, we got Rotom Floats all looking so good rusted sword Beuzo Rowlett Trapinch Snam Rookie look at reverse hollow Luxray and will we pull it we pull? Oh, oh guys I'm feeling good about this one And it's Skyla. Oh Oh my gosh That's amazing Luxray Here we go guys if you haven't already if you guys like what you guys are seeing please make sure to Like and subscribe to the channel. That would be awesome. You go one two three four All right, let's get it double tap. Here we go. Well, we got her fire. Let's go. Let's go rusted sword Floatsel Datrix day tricks chuddle chewing on things more peco cacnya Horsey Cuffant, okay. I see something in the back. I See something in the back. Oh Here we go. Okay, we got a hollow dart Manitun Will we pull? Oh? We got a full V in BV. Let's go. I'll take that Yo, just pull after a pole after a pole This is just good luck. I'm starting to think I should potentially Unbox my other EV ETBs. I'm just saying there's there's good potential I see some really good potential and all these other packs So put this off to the side and Charizard pack. So let's get to it. Let's get to it Okay Keeping this code card for myself one two three three four All right guys, we're double tapping for good luck Okay, okay, okay. Oh, this is this this one has got some weight to it There's potentially some really good cards in here. Here we go. Let's get it Cramorant we got the trainer with the rusted sword another gym trainer. We got the shanks coughing Rookie cute as ever horsey cute as ever more peco cute as ever I feel like that's just been like the theme. It's been grokey horsey and more peco. Okay, here we go We got a reverse hollow Celebi. Okay, I'll take it and last but not least We got the bosses orders boo Honestly, that was so good better than I expected It's literally making me want to open up the other two ETB's that I have and just see what I can pull No Charizard this time, but that's fine. We'll get them sometime soon As always guys, thank you so much for watching. Please make sure to just totally destroy Just destroy that like button and make sure to subscribe and please let me know what pack you want to see next on this channel Which one should I unbox unpack? Let me know in the comments below as always guys. Thank you so much for watching I'll catch you in the next one. Peace


Beginning of the last year, 2019, I've created the SpaceX GraphQL API, and you can find me on atswcarlosrga, like everywhere in Twitter, a LinkedIn, GitHub, Medium, they've called everywhere.  So we have seen already the benefits of GraphQL, I'm gonna be talking also a bit about it, and then we are gonna have a quick introduction about why GraphQL makes a lot of sense with TypeScript, and then we are gonna just switch to the IDE and have a GraphQL, a production-ready GraphQL server with Apollo and JavaScript. We are gonna both be TypeScript and see the benefits and how we can do that, and then we are gonna do the same with the client. So we are gonna have a read-up in JavaScript, and then we are gonna see how we can fetch data and represent data, and we are gonna both be to TypeScript and see the benefits. So to start with, I like to do some jokes. So if you like like dev jokes, that you've got github.com, slash Shruti Kapoor dev joke, I'm gonna put the slide in the meetup group, so after that you can feel free to check it out, but Shruti is a software engineer in PayPal, based in SF. I think she's originally from India, and she created this like, I don't know, thousand of the jobs, so they're pretty cool. So the first one is like, how do you come for a JavaScript bug? Anyone know of it? Any guess? What? You can sell it. What is the program's favorite HANA play? Is the meeting room? Probably not. What do you think, guys? Can solve? No. This is difficult, but it's like, full bar. And the last one, we can just go through to the total. So what is the developer's say to the repository? And I'm pretty sure that you have said this to a lot of you, like friends. Are you committed? I'm committed, just to submit it, just to submit it. But now, in this case, it's fork you. Okay, cool. So guys, first, like, briefly, like summary of the benefits of GraphQL, we have overfetching, is fetch, overfetching, the problem is like you are, usually you fetch more data that you really needed. So in GraphQL, you can just specify which field you want it.  In the wearable, probably you want to fetch two fields, in the mobile, like five, in the tablet, like 10, and in the desktop, like all of them. So with REST, you are fetching all the payload that, you know, as we are front-end and back-end developer, we know this problem. So that's one benefit of GraphQL. Then we have overfetching, underfetching, which is that you are gonna be able to fetch Nester resources, and then you are gonna process all the data in the server side, and then you are gonna, just in one run-through HTTP code, you are gonna get the data back. So let's say that we have, in the SpaceX, we are gonna have histories, and the history, they are gonna have launches, and those launches, they are gonna have rockets, and those rockets, they are gonna have ships.  And then for every single then, you are gonna do another HTTP run-through code to get the launch. And then for every single one, you are gonna get an HTTP code to do a rocket, and then the ship. So that's a lot of HTTP codes, and the problem is, we have mobile phones. Probably you are driving, or you are in an area where the connection is not that good, so just one run-through protocol is lost. You gotta wait, or you gotta wait for that, and that takes a lot of effort, right?  Then we've got a strong type system. For me, it's like the best feature of GraphQL. We are passing, okay, how many of you have you wore just at least one day in the backend site? Almost all of you guys, probably, right? Do you use types in your backend sites? Of course, we use types. Now, in the front-end site, do we use type in the front-end site? Of course not, and I think it's super important, and we are putting a lot of logic, business logic, like client logic, even like interconnection to all the devices in our front-end. We are not typing, and I think that's a really good problem. So the good thing from GraphQL is if you wanna communicate from your server side to your client side, you are gonna have this type and introspectable contract, because you can have a type, but if you are not gonna be able to introspect it, you cannot do anything with those types. So nice that you are gonna be able to have a strongly typed schema in your GraphQL APIs, and also you are gonna be able to introspect it, and we're gonna see the infinite possibilities that we've got with that stuff. And then there are a lot of benefits, but we don't have time today to say it. So GraphQL and TypeScript, if you probably know TypeScript, it's a TypeScript or JavaScript, but you can use like a reason, if you can use flow, you can use like if you are using other languages, it's basically type in the front-end. And also in the back-end, of course. Then TypeScript and GraphQL, both of them are in TypeScript. They're already using large companies.   It's a lot of stuff, but that's good for us. So basically we want to introspect our API with GraphQL, but also we want to introspect our codebase with let's say TypeScript flow, any single static type language. So we do know that GraphQL have a TypeScript system and that TypeScript system is introspectable. So we are gonna be able to see all the fields that our API are composed of. And so we are gonna have our application as a single sort of truth where we are gonna have our GraphQL schema. And from there, we probably want to extend all our type definition to both to our client and our front-end. And also even if you want it, you can start from your database when you are gonna declare all your rows and tables. And from there, because probably that's the data that you are gonna suppose, you can do some business project, you can change of course, but like now in the 90% of the application, you really wanna replicate it, you wanna extend the types from either your database or your server to your client. And we are gonna do that with this incredible open source tooling called GraphQL Code Jam. So basically we are gonna auto-generate types basically from our GraphQL implementation. And if you think about it, like we can auto-generate type, but you can auto-generate a lot of stuff. So now there are companies that they are auto-generating graph databases based on your GraphQL schema. There are companies that they are auto-generating react components type from your GraphQL schema. There are companies that they are auto-generating a GraphQL API with server-led functions with a lot of stuff from either your database or your GraphQL schema. And this idea is super interesting and I think this year in 2020, we are gonna see how they know code or how companies they are gonna help beginners, engineers in order to adapt these new technologies. So okay, let's jump in the live coding. So, explore the code first, then GraphQL server, then GraphQL client. And we are gonna be using the SpaceX GraphQL API. We've got even two of them. So we are gonna be basing in this api.spaces.lan.glas.graphql.  So I've used another open source library in order to with I think 30, 40 lines you can auto-generate a fully type race API from your GraphQL schema. And all the code is open source so you can check it out in github.com.glas.spaces.lan And we are gonna see it right now. So cool.  If we, probably you are gonna have some questions then we can just talk about it. So in my server, okay, let's start from the server side. So we are gonna have all servers and then we're gonna check all the code base. So we are gonna have our index and then some utils. In the util we are gonna have some, util function like to find, limit, do offset, sort of whatever. And yeah, so util is good and then we don't have just types yet. We have just a context but just like 10 lines, that's nothing.  So this is what I was talking with you guys before.  So I'm using the SOFA API open source library which is using open API that you guys are using and swagger to auto-generate the docs. So basically you're gonna use open API from this library. I'm gonna pass the GraphQL schema that contains all my fields, all my query mutation and subscription. And I'm gonna just expose it in my express app instance and then I'm gonna expose the docs with swagger. Like incredible. In 30 lines you can auto-generate like REST API fully type and fully documented. And then we are gonna have our server. So I am doing a lot of, like this is the index. So sorry, this is the GraphQL server. So I'm doing like some stuff but don't worry about this. And basically we are using Apollo server and we have to pass the schema and the content even like you can like forget the content. So basically what we are gonna see today is the schema. How we can declare the schema, how important is the scheme? Cool. So then if we go back to our course source we are gonna have the index. So we check the index. We let's say that we forget the rest and we're gonna have just the GraphQL and we are gonna pass a node instance and then the config there is gonna be an schema and the content with a database. So to put in, to let you know how this works. So we are gonna have Mongo database. It's a public space X Mongo database. We contain a lot of data about the space X and then I've just created the server side, a GraphQL API that is gonna just get data from the Mongo database and just like just display it.  So Mongo database, TypeScript and GraphQL server and TypeQL and React client. Now we are in the server. Cool. So I think like here we get and now we are gonna see the GraphQL schema our single solve of truth. So we are gonna see in the schema if let's say if in my Mongo database I do have like tables called capsule, company, dragon, lamp, launches, mission, blah, that's what I created. So I went to the Mongo database, I've seen all the collection, all the tables and I've created the same domains for my GraphQL types. So let's say that we are gonna see the rockets. So in this way of creating GraphQL APIs there are too many. In JavaScript there are like more than 10 I guess and then you've got .NET, you've got C, you've got C++, Python and Scala and a lot of stuff. So we are gonna be using the SDL and the schema first and what we're gonna have and anything like even if you are beginning in JavaScript goal you are gonna be able to understand it. So we can see here that we are gonna declare our query in three points as we have seen and Mark has mentioned before query is to fetch data, mutation is to mutate data and a subscription is to subscribe to data. So now we are just gonna fetch information. So let's say that we are in the rest world so probably that's what we are gonna have, right? We're gonna have a slash rocket and we are gonna return some rockets and then probably we can have kind of also if we're gonna get just one rocket we're gonna have slash rocket slash ID, right? The good thing about GraphQL is like we by definition and by the specification we have to define every single field, every single type of the field that we are declaring our GraphQL schema. So let's say that we have a rocket. So we have to define, let's say we have some arguments in order to do limits and also in order to do pagination we have to tell them that it's gonna be an integer but also we have to declare what is gonna be the return a data from that endpoint. So one common problem is you have your REST API and your REST API in your swagger dog is telling you that it's gonna return an array of objects and that object is gonna contain and field call ID in lowercase and when you fetch the data from your API it's not ID lowercase, it's ID uppercase because you change it but someone forgot to update the dogs. The cool thing is like all the documentation that are gonna be generated, they are generated from this GraphQL schema so never your documentation and your API it is gonna be not on sync. This is super important because I'm pretty sure that you guys you have like loose a lot of time in order to wait for the backend engineering team to answer your emails and blah, blah, blah. And so yeah, we can see here rockets and let's say that we don't have param so we are gonna return an array of rockets and then if we want to get a rocket we are gonna have ID and we are gonna have the ID type and we are gonna mark it as required because it makes sense that you have to specify an ID in order to get a rocket. And then we are gonna have all the types. So let's say that we are gonna return a type of rocket and we're gonna have like even we can have a, these are like GraphQL primitive types but also we could have like GraphQL complex status for example at rocket first stage. But rocket first stage is basically like an object or a type which is basically a subtype with other GraphQL primitive types or a complex type and then force is gonna be another type. Cool, so I think like we understand this so we have to specify any type that we are declaring for our API and thus this is this smart type and introspectable contract. And then we have to check how we are gonna return data because here we are specifying the desired rocket but where the data is coming from, awesome. So if we are gonna see that we are gonna have the resolver so we are gonna resolve those fields. So if we check here basically we are, if we have the, we have declaring one query type and two query entry point fields that's what we are gonna have in our resolver. So we are gonna have rockets and rocket. Let me just make this bigger. And if we see rockets what we are doing is like we are going toward database and even if you guys I can show you how the database is composed of. So basically we are gonna have here a Mongo public API set that specifies database and we are just using Mongo client from MongoDB in order to connect to it and just we are just returning in the context and we are accessing to it here in the context DB. So I'm gonna go to my rocket collision in my Mongo database I'm gonna do some finding, sorting, skipping, limiting and I'm gonna return to array and this data is the data that is coming from my database and that's what I'm gonna suppose. So if I go to my type depth in my rocket so this is what I'm gonna get and I'm gonna have the types. And the cool thing is like let's say that here returning a one, when I'm requesting the data I'm gonna get a graphical error and graphical is gonna tell me hey you have to specify that there is gonna be an array of an object that is gonna contain blah blah blah blah but you're returning an integer so hey check what is going wrong here. And the rocket is same so we are gonna have in the second param we're gonna have the ID that we have to specify in our type depth and we are gonna do the same database go to database, go to a rocket collision find the body D and we are gonna adjust it to the first enemy and we are gonna return one object.  And yeah. The limit can be defined here once. Sorry? In the limit. This? Limit parameter here. So this is a function that I'm just posting in the context. So it's a JavaScript function that you can see here in the context, context, context, here. So in the context I'm passing all the function in the content, the content is gonna have the limit and the limit is gonna be the limit is gonna be a function that I have pass Cool. I'm gonna try to go super fast because I'm running off time. Awesome. Okay. So I'm gonna, yeah. I'm gonna just like, let me check. Okay. Let's go to the server and just I'm gonna run it. And a, okay. I think I'm gonna have to unit all the types. Okay, cool. So we are gonna get this is the API. So you can see localhost and I'm not cheating you guys. We are localhost and then we are, that's the cool thing we were like Mark was mentioning before. Let's say that I'm joining tomorrow a new company. I didn't know anything about that company. So I'm gonna open brackets. I'm gonna do control space and I'm gonna have all the information. So someone has told me, has opened a Gira ticket that I have to fetch the rocket from the API. So I'm gonna just the rockets. So rockets and there is a rockets and then I'm gonna do the ID and then I'm gonna get the name and I'm gonna get the description and then I'm gonna get the cost per launch. And I can just click play and we are gonna have here all the info related to the rocket. So we're gonna have four rockets and let's say that we want to check, I don't know if you guys do like space it, but I love it. And we have this Falcon Heavy that it costs like a 90 million US dollars, which is a lot. But even like, you know this is super annoying cause per launch not case. I wanna do these parts and probably we are doing in the client and that's, you know, you can have like some error. So you can also specify aliases in your API request so you don't have to do that logic anymore on the client. This is super useful. And yeah, so this is cool. I'm gonna go fast. So now what we are gonna do is like, we are gonna ball our API. So let me just get a rocket ID and then I'm gonna get this ID and then we are gonna see that we are getting just one object. Okay, we can see here all the info. Cool. So I'm gonna evolve my API. So I'm gonna go to VisualCore Studio and I'm gonna use this incredible VisualCore extension to check my pull request and also like pull the data. So we are gonna see that there is a pull request open as someone, I was, I did this so add rocket by name query field. So we are gonna evolve our API. So we are gonna check out the branch. We are gonna see the diff. And in the diff we can see that we have add a new query entry point called rocket by name. So we are gonna be able to search by name. But also we have changed the ID from a lower case to uppercase. And you know, this can happen. We can change our standards and blah, blah. So now we are gonna see what happens. We are gonna go back here. I gonna restore my API and we are not gonna get any error. And we are gonna see the problems that this can lead to. So we can go back to our rocket to our type definition and we can see the new evolution of our API. So the new query entry point field and then the change here. So basically what is gonna happen right now is let me just restart this again. As we have changed this information we are required to change this info because now we are not getting ID lower case anymore. We are getting like ID uppercase. But the problem is like a, let me check. Something is going wrong here. Swagger docs out. Okay, this is live coding and type devs change. Okay, let me save all and let's try to do again. Cool. So the point here, okay, I'm not sure if we're gonna make it. But the point is like we have changed this. And now when we are exposing our API to the world if we can see here, I don't know what I'm getting an error. Let me just quick check. But a, what is there? Here, Falcon, or I think I type something here. Oh yes, oh yes, that's good. Awesome, cool. So now we should be good. Cool, so now when I'm running this, what is gonna happen? We have changed the ID for lower case to uppercase. We are required to check, to change our resolver. So here we are not gonna get ID lower case anymore. We are gonna get ID uppercase. But we can see that the server is running and this is a huge problem. So now if we go back to the same query, we can see here the graphquial by specification because we have changed the type definition is gonna tell us, okay, there is not an argument called ID lower case. So what is it? So I'm gonna do control space and I'm gonna get auto completion about all my fields. This is good and the problem for me is the list correct. My code evasion looks good, no errors in the compilation, in compilation time and we have our API ready for thousands of millions of people to have access with it. So now I'm gonna click play and what is gonna happen with the same input data I'm getting a null and this is a problem. This is a huge problem because if we are exposing an inconsistent state of our API to the rest of the world and you don't know what is going on here, you're getting a new like you can have weeks or days or hours trying to figure out what is going on here and like a lot of requests they are gonna fail in thousands of clients and we have, we want to avoid this. So basically what we are gonna do right now is we are gonna auto generate all the types with type basing our graphical definition and have a run time check error to avoid this inconsistent state for our APIs.  So I'm gonna be using a graphical co-generator in order to auto-generate all the types with type basing in my graphical schema and if we can see here the div, we, here it is we are gonna have a file with more than 5,000 lines of types. So if you wanna put types in your code base the first type that you wanna put is some, is are those that you don't have to write that you want to auto-generate for just in the software.  So we can see here that it fails and it's gonna tell me that ID doesn't exist on the type rocket arcs and what I can do is like do control space and because I have already declared what is gonna be the type and the name of that field and we're gonna have there is an ID uppercase that is gonna be in a string and now I just can't put it but let's go even like farther. So let's say that we want to evolve our API so we have created a new type definition which is gonna be called rocket by name and I wanna implement the business logic for that endpoint. So I'm gonna just let's say that I join a company I don't know anything I have a JIRA ticket open that I have to implement I gotta return the rocket by name a rocket from the space as a database.  So this is gonna be this and then we can also we are not gonna use the object also as I have declared all my type definition in my arguments I can do control space in my arguments and I'm gonna have this I'm getting a name as an input that is gonna be in a string and also we can destruct to the context and the context probably I'm gonna just need the database so here we can see that I'm gonna use the database and I'm gonna just use the name so when I save this if now I go back to my API when I'm running if I'm not getting any compile time errors sorry any runtime error that means that my API is gonna be consistent it is gonna have the data that I'm looking for so now if I'm going back we're having no I'm gonna click again we are gonna get the data and I'm gonna do rocket by name and we are gonna do by name and it's gonna be fucking one and we are gonna get the data and we can just fetch all their stuff here and I'm gonna just stop here we are not gonna see the client today tomorrow I'm gonna be speaking on our meetup so probably if you wanted you can go there because I'm gonna do it but I feel like we can just go quickly over it so this is the server side and I think that you might have some questions that we can discuss later but we have a remote talk in one minute so let me just connect with T-roof first meet up and just tell him that way a bit and then so okay this is the server side and now we are gonna have the client side so in the client side I'm gonna show you guys just how to fetch data from GraphQL so we are gonna have let's say this is the GSX so the data that we are gonna represent and this launch spot is gonna come from somewhere so the launch spot that are gonna come from the query and we are gonna have here the query so the same that we are blah blah blah so I have to put these always and I manage now continue, okay okay we can just wait here or here I think it's here Hey T-roof can you hear me? Hello Can you call us again? Now give me two minutes please that I'm finishing my talk just give me a sec I will ping you up soon Thanks Cool So I'm just gonna go back here sorry for that Cool Okay so in real so what we are gonna have is like the same query that we are doing here so you can just like fetch whatever data you want it and you are gonna copy the query and then you are gonna pass it here and you are gonna let's open it first so the client and then just start and you are gonna get the data from the query and also it's pretty nice because you are because of Apollo and React they have created a type a method where you are gonna have all the states of your request so let's say that you wanna so an error when you are having an error or you are gonna so like in spin it when you are loading you are gonna get those data but now let's say that we are just getting the launches and I'm just iterating about it and we see the front end so we can see here that we've got a mission name a rocket name and details and one image so this is what we've got and we can see here I don't know if you guys like like SpaceX but for me it's like it's super awesome what these guys are doing okay cool the same we can do this but we might have some problem let's say that we wanna able our client so let's say that we have this and I save this and everything looks good and I can put this code to production but what is gonna happen here this is gonna be undefined undefined something to undefined is gonna be an error and then I go to my client and boom and we are having a lot of this every day and that's annoying and I don't wanna do that so I gonna do this like super quickly so basically in order to have or to achieve an incredible developer experience for someone that even don't know what they are doing let's say that it's new in the company I would like to be able to inter-spend my query and my API from my IDE but also auto-generate all the type basically in my GraphQL queries so what I gonna do here is like I gonna go to the client here as well I gonna just call John GQL Jam and I gonna activate visual call extension called Apollo GraphQL that is gonna allow me to inter-spend my API from my IDE which is awesome and now we are gonna see how this works so I gonna go to my Apollo config I gonna pass the GraphQL API I gonna save it and I gonna load my GraphQL schema with all my types and all my fields and let's say that now I want to like display something new in my client side so I don't want to do I don't wanna go to the documentation I don't want to do any console load to ensure that the data that I'm getting for the API is the data that my documentation says basically what I do is I wanna code I wanna like build shit fast as fast as possible so I gonna do control space I gonna have all my fields available in my IDE so I don't have to go even to the incredible documentation of GraphQL I just have to be my IDE and let's say that I wanna get the shapes as the shapes even like we can see there it is gonna contain a real shapes GraphQL is smart enough in order to know oh, you have to specify the fields that you wanna add let me just stage these changes and so now I gonna get the CPYD the name and the port and no position is gonna be a home port I guess and then I gonna even create an LES so I don't have to change from a SNAP case to a comma cache and an image so now when I'm saving this what is gonna happen is I gonna out-generate the types from this new evolution and if everything yeah so here we've got the types so we can see here like 600 lines but I state those changes and then we can see the new evolution of my API so that means that even I didn't have to go to the competition to evolve my API but also I don't have to so let's say that we're gonna get launches.query it's query right yeah I think so so now what is gonna happen is like my data my return data is gonna be a type which means that even I don't know anything about this I know if I do control space here I gonna have my sips and even if I wanna iterate those sips let's say sips and then I don't know what is sips but I know that I miss a type of script so type is gonna help me out so I gonna do dot and I gonna have all the methods that they're available in an array so I gonna do just a filter with Boolean to remove null values and then I gonna just do map and we are gonna do the same here so let's say that we have to we are gonna return something like this and I gonna just finish this tool and go all through so I can also introspect all my types my complex type for that object and we are just like getting one array we will have like infinite fields and we can see how let's say that we are gonna just like put the image because we don't have time so I gonna do image and this data is gonna be I put it twice but that's fine image and I know what is going on here and it's gonna be an image and we are gonna do with 100 so when I say this if I don't have any error what is gonna happen if I go back to my my client we can see here all the information are very available and if we go back and we do the same with the rugged so we have rugged now what is gonna happen is that we are gonna have a runtime error in say in UA rugged doesn't assist so what is going on there is probably a rugged and then we can just go back to the client and that's gonna work and that's gonna be fine so that's everything for me thanks so much the slides are there so like I feel free to get a cue to that but I'm gonna put it in the meetup account so now


Hello everyone and welcome to the 10 a.m. to 10 30 a.m. session of the 2023 Open Simulator Community Conference. In this session we are pleased to introduce the presentation Learning Code with Eureka LSL Blocks for Open Simulator and our speaker is Ori Shapira also known as Turzane. Ori is a high-tech entrepreneur with over 30 years of experience in educational technologies and 14 years of research and development of virtual worlds. Please check out the website found at conference.opensimulator.org for speaker bios, details of the sessions, and the full schedule of events. The session is being live-streamed and recorded so if you have questions or comments during the session you may send your tweets to at open sim cc with the hashtag of Pound OSCC 23. Welcome everyone and let's begin the session. Hello everyone and again I'm Ori Shapira and I'm the CEO and founder of Eureka World. Eureka World is focusing on making education system relevant to students and one of the, just before that, those who was not with us in the last session, okay we are actually doing education in the Open Simulator in a large scale. We already have more than 35 students over 150 that actually work weekly or daily with our system and we already trained above 330 teachers to work with Eureka World as a teaching system. This is less important. One of the main things that was missing for us was actually a quick tool to programming and teach children how to program in Open Simulator. This is one of the most issues I believe to make Open Simulator actually a useful tool for educators to work with and the tool that we are familiar with was not sufficient. Others kept scriptastic other tools and because we really want them to learn how to program. So what we start to develop few months ago and it's still under construction. It's a modern block environment to create SLS. Ori, I think you're moving a little bit around. You might be making it hard for the audio to come through. If you can kind of try to face towards the mic the whole time it might make a better presentation for the audio. Okay, thank you for the remark. So this block environment is also for LSL and of course OSSL environment and allow the children actually building a very quick programming and to learn the basics of programming and using a block is the best way I believe to learn how to program and one of the important things in this environment is that you can see on the left on the right you can see the block diagram of the code but on the left you can see also the actual code that is built during the process and that way we can actually teach the children or the students how to build the textual code. At this point we are neglecting the state part of the language. I know a lot of us really like the state part but since it's not a regular way of programming we are skipping it at that point maybe we'll do it in the future. You can see here the way it works it works exactly like the modern block environment works like a scratch up inventor and other environments and you can see here a quick code that I made that just teaching the students how to work with the if-else environment on one hand and creating a lighting in the lamp inside the world. You can see here going back you see here the block code that I created for this environment it's a variable and click event and you can see on the left side the LSL code that was generated and then you can see it inward and this is the object I copy-paste the code into the content and I will just a second it works okay and you can see the light works and here you can actually go to the URL and see the environment hopefully it works. This is basically the idea that I want to talk to everybody because from my point of view if we want to make OpenSimulator a real tool in current education systems the coding is very important part of it and the good straightforward programming tool that allows us to combine the blocks method in the programming but in a common way straightforward way and simple way is essential and it took me less than 10 minutes to present it and I'm really really open to questions and ideas about it. I'm playing around with it a little bit on the website I noticed that you can like stack them they kind of so you can change your order out and everything too yeah and it's really now in the production level will be adding a new command every day I believe that until the end of February next week here we have the full OSL language combined into the system. And the people in the audience if you haven't tried already click on the link that was put in local chat it's blocks.eurekaworld.co.il and for those on YouTube you know play play play around with it it's kind of neat to see how how it all works first hand. Yes you are more than welcome and it's open source you can actually take your students or yourself into this environment and generate your own scripts this is the idea it's not for subscription or anything. About the SketchUp it's not related to that but it's coming from the same idea of blocks. Programming I believe it's sitting on the same system because the main system below that it's the blocky. That's very cool. I've used some other things for coding like Code Academy and things like that and it's always nice when they have things that help you learn the structure and be able to understand not just how to write one single bit of code but how to understand how it's pieced together so that's really cool. I I saw a question here about the IDF training that I made it's a more for search and rescue. It's an emergency respondent training and we actually build a city which includes deserters and allow teams to work as avatars to solve and train in this environment. Let us know if any of you in our audience has questions for you. We have a few minutes left before we wrap up so if you have anything you'd like to learn about with it please ask away. Is there a place that we can see some of this on one of the expo regions as well? Yes I have in expo season 5 I have our own booth for both for the blocks and for the cell education and in the speaker environment I'm booth number 15 and in the speaker arena. Very cool. Let's see is there anything on the YouTube channel AI scotch says the block programming is huge thanks how far are you going with it how many functions events etc are you going for? Now that we have the infrastructure in place as I mentioned I really hope that until the end of February in three months from now we will have like 80% of the LSL and OSSL language implemented. We really want it to be a strong tool for programming the open simulator and France Charming is also asking does it support all LSL OSL functions or only a subset of them and no it will support all the OSSL or most of the OSL functions I will not guarantee for everything but as far as we know it should contain all of them. Okay and AI scotch is also mentioning on the YouTube channel that 80% itself is huge so sounds like you're doing some great stuff there. Thank you as I mentioned at the moment we are not implementing the state methodology this is something that you're not feeling it's needed for children to learn how to program it. Okay because they probably just try to do everything in state instead of doing it. So we prefer them to do it logically correctly then and do it by state. That's always best to learn things the right way in front. Yes exactly different idea. Okay so do you have anything else you wanted to add or do you have any more questions? It's that open for you guys and as longer the more people will use it more people will ask for whatever they need in this environment we will continue to improve it and I think it can be a really breakthrough for using this environment in the educational for any developer but I'm looking on the education part. Okay so if any question I will be happy and if not. Okay I am not seeing any more questions just that state is optional always is what AI's got just saying so I think that's about it are there any other questions from the audience just ask one more time and are there any restrictions on this when it comes to using it with website type things can it interact with things online especially when you're doing things for education and law things. There is no limitation I don't see why you have any limitation for that. We are still missing the saving part it will come up next week and then we actually can save your block project locally and reuse it but other than that there is no limitation for the online. Okay all right well I think then thank you I'm not seeing any other questions we do appreciate your you're coming out and sharing this with us the great work you're doing. Thank you Ori for your information and an interesting presentation today as a reminder to our audience you will want to check out conference.opensimulator.org to see what is coming up on the conference schedule. You won't want to miss our next session which will begin at 10 30 a.m. in this keynote region and it's entitled game development in OpenSim game and leveling and animated storytelling with everything as an NPC. Also we encourage you to visit our OSCC 23 poster expo which is in the OSCC expo 3 region to find accompanying information on presentations and to explore the hyper grid resources which are in the OSCC expo 2 region along with the sponsor and crowd funder booths located throughout all of the OSCC expo regions. Again thank you again to our speaker Ori and to our audience. Thank you.


Anyone remember the coachman's horrific grin in Pinocchio, followed by the painful looking donkey transformation? What about the infamous segment from Fantasia with the enormous demon on Bald Mountain?  If you were frightened by any of the above scenes, or any other similar scene in a family film, be thankful you never saw the gateway to hell from Illumination Entertainment. Never heard of it. Nobody has. Well, except me of course. The film was supposed to be kept cush-hush for multiple reasons. The film was similar to the Blair Witch Project, only with a few tribe-well similarities thrown here and there, only instead of Slenderman and his proxies, it has demons in it. How they got the film lost, is a mystery. The only way to find it is through a set of red binary codes on a black background. The code in one of them is, as follows. 0 0 0 0 0 0 1 0 1 0 0 1 0 I know this is the binary number of the beast, but it's the only way to find the film, and download it onto your internet. I did the same thing and my god, is it horrible? I can't post what I just saw on here, but all I could say is that what I saw is truly grotesque, insane, unnerving, and bestial. But all I could remember seeing is the movie's backstory. It was about a group of teenage brothers making a homemade horror film about ghouls and madmen. But accidentally ran deep into the woods to find an oak tree fallen over, revealing a large hole in the ground.  Now the other brothers, one of them holding the video camera, has to go down and find him. The first few minutes of the film was animated in the typical illumination style similar to the Secret Life of Pets and Despicable Me. After the brothers went down to hell, and yes, they did refer to it as just that, it suddenly switched to a more twisted and surreal appearance, similar to that seen from Disney's Snow White and The Seven Dwarves, where Snow White ran frantically through the Haunted Forest. I still remember how hell was depicted in the film perfectly. It was similar to the horror game Agony. The rocks looked like skulls, and the trees looked like hands. The latter constantly reached over and tried to grab the brothers, as they ran through all of this with a terrified expression. The demons they encountered were the most terrifying things I've ever seen. I even took a snapshot of one of them, and this is what I saw. I don't remember most of the other obstacles they encountered, save for the Flash Guzzler. The Flash Guzzler is a 10-foot tall being that almost looks like the troll from Harry Potter and the Sorcerer's Stone, except Gray.  True to his name, he had a cage full of tortured people, and he would open the cage, pull out a frightened person, pop him or her into his mouth, and chew them up with the sound of crunching bones. I even remember him wiping away blood in one shot. There was also the devil himself. He was the worst of them all. He resembled the depiction from the paintings of Dante and Virgil, but he wasn't trapped in ice. He was sitting on his throne, watching people burn, scream, and being whipped with a sickening pleasure on his face or faces. I remember the devil and its minions tossed a severed head around in one scene, as the demons made garbling growling sounds. The devil even petted his pet Cerberus like a man with his dog. This is what I recorded from the above scenes I described. After it got to the scene where the brothers finally makes it to where the devil is keeping their brother, my sister came in and saw what was going on in the movie. Then she noticed me looking petrified as I continued to stare at the screen. I think she then realized this film was too much for me, as I finally shut the movie off from my laptop. I sat there, sweating from fright. I never saw or heard anything like this. But I still remember that film explicitly well, even months later, as I write this story to you now. I was indeed frightened, but I was also drawn into it, like I'm off to a flame. If you have downloaded the code and downloaded the film, please provide proof of some kind. Like a YouTube video of the film, just so that I can show the world that I'm not crazy. If you want to watch the film yourself, be my guest. Good luck watching it. You're gonna need it.