Activity for teaching the simple present for the ESL classroom, present simple bingo mingle. For this type of bingo game to work, brainstorm a list of get to know you questions with your students, and write them on the board, for example, do you like to listen to music? Do you drive a car? Do you play the violin? Next give each student a 5x5 grid whereby the center square is blank. The students then fill in the questions from the board, into the remaining squares on the sheet. When done, the students mingle around the classroom and ask each classmate one of the questions. If someone answers yes, they write down his or her name into that square. The first person with 5 names in a row wins. Thanks so much for watching. We are ITTT, the leading provider for TEFL and TESOL training courses. If you like this video, please subscribe by clicking the button down here, and click on any of the videos here on the left for more interesting teaching tips for getting certified to teach English abroad and online.


the souls of your ancestors. Which of my ungrateful kin are within you? But I am the one. You are not even Earthrealm's champion.


Everybody forced here up to 22 Obsidian a football hobby toolbox full case number four random division so you can find those results anytime of late sports cards Dot-com. Let's go ahead and get started everybody Opening day what they should do is actually have opening day on like a Friday every year where every team plays on that opening day Cuz like Thursday night every team is gonna play and that's done And if they could actually make it a holiday have opening day on like a Friday boom three-day weekend So everyone's always like oh, yeah, March Madness Thursday Friday. I'm just gonna take off watch this Give me opening day. I'd rather have opening day for sure. I guess that's my version of that Mixed after this everybody getting started a little later than you planned. I think it was originally scheduled to start at like 1040 I moved it up for some reason Late start sorry about that guys purple Kyle Hamilton Ravens rookie numbered to 100 a Vitria Zach Wilson numbered to 99 for the Jets AFC East The Hamilton's AFC North of course Matt Corral NFC South rookie base Derek Carr patch AFC West to 50 AFC East to 50 eclipse patched Thurman Thomas The 75 rookie auto AFC West Isaiah Spiller and on the back of the first one is a Garrett Wilson green color match Ricky Jersey auto for the AFC East Very nice Wilson who won the game or there was a LSE. I'm guessing. Yeah, it's 100 Jericks tingly junior rookie for the AFC South Red Ritter nine of ten NFC South And I mean what better color match than a red obsidian with the black there go Neil what better color match Neil with the NFC South. That's that's that's going in a mag so nasty Turrell base AFC East to 75 rookie patched sauce Gardner Charlie Culler to 199 rookie auto AFC North anybody going to opening day baseball Whether it be Thursday or Friday for your team a Jalen waddle lightning strike auto green to 50 AFC East Very nice waddle and to 175 NFC West rookie Jersey auto Trey McBride Kids Yeah, that's like every product right now though Anthony Kirk to 75 AFC South purple Bateman color match to 100 AFC North The podger said that that's awesome.  Yeah, podger gonna be fun to root forward to 25 C each AFC South If you know it's our AFC West AFC West AFC West chiefs AFC West AFC West AFC West AFC East I re-kill cutting-edge Jersey Carl Loftus the 199 rookie auto for the AFC West and then I've seen North the 175 rookie Jersey auto Aidan Hutchinson I said he Dodders on Thursday. Oh heck. Yeah, that's awesome to 25 rookie Terry Coulon 625 NFC West AFC West Russell Wilson red vitreous number two of ten Dangerous see mr. Unlimited mr. Unlimited Jordan Davis rookie base NFC East Lamar Jackson to 25 triple patch AFC North AFC North Mike Woods rookie auto to 50 Usually a fun regular season though Dante Hall to 100 on the auto for the AFC West And Carson strong to 175 rookie Jersey auto NFC East purple to 100 Debo NFC West Orbital Kenny Pickett's 14 of 15 Okay, there you go. AFC North Orbital Kenny Pickett to 15 got a Terry McLauren base with an NFC South rookie color blast Chris Olavé Neil again killing it 25 mag is going quick To a number 250 patch card AFC East Jalen nailer to 199 rookie auto for the NFC North That's pretty good. I think that's a big game for both teams Olavé rookie auto to 99 or to 199 NFC South 90 of 199 Lesnar's my bodyguard Mike. I go Lesnar to 1099 Jersey auto Terry Davis price NFC West the Rock isn't like acting mode most of time now, so yeah, I Need a guy that's closer to combat mode That's where the Lesnar is gonna be Did what Vaughn Marquise Brown orange for the NFC West the 75 got a green color match jets here Zach will send a 25 orbital AFC East Devonte Adams Oh, yeah, that's what I see. Okay, I read it out of honor right now. Yep. That'd be cool This is 25 triple patch Danny Gray NFC West George Pickens 10 of 10 rookie patch car in the red etch AFC North They cool looking Glove maybe I'm not sure quite. I'm not sure what that is really Looks cool though Peer strong junior to 199 rookie auto AFC East and to 99 NFC East rookie Jersey auto Johan Dotson All right, NFC NFC South killed it. Let's see if we can get some other Division some big hits. There's been nice stuff. We need something big though. That's the neck little 100 AFC West Supernova AFC East the font digs to 99 Mack Jones based the AFC East and AFC South rookie color blast Damien Pierce Jeffrey H. Yeah, we're getting blasted over here. That press got to 125 NFC triple Jersey. Here's in the fridge Mike Woods to 99 AFC North rookie auto Christian Watson to 75 rookie auto NFC North Okay, nice Watson and a is a mere white rookie Jersey auto AFC West to 175 Every now and then raise like They paid wander a little bit of money and then they're like, all right. Well We cannot afford Any we just trade for the pitchers orange rookie bow Melton NFC West number to 75 orbital to 50 now Kenny Pickett AFC North Orbital the 12 rookie Jalen Tolbert to 125 triple Jersey NFC East You have to break whatever's not mad 25 Bailey zappy rookie patch four colors AFC East Yeah, then there's the pirates one. That's right pirates the Reds Redemption Josh Jacobs magmatic signatures AFC West and to 99 trail on Burke's rookie Jersey auto AFC South Even if I had forgotten what trail on Burke's signature looks like or his signature. I just know it's gonna be in Sharpie. So Good to go Yeah, it was like it was like 58 to like 52 or something like that It's like it's like it's like it's 20 to 5 or something Orange D hop to 75 NFC West Camara NFC South to 100 cam makers brand makers Crystal lava to 75 rookie Jersey NFC South Kevin Harris to 199 rookie auto AFC East AFC South Magnetic auto to 75 Michael Pittman, Jr. It's like an orange. It's like magnetic color match there matches the card very well And a 175 NFC West rookie Jersey auto Danny Gray Base Chris Godwin with an orange Alec Pierce AFC South to 75 only missing a parallel there 8 and Hutchinson is 75 rookie patch NFC North AFC North rookie auto Jerome Ford to 199 AFC East Bailey zappy rookie auto orange 60 of 75 There's Zappy and Javonte Williams Jersey or patch auto excuse me AFC West two color pass 23 and 25 Purple Spiller AFC West rookie to 100 with a Brady NFC South 9 of 50 D hop So 10 rookie eruption patch three color is a conma AFC East Dotson rookie patch three color NFC East to 50 NFC East auto Plexico Burris It's a Hannibal's brother and Kenneth Walker the third to 99 rookie dual Jersey auto NFC West Purple Allen to 100 AFC East Josh Allen Micah Abernathy to 50 rookie green NFC North Michael Parsons. Do I love Hannibal Burris? hilarious Trey McBride to 25 rookie patch three color NFC West Why are you booing me? I'm right John met you to 50 rookie patch AFC South AFC East to 100 lightning strike auto Elijah Moore and NFC North of Jamo rookie Jersey auto Jameson Williams No points No points in the whole that's the first time I've ever ripped an obsidian case with zero zero points cards Football anyway, basketball never has them. I think it's weird. Yeah, zero points cards. How about that? We'll take that job, I guess All right relics. We've got Trey McBride John Mechie Johan Dotson is a conma Hutchinson Chris Olave Dak Prescott Jalen Tolbert. I was a zappy there Bailey zappy Hey him on air Gondry is awesome. Got Dandy Gray George Pickens to a tongue of I loa Lamar Jackson Clyde Edwards Alair Tyree kill sauce Gardner Derek Carr Thurman Thomas Autos now we've got Jameson Williams Elijah Moore Plexico Burris Kenneth Walker the third. I didn't know that illegal. That is awesome. That's great Javonte Williams Bailey zappy Jerome Ford Danny Gray Micah My goal Pittman jr. I haven't gone to my Gavin after yet. Kevin Harris Traylon Burks AFC West Josh Jacobs redemption is a mirror white Tyrion Davis price Who did that? Johan Dotson Christian Watson Mike Woods Pierce Strong jr. Chris Olavae Carson Strong Jalen nailer Mike Woods again Dante Hall Aiden Hutchinson George Carl off this Trey McBride Jalen waddle Charlie Kohler Gary Wilson a green and Isaiah Spiller Two color blast in the case we had Damian Pierce There we go. Nice one there. AFC South got Chris Olavae. By the way, that is something from the mag It's not actually touching the card. It's between the mag and the sleeve. Whatever that is thread a plastic like Strand Chris Olavae and Doesn't read a red red reader Red reader BB gun nine to ten Shoot your eye out and that will do it. Thanks again everybody mixer coming up


