Good afternoon and welcome to another episode of the Private Property Home Shopper Show where we are back in one of the most sought-after states in Johannesburg and that is Copperleaf Golf Estate. Today right behind me is you can see 825 and we're going to be showing you this 5,900,000 rand four bedroom, four bathroom, two car garage, gem of a farm style home. So follow me as we take you through this luxurious home because I promise you there's nothing but great things in store for us. And here we are, we finally get to take a look at this incredible house.  Stunning dark tiles which is pretty much made up throughout the home. On my right-hand side is your first bedroom as well as bathroom. Let's take a look at that and we'll come back out here and take a look at all the living areas. Walking into your guest bathroom, you've got some beautiful, beautiful New York style frosted glass which gives you privacy for your walk-in shower. You've got your single vanity which is raised up and then just below it you've got some undercard to storage. Single toilet also on the right-hand side. Then we come to the office space which can also be used as your bedroom. Plenty of space in here, you've got your built-in cupboard, stunning lighting and all that lighting pouring through the glass windows there from outside. Copperleaf Golf Estate is a beautiful estate and it's so nice to be able to take in all the sites from every single one of your bedrooms. Okay and now let's talk about these living areas. So let's start right here. My favorite part of any home is this kitchen and the first thing I need to say about this kitchen and you notice it as soon as you walk in here and that is these massive ceilings, well I wouldn't say double volume but close to a volume and a half and then the rooftop is something we've never seen before. So your ceiling is actually inlaid wood which really does give you that farm style vibe. Well you've got these stunning farm style down lighting for your centre island, I love a centre island and this one is extra extra large. You've got an inlaid gas stove with five hobs here underneath is your oven and then again we've seen this twice now.  It is a super cool feature, not one that we see enough. On my right-hand side you can see the smegiest smeg appliances. So we've got inbuilt stoves as well as microwaves, really nice again. Fits those farmer's feels. It really does remind you of those old stoves back in the 80s. Love how they've been done. Lots of storage boats above and below, warming drawer, cupboards in the centre island then behind me all this cupboard space and these built-in shelves again with this beautiful raw wood all the way up with your featured wall behind it. On my left-hand side you've got space for a fridge there and then my favourite drink of choice to start the day is your coffee corner, again all built-in with some cupboard space. You've got these beautiful sliding doors leading out onto your outside area which we'll talk about in a bit. So you've got some pooches outside there that don't cover me in love. But on my right-hand side it's even more. We've got a walk-in wine cellar. You could repurpose this for what you want but I think a wine cellar, it is incredible. We're just going to have to adjust the lighting for this because it's nice and dark and moody in here. You've got all these wine bottles stacked all the way up. We've got our whiskeys, we've got our rums, our jins, we've got everything here and again all of these raw wood shelves really, really like this. It does fit the feel of this home so well. But then if we come out of this, if you don't want to use that as a wine cellar, you're not a big drinker, you can use it as a pantry. So excuse the noise here but this is where all your goods are going to be stored. We've got built-in fridges, we've got all these shelving units and then for all those appliances that you're wondering where they are, it's going to be right over here. So as you can see, under counter storage for appliances, double sink just in front of me and then behind me is access to your garage. So you're walking through your garage, you can either go left out to the back inside of the house or right into that stunning kitchen. But now that we've got the kitchen out the way, it's time to talk about the dining room area because also it is quite unique in how it's been laid out and also what we find here. First time I think we've ever had on the show is a square dining room table, three seats aside and then above me you've got the frame supported, again I'm going to say this quite often in this home, farm style ceiling, but then we've got inbuilt strip LED lights so it brings a little bit of modernness to this home and now my favourite is one of the most killer fireplaces. I love these kind of fireplaces.  So it's shared both with the dining room area as well as the living room area. I love the colours and how well it works with all the raw wood. Now talking about raw wood or I should have to say at least wood is over here. We've got some other doors that open outwards onto either your fireplace or what's your garden. Love the fact they've incorporated so much wood there and in a style that you wouldn't be out of place when it does come to a farm. So I love how that's done. We're going to take a look at that outside area as well. But now it's time to go to the sitting room area and it's one of the coziest sitting room areas I think we've seen. We've got a bird on camera this time. I think it might be his first time on camera so if you're shy just please do forgive us. But in front of me that feature wall we've got a huge TV mounted to that continuation of the quartz right over there. It does blend in so well with the tiles and then we've got this slate grey couch with another feature wall behind it. I've also got windows there and there letting in so much natural light and also letting you appreciate not only the LED strips but that frame built roof and how it goes all the way outside. It makes you feel like you're on a ranch a little bit. Love all the space and you can do so much with it. It's so versatile because the space is so big. And then like I did mention you've got this outside area over here. All these doors do open up so you can open up these doors. So what is the doors in your kitchen? And then it does have that outdoor indoor feel with your, I'd say your outside bright area. So if you're entertaining you don't want to do it indoors feel free to do it outside because if we talk about some of the features outside we go from tiles to beautiful wood feel tiles. You know those outdoor weather stripping tiles. We've got wood built in on both sides of the bright area creating a feature wall but also you can grab that if you are starting a fireplace or if you're making some fires outside on those cold winter days in South Africa. You've got your huge trellis sitting in the middle acting as a table. Then you've got your inbuilt gas briars as well as all those prep areas. But then if we're walking through to the bedrooms we've got a lot to talk about. So as you can see we've come into a more enclosed space. A lot more beautiful, a lot more moody, beautiful you know textured walls. You're also in gray matching the tiles. First bedroom on the left then it's second third bedroom. The fourth bedroom was that one right over there by the door. Let's start over here and let's work our way through. So now walking into this first bedroom or the second one if we don't include that office you'll find plenty of space here for any kind of bed you'd like to put in or if you'd like to make it an office again. If you'd like two offices again this room is fit for purpose. You get so much natural light coming from the slit windows located right by the ceiling. Then you've got another large window looking out onto your bright area built in cupboards all the way around leading you to an ensuite bathroom. This ensuite bathroom shares the same design elements of what we saw right there at the beginning with the first guest bathroom. However this does come with the addition of a floating bathtub or freestanding bathtub, beautiful, beautiful oval bathtub. Then you've got your single vanity, undercounter storage and toilet and walk-in shower again with those New York style windows. Also this bedroom is serviced with an air con like the rest of the home. Now the second bedroom located within that same hallway again is a carbon copy of what we just saw. Almost a mirror image, stall ceilings. You've got built-in speakers in the ceiling. You've got those built-in cupboards as well leading on to your ensuite bathroom. On-suite bathroom has walk-in shower, single vanity with your undercounter storage that stunning floating bathtub. However this time the tiles in the bathroom has changed. You've got those marble look tiles that work incredibly well in this bathroom. The white on those tiles really does contrast so nicely with all the black accents in the bathroom. Then so much light pouring in from those rectangular slit windows located by the ceiling. You've got your air con. And this time you've got built-in security blinds looking out onto an outside back area that we're going to look at right now. Then we're going to loop around to the master suite and then say goodbye outside. Don't go anywhere. Let's take a look at that master suite. Now your outside area basically wraps around the house. We've got some faux grass outside which really does bring a pop of color to this area. And then we've got built-in vegetable gardens running the length of the left of the home. But now however it is time for the master suite. So let's pop back into that hallway. Let's go to the left now and see what this master suite has to offer us. And now here we are in the master suite. I have to admit the quality of these doors is incredible. So the master suite, let's talk about this area first. One, we've got this feature wall again. You've got this kind of treated wood here. Not the raw wood, but beautiful, beautiful golden wood. Got your TV mounted there. Plenty, plenty of space for all the beds you could ever want. And then we've got a continuation of that framed ceiling, that vaulted ceiling, beautiful, beautiful ceiling. In front of me, got sliding doors, gloss doors looking out onto this incredible estate. You can see the grounds, you can see the lake, you can see the roads, you can see the mountains. It is a really nice view. But you also got your outside area. So you've got a small private patio, beautiful grass cascading down the one wall table there for you to enjoy your coffee. Really, this is a state living at its finest. I must admit, but there are some killer features in this room. One is obviously you've got your slideable stackable blinds, those white blinds that you can use instead of curtains. But now we've got this area here. And this area only gets better.  You can see all your closet space there. You can show off your clothing. You spent all that money on clothing. You've come this far in life. Show it off, let people see it. Then we've got this right over here. So quarter countertops, under counter storage, and two floating single vanities here. Open up your taps. Beautiful. You've got your mirrors built in here. I like it all. I really do these mirrors every year. Everywhere here. I love it. But this year, for me, without a doubt, it takes a cake. So let me start off right over here. So we've got space here for all your towels. We've got a coffee machine right over here. Granted, you might not want the coffee machine. I appreciate it. I love a coffee machine. You've got your toilet. Privacy can close the door. No problem. We like all of that. But then we come to this area. So give me a moment while I fanboy about this. We've got some built-in LED lights. It makes it feel really moody. We've got a shower head over there. We've got a shower head over there. But then we've got shower heads over here. So this shelf is a shower head. One, two, three, four different shower heads there and four over there.  So for all the ladies who don't want to wet their hair, they've just got it done perfectly, perfectly placed for you. But now we've got this over here. Oh, all that water just kind of falls down and then drains into these two little drains. So it's a wet room. Then we've got this massive, massive oval bathtub.  This feature wall with the grass and these portholes right here. I love it. All of these completely private. Nobody out there could see you at all. Again, super, super cool. Love it all. Love the tiles. But now maybe we want a shower. And after a shower, there is nothing above me.  And then you've got your one shower. Yeah? Yeah, as well. In case you don't want to wet your hair. Maybe feeling a bit stiff. You've worked really hard. Well, right over here is an inbuilt steam room. So you're going to sit in there.  And that's your steam room. You've got a steam room that's outside. I love it all. Again, this here is another door. You can close this off. So you can make that ultra steamy. It is incredible. Probably my favorite bathroom out of every single home shop has bought it. So, so far, I love it. I love the greenery. I love how everything works. I love the lighting. This home is absolutely incredible, which is what we've come to expect when we talk about Copperleaf Golf Estate. It is incredible homes that hold their value and really only start increasing in value because of all of the shops popping up, all of the regeneration of the areas loving it. But it does conclude the shoot. So after you, let's go outside. Let's talk about pricing. Let's talk about how you can become the next owner of the town. And here we are outside. It is a couple of killer features we need to talk about outside as well. Obviously, you've got your center table here, plenty of space, built-in bar area over here with built-in fridges. Oh, really, really nice. The alcohol, the fireplace, the pool, but there's even more because, I mean, all of that goes together quite well. Right of here on the right, we've got a fire pit on the left. We've got a miniature putting green. In front of me, as I did mention, we've got a pool with two pieces of gloss over there acting as a railing. Looking out onto the incredible Copperleaf estate. But if you'd like to become the owner of this stunning country-style home with so many modern finishes, what I'd like you to do is contact Tessa. She is the agent for this property. The agent C is his in-queer properties. All of their details will be on screen as well as in the description of this video right now. Don't hesitate. 5.9 million four bedrooms, four bathrooms, two car garages.  Don't hesitate. We're going to see you soon on the next episode of The Private Property Home Shopper Show. And for everybody else, looking to purchase property anywhere in the country, anywhere in South Africa, go to www.privateproperty.co.z. We have every single listing from every single estate agent or agency from 100,000 all the way to 200 million. Guys, don't hesitate. Jump online. They find your next home, and we'll be finding you sitting down watching another episode of The Home Shopper Show every Monday and Friday at 8 p.m. Thank you so much. Goodbye.


