Hi good morning and welcome to today's products and focus so most markets have actually managed to spike up a little bit higher as the market has now made the decision that the Fed statement due tomorrow is going to be a little bit more dovish than what was initially expected because of some of their commitment coming out of the US it's not quite as pro early interest rate hike as some traders would like so people begin to bet now that they're probably going to remove the word patience but then still marry it up to the macroeconomic data improving and that's why we've seen such a big turnaround on the against the US dollar and see more of the equity market spike up the level higher including the US 30 so we're trading above 17 895 we actually hit 18,000 last night we might have another retest that we're on today so moving on to UK 100 you can see that we actually broke through 6 to 771 yesterday stayed above there I'm moving on a little higher just now that also coincides with the 55 period SMA that might eventually kind of add support to 6 to 771 the MACD was going to cross the zero line that stopped right now so it might end up pushing back up that level higher the other technicals are still neutral with the RSI just slowly taking up crossing that 50% level so if we do begin to see that little bit more upside momentum right there 6771 could be the support you might have a little bit of potential resistance at the 21 period SMA followed by 6906 moving on to Japan to 25 it's soldiering on that little bit higher as well and dollar yen quite volatile still kicking around 121 we're almost halfway towards our next potential resistance at 20,868 decent day yesterday another strong day again today currently trading at the top end of his range moving on to dollar yen very quickly 121.87 is the resistance to be it's not done it yet it's flattening out quite close to there could be a consolidation move until we get a break one direction or the other technicals are also flattening out with the RSI and slow to cast it both overbought but no signal yet to sell but we'll soon see with the US dollar we've got a decent bit of macro data to come out I think over in Japan as well the Bank of Japan governor is due to speak very soon if he's not spoken already talk talk about more about the the Japanese stimulus and the fact that they don't have to go to too heavy-handed to begin with and that's probably holding dollar yen back a little bit moving on to Kurokawa's taxes to finish things up we actually hit a six-year low yesterday still moving lower again this morning 43 spot 29 is a potential support level fall by $35.30 from a technical analysis perspective on higher inventory data as ever gold probably quite volatile even though the dollar has rallied against the sterling and the euro we're not seeing that interest rate aspect filter on to gold which is actually just move I had a negative day yesterday and still slowly moving lower towards 1137 was the next potential support level as well so let's finish up with your dollar your dollar positive day yesterday positive again today still in the middle of two ranges there's really not much to talk about in that regard there isn't any specific momentum in any one direction or the other we have seen a little bit reversal of the US dollar and if you look at GBP USD kind of reversal trading back above one spot 48 13 we haven't followed through so far this morning this looks to be quite the strong pivot level almost go across on the RSI and we are certainly crossing over in the stochastic but we've not yet crossed back through that 20% level which would be the reversal signal that many traders are looking for we do have a death cross appearing on the moving averages however that'll be adding slightly more pressure so all depends what the FOMC comes out with on Wednesday so economic day wise you've got your own CPI due today the ZDW business report so the things that would be big for for your dollar but you're pulling up and get a huge amount of movement until after the FOMC to be honest and we fast forward on to Wednesday you've got the Bank of England minutes unemployment claim data weekly petroleum sales and then you have that FOMC meeting where people will be looking over that statement with that with a lot of interest so as ever keep your eyes on the chart forum make insights popular going forward and join me again tomorrow to find out what happened next


What's up everyone? It's your girl Kenzie here from Layton Sports Cards, and I am ripping a personal for Jeffrey U We've got a 2022 Bowman Draft Sapphire Basement Buh Sapphire Edition Baseball box as well as a 2022 Panini Mosaic Choice Baseball. Alrighty Jeffrey Good luck. We're gonna start with each choice I feel like we got the case hit already out of optic. Um, I don't know. It's been a minute. I ripped one box of 2020 optic earlier and one box of 2021 optic as well neither had like humongous hits and um Been a minute before that since I ripped that so I have no idea if the case hit or big Big card is lurking in one of those All right, here we go silver Tariq Scoobal rookie mosaic Matt Brash Mariners Our choice is choice exclusive Nolan Aronato Carnals love this insert Ryan Sandberg on the 1980s stars Such a cool-looking card our mosaic rookies we've got Jake Burger White Sox and Joanna Done Adon for Washington First auto up. We've got red Jake Brents Jake Brents rookie Royals and we have an Aaron Ashby Brewers crew Rookie out. All right, that will do it for the first box now time for 2022 Bowman draft sapphire Again, all of these cards will get sleeves and top load of for you Jeffrey Good luck. Let's see some nice first Here we go Got green on Nick Bittison first Ryan Ritter first Jake both called her first green first Yankees is gonna be a Tristan Veerling 21 of 50 21 of 50 on the green got yellow price Hubbard first Jordan Sprinkle first a Betty Montgomery Yellow not a first for the angels. We have a denser Guzman 35 of 99 angels Because I said that Uh Dylan Ray Ivan Melendez first nice one there And these top guys are harder poles for sure a Luis on Hella Cunha and Elijah green Wow, what a pack there Melendez and green in the same pack more about Mizoroski first Yiddie cafe and Kevin pirata first another nice name It's a nice box Burgola trace Sweeney Zach Veen and Sal Stewart first John Kenzie Noel Paciola first Quava and a JR Richie first Valera Tamar Johnson first Wow, what a box of some firsts Nice one there Danny Deandrade and Dalton rushing first Dodgers last pack here Come on holiday We have what the top three Fernandez Jayce young there's another one my gosh Jayce young first Taylor Santos and a Justin Boyd fabulous box of Sapphire there. Thanks again, Jeffrey. Congrats on the hits We'll get them right out to you


You talk about us nigga.


