Hello, thanks for coming and welcome to this presentation about the scalable online machine learning First I let me introduce myself. I am Javier de Matias. I work as data engineering in three logic My company three logic is a intensive research and development company with this specializing in big data and artificial intelligence We apply these technologies and algorithms in a lot of target industry as banks, telecoms, health care or retail In respect to big data solutions we can tackle all the types of solutions with big data between for example Complete data architectures to special use use cases With the special interest in all the stages of the data from ingestion to processing or analytics security and respect to artificial intelligence We are ready to Obtain the maximum value to the data with special interest in deep learning formal learning to To get use cases where apply the detection Detection problems classification something like this Okay How is to organize the my presentation my presentation is organized first I go to introduce what is scalable online machine learning and why we think is very interesting interesting now Secondly we I will introduce what is Solma library and how can use this type of problems And finally I I will show an industrial use case where we apply this this library and This type and at this type of solution Okay, what is scalable online machine learning scalable online machine learning is the Is the idea the main idea With the conference of two important trends now first that's a stream processing that is very interesting now on The integration with machine learning that is the the main solution to most of the analytic data analytic problems Respect to a stream processing We have this set of good friends to to to implement solutions we have data stream processing frameworks to to implement application we have Solutions to integrate different components like Kafka or I've driven Q We can implement jobs with fling store spark All people think that is a good trend now because Companies needs to process in real time or real or near real time That there are a problem when we had to integrate Machine learning in the data pipelines in data stream processing pipelines when we can find a solution to to that The classical solution of the main the main important solution is to to divide the Data workflows in two circuits one circuits to create the machine learning model to We a store historical data We can train and machine learning model test if the model is good or not Of she's suitable in what we decide that this model is suitable We deploy it in the other circuits the other circuit where this machine learning model is Is used for example to make predictions or classifications? This type of solution is this is we can is the the solution That we find when we search for example in Google How solve it for example if you I Google this this topic a Month ago, and I'm fine Some figures but the same solution for example. This is an Azure solutions which we have a data lake where we store events of sensors and With the deep historical data. I train the model and deploy in the in the string analytics or this other with map We have a stream processing a bus processing the bus processing store the historical data We with this historical data with train the model And finally when the model is suitable for using production I will deploy in in a streaming processing This is there we can Talk about there a classical solution, but this is not It's not totally good. We have we can find problems with this type of solutions First of all, I have to develop two data workflows two different data workflows We come on points, but different we have Google has I explained before we have a training that a workflow and a prediction The prediction or exploiting the Exploiting the the the machine learning model this make That we have to build More complex architectures and maybe this more complex architectures gives us more points of file And the most important thing we don't have the most at today model possible if for example, I decide to Train my machine learning model with the events produced or collected during the last month and There are changes in my in the during this month. I have a Maybe I have a good machine learning model, but it's not totally ready to detect some Problems that they are in my in the deterrence the data trends now we we need we can Make a short the the time to to train and deploy the model But I always have all version of the most update model possible Okay, this is the the drawbacks of the classical solution But how we can solve it or what is the idea of a scalable online machine learning? The idea is to train and predict on at the same time and in this in the same solution in the same data workflow On this way we have a unique that the workflow with less point of failure the data architectures that we propose is is simpler and The most important thing we have the most at today model possible in in each occasion. We have the best model to Totally adapt it to the changes in the data trends Is it is it seems to be a good idea, but What what happened is difficult to to implement Something like this new is this is very difficult because we have two important challenge First of all, I have a challenge respect to machine learning algorithms Not all the algorithms are suitable because there are some algorithms that needs to process all the samples of the data set at the same time and This algorithms is not totally suitable to to use in on this way and the other thing in I Could find algorithms which are suitable to be adapted to the to this processing way but we had to adapt it because This machine learning algorithms had to be ready to only process each data only once and Maybe we can find a lot of algorithms, but had to be ready to use in the on this way the other challenges a technical challenge this is an example of Flynn cluster or whole Flynn application is executed in a cluster the job manager receive a task and Parallelize the tax of the job between the task the different task managers three task managers in this case the problem is where The tax managers for example has to train the machine learning model But where is this machine learning model a store because all the task managers needs to Need to access to to this machine learning model and needs to put could Be able to be able to to update this this machine learning model this challenge is or this Component that we can we can find to solve this this problem is Parameter server a parameter server is a piece of or a component for the architecture We can where we can store the machine learning model and with a communication between the workers the spark works for examples is a if it is a spark cluster or Communication with the task managers is a fling solution This parameter server can solve the the problem once we know what is Scalable online machine learning and whole with the challenge that we might need to to Tackle I will so as a library cut that try to solve this this problem. This is all my library So my library is an open source library. It is a of online machine learning algorithms is open source is what's called during the development of European research projects and it contains two important things first a collection of my online machine learning algorithms and a set of abstractions to make easy to develop new algorithms with this premise Solma have algorithms which adapted to to this to this parody that How solves the problem of parameter server? solve the problem solve this problem with a project an open source project called a fling parameter server fling parameter server is an extraction for the model parallel machine learning model and it could be used it could be integrated in a in a fling job This solution is a solution that you we can integrate in the data in the fling streaming API How works a fling parameter server fling parameter servers have a Communication within this then a communication between the between the Respect to the workers the workers have a input data stream and output data stream and during the processing of the worker maybe the Needs to access to the machine learning model if there are two operations to Communicate between the parameter server and the work if we need to Recover the most update version of the model. We make up full operation to obtain the model if we Have we have a more so that basing for example in the training step you will Get most Updated version of the model we have a make a push operation to update the Parameter the machine learning model stored in the model parameter server The communication between the worker and the parameter server is asynchronous We can make a pull operation to obtain to request the model, but only We have to wait until the we receive the answer pool to to obtain them and really the model Is the working and the communication for example if there were if the worker receive a new level data To train the model the worker has to pull the the model to the parameter server Wait until receive the answer pool and finally Train with the new data the trend is the model and when this new version of the model is sustained Push to the parameter server to to be ready for the other other workers. This is the main Working This is the the interface between the workers and the parameter server, but How we implement the relation with parameter server we will have we had only to to implement two things What what we do when we resafe data We will implement the method on receive When I receive new data how hold my Work it works on what we do when I receive the The pattern the machine learning model from the parameter server is like a callback With these two implementation we can interact we can implement interaction between the the model the worker and the parameter server and And Sorma is playing In the other slide Sorma is prepared ready to To add new algorithms that have abstractions to make easy this this works How is the implementation of a new machine learning of online machine learning algorithms with Sorma? We only you only have to implement two things The method Delta is to implement what we do when we receive new level data we update how I update the lasso model for example in this in this case and predict what what we do how we do the prediction with the model We choose with these two only these two things is implemented a new algorithms in the in the library all the rest of the necessary Implementation is included in the abstraction and the implementation of Sorma it's very easy to introduce new algorithms because we only have to think how to Train the model and predict the model which only once a sample Okay, this is the Sorma library and We know what is the caliber on line machine learning the Sorma library Maybe it's the the time to talk about and use case where we can we were a have applied this this technology I Could talk about on industrial use case It's about still making Still makers make a lot of types of products Different final final products are very different. We we can use still to car manufacturers to Turbine or a cable in this case we talk about produce Steel coil what is a steel coil in a simple language steel coil is a very long and think piece of steel Roll up. It's something like this this role. It's a very big role of steel and And How is the the production of a of a steel coil because it's we have we have in the beginning a big block of steel and after a processing of temperature and pressure We obtain this the the final steel coil of things a thin layer of of a steel What's the key in the the production the key in the production of steel coil is the flatness Isn't very important that the final product have the enough flatness to be Shootable for for the purpose that is was make The the idea of the of this program is we have a data streaming processing program but we receive data of the sensors that the That is measured during the production of the steel coil and we have to predict if the if the final steel coil Will be flatness or as flat as possible as as is need to the final purpose The plans here is here is that we all we always note the real flatness in the steel coil one day in two or three minutes after the Steel coil is is produced and it's a problem because in the the maker needs to know before to maybe stop their production or to And downgrade the the quality of the of the steel All the problem is that the we receive fragmented data We only research The the data of a sensor at a time We don't not receive all the data in the in the same very of time We receive during the processing of the steel coil will receive a lot of events of of data The the events that we receive it have this format We we know what is the coil ID with the identifier of the coil is only to identify to to know what's the Number to number the the coil bar ID that we identified of the variable that we The server variable this variable could be variable of temperature pressure or or other important magnitude and during the processing the value what is what how was the value of this variable in Of the coil and what is the coordinate where the coordinate is the the position of this measurement in the complete piece of steel How we receive the the data in the problem the problem we receive the data in two Kafka topics one of the of them Have the information of these measurements of the sensors and other half the the measure of flatness at the end with a delay respect to the those these Real-time measurements Okay, this is the the true The input data how what who is the expected output data is very simple We expect to know an early prediction of the flatness in the final piece of steel because this is not possible to know And during the processing And the global or the final solution will be an Application in this case a job a fling job Who received two topics one for the sensor measurements and other for the flattening measurements? and produce Producing a other Kafka topic a flatness prediction this flandex prediction will be read for for a will be read for for a operator in the factory and He could decide if this steel coil would be good or not of the Maybe if the steel coil will be the at the the best quality or maybe two or three grades in less than this best this great of quality Okay, this is the the idea but how to hold this word the whole words the application the As I explained in the before the data is fragmented big why because the between the starting of production of the coil and the end of production we receive a lot of even measurements and in each for example in As we can see in this in this chronogram You will reside from sensor ones the variable one in the X coordinate five a value of 14 for 3 of this value or we receive the different sensor information in different time during the the processing and only After the coil of who what's and we receive the flandest measurements the real flandest measurement this real flandest measurement is the information that we need to know if I would predict or not well Where we predict and where we try in the model In each time that we receive an input event I make a prediction With this value of a variable in a position we can we need to know how how we will the flatness and When the white train the model I train the model when I have all the information at the end at the end I receive the real flandest values and with these values I can train with all the events of the Receive during the coil production we have to take into account that we need enough memory to to a store the the event input events before Receive the the final flandest because we need to level this input Measurements with the real flandest values When we have had this information level we can train the model and update it in the parameter server This is the the whole is the application works and what's the results of this Application the result is to this is a comparison. This is this figure is a comparison between the Prediction of our prediction which is the top figure and the Real flandest measurement in the in the bottom of the of the picture in a detail We can see that the we can detect We can not detect the absolute value of the the flatness, but we can detect the data trends in data trends changes in the in the in this in the in the measure of flandest is maybe It's not enough to to get an absolute value, but it's enough to to the operator to Decide is the The coil is good or not and what is the quality of the still quality of the final coil Okay, this is the the results of the or the solution What the conclusion about this this technique our conclusion is that a machine learning in in the testing application is totally integrating and there are a lot of solutions now to use it but An scalable or limited learning could be a good solution because It's a promise solution and it seems to be good to to to use the problem now is that we have Important pieces of in the in this architecture that is parameter server But the parameter server solution that we can find now has to evolve and to integrate better in the data person Frame was today we have solutions like fling parameter server or the solution to a spark But are not enough mature in the future. Maybe it's necessary to find Technologics to to to implement it with a best performance and better adapted to the to the to all the Possibilities that we can find this type of problem For example, free parameter server is an open source project is very interesting But it's supported only for two or three open source contributors and they They did it in the in the kit have repository you can use it, but it's not it's an experimental solution. For example, the This the industrial use case that I will I have explained is only a prototype because it's very difficult to deploy it in a production environment. Maybe when we can find mature solution for parameter server We can obtain a good solution for the for this for this type of scalable online machine learning algorithms I'm okay. Yes. That's all. Thank you very much for your attention and I wait your questions and I have heard that Parameter servers can be as low sometime because when you have a lot of parameters to deploy And there is a lot of traffic in the cluster. So how do you feel this? Performing issue. Yes, this is main the main problem in the parameter server because this communication between the workers and the but I'm sorry maybe can Have a problem when you have a lot of traffic between the between them This is the one of the reason because this is a experimental solution because we can you can find problems with them when you have a lot of Traffic, there are maybe you have included problems of that blocks or because it's an asynchronous communication and maybe the parameter server is waiting to receive a An answer for the worker and the workers waiting something for the server and you can find that block This is moving the reason with this Experimental solution. Okay. More questions. Thank you very much


