With cluster being dropped and free BST losing some vendor support, what does the future of true NAS scale and true NAS core look like? Well, the short-term answers are both going to be fine. You can continue using them. But the long-term answer is going to be some evolving that'll happen in both of those ecosystems. And it may mean leaning a little bit more towards scale because of the brighter future that Linux has. But that's what we're going to talk about today. So let's get started. Now I want to start here right from the true NAS documentation. And you can see that they have announced that both true command, which was the tool that manages all of the true NAS servers, both scale and core servers, is going to remove cluster. And of course, true NAS scale 2404 has removed and deprecated cluster back end. This is because there is no future for cluster, not that is well preceded by IAC systems or anyone else. I can't say there's not a community for it. There's certainly people using it. But with a lack of developers pushing it forward and Red Hat dropping their support for it and no one picking it back up, they've decided to remove this feature. So that leaves us without a clustering option going forward. Now, this never got out of beta anyways. So it's not like this was used in any production true NAS systems that I'm aware of other than just some home users may be testing it out. But this does signal that they're going to have to change and do something different, which does lead me over to this Reddit post that someone made referring to the true NAS documentation and talking about it being deprecated. My thoughts on, hey, I never really understood Gluster over Seth, and then Chris Moore, senior VP of engineering for IAC systems. Unfortunately, the state of Gluster today doesn't leave us much path forward utilizing it for clustering operations. Good news is we're working on things internally to provide alternative options that I think will be easier and more useful in a wider variety of use cases, but too soon to announce any specifics. Now, while this is definitely a bump in the road for true NAS scale in terms of getting a clustered file system option available to people, I don't really see this as hurting the long term for scale because scale has been maturing fast. It's become, well, feature parity with true NAS core and getting really close and maybe even exceeding it in some areas of performance. The one thing they still have to work on, but that is, well, very transparently getting closer to done is fixing the way the arc system works in there to get it more on par with the way it works in BSD. BSD has had this right for a long time for how the caching works with ZFS and they're re-engineering a lot of things in Linux to get that feature parity up to par. So you can say, all right, now they are absolutely either the same or eventually, as we all know, the Linux one's probably going to exceed core. But that leads us to talking about core now and is that project dead? This is what people have told me since I did my first video all the way back in 2020 on true NAS scale. And here we are about four years later and true NAS core is not dead. We're still putting it in at customers. It is very stable. Now, obviously, I don't recommend using jails or any of the virtualization with core, but I haven't recommended them since years ago, even before the true NAS scale came out because I never found them to be the best solution. But let's talk about core. And I want to give a shout out here to Chris Moore, because if you didn't know, he's not just an open source advocate.  And I say that because he was the founder of PC BSD. So if you dig around in history, you're like, Oh, Chris Moore is not new to this at all. He's been a long time in a position of senior VP of engineering at IX systems and heads up both of these projects. And I feel he's been very transparent. And let's go over to his forum post talking about the future of core. Now, I'll leave a link to this entire thread so you can read through this entire forum post, which Chris Moore has a lot of back and forth with people that's really insightful. But I want to point out right here what Chris Moore says about BSD. We've seen a trend towards upstream vendors moving away from supporting it directly or giving it less of a priority versus a decade ago. Then we take a look at all the work that Intel is pouring into Linux for up and coming technologies like CXL, which be highly relevant to all of us. And from there, Chris brings up the question, does IX systems do the extra engineering work to prop up free BSD just to support core? They want to develop core on BSD, but do they also want to be heavily maintaining the BSD based on what they find in Linux importing it over because the vendors have decided to drop that support. This is something that makes sense if you have unlimited resources, but this is the problem most open source project faces. There's resources are much more finite and extremely driven by the community engagement. I've even seen someone suggest forking it as if that's a solution to the problem they're experiencing of more developers are needed. This is a challenge. A lot of open source projects faces. They have to figure out how they can keep paying developers to work on the project, how they can keep contributions going, keep people interested in the project to do even free contributions and also maintaining all of this. Now, IX systems is selling hardware that funds the developers that funds the product. They've done actually very excellent, very transparent, very open source and how they've done everything. And there's no fuzziness of how they fund it, but you have only so many people buying IX system systems in order to do this project and keep it all free. And at some point, I believe the resource allocation may cut out some of the BSD, but that doesn't mean it's happening today. Or even if it did happen today that the project is dead. Matter of fact, in 2024, they are shipping another update to TrueNAS Core. So there's not an end date in site, but we know the project with BSD overall is waning due to the lack of vendors writing these drivers. Then that means, well, there may be some new technologies that come out that are no longer supported in core. And it starts eliminating the user base for core and pushing things over to scale. Now scales under rapid development. There's a lot of other comments down there further that I'm pretty excited about talking about the new enhancements they're going to be doing for scale. Read that forum post to dive into those. But I love hearing from you. Leave your thoughts and comments down below. Let me know what you think about this topic. Join my forums, forums.learnsystems.com to talk more in depth than you can in YouTube comments about this and other topics. Like and subscribe to see more content from my channel. And sign up for my newsletter to keep up with the things that are going on. And I'll see you later or maybe in the forums. Thanks.


U.S. to buy MIM-23 Hawk air defense missiles from Taiwan for delivery to Ukraine. The U.S. is re-buying decommissioned MIM-23 Hawk missile systems sold to Taiwan to provide them for Ukraine as part of a military aid package. The China Times reported it referring to the source. The source of the newspaper states that it is about the Phase 3 MIM-23 Hawk decommissioned in June. This agreement was preceded by consultations between the U.S. and Taiwanese governments. Surface to air missiles will be transferred to the Ukrainian army to combat Russian drones and low-altitude aircraft. Taiwan's Ministry of National Defence declined Taiwan News' request for comment but said the weapons were being disposed of in accordance with regulations. Taiwan will replace the decommissioned weapons with the SKY-BO-3 TK-3 system. The MIM-23 Hawk is an American medium-range anti-aircraft missile system developed by Rayvion. It entered service in 1960 and has undergone several modernization programs since then. It has three generations, Phase 1, Phase 2 and Phase 3. Initially, the system was developed to destroy aircraft but later it was modified to intercept missiles. They were in service with a large number of European countries including Greece, the Netherlands, France, Germany and others. According to the Taiwan Air Force, Hawk missiles were used in 41 combat exercises between 1965 and 2017, hitting their targets more than 90% of the time.