Welcome Emmanuel X and welcome, Shai Walsner. Thank you for joining us and thank you for doing this interview with us. We are very happy to have you here. Very nice to be here. Great to be with you. So this is a special moment for us. I mean, it's a special moment because we're doing the interview, but it's also a special moment because Arnold Schoenbeck has just entered the Hitler catalogue. Arnold Schoenbeck's music has become copyright free in most territories in the world in 2022. And this is why we started doing urtext editions of his chamber and piano works. And actually three works are about to be published very soon. The three cycles for solo piano. The piano pieces Opus 11, Opus 19 and the Suite Opus 25. And we are very happy that Emmanuel X and Shai Walsner have joined this project and have provided fingering for these three cycles. So that's very special. Thank you for doing this for us. So Arnold Schoenbeck's music is new to the Hitler catalogue, but it's also still new for most of us because it still sounds new. It sounds modern. And I was wondering what makes this music modern actually? It's about 100 years old. So it's not really something, something recent, but still many people think it's like the most modern experience they can have in music. So what do you think? Why is that? Well, I think there may be, there may be two factors. First of all, I think it is actually great, great music. And in that sense, great music like the great music of Beethoven or Brahms still sounds new and still sounds interesting and challenging. The Rite of Spring is an example of a piece that's, you know, 110 years old and still incredibly challenging and exciting and fresh to everybody. I think the same is true of Schoenberg in that way. Also, there's, there's kind of an aura about him, the idea of the father of the 12th tone system, the radicalization of getting away from harmony, which people attach all the extra musical stuff. I think the name Schoenberg on the program always inspires either some kind of fear or some kind of excitement and love. I think, I think it's both actually. I would, I would totally agree. I would also add that apart from the reputation that Schoenberg has, I think there's something about the sound that he gets from the piano. He loves this dry and sound with not too much pedal. And I often think, you know, it's kind of like the naked sound of the piano in a way. And just like when we see a nude painting or a nude photograph, you know, it's always a little bit startling at first. I think there is a little bit of that in his sound, you know, in the piano music. Nobody else quite does that, I don't think, you know, he's not afraid of exposing the sound of the piano without enveloping it in fancy pedal. Or, you know, he just lets it be as it is. And I think that's part of it, you know, he takes courage to do that. And he certainly had a lot of courage. Yeah, definitely. So how did you feel when you met Schoenberg for the first time, when you met his music? Well, actually, maybe I should start because I'm so much older. My first experience with Schoenberg at all was actually because there was a piano competition in 1974 in Israel. And one of the required works, there was an actual required work, and that was the Opus 11 piano pieces of Schoenberg. I had never heard that music. I had never seen it, but I had to learn it because I was going to enter the competition. And my first attempt at it was actually fairly benign. I realized that some of it felt a little bit like Brahms. Some of it, as Shai said, you had to think about lots of dryness in certain areas and the contrast between that and the maybe the pedal points and the long things was also very interesting. As I practiced it, it became very much second nature. It became a perfectly normal kind of music and very beautiful and very convincing somehow, very powerful. So you felt there was a great composer at work, absolutely. Shai, what about you? My first exposure was actually with the Suite Opus 25 as a student. My teacher at the time made me play it. He said, you're going to learn this piece. And I thought, okay. And I took a look and I thought, this is crazy music. What is this? How is that a gavotte? How is that a minuet? And then there was a switch after a little bit. I thought, wait, this is crazy music. This is great. This is great in a great way. This is so much fun and so original. And actually, at first I thought, oh no, I have to now analyze this and learn all the tone rows and the inversions and this and that. And then I thought, wait a minute, no, you don't need to do any of that. It's just the energy is explosive and every note is incredibly potent and exciting. And it's angular and it's just a terrific thing. And so I actually fell in love with it after a while. And maybe I could also add that my first exposure to the suite was hearing a recording of Glenn Gould playing it, which was unbelievably exciting. And my second exposure to the suite was hearing Shy play it, which was just as exciting and fabulous. And I have to add that the first time, actually, maybe even the only time that I heard it played by someone else on a recital. It's not played very often, which I hope our new edition will change. I hope so. Still, you know, as a student with Manny at Juilliard in New York, I remember going to a concert by the late great pianist Peter Serkin. And I remember seeing the program in advance and I saw that he was going to end his recital with this Opus 25. He was going to end it. I mean, forget programming it, which very few people bothered to do.  And then I went to the recital and of course everything was great, but the suite, I mean, he ended that program like a rock star. I mean, it was like he ended it with Islam. And I'm not kidding. It was so exciting and so convincing and it just blew me away. The end of that gig, I will never, never forget how he played it.  Thank you. That's fabulous. Because I was wondering, because especially the suite is so complex, at least when you look at it at first sight, it seems very complicated. And I was wondering, do we have to know about the complexity or can you just listen to it as listening to a piece by Brahms or Beethoven? I would say that it doesn't hurt to be aware of what Schoenberg is doing. You don't need to analyze it note by note. It doesn't hurt in the case of the suite, you know, to just know what the tone row is because he has the B-A-C-H letters in it, which is the key. But that's more of a fun fact, you know, it's just, it's an homage to Bach, but it's not necessary for the interpretation of the piece. What is necessary is the same thing that's necessary for interpreting Brahms or any of the great composers. You know, there are phrases and there are gestures. Every couple of notes are incredibly expressive. And I think, you know, you want to establish the character of each movement and to have a certain trajectory to the piece. But that's really no different from interpreting Brahms. And I think Brahms is very, very close to this music. Oh, I think I agree with every word that Chai said, and I think that's true of pretty much all of his music. I don't think he intended the system to be the thing that people listen for. I think he intended the music to speak for itself. So what's your experience in teaching this music? Is it difficult to convey what Schoenberg meant? I mean, how do you act as a teacher? Wow, that's a tough question and maybe not really related to Schoenberg exclusively. I don't know that if you listen to someone playing this music for you, I think really you make suggestions according to the way you feel about music in general. I don't know, Chai, I don't know if I'm explaining it very well. I'm sure you can explain it better, but the same way that you would be able to help with Brahms Opus 118 or Beethoven Opus 110 or not be able to help, which very often happens, that would hold true as well for Schoenberg Opus 11, Opus 25, Opus 23, any of it. I think it's not that different in terms of teaching. Right, no, I do agree. I think the mindset that you want to approach basically any piece of music with is what's going on here. Where is the idea? Is this note related to that note or to this other note? What's the motif? And especially Schoenberg, because it's so polyphonic and so contrapuntal, it can be easy to get lost in the web of ideas, but it's very coherent. There are phrases, like I said, there are themes. And just like in Brahms, you want to see, well, how long is this phrase? Is it four bars? Is it eight bars? And as soon as you map these things out, your work is basically done. And all you need to do, so to speak, is to bring it across. You just need to see how the music functions. And as we said, his music doesn't function that differently from Brahms's and Beethoven's. And so you don't want to convey that to your listeners. Sometimes you feel there are very many indications. There are many expression marks. And it's probably even more true of Weber than it is of Schoenberg. But when you look at these, sometimes you feel like you're doing a roadmap, you know, of this note should be louder, this note should be softer. And sometimes it's just, as Shai says, probably important to see the idea behind the way the phrase flows, the way, what is the intent of it? Is the intent of it to be exactly five against four? Or is the intent of it to be rubato-ish, for example? And so I think, to some degree, maybe one can help with that when one is teaching. Let's talk about your job you did for Heine Lehm. Because Shai provided fingering for the Suite Op. 25, and mainly you provided fingering for the pieces Op. 11 and Op. 19. And I was wondering, is there anything special about the fingering you provided for these pieces? I would say to go back to Shai's point about the idea of letting the piano speak without necessarily a lot of pedal. I think because of that, maybe you have to be quite careful about the notes that need to be held and the notes that need to be short. And you need to do that with your fingers as opposed to doing it with the foot. Probably more in Schoenberg than with certain works of list, let's say. The pedal in Schoenberg is probably more of an expressive device rather than a crutch or anything like that. I think probably in that way, it's good to think of playing a Bach prelude and fugue without any pedal at all. Yes, I think the pedal less sound does guide the fingering because you really want to make sure that things can be legato, for example, without relying on pedal. Sometimes you have to, but still I think that really narrows down what's possible and what's smart to do in this music. At least in the suite, I thought was important and some people may disagree, but because Schoenberg was not necessarily a pianist the way list was, for example, I think it's probably more common to have to redistribute certain things between the hands. Some things that are written for the left hand may be just so much easier if you take them with the right hand and vice versa. Personally, I think he wouldn't have cared. When you play through this music, it looks like somebody who is a non-pianist sat down and really tried to make sure that it's playable, but he's not a pianist. Ligeti is the same way. His music is very hard and you can tell that he really sat down and tried to see that it was playable and then it's still hard. But the same is true for Schubert, you know, I don't know a single bar of Schubert that's comfortable. I agree. I agree 150%. It has to be this way. That's part of the character of the music. Me, I find it immensely endearing that it's awkward. I think it's part of the expression. It's part of the nature of the music and sometimes certain adjustments that really do not change the music but simply make it more approachable. If you change the distribution of the hands, I think in this music is totally okay. So I tried to make some suggestions which hopefully work for people in that direction. I'm sure it is. It's very helpful. And we probably should add that, of course, this is just suggestions.  That's completely normal and totally personal as Shai says. So just, you know, by no means is this anything written in stone. May I also add that you, Norbert, have been amazing in clarifying a lot of the stuff that I got wrong and making sure that it all got correct. And obviously you are very involved in this and you can play all this stuff with no trouble at all. So thank you so much for your help with this. Well, thank you. Thank you, but that's not really part of the difficulty, I think. I think it's difficult to invent fingering and it's always the easier part to edit fingering and to try it and to think about what could be added here or there. So, well, it's my pleasure. So to close, I was wondering if each of you could just close with a very short statement. Why should we study or why should we play the Suite Opus 25 or why should we study and play the pieces Opus 11 and 19? Well, I would say that the Suite Opus 25 to all our colleague pianists out there, it's a much more effective piece than you think. Many ways to program it in intriguing ways. It can spice up any recital program and it's extremely rewarding to play physically and musically. Yeah, and I think for me, for the Opus 11 and Opus 19 pieces, they're just beautiful expressive music that should be played as much as anything that's normally played. I believe that it's wonderful, wonderful music. Of course, Opus 19 is a fabulous, it's six minutes long, I think. And it's a fantastic program interlude between, let's say, a Mozart or Beethoven sonata in the first half. It's a fabulous opener for a second half. It's incredibly sensitive, atmospheric, beautiful and touching. And I think that's Opus 11 is just beautiful romantic music that can be played instead of playing three Brahms intermezzos. There's no reason you can't do this. And it would be exciting and different. So for me, it's, as one would say, a no-brainer. Wonderful. Thank you so much to both of you. Thank you for doing this interview with us and thank you for contributing to our editions. And I'm really very happy and proud to have both of you in our project. Thank you very much. It's an honor for me, I know, and I'm sure that's, yeah. It's a great, great privilege. As a kid, you know, every music that I consumed for the piano had the familiar blue cover on it. It means a lot to be part of this now. Thank you so much. Thank you. Take care. Bye-bye. Bye-bye. See you soon.