Everybody forced here rip in 2122 mosaic road to FIFA World Cup soccer hobby 3 box number 4. It's a random team style break One sec here There are your results again. You can always find them at late sports cards calm Thanks for joining everybody and good luck Do I when I first wore that shirt people were clowning on it and now it's it's iconic so We'll have to get your whole family I Said that but that for sure exists somewhere, you know Timber It's got to be cash his favorite player Ricky mosaic for Australia is a Dean her stitch Ricky silver Venezuela junior Moreno Conte and messy montage Yoji late and sure There are there are late and tie-dye shirts. They were in the past. We need to bring it back though Different colors for different seasons, I think Pink blacks, right?  Yeah, we should begin to new shirt designs in guys Pretty cool ones. I don't know if we'll have available actually, you know messy on the base Mosaic for Belgium is Jeremy doku silver for Brazil's Gabriel Jesus again guys just six box breaks left for today For mosaic world cup. Let's get him filled up. There's a Holland base rookie mosaic for Mexico's Oriela Antuna red mosaic Mexico Luis Romo and a Barinias on the Venezuela mosaic montage At first it seemed like the seal is your name in the starter. It's good thing. They did We've got a pain yeah We got a stained glass coming All right, come on Here we go. Here we go. It is a Romelu kaku Belgium stained glass Congrats on the awesome card Super short print to Matthew M. There we go beautiful looking card to Lukaku mosaic conrad limer for Austria Silver rookie Peru is Miguel Choco, you know, it's funny. It's the same design as football, but they just call it peppy rookie Germany mosaic kai havertz red mosaic for Denmark is mckel domsgaard a Menomastry piscina for Italy one-on-one LSE merch We should make sure to number them and sell them you ran a random number shirt get the one of one I got the 99 dang it's got the I got the base LSE shirt dang it's Ricky mosaic portugal new nomened as Silver food us is Brendan Aaronson. What are you gonna say? eBay one of one I see sure 99 of 99 That would happen people would resell our shirts for like twice. Oh my god. What are we doing here mosaic for France, Kylian Mbappe Red mosaic for Germany Timo Werner They pitch masters mosaic Marcel Sabitzer still looking for an auto in this box, too cards flipped on me Mosaic for Denmark Pierre meal Hoyberg Silver for Wales Ethan and Padoe again everybody. This is the last three boxer of the day or for the for the daytime breaks Sam has more this evening. We just got two six boxes. We got to get filled up Kaisado There's our auto coming up seven Netherlands auto it is it's a Nathan AK auto for the Netherlands See rookie last year Nathan AK auto there rookie mosaic for Poland Yaka motor red mosaic rookie Croatia born of Sosa and Mosaic montage out of yummy rookie for Germany. Well, those did not Stack so well Got our first thing glass though. So we had an overdrive and stained glass all in the first case So if you get one of each Remains to be seen I guess. Yeah, it just says ultra rare, so David realm Benton core mosaic for Spain is page three Silver or a guy Rodrigo Benton core Sitar hop mosaic for Norway is Martin Odegard red mosaic Italy Nicole Nicolo Borrella Met a mastery That was blue for second. Nope. Just regular mosaic for Croatia Marcello, Brazil, which our skate mosaic for the Netherlands Daniel Mallon Germany silver Robin Gosens first it's Vidal mosaic for Brazil name our junior Silver for Croatia Mateo Kovacic Very nice Roberto Carlos auto Big hit Brazil 2019 Panini soccer very nice hit Magnus one It's from it's 2019 there was a cheats are either to yeah first of all that I was like Big hit Brazil JJ there you go, buddy Definitely an OG that's going in the mag and a purple rookie mosaic Gonzalo Montiel for Argentina 38 or 49 Pull the blue Holland think last break Red mosaic let's harrow for Argentina as well pitch masters Matthias Ginter Yeah, Blake on card is we're 2019 Panini soccer. It's not it's like it. It's like inserted. They must have had them Saving them up, I guess I'm telling you guys the autos even with the mosaic ones have been good so far Rookie mosaic Ecuador Moises Casiero or Kaiseido a sheep rookie red for a guitar Cutter as I said earlier montage mosaic Pashelich Croatia Yeah, that's been good so far man. We pulled the Valderama auto earlier Who else do we we pull some other good other good names for Ron? Clinsman hold your good clinsman mosaic rookie or guay as Matthias, Vina Silver Argentina Lionel Messi your Argentina nice messy Pogba Ariyemi De Bruyne Mosaic rookie Mexico is Gerardo Artega red mosaic rookie Australia Martin Boyle And a Fabian Ruiz insert you hit a one-on-one although I do not know Dean. I do not know I haven't pulled one yet Mosaic Harry Kane for England's red mosaic for the US Giovanni rena pitch masters mosaic Zardis for the US 1617 select for a while. Yeah, the last box. I think it was out of seven Ridiculous Blue mosaic for Netherlands Ryan Graven birch 57 a 99 nice one Netherlands Silver for Brazil Casamiro We for sure just got unlucky those first two breaks. Yeah, it's been very consistent It's like one box. I think we're numbered on average.  It really seems like he's gonna average like a double-double this year No Definitely not to Kimbe Mogumbo anymore Brad's got to find a new nickname. There's a Ronaldo base Blue mosaic coming up is for Italy and Nicolio Borrelia. Nice 89 of 99 Yeah, I got Kenzie here today. Ricky silver. Louise Abram. What's up, Dean? We're just chillin, you know Trying to pull one-of-one messy one-of-one Ronaldo Holland Maybe another one-of-one grease one Kenzie did that already a couple months ago. I need to do that now Was a crookie for Germany David Raul and mosaic Belgium t-bo cordua and A montage is cordado Finest or was that? Yes, I was fine Awesome was a crookie for Netherlands Cody Gakbo Silver for the for Switzerland is in Bolo. I break through like what 330 ish or something like that Got two more full full cases, there's break the break every six box breaks after this France was a Cuglery red mosaic rookie for Norway is Christian Thorsvett And a Harry Wilson mosaic men of mastery Wales Mosaic rookie for Croatia is Yosef Yoranovitch silver for Francis Antoine Griezmann Alvarado Gakbo Brazil mosaic with Charleston Silver rookie for Wales Joe Rodan. Thanks, Isaac Some of some of them I'm not good with but I'm getting there got a pull-in to mosaic Peters Alinsky red mosaic for Austria's Haver schlager Pitch masters de Maria for Argentina True Georena auto Do Germany has got all the autos and other go since here scripts go since I Think it's like 30% of the autos are Germany said today so far. I think they've hit never break Pink yeah pink 22 at 25 for Spain Amrik Laporte Hey, there you go Isaac. You got Spain.  Yeah red mosaic Netherlands again as Graven birch Oh, yeah, you guys will see in the recap. It's it's ridiculous The purple is just subdued. It's just dark pink I guess I guess it's just what it's always been anyway Not only in cards rookie mosaic for Uruguay is Georgian day Arasca ita Silver nandes for Uruguay. Yeah mosaic breaks. They can be tough for sure. They can be tough Mosaic for Sweden is Dejan Kulasevski red mosaic Pulisic for the US Color match there a lot of red color matches actually and just and everything and a Benton core montage for Uruguay Okay, quick recap We mag two cards in this break Breaks three and four today. We're sick. All right, blue mosaic Borrelia for Italy 89 to 99 Graven birch for the Netherlands blue 57 and 99 so that's purple. So the Montiel is purple and the Laporte is pink Montiel 38 of 49 for Argentina pink for Spain Laporte 22 of 25 a Go I guess it looks a little at the difference is a little notice more noticeable in person I guess but on camera. It's very close go sends mosaic scripts for Germany Okay for Netherlands on the mosaic autograph stained glass Lukaku Belgium Congrats on that one and 2019 the Panini soccer auto Roberto Carlos Legends that's gonna do it for the break. Thanks again everybody Grats Brazil now will grasp Belgium on the Lukaku. We got six boxers coming