So the goal of the second meeting was to combine the three reports from the working group to discuss it amongst the members of the board and to decide the next way forward, which will be a combined report plus the action plan that we can publish for the world to see and to benefit from the work that's been done by all the members. I think it's important for my organization to participate because we provide disaster relief solutions throughout the world and when you merge that with a humanitarian effort as seen by the smart sustainable development model, you get an important synergy that I think could help benefit mankind. The most striking output of this group is how members from ministries, NGOs, corporations have come together in such a short period of time working across multiple continents to produce this important output that's going to be used by the rest of the world to help in developing a smart sustainable model.


The evolving mutants of SARS-CoV-2 have made the COVID-19 pandemic sustained for over three years. In 2022, BA.4 and BA.5 were the Omicron variants dominating the spread globally. Although COVID-19 was no longer a public health emergency of international concern, PHIC, as announced by WHO, the SARS-CoV-2 variants remain a challenge to global health care under the circumstances of withdrawal and loosening of personal protective behavior in the post-quarantine era. This study aims to acknowledge the clinical characteristics caused by Omicron BA.4-BA.5 in COVID-19 naive people and analyze possible factors affecting disease severities. In this retrospective study, we report and analyze the clinical features of 1820 COVID-19 patients infected with the BA.4-BA.5 Omicron variants of SARS-CoV-2 during a local outbreak that occurred in Macau SAR, China, from June to July 2022. A total of 83.5 percent. This article was offered by Ho Han Chong, Fang Aishio, Chi Chung Chan, and others. We are article.tv, links in the description below.


