completa                                                         dwe clarified gesit o briefly 在  сод dwe the shifting inabogia The 67-year-old politician returned to Nigeria in September after months overseas, but has been in a burden. The U.S. take capital. Accred Olu has been under intense pressure from opposition parties to resign or hand over power to his deputy in line with the 1999 constitution. Joining us is the human rights lawyer and political analyst, Alan Shogure. Alan good to have you again on plus politics. So can we say in real politic terms that there is a modicum of progress, but in unconstitutional terms are still same of the shame. Hello Alan. How would you? I can hear you. How would you want to respond to my inquiry? Is this the same of you?  So much motions, you know, don't stay without movement. What is constitutional cannot be done by mere political meandering. So I do not expect much difference until we are honest with ourselves and accept that the governor is ill and for now he needs to attend to his head and allow for the deputy governor which he is provided for by the constitution. I have so much respect for the president and I have been waiting to see the outcome of the resolution, how it will be put in operation and today we have seen it. It is not going to work. Somebody must be in charge and that is the law. The president cannot suspend the constitution. He cannot like one person above 5.3 billion good people of undostated who desire good governors. And I am very sure by now that the president will be great reporter. That resolution must be in charge of undostated somebody. Is it a governor or an acting governor? That is the law. So we must embrace the law, the provision of the law. In real politic terms you will agree with me that there is at least a modicum of the movement. There were weeks on end, weeks, if not months, that the executive council could not even hold its meeting. Today it held its meeting. Apart from that, at least there is now a semblance of governance. You and some other political constitutionalists may... And I am sorry, it is not even a derogatory term. But those of you who are political constitutionalists may want willingly that Akredo Lu must submit his letter of resignation and I hear that he will be made the substantive governor. But this is better than what it was, what it's been for months. How would you respond to that? Yes, I am not one of those people who are saying that Akredo Lu should resign ultimately. What I am saying and what I have been saying and what I will say is that the governor should simply step aside, attend to his health, transmit power. He is the governor. For he should transmit power to his deputy who continues acting. That will not stop him from receiving his salary. That will not stop him from the state taking up his medical bill. For somebody must be in charge of own those state. Like you rightly observed, the state executive meeting here today, if you have had any outcome, there was nothing. It was just mere ceremony. Because even as a lawyer, I can tell you authentically, the person who can preside over the committee of a state is either the governor or an acting governor. There is no provision that the deputy governor can preside over his committee. He must be acting governor. He must have the capacity of either the governor or acting governor. So why are we running away from the fact? Why are we running away from the obvious?  How far with that litigation now? Yes, that is one of the major mistakes that Abuja called as recorded. Some of us who you could call stakeholders were not invited to the meeting. So the problem is a problem of own those states but at that meeting it was reduced to the problem of the BAPC and with respect to whoever conceived the idea of that meeting. That was a mistake. And Mr. President Pisada did not have a meeting as chairman of the BAPC and not as president of Nigeria. So we are happy that they have come out with their own resolution. Some of us who are stakeholders considered our interest is connected to this. We are caught. So their decision will not affect us. It will not be part of your meeting. How will your decision affect me? To God be the glory. Let them put their decision or their resolution into practice while we pursue our own different independence. But you and I know that the will of justice can sometimes be very, very slow in our jurisdiction. And within the context of the time left now for the tenure of Ben Yakredulu to end the action may indeed be ultimately superfluous. How would you respond to that? Let me bring you up to speak with what is happening under state. A state high court today has granted an order stopping the inauguration. Hello. We can hear you. Hello. How would you? You said the state high court has granted an order stopping the inauguration of the state high court has granted an order stopping the inauguration of the state high court has grantedan order stopping the inauguration�  최근                                     ೀ elemento ೀermouncho ೋ feasible izable ınız  ಣಇಕೇ ಲೋ ಮೇಅೀ May want to say that As we speak, whether people like it or not, there is progress, at least relative to the total state of inactivity and non-action that prevailed for months. So, if the court, which is the only constitutionary course that people like you have, if the courts have not pronounced regarding what prevails now, at least, those who want to see governors who will at least be taking respite in this contraption that has started existing from today, I will respond to that. So, what you are trying to do is with addressing, you must address the issue on its root. Is the governor available with your grant to carry on his duty? No. What does the law says whenever the governor is not available? Hello, Aleshwara.  It will take a court of common jurisdiction to pronounce that those signatures are forged because you never know maybe the governor himself signed those documents that you are alleging to be forged. You know when I make pronouncement on national TV like this, you know that I am equally prepared and I am ready to take up legal and constitutional means to challenge such. We are be calling for such documents and we will go to court. The moment we have evidence, the moment we got everything, we are going to go to court to see who has be forged the signature of the governor. So, I am telling you that I also have a duty in journalism, I have a duty in ethics to let you know that in so much as you can assert that something is forged until that thing is pronounced by court of common jurisdiction, it will stand as an allegation. Do we agree on that? I am not saying that it is not an allegation. An allegation can be broadcast on national TV. I am alleging that some element in the state has been forged in the signature of the governor. And I am saying that I will take it up as a model legalize to challenge this by the time we completed guarding our evidence. So, there is nothing of fear. I know you have to protect the ethics of your profession. I am just saying that allegations are real that some element have been forged in the signature of the governor. And that is where we are in those things. I will ensure that some persons in those states who at this juncture don't want to come on camera are saying that people like you are saying that people like you are, you know, are surreptitiously working for the deputy governor, that you are indeed making this force because you are lethantly supporting the machination of letting the deputy governor be made substantive governor because you are expressing. How would you want to respond to that? That is an allegation, but I have to ask you that direct question. It is the same people who blame the opposition. Oh, there is no opposition in those states. Opposition is dead. It is the same people who said that this cannot have happened in the days of vibrant youth in those states. It is the same people who turn around and say that I am working for the deputy governor to God to be the glory. I want to work for progress. I want to work for my conscience. I want to work for the good people who are from those states. So, who is working for this darkness, these messages of darkness? Who has brought this darkness to those states? So, you are telling the world that this is basically an altruistic duty primarily for the constitutional integrity of Nigeria and indeed primarily for the respect of the 1999 constitution. Exactly. I expected even by now that Mr. President should have invited the attorney general for his advice in the situation in those states. I expected that some of us senior lawyers, because this is the same position that if Ghani Fawebemi who is incidentally was from those states would have gone to court to challenge and you agree with me that many of senior lawyers in those states are not talking. Thank you. Thank you, Alan. I really want to appreciate you about time we ended it. We go for a short break and when we are back, we take on the second segment of the show.