Britain's media and politicians have apparently had plans in motion for this moment for decades. When a royal passes away, our lives are not supposed to carry on as normal, which meant at around 12.15 today, anyone watching any program on the BBC saw it interrupted by the following message. We are interrupting our normal programs to bring you an important announcement. You're watching BBC News from London. A short while ago, Buckingham Palace announced the death of his Royal Highness Prince Philip the Duke of Edinburgh. In a statement, the Palace said, It is with deep sorrow that Her Majesty the Queen announces the death of her beloved husband, His Royal Highness the Prince Philip Duke of Edinburgh. His Royal Highness passed away peacefully this morning at Windsor Castle. Further announcements will be made in due course. The royal family joined with people around the world in mourning his loss. BBC Television is broadcasting this special program reporting the death of the Duke of Edinburgh. That message and that national anthem was played not just on BBC One and BBC Two, but on every single platform the BBC have. So if you listen to six music, if you're listening to one extra at about 12.15, you heard that announcement and the national anthem. Of course, I don't need to tell you the Prince Philip the Queen's husband has died at the age of 99. You heard it in that announcement there. Now, as you can imagine, it wasn't just the BBC and their various platforms that burst into action on receipt of that news. It did feel at times a little bit like living in North Korea. Every TV channel, every radio station or almost every radio station reverted to specialist coverage of the Duke's death. One of the scenes that I thought was most striking as well was that this wasn't just confined to television and radio. If you were walking around in the streets, you would have also noticed what happened. This was Piccadilly Circus today. I suppose that well, they've taken down whatever advert was there and replaced it with the news about Prince Philip. We're going to talk a bit about Prince Philip, but to be honest, from the perspective of a political analyst, I'm kind of more interested in the phenomenon of what has happened today. As I say, yes, it's incredibly sad when anyone passes away, especially if you've been married to them for over 70 years, which the Queen and Prince Philip have done. I'm sure this is very sad for the Queen, my sympathy with her. But this is one guy. For me, what's interesting here is what the state does, what the media does when a royal dies. We're going to go through some of those key moments because despite all the broadcasts having a year of practice for this moment, really, really intense plans. Often when I saw people who looked like they were about to break down in tears, I couldn't quite work out if it could have been stress because of the grandness of the event. They knew they would be going out on every TV channel or it could have been that they thought they have to look really sad.  I don't know. Anyway, I want to show you a bit of a gaffe on sky. They the host on sky delved into the circumstances in which Prince Philip met Elizabeth. Take it back to the beginning for us, Alistair, and tell us how the young Prince Philip of Greece and Denmark met the then Princess Elizabeth. Well, they were related. They were related. So they are both the Queen and Prince Philip are great, great grandchildren of Queen Victoria, which makes them third cousins. And I'm all for live and let live. I don't have any strong opinions on third cousins. Maybe I do. I haven't really thought about it. Anyway, that wasn't the issue that I think any of the broadcasters wanted to focus on today. There was one issue that none of them could avoid, though. And I think most of the broadcasters struggled with this one, which is Philip's history, Prince Philip's history of bigoted remarks or insensitive jokes, however you want to characterize them. Now, to see how they tried to strike the balance, we can take a look at part of the BBC's pre-prepared mini film about the prince. This has been playing repeatedly today. He channeled some of his restless energy into a boisterous social life. He and a group of male friends met every week in rooms above a restaurant in London, Soho. There were long, convivial lunches, visits to nightclubs and glamorous companions. By the 1960s, Philip's life was more settled. He and the Queen had completed their family with two more children, Andrew and Edward, who joined Charles and Anne. And he had found a new role for himself. Is it the 18th or do you back now? From his office in the palace, he promoted issues in which he had a personal interest. Forty minutes to get around the world. Well, it's going to be a bit of a rush. It may leave you a little bit muddled. Yet diplomacy seemed alien to him. He urged British industry to pull its finger out and complained on American television that the royal family didn't have enough money. Inevitably, if nothing happens, we shall either have to, I don't know, we may have to move into smaller premises, we know. He blundered on a state visit to China with the Queen. He made what he thought was a private remark about slitty eyes. It was a diplomatic gaffe which dominated the headlines and added to his reputation for making misjudged remarks. Well, they called it a gaffe. You might call it something else. I mean, 1986, pulled British students during a royal visit to China. If you stay here much longer, you'll all be slitty eyed. I mean, that's just our racism, isn't it? That's not just a gaffe. Obviously, he had a very complex life. It's not just a racist, but I mean, that's quite black and white there. How have you seen this whole?  The way that the media and all the politicians have been forced to or have willingly, again, I don't want to to presume have responded to this event. I think it's kind of surprised us the extent to which it's taken on this profile. But then look back, Princess Diana, even the Queen Mother, you know, the Queen Mother actually constitutionally didn't have a particular role. That was huge, you know, that was and that was really driven on by the BBC. Most people didn't really care. That's not to say that, you know, people shouldn't warn her passing or whatever. You go and knock yourself out. But I don't think most people, you know, thought it was this top of the agenda story. And it's a similar thing with Prince Philip. And it does speak to the role of the monarchy and the fact that, you know, it's a it's a constitutive key constitutive part of the British state. And I think, you know, people could say, oh, this is terrible, whatever.  Anybody who's lost a loved one or a member of their family, you know, knows where that comes from, obviously. But at the same time, if you were told, well, Monday, you know, we were told on April 12, things are going to go open again. Actually, that's being put back a couple of days because Prince Philip died. I think most people would say, hang on a second, that's that's a bit much.  Queen Elizabeth II, when she passes away, that's going to be this is just a dress rehearsal for that. And it's that is going to be an extraordinary few weeks. You know, there's a huge operation behind that. Massive resources, there will be, you know, regime coordinated morning. And you've said North Korea.  So this is just a this is a foretaste of what's to come. And of course, it's sad for the family. But I think most people, if you say Prince Philip, what do they think? Like you say, the gaffes, that often means plain or bigotry. And of course, it is also important to say he was 99 years old. You know, this is a guy who was born in 1921 before the Wall Street crash, before the Great Depression, before the Cold War, Hitler hadn't even had the beer hall push. Mussolini hadn't even come to power. So I mean, it is really an entirely different world. And that, to me, sums up what what today's been about. You know, we're seeing the confrontation. And this is a contradiction and attention within the British state and more generally right between modernity and between feudalism. The monarchy is a fundamentally feudal institution. And the way we're having the state choreographed morning is they want us to mourn like we're feudal serfs. Again, that's not an exaggeration. That's that's the role here. The monarchy is meant to be, you know, she's she's the incarnation of the state. Is it if you believe in that stuff, it's a really big deal when her husband dies, when the father of the next king of England dies, when the grandfather of his successor dies. Of course, most people intuitively in the modern real world don't think like that. So they look at this kind of state coordinated stuff and think that's a bit much, isn't it? Are you right? It is a bit much. Well, it's difficult when you say most people because I got no idea.   But I do have to at the same time, and this is sort of, you know, partly conflicted that I did find it quite distasteful, actually, when we're, you know, we've lived through a year of a pandemic. There were many days when over a thousand people died in a 24 hour period.  It was often people who were at the in older age, elderly people, people's grandparents.  For none of those, we did that. So I think what I find a bit off is how this is all forced upon us. And it's not even questioned that this is more important than anything else that's happened this year, when actually in the grand scheme of things, I mean, it's not really, is it? I mean, it's important to some people. But when we've had thousands and thousands of people die for, you know, due to an unnecessary cause. And yes, the TV channels have mourned a bit, but we haven't really seen newscasters who look like they're about to burst into tears, which is what we've seen all day today. It's just to me, I find it very, very odd. If anything, the comparative age of people that are dying from COVID-19 has been a reason to diminish their deaths.  Yes, it's 120,000 deaths. But actually, if you look at it as, you know, years lost, it's close to about 30,000 deaths, you know. Wait. So on one hand, you're saying that actually older people dying prematurely isn't so important.  Oh, my God, turn off all the TV channels for the next six hours. You're entirely right. It speaks to a fundamental hypocrisy, which, of course, is the only answer is all life is hugely sacred. It should be taken incredibly seriously. And people should mourn, obviously, if somebody they know is passed away. But yeah, there is a strange dissonance here, isn't there? Of the minimisation of certain people dying. I'm not saying by the BBC or whatever, but we all know those voices. Julia Hartley-Brure and Dan, what's his name? Michael, help me out from the mail on Sunday. Dan, no, not Dan Watson, him as well. Dan Wharton in the comments, Dan Hodges, Labour Troll. That's it. My apologies. Because his different names was Mum, so I thought, what's the name? These people were making a concerted effort to sort of minimise casualties as a result of fatalities, rather, as a result of COVID-19. And it stands in stark contrast. Yeah, I don't get any pleasure from from gleefully talking about the passing away of Prince Philip. I've never met the guy. I personally find it quite strange. You know, I'll be honest, I was happy when Margaret Thatcher died because her entire political project was about destroying half of the country. But it's different for somebody who went into a role they never really chose. So I have no personal malice to him, Michael, but I think it's such an important thing that you said there. It really does show that, you know, not all life and death is treated equally. It just isn't, you know, and that's the that's the that's the myth that we try and console ourselves with. It's just simply not true.  The only I suppose the only time actually know what, Michael, the only time somebody has died and it was during COVID was Captain Topp, where it did take on a sort of a sense of this is national mourning. But again, it's because that person symbolized something, right? And I mean, maybe you have some thoughts on that. Well, he wasn't born into it, right? I mean, again, it was a little bit arbitrary, but he had at least, you know, he'd earned his status as a bit of a national hero, whereas Prince Philip was, I mean, married into it. And now we all have to essentially pretend that he worked his way into it. Again, it's it's like you're saying it's we have to sort of acknowledge and celebrate his feudal status as if he has given so much to us. And that is a sort of feudal ethic where you have to say, oh, our Lord, we are here because of them. And it's like, where is the achievement? I don't really get it, which is the same. I'm not going to be on the street shouting Prince Philip achieved nothing because it's not, you know, it's not really the time. But whilst we're being forced to sort of mourn this as if it's more important than any other death, I just I find it distasteful. Returning to that thing I said at the start about how you've got effectively two sort of conflicting ideologies, you know, as a feudal monarch or a feudal monarch's husband or children, you don't need to work hard. It's not meritocratic. But of course, you know, the prevailing ideology since since the 1950s, arguably the modern ideology of the second Elizabethan age has been about, you know, if you work hard, you get what you want. And, you know, an ethos of public service. And this was something which was conscientiously kind of aspired to buy the royal household after the 1950s, you know, after Elizabeth II takes the throne, because they understood that, you know, what we can't just carry on as usual, you know, playing cards and having a great time. We have to we have to cultivate this sense that actually we're doing this in the public interest. Of course, it's nonsense.  The country would be perfectly fine with an elected head of state or actually with no head of state at all. One might argue or purely ceremonial president like in Italy or in Ireland or in Germany, of course, but in order to perpetuate consent for this institution, we need to hear all this garbage. And this is garbage, but how hardworking it was and how influential he was. And when he changed, he was a regular aristocrat who married a woman who purely by coincidence, because her uncle, you know, abdicated the throne becomes the Queen of England. That's it. You know, he wasn't he wasn't a remarkable man. He was a normal aristocrat who wanted to enjoy life and consequences turned out in such a way that, you know, actually he turned out to be an historically important person in so much as he's the he's the father of the future King of England.  It's so understated and so, you know, stiff up a lip. And then you just hear constant superlatives about everything and everybody. Where does it come from?


