Anti-microbial resistance is a global threat. It means a lot of people. It means that when people or animals get sick by virus, bacteria or parasites, the drugs are not efficient anymore. Anti-biotics resistance is a phenomenon where the disease caused by bacteria by human animals are not treated efficiently by animal antibiotics. This is estimated that about 700,000 people are killed per year by AMR. If we don't do anything by 2050, 10 million people can be killed by AMR. The burden of AMR is mainly for developing countries because AMR is caused partially by the overused antibiotics, both in human health and animal health. This is very important to mobilize cross-collaboration in different sectors to address AMR. It means that we need to use one health approach. It's not about the effort of medicine. It's not the effort of animal health people. It's not the effort of environmental people. We need to combine all these sectors together. It means one health. One health is a very important approach to address AMR for future.


So everything started with a call from Scott West Be a Scott. We work it together in a target campaign. You know, he had been has been doing some kind of works Controlling the situation environmental issues So what he proposed me this time was not to work as a photographer or journalist What I used to be in a target used to do in a target campaign But this time he want to ask me if I want to join him to do an undercover work in the Farah Islands Farah Islands It's a little group of islands between Scotland and Iceland and what happened there. It's a massive killing of whale So what we did? Together I had a spy camera on me and everywhere we go. We tried to make friends Friendship with the whalers so every kind of privileged information could have it could pass to the vassals that was under patrol We made a list If all the killing bitches all the areas that the killing of whales were happening So we could have an idea and reference from where to start. We rented a car. We drove north to south And we tried to develop some context with whalers We made also a boat trip because most of the fishermen's they are whalers as well I also met this guy and For some reason he was look at me that way. I think he was not happy with Paul Watson's presence there So as you can see his t-shirt and Something that really made myself Horrified it was the culture of death so you could see whale bones everywhere. Just decorating the houses cities museums and Even you know everywhere it could walk. I Had to stay in Clarksburg for four days. There was a suspicious possibility of having a what's called a green thing Whale killing whales lotto so I stay at this bed and breakfast In Clarksburg and I met this guy and he said in my last day. Well, I would like to you know offer you Traditional fairies dish and it was a whale meat That was the most difficult day of my life. I couldn't stand it I felt sick and sad But I knew that was necessary to do this mission and the fact that I didn't want to compromise Anything everything that we had done I ate it and I had to listen You know him just explaining how exciting would be you know to see the bay full of blood and this is the last Whale station that I have been It's quite sad because you can still smell the whale oil everywhere and this is a typical image of The grinding as you can see, you know, there are boats everywhere what they do They call each other to make noise to make the whales completely lost So they bring the whales onto the coast and then they kill them There is there are kids their families and lots of people around and for them.


