Hello, and welcome to Davos and this special debate from the World Economic Forum on France 24. I'm Stephen Carroll. We're here to talk about an issue that goes to the heart of the rise in populist movements around the world, that there's one rule for the rich, and another for everyone else. The Panama Papers revealed how some of the world's wealthiest people and companies were using tax havens to hide income from their home country authorities. The revelations have raised difficult questions about transparency in a globalized economy and how best individual countries can ensure they're getting their fair share from corporations that make massive profits on their territory. This is a problem that concerns governments, companies, institutions, and citizens. And to talk about it, I'm joined by a panel of distinguished guests. On my left, Isabel Samala de Alvarado, the vice president of Panama. Thank you very much for being with us. Valdez Dombrovsky, vice president of the European Commission with responsibility for financial services in the euro. Bia Nima, executive director of Oxfam International. And Helgoria, secretary general of the Organization for Economic Cooperation and Development, the OECD. And Mateusz Moriński, deputy prime minister and finance minister of Poland. Thank you from all of us for being here with us. I'd like to start with a figure, if I may, $240 billion. That's what the OECD estimates. Countries are losing in tax revenues every year from profit shifting by multinationals. And Helgoria, we have 100 countries signed up now to the exchange of information, 100 countries and jurisdictions, I should say, where they have assets, the profits of their reporting, how many employees they have. Are these rules making a difference? Absolutely. And that includes Panama, by the way, which is going to, has already joined us, has already signed, now they're in ratification of their instrument. So a message to the Panamanian Congress, please, you know, pass the law. Yes, it'll make a difference. And let me tell you why. Because we have 70 billion have already been received. It's not about the potential. 70 billion have already in the coffers of the countries participating in the system, just with the automatic exchange of information by individuals. So know where to hide. 130 jurisdictions, you know, more than 100 countries committed to the process. Then multinationals, where the potential of loss is up to 240. So we have to be making inroads into the 240 billion. Then getting the developing countries to also enjoy the benefits of these packages and these new proceedings, these new findings, these new discoveries. And the technology involved, the method involved, and last but not least, what we call tax certainty. That means the messaging that you can't be changing the tax system all the time. Complying with the tax system does not mean you change it. Complying with the tax system means you enforce it. And as I said, we already have 70 billion worth so far. Why? Because people now understand it's inevitable. That next September, countries can start exchanging automatic exchange of information. And therefore, the authorities are going to get all the information. Did you report to them? Well, yes, no problem. Did you not report to them? Then you're going to get an invitation to have a cup of tea. So it's a dramatic transformation of the tax regime, of the international tax regime. And let me quote President Putin. Why? Because we were in St. Petersburg when we launched this in the G20. And he was chairing. He said, it is the most dramatic transformation, the most revolutionary transformation in the international tax regime in 100 years. Not a bad start. OK, Vice President Panama has obviously come in for an awful lot of attention since the Panama Papers were released. What's been your experience since then? And what have you been taking action on? Let me begin by saying and thank you for the opportunity of sharing our ideas. Panama understands, and as a government authority, we understand clearly the importance of taxes to finance development, to do what we have to do. And we understand not only the importance of collecting taxes for our country's purpose, but the importance of aiding other countries to ensure that there is no evasion and to cooperate in that light. And I must say, ever since we took office two and a half years ago, we have established a very clear roadmap. And we have taken every measure that we needed to be taken. And this was way before the Panama Papers, I must say, when we assumed office two and a half years ago. Panama was far behind in many areas, including that we were, for example, in the FATF's gray list. And we established a roadmap very aggressive. And we passed all the legislation. We needed to pass within nine months with the Congress where we are a minority. And we were able to be removed from FATF's gray list. And before the Panama Papers, President Varela announced at the General Assembly of the United Nations Panama's commitment to automatic exchange of information. And then this leak came which pointed out a global problem, a global problem to which Panama needs to participate in the solution and the rest of the world needs to participate in the solution. And it just made us run faster that we were already running. And I am very happy to say that today there is not one issue pending in Panama's steps in order to comply with the highest standards internationally. So we have taken all the measures that needed to be taken. We are concentrated as well in the strengthening of our institutions. And we are also concerned, and this is an issue that we wish would be discussed further, how to ensure that this global effort takes into consideration the reality of developing countries and the necessity of the financing for development and to ensure that we do not unintendedly have consequences on the financing for development, which is very important. This is a good point to go to you, Winnie. I'm going to read you a quote of something that you said last September. You said that abuse by corporates and individuals leads to poor countries losing $170 billion in desperately needed revenues each year. This is a problem that often focuses on the developed countries, but the impact really is much more profound on developing countries. Absolutely. And in fact, we need to look at this problem of tax dodging in connection with the issue of rising inequality. They are connected. And there's a human rights issue there. We have to see it as such. Because take a country like Kenya. Kenya is losing $1.1 billion every year through tax incentives and tax exemptions, just that loophole. Tax incentives, $1.1 billion. That's equal to almost double its health budget. And that's a country where 1 in 40 children die at childbirth. So it's really a human rights issue. And yes, there's been progress. But I want to say I can't compete with Angeline's strength of voice. But in opinions, I feel that we differ here. There's progress. There's progress. The BEPS process, the OECD-led process, is a step in the right direction. But we have a long way to go. First of all, the developing countries who are not at the table, their contributions is only second-class contribution. While notorious tax havens like Switzerland had a seat at the table. So the agenda that was covered doesn't touch the issues that are hurting the developing countries. For example, this harmful tax, corporate tax competition that's making the developing countries lose so much as they risk to the bottom to attract investment. That's not touched. And many other issues. So and if you think about harmful tax competition, it's like if you can't dodge taxes, then you pay the governments to lower the tax rate. So it's just another way of dodging. And unless we can have another process, a second-generation process of looking at all the issues, including the sectors where developing countries lose most, like mining, like agriculture, and so on, we are not getting to the root of the problem. So tax havens are a big one that we need to close on. And I think the reforms that are happening are moving us there. But again, we need to move farther. We need public country by country reporting, for example. If this transparency is going to be useful for controlling tax avoidance. So yes, we are moving. But no, not fast enough and not broadly enough. OK. I'll come back to how I worry about some of those concerns in a moment. Commissioner, I'd like to turn to you next. The EU has a lot of influence in this area. It's a massive market. Multinatials will obey rules that you lay down. A tax avoidance director was agreed last June. Does it go far enough, do you think? Well, indeed, EU takes this issue of fighting tax avoidance very seriously. And I would say EU has been in a forefront of implementing initiatives set out by the OECD BEPS initiative, fight against base-roasing and profit shifting. And in a number of areas, we're actually moving further than OECD BEPS initiative has prescribed in terms of information exchange among tax administrations within the EU. We took more comprehensive approach. We are strongly addressing bank secrecy, what EU residents' savings are in different countries. Most recent agreements are with Switzerland, with Andorra, with Monaco. We're setting up now working towards EU list of non-cooperative tax jurisdictions. Currently, we have 28 national lists. And working also in a number of other directions. And as regards the issue mentioned of country by country reporting, indeed, European Commission has proposed for EU basically being the first EU addition, which would help public country by country reporting by multinationals on how much corporate taxes paid in which EU country, how much is paid aggregately in the rest of the world. And then coming back country by country on so-called non-cooperative tax jurisdictions. Because indeed, we think that also public transparency can change behavior of certain companies and can help to change certain practices also through the public pressure. Minister Moriecki, Poland is one of the countries that has to sign up and obey, of course, all these rules that are being come up with by the European Commission. Are you finding that this is a doable situation for you? Are you able to put these rules into practice? And do you think they're going to be effective? Not only I think that these rules are doable, but we think that many of those rules are being implemented or being proposed and then implemented too little, too late. We are actually the calculation of the European Commission of the tax evasion on us on Poland is up to 40 something billions lot is, which is more than $10 billion. Some 8% or 7% of all the tax revenues from Poland. So it's a huge amount of money. And I would agree with that we need that we have to tackle this much more decisively. So when there is a question here posed in the preamble of this panel, how should governments and corporations and OECD, how should we tackle all this? I would say much more decisively and much more quickly because middle income countries and frontier markets as we call them today and emerging markets as we call them today and yesterday, they are losing huge money. I think by the way that this figure which was mentioned here is underestimated because when I calculate all the countries losses, the figure adds up to a much higher figure. Like one example, what are the three countries, what are the three countries which invested mostly in terms of FDI into the European Union? Number one, the United States of America, which is quite natural, very big economy and so on. Number two, Switzerland, which is probably less natural, even the size of economy and so on. Number three, Bermuda. Now, which are the three countries where there was the highest amount of investment from the EU to those countries? Exactly the same. The United States, Switzerland and Bermuda. So if this is not huge global tax evasion, I don't know what is. So I'm very happy that here at Davos for the first time we so strongly started to talk about inclusive growth and so on, but I would emphasize that the inequality factor and imbalances and tax evasion is the triangle or the Bermuda triangle, maybe. And we have to find a solution for this. One aspect which was not mentioned in this discussion is the level playing field. We observe this a lot in Poland. We have quite a vibrant, small and meat-sized community companies generating some 65% of GDP and 70% of employment. And for them, in each particular sectors, multinationals which avoid taxes and they do all sorts of different Dutch, Irish sandwiches and other legal schemes, or illegal, legal, illegal, we don't know. They really are depriving all the 97% of all the companies, the small and meat-sized companies, of level playing field. So I'm not happy with the pace which the European Union proposed in terms of tax erosion and profit shifting and so on because I think this is simply a tax on poorer countries and middle-income countries and the richer countries are becoming more and more rich because the 97% of all the multinationals have location over there. So in your question, there was very interesting observation that given, which you asked, Mr. Dombrovsky, given the power of the EU, couldn't you build this framework a little bit more quickly? Exactly. If the EU and the United States were speaking with the same voice, at least 60% of the global GDP or about this, it would be a very strong voice towards a much more fair share type of regime. Commissioner, can this be done faster? Well, certainly we can. But let me explain a little bit the institutional structure on taxation in the EU. It's European Commission, which comes up with the proposals for directives, for regulations. And then it requires in a field of taxation unanimous support of EU member states. So in a sense, I can head back to the question to Mr. Dombrovsky, can member states agree quickly to the European Commission proposals? But I would say the momentum is there. Panama leaks was certainly one important element, but this momentum was actually there already before because as a response to the crisis, many EU member states had to do fiscal adjustment. And this inevitably raises this question, well, we now need to do fiscal adjustment, take very painful measures. And how comes we see that profit is shifted somewhere outside? And we really want to follow this principle that corporate tax is paid where real economic activity takes place. OK, we're going to take a short break on that note. Please do join us after the news headlines for more from the World Economic Forum in Davos. OK, so now we'll start again.  Sorry. Yeah. Have a note from above. OK. It feels like you got one and the rest of us didn't. A little shiny, yeah. That was the one. It's an identity crisis. OK, we're ready to go again. Mexico. Welcome back to the World Economic Forum in Davos and this special debate on France 24. We're discussing how best to tax multinationals and get countries their fair share from these companies that, of course, create valuable investment and jobs around the world. I'd like to turn to another quote now from Joseph Sticklets and Mark Piaf. They have a report on this called Overcoming the Shadding Economy. They say the United States and Europe have an obligation to force financial centers to comply with global transparency standards. Leadership that many parts of the world are expecting from these countries, Vice President. Do you think that it is a responsibility for them to lead in this area? Responsibility from where? From the United States and from the European Union. I think it's a global responsibility where each of us have our own share and our own possibilities. And I wish to take on what has already been said on including into the discussion of the standards the different views. I think that's something that's lacking. That's something that we need to work on. It makes it harder, definitely, when you are not a part of the definition of the standards. And therefore, one vision of the problem is being exposed in the discussion. And another vision that is as valuable, as important, is not placed in the table. And also, in that light, part of our vision of the problem and the issue of multinationals has been mentioned. What happens when multinationals go to third world countries, to developing countries that are thriving to have them establish their operations? And they're going to have operations. And they're going to hire people and everything else. But they insist on negotiating tax breaks. Tax breaks that local companies do not have. That sort of analysis needs to be brought into the discussion as well. And I know it's part of the discussion with BEPS, which Panama has also joined. And I think that will allow us to be part of the discussion, which is also what we're looking for. Mr. Greer, you've been involved in policy development in this area. The point raised both by Winnie and the vice president of developing countries to the table to discuss developing these proposals. Is there a way to do that? Let me tell you, just in 2008, only eight, nine years ago, there were 30 agreements to exchange tax information. Today, there are 3,500. So first of all, second, we are going to modify them all, including the agreements that were signed to go into the multilateral mode to do the multinational companies and their country by country reporting. The principle is very simple. What do you get your profits? Pay your taxes. There may be some deductions, but it's a fairly straightforward principle. And we just had an example of how difficult this can get. The Apple story in the European Union, well, it transpired that it was 0.05% taxes. Yeah, 0.05% or whatever. So you're basically talking about 1.20% or whatever it is. Nothing. That's it. No payment of taxes. All the countries in the world put it together, took it to Ireland. They got a ruling there that said, no, this is not local money. And then they were fined $13 billion because they said this is state aid. Not on the tax side, by the way. But the question is now going forward, whatever the result of that litigation will be. It could not happen again. Why? Because we have dismantled. And Prime Minister Kenny, the Taoiseach, was leading the charge to dismantle the facilities in Ireland that gave rise to this situation, the same thing in the Netherlands, and the same thing in the UK. And you mentioned the United States. Well, you saw that President Obama would be in second order. Let's see what happens on the new administration because they have to legislate that. But the question is, yes, there's been massive progress. Now, in terms of incorporating the developing countries, this is the most productive and the most interesting part of the work because we created something tax inspectors without borders, together with Helen Clark, the UNDP. Because they're on the ground, they're working everywhere else. We get the expertise. We help them, experts around the world, move to the places where the tax inspectors of the country are talking to the companies. This is not a school. This is not an institute. And lo and behold, we spend a few thousand in airfares, whatever, and you get a few million back. Because all they got to do is the experts tell the multinational, say, for heaven's sake, let's not play games. You know what this is about. This is a loophole. You're abusing the system. And we've gotten, in the case of Kenya, in the case of Colombia, the case of Botswana, the case of Zimbabwe, but now, more interestingly, we signed agreements in Nairobi very recently between Kenya now providing the expertise to Zimbabwe. So it's no longer just the OECD or the UNDP, whatever, providing, but also the developing countries working among themselves. So we need to write in the sense that this is just starting. And we're all very aware of the need to generalize it. But the promise is enormous, and the reality on the ground is it yields 1,000 to one. So it looks like it's enormously productive, and the potential is very great, and that it could really help these developing countries to pick up a billion or two in terms of the revenue. Winnie-Vinny, I think you have a point to make on that. Yes, I want to agree. But also to insist that we do not make issues here. There is capacity for tax administration, tax collection. And yes, many developing countries lack that capacity. And yes, OECD and others have put some good resources towards increasing that capacity to go and collect taxes. But that's not the same as tax policy, policy where which is set rules that are set that allow loopholes for tax dodging. That must be addressed, and that's not addressed through capacity building of tax collectors. So the progress that is being made, what you mentioned, the Europeans and the Americans on transparency, is good. But we say it doesn't go far enough. It doesn't go far enough, for example, to require public country by country reporting. Because if people cannot know what firms are doing, then you're not really going to get that secrecy out that will lead to taxing them just fairly. Then again, it doesn't address the other problems that I mentioned earlier of low corporate tax rates. So that's in the area of policy. And that's why we pushed hard, and OECD agreed that a second round of corporate tax reforms starts. But within on a platform that's more inclusive, where the IMF, the World Bank, the OECD, and the UN come together, bring all countries to the table, and negotiate now another generation of reforms that will lead to closing these loopholes. Can I just chip in, because it's... But that process hasn't moved. What Winnie said is very important. We already have the World Bank and the UN and the IMF on board, and Oxfam is pointing the way. But the question is evolving. Put this in a broader agenda. We are still suffering eight years after the crisis. Low growth, high unemployment, growing inequalities, and a destruction of trust. Among the many reasons why people don't blame presidents and vice presidents and prime ministers and parliaments and political parties and multinationals and banking systems, et cetera, is the fact that people are disenchanted. They feel disenfranchised. They don't vote. Therefore, we lose Brexit. They don't vote. Therefore, we lose the Italian referendum. They don't vote. Therefore, we lose the Colombian referendum. And they only go half of them go and vote in the United States. And there's a surprise, a result, et cetera. Is the question that if people perceive that the taxes are not being collected from everybody? The man on the street, middle class, small and medium enterprise feel they are the only ones that are being taxed and that the rich guys go to the tax havens and the multinational enterprises don't pay at all. This is not an economic. This is not even an ethical. This is not even a moral question. This is a political issue of the greatest consequence. Today, the level of tolerance has dramatically lowered because of the crisis. And last but not least, countries need the money. That's also an incentive. Minister Moriasky, I'd like to come to you because you made a point earlier about level playing fields and ensuring that everyone has a, you know, that's what public country by country reporting would give us in an extent. Is there a danger that the EU could put itself at a competitive disadvantage if it's obliging higher standards on its members than other countries around the world? I think theoretically it could be a danger because some countries like tax havens countries, they could abuse this or they could use this time horizon to capture some new business. But I think this is in all our interest to work out rules or the common denominator, which is then being observed by most of the countries. And if the EU and the US will have the same rules, I'm then more calmer about the rest of the world. But also, we are in the era of savings glad. So I'd like to present this other thought, which Anhel started, I will build on this. And we have investment gap. In the European Union, we say we have 400 billion euro investment gap. In the US, at least 200 billion, the rest of the world. So we have almost a trillion of investment gap. And normally, what companies do in the situation where they use their cash piles and then they invest this usually. But today, over the last couple of years, we see that they don't invest. So that's one element of my logic, which I will close in one minute. The other element is monetary policy versus fiscal policy. Monetary policy does not have too much of maneuver anymore. Seven or eight years of quantitative easing, one, two, infinite. OK, it probably saved us from another great depression. But it's not working as we would have wished for today. So we now start talking again about fiscal policy, monetary policy is not working, which is right because the private economy is not investing. It's hoarding cash and share buybacks and all sorts of other activities, but not so much productive for the real economy, I mean. And then they go to tax haven to actually not have it taxed. So what's the reply for this from the point of view of the crisis, which is now transforming, but we are not yet finished with that. And we are into the 10th year of the crisis in August. And the response to this is fiscal policy, but fiscal policy has to be based on solid tax base. And the solid tax base has to be repaired. This is my story. And this is why this is so important not only for the middle income countries for emerging markets, frontier countries, very poor countries, and so on. It's important for the rest of the world because the rich world has a huge investment gap. And to overcome this investment gap, as many people are saying more and more, including President-elect Trump, fiscal policy has to kick in. We've had a question from one of our viewers on Facebook Live. What can we do about tax havens? Won't there always be a race to the bottom when it comes to tax affairs? This also wraps into, of course, something that we heard from Theresa May earlier this week when she was talking about a threat that if they didn't get the right deal from the European Union that they would look at remodeling their business model, perhaps changing their corporate tax system. Commissioner, would you like to respond to that? Well, certainly there are things which can be done. And of course it helps if it's being done at the global level so that those tax havens really feel the pressure. So there's a possibility to tax each transaction with a tax haven at a certain fixed rate, basically eliminating these artificial advantages which is being created. There are possibilities actually to look closer at companies' practices when they are using tax havens in their works. There are possibilities also in a treaties on avoidance of double taxation to introduce as we are doing or suggesting now in the European Union the principle of effective taxation so that not only something is subject to taxation in another country of tax treaty, but it's actually effectively taxed and there's a difference that it can be subject to taxation and then taxed at zero rate or very small rate. So we are also introducing this principle of effective taxation. So I think there are absolutely the ways to deal with this and also the EU work now on setting up this list of non-cooperative tax jurisdictions will help to add pressure to those jurisdictions. Okay, Vice President, you were on strike on watching this. Yes, I wanted to add at point that because I think it's then again relevant to those countries that abide by the rules and the standards but are not part of the table and I want to raise a question of a governing body or not to follow up on these things. What happens and that's the case of Panama, for example, when a country places Panama on a list without basis and without reason and we can prove it but there is an interpretation to it. Who defines is Panama compliant or is Panama not compliant? These are things where some countries are at a disadvantage particularly if we're not sitting at the table and we have that particular situation right now with a country with which we have an agenda, bilateral agenda. These are questions that we need to ask because we cannot let the effort to prevent tax evasion go against the interest of countries in general just for the sake of it. And there are issues of power here as well that need to be brought to the table. Speaking of power, I mean the United States has a rather large power in this and we're looking at a very uncertain future as to what the United States will do next. Anagoria, do you have hopes for the Trump administration and how they're gonna approach this problem? Well, first of all, what they're doing already is important and that is there was a deliberate signal and an announcement that the United States would dismantle facilities like Delaware and these types of facilities which were considered to be tax havens, in fact. And it was interesting that you had the tax havens inside the countries which were championing the cause of tax transparency. The same thing happened with the UK. There was a very, very intense dialogue with the UK in which they started to dismantle these facilities with a trust, et cetera, et cetera. And then after the question of the Panama papers you had a big discussion about beneficial ownership in general, not with the Panamanians, but in general, the Panamanians is compliant, the question is, then what do you do with the beneficial ownership discussion which is different than just paying taxes because you can have an institution that says, okay, white horse securities owned by black horse securities and you never know who is the real owners and you just go and then there's the gray horse securities that owns the black horse security. And the question is, who is the ultimate owner? That can even help you track money that is money laundered or your criminal sources or whatever the person was. But let me just correct the concerns of the person that sent the message. Everybody is on board today. 130 countries are on board today. Those that are not on board will be and frankly, if you wanna put the money in the other 40 or 50 countries, but bless you, I don't give you any guarantees that you'll get it back. But the question is, we're gonna fall on like a ton of bricks on any country that tries to be too smart. And that means the Europeans are gonna fall on the ton of bricks. The Americans are gonna fall on them like a ton of bricks. And all the big economies in the world, why, because they don't want anybody try to be too smart, take the cheese away because they are practicing what we are all condemning. So that mechanism is already in place and the crunching is happening and it already happened. And by the way, let me just say Switzerland is an exemplary, you know, joined the fray and now they're fighting the good fight. You know, they had a question of perception now that has been after seven referenda or whatever it exists, Switzerland is compliant. The Swiss banks are compliant. So I just wanted to make that clear because you mentioned- That's an important point, because there's nobody here from Switzerland to defend themselves. So thank you for that. When you wanted to comment on that and I'd like to put another point to you as well. Again, coming from our Facebook viewers, will business power always outweigh political power in this? It's very important to speak about the role of business here because we're talking about, definitely it's the challenge for governments to move urgently. I want to agree with the Polish Deputy Prime Minister to address some of these gaping loopholes. And I keep insisting on the one on the race to the bottom on corporate taxation. That needs to be addressed. And it's worrying now. I mean, we've seen the promise from President-elect Trump to cut corporate tax. We heard Theresa May, Prime Minister, threatening to make Britain a little island with low tax rate on the shores of Europe. These are steps in the wrong direction. So we need this year to see progress on this corporate tax competition. But business must see this not merely as an issue of legal compliance. We want to see- And it's about big business because the corner shop where I buy bread probably pays a higher tax rate than Apple. So it's a problem of the big companies. And we want to see them take this more than an issue of legal compliance, see it as a broader obligation to society, paying their fair share so that there's money for health, for education, for creating jobs for young people, giving back, giving the contribution they should make for society to function so that their businesses can thrive. Vice President, would you be willing to put a moral obligation on companies that want to invest in Panama to make sure that they'll follow those goals? Is that something that's doable as a government? Definitely. Definitely. I think it's part of our framework as well, but I agree it's a joint effort of government, multinational organizations, and business, definitely. And in society, it's ever more claiming that and arguing for that. So I think the framework is there and we all need to work in that direction. Deputy Prime Minister, I'd like to come back to you on the issue that's been raised about Theresa May and this race to the bottom, the potential of people cutting tax rates. Does that worry you? I'm actually very happy with what the United Kingdom introduced in April of 2015, I think, was diverted profits tax, called Google tax. And France is now addressing what they call sometimes Facebook tax. Okay, so I'm less concerned with those voices that if the taxation in the Republic of Ireland is 12.2 and in the United Kingdom is on the level of 30, they are going to lower by a couple of percentage points. I'm more concerned about all the schemes, illegal, like the European Commission found out 600 transfer pricing mechanisms, 600. Sweet deals. Sweet deals. So this is really the area which worries me and not so much if this is two percentage points less or more because at the end of the day, this is a very important source of revenue for all of the countries. So I'm not so much concerned about race to the bottom. Okay, Commissioner, this is an issue that of course the European Union doesn't have autonomy over tax affairs. That is something that's the preserve of their member states, but is this something that again, moral leadership, is there a danger that if the EU takes a moral leadership in this scenario that it's going to simply force investment elsewhere? Well, as I was saying, actually EU is taking leadership and this area and a number of areas actually moving ahead of what has been agreed in OECD on BEPS and amongst the first ones actually to implement. We came with our anti-tax avoidance package already in general last year and by now a number of those proposals which we put forward is already agreed and we are coming with further proposals because what we see is that this fair taxation is one of the areas where everyone seems to agree in principle, but when it comes down to detail to practicalities, often questions emerge. And we are also coming with, if we talk about corporate taxation with a renewed proposal on common consolidated corporate tax base. Well, it has its benefits for companies in a sense that instead of dealing with 28 different tax bases in the EU, you would deal with one, but it also eliminates a whole lot of different mismatches and loopholes which can be used where the differences in tax treatment also among EU member states can be exploited to reduce your taxable base. Okay, at this point we're gonna turn to our audience for some questions. If we have somebody that can, anyone to raise their hand if I could ask just to introduce yourself before you come to any questions, the gentleman there. Thank you very much. Johan Elias, I'm Swedish. I come from a very high tax rate environment. I have a question for you, Mr. Gore. I believe the biggest tax haven on the planet is Delaware, not for Panama. He was getting all this passion. I believe also have beneficial ownership declarations which are mandatory. So why not go after the low hanging fruit which is the big western nations that provide schemes for, call it tax. Very good question and very fair.  And by God, he did. This is why I'm saying today it would not be possible regardless of where the money of Apple and others will go. I mean, the Irish are saying, search me, this is not my money. We believe it's mostly American money. But the Americans have a little thing called, you know, strike the, check the box which is impeding this money from going back to the United States. They do have to have a tax reform. The only question is will the tax reform be simply lower the taxes period, make it easy, or, which would be appropriate perhaps, and make it easy to repatriate, or the very complex more, you know, Ryan type of thing, which has very serious problems with border adjustments, et cetera, and which has problems with consistency with the WTO and trade issues, not just tax issues. But then we dismantled the double Dutch. So double Irish, gone, double Dutch, gone, you know?  But then the question is in Delaware. And I mentioned this a moment ago. Mr. Robert Stack, and this is not the artist of the untouchables, this is the deputy secretary of treasurer until today, until tomorrow, maybe, you know. He said, and he announced, that they were dismantling, and it's not just Delaware, because you can do whatever you do in Delaware, you can do in practically all of the states of the United States. Delaware, you know, now, this was not easy. I once consulted President Obama about this in Loch Earn in the G7, and he said, do you remember where Vice President Biden is from? You know, Delaware, so. Question is, but the question, they have decided they're gonna go for it in dismantling. Now, problem is, they did not have the capacity to legislate because they were not, you know, coming to an agreement with the Congress on this and many other issues, so they didn't legislate. It was by executive order. Problem is, this can be reinstated by executive order also. So I think your point is fair. Let's keep an eye, because what you cannot be doing is saying, do this preaching, and then practicing, you know, exactly against what you're preaching. Let me just say, different from Baldy's here. I'll do respect. We do not claim that a homogeneous tax rate is necessarily what we're after. The Irish have 12 and a half. God bless them. The only problem is, do they charge 12 and a half to everybody? And what the Deputy Prime Minister here is saying is, 12 and a half is fine, as long as you don't have a 2% or 0.05% deal, the sweetheart deals is what is wrong. Not that the fact that you have a lower tax rate. Now I can understand why in order to avoid this competition, France and Germany are talking about homogenizing the systems, et cetera. But the point here is, you don't necessarily have to have the same rate as long as you apply to everybody within the borders of your own country. Commissioner, you want to speak? Yeah, I just wanted to do this. I just wanted to come with a factual correction and then on EU is not homogenizing, as you said, corporate tax rates. What we had been proposing now is a common consolidated tax base, but tax rates is still competent. Will remain still with it, yeah. What we are, what we call harmonizing, we are harmonizing to the extent indirect taxes, meaning taxes like value added tax, VAT exercises, but we are not harmonizing personal income tax or corporate tax rates. So just a factual correction. It's important. Deputy Prime Minister Martin. Just a little addendum to the gentleman from Sweden because the tax regime is not everything, the tax rate is not everything. I can give you an example that where are all the corporate bonds issued for Polish companies? All are issued in Sweden because you have a specific zero tax rate for corporate bonds issued in, and then wrapped in different wrappers. And then all the taxation for corporate bonds issued in Poland goes to the treasure of Sweden. So tax rate is one thing, but also different tax schemes for specific type of economic activity. This is another thing. When you ask for another. Yeah. As I listened to this discussion, I really see why we need a fundamental global corporate tax reform. 90 years ago, most business was within national borders. Now it's not so. But the corporate tax system is still intact. There have been some tinkering here and there, but it's still intact. It is really dated. We need something that responds to a globalized economy. But now we don't. So we have all the, and then we also have the added problem that big business and super rich use their money to influence economic policy, particularly tax policy. Pharmaceutical companies in the United States in 2015 spent 250 million dollars lobbying Capitol Hill, mostly on tax. Financial companies here in Europe spent 120 million euros in 2014 and 1,700 hired lobbyists in Brussels. It's all about tax. So unless we have a process through which globally, we negate, because it's highly political, unless we can negotiate some of these reforms, this tax competition I want to respectfully disagree with the prime minister is a serious one, because for some countries, they have almost no choice. They are forced down to put down their rates and they need the resources. And sometimes for reasons that are not verified by research, because sometimes investments are driven by other factors, such as a good living conditions, well-educated workforce, but there's a presumption that lower tax rates will bring investments. And this is driving many developing countries to the bottom and they need the resources. Okay, I'm going to come to all of you for your final thoughts in a moment, but just for the purpose of television, I just need to wrap up the discussion. Have you all applauded and then we can come back for everyone's conclusions. So we're just going to say, first of all, thank you to all of my guests for joining us for this special debate from the World Economic Forum. Thank you to you for watching, stay with us on France 24. Okay, and in a completely non-logical sense, I'm now going to come back and ask you for all of your final thoughts on this discussion. We've had signs that we think progress is being made in some areas, not in others still, it seems like plenty of work to do and more obstacles ahead with what we're looking at coming ahead politically in 2017. Vice President, can I start with you? What do you think we should be looking to do next in this area? Definitely what has been said of bringing all countries to the table of discussion and discussing within that framework transitional periods. Different countries are in different situations and we need to take care of national economies while we do this. We need to take care of the global issues, but we need to take care of the local challenges in each country. Bring to the table, but let's do it in a concrete way. I do not want to think that we are repeating here what happened many, many years ago when we created the Security Council. And we have spent so many years talking about the necessity of reforming the Security Council because it's a small group with a veto power and the rest of the globe is outside. I don't want to think that once again, even though we spent the past 30 years talking about the necessity to reform the Security Council and we haven't been able to, now we have created a parallel governing body that excludes two thirds of the world to define issues of fiscal policy that matter to development more and more. We need to have a framework of discussion where we can all bring our issues to the table. Commissioner. Well, I would say we would need to use this momentum which is currently there. It's there globally. It's there within the EU to fight against base erosion, to fight against profit shifting and to ensure that corporates pay their fair share of taxation, not more, but also not less. And the EU is ready to be at the forefront of this work. Thank you. Winnie, but you are inspired by that? Yes, I am. I think three things. Governments should move faster to negotiate. I want to agree with Vice President of Panama to move faster towards negotiating a new round, starting a new round of global corporate tax reforms. And the opportunity is now. The public hunger is there and it should be a response. The second is for business. For business really to be more values driven, to go beyond tax compliance and respond, align their values with their business. And I hear people like Bill Gates talking about the most important responsibility being paying their fair share of taxes. The B team is another group that I hear wants to take the lead on fair taxation. So it's important for business to stand out, support this agenda and do what's right and not just do what's legal. And lastly, I think the, and not least, the reforms that are led by the OECD through the BEPS process and those agreements should go forward because they are taking us forward too. You've got someone agreeing with you, Ana Gloria. I think the fair share notion that Valdez mentioned is absolutely crucial for political purposes, political with a capital P because of the trust agenda, it is absolutely crucial. So what do we do? We welcome the progress. We tap, you know, we pat ourselves in the back briefly for about 30 seconds and then we move on. We move on to what? Implementation, implementation, implementation. The moment you start getting those results an already 70 billion worth of results, euros, by the way. Although euros are not what they used to be, but still, you know, 70 billion euros. And then what you have is results start coming in and then you start getting the ownership. You start getting, you know, people to say, hey, my God, this is working, this is good, let's go for it. Also, to the new challenges. Beneficial ownership is not yet a discipline that we are handling as much as we do, let's say for individual taxes or for the BEPS initiative. And last but not least, let's keep keen eye on the US tax reform because it's not just about the US. It's about the success of all this architecture that we have built. And also it has to do with investment flows. It has to do with trade flows. So it's going to be a very great consequence. Deputy Prime Minister. Like the legendary Supreme Court Justice Oliver Wendell Holmes, Jr. once said that, I like paying taxes because with them I buy civilization. And I'm very happy with this discussion. I'm very happy that this discussion started because all change starts from, all even huge change starts from the first step. And this is the step in the right direction. All the mental change already started. Three, four years ago here in Davos, there was only talks about lowering taxes for multinationals. Here we see 2017 and we talk about fair share and bringing all to the right, into the right space. So I'm sure we live in the state of interregnum, in the state of, in the interval between the past regime and the future regime. We don't know yet how successful we are going to be. But the discussion like this one is bringing some fresh air and optimism because I think that everybody coming from completely different angles. And I myself worked for 25 years in the private business and with multinationals as well. So I think we all agree that things have to change. And the direction has been sketched here and I'm optimist about the future state of this. We all need a bit of optimism with the ear ahead. Thank you to all of you. This conversation has started. We'll hope that it will continue elsewhere after this. Thank you all very much. Thank you very much. Thank you. Thank you.