Today, I have the pleasure of speaking with Ian Chalmers of Alcain Resources. How are you today, Ian? Great. Thanks, Tracy. Ian, I hope you don't mind, but I know you've been traveling a lot, and I'd love to get your feedback on the Singapore Conference, and in particularly Dudley's presentation. I read his title was, The Global Rare Earths Industry Today Plagued by Illegal Production in China. Can you comment on this? Yes. It was a theme that Dudley's been sort of promoting now for probably two years, that the Chinese really aren't in control of their rare earth industry, and that's simply what it is at present, because the illegal rare earths are really probably 30% or 40% of production, and until they either eradicate that or control it or do whatever they have to do to it, we're never going to be sure, and it's putting a lid on rare earth demand, on rare earth prices, and what's even more disturbing, and this is Dudley's view, obviously, is that would appear that a number of major consumers are accessing these illegal rare earths, and that's disappointing that we do have a number of Western companies actually accessing those rare earths. Well, after 29 years, this is your anniversary at Alcain working there for 29 years. What I'd really love is your opinion. What do you think? Are there any illegal exports plaguing the industry? Absolutely. I've no doubt in my mind at all that that's what's going on. It's just they're effectively undercutting the demand or oversupplying the demand and keeping prices low, and there's no doubt it's happening, and it's very disappointing for an industry that's going through a very tough time.  Every page was full of questions for you, so let me start with something I found interesting. I didn't realize that you had a total income of 102.5 million last year and that you have nearly 20 million in cash and bullion present presently. Is that correct? Yes. That's correct. The nice thing about all of that is that we made about 28 million free cash flow out of that operation or out of the gold operation, so yes, we are in a very sound financial position going forward. Well, everybody talks to me, find me a company with revenue, okay, investors, we have a company here with revenue, and you only have a $90 million market cap. What should we expect in this upcoming year for revenue? This is specifically with your gold project, right? Yes. Look, revenue and cash return should be about the same, even though the gold price has weakened a bit in the last month or so, we should come out around about the same, probably 100 million plus revenue, 25 million cash flow out of the business, so look, it's a great little business. It's ticking along nicely, underpins everything that we're doing, and has been funding all of the pre-construction work for Dubba, which is the most important thing. Of course, there's just about to say the most important thing for many of us, technology metal bugs and sustainability directed investors, is of course your Dubba Zirconia project. I noticed that you are expecting your environmental protection license and mining leases anticipated shortly. What's happening with that, and can you give us an update? Yeah, look, they're very close. These really are just bureaucratic processes. The main project approval we were given back in May from the state, and we had federal government environmental approval in August, so the two key things are done, these are just processes that we have to go through, the mining lease before we can actually start work on the ground, and the EPL, which enables us to start construction, so important steps but just bureaucratic steps, and we hope to see both of them before the end of the year. Before the end of this year? This year, correct, yes, we've been promised them by the end of the year. All right, so it sounds to me like this is a great opportunity for investors to pull up their sleeves over the holidays and really learn about alkane resources, and I'm sure your shareholders will be thrilled. Of course, Dubbo has Zirconium, Niobium, Itrium, and Rare Earths, and I noticed in your PowerPoint that you focused on Zirconium first, did you do that for a reason or is it because of the Chinese dominate 85 to 90% of the Zirconium market? It's a simple effect is that the bulk volume of what we produce is Zirconium, and hence the project name has always been the Dubbo Zirconium project, much to the chagrin of a lot of people, they'd like to give us a new name, and we actually had an internal competition in the staff to say, give us a new name, and I can't tell you what some of them are because they're not really for public use, but some interesting names, we will stick to the Dubbo Zirconium project for now, but yes, it's due to the largest volume of our output. Well, of course, Christopher Ecclestone and investor Intel loves your hafnium. I think you did a piece on Alcane's destiny is to dominate because of your hafnium deposit. Now, it's my understanding that this demand depends really on nuclear energy and the demand from the nuclear industry sector. Can you give us any comments on whether or not you see any recovery? I mean, a lot of us nuclear energy bugs up there keep waiting for the bottom, and we still seem to have not hit it yet. Actually, it's interesting that when I want to comment on the nuclear industry, because I'm really not competent to do that, but on hafnium, actually, the big driver for the last two years has been aerospace. The demand in aerospace is exponential, it's rapidly growing, and it's used in new special alloys for jet engines and turbines and those things, so it's actually a very high-demand interesting metal that has lots of applications, but right now really driven by aerospace. The nuclear component has been pretty flat, and that's the reason why two years ago the price for hafnium metal was about $400 a kilogram, today it's $1,500 a kilogram. That's all driven by aerospace, and we all know from past experience in the rare earth industry that those sorts of prices are not sustainable. That's what we're trying to sell ourselves to aerospace and other advanced industries is we can provide long-term secure supply of hafnium at a sensible price, at a sustainable price. Look at this prosium argument, for example, we saw the same thing with this prosium in magnets. The price went through the roof in 2011, and suddenly all of the companies ran around trying to find ways to engineer this prosium out of a permanent magnet, so what we're saying is with hafnium, don't do that, because we can provide you a long-term sustainable hafnium supply, and that's a big driver for us. Well, it is a big driver. I mean, you've had a lot of marketing and off-take agreements with a number of major companies. For those investors out there excited about what's about to happen here for Al-Qaing, can you give us kind of an overview about what you currently have in place? Yeah, it's actually the key things that are the niobium. We have an arrangement in place, or joint venture in place with TriBaco in Austria to produce ferro-niobium and market ferro-niobium. There's aconium marketing arrangement. It's very close to being finalised, and maybe hopefully we'll have that done earlier in the new year as well. On the rare earth, it's now dependent very much on where we go with our toll treatment, because we produce a separated rare earth concentrate, and what we do with that will depend on where our new markets are. Lots and lots of great discussions, but nothing signed just yet on rare earth off-take. Okay, well, what about the funding timeline? I hate to bring this up, but this is such a challenge in the resource market here this last year, but obviously you have some amazing partners and some large name industrial partners are going to help see you through. Can you comment on this? Yeah, well, the strategy has always been a combination. These sort of big projects are very difficult to finance in one source. And so we've always talked about strategic investment, and we believe that there are opportunities for us to bring in partners who have either interest in off-take or other long-term strategic requirements. And some of between 10% and 20% we believe we can sell there. And then the big driver is what we call export credit agencies, the ECAs, and these are effectively government banks that are there to promote industry in countries. And obviously the US has one, Canada has one, Australia has them. But we're largely talking to the European and Asian ECAs because they'll be very important to financing the project because you need that strategic component to convince financiers to put money in. So those two are the key drivers for us. And then the third one is normal commercial debt and then finally back to the equity market. But we hope that the equity market will be the last step in that process. And of course you have an amazing team. Can you talk to me just a little bit about the timetable that we should be anticipating here maybe over the next two quarters, obviously starting with the environmental protection license and mining lease? As I said, I'm very confident both of those will be done before the end of the year, so we can tick those out. I'm sure there's a Coney and the Marketing Sales Agreement will be done early in the new year. That'll be great. I'm sure we'll sign off on the Toll Treatment Agreement, maybe end of quarter one next year. And then the strategic and ECA type financing, I think you'll see come in stages sort of from middle of the year going forward towards the end of the year. So they are all staged over that time and it'd be lovely to sit here and say yes, we'll have the billion dollars in the bank by the end of the year. But I think it will be staged over a period of time, maybe 18 months. Well Ian, thank you so much for your update today. It's great to see you. Thanks Tracey, nice to talk to you again.