I have a cute title, but I really didn't think of the shtick. This is more information only than a cube, which is like totally goes against the range of most of my thoughts. Who am I? A bit about myself. Recently I joined Sheila Packard's cloud computing group. So building out some cool tools like those that you probably already use. So keep an eye out for that. By the way, we're hiring. So we're ramping up our team over the next couple of months. So if you're interested in the cloud, whatever that means these days, and just sling grouping, then let me know. Also, we have a podcast called the Change Log. So who has open source projects upon get up? Play everybody. Cool. Anybody have anything we featured on the Change Log? If you don't want to, you can have them. It's one way back there. Whoops. All right. Move closer if you want to. That's easier. All right. Purpose of this talk. API wrappers. This is kind of what I do Sunday afternoons when I go to an apartment in football. A lot of API wrappers. It started when we were consuming the Twitter API for an application called Tweet Congress. It was a directory and an aggregate of all the congressional U.S. Senate and House Tweeters and compiled all their tweets and just had a directory to find your congressman on Twitter. And we were submitting a lot of paths across the job and the maker created the Twitter gem. And I think that got to become a nuisance for John. So he said, well, he won't use Tweet Congress. He seems to be more angst than I am. So I maintain the Twitter gem now. That led to LinkedIn. A gem I wrote about octopusing, which is a part about occupying some others, but I really didn't care for how they wrapped. I didn't get any APIs that I would want to call out. Let's see. Formstack, tried to find, let's go down on, too long probably. So why create API wrappers in the first place? I mean, we've got Perl. Perl is a great way of interacting with API. It's past the URL. You get some JSON back or XML. Got to admit it. It was also made HTTP. It's the same thing in Ruby without every dropout in the system. But we're Rubyists. We don't want to deal with those low-level libraries. We want more Ruby in our API. So idiomatic access. A lot of this comes from a post that Chad Fowler wrote back in, I guess, 2007 or so. It was a big debate between our Facebook and Facebooker at the time. And approaches that each of those took. So what I mean by idiomatic access, well, let's say we have a JSON hash that's returned. This turns into a Ruby hash. I notice the camel casing keys. I mean, you can still consume it, but it's just probably in here. You don't know Ruby, right? So we're going with those Ruby 5. I'll show you some tricks to do that later. So one of the cool things about writing an API wrapper is you can give the data to the language that is consuming it and something that holds a little bit more natural. So we take those camel cases and go to Underscore. It seems to be the convention. I don't know if Ruby is set in the pace, but in the JSON world it seems to be the convention for key names. But a lot of times you'll see PHP service or Java service expose those key names in camel casing because that's how they are behind the API. I'm saying it's true for method names. So if we have an API method that's user, getInfoByEmail. I think I took this from the big API. We could expose InfoByEmail. It's just a little bit more idiomatic Ruby. There's also syntactic sugar. We're used to this in Ruby. So the error functions that are in Rails 3.0 that we can do these big chain methods to create the database. We can do the same thing. Here's a case in the Twitter gem to do a search. So we can chain methods together to build our search. In this case, we're calling for all tweets that are from Johnny and Meg are too many to hash with Ruby. And it actually doesn't compose the URLs we call fetch, and then it forms the search. So method chain is a big thing that we can do with just the dynamic nature of Ruby. Also see this in action in the remixer gem, which is a rabbit for the Best Buy gem. We have a method chain here as well. This one is a remixer in your APIs. In the world of REST, we typically think, okay, we have a REST API and it returns JSON. But that REST term is really loose. There's a lot of API styles out there that return JSON. In the case of Best Buy, they have a really crazy way that they compose URLs to do things like finding all of the stores within a given radius of a zip code and returning all the products at a price that's greater than $3,000 in this case. They even have it where you can reverse those terms and find all the products that are greater than $3,000, but then return the stores that have them. So it's cool to be able to Ruby, construct those in different methods and have method chain construct your URL a lot of the way out, regardless of how it's called. This is another technique. I haven't seen Hayes here, but Hayes Davis is a local Rubyist. He's got a Twitter client called Rackle. This is cool. He takes a different approach. He has method chain here to construct the URL. So notice the client.status.update.json that follows the Twitter API to the REST URL. But he adds the bang there for post. So if you call it without the bang as a get, I'll put the bang as a post. Very mindful of the weakness. There's also different approaches to the API wrapper. So there's simple wrapping. So in this case, Michael Blight from Intridia has Twitter off. So you can authenticate via Twitter. And also that user now is a pseudo client that you can call the Twitter API and do some things on behalf of an authenticated user. So he uses wrapping here. Notice you're passing in the URL that point status is update.json. This is the status of tweet tweets we're going to tweet from Twitter off. Now Rackle has six different approaches we just saw. We call this wrapping with styles. Buzz Lightyear would say. And then abstraction. John takes a totally different approach with the Twitter gem in that he wanted something, he originally built it so that he could tweet from the command line. So what he wanted was just an update. So it hides the actual URL behind the scenes. You don't have to know about the API in the column. So why would you simply wrap? Well, the biggest thing is you can insulate against change. Your API and your client looks just like your API on the server. So the API on the server changes for the most part your wrapper will keep up. And you don't have to recompile or refact the API to keep up with that client side and the server side change. You can also leverage API documentation. So the documentation at the server side is pretty much one-to-one on your client side. So you get to reuse that documentation and you're interested in having a separate set of documentation. So then why would we abstract? What's the use case there? Whereas Chad called it and posed writing APIs around the APIs. Well, oftentimes in the case of Facebook you might want to simplify your complex API and hide all that garbage underneath the facade so that you don't have to deal with it on a day-to-day basis. You also might want to provide a business domain so you want to cache internally and provide some local value add in a way that you're consuming the API you might want to abstract the API. Tools of the trade. This is kind of where I'll camp out because this seems to be where a lot of my research on weekends goes. Transport layers. So we all know about NHDP. It's built in Ruby. Anybody know the problem with NHDP? It's not pretty safe. There you go. Who said that? So doing serial requests with NHDP is a different quest. It's difficult because that's going to be queued up and it becomes 10x how your requests are. So Patron gets around this and so these curl, these look girls fill in the room or do you bail? Do you bail? He knows about this stuff. So Phil Tallin has a library called The No-Shirt Fill. A library called Patron that uses look girl of the hood gets around this. This is another one that is supports parallel a lot of the box. So a lot of sites, Amazon's a good example when they compose their front-end pages and make numerous ASQ requests on the back end to close that page. They didn't let serial requests take much longer than when they parallelize it. That becomes much quicker because then your request is only as long as your longest request. Another approach is an event machine, we've got this great debate going on in the community between threads and defended type of architectures. This is one of the tools we've got if you're using an event machine.  So if you guys normally return an XML on Jason or if you guys return to Jason who wants to deal with the XML and the type of issues that come with it crack is probably one of the more better-known ones that comes with ASQP party. Crack will parse XML and Jason. Not sure if it does the animal or not. But basically this code was a code that John left out of MIRB and Rails proposed into a journal called crack. I think that's the party part. Jason, there's Jason Pure and there's also active support if you just want to use Pure Ruby to parse Jason. That's also an option. Although it can be slow. There's also Yatchel Ruby which drops down to C extensions to parse Jason which is much, much faster. We switched to this in the Twitter gem a while back. There's been some complaints because it doesn't play nice on Windows. So they treaty you guys to come to the recipe again with Multi-Jason, which is a gem that gives you one interface to parse Jason and it looks for the quote-unquote best library and machine. It will look for Yatchel first and then Jason Pure and then active support and you dial the line. Higher level library. So this is usually where when you're writing an API unless you're doing something extremely quick and dirty you want to have a higher level library to consume so you're not that close to the model. You should be part of everybody using this to join your maker. So this is the guts of the Twitter gem. We'll talk about that in just a second. So if you've ever installed anything that defends an ACB party you probably got this message which makes me crack up when I install the latest version. So ACB party gives you, it's a Ruby module that you can include in your class and it gives you basic wrapper to get post to put in the lead and your class basically turns into ACB client. Wraps things like basic auth and a base URI. So you don't keep passing the whole URL for your API endpoints. So base URI and then everything else is relative. It handles things like default parameters like a lot of APIs will have tokens that you can pass with every request or some sort of authentication scheme or identifier that every request needs to have so you can run it around. It uses net HTTP for transport so it does have the serial problem and it uses crack for parsing JSON and XML which is both good and bad. So a sample ACB party class, in this case a delicious wrapper, includes ACB party such as base URI and includes to initiate your class and the recent method is just the wrapper for the post-recent endpoint passing in the basic authentication we call it at the top of the stack. It's also a monster mash which is a cute name. It basically has ACB party for frutitius. You want to go for parallel support. REST client from out of wickets is another approach. This gives you a kind of a DSL to compose your wrappers. It supports active resource out of the box which is both good and bad. But if you're into that sort of thing it also supports nested resources so that you can just want it as active resource endpoint to get it kind of fully ready to go wrapper out of the other side. It has a built-in shell which is really cool. So you can crank up a shell in the command line and interact with the service directly from the console which is really nice. WERI from ART Launch. This is one of my ones to keep an eye on. It also gives you a simple DSL. What I like about it is you can specify required and optional parameters in the method level. So for folks consuming an API that may not be an expert with the API this allows you to kind of mark up your methods in a way that tells the consumer these options are required. These options are optional which can then be output into your documentation which is really nice when you try to get it passed to a method. It also includes async support, kind of a callback mechanism. So WERI looks like this of the player method foo, in this case, and specify the URL whether the verb and the volts to get it, in this case we're going to tell it to go via post. It requires parameters of ID and VAR, but also as an optional one of VWAR is really helpful in it. Authenticates false and involves redirects and I can specify some custom headers. That's another big thing you're wrapping APIs. There's a lot of times you have to supply custom headers for things like authentication. So all of that turns into client.foo. It gives you a method that you can call it in with an options hash. A different approach is rack client. So this takes rack that you're familiar with on the server, kind of brings it down to the client. So it gives you a rack API with a request and a response to make a request and those can be queued up to middleware to hack on this request when we're out and the response is when we're back in. I'm not sure if it's actively developed. It was one of the reasons why I didn't jump into rack client in this slightly documented. About the same time I discovered Fairday from TechnoE, from Bulson. It's given us so much in the community. It's also rack light that supports middleware, which is really cool. He has the notion of adapters, so you can specify your transport on either per call or per library basis. So in this case, in the URL, we're hitting the Twitter API, so we set our base URI and we break up with the Fairday connection based on that URL. So we need an adapter, the default adapter, so you can set that to netHTTP, TPS, Tron, whatever you want to use, and that is set once so you don't have to worry about it. And then, in this case, I'm using middleware for multi-json and master file, which you can get to those in just a second. But on every base on the connection level for every request, I'm going to have this middleware stack so you can compose your client just like you do if you're composing a rack application. It's really nice. So then to call it, response equals the connection.get, which is your verb, do request, you have optional overrides which you can do on a per request basis and you just call it. Easy peasy. So Fairday middleware is another add-on to this that I've created. It kind of bottled a couple of the common patterns that I was doing repeating from wrapper to wrapper. So hashing. Anybody use hashing? Check it out. You can do the sort of thing. So hashing is a method hash. We'll get into that in just a minute. But I like to do it with bracket notation. I like to do it with more of an open-struck method hash when I'm consuming data from an API. So hashing does that in multi-json. Again, I've discussed and do the multi-parsing. So it seems like every request that comes back I want to parse the json in some way turn into a method hash. So let's do that. And then based on the API you can sometimes need o-off or o-off too. So I can throw those in there as needed. So this is pretty much my current stack. So hashing. Hashing makes full use of this thing. So match, dash, drash, and clash. I think we started to dive into each of these. So match is a method hash as we mentioned. So we'll have a hash with bracket notation of a key of foo. I can then just call dot foo and it does use method missing and anything like that. I can pull that back and direct. What's cool about this is to get deep hash that comes from an API or some keys, values are hashes and cells, others are arrays and it will do that deep traversal and parse. I get object notation as far as my object goes. Dash is just like match, except instead of just being free-form that anything that's a key is now a method. If you want a more strongly typed hash to speak, you can explicitly set which properties on the top of your dash should be enabled. If you want to use some sort of encapsulation or something. So trash is a translation hash. It's built on an array. The earlier example I showed where we would redefine those keys, this is where we would use that too. You can specify patterns where it takes camel casing keys in terms of the underscore keys that that's how you want to consume. And then clash does the Errol type query building pattern that we showed before where you can dive into the hash and go to those queries and fly. Let's check it out. I put the URL in the treaty. Errol it. Who's used Errol it? Cool. You use Errol in command line. Errol is basically Errol in the web is the entry of the Rails were all last year. They were four. This is Chris and Leah's entry last year or whatever they made it. It's really cool that you can go and put in your URL for your API point and test your API points. So you can add parameters at headers and it comes back and it will give you syntax modeling for the return JSON and XML. A lot of API documentation sites have something like this built in now and they're all teams done this where the API explorer so these are really handy if you need to debug the API call and figure out problems with the API itself or in your wrapper code. HTTP scoop anybody play with this? Cool. So if you need to figure out what API call is actually being executed from your code so sometimes you're posing these URLs in the fly and you're not sure in your wrapper code with the browser on your end or on the server end and you need to see exactly what's going back and forth. HTTP scoop is just a Mac app that you can download and bind to a particular interface either Ethernet or your HTTP traffic and show you a log you can even filter it by domain wildcard domain things of that sort and you click on each of these entries and you get really nice request response formatted JSON or XML payload and headers that you can inspect and figure out exactly what the problem is it's great for debugging. Charles proxy is another it's really similar to HTTP scoop anybody use this? Charles is the same sort of it's just listening as a proxy server so when the GoWallup iPhone app came out I was dying to play with the API and I haven't gotten around to building it yet so I was able to take the iPhone app point it at my laptop using Charles proxy and sniff all the calls so then if you have an iOS app an hour and an Android app native app you pretty much have an API you can even install certificates of venison and SSL traffic so it's pretty cool to be able to sniff out hidden APIs I didn't check it from the great wall of China or anything like some other folks did testing so a big piece of creating an API wrapper is testing a big piece of my toolkit is FAKEweb FAKEweb allows you to fix with fixtures for your API calls you can use curl it or curl grab your fixtures, dump them in the fixtures folder and then stub out the request put a URL in there and say that a call makes this URL matches this URL pattern then serve up this fixture file instead and you can lock it down and approve an error to say try to make a network request outside of anything you step down so you don't have to pound your API or you're testing and running your tests it's pretty cool VCR is a project built on top of that so FAKEweb it's up to you to get your fixture from your API VCR allows you to configure a layer on top of FAKEweb that the first time you'll go out and grab the fixture, dump it to a subsequent request if you try to make a call again which is really cool to auto create this fixture for you the problem with these types of libraries is that they only allow you to test the parsing of the JSON and the XML that comes back there's a lot that goes into an API called headers, responses, things of that sort where you may need to really lock the server that you're testing against and not just pin up fixtures some tools that we've got are part of this you do that so you basically activate a Rack app to spoof your API so you can build a FAKE version of your API ShamRack does the same thing, it's a great name so I can rack up a Sinatra app and spoof my API so this allows you to test against the local version of your app and this would be a great thing for folks building multiple applications on top of a well-known API to have these shams out there a Twitter sham that everybody could test against without having to call Twitter because that's destructive, actually send out tweets while you're testing and they know that the API changes but this is one point that we can manage that change it also plays nice just as Rack Nowhere ShamRack is truly a Rack application so authentication seems to be a big issue when you're writing API wrappers one of the biggest things, one of the biggest barriers of writing an API wrapper is just getting the authentication piece working seems like there's a number of ways that the API can do this, by far the easiest is just basic it's not the most secure but it's the easiest somebody supports basic authentication you can set a credential file or something in your home folder and in your test we pull that up and use basic authentication that's built into a really straightforward OAuth is a giant PIA but it's more secure OAuth allows you to let the per body site do the authentication instead of having it's broker so instead of dealing with the user name and password of the user now we're giving a set of tokens that expire or can be revoked so it's a lot more secure for the user in that case but the flows in OAuth 1 are incredibly complex how you get these tokens, you have a set of consumer keys to your application you have to pass those and you get a pair of request keys and you get a pair of access keys it's a crazy flow especially for mobile applications so they revamped this into OAuth 2 and other than the first 5 letters they have nothing in common for the most part so don't expect an easy upgrade path from OAuth to OAuth 2 if you need to do OAuth 2 applications the Intridia OAuth 2 gem which I think dropped the same day that OAuth 2 was announced is really great one of the things you run to in OAuth 2 is that OAuth 2 is specified in different types of devices where you have web flows and mobile flows and things of that sort, user agent flows in your home problem is a lot of the providers do the web flow and they stop so if you're trying to do mobile applications they don't really have it that's pretty much it any questions on UPI wrappers? is Twitter on OAuth 1 or 2? Twitter is on OAuth 1 and I'm not sure as a service when they're going to upgrade to OAuth 2 thanks for bringing that up so we're currently in a refactor we're taking advantage of the OAuth which may have already passed the time of the last couple of weeks where they're shutting off their basic OAuth and they're going to go OAuth only muddings and mudding tomorrow we'll finish up the refactor we're switching over to Faraday and Faraday Middleware just to take the opportunity to cut half of the code the Twitter gem has really been an evolution of code so we had different paths the four of the pattern for basic flows and OAuth flows and we're using this opportunity to really simplify back to Faraday and have just one flow for the application anybody else? a couple of useful tools you can mention are Wireshark and the REST client plug-in for Firefox okay cool I'll check those out in case you didn't know that's Wireshark and the REST client plug-in for Firefox another tool I was going to suggest is a big web called ephemeral response ephemeral response works like that it will cache the request but you can specify how long so you can say well in case the API was going to break I want to re-fetch all that data once a week stores it in memory or does it store it? it'll cache it on the file system for you but then it'll reuse it on the request until it expires and it'll talk to PPI again which project is that? Sondra okay ephemeral response alright thanks everyone