Yeah, thank you. Yeah, I'm Evgeny. I'm from Open Knowledge Foundation and I've been working on the frictionless project like for a while and now I'm proud to present you are our new development It's called friction application. Yes, can you? Yes, yes, sorry Friction application and it's a basically IDE for working the stabilizer and other types of data and currently we call it data management for humans. So Sorry It's it tend to be like the recording application but now we are releasing the beta version and It's only one command two commands you need to run to start working this frictions application It's to install you need to Python to have Python and you need to install frictions application and start It's against your data folder like any on your computer so Be like going to release it is as a desktop application soon, but currently it's like this so The interface so it's basically just a typical idea based on really a lot of examples You already know so it's a file manager. It's a Editor additional panels all this stuff. So I just try to be like Familiar for like everyone so you don't need to like learn it and Like one slide ago. We started the application and first you just getting Your files and it's file manager you can like upload new create folder move files, but just typical file manager and Initially like all files are gray. So basically it's not validated or indexed but Then we're starting by clicking on files and it's it just validates your data just by clicking and it by validating it means that Behind frictions we kind of and really worked a lot on it like we have sophisticated validation system detecting tabular errors metadata errors But here it's just like one click and you're getting kind of like status of your data I'll show what can be like errors but first of all just tables it's getting indexed to a sequo it database and you can do just any like Exploring table or data sorting Filtering whatever so it's just like a normal data viewer You can like open the source View to see what's your like initial cc if it if it was a cc file But the errors Like we wish we didn't have like errors in sorry guys In table or data, but they're like a lot of errors. So the power of frictionless technologies is a Finding the errors, so here's an example of a report showing like Here's a table and it's a it was the metadata types was inferred automatically and then application found this like bad cell which is not which is not a Integer, it's a string, but it should be sorry It should be an integer. So We can Enable errors view. So if you just filter All the rules and and show only errored ones So it could be like 10 millions cc table, but you can just see only errors and Here's like you're clicking getting details and it's it's not like ready, but almost ready If you'd like to clean it like manually You can just do it as like in Excel. So just clicking on the cell Fixing the error saving file okay, so the second like power of powerful thing of frictionless is metadata so Frictionless is based on the frictionless standards It's a metadata standards for describing basically like data description language Describing tabular and other types of data in the application it infers metadata like for you for example For normal files, it's only kind of like information about Like format type, etc. For table or once it will be also schema data types and You can edit this and save and I'll show like later. Why why why will you be like editing metadata like here? It's my table, right? So it's it's if you for example publish this table It will not be like just Table with a random name it will have kind of like human readable description. What is it? So Next one. It's a creating charts. So you can click on the chart button Like for example, you were on the table cars and you're clicking it It tries to create like to guess what you're going to like show From your data from data types and it just created this like chart charts like Vigolite so we always try to rely on Existing like standards technologies and So it's it's the first guess and and You can start like editing it currently. It's like really basic Vigolite editor Visual one. So here we kind of like said that we are interested It's not shown here who interested like in brands. It's cars basically and we'd like to see like average price For each brand so it's now this this table makes like more sense than the first one, which was like just random something so But if you an expert The same as with tables you just start Source for you and edit and can edit like your Vigolite by hands So it's just totally open Not yet done, but of course Having all the like data indexed in the Like database of course the application Provides and just just almost ready provides SQL interface so you just query basically so you have you have like a folder on your computer with a lot of ccs You open it and you can like query mere join like your data like just Kind of like secure interface on top of similar to that asset project So it gives you A field to write your community also it suggests Fields and tables so you can click For example on the ID double-click and it will be inserted into the query So you don't need to remember all your data made model And by the way names here Is kind of like the ones you edit as a metadata so you can provide your names It's not from cc so you can make it more like having more sense Also coming but Once you have kind of like a sequel you the same as in the databases You can use it for example for charts if it were just kind of like a cc so you can For the chart it will be not It will be basically the same so you can you can have some files create kind of like if you've used use it in the charts and by the way Also, it will be difference for regarding charts to we go right that here It will be it will support not only we go right supports. I think like cc and Like Jason, but here you can use like Excel and because it's it renders Internally the chart if you work for Excel or like view, which is not supported of course by Vega light so It's a little bit like specific but we have a kind of like big community of people creating standard metadata based on our standards here for example for open data portals and They used to kind of like edit Metadata by hands. So here you can just like Open table schema. It's one of our standards to describe a cc file and just edit it as a Invisual interface and just save it and reuse It's a simple thing of course markdown editing so you can write markdown documents, but more interesting That we're working on the other project of frictionless called Weimar it's a visualization static site generator based on markdown, but with tables charts visualizations and Here you kind of like you'll be able to just you know that I can drop your chart here and it will be creating like Website like this and you can like publish it for example to netlify or github pages and It's just static site. So it doesn't require any like server infrastructure and It's yeah, it's Other files, so usually that assets. It's not only tables and cetera like descriptions PDFs Pictures, so it's kind of like MIT lights and cat Going like to our data set. It's good. Not creative commons. Okay So the same metadata so data and you add metadata to describe your like intention So Finally we creating a data package that about cage is Format to describe a data set so you just create a data package and add What you'd like to include in your data set? So for example like these files So it's here like it also validates. It's valid and we can we can publish it currently currently only second supported but of course like It's because it's based on the friction is framework in python. We already have like connections to other Platforms, so we're going to add it really soon But second this Providing epik a Let's publish and Here we go. It's like on second But it's valid you pretty sure because it showed you like errors and well described Which is also like really important because there are a lot of cc files on all this like open data portals But you don't know what is it and in that the package kind of that the package It is that the package is on it's kind of like API for data so if you have That the package is on somewhere on the web you can read it for example with frictions framework application And in other tools for other languages we have for our for etc. So PM Coming soon This top application other data portals opening like remotes you can for example instance inside the application Faceting classing standard stuff wiki data integration really interesting topic for us and Yeah other Decorative pipelines here. It's really is good to edit manually, but it will be and we have already like a model for it for decorative pipelines So Important notice it's better for next two months. So it's not for production. No for important files I hope you you you all use like gith and like all this stuff, but just just to make sure Releasing in June version one. It's better. It will be version one Frictions application in data literacy can be like really I think really good for teaching. So it's like I have like a kid I'm going to like introduce open refine to him like when he's 16 But I think for frictions application eight, you'll be good, but still say seven years, but Feedback, please don't forget to support Ukrainian people. They struggling and thanks for your time. Yeah Thank you very much for that talk We have several minutes for questions. I see we have a question. I'm gonna give you the microphone Thank you. You have genie for the presentation. It was very interesting It'll be like a Crosco. That was it was a pretty cat in the Russian Sometimes I my question is about we have a friction application. We have frictionless framework and we have the Frictions data specifications as packs and some signs I feel that there's a race between them some some advanced more than others. I wanted to know How do you approach this? First we experiment with the framework and then we update the specifications etc. Cuz I have a very concrete example in the frictionless framework, we have The metadata can be stored in JSON or YAML However, at the specs specification only JSON is allowed, but we find ourselves using more more YAML But that's not part of the specs. So I wanted you to comment some something about How these things go together which goes first? How do you approach evolution of the specs and yes Thank you. I really good one In like really timely because currently we're trying to start working on specs standards version 2 to wrap it up and make it like we're really real industrial standard and Trying to promote it to other open data portals to be kind of like a data API standard one and Regarding all other stuff. It's basically currently it's it's like one. It's one project. So it's the same called a base So they just In sync so when we saw basically frictions application is kind of like just a UI for the for the Python framework So it's it's one project and it's being developed just In sync and that's the one thing Have you seen how it handles? CSVs that get very large like if I Throw I'd saw this on my laptop and I throw a five gigabyte CSV at it Is it gonna hang for 10 minutes or Currently I think it can struggle because frictions validation is not very very fast But we just got and based on your like help also our community member On this idea of indexing files. We got really quick indexer just based on SQLite Like native indexer and if we're going to introduce this like month when you don't validate but just Upload data to SQLite and it's like really fast for local files Yes, it and it's just kind of like view for the sequel the database So it's can be like any size based on if you have like space on your computer Thank you