My name is Panos Bogunas, I am one of the owners of Vector Technologies Greece and the managing director. Our company is a test measurement company and was established as a major supplier of measuring instruments and high technology systems, specialized in sales, marketing and technical support and after sales services. We act as distributors in the Greek and the Cypriot market and in some sections of black telecommunications we are selling equipment to all Balkan countries. Our mission is to provide to our customers the most suitable solution for their specific requirements, always combining the highest knowledge, the highest quality and the most affordable prices. Our strategy is to work in cooperation with the world leading suppliers. Here you can find some of our partners, I will tell you more about that in a while. Our facilities are located in Athens in the Attica area. We are here in this exhibition to promote our products and to help our customers, the R&D labs, to find solutions and to work with our tools in order to make their research. We will tell you more about in which sessions we can help. Yulia is our sales manager for the R&D labs and education market and she will tell you more about the sessions that we can work for. Hello from my side. They are one of our companies that is an expert in this, let's say, part in this exhibition. It's a German company who presents every application with inner atmosphere, required inner atmosphere. Glove boxes and gas purifiers are the main business of this company. We can propose and actually discuss with customers according to their application and their needs and to find the best solution for their needs and applications. The M-Brown, as I told you, has several applications. The suitable solution for several applications like laboratories and chemistry laboratories, a battery solution, if you need personal protection from the material that you work with, all-ed organic electronics, welding, material purification, thermal treatment, OPVs and all these sections. So there are many glove boxes and many solutions like lab masters, mini lab, OPTI preparation systems and gas purification systems. Many of our customers use the glove boxes and they set inside their measurement tools and they protect the materials that they make that are very sensitive. So they set inside the glove boxes the test and measurement equipment or the spin quarters or whatever equipment they need. So with this way they protect the material for the atmosphere. This is the general idea. On the other hand, Keith Lee, this electronics company, it's one of the, I think it's the leader of the test and measurement for the semiconductor characterization systems. Of course we can talk the whole day here, but I think we give you a very quick introduction of the solutions that we can offer. Yes, furthermore we can say that we have service support. We can support our customers with services for as many years as required. And we are here to support our customers. Can you describe a little bit more, what kind of customers you have? The company has three sectors. One sector and this is actually what you are interested in at the moment is the education sector, which education means also R&D labs. As you know, many of the professors, they have their own labs, they make their own R&D and we are happy for that because we have a huge R&D in Greece, in the universities. So education R&D lab is one section. Second section is the military and the governmental authorities. And the third is the telecommunication, which is mobile operators. But here today we are for the education and the R&D labs. And it's very advanced machines? There are mostly advanced machines. We have education and test and measurement for the students, but all this that we mentioned before, it's for a high-level, high-end equipment. And these companies, you have many years of connection with them? Our company was established in 2006 and with most of them we work since then. We have a long relationship, we have a partnership agreement and we invest to that company and the companies invest on that on us because we need to train people, we need to have expert engineers, expert people who knows the products and know how to sell the product and not only to sell, how to support. Because the most important for us is the after-sales support. To do a sale is the easy part, maybe, the most easy. But to keep the customer happy is the most important. The customer needs to have someone next to him in case he has a problem. So this is our role here, to support the customers after sales. So it's very technical support? It's technical support. After sales support? It's after sales support. Maybe the customer needs some help on his application. So with this way we will bring the specialist to provide the solution. Sometimes they have technical issues. We need to send a technician on site to repair the equipment. So it's a combination of R&D knowledge, of scientific knowledge and technical knowledge and the same. When you have, for example, brochures right here, talks about Peruvskites solutions. It's like the trend for the most advanced. Is it just solar or many different things? For Peruvskites I think it's better to let the professors to talk about that. Because this is their job actually. We are here to offer the solution. This is one of the solutions that Mbrown provided. Peruvskite solution is one of the parts that Mbrown could provide. For people who are doing Peruvskite solutions, we can say here that the first Peruvskite research, the first meeting here with Mbrown was here some years ago, six years ago. Yes, six years ago was our first contact with Mbrown. With Mbrown here, in this exhibition, a technological exhibition. So we are here to offer the solution. Exactly. We were here at that period six years ago as exhibitors. At the same time Mbrown was here as exhibitors. So we communicate with them and we realize that our partnership will bring growth to our market. This is again the glove. Yeah, glove box solutions and many solutions that Mbrown can provide. There's gas purification systems, glove box solutions all the best. Gas purification systems. These are particle removal, electrolytic filling. So it's people doing R&D, people doing research. Also people doing something that becomes mass production, big project, brick production of stuff. Yes, yes, yes. Let's say a part of the production. Yeah, yeah, many user protections, okay. It depends on what product you have. The customer wants to work with. Glove boxes have applications not only in our technology or the pair of skites, but also in the pharmaceutical area. Pharmaceutical companies also are using glove boxes for their applications. So are there more and more customers, let's say? Yes, more and more. There is a wide field for glove boxes. One thing of applications for glove boxes. And sometimes it's an industry who realized that they didn't use it before, but they should use it now. Of course, they say that they don't use glove boxes. They say that they don't use glove boxes. But they realized that they didn't use it before, but they should use it now. Of course, this happens. Because that's why we are here. That's why we are participating in exhibitions, to show the customers what they need in order to make their life easier, let's say. Yeah. And what kind of discussions do you have here at the Nanotechnology Conference? We discuss, actually here we meet the most of our customers. Because they are doing their R&D. So they discuss their application. So we have the knowledge to offer solutions. Or maybe we can offer something that they haven't think so far that they can use it. And they can make their research easier. Any customers can be anywhere? Or is it specifically in Greece? Mbrown has customers worldwide. But we have the authorization to promote our products in our territory, which is Greece and Cyprus. But of course, here is an international event, an international event. And of course, we are happy to help any customer worldwide. And we will address his name and his contact to the right people so they can have a local communication. And is there more and more high-tech happening in Greece? Of course, Greece has, as I mentioned, a lot of our many R&D labs, but we don't have many companies that make productions. But we have, let's say, the last three years, because of COVID situation, it was difficult to have face-to-face meetings and these kinds of events. But I think now it starts again and we have more and more bigger events. I think this event here is the biggest one that happens every year. What are you doing during COVID? You just do a lot of video chat? We use a lot of video chat, exactly. Skype, Zoom, Teams, whatever. Of course, we had a lot of savings from the traveling. Of course, this is a joke. It is a reality, but on the other hand, we prefer the face-to-face meetings because it brings the relation with our people and to our customers. I feel better to meet someone face-to-face, let's say. Nice. So watching this might be interesting to contact you and start talking about it. Of course, we will be happy to be in contact with people that watch us and discuss their application and offer the solution for them. What if some new technology providers want to talk to you about distribution also? We are happy. And we are open to discuss. Of course. We are investor relations, not only to the saints. We are looking forward. Cool, thanks a lot. Thank you. Thank you.


Since I've been here before, just lost my love It's going inside, how this really is all memories should burn Now that we shared, do this now I'm just getting lost again I'll be inside till it goes In the end you'll always go I'll be inside till it goes


Welcome back to the show, Beautiful People. This is Steele Tanukali, the doperous music show of Quartz in the Y254. And I am here with an amazing artist in the studio today. He is not Kenyan. And that's just, that's amazing because we connect different continents, different countries musically. I am chilling with the amazing gowns from Seychelles. Hi everybody in Kenya. It's a pleasure to be here with you and hope everybody is enjoying their self at home since it's Friday. I'm Gunz and I'm from Seychelles. Nice. I'm an artist. I've been in the music industry for 10 years. I got 5 albums. I got about 100 singles. Really? I got so many songs. I got so many singles. And I've been focusing lately on the African part. Okay, so are they all out? You know I want to come listen to all of this but for now let me go on a bit of music break and then we'll be right back with Gunz guys. Welcome back Beautiful People. I am still hanging out with the amazing gangs from Seychelles. Yes, Seychelles. How's Kenyan so far? Kenyan is beautiful. Yeah? Everyone I'm going and saying that I love the food so I think everybody by now know I love the food in Kenya. What do you love more? Everybody asks me that. I still don't know how to say it but the roasted meat like you know that. The meat and stuff. The roasted meat. Yamachang. This is it. Interesting. That was music. Music is interesting. Challenging. Fun. Music is everything. Music is everything. Music is basically your life. I can tell. Because right now my job, my everything is dependent on my music. So you in Kenya because of music? Yeah, I'm in Kenya because of music. I'm here for Johnny with my brother Max, Maxito. We're on a journey. We want to discover something new. We want to be known out there because like I said the Afro vibes. The Afro nation is taking over the whole world. Exactly. So you better move with the trend. You either join the winning team or watch them win. Exactly. And you don't want to watch people win. I don't want to watch people win. I want to win. Alright. So you're in Kenya. Are we expecting you to collaborate with anyone from Kenya? Actually for the time being because I have so many projects, so many things that I have to focus on. But I'm really looking forward to working with Kenyan artists. Yeah, I'm looking forward for that. Alright. A hundred singles. Before you talk about having a hundred singles. A hundred singles is a lot. A lot. So many songs we got. Because I was part of a crew. There was a group in Seychelles. Back in Seychelles there was 12 of us. That group was called Zofo Movie. So in English this is bad boy. In English it's bad boy. Red blood. Yeah. When we came in the music industry we were the rapper, the hip hop rapper. So Seychelles is more of a traditional country. They love the traditional music. But when we came, we changed everything. People were telling their children not to listen to us. But we were making the change. The children that they are telling to listen to us. Those are the children that is big men now concentrating. Actually most of them are not following the bad way. They are following the good way. Because they've seen that I was in this part of life. And now I've changed. I've moved so fast. They have hope. They believe in that. And they believe that they can even do better. And that's a good thing. So how is the music market in Seychelles? The music market in Seychelles is not big because we have a population of 100,000 people. It's not big. So we benefit from showcase. From showcase like outdoor shows. This we win.  But from the streaming we often get most of our streaming from France, I say from Mauritius. Because Seychelles, the young people is into streaming. But the young people doesn't have money to pay for music. Exactly. So they have to rely on their mother's phone to do that sometime. Or they have to send it via WhatsApp. So we get that big hype because even if they shared via WhatsApp, they are the one that asks their mother for the money to come at the show. Their mother doesn't come at the show. The young people does. So it's a win situation for us. But most of our streaming is out there. Yeah. Okay. Makes sense. So when you say you used to be a group, you guys. And then what happened? The group is still here actually. But all of us is focusing on our solo career. Oh, okay. And you know the group. There's always drama. Okay. But we tied. We brothers. We family. We're together. We're still around. Every one of my friend is deep into their career. They are focusing. There's Koki KS and I Guns. Yeah. They are really focusing and they pushing it to the limit. That's amazing. So what happened? You said you guys used to do hip hop. Yeah. Actually me. Me, I'm a rapper. So I've decided to bring my rapping skill on different type of genre. Yeah. But my friend, they're still into hip hop. They focus on the hip hop. They do everything to like me. But me, I'm more ambitious like I will do. You will do whatever. Yeah. Right now we say it. It's a piano. Yeah. Okay. Okay. That's really interesting. So this is why I'm out here. You're out here because you want to move with the way. Yeah. Now that's exactly what we need. So should we expect you to visit us more with more music? Just a one-time thing. No, no, not a one-time thing. In Kenya. No, no, no. I'll be coming back definitely. I have artists I want to work with you. Yeah. So definitely I'll be coming back. And tomorrow I'm even performing with Tyla. I see you. I have a shoot tomorrow. So maybe if anybody want to come and see me perform. Actually, I really, I haven't got the venue yet because I'm new to Kenya. I can't memorize it. I can't memorize it because it's, you know. Guys, guys. You know, maybe after the show we can leave it somewhere so that you guys can pop up. Yeah. After the show I will bat the show. It's happening tomorrow. Yeah, tomorrow. Yeah, yeah, yeah. So what's the name of the show? Of the, of the place? Sarit Center. Sarit Center. Sarit Center. Yeah. Okay. What time? Around what time? Around eight-ton ward. From eight-ton ward. From APU. Ah, okay. Okay. You want to see Gans of course. He, he'll be performing. Yeah, be performing tomorrow. So if you want to get the chance to see what I do. Pull up. Yeah, exactly. Because this is the first time you're seeing Gans pull up and see him do his thing. But before that, we want to see you do your thing here.  Yeah, yeah, yeah. All right. Let me have DJ Sweet K get to your tracks. Hope you enjoy at home. Because I want to get down. Am I going to get down? Ah, you're going to dance. They're very moveable. All right. All right. Then I'm excited for it. But tomorrow we, crowds guys. Popa. Popa for his life. Yeah, yeah, yeah. Tomorrow is Thai Lai Siu. They know, they know Thai Lai Siu, Thai Lai Siu. He's doing quite well right now in his music career with Danny K Song. We do. We do. So I think he got his, his fan piece ready. So are you guys going to do any collaborations with him while you're here? Maybe in the future, yeah. But like I said, I got too many projects loading, loading so many. Like I even got a song. I'm not supposed to say it, but I can say it because it's on the way. I got a song with Maud Elka. I don't know if you know Maud Elka. Do I? Maud Elka, he had a song with Ali Kiba. Songi, songi. Oh, okay. Okay. It's because you're not Kenyan. It's Maud Elka. Maud Elka. Oh, I say Maud. Yeah. Okay. Guns, the stage is yours. You want to stand or do you want to do it? All right. Oh, you want to see me standing up to do it? Yeah, we'll see you jump.