In this video, we are going to learn to multiply two two digit numbers such as say 12 and 31 We know how we can multiply these two numbers in a conventional manner So we multiply 12 by 1 first We get 12 and then we pad a zero and then we complete rest of the multiplication and then combine these two numbers So we get 372 Let's use same two numbers To see how we can complete this multiplication using some other method and this other method that I'm talking about is known as Urdva Thiriak method before going into the actual method Let me first break down the meaning of the words Urdva and Thiriak and explain what it is Urdva means vertical and Thiriak means cross and it is a way in which we actually multiply the numbers Which we see here when we say Urdva What we mean is that we are going to multiply vertically and when we say Thiriak We mean that we are going to multiply numbers in a cross fashion So vertical can be shown like this and cross will be like this Now let us complete the multiplication using Urdva Thiriak Note that we can multiply Numbers with many digits using Urdva Thiriak method But for this video our focus will be on the numbers with two digits only Let us see how we can complete this multiplication now So the first step is to complete Urdva on the right most digits Urdva means vertical multiplication and we can write the result here Which is one times two which is two when we put a slashed line now the next step is to complete Thiriak Now Thiriak is going to be like this where we multiply one and one and three and two In Thiriak, we add the two results and so we can write this as One times one which is going to be one here and three times two which will write here after completing this result We will put another slashed line and then we will complete Urdva again on the left most digits The left most digits are one and three their multiplication is three and then we just write the result like this so three Then one plus six seven and then the two so three seventy two is the answer that we got And as we can see we have matched the answer with the result that we got using the conventional multiplication So let's say we wanted to multiply sixty three and forty seven So first of all we will complete Urdva That is what you will vertical multiplication of the digits on the right, which is seven times three 21 we just write one and we write small two Which will be a carry for the next result the next result we get is from Thiriak Thiriak is performed by multiplying six by seven and three by four and Then we add the result so seven times six is forty two and four times three is twelve The result is going to be fifty four But again, we just write four and write a small five which will be carry for the next result The next result comes by performing Urdva or a vertical multiplication of the left most digits, which is six and four The result is 24 and we simply write 24 here now our objective is to Push this carry to the next step So we push this two to the four and we combine these two and then we combine these two So we basically have 29 6 and 1 and this is the result of multiplication of 63 and 47