Hey, this is Brett, and this 2010 Chevrolet Camaro 2SS Coupe is stock number 13902Z. I am here at Summit Automotive in Fond du Lac, Wisconsin, your new and used sports car headquarters. This 2010 Chevrolet Camaro has the 6.2-liter V8 gas engine. When paired up with the 6-speed automatic transmission, it puts out 400 horsepower. This car has been fully-safetyed and inspected by our service shop. Has a fresh oil and filter change, all the fluids have been checked and topped off for the state of Wisconsin inspection process. It has four brand new tires, and it is 100% ready to go. I'm going to go all the way around in this video. Inside, start it up, take a look under the hood, show you all the options, and give you the most accurate representation that I can of the car. Black clear coats of color. I shoot all my videos in 4K. If you like the video, you can subscribe to my YouTube channel, which is youtube.com. Summit Auto. Click the bell notification so you get updates on the videos I do each and every day as well as having access to one of the largest catalogs of vehicle and sports car walk-arounds on YouTube. This one comes with the 20-inch painted alloy wheels. It comes with the Brembo brakes as well. It has brand new Pirelli P0 245-45 ZR20 tires. You can still see the little wear knobs on there. We put those on in our safety inspection. Front fender is in fantastic condition. I didn't see any major dents or dings on there. This one comes with the HID headlamps, the LED running lights, the factory fog lights. We'll turn all those on at the end of the video so you can see just how nice and bright they all are. Front bumper is in fantastic condition. I didn't see any dents or dings on there. The hood is in really nice shape as well. The stripes are in nice condition too. I didn't see any major imperfections on them, and I'm pretty sure these are metallic. It's either white or a really bright silver, but they are metallic stripes on there, which almost all the SS Camaros were. The stripes are always metallic. Passengers side front fender is in really nice shape as well. You can see any dents or dings on there. The passengers side front wheel no major scuffs or scrapes on there. As you go down this side of this 2010 Chevrolet Camaro, take note of how clean that body is, how reflective and mirror-like that paint is. I take these HD videos so if you are far away or even if you're close by and you just cannot make the trip down, but you're still interested in purchasing the vehicle, you can see the car, hear the car, and have confidence in the vehicle that you're looking at before you even get here. If you do get here, there's absolutely no surprises, and you can make a smart and informed buying decision from wherever you're at. And if this video helps you make that buying decision, let me know that you saw the video that was helpful and that bread sent, and then I can keep doing these videos. These back tires are brand new as well, and you get the Brembo brakes back here. Coming around to the back of the vehicle, rear bumper is in great shape, and you get the chrome-tipped dual rear exhaust. Rear bumper is in great shape. Deck lid and spoiler are in nice condition as well. This one does come with a car cover. It also comes with an all-weather format back here, which is pretty nice if you ever want to know where your RPO codes are on your Camaros, or I think 10 to 14 right there. Make sure this one's got all the options you're looking for. Anyways, very nice and clean back there, and that car cover is included with this vehicle. That shuts nice and solidly, and as we go around to the driver's side, just as clean as that passenger side, no major dents or dings on the rear quarter. And for full disclosure, this back wheel is in excellent shape as well. Coming down to the rest of this side, the door is in very nice condition, and you do get the heated power mirrors.  There are no rips or tears on the seats. Smells very clean inside this car. Power driver seat, factory floor mats, auto headlamps, power windows, locks, mirrors, and you get the Boston sound, the lock button is actually in the center console, and you get the silver trim on the doors and dash of this vehicle. Back seats are just as clean as the front seats, no rips or tears back there, and it does have the latch child safety system for any child car seats you may have. We'll hop inside, check out the miles, the radio, and everything that this car has to offer on the interior. You can see that this one has 12,118 miles on it, you do get the digital spinometer on there. Instrument cluster is very nice and clean, comes with the leather-wrapped steering wheel cruise controls on the left, Bluetooth and audio controls on the right.  Stability control, six-speed automatic transmission, passenger side floor mat and seat are in fantastic condition, no rips or tears on them. Once again, I don't think this car has ever been smoked in, smells very clean inside, you get the power sunroof, map lights, sunroof controls, and home link buttons for your garage door security systems and lighting systems on Starin SOS capabilities in the mirror. Let's start it up and take a look under the hood. Starts right up, no check engine lights or anything like that. As promised, I'll turn on all those lights so you can see how bright they are. And I would personally like to thank you for checking out the video today and hopefully from this HD video, you've been able to verify the quality condition options and of course, cleanliness of this car all the way around inside. There are those HID headlamps, LED running lights, nice and light. Under the hood, we have the 6.2 liter V8 gas engine, 400 horsepower one is connected with the six-speed automatic transmission, engine base, very clean runs, very smooth. Once again, this car has been fully safe and inspected by our service shop, has a fresh oil and filter change, all the fluids have been checked and topped off, the shock is doing a nice job holding that hood up. It has four brand new tires, there is the emission sticker and I would highly recommend this car from a quality and condition standpoint. For the year and miles on it, I would ship this one anywhere, California, New York, Texas, Florida, Arizona, wherever, whoever's going to get it, it's going to love it. And to see more pictures of this car or one of our other 550 new and used cars, trucks, SUVs, minivans, wranglers, sports cars, Camaro's, Corvettes, Challengers, Chargers, Mustangs, GT500, Z06 is, you name it, we got to go to that website right there, summitauto.com, full pictures and descriptions of every single vehicle all at summitauto.com. If you'd like to check out more HD videos, you can go to youtube.com slash summitauto, click the bell notifications and you'll get updates in the videos I do each and every day, as well as having to access one of the largest catalogs of vehicle and sports car walk-arounds on YouTube, 8,000 videos and counting. In fact, in a second, you will see a link to subscribe to my YouTube channel on the upper left, a link to more Camaro videos like this one in the upper right, a link to this vehicle on our website in the upper or in the lower left, and a link to one of our latest YouTube videos on the lower right. Click those checks out. We're super excited to help you with this Ultra Clean 2010 Chevrolet Camaro 2SS in black clear coat. Thanks again for checking out the video. Remember to like, subscribe, and share on the YouTube channel. I really appreciate it. Thanks again.


full screen. The channel has been very silent. I don't know if that's good news. But let's start our session. Visual configuration. So I hope everybody's here. I don't know how to, it's weird that I don't see anyone but they hope you are all fine to resume. We have you are all in the list but hopefully this is fine. So what are we going to talk about now? Color. We're going to bring color to our life or to our app. I think this session and the next session are very visual and very to me interesting or kind of fun. So I'm going to tell you the different things that are in the app for shaping the look and feel in terms of color or user experience for the user. So of course we cannot do everything but we have some things that let us be a bit flexible. So first thing I want to explain you is that in the HHS2 there is a thing called theme. In appearance I think it's called theme where you can configure the color of your server. I don't think this is working anymore in the server. It's an older feature, feature, but it is working in the app and we will see later the effect. So just to say that you can choose either green, orange, light blue, red, or Vietnamese default blue for your default color in the Android app. Then we also have colors for the programs but this is the color of the Android app overall. And then you can also select a flag. This one is the one that will appear here when you have it configured. And in the app it's going to be replacing the icon. I will show you later as well and it will be the icon that is shown while you are syncing. Right now you see the HHS2 icon. If you have a flag in the server it will show the flag. I will demo this later. In addition to this, that's for the server. Let me go back here. This is for the server and this is for all your users and it's like generic for everyone. But now when we go to programs or metadata there are two things we can configure. One are the icons and another one are the colors.  When a program or a dataset has a color configured, when the user opens that, the whole app takes that color. So it replaces the default color. Let's say your default color is blue, your program is yellow. When the user enters in the program everything is yellow. This is questionable. We can talk about it. We have even different opinions in the team but we think this helps linking the workspace. If everything is yellow I know I'm working in the child program and I avoid that mistake and the maternal care program is pink. I don't know. So we are trying to help getting context to the user. This is just to tell you that there are three types of every icon. You can choose it three times. Outline positive or negative. This depends on how you want it to look and it's totally up to you. You can do it at configuration moment. In 235, so we are making this academy in 234. So we are working with the old icon library. But in 235 we have reviewed the icon library. So for instance we have made all icons more generic not to reflect any racial or gender features of the icon itself as we had before. So from 235 this is how they look. And then we have also added new domains like education, coronavirus or agriculture or environment. And some other sets of icons to show you display levels and other useful things. So hopefully if you use 235 you have access to all of this. For this academy we don't. This is just to let you know that using icons do not increase your traffic, your data traffic because the icons are all in the app already in the APK. So if it increases something is the APK size but not your traffic. What we download is only the name of the icon. And then the app will find it and display it. So we just download the name of the icon as part of the JSON of the metadata configuration. So don't worry about using icons if you are in a very limited setting. Requesting icons is something that we will talk about in on Friday. But just for you to know that you can you can not upload your own icons. Sorry about that. That's something we always discuss but it doesn't exist per se in the HIS2. The possibility to store custom icons but you can send us your suggestions so we will tell more about this on Friday. This list is showing you where you can use icons. So track entity type, program, program stage, dataset, data element, attribute indicator, program indicator and an option set with options with the options. So there you can assign the icon in the metadata configuration UI and then Android will render these ones that we are showing here. For now we have yet still not rendering all of them. It's a work in progress and the same for web. Some will be displayed and some will be displayed in the next in the new capture app when it's completed. So this is how it looks where where you can add the icons and colors this to color. So you edit your metadata and then you have color icon and then you have to choose. These are the three that I was telling outline positive and negative. We will practice this and I will demo it. So this is about the icons and the colors. I will demo and tell you more. What about rendering types? We have few special rendering types. One is the image. So the image is not configurable. It goes by the value type but just for you to know, this is how it renders. It will open the camera and take a picture. The date picker is also not configurable but your user can change from different views. I'm going to demo this in a minute. And then this one is configurable. For your Boolean types and option sets, you can choose if you want to drop down, if you want a vertical or horizontal radio button or checkbox. And also to say, if you choose the drop down and the list is the options are more than 15, it will not open a drop down but the box in which the user can search. Another special rendering type are the QR code and the barcode. We will see in a demo in a minute. And this is how they look. This is how you identify when a field is different. And this is for value types, text. Then you choose the render type I will show you how. And this is just in case it's useful for you, how you can generate QR codes. It's very useful. So these are the different rendering options that you are going to see based on the value type. And the ones that I have not marked or marked as not available are some that are offered in the UI but they are actually not available. We are, it's a work in progress. So the only one that I have not explained is autocomplete. Autocomplete is for texts. So if you render something as autocomplete, it will, once your user starts typing, it will suggest the values that have been entered before for that field in that phone. This is, for example, when you need to register a location but you don't have a list, but you want to capture as much as possible the same spelling for every place. In some places, spelling of locations can vary a lot. So now when the user starts typing, we will suggest the same spelling that was done before. This is all about quality. And this is just a summary of what I have just told you. And here you have a link to the documentation where we explain all these visual configurations. So let's have a look in the app. And I want to show you. I'm going to use the app. So here we have the Android app. So you see the app is blue. And you see that this is the training icon. Sorry, yes. And now I'm going to open our contact tracing program. So you can see now how the local case ID is a text, right? And we can also see this is the calendar. So this is how the user changes the view. Okay. And now when we, sorry, when we register a TI, this is how the image works. So I have here an assistant for this. So this is how the image will work. So I'm going to go to the server now here. And I'm going to go to system settings. I want to change the color. So let's say green. And I want to put a flag. This is already updated. I want to make other changes. I want to show you where to change the rendering type. So we have changed for now the color of the server. And we have changed the flag. But now if I go to maintenance in the programs, I want to go to the contact tracing that you all have. This we all share. This is not for students. So I want to change the icon or the icon is already there. I'm going to leave the icon, but I want to change the and now I'm going to go to the attributes. So you saw we had the local case ID, which is a text. I'm going to make it QR code. And I have to save. Remember to save. Okay. So let's go back to the app. That was quick. It's still sinking. The problem is that I have a demo mode in the phone and then it's hiding notifications here. Okay. Now you see the last time it was 1028 before. Maybe you want to, because some people were having that issue, maybe you want to explain why did you do this, like to get the information from the server. Because I think some people are modifying the server, but they do not see the changes reflected on the phone. As a reminder, please make sure that when you make changes on the server, in order to get things in your phone, you need to do what Martha has just done. Yes. Okay. And I'm going to even go further on that in a minute. So important to check your last sync, which was, which now it's correct. So now you can see the program color. So now you will see it's going to change from blue to the program color, you see. And now you see this local case ID is a render. It's a QR code. So I'm going to generate this whatever unique ID 123 code. Okay. So I'm going to search. So see now it's not a text anymore. Now I'm searching and it's telling me that, so did you see how it rendered here? I just changed the render type in the program. So now I can add the track entity instance. Ask again, my friend for help. Now I'm saving it. I didn't save it before. So just by, okay, this is my track entity instance. Here you see how they match renders. This is how it looks in the list. So just by changing the rendering type, now I have a QR code type here that I can use also for searching. So if this patient had a patient card, I could just scan the card. So I'm about to finish the demo, right? I want to ask you, I did change the color of the server and I changed the flag, but we are, I did put it green, but the app here is still blue. Why is this happening? This is something that we are fixing for the next version. But the thing is syncing your configuration, as Jaime was saying, is something you have to do when you modify your metadata. Every time. And it will work with all changes. The one change that is not reflected when you do this is when you change the server. You are not supposed to be changing the color of the server every now and then. So this one we only do on first login, which is not correct. We will fix it, but it's what is happening. So I'm going to reset the app and start over so that you can see how it picks the color on the flag. So now I want you to see how the moment that configuration finishes is going to change. This is going to get green and here we should get the flag. But again, this is a special case only for the color and the flag of the server. Any changes on your metadata, it's enough to sync configuration. Okay, here we have the flag. Oh, we cannot see it. Oh, didn't I change the color? In any case, I cannot repeat it because we don't have time. But the flag used hurt. I chose green. I think someone is probably changing behind. So, okay, it should have been green if here would have said green. And the last thing I want to show you is that if we have the widget working, so in the next version, if you do this and say widget and put the widget here, it will take the flag. This icon will be the flag. So this is how you personalize your app with the color and the icon. Share questions later. So let's see the exercise. What are we, not this one, what are we wanting from you today? I think it's a very simple one. You have to configure the icon and color of your student program, not the contact tracing I did, your student program. Make in your program the local case ADR QR code and then choose one of your data elements in the program stage. Change the render type to either checkbox or radio button for one that is an option set. So we are giving you here examples, reason for testing, type of specimen, type of test. So the lab stages are very good for this. And then sync all your changes. And we will ask you for submitting three screenshots. One with the home screen where we can see the color and the icon of your program. One of the TEI search. So this one in your program with the QR code rendering. And then one of your data entry with the checkbox. So it's time to do the exercise. I went over two minutes, sorry about that. But it's just those three changes or four is about syncing. As Jaime said, it's very important to sync your metadata. So I'm going to open Slack now just to make sure we follow your questions. But that's all from the session, Martin, if you want to stop the recording. I'm actually