On January 1st, 2024, a new law went into effect, which will help protect local business owners while periodically checking for illegal activity. The Corporate Transparency Act requires all existing and new businesses to register with the Financial Crimes Enforcement Network. President and CEO of the Southeast Kentucky Chamber of Commerce, Jordan Gibson talks about how this affects local companies. So, yeah, this new law that came into effect in January, the Corporate Transparency Act was actually passed in 2021. So it took effect of January this year. So any business that was in existence prior to January this year has all of 2024 up until January 25 to actually file the proper reports. And so this really is a way for the federal government to crack down on financial crimes. So any illegal activities that a crime organization might be using a shell company to hide their activity with, this is really a way to identify who actually owns those businesses and who's actually benefiting from the profits they make. Appalachian Wireless just can't stop themselves. Give the iPhone 13 128 gig for a penny with a two-year contract on the Mix and Match or Unlimited Plan, new or renewed line. While supplies last, one penny for an iPhone 13. We are you. We are Appalachian Wireless. The Chamber will be working with local businesses to ensure they report their information accurately. Reports must include the owner's name, date of birth, address, and any non-expired licenses. We're going to be trying our best as a Chamber, as a local small business organization to help our small members to any way we can on learning about these new requirements. Walking them through, showing them where they can go find the information with that. One of the ways we're doing that is partnering with our media organizations. We're going to have a press release out on our website also. So if you need more information, feel free to give us a call. We can point you to the right government website to find the information you need to make sure that you're in compliance. And again, you have all year to do this. Any new business that starts up this year, they have 90 days to file, but if you were already in business before January 1st, you've got all year to file this. Reporting from Outant Top News, I'm Nick