Welcome to another episode of Critical Conversations, where we discuss hot topic issues related to American Muslims and other targeted communities. Today we will talk about Islamberg, a Muslim enclave in upstate New York, which has been repeatedly targeted by anti-Muslim hate groups and individuals over the past few years. Islamberg was most recently in the news earlier this year when local authorities arrested four young men who were planning to attack the community with heavy weapons and explosives. Why is this community repeatedly being targeted? What does this case tell us about growing Islamophobia in this country? And what does it mean for domestic terrorism and hate crime laws in this country? And to discuss all of this, we are joined today by Tahira Ahmadabadood, who is an attorney and who has represented Islamberg in the past. Tahira, thank you so much for being here. You're welcome. Thank you for having me, Mehlika. Absolutely. So Tahira, before we get to exactly what happened, you have a personal connection with Islamberg. Yes. And so could you for us describe what that is and also tell us a little bit about the community, how it was founded, et cetera. Yes.  It's 45 miles southeast of Binghamton. So people who are familiar with Sunni Binghamton will know generally that that's the major city outside of the very rural community. The communities in towns that are called Hancock and Deposit because they're small towns and sometimes there's some overlap between what, of course, is the boundaries. And the community was established in 1984 by Muslims who had converted from Christianity most of them to Islam and really sought to leave the inner cities and to save their kids from some of the blight that occurs in poverty-stricken communities, particularly in the 80s. It was really rampant in Brooklyn. And I lived in Brooklyn at that time with my parents who also had converted. So in 1984, I was whatever, nine years old or whatever age that I was. And as the families left the inner city, some had purchased property in New York and that's the community that is known as Islamberg and others moved to other parts of the country that just were safer. And so one of the goals, though, it's a really interesting, and being an adult, looking back now I see it as an interesting social occurrence which is that when you take people like poor African Americans from systems like you were facing in that community and you put them in a world where they're really fending for themselves, they're engaging in husbandry, they're learning how to live in a rural community, they're learning to be self-sufficient, you increase the odds of success in future generations, they're overall more happy and independent and now 30, 40 years later, you get to reap the benefit of that sort of a move. And it was a good move in the community, I was really happy and I visit often for aid celebrations, weddings, and family and friends and the life that was there. And the other thing I want to just describe about Islamberg is that I think of it as a rural subdivision, you know how you go into suburbs and there are these houses that are built. Islamberg is no different, you're driving through a rural community in a mountain and then literally you get to a point where you drive down the hill and there is the enclave. So it's not really as mysterious or as isolated as some of the online trolls will have you believe, it is there in the heart of this rural district. Right, and it's made up of a lot of doctors and engineers and people who are very well integrated in the surrounding communities. And what would you say about their relations with surrounding communities? They're really wonderful and again when we look at the generation, so I'm 45, my parents and their colleagues in their generations are the ones who made the investment and began that way of living. So it's my generation who have gone to school and become the engineers, become the doctors and nurse practitioners and they are very integrated because most of them work off of the property. The children attend college and universities off of the property. The younger kids play sports like football is a big thing and soccer. And so there's a very good relationship between the larger communities of Hancock and Deposit and the community that resides on Islamberg. And so for the people that know the area, they know that there's no problem, there's no separation between the two and that there's good and loving relationships between the Muslims who live there and the non-Muslims and other neighbors who live off of the property and in Deposit and Hancock. Sure, absolutely. And so when did you actually hear about this most recent plot to attack Islamberg? It's almost as if it becomes sort of a regular thing where the local law enforcement will call the administrators of the land, of the property, of the community and say, and we have a good relationship with members of law enforcement. And of course, I don't live on the property, I don't live in New York, but my proximity in terms of growing up close to the community and serving as a lawyer to get us through some really rough patches where we've been on the receiving end of some serious threats has me. There's no separation, it's up close and personal. And what happened was similar, the local law enforcement had called some of the administrators and said this is what's happened. We understand that some students at a school of state New York about three hours away was planning to attack the community, that the plan was real and that had they ventured to actually take steps to do it, there would have been loss of life. So it was not just kids sitting talking. It was a plan that had been carefully prepared and they did not mince words, law enforcement did not mince their words when they said if these, some of them were not students, some of them were young adults, had they gotten close enough, people would have died. Wow. And so that's how we found out, probably about a week or so before the news actually became public. Wow, and how did the Islamic community respond to that? How did you have more security measures in place as a result? And normally, because this is not the first time that it's been targeted. That's right. So I mean, how is the community doing now? So with the community, I think it's safe to say that there is always a form of shock and maybe that shock leads to maybe a numbness and a questioning of why is this happening, why does this continue to happen, how real a threat is it? Because as you're trying to fill your way through this idea that your home is constantly being targeted and that law enforcement is constantly watching and surveilling for threats to it, it just becomes a different way of functioning. So the community, of course, was shocked. They were interested. They were curious and did take security measures just making sure that people were around towards the front of the property. The main entrance and egress and to make sure that law enforcement made a more visible presence. The other thing is, again, this is not a very sophisticated style of living. And it's winter and the roads, particularly on a slumber, are difficult to navigate. It is icy. It is snowy. And so where are you going?  So where are you going? So the community is just juggling those realities of rural living and now also preparing for outsiders to do what? Oh, my goodness. And so as we've mentioned before, I mean, this is not the first time that Islamberg has been targeted. In 2015, there was a Tennessee man, Robert Dogard, who was trying to recruit a militia to attack the community with lots of weaponry. And thank goodness the plan was intercepted by the FBI. And so could you talk a little bit about why this particular community? Why does it repeatedly come under attack? You know what I think happens in going back to why the community was even established and the reality, and again, being an adult and being able to have an area of perspective and a lens that allows me to see things in a much clearer way. I think what we're experiencing is a combination of racism, anti-Muslim sentiment, xenophobia, and the reality is that when predominantly African-American people, working class and poor, remove themselves from the systems and the structures that control them, i.e. living in the inner city at that point, and they start fresh, I think America doesn't know what to do with that. And then when you have people who are cynical and already inclined to lean towards hatred and bigotry, not only do they not know what to do with it, they do not accept it. And so what you have is lots of people on social media, particularly those who fund hate, which is a real thing, just pokes and pokes and pokes at the community and advances these lies and these myths, and it radicalizes people into thinking that there is a threat in this community that does not exist. So my colleague, Tahira Clark, who also represents, yeah, we have the same first name, also represents Islamberg. After the plot was revealed and law enforcement made their initial arrest, she did a press conference with other members of leaders in the community, and she warned families, she warned American families to pay very close attention to what their children are doing on social media because they are becoming radicalized by right-wing hatred. And so now you have these people, four, five, six young men, some of them high schoolers, one of them a 16-year-old, whose life is now forever changed because he sat on his computer or in communication with people who were radicalized by hate. So you have two sets of victims. You have this community, and now you have the offenders, and their lives will never, ever be the same. And it's not unlike what happened in Columbine. It's not unlike what happened in Columbine. Absolutely.  Again, within these, you know, right-wing sort of groups and stuff. And a lot of people believe, people who frequent these sites, that this is a terrorist camp, and that is why, and I mean, the four young men that you just alluded to had never even visited that place, had never even been anywhere close to it. And there were so many people in the surrounding communities, in the larger community who said, who came out and sort of gave their quotes and said, if only they had just come and asked us, we would have told them how wonderful a community this is and how lovely our relationships are with them. And so there's just so much of that socialization going on, on social media. And we really also have to shine a light on the fact that some of that socialization is funded. It is not organic. It is manufactured and organized. There was a big report, I don't know if you had a chance to see it on sludge.com, they're an online news outfit. They had done some investigative journalism that resulted in the fact that some of your larger charitable foundations actually give cover to donors who want to fund organizations that effectuate hate. And it's really wild, but the investigation revealed that there are 34 organizations on the Southern Poverty Law Center's hate list that received $11 million from these large American foundations. Unbelievable. And a lot of these also have very strong connections with mainstream media outlets as well. And they're able to sort of perpetuate some of those fears as well. And I think that was, I think the first organization that perhaps came out with a very comprehensive report was the Center for American Progress when they came out with fear ink. And you talked about this Islamophobia industry that perpetuates these fears. And that's a real thing.  It's harming not only Muslims of those who are perceived to be Muslims, but also regular young people in this country who do not understand what they are seeing and cannot process and understand that propaganda has taken over lots of the airways. Absolutely. And we'll get back to this point as well about how you count some of this. And so right now, Robert Dogard, again, the person from Tennessee, he is serving a 20-year sentence, but his case is currently under appeal. So what is his current status of incarceration? Right. So he was definitely convicted by a jury. And of all the charges that the US attorney had pursued against him was considered a major victory. He is currently incarcerated in one of the federal penitentiaries. I think he's 69. So because of his age and health issues, he may be at a hospital-based facility. Why am I saying all of those things? Because in his appeal, he essentially asserts that he was offered a deal, a plead bargain, very early after the charges had entered. And the judge rejected the plea and really forced the US attorney's hand towards litigation and towards prosecution. And so now with the appellate court reviewing it, there's a question about whether or not the judge was right to reject the plea deal. And if the judge was incorrect to accept it, then one of the options is that he gets to accept it sort of in retrospect. And that plea deal, if my memory serves me correctly, he may be released. Wow. Yeah. And did he ever express any remorse during his trial? No. And he actually had an opportunity to address the court prior to being sentenced. And he didn't. He sort of justified in a really weird way what he thought was happening and who he thought he was conspiring with. But there was never really any heartfelt apology. And again, what he was planning to do, he was caught on and intercepted saying things like he would kill children with machetes. And so this would have been a terrorist act on American soil upstate New York at the hands of a guy. Wow. And you've been, I mean, and if he is potentially released, I mean, that will be, again, re-traumatizing for the community again. And so I can't imagine what the community will go through if that happens. You have been frustrated by the fact that a lot of these people, whether Robert Dogard or Bowers, the person who attacked the Tree of Life synagogue in Pittsburgh, or Dylan Roof, who attacked worshippers in Charleston, that they have not been charged on domestic terrorism charges and instead have been charged for hate crimes. And so why is that? I mean, how would you define domestic terrorism?  So why is there this reluctance to charge these people with domestic terrorism? It's not a secret that there is a double standard. There is a double standard. The other thing that's not really a secret, and again, being a lawyer and dealing with the issue at hand and then examining the policies that prosecute these issues and potentially prevent some of these issues, I've learned a lot. So for example, under the United States Code, there isn't actually a domestic terror crime. There is no teeth in the definition of domestic terrorism under the US Code. It just doesn't exist. And so a person could be charged with all sorts of things that are domestic terror related or attempted murder and other things. But that title and the sort of emotion that it evokes when you hear that somebody has been charged with domestic terror will not occur unless the person is found to have had some sort of influence or involvement with an international organization. Nice, a foreign agency. A foreign agency. So by statute, under the federal code, they can be charged with a lot of stuff. But you will not hear domestic terrorism being one of them. You'll hear other words like domestic terror related. The interesting thing is that for this most recent attack in a threatened attack of Islamberg from the young men in Greece, New York three hours away, is that New York State actually does have a terrorism charge, which when we were looking at it, we think it was sort of inspired by 9-11. So New York State rewrote a lot of its criminal code. And so these young men were indicted yesterday or earlier in the week with terrorism, with conspiracy to commit terror, with having explosive devices. And so now people sit up a little straighter when you see that this has been taken seriously by what I think are really, really strong penal codes in the state of New York. Well, that's really excellent.  What is the difference in terms of the sentence saying or how it's prosecuted? And I could just sort of tell that. Yes, so every state is a little different. After the massacre at the hands of Dylan Roof, there was some back and forth because the state of South Carolina didn't have a hate crime statute. It didn't adopt in its state law a hate crime statute. And so people were really upset and was afraid that he wouldn't be punished and wouldn't receive the full force of the law as such an outrageous massacre of worshipers should. And there was a lot of pressure for the Obama administration's Department of Justice to take over that litigation just because of some of those factors and political and people were very angry. So every state has its own set of laws around what is a hate crime and again the issues of terrorism and how we define it. Generally speaking, hate crime is a crime that is committed on someone because of their identity in some form of a marginalized class. And as you indicated earlier, terrorism has to do generally. It's worded as violence or threats of violence towards a civilian population with a political agenda determined to make a political statement to the government. So and the difference in how it's sentenced and how they're enhanced, I don't know because they do vary but they are enhancers to the underlying crime that these people would have done, whether that's murder, whether that's attempted murder, conspiracy, those other charges are enhancements to those underlying primary crimes. Sure, and is this a sort of setting of precedent? So is this the first time that this has happened that they're being sort of charged with something so, I mean, not those four individuals, but the fact that the Department of Justice is bringing those charges to bear? So right now, with the Greece, New York case, it's only pending in New York state. So the Department of Justice hasn't taken any jurisdiction yet, but some of the early conversations that we're having say that they may. And of course, the Department of Justice is in a state of transition right now with its own leadership. And so what will happen or what will come of that remains to be seen, but New York state is on top of it. And in fact, Governor Cuomo had reached out to the community as well and had ordered his police force to be more visible and present around the community of Islamberg, especially in the days following it. So I'm interested to watch how New York sort of unpacks the prosecution of these individuals. And this won't be the first time that New York has used these sorts of charges. And in fact, I was looking at an article earlier today where another sort of white nationalist was charged. And I believe that he was charged with the New York state terrorism statute.  So I think, and I need to just brush up on that, but I'm pretty certain he also was charged with something along these lines by New York state. Wow, so that is encouraging development. Okay, so in 2017, the FBI came out with a report saying that over the past 16 years, most of the violent extremist sort of attacks that took place here in the US were carried out by white supremacist groups, right? And yet 85% of the countering violent extremism budget under this administration goes to target black lives matter activists, Muslims, LGBTQ activists, immigrant justice activists. Environmental justice. Justice activists. So there's that. The administration's sort of priority setting. But then also, when we sort of look at other polls that are happening of sort of mainstream Americans, there was I think a poll that the New America Foundation carried out, I believe last year again, or maybe two years ago, which found that about 56% of Americans, regular Americans are concerned, very concerned about growing extremism within the Muslim community here in the US. So there is that general level of distrust as well between Muslims and non-Muslim Americans. So we've been talking about this a little bit earlier as well, but then how would you say that we can counter this?  But that's not making the front page of the newspapers. People aren't talking about it. There aren't big exposés. And in fact, I was listening to a podcast recently about how under President Obama's administration, while the increase of white-wing violence was increasing, particularly because he was a black man. As they started to investigate this and look into it, it made a lot of people in administration very uncomfortable. And so they walked back the resources that they had invested into investigating this occurrence. But it is the threat. And if the American people don't have an appetite to understand that the threat could look like your kid, your uncle, or your nephew, then we are doing ourselves a disservice. Because now we're here and we're fighting the wrong fight and we're facing the wrong threat. So how do we do it? I think it takes a multi-level approach. It means that we have to really push our media for accountability around the truth and around advancing the narrative that is accurate and necessary for the public to consume. That is very, very important. And I think right now the Overton window has changed so much in our world and in our country that we're all talking about everything without much filter anymore. And in some regards, that's a good thing because it means that while I knew and you knew that the greatest threat for the past 16 years was white nationalism, we would never talk about that publicly three or four years ago, but that now it is okay because we realize that we're in the space in our country where if we don't, then life as we know it may end and we may never recover from it. So we have to push the conversation, talk about it. We have to be realistic about what these threats are. And those who like Muslims, like those who identify as Muslims, like immigrants also have to be very visible in their own existence in the country and the community and society so that like the community of Islamberg, when someone says, well, what is the story? I need to address this myth. Others can do their validation and bidding for them, which speaks volumes and speaks louder than you just saying it for yourself. It's work. Community building is work. Loving and taking care of your neighbors is great work. This is not, we are in 2019, whether you know who lives next door to you, whether you're going and borrowing a cup of sugar, that doesn't necessarily exist the way it might have existed 40 or 50 years ago. Social capital has eroded. It really has. But we have to bring it back because we are really all we have and we're in a crisis right now in this country without it. And I mean, you're right.  They're also against blacks. They're also against the LGBTQ community. And so these marginalized groups have to come together in order to be able to move their voices louder and amplify them more. One of the greatest, I think, opportunities that exist for us is the ability to organize even on an interfaith basis because it is an anti-religious sentiment that exists. Dillon Roof attacked black worshipers. The Bowers guy attacked Jewish worshipers. These other attacks against Muslim community, it's a, there's an attack on religion. And unless we unite as a religious community wherever we can, we're not taking advantage of our strength and our numbers and our ability to fight back against some of that hate. Right, and the idea is to keep working and keep going. Keep working. Absolutely. Well, I wish we could talk for more, but we've run out of time, Tahira. Thank you so much for your expertise and insights. And we're just hoping that, you know, the Islamic community can stay safe and will continue to be protected. Well, thank you very much. I appreciate it. Thank you so much. And until next week, this is your host, Mahleka Samdani.