Monster place. I love house rules. And yo, this house rules is out for seven days, which is sick. I don't have to like scrunch it into 48 hours. I have a life EA. Just kidding, I don't. That's a lie. That's not true. All right, whoever gets 20 points first wins. If you score a touchdown on a play that is 50 yards or more, games over because you get 20 points for that. If you score one between 50 yards and 20 yards, you get 12 points.  It sounds like it'd be really easy, but I've been playing a lot of this. It's actually quite difficult to do. Got Nick Chubb at halfback. I don't want to get new halfback for stuff like this, but whatever. Okay, I gave Sammy Watkins moss. It's kind of hard to get it to trigger, but it is literally the stupidest ability. I cannot believe EA put this in the game. Like, I'm appalled. It's so much fun, but it literally just yanks all the skill out. You are guaranteed to catch the ball if you turn this thing on. If you throw a pass over 50 yards and moss is activated, they will catch it no matter what the defense is running. He could put 11 men all manned up on Sammy Watkins. And if moss is going off, he will catch it. It's ridiculous. To trigger moss, you have to get three catches for 20 plus yards in the air. So it's actually kind of difficult. However, using indoor baller with reduced zone objectives in domed stadiums, it's only two catches. And the Lions home stadium happens to be a domed stadium. So we'll see if we can trigger that. No guarantees. My main goal is just to win monster plays a bunch of times because it's super fun. Other than that, we got Decent Offensive Lime. We got Gronk and Kellen Winslow. Defensively, Shaz is a 92 now. Got Kalil Mac, Deon Jones, Vanderesh, Weapon X, Eddie Jackson, who I am gonna sub out for Kevin Johnson. There is Slate, today we have Slate, that's a true font. Aaron Donald, Fletcher Cox, they're on pain, the usual suspects.  Yes, I'm sure you can tell I got new earbuds for this one. So this little beauty is Raycon's newest earbud, the E25. Now I've talked about these earbuds before, I think they're awesome, but I'm gonna fill you guys in real quick. So Raycon makes wireless earbuds like I'm sure you're familiar with, but why they're my favorite. Number one, they have so many cool color options. Number two, they're like half the price of any other premium wireless earbud you could get right now. And of course they sound just as good. Last time I had the E50, these are the E25s. This is the best one yet. It's got six hours of playtime, more bass, awesome, fits perfectly, obviously. Highly, highly, highly recommend these guys. There's gonna be a link in the description box right at the top for you guys to click and check these out. Buyraycon.com forward slash MMG. And that's gonna get you 50% off, which is awesome too. Raycon, thank you so much for sponsoring and guys enjoy the rest of the video. He's got the crispy new jerseys on. I got those too though by the way. You'll get to see those today. We're gonna see some read option out of Lamar Jackson to start this game out.  But then I watch a real game and I'm like, you know what? He actually does that in real life. So it's kind of realistic. Come on, throw it. Throw this, throw this.  Oh, wait. I'm on late and Vanderesh. I don't like that at all. No, no, no. He's gonna scramble. No. Think about it. Let's go. Picked off. The Joelist. Can I return it? Can I return it? Good move. Kind of.   Only thing about this game mode though is you cannot get cocky at all because he could literally throw a fat bomb touchdown on me and it's all ogre. I'm in his swamp now. Second and four. Got it here. Got it here. Go get him. Go get him. I'll cover all this. Oh, come on. He'll throw right at me. He's disrespectful. What do you want, big guy? Is this a read option? Deon Jones? Oh, I did not put Deon Jones in a QB spy. That is not the right route. Okay. But I accidentally put Deon Jones right where he threw it. Can I do it again? Wait, wait, wait, wait, wait. It's actually a good thing that I didn't get it because now I actually have the potential to just win the whole game. See if I can get a little RPO bubble. The absolute classic from somebody over, Nick Chubb. It's cover two, right? So the safety is going to sink. Tori Holt's going to get open. Damn, he had like a man. Oh, see Tori Holt is open.   I'm sorry, guys. Oh, this is read option. He's running read option. Oh, no. Never mind.    George Kittle. User instant foul ball. Calvin Johnson selfless out of bounds with it. All right, damn. Uh-oh. Oh, great block. Dude, my hat back just tossed a block, Juke. Come on, man. I'm going to juke another one. No, I'm fumbling. I didn't fumble. I got so lucky. Oh, why? And Sammy Watkins is so good. Sadly, though, I can only get seven points on this touchdown. Now I'm not going to be able to use the monster, play, whatever the thing. Oh, inside Sammy. Another eight yards. All right, now I'm scrambling right up the middle. Is it touchdown? Come on, man. Come on.  I'm going to contain the QB, put a QB spy. Oh, read option. Come here. Oh, you're so dead. Fumble.   Let's go. I'm just going to show both of this all the way into the end zone. Nice work, boys. Huge win. A shutout, 20 to 0. We played that like a regular game, too. I didn't get any of the monster plays. I'm going to do my laundry. I'm going to just do my laundry after this. It's fine. It'll just get all wrinkly. The crazy thing about this game mode is if I get like a sick-ass touchdown right, it starts already over. Like that's all it takes. Oh, come on. Hold those blocks. Jalen Ramsey's coming for me. Wait, wait, wait. Oh my god.  My leg went out of bounds, but dude, I actually could have kept running. And then I got lit up by Devon Bush. But all right, we're making the drive happen. I'm actually pretty sure the best strategy is just to run the ball, because it's pretty easy to bust out of like a huge run play. Is that a bad pass? Dude, Sammy Watkins is so good. That was such a terrible pass. Oh, no blitz, no blitz. I need Sammy Watkins to run down. I'm going to throw it. I'm going to throw it. Oh my god, he's so good.  That was 120 plus your pass. Come on. That was sick though. That was so sick. Let's send a blitz. We haven't sent any blitzes all day. Hey, good time. Oh, wait, bad time. All right, we got ourselves a pass here. It's got to be. All right, we'll play action. Good pressure. I've got everything clamped. And Michael Vick, OK, you know what I don't get? Why is that not a fumble? He's clearly losing the ball before anything hits the ground. I don't get that. All right, Deon Jones going into the QB spy. Let's let the man scramble. Go get him. Oh, wow. All right, good pass. It's going to be a fourth in about eight. Calvin Johnson in the QB spy this time. Play action again, of course. Go get him. Come on. Come on. Dude.  Corner out again. Are you going to throw it again? No. He goes inside. That's fine. You can't get a 20-plus yard or no. I just have a feeling he's just going to go corner out. Oh, whoa, that spin. This guy's good. We got some competition in this game. Where's the corner out?  I know how badly you want to do it. Oh, he's going to the hat back. Damn it. I saw it late. I knew he was coming back to that. I got infinite tie back here, boys. Who's going to get open? Is he open right there? Sketchy!   That's the best way to put it. Run play. Oh, no. It's second and eight. He's running like cover for a drop. This should get some decent blocks here. OK. OK, Nick Jump. Oh, and Calvin Johnson gets to me. Fourth and sixth. This is huge right here, if we can stack this.  Hey, I get the ball at half. If I can keep him out of the end zone before then, we still got a shot. All right, QB's spies on. I know a corner route is coming. It's a late game. He runs the toss again. Totally fine with that. He's running on a clock. Oh, this is fourth down. I didn't even notice. Going for it. Definitely the right call. Play action. Ooh! Huge sack by Aaron Donald. I didn't even see him come in. First in 10. I could even, I don't really want to feel goal in this game mode, but I could totally toss one up. Sammy Watkins. I gotta go for it.  I gotta go for this. If I get this, the game is pretty much tied up. I get 12 points for this if I can get it. Let's see where it, let's see what's there. Getting lots of pressure. I'm just gonna throw RB. Oh, and I got picked off, but whatever, it's kind of the end. All right, I do get the, oh, what? I'm on D? Oh, this might be an L, boys. He's gonna throw an RP. Oh, it's totally there. Oh no, oh no, yes, we got him. Still though, this game might be in the books. I'm sending the Blitz, screw it. Why not? What do I have to lose? Send it, boys.  That was a tough loss. All right, we got a new game in the books. It's gonna start out with an RPO. Did you guys see the ball just glitch out? Okay, no, no, no, no.  First in 10, is it another run play? Looks like he's doing a lot of audibles, probably not. Where's the corner route? Everybody, everybody, oh, whoa, whoa. He just cooked my cover three. And that's game. Well, you know what? At least I got put out of my misery. It was over in about 10 seconds. First in 10, I think I got a streamer off the edge. Got it off the grog though, nice work. I have no idea if any of these will be open, but I'm just gonna try it out. Dude, Sammy Dubs was so open. So was X. I just goofed that completely. Sammy's open now.  I'm gonna throw a pick. Oh, I didn't throw a pick. Come on, Sammy Watkins. Let's hold those blocks. Okay, he's got a two-man rush. Sammy, you are so fast. You're gonna get that. Second and three, does he run it again? I doubt it. Corner route, corner route, corner route. You guys are so uncreated. I don't wanna return it past the 20. All right, we got a 35. I'm gonna try something here. I've got an idea, boys. Oh, it's not gonna work. I think I just gotta tag for like 35 yards. 3rd and 25, I'm gonna try this play again. Look at, okay, he's blitzing two guys.  Am I intercepted? Wait a second, am I gonna take this back? Oh, totally. Points on the board. Sorry, I'm playing really bad and it's frustrating me, but we got points on the board, let's get started. Get ready for a corner route out of George Kittle. Oh no, just kidding. He's running again. Oh God, this is gonna be bad. Are we seeing the same thing? Is everyone, did everyone see the same play that I just saw? Where Kalomak is on his back and there's a force field, just preventing him from tackling him? All right, this has gotta be my last game.  I gotta know when to step away.  Hey, nice user pick right there. I think this is our time.  I'll take my points. Shaz is X-Factor's going off. I got reinforcement on right now. Are you gonna, what are you gonna do here? What do you want? Ooh, I did not see that at all. All right, good work boys. X-Factor's still lit up, I love to see that.  Wait, no, no, no. Uh-oh, I'm out of position. Layton Vaynerush, dude, I just picked that off. Oh, they didn't count it. Fourth and sixth, he's gotta go for it. Probably gonna send Barclay on a little route underneath. I don't know. Okay, interesting. Interesting, great deed.  Sammy Watkins, I need you. If that ain't passion affairs, then what is? He literally grabbed him. I'm gonna go peak zone bubble. Gotta try something new, right? Oh, this could be it. Swerve? Oh, if you can't beat him, join him.  Wow, I am skilled. Thank you for that five yards. Ready to see a little more skill on display? Dude, I'm so good at this game. Put a little more skill on display here. You guys ready for it? God damn, I'm good. Let's see it, Kong. God, I'm so good. I am so talented at this game. Always rage quitting. Hey, Pancake Dude, if you see this video, I'm sorry the run game is stupidly broken. I feel bad for you. EA, please patch the run.   It's not fun, but also I lose to it. So consistently, I just lost to Saquon Barclay breaking mirror tackles. It didn't make sense. All right, boys, I love it. Thanks for watching as always. I'll see you next video. Peace out.