Welcome folks, here at the Dow Industrial has finished down 30 and has taken off 68, S&P is off 11. Gold contract up $2, trading $2,200 even. We have silver down 32 cents, $24.57 an ounce, light sweet crude up, down 43 cents, $81.52 a barrel, notes and bonds, 10-year note, up 4 ticks, trading $1,1020, 30-year up 9 ticks, at $1,1919, and $king dollar, $king dollar, $king dollar, $king dollar, $king dollar, traded up 102 ticks, $104,326, Euro 108, yen, $151, British pound, $126 to one at U.S. dollar. We get over and take a look at the S&P's, so they had a market that didn't hold price, you still got light volume folks, okay. You got 53 million shares, which is an expansion of volume from yesterday and coming into the close, that's for sure. So bottom line is that, yeah, you could get, let's see, what is this number, 518? Well, it looks to me like you get a lot of support here because you're actually coming into 68 million and you did 54. We go into the Q's, we take a look at the Q's, it's going to be the same type of setup because you got to a high, no, you got to a high, pull back down, but you're pulling back down into right where we rejected lower price yesterday. So on the Q's, it's 31 million versus 43, so you're going to need a lot more selling than that to get to lower price. Let's get over to the dollar because the dollar, bottom line is that at the beginning of the show, the dollar was still up, market was up and then it finally got to it. The dollar rejected lower price at 104.012 and we closed at 104.326, so you're in the higher range. I mean last Thursday and Friday, that was a big move by the dollar, man, so this is probably going to go for its high, which is, if it goes for its high, then you'll see that S&P goes south, there's no two ways about that. And when we start talking gold, the bottom line is that we had out here in the gold contract is that you had huge volume, you got to 2222, you gave it up on price and what does end up happening is that when you get a huge volume, we have 214,000 contracts. That's a market that wants higher price. And look at this number, 2222.60, that's where we went, 214,000 contracts. Now, when you come over to our website at CFNN, you're going to see right in the front page featuring content, the 22 year anniversary, that's this week, folks, of the gold report and you get 35% off and that is a number that will stay with you for a lifetime. If you take a look at these are the positions that we have right now. Have a great one, folks. Have a safe one. Come back and visit Tommy tomorrow morning, kicks us off at 9 a.m., great show, folks.