Don't turn that dial. This is the right station if you want to hear about Jonathan Thomas and his Christmas on the moon Are all you kiddies as quiet as mice you are well now That's wonderfully nice and those who are not they'd better be soon for here's some more news from the man in the moon Of course, you know what happened up there of how this Reboblin's took up a dare and broke most all of the laws and Kidnapped poor old Santa Claus of course you remember the wee little boy whose name is Jonathan Thomas of how he went with the man In the moon and made us a solemn promise to rescue Santa before Christmas night But now they've met up with a dreadful fright You see they set out old Santa to save and you'll have to admit they were braver than brave and They met three dwarfs who were really quite nice who helped out a lot with some good advice But then the wicked old witch of Rumpelstich cast a spell which worked very well Until they got into all sorts of trouble and then they remembered a word They had heard which the dwarfs had told them to say and this was the word which they had heard It was hun squee none squee giggly they and Then what do you think as quick as a wink there appeared a good fairy queen who knew of the witch and soon spoiled her scheme Or she gave them a charm to calm their alarm Was an acorn that they could take through a forest so deep which was enchanted with sleep And the acorn would keep them awake So they rode on their horse Gorgonzola of course until something dreadful befell a tiny white squirrel named whiskery bill Scared them all so they couldn't stand still and right off the horse for Jonathan fell And of course the spell worked beautiful Well there in the forest so deep for Jonathan Thomas as to the witch's promise went fast and sound asleep Well, there was only one token by which the spell might be broken for that's the way every spell goes and Here's what it takes to bring him awake a beautiful red red rose So the squirrel bowed his head and here's what he said. I'll go for the red red rose But then here's where the story begins again My visit to you and the man in the moon Oh now I know who you are. You're the witch For soon you speak the truth. I am the witch of the Rumpelstiche But where am I and how did I get here to answer that question? What you ask is a very easy task. This is the slumber cave both wide And deep for baths and nightmares And evil things Kaleep But how did I get here? You came here in your sleep But how could I do that if you please if I wasn't asleep? How could I go anywhere? For such a little boy you ask the questions well and by my trowel It is the magic spell Oh far away in the forest deep you still Fast asleep. Oh, how could I be there in the forest fast asleep when I'm here and then my spell Which you are so while you're asleep in the forest deep you are also Here as in a dream. Well, then I'd rather wake up because I don't like to dream I'm here But you can't do that because I'll wake up and then I won't be here anymore Explain to see you're very brave, but you're not your sleep is quite magic Hey, and all you saw well, but I'll bit the man in the moon will wake me up Because we have to go find Santa Claus in time for Christmas. Yes. He's trying good for you Or Mr. Gargantula the horse of which to rebuild a squire you've never seen him cry before He's you plainly see what's great bill and he's running over the snow faster than two times to why if you please Mrs. Which where is he going? Ah to the north of the magic red-red rose There's such a sorry pretty tool that he does it all for you If he's going for me, then why is it a pity because I have a plan and try to stop it if you can I'll stop that pesky whiskey bill Before he as you know by the day and we roses have gone to bed about your story and all the things you've said And I don't know if I could grow a rose in the color of red. Oh, that's quite right Or I happen to know the only rose I could grow would not be red But whiter than white or I've run out of color. It didn't last But you can get me some more if you will hurry real fast Did you can go until you come to the long rainbows and there you'll find a tiny Where the colors are kept and what's more you'll have to ask the rainbow people for the best of your colors And not the cheese and now don't forget what I've said. You must bring back only the very best And now good luck on your way at last we're on our way At least whiskery bill knows what to do now, and I'm glad aren't you I didn't think that there'd be any roses at this time of the Year, but I wonder if whiskery bill will have any trouble in finding a rainbow. You think he will oh I hope not don't you but then we'll find out in the next story of Jonathan Thomas. So don't forget to listen. I won