So yeah, hi everyone. I hope you had a good breakfast. I know it's like a bit early in the morning, but yeah, I'm really excited for this talk. I don't think this is the first time you're hearing chat GPT this week. So I think like, you know, as we delve down, you'll learn more about it and also learn about, you know, our progress as such and what we learned throughout this process. And so yeah, let me go ahead. So I'm Archana. So I'm currently a data product manager with women who code. I'm wearing their very cool shirt as well. And if you do come to the event hall, I think you can catch our booth with women who code Seol and Singapore. And apart from that, I'm also a board member with women in machine learning, which is another nonprofit. And yeah, I also produce courses on LinkedIn learning. I've one on learning tiny ML and we have another one coming on ML ops with the vertex AI that's maybe coming out in a month. Both of us have produced that. And yeah, I let Sohum go ahead and yeah, hi, I'm Sohum and currently the machine learning lead at a startup in Singapore called sleek. So yeah, as I said, you know, probably this is not the first time you're hearing chat GPT this week. And so we just this is a short preview of what we made. I hope this sort of makes sense. And, you know, as we dive into it, I know that we can't really walk you through exactly, you know, how we build, but we can in the 25 minutes, but for sure we can give you the access to the GitHub and so on. And so yeah, so today's agenda is what are we building today, a peak into like GPT as such. And most importantly, we want to talk about what they don't tell you about building these LLM products. And then finally, like ways to contribute. So yeah, let's start with the first thing, you know what? Firstly, I've definitely wanted to try our hands into LLMs. But most importantly, like, you know, most of us here may be like, even me, right? I speak three languages. So in my head, I'm always translating between all of them. So yeah, I one of the things that I oftentimes face is English accessibility problem, right? We oftentimes convert the text to English or in our head or otherwise. And maybe it doesn't sound right. So I thought this is like a perfect example for chat GPT to help out with. And so I went like I tried to figure out like on the web, like if there are people similar to me. So that turns out it is so you know that more than, you know, half of the world's population speaks at least two languages and many people tend to think and work in the native language was 75% of consumers prefer to buy products in their native language, highlighting the importance of language accessibility and 50% website with visitors believe if they can't read or understand the context and indicating a significant barrier for non native English speakers. So in short, long and complex English texts can be difficult for many people, including those with reading or learning disabilities, elderly individuals or individuals with limited English proficiency. So yeah, I think this is a great segue into talking about GPT. Just trying to make it easy for people to for bilingual people to people who speak more than one language to you know, talk in English, write in English and also, you know, like do communicate business English better. And we're trying to do that with GPT. So I'm sure you've heard of chat GPT by now. What it is is it's a language model that was created by OpenAI. I think GPT is like the most famous one right now, but there's a lot of others that people are working on. The biggest language model that I think has been released so far is GPT 4. It's been trained on data till September 2021. And a really cool thing about these models is they have this thing called emergent abilities, which is they can do tasks that they have not been trained on, and they can generalize across a lot of different tasks, right? And GPT how it was trained to do this was take feedback from humans and learn how humans want the GPT to answer questions and GPT will kind of try to emulate that, right? So how you interact with it is through natural language and it also replies with natural language. But the problem with GPT models are that they're very large. I think anything more than GPT 2, which is 1.5 billion, it's pretty much out of the realm of startups, open source companies, and even mid-sized companies to train. And if you want to deploy them, you have to kind of deploy them on GPUs, sometimes even multiple GPUs to make sure that the latency is less, right? But it's really good at so many tasks that these models right now serve as kind of like a baseline or a benchmark when you're trying to build new tasks. And that's why you can't really ignore them at all right now and you have to use them. And I'll talk more about that in some time. But yeah, so we saw this, we got really excited. We saw a lot of other people building products with it and we thought, okay, let's try building something. It seems pretty simple. And we'll just make it open source, we'll deploy it and hopefully learn a lot of things along the way. So yeah, that was the first step. So we started building and it's really easy. We're using GPT to go from zero to one and build something that's modestly reliable and it works pretty well. And you can do that using something called prompt engineering where you create these natural language text prompts and that tell the model what to do and it works most of the time. It replies with what you wanted to reply. But then it's different when you're trying to build like a pet project that you might use from time to time or demo at a few places and GPT works really well at that. But when you're trying to take that to production, that's when other problems come up. Problems like cost, how much it takes to run these models, latency, how long it takes to get a response from the model and also how reliable and scalable the solution is. And this is like stage four where we're super impressed by the capability of the model, but also it kind of lacks in a lot of ways and it's not reliable and it's expensive. And that's the point where you get really overwhelmed trying to fine-tune these prompts, trying to make sure the costs are less, the latency is less. It's really difficult to make that work. So before I move on to the problems and stuff, there's also another issue which is because this field and these kind of models are so new, there's not a lot of standards or best practices for how to even go about deploying them. So that's also something we're trying to learn while building this. Right now, our architecture is really simple. The extension connects to the extension backend which sends a request to our Python backend that connects with OpenAI's API and it sends back the result which goes back to the frontend. Both me and Archana, we've worked our whole lives in backend in Python. We have very little JavaScript or frontend experience. I can't even center a div in CSS. So the frontend as well as the JavaScript backend for the extension was actually built using chat GPT and it took us like an hour with almost no JavaScript experience. So yeah, so with that, I want to talk about some of the challenges that we face while building this. I think the biggest challenge is issues with the API. OpenAI has kind of openly, they've come out and said, we have no SLAs for our product, for our API. We have no latency or uptime SLAs and they'll be really happy to randomly deprecate models and just deprecate models. So when we started building this, we were building this on the winchee 002 model. We created a few prompts that were working really well, fine-tuned them to make them work better and then a few weeks into the project, they said that they're deprecating that endpoint and you should now move to this new endpoint. Transitioning to the new endpoint, it's easy. You just change where you're calling the API, but the prompts, they don't work as well anymore. The prompts are not as reliable, sometimes they don't give the kind of outputs we expect and so we had this really well-built fleshed out product but then we couldn't transition to the new API and that would take a lot of effort. At the same time, when they released this new endpoint and this new model, I think they stopped putting resources into their previous model, the one which we had built our product on and so our latency increased from a few seconds to minutes and that just makes the whole thing really unreliable and as someone who's trying to build products around this unscalable as well, I think. Another issue is with prompts and how you engineer prompts, so because you're talking to the model using natural language, natural language, it's ambiguous. You can infer lots of meanings from it and so prompts are also ambiguous and it's very hard to get reproducibility, very hard to get the same result from the model even using the same prompts and the model also tends to hallucinate and which is basically like it will tend to make up answers or give you wrong answers but it will do that really confidently which is also an issue because how do you even serve like the result of the model if you're not sure how confident you should be of that result and as these products get more complex, what you do is you chain like results from one model to another model and then that gives a different result and then that goes on and you also have like agents which is like models that can do some tasks so maybe like you know query a SQL database, search something on the internet stuff like that. These are really inconsistent. They work like one third of the time at best and if they fail especially if you have long chains, so let's say the chain fails in between. It's very hard to recover results from that failure because you don't even you can't tell if the chain has failed in the first place and secondly I don't know if you've used that GPT but if you tell them like hey, you've made a mistake. This is what you should do. It's very hard to get the get it back on track. It will just say something like oh, I'm sorry and then keep making the same error and there's also no evaluation metrics for these errors because it's natural language. You can't really evaluate whether the output is correct or not and finally like trust and security. So recently OpenAI kind of brought up, took out this like some policy or something where they said that if you you can opt out of data collection especially for training and all which is great because that was a big concern for a lot of companies but then the other concern is we don't actually know what data was used to train their model. So you know what if you're building like let's say something that does financial modeling, whatever, accounting maybe and what if that or like stocks and stuff. What if OpenAI trained their model on data from like the Wall Street Bets subreddit. You don't want that kind of data in your model or maybe you're doing like some kind of medical diagnosis. You want to make sure your model was not trained on data that consists of incorrect misinformation or like malicious information and then finally prompt injections and attacks. It's like almost every day that people are creating new ways to attack these models, make it to act in malicious ways or adversarial ways and it's very hard to defend against them. So these are some of the challenges but then it's not that bad. There's still some solutions to it. I think the first thing I want to talk about is like the cost of the model. So when you, I think what OpenAI has done with this is they've reduced the barrier to entry for startups and for companies to actually build smart intelligent products because previously you would have to hire like a team of data scientists and engineers to build like any AI machine learning based product and that's expensive and you don't even know if that product will work or not in the end. But what OpenAI has done is it's kind of made it very easy to just write a few prompts and get a product up and running very quickly. But then as your product grows in complexity and as you get new users, your API costs start to like exponentially increase. Right? So that's what you see in the first half of the first one third of that chat over there, which is as your product grows in complexity, your costs will kind of skyrocket and it'll be, it'll make your business unsustainable. So what you have to do is very quickly move on and fine tune a model. This will also allow you to make sure the model is trained on more relevant data. So it gives you more relevant outputs. It might reduce incorrect outputs from the model. It might also make your outputs more manageable and then also it reduces costs, especially if you can deploy that model on premise. Right? But the costs don't decrease a lot because you still have to deploy that model on a GPU, maybe multiple GPUs and also you have the same problem where even even though you might not be paying for an API, if your prompts increase, if your application complexity increases, your costs will increase a lot as well. And so it's at that point that you have to kind of start training a custom model. So what I would like, what I think will happen in the future is you'll have to do this process of buy while you build out your solution. So it'll help small companies, startups challenge incumbents because they can build our products really quickly. So that's the buy versus build problem and solution. Some of the other solutions. So for prompt engineering, what we've seen work is like few short prompting, which is where you give some context about the problem and then you provide also some formats for inputs and outputs that you expect from the model. And that works really well to make the output from the model more organized and easy to pass. And then if that will work for I think most applications and another thing that you can do is tell the model to do something called chain of thought. And what it does is you tell it to like run down like the how the model arrived at an answer logically and that kind of helps the model make less matters, but then you know you're generating more output. So your latency increases, your costs also increase. That's kind of like a disadvantage and there's a lot of other techniques you can do after chain of thought prompting, but at that point the costs get so high that it doesn't make sense anymore. You have to find your model after that point. Another thing that's been becoming very popular recently is something called vector databases. So the outputs from these models are like vectors which are like long matrices of numbers. So let's and so what you can do is instead of querying the API, you can kind of save that vector and if you have someone ask a similar question, you can query from that vector instead of from the API. It works really well when you have like documents. So let's say you're let's say if you you're doing something like a document question answering thing, right? So you so so so you may provide someone so someone may have like a large document and ask multiple questions from it. So instead of sending that document to open a multiple times, you send it once, save the embeddings and then query from the embeddings, saves costs and latency. Don't like don't use change. Don't use agents at all. They're not they're not good at the moment. Anything where you know the agents are completely autonomous will definitely will probably not work right now. That's what we've seen even with very simple you know applications. And then another thing people do is like to solve this issue is they have like another model like a watcher model, which is also another LLM to watch the original LLM to make sure it's not making mistakes. It works sometimes, but if it doesn't work, you have the same you know like snowballing effect where errors lead to more errors and then who watches the watcher and it just becomes like watchers all the way down. And then finally like I want to talk about some best practices that we think you should do. So all of these are also best practices, but then another thing is like these prompts that you create while building your product, they are now like your proprietary data. They are the equivalent of like an in-house deep learning model from like the old days like like like three months ago. So yeah, save those prompts, make sure they're not leaked. It's very important that you're you know like that you treat them very as important as like you know your API keys or something. And then for prompts as well make sure you version them and you test them you know treat them like you would like any data and and for testing you know you have to make sure that the same prompt the answers don't drift a lot and the quality of the answers don't degrade over time stuff like that. Yeah, so these are some general good practices, but I think we need like more from the community and from other people who are building similar products and you know as we also come up with more we build out our application we'll you know we'll share those best practices as well. Yeah, so I wanted to give a quick demo before I sort of progress because I know like we have been talking a lot about LLMs and I also want to go back to the product and help you see like how it works. So yeah, over here you can see like a input and we tried using Chinese. So yeah, and yeah, you can see like when it converts it says good I'll take the numbers but it doesn't sound that good in English. So you know you can take that text again and you can go ahead and formalize it. So these are the three functionalities that we have with like the Chrome extension right now it does these three things is summarization formalization and then translate. I want to also show you the GitHub. So we do currently have you know GitHub to yeah like where we have hosted the project. So you can see like the entire project and you can we have also like raised up issues where you can go ahead and see those issues and contribute back again like this is completely open source and we really want people to go ahead and contribute because that's how it'll help and most importantly I feel like both of us have like a tunnel vision where we just are looking at one problem but there's probably a lot more to explore and yeah, so this is like a short road map we see where we are right now is like something functional enough it does something small and we do feel like there's a lot more things to figure out like tone is for example right now only formalize but what if someone wants to make it fun someone wants to change it entirely so I think it should definitely work out for that as well and then have like a better user experience as Soha mentioned both of us don't have backgrounds in that and it's taking us time to understand what a customer might think and it's mostly like how we interact with the extension so if you are someone who has that experience we would love for you to contribute and finally like we are definitely dependent on the community to take it forward we are writing more about our you know journey as such on the newsletter but definitely like they come you to also do so so if you are interested you right now especially with our you know LLM rant I would go ahead and tell you how you can contribute so there's obviously back in ways that you know you can help build the build the product and the API as such this front-end development as well as I said improving the front-end features this newsletter content and we'll share you the newsletter as well we're trying to sort of journey this entire you know Chrome extension and you can if you love writing you can go ahead and send us and we can for sure put it up on our newsletter and finally infographics the infographic that you saw I created I feel like making infographics is very soothing so if someone let me do let me know and do contribute to the infographics and yeah reach out to us and you know finally also want to show you the newsletter so this is our newsletter it's tinyml.substack.com we actually covered one yesterday as well about the LLM conference as well I don't know how many of you attended it was way in the night but yeah you can also check that out and Soham's latest whatever he told you right now in a blog format so yeah that's pretty much the end but yeah feel free to ask us questions you know I know like this topic seems very complicated I mean it's I feel like GPT definitely like OpenAI definitely has made a great interface to interact with it but what happens behind the scenes seems quite complicated and we also started out like you know only a couple weeks ago so you know feel free to ask us questions you know don't worry about your questions sounding naive or something because you know we also started off nothing it can you know your questions can also help us and vice-versa so yeah does anyone have any questions you mentioned about vector databases in a question answering app how would you go about matching the query to a saved vector yeah so you convert the query into a vector as well and then you kind of search for similarity in the in the from the database to the query query vector okay yeah so you so you just output with with a very similar yeah with yeah you just find a similar vector and output that I'm pretty sure chat GPT does something similar if you go to chat GPT and ask something like summarize this archive paper for me and give it like an archive link so let's say an archive link from like a few months ago right which it's not trained on it'll find like in its vector database another archive link from like from when it was trained so it might so you know archive links are like two one zero four dot one two three four so it might find like two zero zero four dot one two three something like that and yes just something similar and output that yeah so something like some ball of the cosine similarity between yeah exactly so kind of like yeah cosine similarity is is one of the yeah one of the ways you can find similar things yeah awesome thanks uh yeah I got a question on that two questions so for the at least as a GPT three it's leaned heavily towards English content and I believe it's also true well I'm not sure how true that I haven't checked how true that is a GPT for well based on observations and going back to the idea of accessibility how have you observed its performance in other languages rather than say English and Chinese like say Vietnamese Thai or Indonesian yeah that's a good question neither of us know any of those languages you mentioned we've tried with Hindi and like Bengali and so works pretty well on that yeah also like we've just tried with very simple like business use cases so not like really long texts or like articles or something but like small paragraphs that you might write in an email or in a in a slack message something yeah and actually on that idea so since the tour right now is primarily for translation as as the demo you're showing off was consideration between just choosing the existing array of translation API is out there translation neural network API is out there versus like saying uses GPT's so I think like the translation is definitely like a part of it but the idea is also to sort of use the sentiment the way that GPT was built like because the fact is it can formalize it can change those stones really well and that's what we wanted to capture because oftentimes when you move from your native language to English a lot gets sort of lost in translation and we want to make sure that such users don't get left out as compared to people who usually speak English so the idea is definitely translation but an added part to it is this formalization and I don't think there's an API that does all of that currently and if there's something else on top as well we want I think like opening opening eyes like GPT API twice is that or maybe even just a safe cause a translate function uses one is the trans cheap the translation API and the formalization just uses GPT that's a cost I mean the cost is like we haven't actually seen the cost right because we use GPT plus and they give you like 18 dollars right so we haven't got to a large scale and we have more users using it can we actually understand the cost yeah good great questions any other questions from the audience we've got two experts here we've been playing with GPT's since the old days which is a nice quote any any other questions from the audience before we break for tea yes please hello I'm from China and then probably as you know we cannot easy to access open API like chat between China sometimes we can find the agent I try to use the image search okay ask chat GPT to provide some images but I cannot get what I want so would you help to explain what's the purpose of the what's the principles of the image generation in the charge of it yeah so yeah thanks we know that the latest version of charge GPT can use images and and you know combined images and text but they haven't released that API yet they've just shown us demos of it and then there's other models that can you know do images and and extract text from images and stuff like that we haven't right yet regarding like not being able to access and all so right now there's there are a few open source language models the problem with that is it's very hard to host those models because you need a GPU it's it's pretty expensive if you want to get low latencies that's something we want to work on eventually yeah but we're just figuring out the logistics of that yeah good I think one of the big learnings there's as you mentioned on cost is it's it's easy and quick to play with GPT but as soon as you want to go beyond just experimentation then you've got to take these other factors into consideration still open for questions otherwise of course the speakers will be around outside and over tea so sorry yeah we'll be in the event hall on the in the woman who code boot somewhere near there so yeah if you have questions you can always come there yeah okay thank you so much everyone