Hey, so my name is Rakesh and this is, you know, like 10 times the audience I expected for this talk, but that's a good thing. I work on this little app, you know, so I put my job like a couple of months ago and I've been trying to build something for the JavaScript community and obviously trying to make it work on the side when I'm doing that. So one of the apps that I built while doing this was this app for... Alright, so I put my job a couple of months ago to start working on printing tools for JavaScript and stuff around that. One of the tools that I've been working on over the last couple of months is this tool called Errorception. It's a tool that lets people record errors in their pages as they happen in end-user browsers, right? It's generally later than it's lost because it gets printed in the user's console, which is a student-based printer because you never get access to it. This one has been using it so I don't know if he has any feedback about it. But that said, it's an interesting tool. So I don't want to make this a product pitch. The idea is that occasionally there are services that help speakers to use, so I interfere with them. So the main works is that I give you a little snippet of code to insert into your pages and then this starts recording errors. Let's talk in the details about how that works. The interesting bit over here is that I give you a snippet of code to insert. This is very similar to how, say, Google Analytics works or how, you know, even Discuss or other forms of plugins, that's the reality of what works now. This talk is meant to give you an idea of the knowledge that I got when building a snippet like this because it turns out that it's a wild world out there where you can never trust what kind of page in your time environment you're running it. So this talk is about the lessons that I learned in the process of building. So it's basically about the lessons learned when I was creating Air Reception itself. I spoke already briefly about Air Reception. So these are examples that I studied in the process of trying to create this snippet that I was talking about. Let's Google Analytics, Dismetics, Discuss, Facebook, Twitter, you know, there's a whole thousand of examples of Javascript. So I get a series of blog posts about this that recently happened to get a lot of Javascript press, so to say, if people are subscribing to magazines like Javascript Weekly and stuff, this was published over there, Smashing magazine, you know, a bunch of places that we got. So it was broken down into three posts, so I'm sort of stuck to that format over here. So this is the first post where I call it the first rule of writing third party Javascript. So three parts, we go over the first one really quickly because I guess most of us will be familiar with the first post, so to say. The second and the third we'll live in when someone will be there. So how many are here familiar with the movie Fight Club, right? The first rule of Fight Club is? Don't talk about Fight Club. So the first rule of third party Javascript though is that you do not own the page, or this doesn't sound as interesting as that I've done in the beginning, but you do not own the page, right? That's the first rule of third party Javascript. This has got a lot of implications. So the first one is that when you insert your code, when you ask somebody to insert your code into the page, the impact of that should be minimal. There should be very little impact of that, and we'll discuss what that means. And secondly, that you cannot make any assumptions about the page. You cannot make any assumptions about the environment that your code is running into. And we'll discuss what that means as well. So one way of ensuring that you have minimal impact, there are at least two or three of them, but one of them is that you should not have any globals at all, right? So there is this idea of immediately invoked anonymous functions. I'm sure most of you know about this. There you have a function block that you invoke immediately. This essentially creates a scope trap, so to say, for your variables. And since your variables are inside this scope trap, you are not leaking into the global scope, right? So a simple example of how not to create globals. A slight improvement over this is where you take in window and document as parameters, you take them back into the function. The benefit of doing this is that when you run this through a minifier in the future, right, your variables become something really small like A and B, right? So even though you're thinking that you're accessing global variables, you're actually accessing local variables now. So basically your code can shrink slightly when you run through a minifier. So window or whatever will become A or whatever and so on, right? So slight improvement on your code. You know this already, this can be applied to general JavaScript as well, so it's a benefit that you get anyway. Now I say no globals, of course. It's useless if you have code that does not expose a variable at all. You know, what is your namespace variable, right? How do you work with this code? So you have to have one global, let's be fair, right? So if you look at what other guys are doing, Google Analytics has got underscore GAQ as their variable, I'm sure. If you've worked on the front end, everybody's worked with Google Analytics. You know what I'm talking about. GAQ is that Facebook uses FB, Twitter has got TWPGR. Error step shifting, you see what I did here? Error step shifting has got underscore ERRS, right, which is their global variable. Another sort of fallout of not having any global impact whatsoever is that it should not mess with shared objects. Shared objects like strings, numbers, arrays, objects, don't mess with these, don't add to string.project, right? Left pad or whatever. Don't do that kind of stuff, right? That's not a good idea. So never mess with shared objects. Do not do DOM modifications. People don't like it if there are DOM changes. There are two exceptions, of course. The first is when you are expected to do a DOM modification, of course. Like, for example, when you're adding a Facebook widget, right, you're expected to do a DOM modification. In that case, it's fine. But I would say that the way you do that is by taking in the DOM node that you want to operate on. So you're setting an expectation that the developer is passing you a DOM node within which you're supposed to play. So, you know, the developer knows that I'm not going to own that anymore. That's yours, you know, you play with that. So that's one case where it's okay to play with the DOM. And the second case where it's okay to play with the DOM is this hacky, is when you want to do cross-domain communication back to your own server. Now, ideally, you should not use the DOM for this. You should use the core spec, the cross-origin resource sharing spec. But, you know, reality is that it's not supported in most, in older browsers at least.  Or, you know, using JSONP or something that is, you know, creating a script back locally.  So there are the only cases where you can... There's no way out other than using the DOM to communicate across domains in this case. So that's the only case where, you know, you can still use the DOM. Well, meanwhile, let's keep this interactive if you have any questions and all that, feel free to fire me. So that was about not messing with the page at all. This one's about not making assumptions at all about the page. For example, you know, does document.head exist? So a lot of times what people do is that they append stuff to the document, to the page when they want to write. So if you want to add a script back to the page, you append it to document.head. Can you trust that document.head always exists? Turns out you can't. You know, you think that when you have... So there's an assumption that when you have... that when the page is parsed and it's ready and the DOM is created, that there will be a head and a body to it, irrespective of whether the markup had a head and body in it or not. Right? Turns out that assumption cannot be made. There are older browsers... I think there's opera, an older version of opera did not support document.head if your DOM did not have document... if your HTML did not have document.head in it, right? So you cannot even trust simple things like this. And the example is if you use the base tag, what is your path relative to? That becomes a complicated question to answer. So you know, these are kind of things that people generally take for granted when we are writing code in our own pages. But you cannot make these assumptions when you're writing code for the while. Quickly moving on. So that's basically the basics of what needs to be taken care of. Don't mess with the page. Don't give surprises to anyone. And don't make any assumptions about what's going on. We move on very quickly. The third part is even more interesting. It's about how to load your code. There are considerations that you need to keep... take care of is eliminate any network performance effect, which is to say that just by virtue of adding your code, the page should not slow down, right? That's something you should take care of. And the second is that what happens in case your servers go down? So, you know, let's say that... the decision is using error-ception and error-ception servers go down. Now, does that mean that his site is going to be impacted by this? You know, it's not something... I don't want to take on the responsibility of having damaged his site just because my servers went down. So I have to take care of that in my code. I don't want to sign a license agreement with him that will sort of keep me safe from this. I want to take care of this and impose that in code, right? So how do I take care of that? So number one is do not use a script tag. We all know this team server that has been standing on rooftops and shouting. Do not use a script tag. It blocks your page rendering. It blocks your network request that go out. We know about this. There's no need helping on... But Twitter does this. I don't know why Twitter does this. This is the stupidest thing. But Twitter does this for there, at anywhere, SDK, right? So what I'm talking about though is not about just eliminating... I'm not talking about reducing the performance. Everyone knows how to reduce performance, right? You use a cache. You do proper caching. You use a CDN. We know about all of that. That's not a problem. I'm talking about eliminating the performance. The effect of adding your code should be literally zero. It should not be reduced to as close to zero as possible. It should be literally zero. So we'll talk about how we do that. Anyone familiar with the async attribute in HTML5? Yeah? Right. So you would think that the async attribute... And the async attribute is cool. For those who don't know, what it means is that when you create a script tag and you add async to it, it means that your browser is now instructed that the browser should not block on loading that code. And instead, the browser will continue passing the rest of the HTML as well. And this is good for two reasons because, number one, you have not blocked the page, the network requests. And two, because you have not blocked page rendering. So you'll get two benefits with using async. That's two birds with one stone. That's awesome. The problem is that async is not supported in older browsers, including browsers up to IE9. IE10, the pitas that are out are showing support for async. But up to IE9, there is no support for async at all. And then there are older browsers as well. Of course, async is rather new. So there are older browsers as well that don't support async, including Firefox 2. I think Firefox 3 doesn't support async as well. So, you know, something to watch out for. As a third-party developer, I cannot cast async to work. I will have to find another mechanism because I cannot make assumptions about where end users are going to come from, which browser they're going to come from. I need a better mechanism than async. So one of the mechanisms, Street Souders, found this and I think it was Nicholas Zuckers who basically created the script snippet here. He calls it the dynamic script tag creation technique, where what you do is that you create a script tag. Is this visible behind? Is it okay? So you create a script tag dynamically and then you append that to the body and turns out this has the same effect as creating an async attribute. So at this point, your browser is now not going to block on either network loading or on rendering and your code is loaded, you know, parallelly. So this has the same effect as doing async loading. So you can now load your code using this mechanism rather than asking people to add a script tag that is going to load your file from some external server. It's better that you give them a script tag that looks like this and your external server's path is over here and you're basically creating the script tag using JavaScript itself. There is very similar to... Facebook, in fact, does exactly this. So Facebook's SDK, when you're loading it up, that's exactly what they do. They create a JavaScript file and then they append that to the head. So that's exactly what Facebook does. Except we just discussed that you cannot trust that the head exists. I don't know why Facebook still does this. It's common knowledge now. Google Analytics has done a minor improvement where document not body or document not head does not trust it. And so they append. This is an interesting approach. So if you don't have head or if you don't have body, where do you append to? It turns out that one thing you can't trust is that this script tag exists on the page. You can trust that because that's how your code is running. So you can trust that your script tag is there on the page. So you get a handle to a script tag, some script tag. It doesn't matter which script tag that exists. But you know that for sure there's at least one script tag on the page. So you get a handle to some script tag which is what they are doing here. So they're getting all the script tags, taking the first script tag, whichever that might be. It doesn't matter. And then to the parent node of that, they are appending this. Forget about the detail about excerpt before. It doesn't matter. Yeah, go on. So the question is that even if the DOM is reformed, doesn't the browser handle that? Yes, they do in modern browsers. Turns out there are older browsers where, so for example, if you don't have a head tag in your HTML, the corresponding DOM that is created might not have the head element inside the DOM. This is the case in Opera and some other older browsers. So you have to account for that. So it's just better that you can trust yourself. So the script tag that you have created definitely exists. So you try to work around that to make sure that you can add your code. Why would this be asynchronous? I still could not get that. It's a browser work. The way the browsers work is that if you are creating JavaScript with JavaScript, if you are adding JavaScript with JavaScript, the browser treats it as a risky. It's just the way the browsers are working. You know, it's a hack that was discovered last year. It just works. Is it respective of the async attribute in the GAR or for that script tag being set to 2? Yes, it is irrespective. So this is actually unnecessary in all. So on my blog post, I had said that I don't know why people do this. Turns out Steve Souders came to my blog to correct me and explain why this works. And the reason it works is because in older browsers, I think Firefox 3 and older, the async equal to 2 is actually needed to ensure that it is async. So you know, all newer browsers since then and all the IEs and all the other browsers, I think it's specific to Firefox 3 that you need to have async equal to 2 to ensure that it is properly async. So my next question was and displays into the idea about if my servers go down, does that affect the site? For whatever reason, my code takes 10 seconds to load. Is the onload of the end-users page going to be blocked? Because if it is, then that's horrible. Just because my script is taking long, I don't want that guy's code to be affected. So I had to run quick tests to find out whether it's actually the way it works. Turns out we can't be sure like everything in client-side development, we never know. So in some older browsers, it is blocked. Newer versions of browsers, the async is actually async and has nothing to do with the onload. In fact, it even varies with browser versions. So if you look at older versions of Chrome, at 12 or 13, I think, they used to block onload even if you gave async. Whereas newer versions of Chrome do not block onload when you gave async. So there's a difference in behavior across browsers and browser versions as well. So this is something that I did not want to trust. So basically if my code goes slower, depending on which browser the end-user is using, the site might have a bad experience. I didn't want it to depend on that. So I found a solution here, slightly more convoluted code. But what I'm doing is, this is a loader function right here that I created. That does what we have been discussing so far, where it creates the script tag and affects that to the page. Except I'm calling this loader function only after page load is actually completed. So what is happening now is that I'm explicitly waiting for the page load to complete and only then am I adding my script tag. The benefit is, so this gives me two benefits, right? I did not even consider this when I was waiting it, but it turned out that these are solid benefits. Number one, if my server is down, it does not affect the site at all because his regular page load cycle is already complete on the page before my code is even involved in the process. Number two, and this was quite a pleasant surprise, is that the entire bandwidth that the end-user has is available to finish loading up his resources first. And only after his resources are complete does my code start jumping into the picture. Now, this might look like a small, minor thing, and it is actually on computers that I've got FAT pipes connecting them. But on computers that I've got, you know, like you're making mobile phones, right? Where you have got bandwidth-related problems. If I can load my code as late as possible, that gives immense benefit as opposed to loading my code parallely along with the other code, right? Where I'm consuming bandwidth simultaneously with others. So that's one benefit. Admittedly, this is not for everyone because obviously, for example, if you have Facebook, or if you're using Facebook on your page, you want the SDK to be loaded as quickly as possible so that you can start playing with it. In my case, that is not the case because you're not going to play with the error-ception object. Ideally, error-ception should not even be in the picture because ideally, your sites don't have errors in them, right? So error-ception is sort of basically stepping out of the process completely and letting you do what you want, letting you do what your site is supposed to do so that you know how to interact with your object. I can add this code to Google Analytics too so that my code loads first when I use Google Analytics, I can use it. Sure, sure, sure. So if you're courageous enough to play with the Google Analytics loader code itself, you can try this for sure. In fact, I'll put up these presentations, these slides for you so if you want to give it a shot. But the only real difference you will get is that Google Analytics loads parallely. Error-ception, in this case, loads later. So it's that minor difference that you get. So, yeah, I already spoke about this. The first benefit is that I'm stepping out of the page load process completely, letting the site load as usual. And secondly, that I'm allowing the full bandwidth of the user to load up the page and I'm not consuming any of that bandwidth while the page is loading. So essentially, I have prioritized the page resources over my own code which is good, which means that and this philosophically works fine with me because I don't want a philosophical standard I was taking when building Error-ception is that I'm not going to affect your page load in any way whatsoever. Me being a JavaScript programmer, I know that that is important to me when I'm building JavaScript tabs. And just because I've included some third-party, something that I'm not in control of, I don't want that to start playing with my page load process. I don't want that to start affecting my page performance. So this was a philosophical standard I took and it plays in very well with that. Also, in case my code does not load, for whatever reason, it has absolutely no effect whatsoever. So that's great because that second descriptor that is to be appended will not work and that's fine. There's no effect whatsoever. So that wraps up part two. Part three, this is very interesting, is planning for an API. This was a revelation for me because it made things very mind-blowing facts over time.  If you're planning for an API, you want to make an object available to people and people are going to play with that object. Now, how do you make that object available to people?  Now, if you take the case of Twitter, it's rather simple because they've got a script that you include the script. It's a blocking call, so as soon as the script is done, you have the better object to play with. Simple. Except we have discussed that this is a horrible, horrible idea because you're blocking. We are talking about asynchronous loading instead. So there are several mechanisms. One is that we can use script.onload. Script tags, since we are creating them dynamically, have got an onload event on them. So you can have a listener assigned to onload that will be fired when the script tag is loaded. But that has got edge cases now. What if your script tag is 404s? How will onload fire? Will that fire by saying that, yes, onload is done, but I have got an unpossible page? You know, you have to handle that now. Secondly, honestly, from experience, you do not want to have too much code inside that snippet that you are passing on to the person. For two reasons. One is that it's a lot of code. You don't want that there to be copy pasting a lot of code into a script. Secondly, you want to have a lot of control over that code yourself because if there are bugs, the more code you have, the more bugs there are. You want to keep that code size to a minimum. And if there are going to be bugs, you would rather have them at a place where you can control the deployments later. Now if I have asked somebody to copy paste the snippet onto that site, I have no control over that once it's been copy pasted. So if I have to do maintenance on that, it's going to be very difficult. So I'd rather keep that chunk as low as possible and try to keep as much code at my end as possible. So I didn't want to have script.org and all of that logic sitting over there. So what are the options that are available to make this even smoother? What Facebook does is interesting, and this was the first cue for me, is that they ask you to define this function called fb async in a horrible name, but forget about that. So the point is that you define this function and Facebook tells you that whenever we are ready, we'll call this function.  And then they go ahead and they load their code asynchronously as they used to anyway. The benefit over here now is that... So the way this works is that when the code loads, it will have defined an fb object and all the paraphernalia that goes on with that. And then they will say that if you have got fb async in it defined in the page, that's what the code does, right? I've shown you that snippet, but I don't have that over here. But they will say if window.fb async in it and if the type of that is a function, then invoke the function. That's it, right? So they'll guarantee now that the fb will be ready. Another benefit of this is that in case the Facebook script does not load, fb async in it will never be called. And that's great. That means that your code will not be initialized. The user does not see anything. The user will instinctively hit refresh and it will just work. By experience, but at least things don't get... There are no errors that happen simply because of timing issues, right? Now, this is brilliant. It's awesome. I'll just outline the process for this in case you're interested. Step one is ask the developer of the page to define a global function, call it whatever you want. Facebook calls it fb async in it. Second is that you start loading your code, which is the rest of the snippet that I had shown over there. And then finally call the function that you had asked the developer to define before, right? From inside your code. This is one way of doing it. Now, there are write-only APIs. This is a special case and this is the interesting part. There are most of the... Most of third-party snippets that people use are actually invisible snippets that are writing to their services, right? These are trackers, these are loggers, these are apps like that. Erreception is one of them. So, there are write-only APIs. Write-only APIs have this interesting nature where generally you are not using the object yourself, or if you are, you're basically just asking it what to write.  You're basically writing to it. You're not expecting data back. Now, if you're not going to expect data back, turns out you don't even have to have a Google object to play with, right? And I'll show you how this works. And this is very, very interesting. So, look at this. This is like how there is the FB object. This is similar to that. The underscore GAQ object, which is the Google Analytics queue. I think that's what GAQ stands for. They have never spoken about this anywhere. That's what GAQ stands for. Google Analytics queue is basically an array. It's not even an object, right? It's just an array. Now, to this array, you are keeping on pushing what looks like commands, right? So, you're saying set account and you're passing it your account at it. You're saying track page view.  You're basically just pushing commands into a queue, right? And at any point, you can continue doing this at any point of time in your code. You can continue adding stuff into this queue and it doesn't matter. At some point in the future, whenever the Google code is loaded, they will start processing this queue, right? As far as you as a developer is concerned, you continue to write to this queue whenever you have anything to write and Google will keep reading from that queue and keep sending instructions to their server, right? The benefit of this is that there is no question about now waiting for when it will be loaded. Is there a global function that has to be defined? I would call none of that business, right? You're just writing to a queue and then later that queue is flushed, right? So, this is very similar to what error section does as well. Error section is also defined in the queue because we are writing to API as well. You know, there's nothing to read from the service. Basically, every time there's an error, go write that error to the server, right? That's all that we're doing. So, what we're doing is that there's a queue and then we're keeping on pushing errors to that queue and we start loading our JavaScript.  Now, there are tricks to this. What I do, for example, is after the code has loaded, I change this array into an object that has got only one method on it called dot push, right? And the reason why I do that is because now I don't have to pull the queue to know if there were any changes. The moment there is something pushed to the queue, I can instantly find out that there was a push that was done and then I can, you know, buffer that up and send it up, right? So, there are tricks that you can do. Google Analytics does this as well. If you look at the minified code, which requires a lot of, you know, it peels your eyes to look at that code because it's so minified, but if you ever have the, if you ever end up having the patience to do that, they do the same thing in the GAQ case as well, is they convert the array into an object with one method or dot push on it, right? So, obviously, this whole thing was driving up to a pitch so I'll, you know, I'll make the pitch really quick on one slide. Is that error section is high performance by design because of the reasons we discussed. And it is highly reliable by design because even if ours... So, reliable is a funky word because what I mean is that in case our servers go down and does not affect you, that's what I mean by reliable, right? So, it's highly reliable by design. And that's error section for you. It catches errors for you. You have got over 5 billion errors so far in major internet brands already. And I urge you to give it a look. That's it. Give it a spin. ErrorSuction.com. My Twitter handle is at ErrorSuction. If you ever want to give it a shot. Thanks a lot. Thank you. I must say this audience is far larger than I expected. I don't expect anything this big. Go ahead. Yes. I'm sorry, I can barely hear you. Right. Race condition of WhatsApp? You will not have that race condition because JavaScript is a single thread. There's only one thread. So, at any point you are either writing to the queue... Sorry, I'll repeat the question for the sake of the camera. Is that will there be a race condition in between when the code has loaded and when there are items being pushed into the queue? No, there will not be because JavaScript is a single thread. So, there is either writing going on or there is processing going on. You cannot have both happening manually. So, there is no question of a race condition as far as that queue is concerned. Any other questions? Does that answer the question? No. Go ahead. Is this the one you were talking about? Yes. Or the loading? I had two slides on people. The age limit is... The loading. This one. All right. So, this is basically where there is... The developer is asked to create a global function called FBA Syncnet. FBA Syncnet. And this is just a global function that's available on the page. Later, when the code loads, inside of the Facebook's SDK code, which is FB.js or whatever, inside of that code, they are checking if there is this global function called FBA Syncnet defined. And if it is, they just invoke it. The point is that at this point, FB.js or whatever is their code has definitely created the FB object. We are sure that the FB object exists. So, when this function is called, FB is definitely ready for use. Before this function is called, it is not, because the code has not loaded yet. But once this function has been called, we are sure. So, this is basically... It's like an on ready for the FBA sync, for the Facebook code, right? So, that's how it works. What is the set object? Sorry, why should we not modify it? Set object, like string or typo. That's standard JavaScript practice, right? You're living in a runtime that is shared across a lot of people. What if I have defined a function, or what if you have defined a function that's called pad-left, but it has got a different signature from my pad-left function, right? You should never... I should not have to change code that is inside your environment. Because I don't know what you are expecting to do with it. You know what I mean? Nothing, not clear. Actually, but sometimes we need to reveal the method in prototypes, like... In general, suppose I am making some regular reference, that should be available to all strings. Right. Then I should... I must try to write that regular expression in string dot some expression from there. Right, right. So, there is a lot of debate about whether there should be modifying prototypes at all or not. I guess there are valid cases. So, let us say that you decide to change string dot prototype to have some validation method on it, right? For example, is email, right? You have the string dot is email. It's debatable whether that's a good idea or not, but let's say you decide to do that. Now, if you are doing that, and if I start to define an is email on the same string method, which one is correct? It might be different from your implementation. Do I even have the right to do that to your code, right? It's your runtime. Do I even have the right to add an is email to your string interpretation, right? I should not be doing that. So, that's why there's no modifications allowed to shared objects. Are they just smiling there? Any more questions? All right. Either everybody or nobody else. There is one good news for you is that it has changed the way they indicate the button now. You just switched to the ursync mode just a few days ago. You know, like... Is it? Yeah. So, now they normally use that one night and this must be true for the button. For the button, yeah. Even as of yesterday, I was looking at the at anywhere SDK, which is the entire API set. Right, right. And that is still forcing us to do it. But you might be right about the button, the tweet button you're talking about, right? Yeah, that may be as interesting. But was there really a reason for them to keep it that way? You know, because they claim that it has something to do with OAuth authentication and the experience associated with that. I don't buy it. It doesn't make sense. There's not just that. You know, they add this button, they also don't use ursync. They just give you a skip tag, you know. Yeah. I would like to imagine it just kills strange performance. It's not something that I would do at all. I don't like third parties doing that in my code. There's no way I would do that. Because I believe in something to do with the way they modified the DOM, yeah, because there's no reason I add this and do it off button. Both just keep us with tag here. Because back then, when I built, you know, I was building a similar button, right? So I inspected both these codes, yeah. Right. And I had the local option, but you know, I was in India and got a little scared and just took the straight approach and gave it to all my clients, yeah. So I also want to know why am I still doing this, you know. Is there? Yeah, no. There should not be any good reason to lock one's code. Like, I mean, if you're still doing that, I'll ask teams to understand it.  But there's no reason for you to still do that. You should move away from that. People will love you more if you do that. Is that it? So I guess, either everybody understood or nobody understood. But, you know, catch me if you have any questions. Thanks a lot. Thank you very much. It's a deal. I'll send you a Twitter. Yeah. Oh, that's... So at Eroception, my personal Twitter is rubbish314. My last name is Pius, I think 0.14. Okay. You know, so... Thanks.