Hi, I am Lakshmi Biddhi. I work as a consultant with Kolhapra. Welcome to this talk about automated OAS testing using containers. So, first of all, what is OAS testing? OAS testing involves different components. We may want to test OAS installation procedure, which includes activities like setting up location, time zone, disk partition, creating accounts, network setup, etc. So, once the installation procedure is completed, we want to verify the boot process, whether everything was properly installed or not. And we may want to extend this test to logging into specific desktop environment. Optionally, we may want to test a desktop application too. So, all these form different parts of OAS testing. And also, the testing framework should retain the logs and record them so that we can examine them later. So, here is an objective for an automated OAS testing tool. The testing tool should be easy to set up and run in any environment. Let it be your personal system or a cloud environment, or even a CI CD environment like Jenkins. So, it should be able to run it without any issues. Next, since you are using personal laptops or desktop, developers can test their changes locally without depending on QAT. And also, the QAT tool should make it possible for new developers to contribute to the test cases. So, they must be easily add more test cases rather than spending time on learning new languages or something like that. Finally, the testing tool should record the logs and screenshots as test results so that we can examine them in case of regression or failure. So, there are few tools which can be used for this automated OAS testing. But it has several shortcomings also. So, here you can see list of tools. On this, OpenQA is probably the only tool which fits the requirement. But it has few disadvantages like a high learning curve and dedicated hardware setup. So, if you are not familiar with Perl, probably you have to learn it to write a test cases. So, those kind of things comes with it. So, we need a testing tool which is much more easier for newcomers or beginners to learn within few hours and just start adding test cases within a day. So, with that objective in mind, so here is the proposed tool. So, as you can see on this, it relies on Docker desktop. So, as you know, Docker is pretty much usable anywhere. You can use it on your laptop or as part of CI CD or on any cloud platform, you can AWS or GCP. Anywhere you want, you can just launch it. So, the idea is to use Docker desktop, make use of Docker desktop. And then we have a chemo running inside the Docker desktop. And if you are familiar with PY autoguite module, you should know it's a pretty simple, dead simple Python module which helps to perform automations. So, the idea is to run the PY autoguite module as a test controller inside the Docker desktop. So, we will be launching a chemo instance from the given ISO image and set up a remote viewer. Then finally, we will be sending, giving input files which can ask the PY autoguite module to perform specific actions. Let's say like sending keystrokes or mouse events, those kind of activities. Finally, all these activities are recorded uses using FFMpad so that we can go back in time and check where the failure happened. So, let's get started with how the test tool works. So, if you look at at the top, it has something called task. So, it can say, for example, if you want to test a Ubuntu or Debian ISO image. So, installation process we can say Debian installer as a task.  So, these action files in turn will tell you what to do, what we should look for. It may be like finding an image or sending a key combination or running specific script or mouse events and those kind of things. So, this is how the tool works. It has only one or two components majorly, tasks and actions. So, we will see what is task. Actually, task files are the files with the end with dot task. This contains one or more YAML file names. These files will be executed in sequence and each YAML represents an action. So, as you can see here, there is a directory called task and it has a helloworld.task file. And in this file, you can see there is a YAML file, there is couple of YAML files. One is openterminal.yaml and helloworld.yaml. So, these two are two actions. So, this task, helloworld task has two action files. So, we will next look into what these action files will actually contain. So, as you can see the actions files end with dot YAML and it contains a key value path in this following formats. Say for example, it could be key can end with dot png or dot key dot type or sh. So, each file key extension kind of denotes its meaning. Say if it is dot png, then you are looking for an image. The action is based on an image. If it is dot key, it is a keyboard action. If it is dot as such, then you are executing some shell script. So, as you can see the value is delay time. Delay time is like after performing some action, wait for this much of time before proceeding further. So, as you can see on this couple of screenshots below, on the left hand side you can see openterminal.yaml and then few png files are available. And if you check the openterminal.yaml, you can see it has nothing but a list of key value paths. Say for example, in this start menu dot png colon 2, that denotes is like search for start menu png that image and wait for 2 seconds after clicking on it. So, this is how it will search for images. So, we will be populating images in a specific directory as we shown on the left hand side. And then we will be adding a yaml file to include those images and also mentioning the delay time wherever applicable. So, next we will look into some simple actions to get more clarity. Say for example, in startup menu dot png as we discussed before, it will find and click on the image startup menu dot png and wait for 2 seconds. And the 2 seconds is the delay time part. It can be negative also. If it is negative, we will just assert whether the image exists on our current desktop or not. Then if you see the third example, there is 3 images out there. Image 1, png colon 5, mg2, png colon 5. So, actually that means it is sometimes for whatever reason we may not be able to provide a specific image. So, we have a list of images. Even if one pauses, we may want to proceed with it. So, in those cases we can use this syntax. So, it will fight to find a single image from this one, from this list. If it pauses, if it unable to find the first image, it will check whether the second is available or not. In this way, at least one image is found, then the action is marked as past. Then you can see here comes the keyboard actions. There is an entry dot key colon 60. That means it presses the enter key and waits for 60 seconds. And then the next one is alt enter dot key and then control shift t dot key. All those things you should be familiar by now. Just sending of different combinations. You can send a 2 key combination or a 3 key combination with it. Then there is an action called dot type. In this case, it is a Debian dot type colon 5. So, that means whatever the current most portion is, there it will type Debian as a text. So, that is another action. And you have a script. We can even provide shell scripts. So, this will be executed inside the KMO using Python Fabric module. So, you need to set up your username and password properly for that KMO image. And then mouse actions. So, you can say write dot mouse means obviously it will click right click past the right click event. And right double click, obviously you should know what it must be doing. So, these are all simple actions that can be used inside the .yaml file. The next we will be looking into a small holo world test program. Say here you can see, by the way, you can clone the repo from above URL and you can even test it while watching this. So, just to clone the repo and you will have a script run test.sh and just pause the holo world task. So, it will produce an output similar to what we have shown in this screenshot. So, as you can see, if you look properly closely you can see it has start menu. It will search for 4 images. Obviously, you can make it from the image names. It is start menu, system tools, terminal open, terminal ready. So, by now that it ensures the terminal is ready. So, and then we have a holo world .txt. It will just read the content of the .txt and type it into the terminal. So, this is another way of executing commands within the terminal inside a desktop environment. So, another thing is sometimes when you want to develop a new test case, say as you can see it is not really, you do not have option of viewing what is really going on. If say if something fails in between, we may not know where it fails. It may show where it failed on the log, but viewing it while it fails, that makes a difference. So, in such cases, say we want to view the test progress. What we can do is just you can pause the expose port equal to 1, that implemented variable and then run the same program again. Now, just go ahead and open your browser with your local IP and just pause in that first the port is going to be 32.68. You can once you do that, then you can just view the progress of what is really happening. I would suggest you to open our terminal and keep the browser and then do it parallely. You should be able to view what is exactly going on the terminal as well as on the browser. So, next I will show you a Debian ISO image testing. So, actually the ISO image testing you can, it is already available, the images and scripts everything is available inside Debian Buster branch. You can just clone it and then expose the port if you like to see what is exactly going on. You can run the test, start the launch the test and you will be seeing the Debian installer getting downloaded from the latest version and the installer will be proceeding with the installation process. If you are interested, you can look into the chemo launch script which is available inside images Debian 10 launch ISO.sh and the remote viewer script is available under setup launch viewer. So, this is how you can test the existing setup if you like to get started with this tool. So, next we will be looking into how to add a new test, new test. So, as I mentioned earlier during the start of the session, it should be much more simpler to add a new test cases. So, here it needs only three steps, first step is just put the required images, text files, scripts under a test case name, test name. Say for example in this case images slash test name, you can place your images, scripts or test files whatever you want you have. Then just create a YAML file inside that test name directory and then mention which images you want to use or which script you want to use, how much time you want to wait in between them. So, those you can see, actually you can use hollow world as your starting point to play around with this. And finally, you can just add the YAML file name into testname.task file which resides under task directory. So, once you set it up, you can start running the test. So, the next is I will show you what the output results will be. So, the output results will be in the form of screenshots under video. So, because with screenshots around we cannot really figure out what is going on. So, we will have one video for each action as well as the final video. So, the videos will be stored in a directory, results directory with a unique ID and you will have a simple HTML file. If you can just open it, it will show the output in a HTML format as you can see here. So, you can see its first screenshot which is opening the terminal and second probably it might have done the results steps by then. So, by the time we have taken the screenshot, but if you look into the final video or hollowworld.amp45, you should know what exactly happened. So, next we will quickly look into Debian results. Actually, this is from a link I will share in the next slide. As you can see it has the on the first row you can see Debian launch viewer, you can see Debian live image are installed and also it provides you the welcome screen, all those things.  Then we have the user account details and then we proceed with base system installation. So, everything is done in a cloud environment or a personal laptop or actually this thing is run in a GitLab CI environment. So, this will give you an easier way of setting up OS images testing for OS images. So, finally I will share few links where you can check out the source code as well as other results. You can see there is one Ubuntu ISO image results is available and then you have a Buster ISO which uses the manual partition and you have a Buster ISO with default partition. So, those kind of things are available you can go ahead and look. It is much more easier to add new test cases as you have seen before. So, all we need to do is just put the images into a directory and then create a key value pair about that image, how the action should be going to represent and then finally add a task file. So, that's all I have actually if you have any questions feel free to write to me or ping me on GitLab. I should be able to answer. Thank you very much. See you. Bye.