This is Spinecat ever I'm standing on the right side and the camera person is also on the right side So we have completely removed the small intestine from its attachment to the posterior abdominal wall The small intestine is composed of the G-genome proximal two-fifths and the alien terminal three-fifths This is about six to seven meters long when we talk of the small intestine We do not include the diodenum in that just to break up to speed the small intestine is a derivative of the midcut So therefore all these blood vessels that we see in the mid-century the small intestine That is the G-general arteries and the alial arteries at all branches of the supramacentric artery We have completely removed all the contents of the abdomen and we can see the blood vessels here This artery that I have lifted up here This is the supramacentric artery This is the artery of the midcut and the branches that we can see here These are all the colic arteries and the branches that we can see coming out in the terminal end These are some of the G-general and the alial arteries There are hundreds of them which supply the midcut this artery that we see here This is the inferior miscetric artery, which is the artery of the hind cut the G-general and the alial arteries They supply the small intestine the other arteries of the midcut Let us take a quick look at the parts of the G-genome and how they compare with the alia If you take a look at the G-genome here, you find that it is thick It is fleshy and it is pink in color in contrast If you want to take up a segment of the alium, which is located in the terminal part We notice that it is thin pale. So this is the alium That is the first important difference between the G-genome and the alium.  The third difference We have opened up the leaves of the miscentry to show you the blood vessels And if you were to look very closely in the G-genome, this is the blood vessel pattern We can see the vascular arcade here There is only one series of arcade maximum two series of arcades and then from the arcades We have these vessels running. These are referred to as the Vasa Recta So therefore, there are very few vascular arcades and the Vasa Recta are long which run to the miscentric side of the intestine in contrast We have opened up the leaves of the miscentry of a segment of the alium and again if you were to look closely We find a considerable difference. We find that the vascular arcades are many We have one series of arcades here one here one here one here Therefore, there are many series of arcades and the Vasa Recta are small and they go directly to the miscentric side of the intestine These are the Vasa Recta, which are very small. So in a nutshell in an alium Vascular arcades are many and the Vasa Recta are small Now we have opened up a segment of the G-genome and we can see a segment of the G-genome here We can see that the mucosal folds are very prominent dense and big these mucosal folds are called Plycocircularis or the valvile conventis. These are the ones which give the feathery appearance in a burial meal follow-through This is the burial meal follow-through to show this feathery appearance of the mucosal pattern of the small intestine proximal part In contrast when we open up a segment of the alium which we have done here We see that the alium is smooth. The mucosal folds are almost non-existent This is the one which has been described by Wangenstein as Characterless when we see a burial meal follow-through not seen in this dissection But if you want to take a microscopic view of the submucosa of the alium You'll find multiple collections of lymphoid tissue which are referred to as bears patches But these bears patches will be absent in the G-genome So these are the important differences between the G-genome and the alium and they help us during surgery Now let me mention a few important clinical correlations. This what you see is the masonry And the root of the masonry is only 45 centimeters extending Obligately from the tip of the tracers process of the L2 vertebra on the left side to the upper end of the sacroiliac On the right side So this is the length of the masonry and from a 45 centimeter masonry attachment 6 to 7 meters of small intestine are coiled inside the abdomen Therefore the small intestine can undergo obstruction It can undergo ischemic necrosis especially the alium because of its relatively lack of blood supply When we have a pathology of the small intestine We have to do what is known as resection and osmosis and I have demonstrated the principle of the resection and osmosis in one segment here Suppose this segment of the small intestine has become necrosed and we have to resect this first thing What we do is we make a v-shaped incision on the masonry from the Masonry side or to the root of the masonry and then we Clab and ligate the blood vessels in sections all the way from the masonry side to the root of the masonry on both The ends and then we clamp this segment of the intestine which has become gangrenous We remove it and then we anastomers this end with this end end to end anastomosis by means of staples or by sutures Which ever is available? So this is the principle of resection and end to end anastomosis of the small intestine Now let me demonstrate yet another procedure that we do in the small intestine Especially with regard to the terminal alia and that is called ileostomy If for some reason we have had to remove the colon and we have to bring out a loop of helium out to the abdominal wall and Connected to a bag that is called ileostomy here the skin has been removed But imagine the skin was present We first make an opening in the skin a disc shaped portion of the skin is removed in the region of the right leg fossa Then a disc shaped portion of this external oblique aponeurosis is removed and the internal oblique aponeurosis and through this opening We pull out a segment of the terminal alia which is exposed and that is what we are doing right now We catch hold of it with a gentle artery for sip and pull it out from here And then we turn it out and we suture the walls of the intestine to the skin like this This is called ileostomy and this projection about one inch projection that we see here is called the ileostomy spout This is connected to an ileostomy bag which collects the fecal matter So this is the principle and the principle of technique of ileostomy So these are two commonly performed procedures in the small intestine that I wanted to demonstrate to all of you Thank you very much for watching Dr. Sanjay Sanyal signing out Please like and subscribe if you have any questions or comments, please put them in the comment section below Have a nice day