So, hi, my name is Warwick. I'm the CTO of Bright Book. I'm here to tell you about how we're going to use open data for micro business. But first I'd like to tell you about how Bright Book came to life. How something we made for just ourselves has gone on to appeal to tens of thousands of companies worldwide and all with no marketing budget. It is a bit slow. Here we go. So as we're a free online accounting service for micro business, I'd like to get an idea of how many of you are in a company with five or fewer people. Can I get a show of hands? Okay, so we made Bright Book for all of you guys. Let me explain why. I know many of you are consultants who are passionate about information sharing. I'm pretty sure you're not passionate about your bookkeeping. When you're concentrating on work you love, you're not thinking about chasing a payment. So 14 years ago, my co-founder James and I met. We were sharing an office space in Soho. We had our own separate companies which we started just after the dot.com crash. So fast forward to a Friday afternoon in 2008. James was doing his VAT return. He wasn't at all organized.  I, on the other hand, had just spent a couple of hundred quid on an over-complicated piece of software and it took me two hours just to make an invoice. It was like using a sledgehammer to crack a nut. There had to be a better way. So I hacked together a simple web app which did exactly what I wanted it to do. So I was making invoices and tracking payments. I showed James and he thought it was a brilliant concept and immediately jumped in. He proposed various things like what if it can do expenses and how about euros and dollars. This is how our first version grew. Brightwood was born and was nameless and was only for James and me. Then a couple of months later a few other people in our office, they asked to use it. We realized we could be creating something special. We launched the first version of Brightbook in February 2010. We didn't have a press release or have a party, anything. We just said it live, went home. Then a few days later we noticed the traffic spike. It turned out that a friend of ours, who was the editor of Graphic Magazine, which was a leading design journal, shared it with her fan base. By the end of that week we had 1,500 active users. James and I both felt passionately that Brightbook could succeed. We made something people wanted to use, something that solved their frustrations. People were telling us that thanks to Brightbook they no longer dreaded doing their accounts. People, because it was simple and straightforward, they could focus on what they loved to do. It was a real milestone for us. For the next 18 months Brightbook was still more or less of a professional hobby. We released version 2 and started generating revenue, which was awesome. We're then approached by a leading accounting software provider for a partnership or something more. They wanted to bridge the divide between small businesses and accountants. James and I both saw this as a validation of what we were doing. Anyway, talk stalled and they ended up buying a competitor. Whilst it was slightly disheartening it rarely fired us up and motivated us to rethink the value of not just Brightbook, but what accounting software in general provides for small businesses. We needed to be different. We needed to be unique. We couldn't just be a simple reporting and reporting tool. What if we could do much more than that? When you run a business, you want to know where you stand and how you compare to your competition. We started thinking, wouldn't it be helpful if you could benchmark yourselves against your peers? How amazing it would be if we could proactively help you make and save money? We realized that doing on our own would be difficult as we only had shared data from our own platform. We knew that in order to have enough data to tell an accurate story, we needed open data and massive amounts of it. After a chance encounter with the ODI, we found out about their startup program. We applied and were accepted in June this year. For us, the ODI has been a great first step on the road to setting up commercial partnerships. With the likes of Open Corporates and Companies House, anonymous open data can be a central part of our platform. We're super excited because Brightbook could be a really important tool for a huge amount of people who share exactly the same frustrations as we did. Thanks for listening. I'm off to the Web Summit in Dublin later this afternoon, but we'll be in the Startup Theatre at 1.30. I'd love to have a chat if any of you are in the world of SME data. Thank you very much for your time.