Hello everyone, welcome to our session here at Embedded Linux Conference. My name is Tim Bird, I'm a Principal Software Engineer for Sony Electronics. I'm here with Harish Bansal, who's a technical engineer with TimeSys, and we are here to talk to you about embedded board farm APIs. So we want to talk about something we think will be really beneficial for automated testing and the improvement of the testing ecosystem. So next slide Harish. So I always like to put the abstract in, but we're going to skip over that. That's for people who look at the slides afterwards and maybe don't have access to the video. Our agenda today is I'm going to talk about kind of the problem statement. Why are we talking about board farm APIs? And then we'll give a little bit of an introduction to Embedded Board Farm Cloud, which is a development solution by TimeSys. And then we'll talk about some actual use cases for the REST API, give some details about the API and then wrap it up by talking about issues encountered and what's next. So getting started with the problem statement. So there are lots of tests that are available. But the basic problem is that there's no standardized way of running tests specifically on physical devices. So there are lots of different test frameworks. And there are lots of, there are board farm frameworks. There are certainly tools available to manage board farms and to manage the hardware that's in a farm. But there's no standardized way to access those, that software, that framework. So that different test frameworks and different tests can run in a lab independent way. The real big issue here is that every farm implements test infrastructure differently. So for instance, you know, Harish is going to present some information about the TimeSys board farm and the hardware that they've got in their lab, which is what we use to run our prototype on. I've got a board farm sitting here right next to me. It's off camera, but it's, if you've ever run a board farm, you know, that it's got a tangled mess of wires. I've got all kinds of custom hardware in there.  And I've got a custom board for doing power measurement. And so the tests that are written in my lab that control that hardware are not going to run in someone else's lab. And vice versa. So QA departments for companies will write tests that will work in their lab with their particular infrastructure, but it doesn't work in someone else's lab. And so we can't share tests with each other. And since we're dealing with open source software, it seems like a real shame that we can't can't reuse each other's work. So our solution is we want to create a standard method for accessing board farm. And we think that what that will allow is for three big benefits. One of the first benefits is once you have that abstraction layer, you'll be able to allow the test infrastructure, the technologies to evolve separately from the interface. So for instance, I've got a certain type of power measurement board in my farm. But if other labs have different power measurement boards, they can evolve separately and introduce new features or or handle things in a different way. So the tests are not tied to a particular implementation or expression in hardware. The big benefit is that tests can be written to work in more than one lab. And that that allows us to create an ecosystem of tests rather than just have tests that are that are written by by one company or one individual. The other thing that it allows us for test frameworks that can work also with more than one lab. And we're actually going to demonstrate that working today. So the types of tests we're talking about are not just pure software tests. We're really talking about hardware software integration tests or end to end tests. So if you look at, for instance, if you were to do GPIO testing or serial serial port testing on a board, you could accomplish that by putting the serial port in loopback mode and testing both endpoints on the same device. But that's that's not really how the hardware is going to be tested or going to be used in the field. If you have a product that has a GPIO, you want to test it all the way through the hardware and out to an external device so that you can capture things like not just device driver errors, but things like mechanical failures or electrical failures that are part of that product. And that's very common to want to do that. So for all of these types of hardware kind of integrated hardware software tests, you actually end up having to control two endpoints. You have to control an end point on the device and then you have to control an end point that is off the device. And so I use the acronym DUT here, which is that I'll say that a lot, which is the device under test. So if you look at another example of maybe a hardware software integration test, you have audio playback, which or video playback. Again, you need to control two endpoints. You have an end point on the board that is actually generating the audio or managing it in some way. And then you have an end point off the board, which is a capture device to make sure that you're not getting any dropouts or time delays or that the quality is what you're expecting. And so again, you're controlling two endpoints. The same with power measurement. If you're doing power measurement off the board, you're going to control two endpoints. One is on the board where you're actually managing the workload profile that you're trying to test or the application.  And you want to analyze those after the test to see what happened in terms of maxes or total power used or something. And then another test that you can imagine is what we do at Sony is USB connect and disconnect testing to make sure that we have a robust error handling. And that's both kind of at the electrical level and for the stack, the driver level. Again, you need to control two endpoints, one on the board and one off the board. And so you will usually have hardware that disconnects and reconnects the bus. But those are not the only hardware software is not the only type of testing that can benefit from what I call multi device orchestration. So if you look at something like net perf, where you need to manage two endpoints. So you have a client on the board itself that is going to be generating network traffic. And you have a server that's going to be receiving traffic or measuring the performance of the traffic. You may want to, well, at a minimum, you need to discover the server address. And that's going to be specific to the lab. So you need to the test itself needs to know what the address of the net perf server is. But you also there also may be configurations where you want to make that net perf server specific to a particular set of nodes. So that you can reduce the amount of traffic collisions and make the test results more consistent. So you may need the lab management software to actually reserve the net perf server for a period of time and release it instead of just having it generally available that introduces inconsistencies in the test data. Another type of multi device orchestration that is common that we don't actually think of as multi device orchestration because we've been doing it so long is a boot test. In this case, you may need to manage several different devices. Well, you always have to manage several different devices. The classic boot test is, you know, you need to install a kernel on the root FS somewhere. And that that requires access to a storage controller. In the case of SD card based boards, you may want an SD mixer that you're communicating with to actually accomplish that. And then you have a serial controller that's actually capturing the serial line where you're getting the console output. And then you have a power controller to control the power to the board. So historically, we haven't thought of tests in that way as, you know, controlling multiple endpoints, but that's really what's going on under the hood. So our concept today that we want to introduce you is this REST API. And the REST API will will create an abstraction layer that any test framework can talk to and a test can talk to you to communicate with hardware and resources or or features that are inside a lab for a particular test and do it in a way that it doesn't matter which farm you're talking to. The same operations can be performed, the same data can be gathered. And so the test can be farm neutral, drilling down a little bit deeper into the diagram here. Next slide, Harish. Yeah, so we have if you look at what the API is actually controlling, you have some operations or some actions that are controlling the board in the lab. And but you also have operations that control those other endpoints that I was talking about. So you might have a power controller. You might have an audio video capture device or a GPIO endpoint. And those are all things that the REST API can manage for you in a lab independent fashion. And so the frameworks can access them in a lab independent fashion, but also the test itself that is actually running on the board can also communicate with or control those other resources. So that's the overall concept. And our REST API really consists of kind of three parts that I think are important. First, you know, you have the REST API itself, a command line interface and environment variables. So the REST API is actually a very kind of traditional web API. It's based on ATTPS with URIs that include actions and objects. And JSON is passed back and forth between the client and server. We actually did this as an extension to the Lava REST API. So it should be pretty familiar. And a lot of frameworks already have plumbing to deal with that Lava REST API already. It's a very simple API in terms of the amount of dependencies it has on external programs. So you can actually accomplish everything you need to with this API using just curl and JQ. JQ is a Linux command line tool for extracting data, individual elements from JSON data. So that's the actual API. That's kind of the most important thing. But we also provide a command line tool so that you have it has the same operations as the REST API. And it is suitable for automated use. If your test framework does things more with the command line and shell scripting, it's a little bit easier to use with that. But it's also much easier for humans to use instead of crafting these long URLs that have a very specific syntax. You can use the command line tool. It's a little bit more comfortable. And then the final aspect of the API is that there are some things that need to be communicated to the test program before it even has access to the API itself. So for one example, the address of the server where that is managing the lab. So some of those environment variables are some of those some of that data is passed as environment variables or it can be put in a file called etsy test config. So those are the elements of the API. And now I'll turn the time over to Harish to talk a little bit about the hardware that we used for the prototype implementation. Thank you, Tim. Hello, everyone. My name is Harish Bansal and I work for embedded board form team at times. So let me give you a brief introduction for of times is embedded board form cloud. This is the high level diagram of embedded board form cloud using the solution engineers who are sitting anywhere across the world, but they are connected to this cloud. They could access any remote port or embedded device and use it for their development and testing. These ports at the physical locations in lab, they are connected to a specialized hardware called zombies. These zombies with board, these could be distributed across different geographical locations, different countries, different buildings or different flows of of of a same building. And all these zombies with boards, they communicate with us centralized server, which we call embedded board form master ebf master. And engineers connect to this ebf master to access the remote board and embedded board form cloud features. This embedded board form cloud master, it's a Linux machine which controls all the zombies, which are on the cloud and the devices connected to it. It runs a web application inside a Docker container, which provides centralized board management, user management, zombie management, image and file transfer management. It has also integrated a lava test framework. So on any of the device which is connected to any of the zombie, you could use it for running automated test. On the right is the picture of actual zombie hardware. It's divided into two parts. One on the left is a zombie section for embedded board form feature. And on the right is an app or a test server part, which is used for testing and streaming. The box on on the left, the part under red box, this is a zombie part. Here devices, serial ports are connected at the top and it has internet ports for bringing the devices onto the network. On the right, one under blue box is the app or test server section. It runs Linux and this would act as an additional lab machine for running tests like IPERF or netPERF, which require additional endpoint in the lab infrastructure. There are ports where you could connect peripherals like JTAC for debugging your hardware or connect a webcam to see live images of your board, embedded board or DUT. On the bottom left is another lab controller. This is called input output controller IOCX. It's an optional hardware which sits between a zombie and device. So each zombie could connect up to four devices and with each device, one IOCX is connected. On top of IOCX, there is a mounted power relay switch. Through this, you could control, one could control board's power. Then it has USB and Ethernet hot plugs. These hot plugs are like switches. So many a time, one needs to on-demand connect or disconnect peripherals from the DUTs or boards. Those actual peripherals are connected on these hot plugs and then using a web UI of embedded board form or REST API, one could on-demand connect those to the device site or remove it. For boards which puts out of SD card or use SD card as one of the board media, there is STMUX built-in. So this notch with the ribbon cable, it goes into the SD card slot of the embedded device or board and the actual SD card is connected at the back of this IOCX one which is highlighted with the red box. And then remotely, you could switch the SD card to the device site or switch it to the zombie site. Once it switched to the zombie site, you could manage the SD card content, format the SD card, create different partitions, upload or download files from the SD card or flash a new device image to the SD card. Then it has I2C and GPIO connector, which I'm going to talk about in later slides. This is a device dashboard of the web user interface. Here you could see all the devices or boards which are connected across the embedded board form, which board is connected to which zombie board or device status who is currently using it. And if any device is free, you could assign the device to yourself and start using it. Once you assign the device to yourself, you get access to the device console. If you get access to device serial console, if the device supports is running SSH server, you could access SSH console and if it's an Android device, you could even access its ADB console. If device is in Hangstate or it's powered off, then we could use this power commands, power control, off or on reboot. The commands that you see, it depends on which power, remote control power switch are you using? The one at the top, it's not necessarily that you should use the one which is at the top of IOCX. With time system board form, you could connect any remote control power switch, whether it's IP control, SNMP control or relay control. And the commands which that power switch supports those show up here. So the commands could be off with delay, on with delay, A plus, B plus, whatever that power supply, power remote power switch supports. You could turn on streaming. You could see video streaming or audio and audio streaming, one could do SD card or network boot image management. On the device page at the top, there is a menu, we call it IOCX menu. So here, SDMUX device green shows the SD card, which is actually physically connected at the back of IOCX. It's on the device side. SD card, if it's red, that means the SD card is connected on the zombie side and it's ready for you to manage the SD card content. On the right of this SDMUX are hot plug buttons, red means off, means disconnected, greens means they are connected back. So Tim is going to discuss in detail GPIO test. So let me describe GPIO setup in the board form. So at the left bottom is IOCX. This IOCX has eight GPIO lines, which could be connected to the DUT or device. And so out of these eight, the six pairs of line ground comes out of this GPIO connector. And two lines comes out of this I2C connector. And all these GPIO lines could be controlled using REST APIs. So let me go ahead and now describe a prototype use case. Keeping in mind the GPIO hardware capabilities in the embedded board farm cloud. We designed a test to test GPIO on the board. And we're using the REST API. And what we're going to show in our prototype use case is a couple of different things. We're using from both the time sys web UI, you can access features on the board and perform the test. And you can actually run it as a lava job. And you can use Fuego to also initiate that same job and perform the test. One of the things that we didn't quite finish, but that is pretty close is also running that test in the Sony embedded board farm. We're pretty confident that it would work, but time sys did a better job of finishing up their implementation than I did. So but looking at how the test is actually going to run. So we're going to show you a couple of different things in a video coming up. So you can run the run these tests or use the API in several different ways. So you can do manual execution. So if you want to get onto the board and actually issue the GPIO commands yourself, or access the lab resource yourself, you can do that manually through the command line tool, or through the console that's available. You can run a test script, which basically does those same types of commands, except using the REST API directly from the script. And that's you'll see. And you can run that test manually, or the next the next phase is to put it under test automation. So we will show you a test running from a lava job, and then from Fuego. And and that and that puts the test encapsulated in kind of the larger test framework that does things like schedules the job and presents the results at the end. So with that, let's let's go ahead and look at what we did. So here, in this video, we are showing three different ways of running our GPIO test script. This is first example of running the test script using device web console. So we logged in into work from cloud web interface on the device dashboard we are searching for a device. We allocated the device. Now we're going to the console page. So device console page here we are straight into the directory which had the test executed the test and we could see test ran and it printed out the test result. This is second example of running the same test through a command line tool. So ebf is the name of the tool. My devices command list give list of all the devices which are currently assigned to this user. This with this next command, we are going to run execute to run execute some command on the board. So this ebf tool, you could install it on your machine and once installed, you could access any remote board. So this video was prepared by my fellow engineer Ankit Gupta. So he installed this ebf tool on the system. So from his system, which is physically in Delhi, he's running command on this Raspberry Pi board, which is connected to a zombie in Pittsburgh in US, in our US office. So if any first ran ls minus al command to see whether the test script exists. Now he's running the actual test script using SSH run command on this Raspberry Pi 4 GPIO board. It's executing on the server on on the board and it fetched the test script output. And we could see directly on our on on the local machine. This is a third example. This should be interesting. So so far, we showed you manual ways. So now we are going to run the same GPIO test through test framework Lava. For this week, you created a Lava test drop PQ curated, we are going to submit that manual test job YAML. So here we copied it. This is the GPIO test we are going to run. We want to run it on the Raspberry Pi 4 device type Summit Lava job. And it assigned Raspberry 4 GPIO device for the test job. It's running. You could see test job blocks coming on the screen. Close to it's done. We could see same test script output in the desktop lock. If we go to Lava result, we see GPIO test passed. Okay. So now for this next section, this was from the Jenkins interface. So Fuego uses Jenkins as its user interface and we can see that I've defined some tests that are part of the Fuego infrastructure. I'm going to do a Jenkins build, which is the same thing as a test execution. And so I'm using the same the same REST API to perform some operations with the board. Fuego does the test in a series of phases. The pretest phase is where we check connectivity and do some some basic board sanity checks. Then we're actually going to deploy the test to the board and execute it and we'll get some results back. I think it's important to note that I do not have SSH access between my lab and the zombie. I'm using the REST API. So this is there's SSH between the zombie and the board. But these are all operations that are going purely through the REST API. So there's no direct connection between between the labs. And you don't have to open up holes in your network in order to let stuff through. Anyway, this is showing that the test passed. Everything worked great. And so that's it. It was a short demo, but we're pretty excited. There's been a lot of work over the last couple of months to get that all working. And so we think that this heralds the dawn of a new age of remote testing for automated for embedded Linux. So now I'll let Harish, I think he's going to talk a little bit more about the API details. Thank you. So let's get under the hood and see how it's working. Here is the actual GPIO REST API. So it consists of GPIO command, GPIO pin pattern and GPIO pin data in the URI itself. Current aid supports eight different GPIO commands, four for bit mode, read, try, get mode and set mode, and four commands for mask, read mask, write mask, get mode mask and set mode mask. GPIO pin pattern, it's lap dependent. So in our case, this IOCX controller has eight GPIO lines. So lap pin numbers varies from one to eight. And pattern mask varies from one to 255 in decimal. GPIO pin data, again, it's lap dependent. This API, it returns output in JSON, a JSON object result with value success and data value would depend on what command you run, GPIO command you run. In case the command fails on the server, it returns result as fail and why it failed, that failure reason comes under message. This is a section of actual GPIO test script. Here it GPIO device, GPIO pin 20 was connected to lap controllers pin number six. It sets the pin high on the device. And then using the rest API, it fetches the value of lap controller GPIO pin. Then it does a match between the two. If the value matches, test case passed, it equals okay for the test description. In case there's a no match, test case fails, and it equals not okay with test description. embedded board from command line tool, EPF tool, which we showed in the demo, it's implemented using the rest API. It could be used for automation or interactive manual use. And all the EPF CLI commands they are purely using the rest API. So in this, I have listed some of the commands and you could see how these commands are directly mapped with the rest APIs. Okay, so now I think I'd like to go to a wrap up and tell you a little bit about some of the issues we encountered and some of the next steps. So a couple of things that I think are we encountered that were interesting in terms of creating this API. I think it's important to note that kind of different parts of the test framework and the test use different parts of the API. And so that's that's useful information because it helps you understand what parts of the API kind of are needed by by different sections of the overall CI loop. So for instance, the test framework is going to do use actions like run upload and download. But in our case, the GPIO test itself used things that were dedicated that were kind of targeted at a particular resource in the lab hardware resource, things to do set direction read and write different frameworks put control of operations in different places. So it's important to kind of separate them out and understand which parts of the API are being used by which parts of the different test frameworks. One of the things we did determined that is that we need to extend the API a little bit. There's predefined data that is lab independent that you can kind of put on put into the test without having to worry about it. But there's also discovered data. So in our example, we have a GPIO endpoint on the board and a GPIO endpoint in the lab. And you really need to discover the mapping between those two. So we don't actually in the API right there. The demo we had today, we hard coded those, but those are going to be different per lab because of it depends on the wiring that you've done as you've set up the hardware in your lab. So we're learning the types of things that we're going to have to do to extend the API to cover use cases and make the test truly lab independent. The other thing that we discovered is just impedance mismatch between the expectations of different test frameworks. So as an example, the way that the test operates in the in the time sys lab, they only needed a single file to be copied over Fuego. So a lot of Fuego tests use a recursive file copy. Currently, the rest API only supports that single file. And we're able to work around that. But we want to look and see what are the actual requirements from the different test frameworks, and how they operate and continue to refine the API. And then the last thing is you need to integrate all of this with your larger CI loop. So there are actions that you perform on your boards, provisioning the board, and getting stuff set up that you also need to take into account. So what's next? So we've demonstrated the basic concept and we're pretty excited about it. But we need to we need to go to the next step create API is rather lab resource types. So we're pretty sure that it's, that it's not an endless task ahead of us. There's a lot of resources. We did a simple end to end task where we're just controlling two endpoints with basically ones or zeros and some directions. For other types of lab equipment, you're going to need different APIs. But we think that a lot of the types of things you're going to be doing with the lab equipment is going to be generalizable, you'll be able to generalize it to just a couple of simple commands. So for instance, for power management, audio capture and video capture, you're going to need a verb for start capture and capture and then get that log. Now the actual so obviously audio capture and power measurement return different types of logs. But we don't think that the API has to actually deal with the specifics of the lap of the kind of a log type. But we wait, we may decide differently. So we, we may decide to include some resource specific type actions to support. So for instance, in power management, instead of just returning get log and having the framework or the test analyze the log, we may introduce a verb like get max power, where the driver for your power measurement device can analyze the log for you and return a single number that that has meaning for the test. But overall, we need to run a bunch of different tests and see what issues crop up. The important thing and the reason we're here today is we want to convince other labs and frameworks to adopt this API. That's how we're going to get to a place where we can have an ecosystem of tests that we're all sharing with each other. And so we'd like to profit from that ecosystem, start sharing tests the same way that we're sharing open source code, we'd like to be able to share open source testing artifacts, the tests themselves, the results, and all that. And we think that this is a way to start with all of this type of stuff. You have a chicken and egg problem, someone's got to go first. No, you that's fine, or you can go to the next slide. So we know that people are not going to write tests until the labs have this in their farms, and people are not going to want to put this in their farms until people have written tests. But someone's got to take a first step. And we feel like we've got a good start on this. There, there are schema definitions and other materials related to this project that are going into this repository here then GitHub. And we are very excited to have people give us feedback. If you want to join the lab, join join this effort, please communicate with any of us. And we would love to get additional labs, especially of different types of hardware involved and try to do some testing to make sure that we're covering everybody's use cases. And with that, I will thank you for your time and we'll move on to some comments. So any any questions or comments?