In 1972, a French factory began importing high-quality, rare uranium ore from Oklo in Africa's Gabon Republic. Many quickly began to wonder where they had acquired such a difficult thing to make. It turned out that the uranium had come from a place which should have rewritten the history books, yet it seems to have been quietly brushed into the archives of the past. They found the site of origin had functioned as a large-scale nuclear reactor. Amazingly though, this reactor was in operation some 1.8 million years ago and was functioning for over 500,000 years. These unbelievable claims were not made lightly or indeed by anybody. They were conclusions by some of the greatest minds on Earth. For example, Dr. Glenn T. Seaborg, former head of the United States Atomic Energy Commission and Nobel Prize winner for his work in the synthesis of heavy elements, explained to the press why he believed it wasn't a natural phenomenon and must have been a man-made nuclear reactor. He stated that for uranium to burn in a reaction, very precise conditions are needed. The water must be extremely pure, much purer than exists anywhere naturally. The material, U-235, is also necessary for this type of nuclear fission to occur. None of the isotopes not found naturally in uranium. Additionally, several specialists in reactor engineering have also come forward to testify that they believe the uranium in Oklo could not have been rich in U-235 enough for a reaction to take place naturally. It must have, somehow, been a man-made operation. And new research has only deepened the mystery, confirming that water regulated the nuclear reactions in a cyclic pattern similar to that of a geyser. Alex Meschik and his colleagues at Washington University of St. Louis have determined that the Oklo reactor, which comprises several separate sites, ran for 30 minutes and then shut off for two and a half hours before starting over. The time is characteristic of water infiltrating rocks and then being boiled off once reaction started. The water all boiled away, the reaction stopped until new water percolated back down. This geyser-like activity also prevented a runaway reaction. It's amazing it didn't explode, Meschik said. Instead, it efficiently released energy in short pulses for an extremely long period of time. Just who could have possibly been around over 1.8 million years ago? Or more specifically, able to enrich uranium and create nuclear power? Is man's history on Earth really that old? It seems, according to numerous nuclear specialists and the compelling evidence they present, that is exactly the case. When Austrian explorer Arthur Poznanowski performed a study on Puma Punku in 1926, he later hypothesized that it was, in fact, one of the oldest archaeological sites on the face of the Earth, an ancient ruin dating back at least 15,000 years ago. Poznanowski was one of the first explorers of the modern age to have ever investigated Puma Punku's incredible existence, but as our regular viewers would have predicted, his hypothesis is staunchly denied by academics worldwide. Yet regardless of this, his sound reasoning, and indeed that of many other critically minded individuals, means that his theory is one many others have arrived at, thus it continues to have many supporters to this day. And although mainstream academia persists in their attempts to place this amazing and largely inexplicable site's date of construction within permitted timelines, claiming to have carbon dating done at the site which places its origins at around 500 BC, supporters of a greater age dismissed this dating as unreliable, and due to our own in-depth and many years of investigative experience regarding these ruins, tend to agree that the site is indeed far older, and due to their having been in Ice Age around 10,000 years ago, this dating made by Poznanowski would put it right where one would expect to have found it if it was indeed the work of a pre-cataclysmic civilization, with Puma Punku being a surviving relic of their incredible legacy. Additionally, archaeologist and researcher Neil Steed has also investigated a relationship with astronomical alignments. He discovered intriguing supporting evidence for this controversial opinion, finding that it was built to coincide with winter and summer solstice, and a precise alignment with the spring equinox as well. However, these events would have only been perfectly aligned with the temples over 17,000 years ago. We have long argued against a field of study that is not only assumptive in method, but is also conspiratorial in nature. Any dating of any relic which cannot be explained is merely an attempt to muddy the waters of understanding, often obscured with an in-depth volley of detailed and competent investigations into civilizations. We pause it merely re-inhabited said sites with a known recent well-studied history. This convincing tale of events, however, is short-lived if one explores any of the said sites with a logical eye. One soon finds that many characteristics on display are not only found globally, which on its own is compelling proof of a past global superpower, but the countless trilathons and enormous megaliths some reaching into the thousands of tons, along with highly advanced incredibly accurate yet unknown masonry techniques, all tell a story which academics who never seem to mention said features cannot explain. Not to mention melting pots of ancient academic anomalies such as that of Puma Punku. How can anyone logically claim that the astonishing precision on show at the site, along with the many basalt megalithic platforms weighing many hundreds of tons, all indicative of a past highly capable technologically advanced civilization once having been responsible and once one grasps just how many holes can be found within mainstream opinion? They can be forgiven for doubting said tale of events, especially when those who tell such tales actively attempt to conceal such unexplainable features. Who built Puma Punku? Is it really over 15,000 years old? How would one cut such precision stonework without precision machinery? It is a place which we find highly compelling. Over the past few years, we have touched upon many of the amazing and often extremely ancient sites which dot our Earth. Many of these spectacular achievements, indicating to the countless specialists, archaeologists, geologists, and others involved attempting unraveling of their true history, their true story of antiquity. On several occasions, we have been confronted with compelling and often conclusive explorative analysis which has often resulted in the retrieval of compelling supportive artifacts which have supported the claim of them surviving past cataclysm often accompanied by an ice age. Our sharing of this data has regularly received a mixed reception. The Sphinx, for example, which shows clear evidence of surviving this past event and subsequent ice age which involved a flood event. We saw that many were interested in this premise, yet not convinced of such claims. However, a gentleman known as Mario Bildraps has taken this theory and, if confirmed to be correct in his preliminary findings, may have established it as a fact beyond all possible doubt. A link to his website will, of course, be in the description. Mario, it seems, has been very busy. He has correlated the orientation of over 500 ancient pyramids and temples randomly spread around the world to what he claims is a 99% accuracy to the temperature changes during the last glaciation cycles. Most ancient structures, therefore, he has concluded, are hundreds of thousands of years old and not just a few thousand. Many of the pyramids and temples have been renovated over the millennia, new structures forming on top of older foundations, while the orientation of these foundations remain unchanged. Chichen Itze and Baalback are two good examples of this practice. He states that the proof is mathematically backed up from start to finish. He adds, the orientation of a building is purely mathematical because orientation is dimensionless or not materialistic. When we process the orientations of virtually all ancient buildings around the world, it reveals a profound discovery. He claims his research is so new, so innovating, that you won't find anything like this anywhere else, except maybe some copies of this original material on other websites. About 57% of the 501 randomly spread ancient structures that were involved in this research accumulate massively in five clusters of together just 20 degrees or 22.2% along the intersection line. This line is also a purely mathematical entity that runs from our current north pole to our current south pole, along a longitude of 47.1 degrees west. It appears a big chunk of his research has been directed towards developing a cardinal reference line, an imaginary line drawn upon the globe which could be used to match ancient structures to a past location of the cardinal points. Of course, if his mathematics can be peer reviewed and ultimately found to be correct, he could truly be on to something. His research will not only push back the theories involving the chronological development of man, but also prove beyond doubt pre-Columbian voyage up to a half a million years ago, among many other startling realities. The collective orientation of contemporary buildings points almost exactly at our current geographic pole. You might say that the collective unconscious orients itself to the geographical pole, or as many people would say, to the sun. The more data you gather, whether it's in a region, one country, one continent, or the whole world, the more obvious it becomes that contemporary buildings add up to the geographic pole. There is no contemporary culture defined that has a preference for a specific orientation other than a cardinal orientation. It is undoubtedly interesting research, which we implore you to peruse further. We will keep you posted on future developments regarding Mario's work. Many people from around the world have now, fortunately, been presented with and hopefully convinced enough thanks to platforms such as YouTube, particularly Egyptian constructional revisionists, to now realize that there are many, as yet unexplained feats of ancient engineering, which literally drenches these magnificent structures, and it's equally mysterious sandstone plateau below. Yet we further expose many other indicative features, which were seemingly impossible feats of ancient engineering, which we hope has helped a lot of people to realize that there are many fallacies in historical doctrine, many gaps in academic and curricular understandings. Many things dismissed with flaky strategies and theories which have, again and again, thanks to modern computer engines, been proven as impossible maneuvers. It seems many people, and a considerable amount of money, goes into keeping a stranglehold over the pyramid's possible origins and original function, inevitably shrouding these structures in a veil of secrecy. In addition to the original pyramid blocks and the enormous megalithic exoskeleton visible in a few obscure areas of the pyramid's lower regions, we have also in the past put forward the hypothesis that due to the advanced nature of many of the pyramid's casing stones and the drastic differences in ages they appear to be, all made with the same type of rock, thus to display such drastically different levels of erosion is undeniably evidence of them being installed at many different times. Yet, although claimed as being built within known history, no documentation of the installation of the blocks or indeed any explanation as to how these pyramids were built all remain elusive. Several different styles were put upon these monuments, we feel, at vastly different times within antiquity. We posit that they are clear proofs of a number of past civilizations conservation efforts, but due to these compelling and visible proofs, one has to consider that the great pyramid's origins are vastly more prehistoric than could ever be publicly accepted. And due to these features having seemingly survived, due to what we suspect was a number of considerable efforts to shield them from the environment by a number of different, extremely ancient, yet all highly capable, yet now lost civilizations, which we have identified in previous work as that of the Cyclopean civilization and the Polygonal civilization. But I digress. Many of you who have donated towards the channel and to reserve a book may be wondering when the channel's accompanying books will be published. However, I assure you, mystery history intends to go in depth regarding his and other findings surrounding not only the ancient pyramids, but also the many other compelling, seemingly impossible ancient legacies found throughout Giza's Plateau and many museums and many other controversial sleuth-gathered factors from throughout antiquity, creating the type of evidence driven, visually illustrated examinational content in which the books will be exclusively focused upon. All of these factors are reasons why the books will not be written hastily, as my knowledge grows, so does my understanding of what makes ancient ruins so enigmatic, and I believe, the larger my research, the better the go-to guides will eventually be. I just wanted to reassure you that mystery history has not forgotten about any of you. Returning to our opening statement, however, many are now aware that there does not exist a valid explanation for the construction of the pyramids. Even if one had unlimited slaves, it is not a case of muscle, but rather a lack of space in which to utilize such. Yet what many who have not explored Giza and the surrounding connected ruins on foot are often oblivious of the astonishing array of ancient temples, clearly dating from the pyramid builders, not only lost for eons in the sand of the Sahara, but has preserved some in astonishing conditions. Ancient Egypt, its great pyramids, its eight-sided Chiaps, it's incredibly well-preserved, once long in gulf temples, and the inexplicable stonework of ancient Egypt is but one of many areas from a world of ruins which we not only intend to unravel as much as possible, but it is an investigational struggle which we find highly compelling. When Austrian explorer Arthur Poznanowski performed a study on Puma Panku in 1926, he later hypothesized that it was, in fact, one of the oldest archaeological sites on the face of the Earth, an ancient ruin dating back at least 15,000 years ago. Poznanowski was one of the first explorers of the modern age to have ever investigated Puma Panku's incredible existence, but as our regular viewers would have predicted, his hypothesis is staunchly denied by academics worldwide. Yet regardless of this, his sound reasoning, and indeed that of many other critically-minded individuals, means that his theory is one many others have arrived at, thus it continues to have many supporters to this day. And although mainstream academia persists in their attempts to place this amazing and largely inexplicable site's date of construction within permitted timelines, claiming to have carbon dating done at the site which places its origins at around 500 BC, supporters of a greater age dismissed this dating as unreliable. And due to our own in-depth and many years of investigative experience regarding these ruins, tend to agree that the site is indeed far older and due to their having been in ice age around 10,000 years ago, this dating made by Poznanowski would put it right where one would expect to have found it if it was indeed the work of a pre-cataclysmic civilization, with Puma Panku being a surviving relic of their incredible legacy. Additionally, archaeologist and researcher Neil Steed has also investigated a relationship with astronomical alignments. He discovered intriguing supporting evidence for this controversial opinion, finding that it was built to coincide with winter and summer solstice and a precise alignment with the spring equinox as well. However, these events would have only been perfectly aligned with the temples over 17,000 years ago. We have long argued against a field of study that is not only assumptive in method but is also conspiratorial in nature. Any dating of any relic which cannot be explained is merely an attempt to muddy the waters of understanding, often obscured with an in-depth volley of detailed and competent investigations into civilizations. We posit merely re-inhabited said sites within known recent well-studied history. This convincing tale of events, however, is short-lived if one explores any of the said sites with a logical eye. One soon finds that many characteristics on display are not only found globally, which on its own is compelling proof of a past global superpower, but the countless trilathons, enormous megaliths, some reaching into the thousands of tons, along with highly advanced, incredibly accurate, yet unknown masonry techniques, all tell a story which academics who never seem to mention said features cannot explain. Not to mention melting pots of ancient academic anomalies, such as that of Puma Punku. How can anyone logically claim that the astonishing precision on show at the site, along with the many basalt megalithic platforms weighing many hundreds of tons, all indicative of a past highly capable, technologically advanced civilization once having been responsible and once one grasps just how many holes can be found within mainstream opinion. They can be forgiven for doubting said tale of events, especially when those who tell such tales actively attempt to conceal such unexplainable features. Who built Puma Punku? Is it really over 15,000 years old? How would one cut such precision stonework without precision machinery? It is a place which we find highly compelling. In perusing the amazing archeological sites within ancient Mexico, one will inevitably be confronted with a site called Cuiquilco. Just south of Mexico City's urban sprawl, a four step round pyramid that like all ancient structures has secrets to tell, a secret like the Great Sphinx, which can reveal to us all through overwhelmingly physical evidence, a true understanding of its true antiquity. The academic world with its papers and books abundant, funded, researched and mass published, supported by an institute of individuals who seek to destroy all things which disagree with them. These people would have you believe that Cuiquilco was constructed at the earliest in 300 BC. However, nature would tend to disagree. Cuiquilco was hardly more than a small mound with some scraggly trees growing upon it back in 1922, before Brian Cummings received permission from the Mexican government to begin an excavation at the site. During initial excavations, Brian noted that the well-known Padegral lava flow had partially engulfed this ancient structure. He became increasingly interested in the site after learning that geologist George E. Hyde dated the Padegral lava flow at over 7,000 years ago. Additionally, when Brian's workers successfully cut deep trenches down into this ancient lava in an effort to locate the base of the pyramid, they not only passed through the bottom of this layer, but continued through several other areas of sediment before finally reaching the high quality paving at the original level of the structure. In fact, over 18 feet of ancient sediment lay below this 7,000-year-old volcanic activity, including two other previous lava flows, each separated by layers containing artifacts from no less than two other separate inhabitations of the area by civilizations of varying advancement. Also, evidence of a past submersion in no less than six feet of seawater, another ancient structure lending credence to the Great Flood. The pyramid itself once masterfully constructed using uncut chunks of lava. Amongst the first layer of erosion and decay resting just above the original foundations of the structure, it seems we're remnants of a primitive civilization that moved into the area shortly after apparent catastrophe. Is this proof of our civilization once being destroyed? Along with this initial primitive civilization is an extremely ancient lava flow, which is followed by a dramatically far more advanced civilization. Amazingly, Cummings successfully produced dates of over 10,000 years for the original sediments, more than 2,000 years before ancient Egypt was said to have been built, though we feel this was most probably just a re-inhabitation of these powerful pyramidal structures. And although he also found dates far older than 10,000 years, he reluctantly put them down to anomalies and did not record them. After the details of this excruciating and highly efficient research was understood, Brian Cummings predictably experienced the cold shoulder of conspiracy. It seems mainstream archeology, along with the well-known overpaid figures who partake in this limited public discussion have successfully avoided the subject altogether. Indeed, it would require a dramatic rethinking of the largely accepted chronological development of man. It would also require an extremely tricky maneuver in verbal acrobatics to get away with explaining the presence of a highly complex, highly capable, highly advanced ancient civilization, building impossible structures well over 10,000 years ago. And although it seems that mainstream archeology has successfully avoided having to make such a spectacle of their belief systems in their attempted denials of such evidence, it will continue to be something we would like to see.