Welcome back after the break. Let us start this post break session with questions from all of you. And after taking questions, I am going to move on to another topic, which is distributed data stores or no SQL databases as certain people call them. And I will be basically exploring how to store data at really large volumes. We saw before how to analyze data at really large volumes, but how to store it. We saw how to store data in a file system very briefly, but that is just one way of storing data. You want a data storage system to give you more flexibility and to do other kinds of things. And that will be the focus of the first part of the session. And after that time permitting, I will talk a little bit about information retrieval. Now, the original schedule for this day had several other topics, which included data mining, warehousing, XML, object oriented and object relational databases and so on. The reason we switch to this is because we got feedback from many people that they wanted new stuff. This material which I had planned to cover originally, but in the end I did not, is stuff which is probably not going to be in a basic database course, but it is material which many people use in an advanced database course. Now, of course compressing all of that into three hours is probably neither here nor there. It needs a completely different course to cover those topics. So, I decided not to squeeze it into here. Although information retrieval is another area like parallel processing, which is seeing some very interesting things happening. And if time permits, I would like to say a little bit about what is happening in that sphere. And the other reason I would like to do it is because as far as I know, it is not in the syllabus of most places as of now. So, it is something which may be new to you and may be interesting. So, let us start with questions. If you have questions, please indicate it on a view. Right now, I see that Samrat Ashok, Vidisha has their flag up. Samrat Ashok, open. Yeah. Thanks, sir. My question is that, is there a probability to generate a spurious tuple when you perform repartitioning on parallelism? That is a good question. When you do repartitioning, is it possible for your data to get corrupted and you generate some spurious tuples or other spurious data? This is actually a very interesting question. So, if you look at specifications of disk drives, they will tell you what is the expected rate of uncorrected bit errors, meaning there are bit errors which happen when you transfer data from disk drives. Checksums will catch most of those errors, but a checksum itself is a few bits. Now, if it is 32 bits, then there is probably 1 in 2 power 32 possibility that a bit, some unintended modification is not actually caught as an error because of checksums. Now, in an era when disk was a few hundred megabytes, first of all, most of the time there are no errors and when there are errors, 1 in 2 power 32 chance seemed to be perfectly fine. Similarly, when you have data in memory, most of the time memory does not get corrupted. The probability of a piece of memory getting corrupted is again very, very small, but when you talk of memories of the scale of many gigabytes, it turns out that if you have a few gigabytes on your machine due to random alpha particles hitting your memory or so on, there is most probably a few bits corrupted on your machine sitting here. You do not notice it most of the time. Most of the data sitting there is not critical if a bit gets flipped, nothing dramatic happens. It is not often, but it can happen. So, these two trends put together, increasing disk and memory sizes and data processing which loads so much of data has now increased the chance that if you load data from a file, you are going to have an error which you do not catch. So, in fact, today the new generation of file systems is handling data error detection in a new way. They do it from the storage device to the actual in memory buffer contents in a end to end fashion. What do I mean by this? In the current era, the disk sector has a checksum which catches it, but your file system does not really do anything. If the disk says this block is ok, the file system says fine, I am going to take it and pass it on. But in the process of transferring it over the network during repartitioning, for example, something may get flipped. Now, when you send it over the network, again there are TCP IP packet checksums. So, again most errors are caught, but when you transfer enormous amounts of data, some errors are going to slip through. So, what is done these days is there is another level of checksum on top of everything which is going on underneath. So, there are file systems like ZFS which was developed by Sun, now part of Oracle, which keep extra checksums at the file system level. So, when you read data from whatever device, even if the device messes up, the file system will check the checksum after reading it into memory. If the memory messes up, it will be detected after the data is read into memory, the checksum is computed and verified. If the memory has a problem, it will be detected at that point. So, it turns out that this is a very important issue with large scale system. Recently, my colleague, so, Somen Chakraborty, he has been working on large cluster which is provided by Yahoo and processing web crawl. As web crawls go, it is not very big. It is half a billion pages in comparison with Google which probably has 6 billion pages, but Google also has thousands of machines. We have 40 machines which Yahoo donated to us. So, on those machines, he was running various processes and he found that his program would crash sometime. Looking deeper, it turned out that there was a bit flip which happened somewhere in memory and as a result of which his program crashed. So, now, he is actually changing his data structures such that a bit flip will have a small effect, but it will not crash the program. You may lose a little bit of data, but hopefully that will not be a disaster, but your data structure as a whole will not get corrupted. So, it turns out dealing with errors is very important today in parallel data systems. I hope that answered your question. If you have a follow up, please go ahead. So, the short answer to your question is yes, it can happen. Any system which deals at this scale must have checksums and other things to detect it back to you. Good morning, sir. Good morning. Sir, I want to ask that how the intelligent client locates the location when we have large number of machines. So, when you have a very large number of machines, how do you find the location of something? So, in the context of distributed file system, first of all, there is a master which records for each file, for each chunk of that file. The chunks of Hydebic, 128 megabytes is typical. For each chunk, which machine is the master for that chunk and which are the replicas for that chunk. All updates go to that master and then the replicas get the copy from the master. As such update in the master, it is also propagated to the replicas. So, what the client machines do? First of all, they get this data from the master. Now, in HTFS, the master is a machine. In the Google file system, the file system directory information itself is part of the file system itself. So, what that means is that data itself is distributed across many machines and the client does two or three steps. First, it goes to a master to find the root of that directory structure. Then the next level, it fetches from whichever machine has what part it needs. From that, it finds out where the actual data is for whatever it needs. I hope that answered your question. If you have a follow up, go ahead. Yeah, thanks a lot, sir. Over to you, sir. Anna Chennai. Over to you. Good morning, sir. So, let us assume the problem that we are going to automatically index a large amount of audio and video files. So, let us say a lecture fails in IIT, what are you doing in the full semester? We are in the same process. Really, more files will be added to the corpus. So, if I am going to automatically index, what sort of memory management functionalities are provided in Hadoop or any other technology so that my automatic indexing is easier and faster on this? Okay. So, the question is if you are indexing audio or video files, what sort of functionality is provided by systems like Hadoop when you do it in parallel? Hadoop does not provide any specific functionality for any specific task. It is a library which lets you parallelize whatever you are doing. So, if you have a way to analyze audio or video files, that code can run within the map function. So, the audio-video files could be on the distributed file system. Let us say there are many such files. For each file, it is assigned to one of the workers. Each worker will get multiple audio-video files. The map function will be called on each of those files and you write the map function to do whatever you need to do. If that map function requires you to do a speech-to-text voice recognition and so forth and then you do indexing, we will do it in the map function. So, what Hadoop has enabled in this case is that you can have all those thousand machines working in parallel on different files doing the indexing function, whatever indexing function you have written. Hadoop itself does not have anything built in for any domain. It is just a parallelization framework. I hope that answers your question. The next question is answered. My next question is, if I do some kind of incremental indexing, will Hadoop have facility for those things? Why should I provide the Indian corpus and go to indexing vector? Okay. So, the question was if you want to do incremental indexing. So, you have already got an index. Now, you get a few more records which you have gotten. How do you do it incrementally? Does Hadoop provide any support? Like I said, again, Hadoop does not know anything about indexing. It has no clue what is indexing. It is all your code. So, the question is how would you write code to do indexing incrementally? So, we already have an index. Now, there are some new records. How do you index them? Well, the first part, if you have a few new audio-video things, how do you extract the keywords from those for indexing? That is straightforward. So, if you have, if you put all your new files in some directory and then run map reduce Hadoop on it, it can be told to access only the new files and to do the map function only for those new files. The next problem is the reduce function which takes these. So, the reduce function can actually integrate these into existing indices. So, depending on how you do that, for example, one way is you, this gets into how the keyword indices are built. But think of it as B plus tree indices. They are not actually, but if you think of them as B plus tree indices and you are doing a load of a large amount of data, then you can simply scan the leaf nodes of the B plus tree index and the new data in sorted order and do a merge and then build a B plus tree bottom up again on that. So, when you are doing large incremental, I mean, when the increment is big, this is effective. When the increment is small, you just do a series of inserts into a B plus tree and you are done. So, depending on the index structure that they use, one of these solutions is adopted. I hope that answered your question. There are a few questions which came over chat. Let me answer them. The first question is how can we recover the lost admin password of a database? This depends on the specific database. In, for most databases, what they do is, if you log in to the account which kind of owns the database files. For example, Oracle would be installed with some Oracle account, Postgres. So, let me repeat what I said. The first question is, how do we recover the lost admin password of a database? And the answer is, databases usually have an account from where they were created like the Postgres account which is created automatically for Postgres. Now, if you log into that account, usually you can run the PSQL in the case of Postgres or equivalent for Oracle without specifying a password and then you can change the password from there. The specifics vary by database, but this is what you can do for Oracle. This is a frequent occurrence because you create that admin password in the beginning. You forgot to write it down and you completely forgot it. Well, this is how you do it. Go back. For PostgresQL, our instructions said how to set the admin password. If you forgot it, follow the same instructions after logging in as Postgres and it won't ask you for the old password. You can just set a new password. The next one is, can you please highlight on Oracle RAC or DB2 Parallel Databases? So, first of all, let me answer for Oracle RAC. So, Oracle RAC or I forget what it stands for, but it's basically what is called in Oracle terminology as a cluster. Now, what is a cluster? It means different things, but if you are an Oracle person, cluster means database which resides on a shared disk. What does that mean? There is a disk subsystem which could be a physical disk, but typically it's not a physical disk. It's really kind of a box which has multiple disk network interfaces and so on. That box does not actually execute any programs. It just acts as a disk. You can read a block from it, write a block to it and so on. It's a disk. That disk is connected to a number of machines, each of which can read and write data from this disk. So, this is called a shared disk configuration. Now, these machines obviously have to cooperate. If they start writing data to the same block of disk at the same time, there would be chaos. So, obviously the software which Oracle has allows these machines to run in parallel, do computation in parallel and read and write data from the shared disk in parallel, but they have to coordinate on various things such as locking and logging for recovery and so on. So, they have to cooperate, but with cooperation they can make sure that the shared data is not clobbered. So, this is the setting which Oracle introduced initially for two reasons. One is you get some parallelism. So, there are multiple machines which can run in parallel, but the biggest motivation for introducing this was reliability. And what people realized is that machines tend to fail. Disks, once you put a read and so on, the disk systems are less likely to fail. So, in fact what happens is you get these boxes which have multiple disks, multiple network cards, and they tend not to fail. They are very reliable. They are not 100 percent reliable. Which state was it? Some state in the US recently had a major problem with one of these storage boxes, which there was some flaw in the software used in the storage box. And their entire state website, driver licensing, number of applications of that state went down for several days. Some of them took 5, 6 days to bring back up because they had all the data on the disk. They did not have a proper backup strategy of what. I do not know the details, but because this box failed, they were essentially shut down. Many parts of their administrative things were shut down for a few days before they recovered. So, anyway that is a rare event. These boxes are fairly reliable. It is far more likely that the machines which are running in parallel die. So, RAC has fault tolerance features where if one of the machines dies, the other machines in that cluster can detect that this guy is dead and take over processing for it. Now, the data for it is in the shared disk. So, the data is still accessible. It is not lost or rather it is not inaccessible when a machine dies. So, that is called shared disk parallel. Let me write it here. Shared disk. So, example is Oracle. In contrast, the highly parallel system with thousands of machines, they cannot have a shared disk. I mean, just imagine one single disk subsystem which is accessed from thousands of machines at a time. It is just not scalable. So, if you want to scale beyond a few CPUs, you really need to move to shared nothing and even less degree is shared memory where you have multiple processors that share a memory. In fact, some years ago, all the CPUs on desktops were single core CPUs and shared memory system was something which was a server with multiple cores. Today, every one of the new machines which is in the market today has at least two cores. As a result, everybody now uses shared memory systems, shared memory parallel systems. Shared disk is one level up where you have separate machines connected to a shared disk. Shared nothing is, even the disk is not shared. They are just a network interconnecting there. So, Oracle Rack has been used for many years for high reliability. I believe the Indian Railways Reservation System, for example, was based on Oracle Rack. In fact, before Oracle, Oracle actually bought out corresponding database system from DEC and I think the Indian Railways System used that. That was the basis for Oracle Rack eventually. So, that has been in use by Indian Railways for many years now. How many years? I think 25 years. It is a very old technology. So, it has been around for a long time. DB2 Parallel also has shared disk features similar to Oracle Rack. Can we run the next one is from RC Patel Shripu? Can we run the process of ETL separately in a parallel fashion to build a data warehouse without using the tools available? Can you suggest any simple way of doing it? I think if you use an existing ETL tool as you have pointed out, unless it supports parallelization, you cannot do anything. But if you are building your own, so it depends on what are the steps in the extract process. So, if you are getting some data and you are doing some extraction which is local, it is very easy to use MapReduce on it. So, the extract transform load, incidentally, more recently, people are now talking of ETL, for those of you who are not familiar with this terminology, data warehouses get data from multiple sources. They have to extract the data in some form from whatever form it is. They have to transform it in certain ways by doing some joins to bring it into denormalized form schema which is used in the warehouse and then load it into the warehouse. So, ETL were the three steps before putting it in the warehouse. These days, people are talking about ELT which is extract, load, and then you do all the transforms in the warehouse. One of the benefits of this is the transforms can now be done using SQL in parallel. The warehouse is already parallel. The transforms can be done in parallel. So, only the extracts have to be done separately. So, I do not know much about support for parallel ELT tools. So, I cannot answer that question anymore. Next question, NIT Warungal is MapReduce model portable. Yes, it is very, very portable. The Hadoop implementation is on Java and you can run it on Windows, you can run it on Linux, you can run it on anything. I am not sure about HDFS itself whether it runs on Windows, but the core Hadoop library is Java, so you can run it on anything. I think HDFS also is Java based and I think you can run the same thing on any system that supports Java, but I am not 100 percent sure about that. But bottom line is it is very, very portable. In fact, if you think about it, because it is Java, the different machines that are there can be different. They do not have to be exactly the same. And if you have upgraded a few of those machines to a new version of C library or whatever, it does not really matter. The programs are still Java. As long as the Java VMs are the same, they are ok. Next, from NIT Surathkal, do we need to have the same operating system on all machines having a distributed file system? I almost, I mean, I think the two questions have come in nice sequence. And my answer to the first, previous one is almost an answer to this one also. So, the answer is all the machines which are running the distributed file system do not have to have identical OSs. They have to have identical software though, the distributed file system. DFS software has to be identical across all of those. If that software is different, there is no way they can cooperate. But one can be running Ubuntu, one can run DBN. I suppose if the DFS software is general enough, it can even run Windows for all we care. If the software is good enough, the operating system is not an issue. Now, next one, DOE Axe Reenagar is the distributed system an effective way of making a supercomputer. Yes, in fact, there was an era when supercomputers were made with special chips which could run much faster than your regular CPU chips. They used special technology, gallium arsenide. They had cryocooling. You had Cray computers which had chips which would run so hot that they needed a special kind of refrigerator with free-on flowing through tubes into the CPU and whatnot. They were very successful in that era. But how many of you have heard of Cray computer? According to bet, most of you have never heard of it because that company is now dead. It is kind of alive, but it is no longer what it was. What happened? What happened was the cost of making the Cray computers was enormous. The market was very small as a result. In contrast, the market for your high performance Intel i7 chips or equivalent AMD chips is huge. Millions of people across the world use them. With Moore's law, Intel has been able to put in functions that once were there only on Cray supercomputers. Those functionalities are now there in your desktop CPU. What does this mean? It means that you can no longer do anything special in some sense to make a CPU go faster than what your i7 does. You can make it go faster, but then the heat problem is enormous. Those of you who have seen this trend, Moore's law predicted that the number of transistors per unit area would double every one and a half or two years. That has been happening steadily. There was another thing which people misinterpreted as Moore's law which is that the CPU speeds will also increase correspondingly. That actually kept happening for a long time. Moore never said it would happen, but it did in fact happen till about five years back when CPUs first started hitting 3 GHz. Now, till then every year we would go from 100 MHz, 200, 800, 1, 1.5, 2, 3. Suddenly we hit a wall. After 3 GHz, boom. Nobody is going faster than 3 GHz. The reason is that the heat generated by the CPU increases with the CPU speed. Once you go beyond 3 GHz, the heat is so intense, people have calculated if you want to go even a little bit more, it will melt steel. If you go a bit further, it will be hotter than the sun which is of course ridiculous. You cannot actually go that fast. If you melt steel, your chip is already molten. But the point is that there are physical limits to speed and that limit has been hit today. So the only way to go is to have distributed systems and today all supercomputers are basically built using Intel or AMD or similar chips and there are other companies making chips. So all of them are built using these. The biggest supercomputers today are either a few which are built by governments. China has one, US has several in its national labs. So governments have funded them to do some scientific computation or the only commercial ones which are comparable, maybe even bigger are the data centers at each of Google, Yahoo, Microsoft. Each of their data centers has tens of thousands of machines cooperating on a task. You can think of it as a supercomputer. Last question. Suggest an open source GUI tool which can be used in place of visual basic. That's a good question. If your goal is to build client server GUI programs, there are several. You can use NetBeans with Java Swing that has GUI features. On the other hand, if your goal is to build web-based applications, Microsoft Visual Studio has had GUI features, drag and drop for several years now. I think from 2005 at least, maybe 2003. In the Linux world, NetBeans tried. There was a project called Visual Web which was there in NetBeans which version? I forget. It was included in an earlier NetBeans version, but it was very buggy. So it has actually been dropped from the current NetBeans version. Eclipse does not have it. I don't know if there is any open source GUI tool for building web applications. Meaning we have Eclipse which we have used to build applications. But can you drag and drop constructs in there like here is a table for display. Here is a user input. Can you do that? There is something called NetBeans Visual Web, but it's flaky. That's the only one I know of. Maybe there are other open source ones. There are a few other proprietary ones for the Microsoft world. There's something called iron speed which can do more stuff. There are tools like Ruby on Rails which is not GUI, but it lets you generate certain simple user interfaces very easily. They are called cried interfaces. Let me write it down. So what is cried means? I think create, read, update, delete. So they basically allow you to create tuples, read the tuples, delete them or update them. But they are very simple interfaces. They don't have any semantics. They are not very useful for real life applications. Although they are better than going in and typing SQL to read or modify data. So there are some non-GUI tools, but nothing which is really as good as the best GUI tools that are there. I'll stop there with the questions.