Okay, welcome to 28th September 2020, mycroft depth thinking. Okay. So we are now officially halfway through our sprint. Let's do a check in and see if there's anything that has become roadblocks and check in with everyone and see how we're progressing. And then at the end, I'd like to do a quick review of the current milestone that we're heading towards and see if there's anything we can do to focus our efforts more tightly on the table. So I'll start with Gez today, because Gez is in the top center position. Cool. So I did some com stuff, mocked up that partnership place that we're working on, which may be ready to go soon. I'm sorry, an email from Johnny, but maybe not. I also started a blog post outline for our October mark two update, since we were already getting some things to talk about there. The 2008 change that Chris did, looks good. And so I've done that ticket around removing wait for message, just so that we can test it by having something that is definitely gonna fail if the 2008 image doesn't exist. So I just need to get those merged and in and that will be a pretty firm test on that. And I want to get back to exposing the logs in the bloke conference next before anything else, I think. So that's where I'm at. Any cups or emergencies have come up? No, just lots of reviews and things like that, but nothing blocking. Great, great. Chris, very. It's going awesome. Before I start, I want to say, Go Chiefs, Ravensuck. So things are going well. I have all of our third party UI packages upgraded to their latest right now. And I'm going through all the UI components and making sure I didn't break anything by doing that. I also talked to Derrick this morning. We have a little more clarity around the first version of the Tagger UI. He made a few small changes and I think we may, he may have another small round of changes after our discussion, but so once I'm done getting, I'm sure the Angular and related software updates work, I can start looking at that. You lead in by saying, sometimes when people come from Baltimore and their team is playing Kansas City where they live now, they could be conflicted. It's good to see that you definitely have an allegiance. I've been living in Kansas City now longer than I ever lived in Baltimore, so. So I had an interesting weekend, but just to cover real quickly the tickets I'm working on, I closed a couple of tickets out to do with our reassignment for yes, no, and for the initial switches since all that's been fixed and addressed. The enclosure ticket I'm working on, the reason I was having such difficulty is in getting the leads working last week, I had to install a bunch of stuff as pseudo and it wasn't clear at the time what needed to be pseudoed and what didn't. It's become clearer now that just the leads require pseudo, the switches don't, the volume doesn't. So that's something that had to be addressed. I also had a system-wide parameter set in the virtual environment to allow system-wide installs to work, but that was causing some trouble with clashes between modules. I turned that off and still was able to get it working with pseudo. A lot of the problem I was having was that a lot of the sockets like message bus and stuff were opened under pseudo last week and then when you try to close them or take them down you have to be pseudo. And since the startup was set to pseudo but I didn't do stop, there was some problems I had to go back and clear up and clean things out and remove caches and stuff. But I'm back to normal where it's working. A little concern with the hardware though. So over the weekend I think I pointed out in the thread some of us might have seen that my particular SJ201 that I got, the second one is defective, we knew that. But it's obviously not showing the I2C device which was the first trigger for that. But more importantly, my friend came over the weekend and noticed that one of the two speaker drivers were on at full power constantly and he was freaking out. He was like, that's gonna burn something out.  So I basically unplugged the one. So the other one is okay, but I had to unplug that. Now I don't know what that might have taken out or how it got like that, but I do know that since I had the new SJ201 or the old one, I'm sorry, plugged in, so the new one never worked. The old one always worked. But recently I took it from just being an external connection with the amplifier to actually plugging it in to the pins. And ever since I did that, it doesn't record. It thinks it is, but it doesn't actually record any sound. And I verified by taking it back off and connecting it to the re-speaker, which was originally and still here, and that works. So that's a little bit disturbing that that might have taken out the mic channels as well. I don't know exactly what happened, but that's where it's at. And I'm afraid to plug any more back into the pins because we're getting short on SJ201s. And I don't have any working and I've got software that expects to be able to do power-on self-tests with new drivers and I don't have working SJ201s. So I know Kevin will be back near the end of the week. I can certainly get through between now and then. But that's something I think we need to address and look at because that's a little bit of a concern. Other than that, like I said, I got the pseudo stuff for the LEDs that seems to work. I've got a couple of things to finish off on that. And I should have the enclosure stuff integrated and ready to do a pull request before the next meeting on Wednesday. I'll assume it works with working hardware. And then I'll give that to Chris V and he can do the code review on it. And so yeah, that's what I've been working on. The power-on self-test is gonna be interesting too because we're gonna have to really be creative, right? I'm gonna have to do things like turn on the speaker, turn on the mic, play something while something's recording and make sure that we got something recorded. Because other than that, what am I gonna do? There's not gonna be somebody sitting here watching the LEDs blank. There's not gonna be somebody, you know what I mean? So power-on self-test for audio and visuals is tricky. That being said, it's not impossible when people are doing it. So I'm just gonna have to buckle down. But that's in the near future. So that's where I'm at. I'm gonna try to button up the enclosure code, try to fix the, or add the code that reports to mark two during device bring up or pairing, initial device pairing and then handle the case where maybe I can get some additional information that I can stick in there so that we can know whether it's a mark one mark two, mark two with re-speaker, mark two with SJ201, mark two dash three, maybe somebody's Linux, you know, all the different stuff so that we can have a better handle on where we're running. So that when we look at issues in the reported, maybe we could even, you know, align them and say, well, that's on an unsupported environment block. So that's kind of where I'm at. Okay, yeah, thanks for that update. I'll address some of those hardware issues when it's metering, but for now let's go to Derek. Yeah, so yeah, today I, yeah, like Chris said, I met with him on a GUI for the tagger. There's a couple of things outstanding so don't get it completely marked that it's done but that should be wrapped up pretty easily this week and I'm not blocking him, which is good. So other than that, the couple of quick changes, quick updates for Michael's pitch deck and then just been continuing my work on the first 3D printed FDM version of the SJ240 as we're calling it and kind of balancing some of that with going back to 4th on sourcing stuff. The latest thing that I've spinning a little bit more attention on it was a camera module, which isn't necessarily the highest priority in terms of the first spin here, but we've got a lot of actors that selected that. So gotta figure out how that's gonna work and the camera version that we're looking at originally was the pie camera version one. So I've been tracking down the best way to get one and price-wise and then how it's all gonna come together. So that's been all I've been up to. Okay, great. So Josh, do you wanna say anything? Stuff you've been looking into? Sure, so a couple of quick things. I loaded a Pi 4 to use as a video conferencing system. It's still a little laggy and there are tweaks that need to be done, but the first time I tried it, everything kind of died and it did not work well. So I spent a little bit of time digging into the Pi 4 and how to make it the performance improve and discovered that the thing's pretty severely underclocked out of the gate. By default, they run it at 700 megahertz and the thing will run pretty reliably and pretty easily at 1700 megahertz without overheating. I did hook a heat sink to it. The other thing that I discovered is that for using that GPU, you can vary the amount of RAM that's allocated and the default RAM allocation is dynamic and does not do it justice. And so as a result, out of the gate, if you wanna use it for video conferencing and I can only assume for other high intensity computation, it's not really a solid out of the gate, but once you tweak the memory and you tweak the clock speed, you really can get pretty decent performance out of it other than I can't get Bluetooth to do what I wanted to do out of the box. I'm pretty happy with the Pi as a video conferencing system. The other thing I've been playing with is a technology from Google called Coral. So Google has developed a series of chips that run their TensorFlow Lite and then what are called auto ML models. And what they're targeting is, well, they're targeting a number of things, but one of the things they're targeting is industrial automation. And so basically building inspection algorithms that use machine learning at the edge in order to classify images and do inspections of what PCBs or whatever you wanna do. So I got one of those from Mouser in a USB form factor, but they do make it in a chip form factor for sub $20 and it is demonstrably better for running TensorFlow Lite models, like by a factor of 30 than the existing software. And so as we step into the Mark III, I think it's something we should look at as a feature on the next device that we integrate one of these TPUs onto our daughter board so that we can do TensorFlow models in the field. In the meantime, these USB sticks are only 60 bucks. And so as we're doing development on the Mark II, as it becomes our default platform and we start looking at new applications, it's really easy to add that feature to an existing Mark II by plugging it into a USB three port. And then all of a sudden you get this, massive improvement in your machine learning models. The one caveat is those models do need to be compiled down to run and to take advantage of the processor. So you do need to, when you compile and flag it appropriately, but I've been really happy with it. And I've been doing image recognition on high resolution images using an off the shelf model from Google and getting five millisecond classification times for eight meg of it JPEGs. So I mean, there's a lot of really cool things that that facilitates. Other than that, I'm mostly, I'm jealous that Ken got two Mark IIs and I got none. And then I've been on- Oh, you were working well. And then I've been on with the patent attorneys and I mean, it's really clear that we're gonna win the litigation and it's really clear that the unified patent IPR is gonna be successful. And it's really clear that we have a stellar shot at recovering our money from their shell company if their shell company even exists at the end of this.  That said, we are committed to spending as much money as it takes to kick in these people to the curb. And for those of you who saw American History X, just envision the scenes that sent our good friend, Ed Norton, to prison. And that's exactly what I figuratively intend to do with our friends. Well, Josh, let me just say that I'm proud to be associated with a group that decided to not cave and just send over 30K and have them leave us alone. But actually give like a quarter of a mill retainer to our attorneys to fight it because that's really what it's gonna take long-term to get these guys to stop their nonsense. That being said, on the TensorFlow, the TFU, what is the cost of those, the USB3 TFU? There's 60 bucks you can buy them from Mauser and Pugamon and then in the chip form in the surface mount form like one off for like 21 bucks. And then it goes down from there. So, as to whether or not our friends at Google are subsidizing that, I don't know. I suspect they probably are so that they can become the standard, but it's a feature that we should look at. And we don't have to marry Google to make that happen. We could both Intel and Nvidia are making similar products. And so, it's just that Google. Michael can light one out for us eventually. The thing is, when he has some free time on a weekend. Now, the thing is twofold. The reason I've been apprehensive about TensorFlow Lite is I have a friend who did some work with TensorFlow Lite and he said that TensorFlow Lite has some bugs that he's kind of waiting for them to be corrected before he moves forward with that in a big way. The other thing is I noticed that, and this is common with ARM processors, all four of the cores when you're idling will basically reduce down to the minimum frequency. And then I noticed that when precise gets loaded and kicks off, it'll actually run them up to their max, which is 1.5, and that'll be across all four. Somebody had mentioned that they thought we were only running and consuming one core, but my experience has been, and you can see it with top as they ratchet up, that we're precisely using about 50%, 45 to be technically accurate, of all four cores simultaneously. I did not see it just using one. So that was my experience. And it ratchets up as precise runs. So, it'll try to go down. That's really something that all these arms do that we don't need because we're not worried about conserving battery. So yeah, forcing them all to max frequency. And I don't even know if it would get that hot, but yeah, I don't see any issue with that. And that would certainly be better for us. But yeah, I'm a little apprehensive about TensorFlow Lite right now. So running them at a fixed frequency does a couple of things. First of all, the power used on a chip like this, a inordinate percent of it is just from the clock line itself. Basically, power is consumed on an integrated circuit when something switches from a one to a zero. So the thing that's switching the fastest is the clock line. And there's a ton of buffering on that throughout the chip to make sure that it stays synchronized. But you won't really overheat the chip or really get it towards this max temperature unless the data pipelines are actually being used because the clock line will be running and sure that's using more power. But if the data lines aren't actually switching, then you really won't be using a lot of power. So I think you're right. I think we can probably try to set the frequency to a fixed higher frequency and get something that's a lot more dependable in terms of, or predictable in terms of its performance. I think that's a good idea. The other question I have though about that is can we restrict a process to running on a particular core? That's something that we might want to look at. It's certainly not a priority, but that'll help with the predictability again of the process. That's a good question. I don't know the answer to that. I just thought that somebody had made a comment last week that we were only supposed to be running precise on one core. That was something that occurred when talking with the guys here. But clearly that wouldn't work if it's consuming 50% of core cores, you know? Basic math says you're not gonna be able to run it on a single core without degradation. Is it at what speed though? That's what the more all about when they get. In other words, you can see on top it starts ramping up and it spikes and it starts coming down and when you finally get a chance I have a little monitor program I can share that'll show you the percentage usage of each core. It runs them all up to 1.5, like right away. They're all at 1.5 at 30%. Yeah, so two cores is gonna be the minimum it looks like but I don't know for sure. Maybe there's some, maybe there's some, I don't know some wax idle cycling in there. I just don't know enough. I strongly suspect that training precise using TensorFlow Lite or a machine learning framework that's a little more modern will be helpful. I mean, precise was originally built three years ago. That field is moving with a rocket engine underneath it. I suspect that it just comes down to expertise. Let's get the data in order. And then if necessary, I suspect there are people in our community that can probably do it in the afternoon. We will ask and see if we can get some folks to help us but unless we can provide them with training data that's pristine and that's where the piece that we need to provide. Yeah, that's what we're working on actively, right? So that's good. Did I, I posted, I reposted the article by the way on my LinkedIn. Did I read that article right? That we're just a couple of percentage points away from the same performance that our competitors were getting and they're a little bit larger than us? Yeah. That's really encouraging. They were tying our stuff to, well and our stuff's available and you can use it without like having to sign an LOI and like go off and talk to the wizards, right? Where's this article? It's not even our latest and greatest. So, yeah, that's encouraging. Well, Nora, are we doing any of the transfer learning stuff that we should be doing at the top of that model in order to narrow it down to this specific user? So we've. And if I read the article right, that was with a custom wake word we did for that particular experiment, right? I didn't do the wake word. They did it for our model. Yeah. So who knows how they did it? Because we haven't really. Yeah, that's that's that's a formula for failure, too. OK. So yeah, it's encouraging to know if we're behind without that problem. Excuse me, I'll be right back. What was that article? Was it Sheridan team? Josh, where do I see it? Do you have team or team? Let me see. I got it from a number of different people, but one of them, I don't know. Daniel Pomp, I think. No, but I think he just wants to see where it is so you can see it. I got it from MatterMos somewhere. Yeah, hold on. I'm getting it for you. Here's a PDF version of it in the chat. Yeah, I got it. A number of people flagged it for me. Our investors are awesome. They are a giant information coming to it about all kinds of things. Well, I thought it was very encouraging, considering it's three years old. And God knows how that model was created. And you're talking about those guys being able to throw a ton more resource at the problem than we can, so all good. Yeah, I was able to train models for Precise in a very short period. I think I spent a couple of days on it before I was able to train custom models and stuff. But the challenge came down to, it was in January, just getting the data pipeline squared away. And then I didn't do any edge work. I just implemented it as it was originally done. And plus whatever, fixed it for me. And then I checked my own code in and approved it, which I got. People didn't like that. I think we're really at the point where the model is pretty good. I don't know. I can't speak to the internal algorithm, but from an outside perspective, looking in and talking to Matt, it seems like the de facto way people attack the problem. I really suspected some matter of data at this point. Yeah, so sorry about that interruption there. Yeah, I think this really highlights the fact that what we're trying to do right now is get an instance of the whole system up and running, from the hardware to sending me to the submission and review and tagging and training process, get all of that up and running in a solid system. And then I think we'll see rapid, rapid improvements in the software once we can get to that point. So that's really where our focus is. So before jumping into the milestones, I'll just give you a quick update on things from my end. I was hoping to get the SJ201 next spin out over the weekend, but there was a little technical detail I didn't know about in that some of the mounting holes were moved, which seems like an innocuous change. But it turns out that was the biggest change on the board that caused, I don't know, Kevin said, something like almost every net on the board had to be really relayed out because those mounting holes changed, which theoretically isn't a problem. From a logical perspective, it's not a problem, but from an electrical point of view, you've got to go through and review all of the ground planes and make sure none of the clocks are routed next to signals and stuff like that. So it's kind of a bigger deal now. So we're going to have to get a little bit of a design review process tonight and make sure that that's not going to cause any problems. And so also as a consequence of that, we're going to do a more limited run than I was hoping for. So we'll do enough that if they do work and there's a very good expectation on our part that they will work, everybody in our company will at least have two devices to work with. And I want to use the same process we used last time. We kind of do it half there and half here. We're going to use a PCDA factory that can do all the boards, source all the parts, and that sort of thing, so that we know that if these work, we can just go back to them and say, send us 500. And we'll fulfill our Kickstarter on the devs board versions of that at least. And start that pipeline. So that's where we are with the Mark IIs. And on the component side of things, the changes are really, really minimal. We're fixing values on two capacitors. We're swapping out the sound card for a different, a much simpler part that we've already tested by Kevin kind of wearing it up externally. So all the changes that we're making are on that side are pretty simple. So I have a pretty high confidence that this is going to work. One last thing on that hardware, my friend, and I'm not an aficionado, he looked at the board and he said, dude, who laid out this board? And I said, well, that guy Kevin you talked to. He said, that's a damn good job for what it's worth. He thought he was pretty crap. Well, I was also looking at the TPU stuff that Josh brought up. XMOS, the company that's making the audio front end chip that we're using, also has a TensorFlow processor accelerator that they're touting. But like the Coral system, they're not really generally available yet. So I've applied in both cases to their program to get into, see if we can get an engineering sample and that sort of thing. So I don't want that to become too much of a distraction, but it's definitely something that you'd be looking at for the Mark III. And the sooner we can get into that, the better. Yeah. Any other questions people have? All right. So as far as the milestone goes, I'm looking at, so we've got three tracks that we're working on. We've got the hardware track. We've got the software track. And we've got the update track. There's the core software as a unit that does something useful. There's the voice assistant stuff. But then there's the overarching, how do we deploy this, how do we do updates, and that sort of thing. So that's the other major track. And as part of the core experience, we've also identified the Wi-Fi setup as a key issue that we need to get right, because that pertains to users out of the box experience. Plugging it in and setting it up, that's got to be good. So as a sort of minimal viable product, we need to get all of those things into a solid state. Because if we can at least do updates, then we can rapidly improve the software. So I want to make sure that as we go into our next sprint, that we're focused on those issues. Obviously, we've been focusing a lot on hardware. And Josh has been doing some investigations into some of the various third party solutions that can help us with the firmware update process. And some of those include Wi-Fi setup and some of them don't. But regardless, I want to make sure in our next sprint, those two items are part of our regular planning process. Now the Wi-Fi setup, the Wi-Fi setup is an issue for a consumer product or an appliance. But for a developer kit, there are any reason why they can't plug in a keyboard, and for example, and edit their WPA supplicant file themselves. I mean, what are we shooting for here for the developer kit? For the developers, we need to make it clear what they're getting into. So if they're developers who are just waiting for, like, look, just give me a piece of hardware. I don't care about the fancy mess, right? Then sure, here, download this USB image, flash it to your USB drive, and plug it in. That can be our update process, right? But we still got some stuff to do until we get there, right? For example, the firmware isn't all on USB. Some of it's in the eProms on the XMOS chip and stuff like that. So we need to make sure that we can update that stuff reliably. And we don't want to be breaking people's devices, so even if we can just ship them a new USB update. So there's a couple of little minor things. I don't think that's a huge concern. But yeah, if we can tell the developers what they're getting themselves into at any particular phase, I've got no problem with releasing those certificates without necessarily 100% of those features. But certainly before we go into any kind of beta program with end users, we need to have that stuff sorted out. And because I think that's going to be the long pole, I want to start focusing on it now. Like, we can see the light at the end of the tunnel for the hardware, right? These other processes, we haven't really begun in earnest. So I want to get those onto our development app. Michael, I'm assuming I'm the only person that's had the issue where when he plugged his SJ201 in his recording stopped working, correct? Because I would be apprehensive about ordering some runs until we had one maybe monkey wired to make sure that that's not the case. Like I said, it didn't happen until I actually plugged it into the edge connector. The only thing going solely by what you just told me that sounds like a software problem. But it's not because, yeah, but I can just unplug our board and plug the same things into the speaker array and it works fine. That's the first thing I thought was software. All right, well the re-speaker array and our USB is behind another USB. Kevin's able to do recording just fine, but you're saying that, and you're saying as long as it's not plugged into the pie. I'm saying, I'm saying the SJ201 used to work fine with recording until I plugged it directly into the edge connector on the pie and now it won't record anymore. Oh, you're like, it's a permanent change. It seems to be. Does it work now? No. Okay, so you think you might have cried the mics or something? I mean, if Kevin's testing it plugged into the edge connector on the pie, then I would be comfortable with that. But if he's testing it like plugging it into his Mac, then it's not apples to apples would be my only concern. Yeah, sure. Can you file a bug report on that? I will. Yeah, I'll talk to him about that tonight. So one thing to keep in mind is that all of these devices were hand assembled at some point. Kevin soldered half of these things by hand, including the highest density or the highest pitch chip, which is the X. The QSD. Yeah, it's a, you know, it's currently a bugger to solder. So all of these, you know, we're gonna be assembled at the professional five house next time. And the other thing to keep in mind is we don't really have a test jig for these, right? We're not building a test jig until we know that we can at least get them working. And so that'll be one of the next things we work on. So if we're gonna make 250 of these or 500 or, you know, 10,000, we need to have a test jig so that we can test them when they come off the assembly line. So, yeah. I think that's what Kevin thought it might have been was like cold solder or something. I told my friend and he wanted to throw it in the oven at 425. But, and he said that would fix it. But then I said, well, what about the plastic connectors? And he said, yeah, they'll be fine. So I had to grab it from his hand and not allow him to cook it. That probably would be okay. I mean, if it's not working, we'll be able to use it. So the one thing I do want to point out is that I will never be able to get the audio on this conferencing system working properly. If you plug it in, that should work. Yeah, eventually I will. But it now lets you bond your phone call to the thing and I have a mute button on my headphones. So we will use this for the time being. I do need to make a little arm that swings down that brings it down to the level that I'm at, but that is a project for another day. I would like to point out that even if the SJ201 was perfect today and even if we could do a couple of the big rocks that we need to do like Wi-Fi setup and updates, we still can't provide after five years a user experience for the top eight skills that we can stand by in a demo for a company like Walmart or Target, like the software side of things. From everything from the wake we're spotting, it's continuing to have some accuracy issues to, as far as I know, we haven't resolved the music problem that our friends at Spotify caused us this past couple of months. We're not ready to go. And I don't think that that's not gonna wait until, unless we solve those problems, it doesn't matter if we spend $100 and something thousand on shipping dev kits, yeah. No, I share your concerns, Josh, but I guess I've been comfortable in believing that once we get the enclosure level stuff and the hardware and all the system level things going, then we would have the time to revisit the skills. And I've always looked at the skills being applications that run on top of our framework as somewhat trivial to correct once the framework is perfect. And so I've always kind of felt comfortable that we were not addressing the top eight skills right away because they're a trivial issue once all these other things are out of the way. I would think. Well, I wouldn't necessarily say they're trivial, but definitely by getting a limited number of units out into more people's hands and setting up the proper feedback and error collection systems, we'll be able to do a lot of this UX work, right? A lot of UX work is some of it's kind of, obviously broken and we should fix it, right? But a lot of it is also, it's just using it. And which is why we all wanna have two of these things in our environment, right? Like one for death and one for work, one for home, basically two different rooms in your house at this point, right? But we wanna have these things around so that we can work on them and use them and eat our own dog food, right? And then, and when we really do a limited release to the developers who are most interested in working on these things, we'll get even more feedback on that sort of thing. And hopefully even assistance in improving those issues. And yeah, so I'm really looking forward to doing that base because that's actually really fun. I like doing that design work and doing the feedback and doing that usability testing. So, but yeah, we need to have a platform on which to do that stuff first. Okay, well, if there's a, you know, we still need to make a decision between some of the update stuff and a few other things so we can start chasing through that. Sure, yeah. I'm not talking about anything, changing anything about what we're doing right now, right? Just thinking for our next sprint planning, which we'll kick off on next Monday, we should be keeping that in mind. Those are some priorities that we don't want to become blockers for us actually shipping products. I don't like sounding like a broken record, but some of those I feel are dependent on which GUI platform we go with. Sorry. A bad out for my own heart. I'll tell you what, the Kiwi image is working good. The only concern obviously is the community and the existing skills out there. Maybe we could even figure out a way to somehow build the conversion in. But I just don't feel like we have to make a decision on that just yet. I mean, I thought it was great to get it out there and get feedback and discussions, but, you know, I kind of agree with Josh. If we can get this going, then the next thing is we really probably should attack those skills and make sure they're usable. And then we can come back maybe and look at that. Do you believe that the performance of some of the skills and some of the problems that we're having are due to the selection of GUI? No, I think it's...  Okay, all right. Well, so I do think that there might be some latency issues between, or some discrepancies between the two in that there are some extra flourishes in the Qt version that may be causing it to be a little slower, but those could possibly be turned off, just like extra animations and such. But the problem that, you know, it's been on my plate to do what was kind of supposed to be a simple fire both versions up as they are and take a video and bring that video in and, you know, create a comparison for you guys all to look at it, see the state and where the both at. But I've been kind of blocked by numerous hardware issues. I really only have one of the re-speaker-based devices and lately it's given me trouble.  It was like, okay, I got this to work at one point so it can't be hardware, but you know, this thing's unreliable. So I guess it's because Blocker, yeah, you know, and this is back to the SJ201s. Yes, we all have two of them and we all should be able to then say, okay, this hardware is working, it's good, we've got past that goal. Let's fire up the Kevian Qt and everybody take a look, you know, because I couldn't guess that really only Gez on the call right now has got a current kind of perspective on the comparison of the two. Yeah, and this is something that the community can help us out with because very early on, and this may very well be outdated information, they understood that the Qt API relied on hardware acceleration and needed a lot more processing power to execute, regardless of like the flourishes and animations and the sort of things that you can actually do with it, right? So there's, you know, there's, I guess, the performance can be associated with two different things, right? There's a thing that drives me crazy in that a lot of people design UIs like the, like TAN, you know, a lot of people design UIs like the TAN animation as a way of making it look nicer, but it actually ends up, in my opinion, impeding the personality of the Qt. And so that's one issue. We can separate that off and then focus on just the responsiveness of it as a Qt, right? And how much of the system these things have, you know, in terms of memory, CPU cycles, and that sort of thing. Getting a benchmark of how much, how many resources that the Qt system requires versus the Qt system, I think is ultimately where we need to go. It'll be nice to have like a visual comparison like you're talking about, Derek, but I want to go under the hood too and look at, you know, actual MIPS, you know, to do a Blit or whatever, right? You know, all of the stuff should be pretty straightforward at a certain level, but I honestly, I have no idea how the Qt system works and, you know, what kind of overhead it might be. So if there's anybody out in the community who, you know, can enlighten us about that, at least give us a heads up. That would be awesome. Well, isn't there also, and this is something I didn't realize until I actually burned my new Pi 4, the instructions Derek gave me, you know, required me to put an SD card in and put Rasparian on it so I could change the eProm to boot off of the USB drive. Okay. When I did that, what was really cool was I could use the touchscreen like a touchscreen, because I don't have a mouse, I just have a keyboard, but between the keyboard and my finger, I had a complete UI. Now, I'm looking and saying, how's that going to work using either Qt or Kivi? Do they have drivers for the touchscreen? Because if not, we're engendering a hell of a cost burden for no functionality and that doesn't seem like a wise decision. Well, I can answer that. Both of them work with touch. If on Qt, so like I was trying to exit, well Qt just has it, it's part of the GUI already. So like you can enter in your Wi-Fi password, everything. So you've got touchscreen on Qt by default. Right, and it's got a nice menu you can pull down and do all kinds of settings and stuff. Qivi, we're not doing anything with it, but it actually works, because I was screwing around with trying to exit to terminal on the device itself instead of being shelled in. And if you hit F1 in the Qivi version, it's going to bring up the Qivi menu and the touch is active. You can actually touch that menu and it's responsive. So if you just hit, if you're in Qivi and you hit F1, you're going to get a menu and you can test it and see if it works. So both work without any extra setup or driver. So it's a nice thing about using that DSI display because it's just supported. So I guess my thing is, we've talked about this stuff and Derek's been trying to do that side-by-side at least from an end user UX perspective. But I just wonder if we need to get some of those tasks on the board of actually doing the baseline test. Whether that's me, if I'm the only one that actually has two running devices or they are ATS devices, but they're working or someone else. Yeah. If you want to propose to put that into the next sprint and the community is really primary and current answer there, then sure, we can try to prioritize that. It is something we need to figure out anyway. Well, I think, I mean, the community are asking me about it obviously, but also, when we talk about things like the Wi-Fi setup and that is inherently tied to which platform we're going with because they both use different systems. I don't agree with that. The Wi-Fi setup stuff, you can just assume that there's a command somewhere in the interface that lets you put that chip into access point mode because every modern Wi-Fi chipset has that capacity. So like the Wi-Fi setup stuff is entirely UI. And I think we've got it or we did it. It was pretty solid for the one that we were working on last year. Like we'd gotten through it, you know, I don't know, 100 times. We just need to get that codified and get it into the current software. We talked about the process where it goes into like mini server mode and then you can connect to it from your phone. Yep. Yeah, that's trivial. Yeah, that's the problem. Well, you say it's trivial, but I've been waiting for a working version since 2018 or 2017. So like if we can, if we can just get through the, hey, we can set this thing up and get it on the network, connect it to the person's account, like play some music, right? Ask it how tall the Eiffel Tower is and have that entire experience end to end, not fall flat on its face. We could probably get some, some retailers to give us some pre-orders. But as it stands now, we can't eat, you know, we can't get to that point and that's all software. That's almost, you know, we could use a laptop to do that. We could use a, I mean, there's a variety of different form factors. We could use to at least go do the demos and stuff. But yeah. And I get that we need that for any, for any voice-only device, but if we have a device with a touchscreen, do we actually want to make users go off and grab their phone to set the device up? What do we want to provide? I agree with you 100%. I agree with you 100%. If we've got a touchscreen, why are we making our life difficult on ourself? I don't, okay. So this is getting a little off topic, but I don't understand why the choice of Qt versus Kivi has anything to do with Wi-Fi setup. It doesn't. I mean, the choice versus Kivi, in my view, in my view, who's arguing for Kivi other than Chris Vader? And I love you, Chris. You're awesome. Let me just start with that. Well, it's not just Chris. I mean, I really want to know the resource uses like, okay, so from a resource perspective, it's gonna be a challenge. And I think that's the reason we selected it was the reason we selected Kivi for the, all the demos we did two years ago was number one, Chris Vader could work on it, right? Like we had somebody in-house and he raised his hands and said, I'm going to do this. That was the big one of them. And the other one was resources. But that would, you know, whether or not there was any science behind the resources, I don't know. Like, you know, I suspect anything I was told in, in 2017, late 2017. So.  I mean, ultimately, when it comes down to it, they're doing the same thing. They're doing blitz and, you know, rendering text sometimes and all that stuff is really straightforward. So from the, from the perspective of, you know, so if the only other question is processor time, if we put that one to bed, are you still with us, Chris? Guess what? So get with the detail and say, Hey, man, like the only thing standing between us and adopting your stuff that you've been working on for the last four years is processor time. Can you assure us that this is going to run on a pie for and better yet? Can you show us a demo? Then we just say, because they are we love you, brother, but you're going to have to learn Qt and we're going to have to port this stuff across and the decisions may, let's move on. I mean, I, I, I don't, I don't think it's necessarily that easy because, you know, the other reason they give you as chosen as a, as a system is that it's Python based rather than C based. Right. And I don't, I don't know enough of the details to make a good argument. I tend to, I tend to take exception to that. At the end of the day, all of these are going to be C based down low enough. And then what they expose or attend upwards may be more Python friendly. That could certainly be the case. I don't know enough about it, but I would say that if you had a working system of each in front of you and you ran top on them on a terminal and then put it through its paces, just visually you'd be able to get a really good idea of what's going on.  Yeah, I just think side by side with top or there's another better, there's a better version of top out there. I forget what it's called. You'll be able to see, you know, what it's consuming. And, you know, I haven't going through the paces with our code and precise running and our overhead since that's really what it's going to be doing and see if there's anything perceptible that's different. And I don't think that's that tough. Once we have a working, giving and Q key system side by side. Okay. We're rehashing this.   It's, it's not a, you know, it's not a critical issue for us just yet. So let's try to focus our efforts on the things that are going to be followed. Okay. Any other, any other things people want to talk about today? Okay. Great. Well, it seems like everything's sort of proceeding at pace. I am saddened to hear about your hardware problems. But it could be self inflicted. I don't know about, I really haven't been doing like a lot of messing with the hardware, you know, other than plugging the edge connector in and out. And I mean, remember that you recently was simply lying out in an external power unit. So it can't have anything to do with that. So the only potential difference, which I've run by Kevin and he doesn't seem as a big deal is that he's soldered over the USB power jumper. And he was under the impression that should be fine. Just the way it is. So I'm at a loss. Yeah. But it sounds like that's about to start moving up your work. Right. Although you're taking in your. Inclusion code now. Right. So you kind of stopped working on that for the time being. No, I'm going to go ahead and proceed with the pull request for Chris V on Wednesday with the stuff in, in their working, assuming in the absence of working hardware that it should be working and then we'll take it from there. But yeah, the sooner I can get a good working piece of hardware, that'd be great. And I'd really, I'll create a ticket and I'll follow up with Kevin and ask if he's actually plugged the SJ201 in and pulled it out and did it do anything to the, to the microphones. Okay. Yeah.  Yeah. You know, prototype. Just the SJ201. I have two, five fours here. I have everything else I need. I just need a SJ201. I mean, I, I don't mind having one of them using the old amp and one of them using the amp built in. That's fine. That would be what I would have, right? Okay. Well, I'd like you to have one that's just a mark two and then the other one can be the, the bare SJ201. Yeah. So that's what I would say. So really just a working SJ201 would do it because even the one that's kind of defective with the, with the mic, I could plug it into the re-speaker if I wanted to and get by. So just a good working SK201 would be fine. And I'll, like I said, I'll follow up with Kevin and make sure this is not a potential issue. Cool. All right. We want to get to the point where all the SJ201 devices we all have, or as identical as possible. Oh, no. When we get a finally working version, we're going to chuck all of the old ones in the garbage. I may insist that you send them back together. So we don't have it sitting around. My first PC came a friend. They go, they go up there. They go up there on the, on the shelf with, yes, I'm here. My first PC came from a friend who worked at the warehouse that was supposed to destroy PCs for IBM on contract. Nice. Is there anybody you don't know, Ken? No, well, yeah, I won't go there. Tell them we'll drop by tonight. I was just going to say, I've never met the cheetah with chief. On that, I guess we'll call it a day. Thanks everybody. We'll talk again Wednesday. Everybody on Wednesday.