Hi everyone, thanks Brent for the intro. I'm Prathish and Here to present our work on decentralized anonymous micro payments as Brent said this is joint work with my advisor Alessandro Matt Jin Cheng Peihan and Ian Okay So digital payments are a solved problem, right the customer sends along some money to the merchant The merchant keeps an amount for themselves Sends along a tiny bit to the payment network and everybody's happy But this model breaks down when the transaction amount is much smaller than the transaction fee itself Supporting such small payments is important for a lot of applications. However, for example consider that When I visit a web page, I don't want any ads So I give the website owner some money and get back at free web page since most ad impressions and clicks are worth Fractions of a cent what I want to pay is fractions of a cent But since transaction fees are often on the order of tens of cents, this doesn't make any sense There's a risk history and cryptography of constructing such micro payment schemes and lots of esteemed names have worked on this problem But we still don't have any widespread deployments that involve multiple merchants and many many customers. I Think a potential reason for this is that all these prior schemes they require a central mediator to instantiate the micro payments And this is an issue because now your customer and merchant need to have Complex financial relations with this middleman and they have to meet regulations and many other reasons So let's look at what's happening in the decentralized world here the cryptocurrency Bitcoin Has seen widespread adoption across the globe and I think one reason for this is that to transfer money to somebody I don't need to even have met them before I don't need to establish relations with them Don't have to meet any regulations. I just signed a message and put it on some global ledger in more detail Let's say Alice wants to send to Bob say four point three dollars All she does is sign this message from a to b amount four point three and Put the message on the signature on a global ledger that's maintained by the nodes in the Bitcoin network so can we use Bitcoin for micro payments directly and The answer is not quite because you run into a few problems The first is that even the bitcoins decentralized and there's no actual middleman taking a cut You still suffer from the issue of high transaction fees These are roughly on the order of credit card network transaction fees today and it's projected that as Bitcoin tries to scale These fees will only get higher The second issue is that each transaction takes a long time to confirm in Bitcoin on the order of ten minutes and The recommendation is actually to wait a more like an hour For your transaction to be confirmed This is particularly bad for micro payment applications because nobody wants to wait an hour for their web page to load a Third issue is from like a privacy perspective Where the issue is that Bitcoin doesn't offer any strong anonymity guarantees in particular the sender receiver and Transaction amount are all public for every transaction This has two consequences The first is that you don't have fungibility and this has nothing to do with mushrooms but just means that Even if I have two coins of the same denomination, they might not be treated equally depending on their transaction history The second or more obvious issue is that of privacy and this is particularly bad for micro payment applications For instance, you don't want your browser history to be available for everybody in the world to see on this global ledger So two separate works have dealt with these two classes of problems The first is a work by passing a lot at CCS a couple of years ago And they use the technique of probabilistic payments, which we'll dive into later to implement micro payments for Bitcoin These this technique solves both the first two problems by amortizing a transaction fee and confirmation time across Many payments which don't hit the ledger To solve the problem of anonymity Zero cash was proposed at Oakland roughly three years ago And this is an anonymous Bitcoin like currency which hides all the information about the sender receiver and Transaction amount for every transaction. So the ledger looks opaque to some outside observer Okay So what we want in some sense is micro payments that combine these two worlds In more detail, we want micro payments that are decentralized for the ease of deployment property Anonymous for fungibility and privacy reasons and finally offline for the fast response that is useful for micro payment applications What we achieve is a definition of a crypto primitive that has these properties via via the idle functionality a Construction for this definition under standard cryptographic assumptions like nizzix and commitment schemes and To realize this construction we use two primary tools The first is a fractional message transfer protocol, which is in some sense an analog of OT specialized to our setting prior constructions of FMT schemes bundle under this umbrella called translucent crypto and As we'll see later in our setting we can't prevent all double spending trip graphically So we have to rely on the rationality of The agents in the system and so we provide a tight characterization of double spending Okay So the main building block of both our construction and the passenger lot Paper is that of probabilistic payments in this model when Alice wants to pay Bob a cent She doesn't give him a cent for every transaction, but what she does is she takes a dollar and then interacts with Bob in such a way that Most of the time She gets to keep the dollar and no transaction occurs. So she doesn't have to talk to the ledger or payment network And we call this a null payment But like one out of every hundred trials Bob gets a dollar So a transaction occurs either via the ledger or some payment network and we call this a macro payment Why do probabilistic payments lead to micro payments? the idea is that These 99 null payments they amortize the transaction fee and the cost of using the payment network so your transaction fee and Your confirmation time are both amortized over your 99 null payments, okay So let's dive in a bit more to see how passenger lot use Implement probabilistic payments over Bitcoin the key idea is to take a coin flipping protocol and combine that with Bitcoin in somewhere in more detail When Alice and Bob wanted transact what Alice does is she escrow some value V on the ledger They engage in a coin flipping protocol if Alice wins she gets to reuse the escrow for further Trials of this for the executions of this protocol But but if Bob wins, it's a macro payment and he gets to redeem the value and keep it for himself The key thing to note here is that Alice escrow is the value only once and she gets to reuse this escrow again And again until a macro payment occurs and Bob redeems it. So this is where the amortization property comes from Okay, so your cash is a bit more Involved but at the high level the idea is to use zero knowledge proofs And combine them a bit coin to hide information about transactions In more detail now that zero cash leiser consists not of messages and signatures but serial numbers of spent coins commitment to new coins and Zero knowledge proofs that link the two So let's say Alice owns a coin C1 that she received in some past transaction Its commitment appears on the ledger as you can see cm1 and she wants to transfer the value in this coin to Bob What she does is she takes her secret key and combines it with the coin to generate the serial number for C1 Next she takes Bob's public key and uses that to derive a commitment for a new coin C3 and corresponding commitment cm3 Finally she creates a zero knowledge proof that asserts that the first two steps that performed correctly and that The value in the input and output is a maintain. They're not having arbitrary inflation Okay, she publishes a Transaction consisting of the old serial number the new coins commitment and the proof to the ledger The reason why this gives any security is that? Only Alice can derive the serial number for her coin Anybody else looking at the ledger can't link cm1 with SN1 because they don't have Alice's secret key Similarly, that's the reason why Alice can't spend Bob's coin that she creates for him Because she doesn't know his secret key and therefore can't generate his serial number. Okay So the naive idea would be to just take the passenger last protocol and replace Bitcoin with zero cash So now Alice escrow is her value not in a Bitcoin transaction, but in a zero cash transaction They engage in the coin flip as before if Alice wins she keeps the escrow, but if Bob wins he gets to redeem it This doesn't work for two ish for two reasons You don't have anonymity and the customer can double-spend So let's dive into each issue in the first case What we see is that when Alice She since she wants to amortize the transaction fees. She has to reuse the escrow every time But Bob wants to be convinced that whenever Alice is transacting with him She's using a valid escrow so he needs to learn in some sense the serial number of the escrow coin But this creates an issue because let's say Alice transacts with Bob. It's a null payment, but Bob still learns the serial number of the coin Next she goes to say some of the merchant Carol interacts with her and this time it's a macro payment So Carol gets the serial number and is able to append the transaction to the ledger Bob now sees the ledger and sees oh a coin that somebody tried to use with me has now been spent This so that Alice doesn't have the strong guarantee of anonymity that we had in zero cash There are other attacks which lead to even further loss of privacy. So this this naive idea doesn't quite work What we do to solve this is to make the serial number translucent So what this means is that now Alice instead of Creating a transaction and appending to the ledger just commits to it and sends along the commitment and Approved that the commitment was formed correctly and the transaction inside is valid at the time of creation Then they engage in some probabilistic opening protocol that opens the commitment only with some fixed probability What we want is that with probability one minus P the commitment remains completely hidden to Bob, but with probability P He's able to open it and get out the transaction and redeem it To achieve this we create this fractional message transfer protocol which has two properties fractional hiding ensures that with probability one minus P Bob learns nothing about what's inside the message and Fractional binding ensures that Alice cannot bias the probability that the commitment is opened it always has to be P So in some sense what Alice wants is exactly Fractional hiding and what Bob wants is exact is exactly fractional binding Okay, we realize the construction of this I'm using under the assumption of DDH and then the random oracle model Okay So that solves the issue of malicious merchants that want to de-anonymize customers, but what about malicious customers? so let's say we have a malicious Alice and The attack that she can perform is she can use the same coin with multiple merchants at the same time so let's say she's transacting with these four merchants and Two of them became my macro payments That's a Carol gets her transaction onto the ledger first and Bob being a bit slow Looses out so now Bob doesn't have can't redeem the Transaction the macro payment and Alice has gained utility at his expense In our setting there's no way to prevent this double-spending attack cryptographically because there's no global immediate consensus among The merchants about what is and isn't a valid payment at any given time Consensus only comes along at these 10 minute blocks in Bitcoin Whereas here we want this immediate confirmation, so we can't wait for these 10 minutes So to solve this we disincentivize customers from cheating by having them penalized if they cheat The idea is that now before any transactions Alice creates a separate deposit coin and this is put on the ledger And then she wants to interact with Bob What she does is commits not only to the transaction as before but also a secret share of the deposits serial number The proof now also proves that the secret shares formed correctly and the deposit is valid at the time of the transaction They do the probabilistic opening as before and if Bob is able to open the commitment He gets the transaction and also the secret share and he posts both of these to the ledger Why does this help us and The idea is pretty simple. Let's say Alice is transacting with Bob. It's a macro payment He gets the transaction and the secret share and he posted to the ledger Let's say now that Alice cheats and she's interacting with either Bob or perhaps with another merchant and Becomes a macro payment again. This other merchant now gets a different secret share of the serial number and is able to recover this Of the recover the serial number and append it to the ledger at this point Alice's deposit is revoked and she has some negative utility Okay, so so far we've used probabilistic opening and deposits to prevent linkability and double spending But are we done and the answer is not quite we're still lacking in terms of both functionality and the security analysis What happens when the customer they're saying, okay, I'm done with the system. I want to leave it Can they withdraw the deposit? Ideally you want them to be able to withdraw the deposit because otherwise the deposit money is some sunk cost for them And they're incentivized to constantly keep cheating to recover as much as they can But if you allow them to recover the deposit what they can do is withdraw it just before the deposit is revoked and This is clear an issue because it's defeated the entire purpose of asking We run into similar issues when dealing with merchant or boats and they try to frame the customer for double spending There's some similar issues arise So this is from a functionality perspective But we haven't even talked about What the value of the deposit should be if it's unbounded then Again, our system is completely unusable because nobody will sign up to do to for this mic micropayment scheme So we solve both of these issues We extend zero cash with some extra features to allow this this withdrawal deposit feature And we provide a tight economic analysis of how much A customer can gain by double spending and The main idea is that basically the deposit value has to be equal to the financial activity that you want to conduct in the system Okay, so to conclude The key idea from our paper is that we used this translucent crypto plus game theory to construct decentralized anonymous micropayments Our game theoretic analysis is applicable not only to our setting but also To others for example the pass and shut out paper They had they had the idea of deposits, but they didn't specify what the value should be it's also applicable to probabilistic smart contracts and application suggested by passing a lot and Finally as I said before we extended the interface of zero cash to be more expressive and programmable and we're already able to use this Added programmability and some new applications that are working on right now Thank you any questions So could you prove from a game theoretical point of view that the best strategy is to be honest? Yeah, I think so in our case The idea is that when you double spend you lose all your money Whatever money that you could have gained from double spending so it makes no sense to double spend So what are the pros and cons versus payment channels such as lightning network? So I think in payment channels you are limited to Specifically the merchants that are in your network right and also I think there was this paper bolt By Ian and Matt that constructed these anonymous female channels and they had not the perfect anonymity that we gain in in our setting There's basically no link between Even these now payments between too much consecutive now payments between the same customer and the same merchant Yeah, so I think the paper has and then a comparison with payment channels and I think we have stronger anonymity guarantees I think there's a question So how do you prevent? The user from giving the same secret share to all the merchants So we have waited to drive the secret share using some like the public key of the Some cycle we have a way to make it unique to per merchant and per instance of the protocol too. Yeah There's a question And some per instance specific randomness I have a question Can you tell me if I understand your solution correctly? And I think that the the payment channel used in lighting network is like kind of a One-to-one channel. I think your solution once the deposit is done. I think it's a one-to-old Yeah, you can use the deposit once and then you can transact with However many merchants that deposit value supports It's not limited to say ten merchants. You can do a Specific set of ten merchants. You can transact with any set of ten merchants and another question is that Do you think this probability is the payment is realistic in real applications because The entire protocol is like not very practical at the moment, but I Think I mean I don't think there's been deployments of probabilistic payments before directly, but I think if you adjusted for certain applications, it might be useful