Coach, what's up? Hope your day is going great. My name is Sean, and I am a success coach who specializes in aquatic sports for the company making money coaching sports, where it's our mission to work with you to make coaching your only job. I'm here to serve the aquatics community, be it swimming clubs, learn to swim programs, water pole clubs, artistic swimming, and any private trainers who want to specialize in aquatic sports. It's time to make money coaching sports, so let's dive in. OK, Coach, today, how to market your swim lessons. So we're going to talk about the best ways in which you can get clients to come to your swim lessons, because you're the best of the best, right? You need to be the best of the best if you're going to get kids to come into your swim lessons. So I've got a couple of things here we can talk about, a couple of things that we can just questions that you should have. You should be asking yourself and writing these down. So questions, bands first. Are you findable? Are you on Google Maps? That dictates whether or not you have physical location or not. You have a main physical location that you primarily teach your lessons out of. That's a big deal to have a physical location, location, location, location. What I've found is that location dictates a lot of what's going to happen in your area. If you're close to people, they will come to you because you are the closest thing, regardless if you're the best thing. So location is a huge factor. You want to make sure that your location isn't a spot where there's a lot of younger kids that need to learn how to swim, and that way you're just in a prime real estate spot to get all the kids in your area, because parents want to find the shortest distance they can to actually get them to the lessons. If you are not on so findable, you can still be findable on Google Maps if you have like your house, but you're not going to want to put your house unless you have a pool and you're doing lessons out of your pool, or there's a local pool that you do it out of. If you're not a physical location, say you're a traveling swim coach, okay? And if you're not a traveling swim coach, why not? Why not be a traveling swim coach? You can make so much more money because again, location, location, location. If you can go to the person's pool that saves them so much time and energy, you can charge more money per lesson and the parents don't mind because you're literally coming to their house. So why not do that? Do you have a website where they can reach you? So again, going back to being findable, do you have a name for your swim lessons? Do you have a name for your company where you do your swim lessons? Is it your name for the swim lessons?  Are you on that first search site that allows you to be popped up in the area? So if I type in swimming lessons Houston, if I type in swimming lessons Houston into Google, what's gonna pop up? Is your thing gonna pop up? Are you noticeable? Do you have an Instagram that also pops up, a Facebook that sings to your Instagram? Do you have a Twitter? Okay, do you have a TikTok that actually all links together so it populates in Google so you are there and you're able to be seen, okay? Other big thing, if they have peach jar in your area, this is like the craziest, easiest marketing tool possible. Peach jar in your area, you literally will buy an ad to send to schools and you pay per school. So you are literally sending it to the parents' emails about swim lessons. Parents want their kids to learn how to swim. You just have to be able to find and be a resource for them to show them that you're available, okay? Your local church. Can you be in the church built in? That's another big one. Swim league in your area. If there's a swim league every summer in your area, your money will probably tick up most likely during the summer because more people have time. They can come different times of the day. They're not regulated by the school day. Can you get to the swim league where there's a bunch of younger swimmers and maybe learn to make them better swimmers if they do a little bit on the side, if their parents really want them to compete at a high level, high level for the summer swim league and be competitive on their team? You need to be at a swim meet. You need to have a tent at a swim meet that has your brand on it or just has a bright color for your brand, be it purple, something that sticks out, people catch people's eye and they come over to you and you talk to them about some lessons and make sure that you get their information. You need their name and their email address because that's when the marketing cycle will start and that way you can actually continue to send them information about your program, especially if they're local, okay? So this is just a super fast run through of stuff. If you are more interested in learning all these tips, okay, we've got links in the description below. Subscribe to this channel so that you can get more stuff on how to improve your ability to make money coaching sports. All right, thanks coach Sean, sign off.