Good afternoon. We've just had a meeting in the Oval Office, and I am delighted to welcome you all to the White House to witness the signing of our agreement on modernizing the Voice of America Relay Station in Tangier. I am pleased to call on Director Wick and Minister Filali to sign this agreement, an important step toward strengthening the signal of the Voice of America. Now, if that station ever needs a sports announcer, we come together today as people of two free nations bound by common ideals and aspirations, and one of the most important ideals that we share is our belief in the power of truth. Truth is mankind's best hope for a better world. The Voice of America has been a strong voice for truth, and despite problems of antiquated equipment and Soviet jamming, the Voice of America has been able to spread its message of truth around the world. But not for many years of neglect, the Voice of America could be heard more clearly by many more people around the globe, and that's why our administration has made the same kind of commitment to modernizing the Voice of America that President Eisenhower and President Kennedy brought to the space program. It's our firm commitment to Voice of America modernization, which brings us here today. Millions of people who long to hear the truth will benefit from this agreement. And by increasing the direct flow of information to the people and allowing them to make up their own minds about the major issues of the day, we'll be serving the cause of peace and human rights. America's ties with Morocco go back more than 200 years, long before the advent of international broadcasting. Our relations are warm and close, and we share many of the same values. The cooperation between our two countries is symbolized by this agreement. And I want to say how much I, as well as Ambassador Reid, Charles Wicke, Ken Tomlinson, and others at the Voice of America, appreciate the cooperative spirit that is characterized and negotiating between our two countries. I would particularly like to express my gratitude to His Majesty King Hassan II for his role in this negotiation. His involvement and wise counsel were critical to its successful conclusion, and we owe him a debt of gratitude. So thank you all very much.