Welcome to the 30th lecture on the subject of digital signal processing and its applications. We are now at a position where we have seen some approaches to discrete time filter design. Let us take a minute or two to recapitulate. We have seen the design of IR filters where we have essentially taken advantage of the known methods in analog filter design. So what we did there was to use the known designs like the Butterworth design, the Chebyshev design and of course we did not talk about it but one could also use the Jacobi or the elliptic design. And then a generic transformation that converts the S variable to the Z variable called the bilinear transformation can then be employed. We have seen what properties that transformation needs to satisfy and therefore we evolved the whole process of design by taking advantage of known analog designs. Now what we really did was to design low pass filters. We designed analog low pass filters and then we evolved what is called a frequency transformation in the analog domain to design other kinds of analog filters. Now we then saw that there is one important limitation of analog filters namely that they can never give linear phase. To demand linear phase we then need to move to finite impulse response filter design and we did that. In the approaches there are several different approaches that can be used to finite impulse response or FIR filter design. However, we have looked at one of the approaches which is in some sense the simplest namely the approach based on windows. What we do in a windowing approach is essentially as the name suggests. By the way at this point it is a good idea to take stock of the meaning of the word window in this context or why the word window is used. A window as we understand it in common conversation, common parlance means an opening to the external world against the wall. So you know if there were no wall then the entire scenery outside will be visible but because we have walls that separate us from the outside world in a residence we also provide windows which give us a limited view of the scenery outside. Now window can also be shaped or it can be tinted, the glass on a window can be tinted and if we use such tinted or colored glasses on the window then the scene outside is appropriately modified perhaps to our liking or may not be to our liking whatever it be. Now the same principle has been applied in this FIR filter design context. What we have done here is to use the window which shows us a part of the impulse response not the entire impulse response and it also modifies the impulse response in a manner that we wish or in a manner that we find advantageous. So this is the explanation of the word window. We have seen different windows for FIR filter design last time. In fact we have come to the conclusion that there is a basic conflict that we can never quite resolve but we can optimize the conflict between the main lobe width and the relative side lobe area and the main lobe width contributes to transition bandwidth, the relative side lobe area to the maximum deviation in the pass span and the stop span. Among the windows the optimal window so to speak is what is called the Kaiser window named after the mathematician who proposed that window. The Kaiser window has the ability to change both shape and length unlike other windows where the shape is fixed but the length can change. Changing the length would in general reduce the transition bandwidth according to a certain rate of fall off. Different windows have a different rate of fall off for the transition bandwidth as a function of length. But no matter how large you make the window you can never do away with the pass span and stop span tolerance and for a given window shape that tolerance reaches an asymptotic limit. An asymptotic limit can only be changed if we change the window shape and that is by the Kaiser window which is optimal in the sense of you know the kind of transition bandwidth that you get and the kind of tolerance that you get for a given shape. Now we also saw finally that one could always associate a given shape with a tolerance. So you know once you have a tolerance then you can find out the Kaiser window parameter corresponding the Kaiser window shape parameter corresponding to the tolerance and for that shape parameter you would have a certain way in which the transition bandwidth changes with length and the Kaiser window always does better than the corresponding window of known shape which gives the same pass span and stop span tolerance. So these are some of the things that we discussed in the previous lecture and now we are quite well equipped to complete a design on FIR filters using windows. Now one important observation here is that all our discussion is relevant when the filters that we are trying to design are piecewise constant. In fact all the discussion about pass span tolerance, stop span tolerance and so on and transition band are meaningful when there are piecewise constant responses which we are trying to realize. Of course all the standard responses that we try to realize are indeed piecewise constant. But let me now give you an example of a system that we sometimes want to realize but which is not piecewise constant in its magnitude response. So an example of a non-piecewise constant and the simplest example is what is called a differentiator or a band limited differentiator to be more precise. So you see a differentiator is described in continuous time by y t is equal to d x t d t where x t is the input and y t the output. In the frequency domain this translates now incidentally a differentiator is a linear shift invariant system. The only problem is it is not stable that is very easy to see all that we need to do is to give x t is equal to sin of t squared to the system. Obviously this input is bounded and the output then turns out to be 2 t cos t squared which is unbounded bounded input leading to unbounded output and therefore the system is not stable. However we can associate with it a frequency response meaning we can say what happens in general when we give a sinusoidal input. So the beauty is now this is a beautiful illustration where you can have a response a bounded response to a sinusoidal input and therefore you can talk about a frequency response but you cannot quite you know you cannot immediately conclude a system is stable. So having a frequency response does not necessarily mean the system is stable that is because if the output might be bounded for given sinusoidal inputs but it may not be bounded for all bounded inputs. And indeed if we do happen to give it the complex exponential if x t happens to be the complex exponential e raised to the power j omega t then y t clearly becomes j omega e raised to the power j omega t and therefore the frequency response of the differentiator is j omega. So in spite of the system being unstable it does have a frequency response and of course the physical meaning of this is that the magnitude varies linearly as a function of omega and the phase is plus pi by 2 when omega is positive and minus pi by 2 when omega is negative. So in fact we can draw the magnitude in phase response. So the magnitude is linear mod omega is the magnitude and the phase response is equally easy to draw. The phase response is plus pi by 2 for omega greater than 0 and minus pi by 2 for omega less than 0 that is easy to see. Incidentally if we dissociate this magnitude response but retain this phase response that means we keep this phase response but make the magnitude response different. We make it one everywhere. A system which has a magnitude response of one everywhere but this phase response is called a Hilbert transformer. This phase response with a unit magnitude response is called the Hilbert transformer. The physical significance of a Hilbert transformer is that it adds a phase of pi by 2 or a phase of 90 degrees independent of frequency. So in a way in informal language you could say it converts cosine to sine or sine to cosine. I mentioned the Hilbert transformer because it is very useful in communication. The idea of a Hilbert transformer has been employed in understanding analog communication particularly amplitude modulation and some people use it indirectly in phase modulation too. Anyway that was a point besides. But you see the reason why I mentioned these is that one can of course find the ideal impulse response of a band limited differentiator. So now you could restrict this differentiator to operate only between 0 and half the sampling frequency. So you could then describe on the normalized angular frequency axis. We could describe a system, an LSI system with frequency response. We will use small omega to denote the normalized angular frequency axis. An LSI system with frequency response h of omega given by j omega. Of course omega between minus pi and pi is called a digitally differentiator or discrete time differentiator. And this is an example of a non-piece wise constant frequency response which is useful. What is the physical significance of a digitally differentiator? It essentially differentiates the underlying continuous signal and then we assume that we have sampled that signal which has been differentiated. So you could think of the discrete sequence which came from a band limited sequence. There is an underlying continuous signal there. The underlying continuous signal has been differentiated with respect to time and it has then been re-sampled at the same points. That is the physical interpretation of the action of a differentiator, digital differentiator. Now the digital differentiator as I said is an example of a system which is not piece wise constant in its magnitude response. And therefore we could in principle do the same thing that we did in windowing. Namely we could find the ideal impulse response. In fact let me give this to you as an exercise. Exercise obtain the ideal impulse response of a digital differentiator. That is very easy to do. Find the inverse DTFT essentially. Is it a stable system? Explain. Well if we take a queue from the analog domain then we kind of expect the answer to be no. But we should find out independently in the discrete domain. It is not obvious that it should be unstable in the discrete domain. But perhaps we do expect that because it was unstable in the analog case. But one should you know investigate independently. Third, truncate this to minus n to plus n for different n. Study the frequency response. This would have to be done with some software. So the question is what you what you explain? It says no easy answer. We do not know what will happen when you truncate this between minus n and plus n and find the frequency response. It is not going to be easy to explain. Of course you can you can you can say how to find the you can find it by convolving this ideal impulse the ideal frequency response with the window spectrum. But what that convolution will yield is not easy to say. Because here we cannot use the argument of main loop coming in and going out and so on. There is no ideal pass path. But it should therefore be interesting to see what happens. And this is left to you as an exercise to study with. Anyway it turns out I mean I might give you just a part of the answer. It turns out that good windows quote unquote good windows do work reasonably well even for such responses though it is more difficult to explain why they do. So that is one observation. You know the good thing about FIR filter design the way we have studied FIR filter design based on window functions is that you can also use it to design non-piece wise constant responses and of course leave the actual degraded response to nature. So you cannot say too much about how the response will get degraded. But experience shows that it is acceptable. And therefore unlike the unlock filter design approaches which you cannot use for non-piece wise constant responses the discrete the FIR filter design approach can be used for non-piece wise constant responses. So the bilinear transform for example cannot be employed for non-piece wise constant responses.