So we're here at Heros, so who are you? Hi, I'm Stefan Keitmeier, responsible for the business unit display and semiconductor and we are here displaying as the business unit the conducted polymer PDO. So, you're doing all kinds of products, so what does Heros do? So, Heros is a pretty historic company, it is now 160 years old, family owned and it's specialized in precious metals. 100, how much? 160. 160 year old company? So it started up with the technology of how to melt platforms and now it has diversified into many, many different business groups and this includes things like quartz glass, light sources, special light sources it includes metal parts but also know something like a polymer like PDOT blue liquid. So where are you from? So I'm from Germany, I'm located in the Cologne area in Leverkusen which is the former Bayer plant site. The former what? Bayer plant site. You know Asprin? Asprin? Bayer? Asprin? So we are located on the old plant site. And where is Heros? Only everywhere? Many places? The headquarters is in Hano, near Frankfurt. It has in total I think 125 locations. 125 locations. Alright, so we're looking at all kinds of different things and which parts do you work on? So I work on the conductive polymers and the conductive polymers basically are blue liquids which are used for coating and after coating they basically transfer into transparent conductive film and out of this conductive film we have to try to demonstrate over here we have nice objects which were made by partners from us on this conductive film they glued LEDs and what you can demonstrate is that the film really transfers the electrical current and the potential over here a little switch goes on, goes off and also it dims up, it dims down. So this is the price that you give out for the best of show awards right? Something like this, so basically these guys this demonstrator which was a very early one the intention was to attract people in links and that's actually what it does, it attracts people. People ask what is it and then we can explain all products. This looks great, so how soon are they going to be like furniture in IKEA like this or something? I would love to see this. Actually after making this demonstrator for us this company actually thought about buying a pick and place automatic and starting to sell this film. Buying what sorry? Buying an automatic, I mean this was handmade so somebody had to glue all this by hand on the film now using an automatic to glue the LEDs on the film. So automatically glue it? Yeah, that's a pick and place automatic. So they want to buy that and they want to make millions of these. So what are you showing right here? This one. What is this? So this is a little bit more realistic. This is a part you could find in a tablet computer. This is the touch panel and it locates the finger. And so you do many of these already? So with this principle we have already commercial, commercial devices out there. I would like to disclose who it is but unfortunately I cannot. So does this potentially go into flexible, unbreakable, plastic or where does it go? It's currently going into consumer electronics. And it could be glass, it could be... It's currently some sort of plastic device. Plastic device. It has some sort of curvature so it is using the special feature of PDOT meaning PDOT is flexible and can be easily shaped into different shapes without breaking. And so the mechanics of PDOT are definitely something which is unique for this column. So what do you think about the future of unbreakable phones and tablets and flexible and bending phones on purpose? I think basically two things. First of all I think people would like to have something different than just flat areas. They would like to have it shaped. What is currently done is shaping it two-dimensionally but having it a little bit more tridimensionally shaped is a clear challenge because then something like thermal molding is necessary and this is not possible with current materials. So you're talking about a tablet that has different heights and has a touch it and maybe you make a hole in it. And maybe like a touch screen which forms to my fingers. And that could give feedback. And best would be it can give you feedback. I mean this is definitely necessary if we think about an automobile where the driver has to look through the window screen and not through the touch screen. So you would put your hand under a special future tablet like massage your hand or it'll do something like it'll tell you where to go or something. Or maybe I mean it would show me there are certain buttons on the touch screen which I just feel I can't see. But maybe I can feel this is the yes button, this is the no button. I don't have to look at it. But you need some kind of motors or something inside to push this stuff out. What would that be? There are various technologies. Traditional vibrator which is already used in cell phones. Then there are, this can be done just mechanically. It can be done electrically. And there are also technologies out there which just use an electrical field to get a feeling into my finger. This is possible. It's also possible with our material but we haven't incorporated it in our devices yet. And this is just one thing, there's many things. Many things are possible. One thing I would like to show is very, very simple but it really shows you the principle. This is very simple. This is just one pixel touch switch. So I touch it and this will light up. I don't touch it, it goes on. There's nothing on the surface which is conductive.  Just touching. Nice. And so this curvature is not possible with standard materials. Nice. That's cool.  Do you like this one? This is a smart window. So electrically I can switch it from opaque to transparent. It's totally opaque. It's totally opaque and this can be used for privacy. It's just made out of plastic. So it's a film. A couple of films that have been put together to drive this. This is the so-called PDLC technology. This is commercial. The film, the film is commercial. All right. So what do you think about the ID TechX? The show. I think it is great. We're having a lot of traffic at the booth. And we hope to make lots of contacts. I mean the main reason here for us is to make business.