What's going on everyone Sam here with Layton sports cards We are ripping one box of 2022 Panini select draft picks football first off the line For cash H. So cash is first break here Layton. So good luck buddy.  I don't know with the right sleeve or no Good Jaylin Tolbert on the auto going to well, that's a cowboy. Derek Henry on the field level to 199 Polestar Tom Brady Aaron Rodgers silver my home's another silver braid Barry Sanders David a job of miles here Once you're out of Portland. Yeah, that's my my dad had a client out in Portland when he was working and he always said that It was like very scenic outside of that outside of Portland That is Aiden Hutchinson 22 out of 30 on the first off the line exclusive auto congrats cash Rob Gronkowski Debo Samuel TJ or JJ Watt Drake London And base Taste of Hill that's kind of cool first off the line exclusive 15 out of 26 got Cameron dicker dicker the kicker dicker for Texas he's not I think he might still be in college. I don't know That is TJ Watt Evan Neal on the Polestar got Eric Dickerson silver Garrett Wilson league Willis rookie CD Land Carl Aftis and Cronk. That'll do it for your break there cash. Congrats on the hits man. We'll get them right out Yeah, thanks, buddy


Today we are going to look at ReactPoters, a quick show of hands so that I can go to the audience. How many of you already know about Poters? Yeah, Poters? Okay. And how many of you have like tried out hands on there? Like either in Russian or not? Okay, great. So, this is good. Right now, nobody knows. I kind of believe it. So, cool. So, ReactPoters is actually a new feature that has come up in React 16. Even before it came up in React 16, there was a lot of work going on in the community for that. There was a lot of need for it. And what we do today is that we have some code. We'll run the code. We'll see what the need is and how ReactPoters kind of ourselves is. And more importantly than that, there were certain concerns when ReactPoters came, whether it is a good practice to use Poters or not. There was a lot of debate around that. And finally, it emerged out that using Poters actually makes you a good developer. So, let's see how that is. Okay, now I don't know how to move this slide. So, if I go to slideshow, right? So, what is ReactPoters? I'm not really going to slideshow because I have to switch between code and here. So, let's see here. Okay. One example first. And then let's see what exactly is the problem that you are trying to solve. And then we'll get into the definition of Poters. So, I have created some sample applications, very simple React applications. Created using the CLI. And this output is available in GitHub. I'll share the link with you. And you can take a look at it later. The first one and then run it. So, one day my manager came to be and he said, you know, I want you to create a login page for our application. And I thought that's like, you know, a Chutka command. So, I'll just create one login form and I'll show it to you. And he said I want email address, password and things like that. So, I said, yeah, this is what, you know, we have been doing for last 10 years. So, it's not a very big deal. So, let's see if the login page comes up. Oh, yeah. It just comes up. Well, you cannot see the gray part, right? But just as you can, it's a good gray thing. Just for now, is there a change that, let's say, in dark? This is fine, right? Yeah. So, this was how our login box looked like. And I was like very happy. And my app result time was coming up. I was like, you know, I got really impressed. And I said that, you know, you just enter your email address like this and say login, it will just do the thing. And he said, what about login? I said, that is not my content. That is, the backend team will take care of it. I'm going to tell you. I said it is there for you to see. So, let's take a quick look at this code. Just to set the context, right? We have a simple React app. It's an index.html which only has a root here. You can ever see the code here, right? This one just says root. You have the index.js, which is the root of our application. When we say, sorry, just one second. Is the font fine? Yeah. The font says. You can see at the back, right? Yes. Okay. So, we say that, okay, just rendered this application here and a rendered root. The not my application looked like. It requested, it is just one more component as login over here. It looks like this. It's just an email button or that password thing and all. And there is no functionality. It's the simple React application that we have. And I was very happy I read from back. And then, when I written back the next morning, he said, you know what, most of the good sites, they don't show login box like this. They have a login button in the header and when you click on that, you have to show the login box from there. You just don't show your login panel just like that in the home page. So, I said, okay, this will also be fine. So, I just reflected my code and I said, okay, now my app.js, it will look like this. So, it will have a header and a main. In main, I just say, this is awesome home page. And in my header, I put up a login functionality. So, what I do here is, here now, I'm just showing it in app. This is my render method, login button. On click of that, there is going to be some handler which is going to set a state to show the login box or to hide it. And this particular login, it has a show property wherein I'm passing my state and this state is actually manipulated using these methods of show login or cancel login governed by the button. And then there are some stylings over here. I'll just again change that back to dark gray, I think. So, I was very happy with this and then I said, okay, now let's run this one. This is the winter is coming theme of VS code. Okay, so now, okay, this is not showing you. Okay, so this is how my website looks like. This white area below is the main page that we can forget. The green area, I purposefully put it as green so that we can differentiate that. That is my header. Normally, headers are not that big, but just one hour per person. It shows up in the projector. So, now I said, okay, I'll click on the login button and my login dialog should just show up here. I just click on that. So, but now I see, okay, it did show up, but what about the rest of the part? It's just the half of it and the remaining is cut out from there. And that really happened because if I look at my header, if I inspect this scan, I see that there is overflow hidden property over here. And this is a very common problem that a lot of us face, like either in the header or in the site bar, you always want that, okay, this is the area of the parent. None of the child should actually come out from there. Like, you know, this is the restricted area to show any particular deal. And this is the kind of a problem that affects, but let's see how we were actually trying to fix this one early on. The moment I see this, how will you fix it? Yeah, so the thing is, you apply any kind of CSS to this guy, it will not really come out because the parent says over and equal to hidden, right? So you apply any position, it will not really work. So another way is you don't keep it as a child of the header. You say that, okay, now my login box, it will be totally out of my header. And then because it is at the root level of the DOM, it can just show over any of the DOM element. So how we will do that is, we have to not come to the quotas, we are just trying to find a solution for my freedom. So I am going to go back to the third solution. Now, okay, before we look at the code, let's look at what the code is in the solution. So now if I look at my app, the login component over here. So earlier the login component, which was sitting inside header, which was logically correct for me, right? Because I wanted my entire login functionality to be inside my header. But now it says that, okay, now I will have to really sit outside. Before we get into this, let's take a quick look at why the earlier one was a good logical solution for us. Can you see this here? This green box is our header, right? There is a login button and there is a login box over here. How we were showing the login dialog was using a state called as show login, right? Over here. And that is why it was a logical solution for us to put this component inside the header component because now this button and this component, they can kind of share some information using a parent state. Either this is pre-historical in pre-reader's area. So imagine that parent is kind of controlling the state between them. Nowadays we have better state management solutions to this one. Now, let's see if I have to move this out of here. What I'm trying to do now is something like this. I say that, okay, my login button remains into my header area, okay? Like here. This is my main page area. I just put it small. You can see the background, but this much is my login component. Now, if my login button has to tell this guy that, you know, you show what you write, how will it do it? The moment I click on this login button, there will be a show state in my header. This will be set to true. The moment this header gets to know that, okay, this guy is set to true, he will set another status true to his parent, which is my app. Now, the moment this app gets to know that, okay, this is happening. This guy is listening for change events to this state. He will keep figuring out that, okay, so login is true, so I should show. Similarly, the moment I click on the cancel button over here, it will be set to false. This will be set to false, and like everybody will know that the login button is not being shown. The login dialog. And this is the solution that we have currently. If I click on half of it, is there anything? This always happens. Whenever you try to do something good. Okay, let's see. I think I'm still in the second solution area. Okay, so by the time this is running, just run over to the code. This is my header. This is my main. And I said that, okay, my login also is now sitting outside. So the same data flow that I showed you. Header has a login button, which is now coming out here. And now there is this show login box over here at the app level, which has this method for that show login. So now basically your data is moving from one component to its parent to its parent, and then coming to its side to its side. So simply to simply, communication is not really possible. It has to go up the hierarchy and then down the hierarchy. But this is a working solution. So I'm still like, my manager won't really get to know what all this means. He wanted a box, and he's getting a box here now. So now if I look at the inspector, he'll measure this guy. And so this is my login box. So now I click on this login button. And it shows up my login box very well. So now I can move around this entirely anywhere into the page. Because it is sitting at a root level. It doesn't really matter where it is. So now we have a working solution. And this is how we have been working actually. But is this really clean for us? The problem that we'll have is other than my application logic, like my application complexity keeps growing, these kinds of situations are going to be difficult for me for the maintenance of the product. I cannot have one component talking to another one through its parent, through its parent, and then side to side there. So the solution that React Portal says is when this guy wants to show something like this login box, somewhere else in the div, like in this case we wanted to show it in the root, not under the header. Logically, this guy should still be a child of header because that is how we wanted it to be. We wanted login box to be a child of header so that all the data between the button and this box remains under the header. But physically, like presentation wise, I want this one to be displayed somewhere else. And this is the concept of Portal where if they say that you want to show a component, you tell us, you want to show the component and we will show it over there. Imagine it like those movies where recently there was this Superman, Thor movie was there, right? So they open a portal and they can go from anywhere to anywhere. It's like that. Also logic is over there, but it can just appear anywhere, like that. So let's look at the code for how Portal really solves our problem and we extend some time into this code to understand what Portal is doing. The problem is clear, right? Everybody is like, what is the problem they are trying to solve? Website wise, let me look at this website. Now this is the new Portal's code. I will look at the code, how it is doing. Now when I click on login, this is few showing up here. And everything is fine. It's the exact same representation as it was before. Now, but let's look at it from the code side. So now when I look at my app, now you see there is a header, there is a main, but there is no more a login component over here. But what we have done here is we have opened a portal. Right, not a portal, sorry. We have just kept a deep over here, which we are saying that this is the kind of a placeholder where we would want to show my login dialog. So we have just kept a deep, like a placeholder deep, like a container deep over here. And now let's go back to our header component and here you will see that it is back to where it was before. So you have a login button and now your login component is actually inside my header again. So logically again these guys are sitting together. They can again change data within themselves. They don't really have to involve the app to decide whether to show the login dialog or not. And one more component that we have added here is the model. Let's see what exactly is the model. In this way we are actually using our portal's code. So model says, if we don't have to show, then don't show anything. But if we have to show, then this is my render method. There is a deep, like this. And whatever is the child of that model, whatever are the children's properties, just show it like that. So he is not really adding anything extra. He is just saying I am a transparent container. This is my children. I am just going to show it like that. And if you see, this is not just a written statement. This is saying, return reactdom.createPortal. Just like you have createElement in reactdom, you have createPortal here. So when you say createPortal, you can specify what do you want to show, what is the react element that you want to show and where do you want to show. This is the important part. So here we are saying that I want to show this. I want to show this model component. But I don't want to show it there where it has been defined. I want to show it in the div element with the id as modal. And if you see this one again, our index element has a div as modal. So we are saying that, whenever somebody wants to render the modal component, irrespective of wherever it has been called from, it should always look for this particular id and show it over here. So logically, it will still be under that. But representation wise, it will be under here. When I say logically there and physically here, let's see what does it mean really. Let's run this code. I think it's running. Now let's inspect this there. This is my element part. This one has the react, this one has the header. Now this is where my modal is. And this one has the login box inside that. That means my modal is actually sitting as a sibling of my header and this one. So although I had defined it to be inside header, like if I look at my header.js, I had defined my modal to be inside my header, but now it has been rendered outside of the header into a div where I wanted it to be. And this gives me a lot of flexibility of adding whatever styling I wanted to be, right? Like I can give whatever position absolute, like other things to this guy. But now look at one more thing. If you have the react tool in Chrome, here you will see... This is a modal. Why is it a modal? The event switch is a direct switch. Change it directly to 0. Did I add anything to this one? We already added. I didn't add anything. Give a C. Okay, so now we are running this code. No, you are still in 3. No, now we are getting code. No. So now let's see if I run this guy. This is the code type we are running. So now if I say refresh this guy, and let's look at what react shows things. Here it is not C. CD, CD, CD. I got basic problems with the problem. If you are covering the advanced topic here. Okay, so this one, right? Okay, so now let's see if this one shows up. Here if you see, now my app has only header and main. My header has modal. And as of now it is empty. If I click on the login box, modal gets a login inside that. So this is the duty of a portal. That it shows up somewhere else, but logically react element-wise it is still under here. So now if I look at this element again, the login box is actually outside. Okay, so now let's see how this one shows up like. It really looks like this. So now we are kind of back to what we were before. There is a login button. There is a login box. Which we are saying that, okay, show it in a modal box. And that modal is something that we want to show it in a portal. So they are all interacting using this state of the parent itself. And they don't really have to go out of the headers from here. So now let's take up a little bit of a complex scenario. Let's take up a scenario like this. Now why we are taking this right now is to see how we can pass on data between various components in portals. So I have the login button, which is setting the show login state here. Depending on that, my login box will show that we currently have. What we are doing is now to add some extra complexity. They are saying, okay, whatever email address I add here, and if I say login, this guy is going to set another property, another property called an email inside my parent here. And this should show up in my button over here, this value. So that we know that, okay, I am able to kind of see this value over here. Now if I click on this button, I should be able to open another dialogue over here inside this same model, which will kind of show me the user profile. In this case, consider only the email address of the profile and the close button. So let's see how this code looks like. I was just testing whether you are paying attention or not. You will get one cupcake. This app, same as before. Nothing has changed. There is still a single GIF to hold the model. Head up, now it looks like this. So I am going nearer and nearer to a better app result. At least 20% increment is same. So my header shows there is a model component. Earlier it had only a login, but now it also has a profile. And we will not pay into the details of it. We are like regular data jumping in components, between one component and another. So email, based upon whatever has been passed. So email is passed as a property by the parent and it will show it up over there. So let's see how this one runs. And login. And if I click on login, so now let's say if I say a and b dot c, it shows the email address over here now. It was not there before. This button is showing me the user profile in a separate dialogue. Separate model. Now even without leaving my parent area, within the same react limit, I can kind of pass data around over here. So you see the GIF with model and lighting. You see the actual rendering has happened over here. But again if I go to header, so header, model, login. Let's take it to another extreme. So we know all the data has been passed within a react application. It was all different components, but it was all within the same application. Now let's try to solve something which was kind of not possible before. We will try to show something out of the react application. So now I should add a default command in my terminal. If I don't say cd, you should just check it out. Here now if I go to the sixth one, this is the last sixth one in our case. After I will go to all the fundamentals. Take a GAN model. Here now if you look at the source, this is a very simple one. Now our index HTML itself will be changing. Earlier our index had one react create element which was showing just the app. Now if you see, this is how my new index.estimal looks like. So this one has basically two groups. One is this div which says plain HTML and there is another group of div which says profile. So what basically we are trying to do is only this profile will be managed by react. This will be kind of outside the jurisdiction of react and it's like a plain HTML in our page. Can this kind of a case be handled? So basically what I'm trying to do is I am sitting under the react application from inside this profile. Can I show something in the div login over here which says outside react. So let's look at my index.js. So if you see index.js now very specifically says that show profile in the div with the ideas profile. So the plain HTML is actually out of react 7 rule and it is only the lower one which is there. And how does my profile look like? Profile says there will be a label, whatever, with that email ID that I have passed. Then there will be a button which says login. Under that I am saying create portal. This portal will be executed when I click on that button because I am using the same state between them as the show login. Then show login is true. At that time this login will show up. But where will this login show? It will not show under profile. It will try to show under a new portal which we are trying to display in the login ID which is actually out of my react control. So now if I run this guy, it's too much of... So this is how my application looks like. This is the profile guy and this yellow region that you see this is outside of react application. This is that plain HTML div. Now if I click on here I see that the login button shows up over here, the login arrow. So this is another beauty of portals that if you click on here, you can actually show your portal anywhere else. And I will actually share a link with you. Somebody has taken a step even beyond this. They are saying that if I click on button over here you can actually open a new browser tab and show your login div over there itself. So you don't even have to be in the same login like same browser tab. And this is kind of something that gives you enormous power as to where do you want to show your divs and still you are still taking care of your application complexity because logically they are still under the hierarchy of the react element that you wanted it to be. So now let's see where do we use portals? A quick tip on time. So first of all we saw the case where it is actually useful whenever there is override equal to hidden or wherever you are using zindex or position equal to absolute fixed amount these are the places where your CSS is not really helping you out and you really want to show your component somewhere else in the div hierarchy. That is where it is very much useful. There are basically two cases. One is always on top, like a light box. Oh this is also not right. Gray in colour. So you will have seen the light boxes in your websites. Like suddenly I am looking at a blog and suddenly it just blocks everything and says that we want to subscribe to email. And then you have to look for the close button. So that is a light box. It just shows everything and shows everything on top of it. Unless you say yes you cannot do anything. And then the second one is you are showing it as part of a parent but your parent is not here really trying, allowing you to come out of it. And you are basically bigger than your parent. So you want to show it up over there. So now let's run first. Zindex complexity and then using portals. Because we saw that from portals from one place I can show the UI somewhere else and from there I can show it somewhere else. So a lot of people started looking at this as very similar to the go-to statement in C. If you know like in C there was a provision that I am in inside my function suddenly I say go to level 1 and level 1 is somewhere inside another function. And I can continue from there and I can jump back here and there. This one came up because in assembly this is how assembly codes are written. But in a higher level languages we need a better control of the code flow because majority of our time is actually spent debugging our code. Like the code maintainability is an issue for us. So a good design says that you should have a good structured code and go-to statements are considered evil. They are like more of a subsidiary. So another thing is when you go from portal to portal to portal. I open one portal from there you say open another portal and another portal. Like how do we take care of this? But then if you look at it closely it actually is like this. Initially when there is no portal use your react element and your DOM they go kind of hand-in-hand. So you have component 1, 2, 3, 4 and they represent leave 1, leave 2, leave 3, leave 4. And then and this was how it looked like. Now you can see so forget it. It's like this where we wanted to show the portal. Again you cannot see the code but this is how it looked like. So your JSX still remain very structured but the actual representation of DOM was this component was now actually rendered not under orange but outside of orange. So I could have just decided to show it anywhere else. Similarly in a case like this I actually showed it out of the React app itself. So consider this blue box as a React app. Your JSX is still very structured but your actual representation here is going to show out of the React app.  But I'll give you one hint that when you are testing using enzyme there are two methods mount and shallow. Mount basically a DOM, shallow is a component. And as you see that the portal they deal more with the React element side the component side and not really with the DOM so try to use shallow and you should be able to test it the same way as you do your other components. State management remains pretty much the same as you would do anything else because although you are showing it somewhere else they are still pretty much the child of your React elements and you can test them the way you want. A few of the questions like you know while you are designing your portals don't think about the UI how it looks like but think about conceptually how components react with each other how components you know behave like the way you think about classes how classes behave or how the relationship between two classes are that is how we should try to design our React components if you do that it doesn't really matter whether you are showing a child inside a parent or outside of a parent. And this was the first step I was talking about you can take a look at that thing write it down quickly. Okay, so that's it. This is the URF, you'll get it, built-in React portals that is where the sample ports are if you just want to try your hands off. And it's a very simple concept but a very good and a very innovative thing because it kind of forces us to think in terms of good designs irrespective of the representation of our React component. Yeah, I can just in time.


Hi, I'm Steve Spengler, CEO of Intelset. At Intelset, we believe that when it comes to communications connectivity, halfway is not far enough. When communities are connected, good things follow. Jobs are created, commerce emerges, and quality of life improves. But nearly four billion people around the globe do not have basic internet access. That's roughly half the world's population. Half the innovators, educators, artists, and future leaders that we can't invest in. Half of a growing generation of young people without the reach to shape tomorrow. Intelset is on a mission to change that by enabling connectivity for these underserved populations. We believe that knowledge can build a road to the future, and halfway just isn't far enough.