we will come you to the next session of software testing unit 2 testing methods lecture 18 series of this unit 2 today we will go through some of the testing techniques in terms of white box and in our yesterday session we had discussed about model based testing is another software testing technique advantages we had seen and we took a sample model and how we can generate the test cases for each of the model representative elements and then the testing and we also understood about the tasks that are required for doing the MIT model based testing and we had seen some of the models in software testing simplistic approach we have studied in terms of a calculator as an example then the flow that can have for the model calculator also we understood and the feature wise or the functionality wise testing of the MBT also we listed out in terms of scenarios as well as the functionality as aggregation application mode display etc taking in a calculator as an example then we listed out the classes that are required for the test model like model itself test generation test evaluation and the categories of those classes like in terms of the selection criteria technology execution options specification and test technology for testing evaluation of the tests that is been carried out and what are the options that are there for doing all these activities that are listed out under the categories that also we had seen okay so okay so today we will discuss about white box test white box testing technique before that I will just touch base some of the testing aspects which we had a session sometime okay so dynamic testing basically the testing done at real time or during the execution of the testing MS software testing is called dynamic testing it is basically divided into two groups white box and black box so there are various techniques for black box there are various techniques for white box okay so why we need black box and white box testing techniques because the software under test or the unit under test needs to be tested at different levels so we need to test as a function as a complete black box running on the field or at the real time or from the user perspective that is why we use the black box approach where the internal details will not be known whereas in the case of white box testing technique we will go through the internal structure algorithm code or implementation we can for the software under test then we will do the testing technique okay so basically we need to have a strategy for testing what is the purpose of testing the goal how to reach that goal all this have to be laid out then once we have these details we are going to have a test case selection methods that means how we can pick the test cases for each of the requirements of the function app which scenarios need to be combined together so that those scenarios can be executed in one shot so all test cases representing inside the group also need to be done while doing the test case selection then we are going to come up with the coverage how much of the functionality requirements we have covered so in terms of black box testing we go for the requirements coverage in terms of all the functionality coverage whereas in white box testing we will go by the code coverage okay so black box and white box testing test case selection methods black box functional or basically based on the requirements function specifications interfaces system specification as per the need that we have for the software under test or the system under test embedded system under test black box test design techniques are based on the functional behavior of systems without having any exclusive knowledge of the implementation of the code or the structure of the logic inside in black box testing the component is subjected to input and the resulting output is analyzed whether it corresponds to the expected behavior so we have all the external input in terms of a signal could be a discrete analog whatever it could be so all these will be driven and we see the behavior of the system resulting in an output and that output will be analyzed whether it is conforming to the expected behavior as per the conditions that is specified in the specification in the white box or the structural testing is also called logic driven testing it is purely based on the structure of the code or the implementation white box test design techniques are based on the knowledge of components internal structure and uses all the information about how the inside of an unit works that means we will be knowing all the detail that is there as part of the embedded software each and every components and units will be understood in terms of doing the test code this information might be a code and design of course for understanding the code it just may not be enough to go through the code so we need to have a design aspects as well understanding the power design aspects is very important because without understanding the design we need to understand the code so there are different types of design like high level design and low level design is most likely to be very linear and mapping implementation of the code so that will be studied and understood before we do the white box testing so white box test ensure that each implemented statement is run at least once and tested against correct behavior so we will study about what is the statement based testing decision based testing coverage and all that aspects in the today's and next classes so basically white box testing the internal details are testing in terms of statements structure and all that here is a diagram which use a fair idea about how a system can be segregated so we have component test integration test system test accepting test as one side and we go along for the testing at a higher level we do system test and acceptance test and at the intermediate level we do the testing and at the component or the unit level unit testing so the one that we do the component of the code level is nothing but white box of course integration test can also take credit of this white box or white box testing or unit testing can take some credit of integration test where there is a challenge in terms of white box where which we cannot cover with the help of white box so integration test results will be considered in that case black boxes of course purely based on the system test and partially based on the integration also so so these two are a basic techniques of course there is a one called a grey box testing which combines both white box and black box techniques so mostly grey box testing there is an application domain systems of complex systems but it depends on how you want to take up mostly they deal with white box and black box as I said the coverage is very important because we need to report the testing along with the results with a coverage aspect like we need to cover the functionality and we need to cover the code so white box testing deals with the code coverage so what is code coverage code coverage is nutshell is as simple as total number of executed code divided by total number of code that is there so we measure this in percentage similarly for black box testing we use the requirements coverage in terms of total number of requirements tested versus total number of requirements available so that is the percentage it gives for coverage okay so differences between black box and white box testing we just glance through this it is also called as input output driven testing or specification based testing here it is also called as logic driven or implementation based testing implementation is nothing but the code software is viewed as a black box without bothering about the internal behavior and structure of the program here permits to analyze the internal behavior and structure of the program software is tested against its specification whereas software is tested against low level specification or low level design with knowledge of code that means code and low level design both are used for doing the white box testing the data is derived solely from the specification that is the inputs and the outputs are derived purely based on the specification whatever its specific here test data is driven or derived from the logic of the program how the flow is also called as a control flow and another term they use it as data flow so these two are basically use here also there is a control flow but purely from spec or the requirement or the functionality here the flow is purely from the structure or the logical blocks I would say of the intended code intended system behavior whatever you would like to call so these aspects will be then in white box testing the control flow and the data flow whereas the control flow and the signals are used for testing the system with the help of the requirement from specifications is nothing but the black box testing okay so black box has its own advantage the black box tester has no connection to the codes we do not have to care about the code so always he look from the perspective that code should have some issue or the bug so in that way he will test it test cases are designed as soon as the specifications are complete so no need to wait for the implementation to be done so you can go ahead with the test plan test cases and all that based on the requirements the implementation could be still in progress but he can go with the test planning test case scenarios generation and whatever the high level testing is needed so there is a need of high detailed functional knowledge or system to the tester and its behavior that means we should have a sound knowledge of the system it is very important especially doing the black box testing this will be done from a end users point of view because end user should accept the system and this is the reason sometimes testing technique is also called as acceptance that means from the user's perspective or the customer's perspective it is very important to understand the whole system and accordingly the tests have to be written and tested so that the product can be released as a defect free product and black box testing helps to identify the ambiguity and contradictions in function specifications that means while writing the test cases or executing it we will know there are issues in terms of the system specification itself or the function specifications because there will be some requirements which are contrary to the other requirements some requirements says this way it should be triggered whereas the logic that is detailed out in other requirements may be contrary to the primary requirements so all this will be brought out because especially this will happen when we deal with the complex systems where the multiple teams are involved and there is some sort of understanding or some sort of a errors that have been injected when writing the spec. Efficient is the black box testing is very efficient especially on a larger and complex system purely because we approach the testing technique in a larger and complex system and it is better because just testing the code may not be enough or it is really not enough because some of the end product issues or errors or bugs it will not be or it will not be found with the help of white box testing okay black box testing disadvantage is testing with every possible inputs is very difficult because all signals and ranges of the values is very difficult and it is tedious also and all test cases we may not have be possible to execute we have seen that partition equivalence and boundary value analysis and all that in our previous classes so all we need not have to do but we should have a nominal range in between which is enough so that is subject to the availability and applicability so black box testing do not care about the structure and design coverage no knowledge of code basically but it is advantage as well as it is sometimes some of the low level details like target based hardware registers timing performance etc he may not be having a proper knowledge so it may be very important to understand about code for doing the black box but white box will definitely bring out all those aspects another problem is that when doing a black box testing if an error or fault is found it may not be possible to isolate where the problem is it may be anywhere in the code which is difficult while doing the black box testing whereas in terms of a white box testing we know what statement has fallen into an issue and for isolating this white box testing somewhat credit we may have to pay or some sort of a code inspection analysis may have to be done for detecting the fault code reasons for intermittent failures of the code cannot be found that means sometimes a failure comes sometimes the failure will not come while doing the testing is very challenging testing aspect it is called point-to-point testing in just very very nice whether user required functionality increment exactly or not so while doing that intermittent failure could be there very difficult to isolate due to what that failures are coming though on a nutshell while doing testing at black box level it appears to be a simple failure but that should be able to reproduce this is one important term that is used reproducibility that means we should be able to reproduce the issues that we found during the black box testing so that reproducibility is an important aspect and all the cases mostly should be reproducible but one or two cases or few cases it may be difficult those are called intermittent failures so those things are a bit challenging but with the help of white box we may overcome those problems some of the errors may not be able to discover until white box testing is done so we know that there are issues but until we complete the white box we will not be able to discover it and test environment is very important and we have a heavy dependency on that and the system should be stable then only the black box testing can be done effectively because the black box testing will as a whole it will come on the entire system and the entire system should be running under all the conditions that you implemented and those conditions are having a dependency for carrying out the tests and you should be stable and running all the time then only we can conduct the black box test okay white box testing advances as the knowledge of internal coding structure is it becomes very easy to find out what type of input data can be used in testing the application effectively where the problems are and each statement or lines of the tester will have a knowledge so with the help of that he should be able to churn out where the problems helps in removing the unwanted length of code which can bring in hidden defects that means there are certain lines of code which can be optimized or which can be removed as a defect because it will be hidden inside and we can improve the implementation with the help of white box testing helps in determining the fault code segments that means as I said the lines of code when we do a statement with the black box testing if the user has implemented wrong we should have equal to if he has used W equal to the meaning is entirely different whereas the first one is for assignment the second one is for comparison so the purpose of that line varies and fault is all day existing that is how white box testing will bring out all this call decode which is implemented discrepancies between the code and the requirements can be identified accurately that means white box testers will have a knowledge of requirement also and while going through the code and testing it you will have a in back of his mind requirements and the back of his mind having requirements he can definitely know where the problems are and discrepancies he can find out easily with the help of a code and the requirements understanding within accurately with an accuracy and no much system dependency unless there are signals that are derived from the external system that means he doesn't have to care about the external signals suppose some unit he is trying to do there are few parameters which are derived from the external system he don't have to trigger the external system rather he can feed the values for example whatever the expected values that signals are supposed to take so those are some of the white box testing advantages and we go through the white box testing as knowledge of code and internal structure is a skill tester is needed to carry out this type of testing which increases the cost in general that means we cannot afford to have a shufflement of the team again and again person should have a thorough understanding of the code we shall have a good knowledge of the code as well so that is the prerequisite and a skilled tester only can do this where he has a knowledge of the underneath the language and the underneath the compiler or the target where the code is being used along with the system as well but more emphasis is on the internal structure and the logic of the code and it is time consuming as the test all the aspects of the code that means if there is a one lakh lines of code is there all the lines of the code need to be tested so it's a bit time consuming as well as a lot of effort required and the cost is required in terms of ramping up the ramping of the team on putting the right effort right schedule and all that. Covering structure of code and its implementation as preset standards at time there is a need of system knowledge for the internal details of the implementable specially the tolerance of states etc that means it is not enough to have just the the internal structure and the code knowledge you should have a knowledge of the external signals in the system and the states at which the system behaves and the transitions all these details you need to have okay so that is the background of white box and black box system and we focus on white box because black box testing we have covered like partition equivalence coverage analysis nominal range and all that okay now we will catch base on the coverage testing okay so having understood black box and white box testing we will go through white box testing technique the internal structure logic and all the aspects of testing we will go through so the basic idea of white box testing is to test all the internal structure and the logic and the implementation that is there in the system so there are different types of testing available let's try to understand that okay coverage testing the weakness of functional testing that is the black box testing is that it rarely excites all the code coverage tests attempt to avoid this weakness by ensuring that each core statement decision point or decision path is excised at least once coverage testing also can show how much of your data space has been accessed that means we have a flow logic and decisions logic having decision on controls so all this may not have been excised in black box testing or the functional testing so how do we do so with the help of code we will do that white box testing all the aspects of that code that is there in the statement and the decision points like if else while do yes us all those will be tested the decision points and the condition points and the decision paths all this will be called coverage testing that decision logic can have basically derived from the charts such as if else while do processing processing we have then case I am taking example it doesn't matter which language we are using see at a C plus plus whatever it is we come across all this decision points statements and logics right so these blocks will be basically excised to make sure that all these blocks are covered and the statements underneath these blocks or covering all this will be excised so that is where we have a weakness in the black box testing or the functional testing because we test the whole function not addressing every path that is underneath that also known as white box test or glass box test some people say glass boxes but we call it as white boxes coverage tests are devised with full knowledge of how the software is implemented that means we should have a full knowledge in the control of the code that is with the permission to look inside the box means purely it is internal structure of the software it is also called structural coverage very important term where the complete structure of the implemented code is excised to make sure that there are no defects so that is why it is called as coverage testing and why white box testing white box test depend on specific implementation they can't be designed until after the code is written means testing with design technique we need to have after the code is implemented so those are some of the coverage testing aspects that need to be done in white box test okay so what are the broad level coverage testing elements that are there as I said three types of coverage we do in terms of coverage testing they are statement coverage where test cases selected because they execute every statement in the program at least once minimum one time the statement have to be covered so that is where we use statement coverage and other broad level categories decision or branch coverage this test cases test the every branch that means we have a decision right like if else so if else can have true path as well as false path so both have to be excised in that false path can have again some old decisions for example let me see if I can this is a decision box and suppose statement is there compare something compare a signal against its range suppose a temperature so we will do the decision taking care here whether it is signal is true or false or signal less than some value if it is true this path will be there if it is false the most statements are excised it could be another decision box further down the line again we will have to excise leading to multiple paths it could be another true other false so basically we need to excise this this this one path this this this this this this this again likewise it will go the flow will go so all this because there are number of statements for true number of statements implemented for false and again we have a decision underneath that that decision also will lead to couple of paths in terms of true and false so all these have to be executed at least one while doing the statements covering that means we do the statement coverage each of the statements along with that we are covering the decision or branch coverage another one is conditional coverage what we do here is test cases chosen to force each commitment in a decision to take on all possible logic suppose this this is instead of for this less than 30 one more condition also suppose signal less than 30 and greater than 20 so there are number of cases which we can do so that could take another path is of true false though this statement one here statement two statement three likewise we may have different conditions that is existing instead of a decision in branch all this have to be excised and all the logic values that means to be taken care like less than 30 greater than 20 greater than 30 less than 20 like we have seen boundary how we do for black boxes same way applicable for here also where all possible logic values are taken so this is another type of coverage we have so basically three broad categories white box as statement decision condition and to achieve statement coverage every statement in the program is involved at least once during the software testing achieving statement coverage it shows that all core statements are reachable this especially very important because there are standard view on sanity that mandates this that means 100% coverage is mandatory statement coverage 100% is very much required may be I will brief one of the session about the ones which is an aerospace standard 100% statement coverage of course there are different safety levels AB CBE very safety levels are there in the world based on the level of safety the decision is taken at to see what sort of a coverage we need to have for testing what it box testing especially that is how one of the standards is similarly we have auto sr and auto muti so basically to cover the statements that are getting executed so white box testing in other words what are types of white box testing that we have so we have statements testing where all the statements are to be executed and we have a branch decision testing where each decision path and long stop that are need to be tested and we have a data flow testing where the data that flows within the embedded system need to be tested in terms of all possible values and the branch condition testing where the branch leading to different conditions need to be tested then we have branch condition combination I will put the different slides and we will detail about all this in a separate session and we have another one called modified condition testing it is also called as MCDC where there is a truth table they write it for all the possible conditions sometimes we may not be able to test all of them but it is again subjective to the level of safety and level of justification based on that we may have to do the last one is a linear core sequence and jump testing these are the technique that is being used so we have seen black box white box testing in terms of white box testing different methods statement testing branch decision testing data flow branch condition branch condition combination modified condition and you will see SCHG having said this we will take the first one as a statement coverage so what is a statement coverage a testing the idea with the statement coverage is to create enough test cases so that every statement in the source code has been executed at least once that means execute every statement in the code at least once during the test case execution when we do the test case execution all the statements in that module or the unit has to be executed or you should touch that whatever the test path that it is going to execute requires use of tools because manually it may be difficult to do it there are a lot of tools with the help of that we can do this statement coverage testing the tools I will list out the tools specify that what those tools are used in the industry such as LDRA vector cast RTRT etc basically what they do is they test hooks added to the existing software that mechanism is called instrumentation instrumentation skills perform also means instrumentation of the existing software in such a way that all the statements should be executed at least once with the help of that tool we will be able to do the workflow when using the statement coverage used to first execute our existing black box test cases that means basic normal in terms of the functionality that are created while monitoring this before this monitoring is all but the simplest test cases performed with tool support that means normal test behavior with the basic flow of the functionality will be tested when all the black box test cases have been executed don't get confused with the black box and all that what I am trying to say is normal cases where we excise the functionality of the particular module or the unit that will be excised first so the tool same tool will be used where being used for white box to generate the test and execute it so the tool will report which parts of the code that are not tested so then we are going to add those additional untested area in terms of the lines of code so the idea is now to construct the new test cases that will cover as many of the remaining statement as much possible so start with the part of the code that should be reached walk backward in the code to determine the values of the input variables required to reach the desired part of the code with the specified values of input variables check the specification for expected and execute the new test case while monitoring that means we may have to do back and forth in terms of reaching the code so how we can reach the code may be good with the help of the inputs that are required so the inputs to reach all the code will be through the data driven within the code that data driven aspects could be a parameter because we use a function which has parameters so these parameters will be triggered such a way all the statements with the possible flow of the executable statements which are not reached with the normal functionality will be covered so that is why we use statement coverage and the expected result how to expect is basically there are functionality wise requirements for that module what it is supposed to execute and what is the output of that so based on that we will set the expectation and the expected results those expected results will be monitored while doing the statement execution with the help of this instrumentation instrumentation is done by the tool for the white box but the white box the tool we need to configure it or modifying such a way that all these aspects in terms of normal functionality as well as complete statement coverage needs to be done one problem that I have seen you know the expected result should not be from the code that means we should not see the core in terms of the expected result we should see the functionality of the code that is being executed that should be taken or considered as an expected result while executing that basically of course if it is a individual statement having the local localization aspects then we can use the code itself as expected results but most of the case we may not be able to achieve because the code is supposed to deliver the required output based on the functionality and you see or dig more into the code the test one may get biased so first thing is to understand the system with the help of a specification then that specification he should match with the connected models that are underneath each of the functionality and that each functionality he should try to drive the different inputs and each functionality he needs to provide a expected result of the behavior in terms of its functionality so that is how we will be doing the statement testing and statement testing is done with the help of instrumentation and instrumentation is mostly done with the help of tools and coverage how we going to achieve statement coverage how much we have touched that means how much we are able to execute statement and against that total number of statements this will be in percentage so we are supposed to have a 100 percent sometimes it may not be able possible to reach 100 percent so it could be 90 or 95 percentage etc so whatever that 5 percent leading to not covered statement so we may have to do additional testing so additional testing could be with the help of code inspection or analysis whatever it is so those will be used for achieving the 100 percent sometimes say some statement in the code may lead to an interrupt and that interrupt may not be able to achieve with the help of instrumentation or some register checking or register operations those things may not be able to do with the help of tool or off-hand with the model itself there is a dependency on other things those aspects may not be able to cover those aspects we should be able to do with the help of debugger analysis or inspection whatever the possible alternates that we have for the statement test so that is about our statement coverage probably I will try to explain with an example C code in the next class and there are other white box testing technique and there is a C code you see here example code we will try to see that there is a white statement there is a E-statement so all these inputs need to be triggered for statement coverage so that all the statements are executed suppose if the count takes less than iterations and iterations is here how much 750 so we should be able to execute all possible 750 this will not be done manually but with the help of tool it will be done okay now coming to statement coverage testing or the coverage testing we use the term called instrumentation or the software instrumentation so what is instrumentation means so software only measurement methods are all based on some form of execution logging means we measure the software in terms of execution only how much software is executed is what we measure in terms of software testing the implication is that after the block is entered every statement is executed so by placing a simple trace statement such as a printf at the beginning of every basic block you can track the block and by implication all the statements in the block are executed that means we have suppose 10 statements in a block or a functionality or a model function this suppose has statement one or by semicolon you know semicolon executable terminator so three statements are there how do we know that each statement is executed so we can put a trace the trace could be anything but the tool uses a different tracing mechanism as a simplistic approach we can use a printf so that by seeing the report if i have a three printf printing some values for each of the statements i know that three statements have been executed so that is so the funda about the implication of each of the statements in this functionality or the block and if the functionality has several hundred for thousands of lines it is not practical to have inserted the printf by other terms that is why i told this process is called instrumentation this instrumentation is done with the help of tool there are a lot of tools which does all these places if the application code is running under the authors the authors might supply a low instruction logging service so sometimes authors itself will provide for trace in terms of the statements so if that is there then a trace code can tell authors at the entry point of each basic block the authors can log the call in the memory buffer the target system or report it to the host that means authors will have a function to see what are the statements that can be traced or not traced etc to feature or the functionality is available within the authors that can be used for tracing out all the statements within the block but mostly non-author standard systems they use instrumentation aspects with the help of a tool and even less instructive intrusive form of execution logging might be called low instruction low intrusion printf a simple memory write is used in place of printf it need not be printf printf basically depending on the i o that if we have it will print the value or we can use a memory write where we will write into some sort of a memory and that memory can be dumped to analyze or instead of a memory we can take a report in terms of printing it into a r s to 32 or any output that is connected so that the less intrusive form of execution from the taken care at each basic block entry point logging function marks a unique spot in the in excess data memory after the tests are complete external software correlates these marks to the appropriate sections of the code alternately the same kind of logging call can write to a single memory cell and a logic analyzer we will speak about logic analyzer I will tell what it is there is a hardware interface as I said r s to 32 or can or any of the interfaces we can use it for logging the traces for covering all the statements if upon entry to the basic block and the logging writes the current value of the program on both the ethics location memory then the analyzer set to trigger only on a write to that address can capture the address of every logging that is executed after the test suite is completed the logic analyzer trace buffer can be uploaded to the host computer for all this is what I told the logic analyzer sort of a tool is used to check the traces and log the execution so this method or the process is called software instrumentation if the system being tested is ROM based and the ROM capacity is close to the limit the instrumented code image may not fit so this is an interesting thing I will explain if the embedded software fits to the flash or the memory in the target base right so what will happen is sometimes after the instrumentation code that size may exceed so what we can do is we will reduce the functionality and test only the pieces of the blocks and we will do multiple iterations to covering so what we can do is you can improve your statement code using two more rigorous coverage techniques decision coverage and modified the condition of the next technique basically okay so there are other aspects of testing ray box testing and coverage testing tools and all that we will see that in the next session we will go through some of the words that we have used additionally I think after MBT we have coverage statement lines of code instrumentation etc so this need to be studied of course we will have some of the glossary initial state system state in which the first event is accepted input input domain input value inspection inspection we will study in the next week a group of review quality improvement for material so we will be inspection of the existing thing it's a process integration we know combining different components in the hardware software or software integration strategy will work out addition about how the different combinations from the integrated integration testing is performing the integration iterative development and iterative life cycle based on few enlargement of and refinement of a system through multiple development cycles of analysis design implementation testing so we have seen in the life cycles V model is used similarly iterative development is also about life cycle model that is being used known errors that is defects that have been found but not solved that means we already know the problem with the understanding that this known with the known defects we will go ahead with other known other unknown issues life cycle life cycle structure process by dividing into multiple process LITO we have seen it's a TM method where four core stones of structure testing LITO means life cycle infrastructure techniques and organization so that is about the class lecture 18 as on it we will continue the white box testing next class