Hello friends, I am Mr. Sanjeev B. Naik working as an assistant professor in mechanical engineering department, Walsh and history of technology, Sholapur. In this video, I am discussing about the solution to unbalanced assignment problems. At the end of the session, learners will be able to determine the optimal solution to assignment unbalanced problem. So, understanding of unbalanced problem is that, whenever the number of facilities to be allocated to number of tasks are not equal. For example, if the number of workers are not equal to number of jobs to be performed, then it is called as unbalanced assignment problem. That means, when you construct the effectiveness matrix of performing all the jobs by all the workers and if the workers are not equal to the jobs, then number of rows of such matrix will not be equal to number of columns and that is why it is not a square matrix. So, whenever the effectiveness matrix is not a square such that the facilities are not equal to tasks, then it is called as unbalanced assignment problem. So, pause the video for sometime and just recall the Hungarian method that I have explained in my earlier video which can be used to solve the assignment problem. Let me consider an example of unbalanced assignment problem. Here a manager has got four jobs to be performed, but staff available is only three critical staff. That means jobs are four whereas the availability of facility like clerical staff are only three and all the staff differ in the efficiency and that efficiency is measured as a time taken by particular staff to perform the particular job or to complete the particular job and that has been shown over here. So, this is an assignment effectiveness matrix in which a clerical staff is said to be men x, y, z. So, three clerical staff is there and there are four jobs. So, this is a time taken by a particular man to perform particular job as a ten hours. So, if x clerk is assigned a job e, then he requires ten hours to perform it. Similarly, if y is given the same job, he may take twenty cents. So, that is what the effectiveness matrix is given in the time taken by particular staff to complete particular job. However, if you find here the number of staff available is a three whereas the jobs are four and that is why it is an unbalanced assignment problem. So, the first requirement to solve it by Hungarian method is that we have to see that the number of men as they are less than number of jobs, it is unbalanced assignment problem and we have to convert into balanced problem. So, first step of Hungarian method is that it must be square matrix. That means number of rows must be equal to number of column and then we have to add a shortfall as the column is less. That is why we have to add one column and column refers for staff and that is why it is a dummy staff and that is a dummy person. We introduce in this matrix to balance it and all the elements of that particular column must be zero. So, this is the way first step is performed to balance the given problem as it was unbalanced. One column was less means one person is less, we add that person as a dummy as a false and all these elements are zero. So, all these four elements to perform the jobs is zero that we assign it. So, this is the first step to make it balanced. Once it is balanced then we apply Hungarian method to identify the smallest element in the row because our target is to assign that smallest time element. So, here we find that every row has got zero in it and that is what a smallest element. And that is why if you subtract this smallest element from all these elements it remains same. So, all these elements will remain same in this step also. So, whatever unbalanced problem we have converted is a balanced and we have got effectiveness matrix that itself gives the same matrix. When we do this operation that subtract the smallest element of every row from all the elements of respective row. That means I am subtracting zero from all these it remains same. And that is why the first step of subtracting smallest element row wise is here. Now, we know that we have to also identify the smallest element in the column. And that is why we have to subtract the smallest element of every column from all the elements of that corresponding column. So, here if you see first column the smallest element is 10. So, I want to subtract this from all so that I identify this is the smallest element in the particular column. Where I should allocate the assignment that will result in minimum time. So, 10 being smaller I will subtract it and I will get the next matrix which is called the reduced matrix. So, look here 10 minus 10 is zero, 14 minus 10 is 4, 36 minus 10 is 26 and 19 minus 39. That means smallest element of every column is subtracted from all the elements of corresponding column. So, this way I perform the operation of step 3 and I get this reduced matrix. So, now in this matrix we have seen that the minimum element which is identified as a zero by considering row as well as column. And that is why these are the best possible positions of the minimum element cells where I should allocate particular man to particular job. So, that the time required is minimum and that is been performed by step number 4. So, what is the assignment we want to do? Go row wise and find out single zero. So, here there is no single zero there are two zeroes means either I can assign a job to x or demi person. So, as option is there I do not utilize it. Second row also two zeroes I do not do it. Third row two zeroes I do not do it, but fourth row here is a zero which I can assign. Here is a zero which I can assign. As it is considered row wise I cancel the column means this demi person is already given the job D. So, he should not be given any other job to make that I draw this line vertical line. So, this is the first assignment I have done after going through all the rows. Now, I repeat the procedure through column. Now, I go in the first column in the first column there is a single zero means there is no option. Any other position is not there which is minimum only this is the position. So, I can grab this opportunity of allocating the person. So, this is I am allocating with column wise that means I am taking man x to be allocating job A. So, A job is given to x means it cannot be given now to anybody else and that is why I can draw the horizontal line. So, what is understanding the person x is given job A and when it is given job A, job A should not be given to any other person to make that sure I draw this horizontal line. Then I go in second column, second column I have got single zero once again. So, I allocate it allocate means I make a bracket and I am fixing this person y for job C. And as a job C is given to y it should not be given to anybody else. So, I draw horizontal line then similarly going the third column once again a single zero we can allocate that zero. As it is single there is no option when there is no option we can directly bracket it and we decide it. What we have decided the Z man should be given job B and as job B is given to Z. So, it is been drawn with horizontal line means B should not be given to anybody else and that is what we draw horizontal line. Then we go to the last column. So, last column is already allocated. So, no zero is there to make the allocation. So, that way we have made this allocation when we have went row wise we have done this one and these three allocations we have made column wise because there was no option for that. So, now you just look that any other zero is left out whether it is bracketed or not cut by a line we identified but there is no zero. So, you just look that this is the only row which does not have any line but there is no zero left out and that is why the assignment is complete. Now to see the assignment is complete we count on the lines 1, 2, 3 and 4 or we just see that the brackets made are 1, 2, 3 and 4. That means if the brackets made are 4 or number of lines drawn equal to 4 which is a size of matrix or order of matrix. We require allocation 1 to 1 as a for 4 jobs and 4 workers. That means we require 4 assignments of particular worker to particular job which is being completed over here. That is why we conclude that the solution to this problem is as the lines drawn are 4 equal to order of matrix that is 4. The optimal assignment is obtained by this way that we have assigned a to x, b to z, c to y and d to demi person. So, this is what we have drawn the brackets. So, this is what assignment and that is why the optimal assignment is obtained over here as a to x, b to z, c to y and d to demi person. When it is demi person which is not there. So, this demi person is not at all there. That is why the job allocated to this person will not be completed. That is why it will be idle. Only 3 men are there so 3 jobs will be done but the way they have been done is with minimum time. So, if you just add this 10 plus 7 plus 21 is the total time required to complete 3 jobs by 3 workers and that is 38 man hours. This is what a minimum solution by which out of 4 3 jobs can be completed because it is unbalanced assignment problem. The fourth job will be idle and that is what we get the answer as a optimal solution. These are my references.