This incredible and frankly shocking moment that was beneath the dignity of how a senator should behave and it is a very incredibly telling moment. I mean it's obviously indecent and based on a desire to not have accountability. My reaction was that her behavior was disgraceful. Behaving disgracefully. It was disgusting. It was awful. It was an awful thing that she did. It's awful. Harmful to democracy. Wow. It doesn't take Sherlock Holmes to see that CNN and the rest of the media minus Fox News are just left-wing DNC parrots. And this latest soy explosion from the usual suspects leaves no mysteries. As you all likely know by now, Senator Martha McCalley triggered the left-wing media bubble when she rejected questions from CNN reporter Manu Raju by dismissing him as a liberal hack.  I'm not talking to you. Now let me just say that I'm not super familiar with Raju, but what I do know of him isn't good. Just casually watching him on CNN, he plays the typically partisan games that we've all come to expect from CNN. Like he reported fake news about Donald Trump Jr. and then blamed his sources when it was exposed as lies. He put out fake news about Kavanaugh, but when it was refuted, he refused to retract the story. He has a laundry list of liberal hackery that I'll put in the description for you to check out, but as far as I can tell, the label of at least hack is accurate. But leave it to the left-wing activist media to immediately hyperventilate and explode into completely fake and hypocritical outrage. Calls him a nasty name. Just, it just demeaned the office. It wasn't exactly what Sir Palin used to like to call a gotcha question. And we're not, I'm not being defensive of him because he's my colleague. When they tell the news media go away, they're telling you at home to go away. That's not just about us, it's about you. They're attacking a fundamental part of American freedom. ...revealed her contempt for professionalism in one of democracy's core tenets. Full MAGA universe is just going to be trying to weaponize what President Trump has created, which is this groundswell of media hatred. Notice that once again they're blaming Trump for distrust in the media. Despite the fact that trust in media has been dropping for the last 20 years, and in the last four years they've only doubled down on the strategy that led to that distrust. How'd that lawsuit go for you, CNN? It was only a few months ago that Nancy Pelosi snapped at a Sinclair news reporter named James Rosen when he asked the question if she hated President Trump. Now, this was in reference to a Republican who a few days before had said that they were impeaching Trump because they just didn't like the guy. So it wasn't just out of nowhere and Pelosi snapped at him saying, don't mess with me. And so I wonder if you could explain to the American people why the legal rights of the listenable should prevail on this political setting over those of President Trump who should ordinarily enjoy a right to confront his accuser. Well, let me just say this. I'll say to you, Mr. Republican talking point. I know you're all going to be shocked, but CNN and the rest of the unbiased media erupted in applause for their Botox Mutant Golden God. Don't mess with me. One of the many iconic Nancy Pelosi moments. Absolutely. I loved it. I thought that was Nancy Pelosi at her truest and at her best. She's angry. She's angry with the cheap shot question, but it's really important for those of us who really can't stand the idea of a Trump presidency. It was provoked by someone else, but she seized the moment as dramatically as any fiction writer could have provided for any fictional politician in a movie scene. But you all know there's reasons why that was completely different. And it has nothing to do with partisan double standards. It wasn't just Pelosi. Elon Omar snapped at the exact same CNN reporter. Omar took strong exception. This morning you said the president trafficked her. What is wrong with you? Question about your tweet. You had a tweet saying the president trafficked and hate. Yes, I tweeted. There's a response. You can run that and have a nice day. But for some odd reason, it didn't receive any media backlash. It's no surprise to anybody watching this, but Elon Omar could say or do whatever she wants and the media is going to run cover for her. But if a Republican does the exact same thing, different standards are applied. And you wonder why Donald Trump got elected.  Look, it's not like this is an important issue. But it exemplifies the problem of having a fourth estate that's been taken over by far left activists pretending to be protectors of democracy.  Thanks for watching. I appreciate your support. Thanks to all my patrons and subscribe star members. I couldn't do any of this without you. Also, make sure to head on over to my website, DroneTechPolitics.com, and check out the discussion forums. Thanks again for watching. Keep coming back.


Hi, thank you for contacting Google. How may I help you? Have a great day. Absolutely, I can help you with that. Hi, thank you for contacting Google Disability Support.