How and when can I communicate to a guy that I can't and don't want to have more children? This is something that I'm scared of telling, that I will scare him away. I have a daughter already, she's 12. Are you with somebody already? Because if you're, you know, if you're dating somebody and you're seeing somebody and it's some, because one of those, it's what you're talking about right now is a deal breaker. It's a deal breaker for a guy, right? And so it's not one of those things where you want him to like really get to know you and like you a whole lot and then, you know, try to convince him that he doesn't need children or he shouldn't have children. A lot of guys, if they want children, if they're like, hey, I want children and they talk to you and you're like, I'm, I don't want to have any children, then that is a total deal breaker for most people, right? And he needs to know pretty early on that that's one of your deal breakers. Otherwise you're gonna get yourself into a situation where he's gonna be like, well, I think she's really awesome but I also want to have kids and it's just gonna turn into a situation where you're gonna both have more heartbreak the more that you string it out and don't tell him about it. And so you want to communicate that earlier on because if it's something that's a deal breaker for him then he has to know. He has to know.


Welcome to JSA TV the newsroom for tech and telecom professionals. I'm Jamie Scott Okitaia of JSA Joining me is my friend. Mr. Michael Lohud. He is the COO and partner of stream data centers Michael Welcome to JSA TV. Thank you. Glad to be here. And what a beautiful day here in Honolulu at PTC 2018 For our viewers who might not know you guys have some big news and a new data center build in Chicago Tell us more. We do we announced earlier this week Which I guess late last week a new development in Chicago Elk Grove Village. It'll be a hundred and thirty thousand foot facility Bringing it online into of 18 or excited. It's a new market for us and happy to happy to be there So why now and why here who are the customers that you're catering to sure so Obviously Chicago has been a major hyperscale market for a little while now So clearly we'll market to the cloud giants of the world Additionally, we feel like there's an opportunity for local enterprise health care financial services So we think a pretty broad mix but primarily hyperscale Interesting and the Chicago Stock Exchange or no Yeah to an extent we would lump them in the financial services category So When you were thinking about this project Um, what were you thinking in terms of timeline? When will you be complete? So end of 18, um, the the opportunity was pretty unique We got to intercept a building kind of mid construction. So, uh, we we leave it offered a speed to market advantage It is a new facility. So it's about 80 80 percent done We're inheriting the construction process and going to convert it to a data center. Oh, that's wonderful. That's that's fast it is Yep And uh for those who might not already know stream data centers Where are your other locations and and what are the markets? Sure. So we're uh, headquartered in dallas Been in the in the little bit of background. I've been in the industry now for almost 20 years Currently with facilities in houston san Antonio Minneapolis and then now the chicago facility So looking out, uh, got your crystal ball right here Tell us, so where can we see stream data centers in 2018? Sure. So in addition to expanding in chicago, we'll have a new facility in dallas We'll announce here in a month or so more officially with details Also looking at west coast and east coast expansion Wonderful. Okay. Well, michael, it's always a pleasure having you Sure. Thank you viewers for tuning in to jsa tv


One of the primary differences from one project to the other is whether there is a dedicated project director. I mean dedicated in terms of the amount of time that they then budgeted to spend. We have projects that said they were going to have a project director and then the school district said, yeah, well I'm glad we got that money. We're not going to actually hire a project director or we're going to hire a project director and in fact actually not release them from their teaching responsibilities or something like that and the end result is the same and that is that there's not somebody who's there essentially monitoring the progress of the project. That runs the gamut from getting out there and literally beating the bushes to convince teachers to sign up for this thing. To dealing with presenters who don't necessarily toe the line in terms of what it is that they're supposed to be presenting and all those kinds of things. If you don't have somebody who can actually do that then your project is just not going to succeed.