Hi, ydw'n meddwl, Bethany Griggs, ac mae'n gweithio yma yn New York. Mae'n cyfnodd ar y UK.  Mae'n ddweud o ddweud o ddweud o ddweud o ddweud o ddweud. Yn ymgyrch gweithio'r ddweud o ddweud o ddweud, Felly rwyf am rhydweithio hips o Ymgyrch. A fy nghaeswyr ddyığın feddwl icha heddor ar fy nid Fedffer Slyw friendship i ran bob yny yn ôl OGM. Wrth fy nghydat.  Rhyw gweld Rhywή Sub party wedi gw widelyx, lemon informusio ar yr F focus on y rheswun sforce cynesio ac yn gwleithio felry idi. Mae o ddyn nhw'n ei bod ynOver hunch am eu plaw sydd stall y bydd nhw flyny yng nghyrch, y yma hwn yn haltyng sy'n d Fallone. fel hefyd ynnu'n gweithio. Felly, ydych yn casr nad yw yn nod i ni ddweud yn nhw'n gweithio yn yr ysgol yng nghydroi? Nog yw'n ddod i mi, mae WJS18 wedi'i gwaith arlaeddi. Cymru yn Ynno Pryddiw, a Mae gwah gods o'r dweud oherwydd fe wnaeth yw'r cywrthod yn gyffredig yn yr ysgol ar yma. A yna'r ymgylcheddau yn amlwg ond, maen nhw'n gwahodd â'r hanffordd ac ymlaeddi. Mynd i ar hi wneud mae WJS19. That was released in October and that's currently our current release. It has all the new features and the latest updates that are landing in the project. So, two big new versions. The exciting thing that most people get to are yay new features. So, yep, great new features. Everyone's excited for new features. And in node 16, and no dating, sorry, we introduced the Global Fetch API. This was a very anticipated API. Discussions go back to years. We finally landed it, shipped it. It's still experimental. But it's good because conceptually, people using Fetch in the browser have something similar in node that they can use. There's some performance tweaks we need to do, but people are working on it and it's getting lots of use already. And then we also have the built-in test runner. So, this was in node 18. We introduced a test runner. And this means you don't have to go off and install a module to test your applications anymore because you can use the built-in one. And the purpose of this isn't to displace all of the great test frameworks out there, like Mocha, Jest, you know, and those. It's just to provide something small and lightweight that covers a useful set of use cases. So, if you've just got a small app, you maybe won't have to go and install one of the modules. The way I see it being used is, yes, I start off using this, and then once my app gets complex enough, I need to go and explore some, you know, advanced features, then I would go and pick up, like, Jest or one of the other modules. Lots of great work, particularly from Colin on that one. And we also, even more recently, landed Watch. So, you can now watch files for updates and they will reload and rebuild and rerun. Great, think Nodemon. If you've used Nodemon, we now have similarly and similar implementation in Node. So, that's lots of, you know, cool new features and the kind of carrot on this, you know, stick to encourage people to upgrade. But I know this is not the reality. Upgrading versions takes time, it takes effort, and it takes money. I work with a lot of enterprises where it's still the traditional life cycle. You're not deploying every single day, like many of the cool companies are. You've still got long, you know, development processes. You've got code freezes. It takes time to upgrade. And you really have to find a window in all of your other priorities to have time to do the update. And this means inevitably it kind of gets pushed to the last minute until you're forced to upgrade because you're approaching the end of life. And that's why I'm here today. I want to share some techniques, what I've learned from helping teams at Red Hat and IBM upgrade and load versions. And the flow of the talk is going to be, I'm going to start off with what may seem obvious and then go into maybe some more involved techniques. My aim is that hopefully you'll learn, you know, at least one technique that you didn't before. So, the first good piece of context to have is to understand how Node.js releases work. Fortunately, Danielle did a great talk this morning that covered that. See if you caught that perfect. But if not, I'll just recap the very, very high-level basics that are necessary for this talk. First of all, the Node project follows semantic versioning, the semantic versioning contract. So, I'm sure many folks are familiar, but the first number is incremented for a break and change, the second for a feature, and the last for a fix. But that comes with some caveats. So, you can argue all day about the difference between a bug fix and a break and change. We've actually found cases where there are genuine bugs in the Node runtime, but people are relying on the behavior. So, we can't actually ship it as a traditional bug fix. We have to delay it and ship it in the next major, literally because it will just have too much impact. Same applies for spec incompatibility. In some cases, you may think, you know, making this API line with a spec is just a bug fix, but actually, it would have such wide impact, we elevate it to a break and change. We also have a blanket exception for the theoretical security fixes. So, where we maintain multiple release lines, we have to ship our security fixes even if they are technically a break and change. So, in our policy, if something is security conscious, we will ship it in an existing major release line. We often do try to give you workarounds so command line flag to revert back to the old behavior just so you can still work grade, but this is what we do. And then, last of all, very unexpected side effects. We try to adhere to this contract. We put PRs in, we label a lot of PRs with this and this, but to be honest, we make mistakes sometimes where things have unexpected changes. And that leads me in to the release schedule. So, Daniel did a good recap of this. The main takeaway for this talk is we have current and long-term support releases. Generally, for most businesses, due to the length of time it's supported, they will stick to the long-term support releases. So, the even-numbered release lines node 14, 18 and 20 seem to be 20. So, the main context here is current releases are kind of like beaters to try out the cutting edge. The LTS releases, even-numbered releases, are the secure and the longer-term supported ones. But what this means, when you come to upgrading, if you're in an enterprise setting, is you inevitably end up doing a double jump. So, you actually go from, typically, go from like 14 to 16 or soon 16 to 18. And what that means is you've picked up a lot of changes in the meantime, as the code's churned. As Daniel mentioned earlier, the main branch evolves as these releases are cut. So, you've probably got about a good year's worth of changes to pick up if you're going between 14 and 16. And this is relevant because it leads me into the first port of call when you're debugging a breaking change. And that's to look at the changelogs. But you need to know which ones to look at. And if you were going from, say, node 14 to 16, you'd actually need to look at both the 15.00 changelog and the 16.00 changelog because they're cumulative. You're picking up all the breaking changes between those two versions. So, if you've got your app and suddenly it breaks with the upgrade, the first thing I would do is check these two changelogs. In theory, everything that's identified as a breaking change will be in those changelogs. I've got some good news here, though. This is the number of breaks and the major PRs per release line. As you can see, it kind of peaked around node 10. And after that, we're heading back down in numbers, just less than 50 PRs of breaking changes. Stability. This is because, you know, nodes mature project at this point. Stability is key. So, over time, we're being more conscious about making breaking changes. Once you're in the changelog, another useful tool is our use of subsystems. So, a subsystem is kind of an area of the project that the code touches. As contributors to the node project, we tried to identify all our commits based on these subsystems. And this is useful for end users in a changelog because, say, your HTTP server is broken, you can use it as a shortcut to try and identify which changels are likely to be the problematic ones. This is great when there are intentional breaking changes with known impact. So, one I think we did really well was the OpenSSL 3.0 upgrade. Due to lifetimes of OpenSSL, we had to make this breaking change. But what we did, we could explain why we needed to make the change. We gave some options for people to revert and work around any new behaviors in OpenSSL 3. For context, OpenSSL, when it does new majors, they tend to block some older algorithms and say you can't use MD4 anymore so your application would actually fail. We provided the OpenSSL legacy provider command line so you can revert back temporarily. The things are really not always this smooth. Debugging upgrades, you can't always infer it from the changelog. Now I'd like to segue into one of my work experiences. At the start of the year, I was tasked with helping a team update their JavaScript client for their product. It's a Java-based team, a lot of Java engineers. They just happened to have a JavaScript client so they didn't really have the expertise of node runtime. The project was called Infinispan. It's an OpenSSL's data grid. I think it's just a Redis kind of equivalent.  They needed to support node 16. So they reached out to some folks in our team who maintained the runtime because they had the context to do so. So I started with some very, very obvious steps that I'm sure most folks would do. You run a test suite with one version, it passes. You run it with the next version, it hangs. The next and 15 also hangs. And what I do to do this, I just use NVM, switch between versions, and run a test suite, see what happens. Another typical debugging step is to isolate the individual test. So in this case, the whole test suite was hanging. I just needed to go in and figure out what the exact test was. And this does have some relevance later. So what the failing test was, it was a cross-site test. So essentially it starts two clients. It expects to be able to read and write to both. It destroys one of them, tries to write to the one that destroyed. And what should happen in theory is under the covers, it successfully persists the data that goes via the client that's still living. So that was the context of the test. And then I went to the very, very typical familiar debugging step of sticking console logs everywhere to see what would happen. Very familiar. This was good because I could roughly see what part was hanging. Great. And then I was like, actually I should be a bit more intentional on my debugging here. Let's use a better tool for this. So I pinged open the Google Chrome Inspector. So I started stepping through the code, what's happening here, stepping through. And what I hit at this point is this was an events problem. And stepping through the code just meant I was stepping through the event loop until a time had run out. And that was it. Like this wasn't giving me the, like helping me diagnose the problem. All I knew was it was waiting for something to happen. That never happened. So at this point I was really trying to think, hmm, what next, what to do. So I resorted to git bisect. And this is a binary search algorithm that you can use to find where a problematic commit was introduced in your git history. So as Daniel mentioned, the release group do this quite often because when we're building releases we need to check, you know, if a test fails we want to check which commit is causing that failure and pull it out before shipping the release. But in this case I used that technique to find out which breaking change was impacting our client. And so you give it a good and a bad commit and then you start to git bisect process. And now I have a demo-ish. If you give me one second to bring it on to the screen. Or not. I will get it. It was a lot harder than I made it. There we go. It's really hard to type when what you're looking at is like that. So I don't trust a demo god, so I always record all of my demos in, you know, ASCIM, which will just record a payback on my commands. So this is the exact bisect I used to debug this problem. So you start by calling git bisect start. You supplied a good commit. In this case the commit was node 13. Release commit, because I knew it was in the window. And I knew the bad commit was node 15 release commit. And this is all on the main branch. And then at each level I have simulated this, because if I built and tested node at every step here, we'd be here for at least an hour. So I just run through and simulated it. So what I would do at each step is run make build and then run the individual test with my custom binary for that particular commit. You can see it starts running through the steps. And git bisect does actually have, you can pass it a script instead, like a shell script, and it uses the exit code of shell script. So I could just type git bisect run test.sh and walk away. But I find this quite intuitive to demonstrate. So great. I found the problematic commit, which is net auto destroy socket. And based on the test at this point, I was getting some familiarity with this is probably a socket or streams type error. Now I will quickly go back to my talk. This is good. OK. So yay. I found a problematic commit, net auto destroy socket. OK. Bear in mind the context that the people I'm working with are Java engineers who maintain a small JavaScript client. It may be great to find a commit, but you need a lot of context to be able to go into call runtime and be like, hey, why is this commit impacting my small client? Because this is low-level stuff. So even myself, when I was looking out, I was like, I kind of see what's happening here, but I can't quite articulate why this is causing the breakage in the same way in my client.  What's again? And so I tried node debug. And I don't know if anyone's aware of the node debug environment variable, but if you supply that to your node process, you can get some lower-level runtime values out of the debugging output. And going back to what I said about the change logs, we use subsystems here as well. So if you wanted to see all of the debug-level logs for HTTP or Net or Stream, you could just do node debug equals one of those and you would get the low-level output. You can also enable all with a wildcard, but to be honest, don't do that because you just see time is counting down and is not useful. And then I got to the point where I could run with this low-level output with node 14 and node 16 and see the stream and net events. I chose stream and net because I knew from the commit it likely touched net or stream. And again, it was going through and I could kind of, you know, see what was happening. One side was just waiting for something to happen and a certain event wasn't being emitted. Again, you know, this was a couple of weeks of work just being like, I don't know what's going on. I'm getting closer, but I still have no idea what's going on here. So then I was like, ask the experts for help. And I reached out to one expert. I was just like, how do you debug streams? I have no idea how to do this. How do you do it? And one bid suggests that I had a few beers and then tried it after a few drinks in the evening to avoid the spare of looking at streams code. So that was one suggestion. That wasn't their only suggestion. The next suggestion is what really helped me plug all the pieces together, which was to create a minimal node core reproduce. So at this point, I'd spent literally days, almost weeks, stepping through this code, trying to figure out what was going on. And from all of that, I'd gained context of roughly what it was doing at a high level. So taking all of the specifics of the clients and the infamous ban out of it, what was happening here. And it was really just quite simple. It was like it was creating a socket, destroying it, and then trying to write to it after it was destroyed. What I know is that there's some behavior difference in node 14 and 16 with this. Oh, wow. Apparently it hadn't. Okay. So I created a minimal reproduce. So in here, we create a socket, and logs connected when it's available. I just used timers because I thought it was quite easy to demonstrate here. So you send a destroy message to the socket, and it destroys after three seconds. After it's had time to be destroyed, I just sent, you know, hello world to it. And I found this few lines of code emits an error in node 14, but it actually doesn't in node 16. So that was the key difference. And then I could eventually get to what the code needed to be to still emit the error. And as you can see here, it was a case of just emitting it via the callback. So this was the most minimally invasive way of adjusting the code in the project's client to get similar behavior in node 14 and 16. What was actually happening is the test suite was hanging because it was waiting for that error event. It was never happening, and therefore we needed to manually elevate it and expose it. And that's what enabled the fallback behavior to, you know, it tried to write to client B. That error wasn't coming back, and it was only once I forced it to give the error back, the client knew to write to client A instead and do the fallback cross-site behavior. And there was a sentence that said, you know, it was a bit of a flaky client written on some bad assumptions potentially, but in context of, you know, just trying to get this client working with the least amount of change and the least amount of risk, so it was a bit of a situation here. So just to summarize, like my techniques, and I'd probably use this part again going forward, is at first isolate the test failure and identify the specific version that introduced the breakage. I then look at the change log being guided by the subsystem. Obviously, you use our traditional debugging tools, such as console logs, Google Chrome dev tools, et cetera. But then the more involved steps are to look at runtime-level debugging with the node debug variable. You can resort to a git bisectives node runtime, and you may ask, like, why didn't you just do that straightaway? One, it takes a long time unless you have access to a powerful machine. I think it was like 1800 commits I was bisecting between. So it can take a lot, and builds of node could take, depending on your machine, 20 minutes or maybe a bit quicker. So it would take a long time. And also, had I not spent so many hours stepping through that test, really understanding what was going on, finding the commit, probably wouldn't have helped that much without the additional context. Also, ask the experts for help. So, you know, we have teams on the node project who are responsible for certain areas. So you can reach out to the group that are responsible for streams or the group that are responsible for the console or something. So knowing who to ask to help says for a lot. And also a minimal node call reproduce. And I give that the gold medal, like it's the easiest thing to go from what's the change in the runtime and how is that impacting my application.  That's perfect. That's the perfect thing to hand to a maintainer because they've got all the code. They know it's not an issue in your personal code or your company's code. They've got a minimal set. They can prove and confirm if it's an issue or not. So now, that's the process I would follow. How can you prepare for an upgrade? The key tip I always say is lots of companies only use the even number of releases, the long-term support releases. I would suggest, even if you don't intend to support or use internally, the odd number of release signs, maybe add it to your test matrix when it's released, because then you're just getting some early feedback. You don't need to fail completely on it, but instead of doing that double jump, if you, like in this case, if this team had added node 15 to their matrix, they would have learnt when that was released that they were going to be hit by the change, the window smaller, it would have been easier to debug. So that's my normal first suggestion. I also want to share that there's a GitHub Actions config. It's in the PKJS GitHub org, which is actually like a Node.js project-owned GitHub org. What this GitHub action does is it automates which node versions are in your CI flow. So instead of putting a PR into add 16, PR into add 18, it automatically, you can give it a value of LTS at which point the matrix, it will generate a matrix and run on all LTS versions. And why I mentioned this is there's also a setting where it will cover all of your LTS versions plus the current. So at the moment it would do 14, 16 and 18, it would also do 19 as your kind of, you know, early feedback on how much you're going to be impacted by the upcoming release. I'd also like to give credit to Dominicus, he did a lot of work on this, he worked on it, therefore. The other thing you can do is to try running your application with the pending deprecation flag. So when we're looking to deprecate or remove some APIs, we will sometimes register this within the code itself. So if you run Node.myApp with this pending deprecation flag and you're using an API that may be removed in future, it will actually error and show you, say, hey, you're using an API that's due to be deprecated in future release. Again, you wouldn't do this all the time, you would do this to get some early feedback on what you're going to be impacted by. And what I would say is if you are hitting a problem upgrading, please do open an issue or a discussion. Mostly because it could be an undocumented change. As I said, where it starts, you know, things can have unexpected side effects. What we can think could be a purely additive feature may actually cause breakage that we just weren't aware about from your use case. And it also could be the fact that, you know, if you're asking, it's probably that we haven't documented it or not documented it well enough. And if we can get that feedback and prove our documentation, it helps the upgrade experience for every user. And it also, I think the most important one is, this really helps us assess the ecosystem impact of the similar changes in future. Say, for example, this change, you know, all our tests look fine. It calls real breakage in real world applications. We know next time when there's a similar commit like this that touches similar areas, there is a consequence that may not be covered by, you know, our low-level unit tests. And what I would say, you get bonus points if when you are hitting a problem upgrading, you can come with us to a, like, small reproduce, because that, in terms of how much time maintainers have, having a small reproduce is really what helps us help you. And with that, I will close out. I'm happy to chat one-to-one about any debugging problems, version upgrades, issues. But yeah, thanks for your time. And I hope you learned at least one way of debugging an upgrade.