Hi, I'm Muth. It's good to be here. Thank you all for joining. I'm a developer relations engineer for web privacy and security, and I work together with Rohan within the Chrome organization. Now, in the previous session, Rohan talked about how you can engage in building a more private web. And together in this session, we'll take a closer look at what you need to know and do to prepare your sites and systems for this more private web. And this is valid whether or not you have anything advertising related in your stack. To quickly refresh on what Rohan introduced with the privacy model, we want to move from a join identity to a partition identity. And anti-tracking efforts help us do this, because they phase out or replace mechanisms that enable identity joining. And today, one primary mechanism that's used to join user identity across sites is third-party cookies. And this is why Chrome will be phasing out third-party cookies. So what does this mean for you? Before I get into this section, let me say that there's a wide variety of ways sites use cookies. So how you adapt your site to cookie changes depends on how your use case and constraints look like. So I'll only give you a high level view, but we'll share links to everything you need to know. So cookies are changing and how can you prepare for this? Well, first, if you do the following, you're on a good track. First, use HTTPS everywhere. And second, make your cookies look like this when you can. This is a good first-party cookie. And you can tweak this base recipe to fit your needs. But let's take a closer look at what this recipe does exactly. So host is a prefix. What this means is it works like an interface in the sense that it makes some attributes mandatory and forbids others. So with host, more specifically, the attribute secure and path slash must be in. And the attribute domain must be out, which is why you cannot see it here on this slide. I won't detail secure and HTTP only too much here, but they help protect cookies from being stolen, either on insecure networks or by malicious third parties. Now let's move on to path slash. Path goes hand in hand with an attribute that's called domain. And domain is not set here, as we've said. So it means that the cookie is accessible only at the domain that sets it. So the domain of the current document, not even in subdomains. If you need one session across subdomains, you can tweak this base recipe. And path slash means that the cookie is accessible in all pages for that origin. So with this, the cookie for example.com will go on every request to example.com, but in no request to images.example.com. Finally, same set lacks. So this restricts the cookie to only be sent in requests that match the top-level sites the user is currently visiting. Except for navigations. So with this, you're not sharing your cookie with third parties. And as you know, last year, same set lacks has become the default in modern browsers. But even though it's the default, it's still good practice to specify it anyways. So same set lacks by default actually has two main benefits. First, sites that won't state in cross-site requests must now opt in with same set none. So now third-party cookies are labeled as such. And this is one step towards phasing out third-party cookies. And the second benefit is improved protection by default. Again, cross-site request forgery attacks. So you see that cookie changes have both privacy and security benefits. And this is a pattern that you'll see across a lot of anti-tracking changes. Now, remember earlier, we said that the best option was for you to fully migrate to HTTPS. And another push towards HTTPS by default being your easiest option is skimful same site. So last year, after a same set lacks by default, it meant that cross-site cookies would be blocked by default. And now with skimful same site, what this means is that different schemes, so HTTP and HTTPS, now also count as cross-sites. So this further restricts cookies from being shared between HTTP and HTTPS. So long story short, if you migrate fully to HTTPS, you shouldn't have any issue here. Now one quick note on WebView and cookies, because I think we had questions on that. The cookie changes that we have just introduced kick in if you target Android 12 and newer. So existing apps will not be affected until they choose to target Android 12. So what you can do today is either try and target Android 12 and see how your cookies behave in the resulting build. Or if you can't target Android 12 just yet, if you cannot target Android 12, you can enable the new cookie behavior with this specific flag. Now back to our cookie recipe. It's nice, but there's a chance that it's not enough for your use case. For example, what if you have different country-level domains for your organization and you want to use cookies in those contexts? Well, since the same site changed last year, you would need to set same site none if you want the cookie to be sent in that case. And yeah, it's cross-site, but it doesn't really feel like it's third-party. It's more of a first-party relationship that's wider than just one site. So building up on last year's same-site changes, there is now a proposal to define exactly that relationship. And this proposal is first-party sets and the same-party cookie attributes. And to loop in the concepts Hane introduced earlier, if you have first-party relationships that are wider than just one site, it means that you're potentially an implementer for this API, first-party sets. Now it's at an early stage, so there are still open questions. But if those questions are interesting for you, an origin trail is available for first-party sets. Maybe, though, this is not enough and you actually need some information to be transmitted across parties. And if you're doing this today with third-party cookies, it means that you need to replace them with new alternatives. And this is where new purpose-built APIs come in. So new APIs are designed to fulfill use cases that show today's web, but they do so in a privacy-preserving way. Some of these new APIs are ads-focused, so focused on advertising use cases, and a lot of them are named after birds. In the previous session, Rohan introduced you to one of the rare ads-focused API that is not named after a bird, namely the Conversion Measurement API. Here in this session, I won't detail any ads APIs, but instead we can look at another new API that's under the Privacy Sandbox umbrella. And this API is Trust Tokens. So Trust Tokens allow a site to issue tokens to the browser, and these tokens include a small amount of information, like a signal that says if the site thinks the user is real or a bot. And then later on, other sites can redeem and verify these tokens, for example for fraud protection or spam protection. And Trust Tokens is interesting because it aligns with the privacy model in the way that the tokens cannot be linked with the individual user, but they still allow the bit of cross-site information that is needed for this specific use case. So new APIs like Trust Tokens and Ads APIs are helpful, but we also need restrictions on how a few APIs are working today. And we want to apply these restrictions while maintaining the usefulness and capabilities offered by these APIs. And balancing privacy and usefulness is another pattern that you'll recognize across Chrome's privacy efforts. Now first, let's look at some interesting headers. User agent client hints or UACH if you're in a hurry. So today, like on this slide, the UA string can be used to fingerprint users and join their identity across sites, which is why we're trying to walk away from with the new model, privacy model for the web. And what makes it worse is that the UA string, the user agent string, exposes all of the user information by default. With user agent client hints, UACH access is managed in an explicit way instead. So you do receive some broad values by default like browser name and others, but if you need more specific information, you would need to ask for it. And the way this works is the server asks client hints like platform or platform version by a header, and then the browser sends back only the requested headers. And UACH is an alternative to the user agent string, and also the first step to reducing the granularity of the user agent string. Benefit of UACH is that it also offers a better developer experience in the sense that you don't need regular expressions to go and extract the bit of information you need in an endless UA string, but you get just the data you need instead. And with this, we want you to be able to access the information you need in a privacy-preserving way, and we think user agent client hints does this. It should allow you to migrate from the user agent string, and it's already out. It's live in Chrome stable, but we're still using your input and feedback to adjust things, to adjust the API and make sure it addresses your use cases. So try it out, and if something is stopping you from migrating, let us know and share your feedback. One last bit we're almost through. So earlier today, you heard about Core Web Vitals, and maybe you're already doing performance budgeting. Well, Chrome also proposed introducing a privacy budget, and the idea is that sites should be still able to use powerful APIs, but not to uniquely identify users across sites. So here you find the same pattern, again, balancing privacy and capabilities. The privacy budget is at a very early stage, so you cannot try it yet, and it will not be enforced soon, but it's definitely a good idea to already try and reduce the amount of potentially identifiable information you're using. And for example, user agent client hints help you do just that, so it's a good way to prepare for what's coming. Right, that's all I have for this presentation. There's more, but it was already a lot for 15 minutes.


Hi guys, this is Dr. Ahmet Ergen. I'm an endocrinologist and Adobe's education specialist today. I'm going to talk to you about milk Now I have a lot of milk addicts in my practice and I tell them this All right, so I'm gonna tell you what I'm telling them. So basically milk Comes in different shapes and forms, right? So when you say milk, you kind of what a much You know talk very general. I'm like, what kind of milk Is it a whole milk? Is it milk shake and what are we talking about here? And it's surprising you know what funny things my parents will say but the bottom line is to not to waste your time here It's okay to have milk.  You just need to keep your portion size small and Be happy with it. So that's all I'm gonna say a wonderful day guys Guys remember to subscribe and remember to give a thumbs up and share this video with the family and friends