Hey everyone, welcome back. Thanks for watching. Today's clip comes from CBS News with Democrat Party mouthpiece Margaret Brennan and her guest a Professor who very begrudgingly lets the truth slip out and we're gonna get right into that clip right after I tell you about the special free coin Offer from noble gold. Why don't you let me fix you some of this new mo cocoa drink all natural cocoa beans from the upper slopes of mountain Nicaragua? No artificial sweeteners The US dollar has lost 85 percent of its value since the dollar decoupled from gold and the government seems hell bent on Continuing that tradition from now until the next elections the government can print as much money as they want The last time they did that inflation went up 9% gold is the one asset that has proven to withstand inflation Invest in gold with noble gold investments, and you'll get a 24 carat One quarter ounce gold standard coin for free go to noblegoldinvestments.com right now That's noblegoldinvestments.com or simply dial 1-877-646-5347 The only gold company I trust and remember there's always risk in investment and there are no guarantees of any kind In looking at some of the research you shared with us One of the things that stood out you are seeing this radicalization on both sides of the political spectrum 30 million people according to your numbers think the use of force is justified to prevent Donald Trump from being president 18 million think it's justified to restore Trump to the presidency Exactly what we're seeing is not simply a manifestation on the right There that is absolutely important and there's no doubt that January 6th The crowd that siege the capital is something that has not happened on the left Of course as always they can't just criticize the left No, no they have to reassure their viewers that the real threat are the republicans and the right He's not even correct because it was the left and democrats who began this whole tradition of denying election results Then using violence in response as i've been forced to remind over and over again The democrats called the 2000 election stolen Try to decertify florida votes and then tens of thousands of them rioted at bush's inauguration and even attacked his motorcade Causing it to speed off something that has never happened before i'd show you the clip But it comes from a michael moore documentary and it's copy written, but you can see it at my twitter channel I'm sorry x channel Find the links for that in the description and pin comment then in 2016 after losing to trump democrats Elements of the government and media falsely claimed it was stolen by russia and then democrats dressed up in isis-like uniforms rioted at trump's inauguration which led to several police injured Oh, and by the way all of those charges were dropped Are you serious? No one is above the law indeed again I'd show you the clip but then the video would get demonetized But you can also see that on my twitter x channel really quick and interesting fact about the clip of that riot at trump's Inauguration the newscaster who's reporting says that the capitol had been blocked off to keep these rioters from entering interesting About two and a half miles of downtown Washington have been closed off around the capitol building in congress So police will have sealed off that area preventing those protesters being able to get through straight age Why didn't they lock it down on january 6? If only they would have left some sort of clue Lastly out of around 120,000 pro-trump protesters only around 300 rioted where i'm from we call that mostly peaceful So yeah, the left and the democrats started all of this never let them forget that So i'm not trying to draw that equivalence. Oh, that was different But nonetheless what we need to look at Are the sentiments on both the right and the left that are being radicalized to millions and millions Of americans what we can actually measure and see whether it's growing shrinking Are the sentiments for political violence in the country? And those are growing and it's important not because every one of those people is going to commit political violence But because it helps to legitimate political violence And it is the pool of people that ultimately do commit acts of political violence So unsurprisingly the democrats are way more radicalized than the republicans in the right and it's not hard to see why Our media and most of our institutions Endlessly propagandized this country with the message that opposing the democrat party is literally a threat to democracy Trump's the leader that they're focused on right now But make no mistake whoever takes that position will become the target because it's all about stopping anyone that opposes their agenda By any means necessary That's why we now have a democrat special counsel and democrat da's who literally ran on indicting trump and who secured their indictments From grand juries that were heavily provided all this while they're raining down all of these ridiculous indictments On the sitting president's main political opponent going into the next presidential election It means that they are prepared to destroy this republic in order to solidify their power So getting republicans or somebody on the right to do something is a high priority for them Don't fall for it again. All right, folks. That's all I have for that. Thanks for watching If you enjoyed it, please hit that like button share subscribe Make sure to leave a comment to tell us what you think about this clip. Thanks a lot and I'll see you all in the next one