Narcissus are not real. They're not genuine or authentic. They're an imitation. They're a figment of your imagination. They don't really exist.  They gave you a false character and they were detached from that character. So they were detached from you. They were never serious about getting to know you. They were just trying to learn you. They were trying to learn what you like and what you don't like. So that they could create a character that is attractive and interesting to you. So that you would trust them. They didn't really value you. They knew you were something special. You stood out from the crowd. But they didn't value it. It didn't mean anything to them. Because they're self-absorbed and they lack empathy. Everything revolves around them and how effective they are at manipulating and controlling you. They're the start of the show. And you're just their audience.  And their character in this movie is based on whatever they think you like. Whatever they think you're interested in. Which they use to get your attention and admiration. And that's all it really is. It doesn't go any deeper than that. You're just someone who watches them perform without any participation. Without taking part in the activity. You're in the front row of the audience. And you're being entertained. So they don't think about you. They expect you to always be there. Without them giving you recognition. Because you're the audience. You're there to watch them perform. And they're the start of the show. So they're more important than you are. Because they're putting on a show for you. They're keeping you entertained. They're the cause of your happiness and joy. Because they knew that you were bored and lonely. So they provide what is missing and needed to make you dependent on them. Because they see it as though they're making your life better. They take everything you're doing for granted. They don't appreciate it. Because they get bored very quickly. Your supply loses its potency. It no longer has the same effect as it once did. Because you're not responding the same way. It's not new and exciting anymore. Because you've seen it many times before. When you first watch a movie. It may keep you on the edge of your seat. But if you see it again. It's not going to be the same as the first time you saw it. And that's how the narcissist sees it. You're not responding to their performance in the way that you once did. Because you've seen it before. It doesn't have the same effect on you. So it's no longer satisfying for them. They prefer to have a new source. Who doesn't know what they're about. Because in the beginning you were overwhelmed with joy and excitement. Which made them feel amazing. It fueled their performance. But the more time you spend with them. The more they will take it for granted. Because you're no longer excited about them. And they just see you as their audience anyway. They're the star of the show. But when you begin to expect more from them. It annoys them. It makes them feel like you're the one who is ungrateful. Because they expect you to see it as a privilege just to be around them. In their minds they're superior to you. You're there subordinate. So you should just be happy with whatever breadcrumbs they're willing to give to you. When you expect more from them. They see it as arrogance and audacity. As though you have no right to expect more. As though you should be grateful for their mere presence. Which is why it's so easy for them to get rid of you. Because in their minds you don't appreciate them. So eventually the curtains close. The show comes to an end. It's time for you to leave. And then they prepare for their next show. They prepare for the new audience. But none of it was ever real. It's all an act.  And then when the show is over they mirror what you don't like. Which is not what you signed up for. It's not what you thought you were committing yourself to. You didn't want to watch someone play a role. You didn't want to watch someone put on an act and pretend to be something they're not. Even the thought of that may sound crazy. To think that someone would go through all of that effort. Just to put on a performance. Just to entertain you. With no intentions of anything else. It's empty and meaningless. But this is it. They're on the spectrum to psychosis. They lost themselves a long time ago. They never got the attention they needed when they were children. So now it's the only thing that matters to them. And they will do whatever it takes to get it. Which means that they will never experience a normal relationship. They can only put on a show. They can only play their part. And you will only ever be their audience. You're not going to be their co-star. You're just going to be someone who watches them perform. While you're expecting more. Thank you for watching. I hope this video resonates with you. Please like, comment, share and subscribe. If you would like to donate, my PayPal link is in the video description. Coach the inquiries. You can email me at coach.narksurvivor.uk. Thank you for watching and I'll talk to you