Now we move forward to the last team of this group which is simplifying cross-platform code blocks IDE. Good afternoon everyone. First let me introduce me and my group. I am Tejasi Ladkar, Amo Karmat, Rohanak Shah, Manjshayam Theos. Everyone of you must be familiar with code blocks. It is basically an open source CNG++ IDE. So our project was to simplify this IDE, keeping in mind the view of first years who are new to programming and have no prior knowledge of programming. So basically simple blocks is built around the same platform as code blocks and we removed all the complex functionalities of code blocks and included only the basic features like creating and saving a CC++ file and running it and basic editing features like copy paste and complex features like the project notion which is present in code blocks has been removed. In addition to simplification of code blocks, we added some extra features in simple blocks like the simple CVV package has been integrated so that the user can run a simple CVV programs easily and a side pane has been added on the left hand side which contains sample programs and the user has a provision of updating this list like he can remove programs from it and add programs to it according to his needs. A help manual has been added to simple blocks which can act as a reference to the user and this is not present in code blocks and on opening a new CC or CC++ file, a basic skeleton code appears. So what is the motivation of our project and selecting code blocks for simplification? So first and foremost, code blocks is an open source software and it is widely used in engineering colleges all over India and as I mentioned previously, the complex features of code blocks like the project notion and management of plugins such concepts are very confusing and complex for a first year who doesn't know anything about programming so these have been removed and the management of plugins adding and removing plugins this is also very complicated for a first year so we included some basic plugins as default and the user has no provision of adding or removing any plugins in the ID we also integrated S++ that is the compiler for simple CPP and there is only one basic default compiler with S++ integrated obviously and code blocks has many compilers so the user has to select one compiler simple CPP has only one compiler so the user doesn't have to change the compiler each time he wants to run a simple CPP programmer C program and lastly and most importantly code blocks has a very good GUI so that is why we selected code blocks and IDs like TurboC the interface is not very good and IDs like Wim Editor, they are very confusing for a first year so that is why code blocks is the best for simplification I will now call upon Mansha Amdias who will tell us about installation of simple blocks now code blocks uses C++ and WX widgets for its development and for providing GUI so we have used the same thing for simple blocks as well next thing the main thing actually while simplifying code blocks it was to reduce the number of installation steps when we install code blocks from source there are many steps we will come up with some job for the beginner to install the software so with the simplification we have reduced the step to just one command it is just one command installation so the user just has to go to the directory and just type one command in the terminal and the software installs and he can access the software from the dashboard in case of Ubuntu and in case of Windows the user just has to click on the .exe file now the GUI will be explained by Dhonak so I will explain the changes done in code blocks to simple blocks so initially in code blocks there were so many menus you can see so we didn't require the projects menu or the debug menu so we removed all the menus from there and this side pane has been added which contains the sample programs now as you can see the file menu has been reduced to a much greater extent we have added this functionality like in Neo we have created a C++ file so when you click on either of them it opens the basic skeleton and also gives an option to save a file most of the options are not necessary actually like bookmarks you didn't need to save any to-do items or so in search a first tier doesn't use any of these functions like go to function or so he writes a 10 line code or 20 lines code max 100 so that doesn't require a go to function or go to nodes or something so this has been removed and the first tier also doesn't as in he doesn't require too many files so that they can be built or so so the projects has been removed completely the build has been reduced to just compile and run so there is no build notion anyways so just compile and run and we are not giving any settings to him so and this help manual has been added actually it wasn't there initially in code blocks yeah this is the help manual now Ronak will explain the remaining so as all of you saw how the menu bar had been changed in the simple blocks from code blocks to simple blocks in a similar way there were various toolbars the menu toolbar and the compile toolbar so well the few options have been removed and you have just only kept the limited options there was also a debugger toolbar which has been completely removed as the debug feature has been completely removed because come on in first year no one actually uses a debug in a factorial program where are you just going to go and debug you just going to read the code then there was also an autocomplete toolbar which has been completely removed which was actually a plugin which has been removed from code blocks itself in simple blocks so there was also management pane now since the project notion has been removed we removed the management pane completely then the an important feature which was added was the sample programs left pane appears on the simple block screen which contains the sample programs so in default installation itself while if when a person install simple blocks whichever programs if you while whenever I am like this was made for the edx thing like when a code starts on edx by DB Fartex or so if whichever sample programs if you want to give like while installation he can give those sample programs in the folder which on the installation thing which we are providing all those programs will be copied to the documents folder of the user's computer and over here we have actually just mastered that it will search for the sample programs folder in the documents folder of the user's computer everything which is over there will be shown in this thing so even if a user like after I write a program and I think it is important or I want it to be in my sample programs even if he is an advanced user suppose I want I have an algorithm for finding out a sum in an array I just want to store it over here in my sample programs I can do that over here here we have even mastered that it only searches for cpp and simple cpp files only those files will be visible in this pane which are have an extension of .cpp or simple cpp all those other files which do not have those extensions will not be visible then even the log there was a debugger log over there which have been removed because the debugger which has been completely removed then execution of simple cpp programs this was one of an important features which has been added to the simple blocks in code blocks if you had when we came over here if you had to run a simple cpp programs in code blocks you had to go to the settings bar and you had to change the compilers you had to provide paths for the s++ compiler the directory paths for the for people everyone who doesn't know simple cpp simple cpp uses turtle and it shows graphic features this like you write a code and like this is a simple cpp code like it uses a turtle type thing and like in this case a polygon is being formed so like you have a snake application you can create graphic programs using simple cpp it has been created by Professor Rana Day like he's a professor in IIT Bombay so this whole simple cpp it's compiler everything has been created by him and so our main job was to integrate it with simple blocks so that if someone like in simple blocks if he just writes a simple cpp program it gets executed without making any changes to a compilers or anywhere so that's it also we have reduced the code size from 193 mps to 25 mb that was my question you what mb you're talking about what is the size you're talking about the size of the source code I've never heard anybody talk about the size of the code no actually this software package when the software when we install it package when we install it from the site of code blocks it is 193 mbs which gets installed in your system so that the size that the memory that it takes from your system is 193 mbs but now it will just take 25 mbs I don't care about that how much code have you removed like we have like simply we have removed all the extra functionalities and we have removed all the code for them how many lines of code you started with and how many are you left with and how many have you added that that you have to have that without that there is nothing I don't know whether you added any any code at all so we have given so why did the documentation of all the files we have changed all the not the lines of code but all the files we have changed all the functionality that has been removed from that file change is a different matter have you actually removed code yeah we have but as we have removed it from the XRC's it doesn't link to anything so that reduces the code it doesn't it doesn't call anything or those files are not no there is a method for what you have done and you have not followed the correct method if I have to remove the code I have to sort of remove the functionality there are various ways of doing it the correct way to do it is only using something called your C preprocessor this is a hash if def command have you used that if you have not used that then you have not done the correct job basically if there is a whole state of C code and you are modifying a C IDE without knowing C all I need to do is if def code blocks hash and def that's all that is required to drop that code so the same code as before and I can define it on the command line so that with the same code I can actually create a code blocks as well as simple blocks simple blocks both possible during compile I don't know touch the source code except add the statements the normal way people use these statements is to write your OS dependent code if OS is windows then use this code if else use this code so you are aware of that you should have used that technique so we have developed for one OS only doesn't matter but that particular technique of hiding code using if def is what you should have used the advantage is if code blocks come with a new version what am I supposed to do I am not going to do your chop chop chop chop on another set of whatever 100,000 lines sir this simplification won't be required for all the versions sir why sir the basic specification that was provided was just to that you I know but if code block does something else adds a command which I want to include I am not going to do that every software every piece of software in the world goes through alias what you are done is you should have taken a code block branch code block code 1.2.0 code now you have branched it off to 2.1 when code block comes to 3.0 I have to go to 3.1 there should be a mechanism when code blocks cost from right now it is 13.1, 2, to 14. something it adds some functionality like plugins and all that that won't be needed in the simple blocks then the purpose of simplification is lost why it might be simple functionality but the simple functionality won't be added at 13.1 why not the thing is that when we go from you cannot dictate how code block will evolve it will evolve from 13.1 so it evolves like adding some plugin there is a development going on there is a rule that you are imposed on code block writers that you have to only add plugins nothing else you can add I am just giving an example of plugin they will just improve the functionality they will not go in the backwards why you are going backwards the simplification is the backward process we have just simplified it we have just given the basic default structure I am very sorry you added sample example files so basically you are telling us that if a version is being introduced by code blocks we have to give up sources to automate the simplification process you have to have used the version control system have you used version control system you are not correct so if we see the code for 10.12 and 13.12 code blocks there is a huge of difference even the size is different means they have added a lot of things over there and they have maybe they have just changed the main file is completely changed so how can we just give like if and just give it like if this is there then introduce it like there is a lot of change like in main even just let's just take main.cpp file even in between the systems 10.12 and 13.12 it will be different it won't they won't be having the same things again and again maybe they will just no no wait you don't understand you have got set of 100 1000 lines of C code you want to remove 500 of them okay in some 500 you have actually deleted them which is absolutely wrong because you don't know what they are okay then somebody I think some intelligent person told you no no original people should see so now you have commented it that self is wrong all the 1000 lines should remain fresh lines have to be added which are hash if def and hash and def and a compiler has to be used to generate code blocks as well as simple blocks with a simple command line option that is the only way to do it there is no other way okay professional way to do it okay not comment not remove the code does not belong to you and secondly how did you comment it now let me see it's very difficult to comment code I want to see how you did it okay we searched for the functionalities linked how this code is linked with this code that was the challenge that we faced how did you comment the existing code it is C++ it is not possible in C++ because C++ is a command called slash star and a star slash and I can include it in every line I write it in every line people have seen my code all I need to do is dot C to dot CPP it works so C++ includes C okay so if I got slash stars in every line you cannot comment it it as simple as that I give you 10 definitions each variable having a comment what that variable does comment these 10 lines for me just not possible if you have then code block is not written by a good programmer as simple as that so because that was the thing that we followed try and comment my code and you will see you will not be able to comment it so we have I only use slash star and star slash I do not use the new fangled slash slash okay slash slash can be commented with slash star slash star cannot be commented out at all okay anyway I have no question but software is good


Welcome. My presentation is titled Why You Shouldn't Just Trust Your Blockchain and Apply Critical System Design and I hope you will like it. So, what I would like to begin is to hammer a point of home that I'm sure most of us are already aware of is that a blockchain by definition gives us guarantee on one single aspect. Quoting the Hyperledger Fabric Paper, a blockchain can be defined as an immutable leisure for recording transactions maintained within a distributed network of mutually untrusting peers. This is a strong statement but there's also a lips in this statement. It says immutable but doesn't say anything about the transaction being the right transactions meaning in the practice that my smart contracts compute actually what I want them to compute. It doesn't say anything about high availability, the necessary throughput and latency and so on and so on. All it promises is essentially a high integrity database. What will this presentation be about? My beginning point is, opening point is that distributed ledger technology is not an extra functional panacea if you like. It doesn't solve any and all problems out of the box. We will see that if we are careful many problems will become solvable. But reasoning and actual guarantees is possible and this is becoming quite necessary in the system engineering context and smart contracts are especially problematic from the point of view of further extra functional guarantees. I will proceed to lay down our first blocks of a dependable chain code lifecycle model. This is something we are working on actively. I will try to draw limelight to the fact that some tricks from the old engineering toolbox will be usable especially on fabric and I will show some results in advancing fabric chain code static analysis. These are all research efforts that we are working on at the critical systems research group at my university. Some knowledge of hyper ledger fabric will be beneficial here but really not that deep. The reason for having the picture of the nail and the hammer is actually two-fold here. What we are seeing in academic research is more and more people and more by DLTs are trying to apply DLTs to domains which these systems really weren't originally intended for. Point one, point two, coming from a research group that used to be called fault tolerant systems research group. It is only natural that we try to apply those techniques that have been around in fault tolerant systems for decades. Hopefully, usefully and successfully. With distributed ledgers quite a few exciting possibilities can be read in various papers and surveys and meta surveys and for my sins I have to read these. People are trying to do federated learning, robotics, data marketplaces, grid management as in electric grid management, industrial IoT, smart cities, digital twins, railway operations and so on and so on based on a distributed ledger because these are immutable data stores, multi-party consensus provide security for them so it should be much better than a single centralized entity. Not so fast. Let's play with one of my wilder ideas if you like. Is anybody from Siemens around? They are a world sponsor. Nobody. And it's good this way actually. So let's perform the following thought experiment. We have our classic railway infrastructure and that's been working quite well for quite some time. Granted a bit pricey but still these things are appearing and they are supposed to be self-driving. When they really become self-driving and weather is the flow of the software or the driver if before an accident the self-driving software switches off say five seconds before it. That's again another matter but these things are coming. And various people are having various wild ideas. I had one of those too that in order to coordinate those two maybe we should do some movement authority registry when there's a unguarded crossing when can this little thing cross and because DLTs are so good and immutable and have an audit trail and so on and so on and so on. Let's do it on a DLT basis. Okay, let's try. When you give this task to a system engineer first they will have some choice words and second they will begin to have a look at the structure of the system. And then a system engineer worth his or in the case of my wife her salt we'll begin to look at the various internal error modes and system level failure modes of the thing we are having in our hands. The internal error mode simply mean that we have components in this stuff. What are the veils ways it can fail if you are familiar with hyper ledger fabric. You know that endorsement endorsement that you expect it to go through may fail or they can be too slow. You run the thing in a cloud and you have performance interferences or too many organizations may be available due to network problems or too many organizations shall I say it may be compromised because that's not fully out of question either or you may have messed up your chain code in a way that it gives back some garbage. Let's call that course data error or in a way that it gives back to you some subtle error in the computed results that should be written into the ledger. Let's call that subtle data error or your chain code makes unnecessary range queries. Whole bunch of stuff can happen there going forward to ordering your endorsements packaged endorsements may be late to get into a block again for instance because the ordering services simply overloaded or someone is doing some rather malicious constant front running specifically your transactions or the ordering service may have been compromised at the MVCC stuff. We are still not out of the water because unexpected conflicts may happen because do you really know what other chain codes are working on that channel and what other transactions are trying to get into the ledger. The end result is that you can have updates that missing in contrary to your to your original plans. Updates may be late updates may be superfluous on the key value level and updates may be even erroneous even in detectable or undetectable hard to detect way. So let's see what happens in our thought experiment if we have unexpected conflicts because there are other transactions that are trying to get onto the ledger too. The message that I will try to put on the ledger is that the train will be in the intersection in a specific 5-minute time interval don't cross because this is a time when you shouldn't cross. Everything is okay so the transaction is proceeding in the logical architecture of fabric. Here it becomes late at the best case because the client will see that this didn't go through and it tries again but it will get on the ledger later than you originally expected. We will have late updates and the end result is that we either have no problem because well they put it there in the witching hours and I will go to that crossing only 8 o'clock in the morning or this may result in a hazardous situation because if that don't cross comes later than I'm still only approaching the crossing that will be a hazardous situation so you will have to create a structured argument on either avoiding or mitigating this during your design phase. Let's see another example. Let's say that we did some subtle chain code data error. I believe there are quite a few computer engineers, IT people here and I'm sure that if you are one of us then you have seen and possibly even yourself did some date time conversion errors. So if we are dealing with times and dates then well stuff happens. Should be code in testing but it's not always code in testing.  We go through, we propagate our error through the system. Here enters a subtle data error and it goes through manifests in an erroneous update at the service level and what it can cause is again no problem if I'm not interested in that interval actually or it can cause a super closely denied crossing. The crossing will become unavailable if you like because I want to come two hours later and I see that I shouldn't cross but actually the train is already gone or it again can lead to a hazardous situation. So what I try to get with this example is the following. First that example was certainly a very dramatized use case if you like but not overly. There are many academic proposals for industrial IoT, grid control, robots infrastructure but actually at the end it may not be about safety because that's something that we only touch very carefully but reliability, availability, timeliness and a whole bunch of other system level properties are important which are influenced by the way hyperager fabric in our case actually works. For those more control inclined this protocol actually should be certainly explicit authorization and positive control. You may only pass if you get a personal signed slip for having the authority to pass but in that case this would have been much less dramatic and for good while certainly DLT will only just shadow control in the safety critical space I'm not sure how long this will remain the case. But the more general idea that I wanted to support is that we have truly important functions in our IT systems. These we call critical systems. These can have many forms. We have business critical systems, mission critical systems, safety critical systems and even if you are not talking about safety critical systems your DLT based financial solution a CBDC say can be critical enough for this stuff to be actually important. So we need assurances and often quantitative ones. We have to assure integrity, reliability, availability, safety, maintainability and it's not just about crypto asset security contrary to what you can see in the solidity world. Critical system design actually has standards and quasi standards require when driven design processes as well as techniques to avoid, remove and tolerate faults and my specific message is about applying this stuff for hyperledger fabric. As we see the three major key cross domain concerns for hyperledger fabric are actually the following. One, reasoning about potential fault and effect chains in a specific application context. This is what I've been covering with my simple and dramatized example. The second major pain point if you like is or are the hidden common fault chain code. We all know from the solidity world that blockchains are all well and nice until someone has a bright decentralized finance idea, goes on to implement it, leaves a bug in the code, puts it on the mainnet and hilarity ensues. If you have money stake then not necessarily hilarity. Smart contracts in general are a common mode fault. You run it in 10,000 instances but it's still the same code if it's faulty then it's faulty. We already are beginning to have approaches to detect and remove those bugs in development and to tolerate them during operation which is something that Ethereum doesn't really can do but hyperledger fabric should be able to do. There's a third category I do not want to talk about here today, performance and ledger update timing guarantees. It would be very nice to have out of the box admission control for fabric to have some form of equitable block space allocation if I have IoT devices then to have the guarantee that every 10th block I have at least one transaction that I can put in and there are no so called age of information guarantees for the ledger but that's a talk for another time. For the propagating errors we are doing combinatorial search based modeling and analysis called error propagation analysis. The current evolution of which is in answer set programming. If you know prologue or constraint solving that's the modern way to do almost the same on those in those domains but that's not something that I really want to focus on here today. How can we create dependable chain code? Whether we should create it at all. You may argue that well chain code smart contracts are small pieces of software so I can see it through if I can read it through and audit it manually then it will be okay. That argument may stand. You can also argue that I don't have to do any special tricks during operation because in design time I test it, I perform formal validation, formal verification it will be fine. That argument may also stand. We actually don't really know for chain code because there's ether scan for solidity smart contracts and people all around the world are doing stuff like getting all the smart contracts from ether scan analyzing those building even AI models for correcting them. Fabric chain code is bespoke custom software so we don't have ether scan. We don't have rec.news or any of the similar sites for Fabric so when some mishap happens due to chain code faults, errors inside some large company we don't really know about that. There are indications that chain code deployed to production is not always completely fault free but we won't really have any public registry for that. We don't really have these for Corda or Demo or any of the other permission platforms either. It's just the way how these smart contracts are. But I submit to you that empirically the solidity world itself is a counter argument. Solidity smart contracts are not that long. They can't be that long otherwise you would pay an arm and a leg to run them. Still, there are errors. Arguably, creating correct chain code is a harder problem for Fabric because it's not only about losing assets or avoiding the loss of assets because for solidity code that's the alpha and omega of V and V because what do you do on Ethereum mainnet? You juggle virtual assets and that's it. If you want to use this DLT for something else, control for instance or command and control of cyber physical systems then the properties that I will be interested in will be actually a wider set. And it's still manually written bespoke software and faults may be sparse but existing for IEEE does have standards for the number of faults to expect in thousand lines of code and for code that's been developed properly shall we say it's a low number I believe one in thousand lines but still not zero. We did actually an experiment to show that it may be more than about losing assets. Back in 2020 with colleagues from Coimbra in Portugal we did an experiment where we took solidity smart contracts injected various programming errors automatically into those smart contracts and tried to run them on the Bureau EVM interpreter on Hyperledger Fabric it was a bit of an unnecessary complication but still it demonstrates it will demonstrate my point.  Formal verification did detect quite a few of those so those programming errors but by far not all of those and those were back then the state-of-the-art tools. Contract self-checks if we do those so special asserts that we intelligently put into the smart contract most people don't do that still for solidity did catch quite a few errors again so that's nice but we still had quite a few that had been passed simply by what we call runtime platform checks so the EVM didn't throw an exception everything went through and what follows here is already a huge problem because when we say output invariant check that only says that the client receiving back the transaction sees that something is fishy here and by that time the modifications are already on ledger so the fact that so many faults were ineffective doesn't mean that it's not a problem it just means that we should have had a test case set that activates these faults more easily more readily so what we began to put together is actually a rethinking of very classic patterns from fault-tolerant software there's a decade old still developing library of patterns for architecting fault-tolerant software and in the end when we talk about fault-tolerant chain code dependable chain code it's actually tolerating faults in the chain code execution service so it's based on actually the very nice tomb of Robert S. Hanmer and you can see that yes in development we can do fault prevention and removal and we are doing it by coding practices testing fuzzing static analysis formal verification but certainly model-based design will be also important and we had a presentation on that here today when I generate my token contracts then if somebody took the time to go through the generator logic well then probably the quality of that code will be better than something that I just slept together and we are beginning to see reusable domain contracts too if you are familiar with demo they have implemented the common domain model is that so if there's something that's as reliable as open zeppelin in the solidity world then maybe should just use that or extend that my message is that with hyper ledger fabric we can do even more meaning that even in operation we can do error detection and fault-tolerance for chain code and possibly we should also have error recovery so when we see that something is problematic then we should be able to do some quarantining and checkpointing but that's that's still in the works technologically the reason we can do this is that for high in hyper ledger fabric we do not pay for every execution step so I can do software diversity meaning that if I have the same chain code functionality implemented one two three four five days this means that if those different implementations don't have the same implementation faults then they can cross check each other and I can do some voting mechanism to be able to do that on the technical level actually the read write set model is something that's quite important so I will try I will talk a bit about these and at the end about the somewhat sorry state of chain code static analysis to which is arguably important just not the only piece of the puzzle so inversion programming is a very simple idea actually you do independent implementations of the same function and do a very reliable voting voting is easy simple you can implement it so that it it will work hopefully the hypothesis is that after a point it will become cheaper to do that at runtime then testing your chain code further and further and further and doing formal verification and validation even more to reach the same level of confidence now the interesting thing is that for fabric the application of inversion programming is rather straightforward and there are multiple possible architectures to implement it one way to do it is that you have your organizations you have a set of diverse implementations of your chain code version 1 version 2 version 3 due to the way fabric works we can even say that one one team does it in Java one team does it in Python one team does it in Node.js and you simply execute all of them and do some voting with three voters you can you can actually even mask a single a single fault in one of the containers okay and organization 2 does the same and the whole thing is actually transparent to fabric way to do it is organization 1 runs version 1 organization 2 runs version 2 and you can actually even ideologize it because you can say that all organizations shall bring their own implementation for the common business because they have to understand it and shouldn't necessarily trust trust an implementation that somebody gave to them but that's beside the point in that case you can say that the fabric consensus itself is a voting mechanism is a majority voting mechanism so whatever majority consensus you specify in your in your endorsement policy that will be used for that purpose granted if you begin to think about this this can interfere with your consensus guarantees in a major way but it works runtime approach to is what's called runtime verification so the idea here is that whatever we compute as ledger modification there may be certain properties that must hold on all ledger modifications and actually from the solidity where there's a very simple widely used property for that when we are handling some kind of asset money then the first thing that one tends to verify for solidity is that the cumulative sum of assets at the beginning of the smart contract call and the at the end of the smart contract call is the same no money is created and no money is destroyed unless unless the function is explicitly about creating or destroying money and the pattern in fault tolerant computing to do that is that there's a system we wrap it in an instrumentation wrapper and there's a monitor component that observes what's happening in the system and gives feedback to the system and when it decides that a internal execution path of the system does not comply to the properties something happens what should happen is is case specific you can say that we can wrap the chain code into instrumentation and see whether the changes it tries to make on the ledger or are compliant with known properties and a very good student from the University of Alberta Bahari last carry in a mentorship project is looking at that it's useful it's easy to implement technically because the if you want to be really transparent it's just a wrapper around your chain code implementation inside your chain code container but it's limited in scope because if you want to cross check with other data that's on the ledger for that you would have to read from the ledger and that interferes with the read write set of the chain code execution although this may have been a bit too technical option to is that you may want to look at the ledger content where you can do preventive measures but that needs transaction validation in integration when we do the MVCC there at least theoretically we can do runtime verification whether the modifications that we try to do are in line with a set of properties that have to be upheld for the ledger content or it can be reactive so we can say that somebody monitors the ledger and looks for patterns that bring the ledger content to a state which is out of line with respect to properties but then you have to be able to do coordinated rollbacks across the participants of the consortium which we believe is a function that would be needed but not implemented and is technically somewhat challenging to be able to do this there is technology if you want to delve a bit more into this the Java modeling the tool support for the Java modeling language seems to be readily applicable to do chain code based runtime verification so and as a last closing constructive constructive thought I would like to go back a bit to the first phase the only phase that's being done for solidity for obvious reasons when we are looking at our smart contract source code and want to make really sure that no fault remains in there so it's understandable that the solidity word fixates on vulnerabilities specific code constructs that have known at tax if you like many of the papers looking at the problems of hyper ledger fabric chain code chain codes use the same terminal terminology and try to use the same approaches and this may be actually a misnomer so usable solidity vulnerabilities are very specific and for chain code interesting effects are more diverse and we don't have a vulnerability registry and arguably will never be so it may be a better approach to focus on detecting patterns of code weaknesses such constructs that may lead to improperly behaving chain code and well if we are at that inject them to evaluate effects and gauge the effectiveness of the few VNV tools that we already have for chain code using a common platform the difference between weaknesses and vulnerabilities is easy to catch if one opens up the both Mitre hosted the common weakness enumeration and common vulnerability enumeration one speaks about specific exploitable problems in code and the other one gives you a taxonomy of ways you can mess up creating software systems so we have a early prototype for a system when we have patterns of weaknesses we created a visual syntax domain specific language to describes though describe those a whole bunch of things happens here the key thing is here is that we are trying to reason about chain code in terms of actual structure so no regular expressions abstract syntax t3 annotated abstract syntax three and do pattern detection and pattern rewriting on that now this is how what a pattern looks like as an example the weaknesses that we read ledger data but do not use it this is a known weakness of chain of chain code in chain code programming could we do better possibly it's not that readable and those who may be worse than this stuff this is a trick here because it refers to a this doesn't use that there's the not relation that we computed on the graph database actually but that's we have and that's what we have and we don't know anything better ideally we should have a chain code weakness registry so the same way as the solidity world is maintaining the SVC registry the solidity weakness classification and test cases registry it would be nice to have something like that for chain code weaknesses too because we may not be able to create a registry for vulnerabilities for chain calls but if we come if the community comes you come together and discusses that what are the ways smelly code can look like to use a technical term we may be able we may just be able to create a registry we began to do that we'll extend it in the coming month is and hope to reach a point where we can publish it and open source it so in summary fabric is a truly great prep platform but to use it in critical contexts critical settings we need to create engineering bridges to critical system design we have to have a much firmer grasp of what constitutes good chain code and we argue that we absolutely have to begin to implement runtime dependability mechanisms of which creating diverse chain code and checking what chain code actually does quasi independently are important parts ledger audits that I'm not convinced that in the practice that would work but that's also an option when we are constantly auditing the contents of the ledger based on a data model and to able to rectify any errors that have been already committed to the ledger we should begin to think of we should begin to think about creating mechanisms not one of mechanisms not saying that the consortium should come together and everybody should roll back the state of the ledger to a given point these things rarely but happen come up ideally there should be mechanisms at the platform level to be able to do that for instance ledger roll forwards or rollbacks granted tied to a consensus of the participants maintaining the ledger I did steer clear of timeliness on purpose because it's a topic on its own I hope I could pick your interests and there were actually useful messages in these half-finished academic results and truly uncharacteristically I left five minutes open so if you have questions then let's discuss yes yes yeah great question so weaknesses have multiple definitions originally the term was used just for security weaknesses so such code structures and such behavior behavior in code that may lead to vulnerabilities and that refers to transitively to the definition of vulnerabilities but the term has been generalized so some weaknesses can be called with static analysis just by looking at the code this actually what I tried to show you ledger data read but not used this is pushing the limits of static analysis and there are such weaknesses that you can formulate informally well in closed text but which you can't really attack with static approaches so you have to you have to look for dynamic verification approaches you can do model checking on chain code it's there were a few guys in Karsua who were playing with using years ago who were playing with using a Java bytecode model checker on Java chain code theoretically doable but if you are involved with model checking you know the pitfalls but yes there are weaknesses there are kinds of problems in code that are weaknesses per se but you can't really detect them with with static analysis but great question there's there are I believe there are multiple PhDs to be done in in these particular niches yes yes one of them is ledger data read but not used actually let's look at specifics so initializing global variables in init functions that's a classic that you can find it in n plus one copies on medium that when you are writing chain code you shouldn't initialize global variables in init functions non-deterministic chain code is a big no-no then modifying a narrow subset of keys no input type validation no input validation no execution timer set unexpected unchecked call a core return value yeah and so on and so on and so on so defining what we mean by weakness is a bit like nailing Jell-O to the wall I know but I hope that you that the general message is goes go through yes yes yeah yeah yeah so look the technology is great but exactly this for embedded software this stuff has been this is already behind us because it's it had to be dealt with you have miserable see see you have coding practices at practically all companies doing doing serious development in C you have a static analysis tools for weaknesses you have dynamic analysis tools that's orders of magnitude harder but there are tools for that and so on and so on and so on all just because there are applications when we have to be where we have to be this serious this is still missing for fabric I don't say that it has to be there has to be available but if we want to climb gradually up the criticality ladder this will become necessary because I don't see any way to avoid creating recreating these techniques if you like and reapplying them okay my time is up thank you for being here


At Appalachian Wireless, all smartphones are 50-100% off retail pricing for back-to-school. This includes all smartphones, so don't be tardy. Don't miss the bus. Get to Appalachian Wireless today. To your agreement required, exclude outright purchase and advantage plans, while supplies last. Starting Monday, residents in Vergy, who travel along Kentucky 610, may need to find a new route to travel. The Kentucky Transportation Cabinet is rehabilitating the bridge on that road in Pike County near Penny Road and Savalot Grocery Store. The bridge will be closed to all traffic starting on August 13th. We know it's going to put a damper on the work traffic and school traffic, but we're going to get this done as soon as we can. The bridge is slated to get a complete makeover. We're taking the deck off and the beams off, removing those structures, we're replacing them with new box beams. This bridge is one of the worst in the county and it definitely needs some work. An alternate route is 1.5 miles longer than going through the construction work zone. This would be taking Kentucky 610 to Kentucky 122 to Kentucky 2167 to the intersection of U.S. 23. On the other side of the bridge, travelers can take Penny Road to U.S. 23 and backtrack those roads. It'll be a lot better and safer in the long run. We know we're getting this started right as school starts, it's a bad time, but the bridge really needs work done to it and we're going to basically totally rehab it. The contractor has until November 30th to put traffic back on the bridge. In Vergy, Shelby Porter, EKB News.


All right, so I got synth as video a while back and basically it's a video by Southern Utah University trying to convince you about why an art history degree is a good idea. And at first when I got the request, you guys know I try to keep my content on this channel mostly educational. Once in a while, I'll post a funny video, you know, making fun of useless degrees or bad investments. But typically I try to stay away from like roast videos or drama videos. But honestly, let me know if you want me to make more of those types of videos because I feel like you can make it educational somewhat like you can learn from other people's mistakes basically. So yeah, gently tap the like button if you want me to make more videos like this. So I decided you know what, they put the video out there, they're trying to convince me that this degree is worth it. And I consider myself to be very open minded. So let's go ahead give this video a watch and see if they can make some good points and change my mind. At Southern Utah University, everything we do is focused on you, the student. We believe that our entire life's work is helping you discover your purpose in the world. To help you find your passion, your talent, we've created this series on majors. Who are we spotlighting today, Ellen? This is spotlight on art history with Dr. Andrew Marvic. All right, so a lot to unpack here. They say they're totally focused on the students and helping the students out and showing them how to find their passion in life. So this were actually true. The university would not be charging a large amount of money for a degree that statistically has been shown to not lead to good employment outcomes for most of the students who graduate with it, aka this degree is not a good financial investment.   Many end up working multiple menial jobs that don't even require a college degree just to get by. Basically, when colleges do this, they are ruining the first half of people's lives. So if what this guy said is true, then he needs to present undeniable proof that this university is having really good outcomes for their students that study art history. So let's watch the video and see what he says. Andy. Yeah. Tell me about your field and what you love about your field. The study of art, the history of art and the making of art are all connected and it's really about responding to your world visually. It's the process of seeing and then reacting to what you've seen or to looking at how others have done so. It's the process of seeing and then reacting and then looking at how others have done so. So you're saying I should spend $80,000 to learn the process of seeing and reacting and looking at how others have done so. Got it. Sounds totally reasonable. So what types of personalities or what types of individuals are really drawn to this area of study? Art and art history are inextricably connected. Yes. Yes. You already said that. So there are really several very different personality types that stand a good chance of success in the general field of art and art studies. Define good chance of success. What are we talking? Like a 1% chance of becoming a professor so you can teach others. I mean students, art history. Maybe another 1% chance you become an art curator that helps corrupt politicians launder money and evade taxes. Show me the numbers man. Show me the proof that you're actually helping people land these unicorn, non-existent jobs. If you want me to spend $80,000 in four years of my life to go to your university and get this major, you need to provide me with some concrete evidence that is going to help me achieve my financial goals. What types of jobs do art historians generally go into? What it really turns out to be is an excellent springboard for office work, work in business, work in journalism, work in any area where communication is key. People who go into art history as a major will be writing and will be making videos and responding to artworks in oral presentations with other students. So they'll be getting a lot of experience at doing the kind of thing that every for-profit, not-for-profit business in America needs most, which is young professionals who can communicate well. All right, so this is basically another red flag. You hear this with just about any useless degree out there. They claim that they're going to teach you all these soft skills like communication, for instance. Then you start working and you realize the type of communication you were taught in college is not the same type of communication you need to know for the real world. And you probably would have been much better off attending an organization like Toastmasters once a week for free. And even if they do teach you communication skills, you have to ask yourself, is that worth $80,000 in four years of your life? The answer is no. Of course it's not. There are many other ways of learning these types of skills other than going to college and getting a useless or semi-useless degree. Also, when you hear people making these wishy-washy type claims like, it teaches you communication skills or critical thinking skills and all these other things that can't be measured, this should set the alarm bells off for you because anybody out there could say they taught their students communication skills or critical thinking skills. But how in the world would you ever be able to prove that that's either right or wrong? They can't. So I'm still not convinced that it's worth my time or my money. I still haven't heard any concrete facts or numbers. She tossed him a softball question and he totally missed on it. Is there anything else that you think that we need to know about history? All right. Perfect. There we go. She's giving him yet another chance to provide proof of his claims. Let's see what he says. Well, I mean, perhaps you might want to know that at the general education level, and here we're talking about say the 10-10 intro to visual art course, we're now reworking that, retooling it in phenomenal new ways. I think the most important thing we're trying to do is reintegrate creative projects into what has for the last 20 or 30 years around the country generally been confined to art history lecture environment. And I think one of the wonderful things about our new program in general education at SUU is that we're enabling students from various backgrounds with various interests to find a way into art and design through doing, not just through reading and listening. So basically what he's saying here is the students that go into art history are also going to be doing art itself. So isn't that just an art degree? What? I still have no idea how that is a selling proposition that's going to convince me to do this degree. That's fantastic. That's great. Sounds like you have a real passion for what you do. I have a feeling that this lady senses that she's in the presence of a bull artist, no pun intended. She knows the degree is BS for like 99% of people, at least that's the vibe I'm getting from her. All right, so I'm going to make a flowchart here for you to decide if art history is a good degree for you. So should you major in art history? First question, are you a trust fund baby? The answer is no, don't major in art history. The answer is yes, sure, go ahead and major in it. The end.  People when they're 22, 23, 24 years old, they went, they got a useless degree or a semi-useless degree, they finally realized that they're wrong and they want to see what their options out there are.  In many cases, they don't even require a degree at all yet they have a ton of demand and they're high paying. All right, here's a video of a girl I interviewed that got into a $100,000 plus remote job in about one and a half months. Here's a bunch of other interviews that I did. I have an entire playlist. For instance, digital marketing is a great career for artistic types. I did an interview with an artist who regretted getting her art degree, but she managed to transition into digital marketing. I did another interview with an actor in LA who used digital marketing to increase his chances of success as an actor. So if you want to skip all the pain of getting a useless or semi-useless degree or if you already got a useless degree and you really regret it, check these out. And I will put a link to a free digital marketing masterclass from the company who actually trained all of these people and got all of them their jobs. I'll put that down in the description as well as the pinned comment below. So this was the video. In case you want to go look at it, be nice, right? Don't be too mean to them or anything like that. But yeah, suffice it to say they certainly did not convince me to get this degree. I did not hear any convincing arguments or any proof whatsoever that people are getting a good return on their investment from this incredibly expensive degree. So yeah, check out this video of the artist who was able to transition into digital marketing right here. I think you'll really enjoy it, especially if you're an artistic type person. And I will see you next time.


Assalamualaikum warahmatullahi wabarakatuh. Hello, I'm Daud K. Today I will react some video, a long video, one hour. I think you remember that I sometimes react to an Islamic channel named Free Quran Education and I found really good video named I'm the Best Muslim Season 1, the whole episode. So today I'm gonna try to react this video for one hour in one time. So actually it's really helpful channel for new muslim especially because it's not easy to know about Islam easily yet first time. So I hope we can watch this and learn many things together. I like the intro. I'm the best Muslim. It's so angry. You are not the best muslim. Who are you? My name is Bess. Bess Muslim. Oh, he's so awesome. I want to be better muslim. Muslim level up. You are the best muslim. So make the good this. It can make you better muslim. I'm starving. Hey, time to find some iftars. Iftar. Looks tasty. I love satay. Which one of you should I choose? Go ahead. Whichever you like. Everything's nice. I want this one and this one. Also this and that and this and that. And this and that and that. This will be delicious. He wants everything. It's comat. Oh my belly. You are not the best muslim. He ate too much. Some treat just for you. Sir, here is some treat for iftar. Thank you. Sorry officer. My mom bar and my license. License can be borrowed. This is for you bro. And this one is for you officer. Wow. Now you don't have to give me ticket officer. Let's just have iftar. You wish. The food is ready. Alhamdulillah. Inshallah. Muslim or bangers? I'm the best muslim. Yes, I am. So fast. So fast. You are not the best muslim. He's so good. Let's go. He's like me. Mashallah. Mashallah. He's so good. Let's go. Let's go. Come on guys. Let's go. Let's go. Let's go. Muslim level up. You are the best muslim. I'm the best muslim. Yes, I am. Sensor. As a most Spanish man in the grave is due to it. You are the best muslim. I know this. I know this. Muslim etiquette. I'm the best muslim.  Fight for what? Fight for what? Others? It's like a superman versus Batman. Oh, it's so clean. So clean now. You are the best muslim. Alhamdulillah. Assalamu alaikum. Wa alaikum assalam. Why? What's wrong with her? What's wrong? You are not the best muslim. I'm so sad. Assalamu alaikum wa rahmatullah wa barakatuh. It's a beautiful day, isn't it? Wa alaikum assalam. Yes, you're right. Wa alaikum. Wa alaikum. Wa alaikum assalam. Wa alaikum. Wa alaikum. Wa alaikum. Wa alaikum. Oh, yeah. Brothers and sisters. Shall I inform you about a matter, which if you do it, then you will love one another. Spread the salam among each other. You are the best muslim. I'm the best muslim. I'm the best muslim. Yes, I am. Alhamdulillah. Eid al-Adha is so close. I will sacrifice a curbin this year. Yay. But first, I need to check my bank balance. All right. I can easily buy a goat with this. Yay. Hey, what's that? Whoa. That's the latest gaming console in the market. The PlaySethon 5. So freaking cool. But if I buy this, I won't be able to afford a goat this year. No. I must sacrifice a curbin this year. This is so tempting. I mustn't waver. I must be strong. No. No, no, no, no. Good job, bro. Good job. Can I get a goat for a curbin, please? And you must hurry, please. Please. Sorry, sir. We don't sell goats here. We sell... You don't understand. I need a goat now. I mean right now. But we don't sell any goats here. This is a game shop. Why are you offering me a game? I need a goat. Not a game. Oh, no. Please don't force me to buy the PlaySethon. Who's offering? Please don't make me buy it. No. Stop. Why are you making me buy it? Well, if you keep insisting. And here's the money. There you go. Eat that PS5 of yours. Yay! I have the new PS. It's game time. No. You're wrong. No. That's amazing. That's shaytan. He lose to shaytan. Poor guy. You are not the best muslim. Let's try again. This is enough to buy a goat. Sir, the PS5 is on an incredible discount. It's buy one, get one free. Please come inside our store. What? The latest console. PS5. Don't like them? Do you purchase secondhand games? Yes, we do. I want to sell all my PS's. The PS4, PS3, PS2, PS1, PS0, PS-1, minus 2, minus 3, minus 4. And all the cassettes are outside. Whoa. It's the best collection I've ever seen. Why would you sell them all? I intend to sacrifice a cow, this Ilarha.  Masha'Allah. Muslim, level up. Yeah. You are the best muslim. That's muslim. I'm the best muslim. I'm the best muslim. Yes, I am. Yeah, I've got likes. Lessons in registration, please. Yeah, I've got likes. Yeah, I've got likes. Yeah, I've got likes. It's so detted. So detted. Our Lord, accept this from us. You are indeed the all-hearing, all-knowing. You are the best muslim. Yeah, that's right. That's the right sign. Why can't I find my key? Got it. Come on, come on, engine, start. Bad kitty, bad kitty. It's 12 o'clock already.  I still don't have my helmet. No problem. As long as the cops don't notice, right? Come on. Dangerous. It's crazy. It's crazy. You can't do that. So funny. It's so funny. Not easy, not easy. Get safe now. Yeah, he came here too. Herb is a T-1000. Oh, yeah, that's awesome. Gosh. Sorry, officer. I'm in a hurry.  Sorry, mom's a ninja turtle or what? You are not the best muslim.  He's so strong. That's awesome. Pray fudger, make dua. Cool. Now I can go out stress-free. Put the helmet on and pray for safety. Now I'm good to go. Bismillahirrahmanirrahim. See you, bro. Okay. Name of God. As-salamu alaikum, rams. Oh, so beautiful.  What was that? As-salamu alaikum, officer. You seem different. Now I have my license with me, sir. No, that's not it. You seem way more peaceful. Noa, noa, his face have light. Ah, there he is. Because he's good Muslim. What's wrong with him? Listen, my fellow people. Only with constant remembrance of Allah will a heart find true peace. His words are so touching. Dude, I wanna be like him. Well said. You've turned out to be a really upstanding guy. What an exemplary human being. I will be a better Muslim. Muslim, level up! It's just true, yeah. Good Muslims, yeah. You are the best Muslim! Inspired, inspired other Muslims. I'm the best Muslim. Mashallah, mashallah, mashallah. You look so tired. I agree. I'm lazy, like, oh. It's really not easy to move. Got it. Okay, like, you can do this. Let's make some breakfast. His leg. Ah, his food. His food is friend of his hands. And everything. He can use his food so well. I can do this. I cannot. What's wrong with him? It's much more difficult if you use food. Isn't it? What's that? His place is with legs. So everyone can go wherever they want. Yes, we can. Yes, I know. Wait, wait, what in the world? Is there ice in your foot? Where's your ice? Is ice in foot? Have the most awesome name, best Muslim. What you act is like son of Satan. Huh? Nanny? Get rid of your bitter feet from my sight. What? Feel my bitter destroyer pants. Oh, no. What are you doing, dude? Actually, I've been trying to wake you up for an hour. Because I've been watching you sleep all night. Morning. Also, you have missed your dual prayer.  I really missed her? No. No. Yep. Yep, yep, yep.  You are not the best Muslim. No way, no way. Sasuke, I can't believe you already memorized 10 jerks of Al-Quran. I will defeat you. That's enough entertainment for today. Let's do something productive. Hmm. It's Japanese. Did I hear? Food? Special food? In Japanese? Yes. Bismillah. Bismillah. Oh, boy. It's like ninja. Ninja chef. Wait a minute. Special food is cereal? Man, it's ordinary. Dude, see if this thing could be special. But the only chosen people are able to pull that out. The one who have high-excellent spirits. Wait, is the best Muslim has high-excellent spirits? Uh-huh, really? Is nacho cereal? That's so dope! Have a try, guys. But I doubt the taste of the cereal is good enough for me. This is so dope! Spoiler alert. I haven't sold any ice cream today. Such a bad day. Mm-hmm. Ah, yes. One dollar is good. Nobody around. One, two, three. Hey, kids, you've got your money! Thank you very much for telling me, sir. His wallet is... Ice cream? Can I buy one, please? Here, kid. What an ice kid. I'll have to live ice over an ice cream. Where's the wallet? What's this? What about whose bolt is this? Certainly not mine. What is this here? I want to buy all the ice cream. Please give it for free to everyone you meet. Keep it up, good sir. P.S., your secret fans. Oh. Oh. Oh. He's such an angel. He created death and life to test you. As to which of you, best indeed? Alhamdulillah. You are the best Muslim! I'm the best Muslim. Oh, it was a really good, good, good episode. Yay! It's good? Dude, I'm so handsome. I need to take a selfie of myself. On my Instagram. And the result is... That's me, that's me. I need some filter first. Definitely the best. Somebody liked it. One, two... Yeah, me too. It's too confidence. I'm the best guy. Yes, for beauty, you need to take sacrifices. I wonder how many likes he gets. How many likes? Like oh hey, of course. I don't have a watch. Let me see yours. Hurry up already. Shiny soup. Check. Sleek soup. Check. And most importantly, shiny... No, no, no, no, don't shot my hair. Let me tell you this, man of the poor. Hair has nothing to do with becoming the best. Let me tell you the key factor. And it is... Money, money, money! You want some tasty food in your little tummy tummy? Yes? Well, that's... Why for yourself? I'm not your owner. Now, two. What do you mean? Because first I need to take a selfie. My little kitty. I hate him. Cute cat. Cute cat. I mean, he's mean. So arrogant. Good job kitty.   Water? Become the best by watering the plant. Watering. Eat up. Get fat, bro. I forgot this is cat food. So gross. Oh, hey totally normal cat. How'd you get in here? Anyways, there you go. What? You wanna eat cat food? Hey, but why?  You can be the best by giving food to animals. There's a show running in my hair. Let me help you, Gramp. You want to cross the street, right? Wait a moment. Alfred, bring the cat. Do you have a short throat, young man? No, Gramp, no. Yes, my bad man. Well, I've never been my cool boy. Oh. I gained a car. No, no, Gramp. No. This is a car. Because it's a long car. I think I just had a holiday, you know. You want to become the best? Just help people. No, no, no, no. Over there, Gramp. Just remember what our prophet said. The best of people are those with the most excellent character. You are the best Muslim. Ah, the brand new best Muslim episode. Let's watch it. Boss, hold the door. Hold the door. Oh, come on. Hold the door. That'll work out. What? Wait, is that a briefcase that's flying in my way? Oh, dear, briefcase. Just give me a sign. Oh, look, I didn't lose my lunch. Oh, boss, thank you.   You better not get... Oh, no, I'm late. Read this document. Oh, no, the boss. Yeah, make my appointment for the television. Excellent. No worries. I'll always use the most expensive one. What do you mean that's greedy? I do what I want. It's a million dollar company. You better... Hello? So mean guy. Whatever. I'll pay him to call me back.  Oh, come on. Where are the papers? I love to live a magic. I don't need to rearrange this.  It's time to ballerina shame. And a one and a two and a three and a... Don't carry my way, you two-wrecked creature. And a one and a two and a... And a spin. Can you fill these out for me, please? Don't take a break till you're done. Got it? Ooh, psychopaths, yeah. He's... he's... he's psychopaths. Yeah, boss, this is a lot. Extra work again. Yes, boss? Oh, my worst employee. Finally, you came in. Now bring me the usual. The usual? The usual's... I got it now. Good luck. Fun. Bring me something to drink, you empty head. Refreshing. Bubble water.  Now this, this will make us stay awake. Plus or not, no more. Oh, my. Welcome, like two minors is like... Ooh, a challenge. God, it makes me thirsty. You dare drink my coffee? It costs more than your shamefully poor episodic life. I had enough of this. I'm gonna cheese that roll on deodorant to this.  Oh, god. I had a surprise. Here you go, boss. Enjoy. While you can. Fresh coffee. Fresh coffee? Oh, he didn't realize that. All right, ladies and gentlemen. I would like to show you something amazing and beautiful. What? Stop it. It kills me. What is going on? It's coming out. Oh, no, it's coming out. Oh, no, I need to concentrate. Everybody, don't move. This one is going to be big. I cannot handle this. No. The sounds are so weird. It's time. And now, get this. I quit. Holy bench. Crazy. Boss, wait. It's a lift on a relaxing spot. Whoa, thanks, boss. No problem. How's work? Whoa, it's awesome, boss. Because of your guidance, I could finish my task effectively. It's good. But this is unrealistic. Who did this? I asked, who did this? Well, believe it or not. You did this. Good job. Yeah, all employees are going to get a raise and bonuses. You deserve a power up, Jambo. Keep it up. Thank you, boss. This coffee, it makes me go coffee day in. To my best and more, boss. I would like to congratulate everyone for company's big success. Alhamdulillah. This happens because of all of your hard work. May Allah always give you and your family the best reward in this life and the next. And last thing, let's continue to work hard and pray hard. What an awesome leader. If he can be so awesome, then I can be an awesome employee. Yes. The best of your rulers are those whom you love and who love you. I'm the best Muslim. I'm the best Muslim. I'm the best Muslim. Yes, I am. Everyone is trying to get the most important thing in the last days of Ramadan. That is... I got it from Kiyaa Mall while. New t-shirt, new pants, new shoes, new watch. If the cloth is expensive and branded, not only handsome, but it makes me face some, body some, legs some, butt some, dim sum, all the sum. I love feed. Because I have a lot of money. Fasting makes me richer indeed. I don't buy unnecessary things. I don't buy lunch. I don't do charity. I don't go out. I don't shower. I don't pay tax. Now I have more money. Amazing. What should I do with this money? Hmm. This money can make someone really happy. Hey, kid. You need to buy medicine for your cough. Here's one cent. What the what? Don't you have any common sense, mister? I love eat. Hey, wait. I forgot. Ramadan is over. Let's do a movie marathon. Oh, I love I eat. Because I have so much free time. I'll read the Quran later. Most definitely. I just need to play one game. I promise only one game. Only one game? Is only one game? Only one game is so addictive. One more game, no worries. Because today... I'm free. Let's play together again, people. Oh, there was Satan. You are the best Muslim. Everyone is trying to get the most important thing in the last days of Ramadan. That is Thakwa. Thakwa is a state of continuing the good actions we have developed during Ramadan. It is also a sign that our Ibadah on Ramadan is accepted, inshallah. Ya Allah. Let me have stronger Thakwa. And let me keep the ability to do Qiyamullah. Da Allah. Let me be in love with the sunnah of fasting. Ya Allah. Let me be friends with the Quran. Always. Ya Allah. Please give me the ability to help a lot of people and give a lot of charity. Alright. That's the idea. During Ramadan, you visit the mosque every day and pray Qiyamullahil every night. You want to continue the routines after Ramadan even if it's only two extra rakat at night. It's time for Qiyamullahil. You fast for an entire month. And yes, you want to continue fasting throughout the year, although it's only for a couple of days. Let's do Sunnah fasting. And of course, as Ramadan is the month of the Quran, you read it extensively night and day. When Ramadan ends, you still maintain the intimate relationship between the Holy Quran and you. Alhamdulillah. Now let's maintain the memorization and implement the Quran. Our deeds should not cease with the closing of Ramadan. Instead, we must continue and moreover, keep getting stronger and stronger because this is the sign of ultimate success. Alfred, donate all of the profit that we make this year. Yes, sir, as you wish. Muslim, level up! Ah, it's good, it's good. You are the best Muslim! I'm the best Muslim. I'm the best Muslim. Yes, I am. Quran recitation is always good. Always good. Hey, best, I need to be out. Can you help me? Should I help? Thanks very much, best. Now be my slave. Hurry up, slave! Build a pyramid for me for my greatness! Oh, no! What did I sign up myself for? Hurry up, I need to get to the toilet store! No, no, no, no, no, no, no.  Today is a holiday, 24 hours. All only for me. It's going to be a busy day. Let's make some preparation. Instant food for effective time management. For sugar power! Challenge! Well, I'm lazy, so I'm going to play all of them. I'm busy, busy! You're the best! Finally! I said, I'm back to business finally. Why only play one? Well, I should be a slave. I'm sure you can ultimate combo. You win. Well, dude, you're really good at this. Well, anyway, dude, can you help me out a little bit? So, here's the thing. I'm wondering if you could... She's so angry. Big B, what are you doing? I'm using... Here, this is my clone, he will help you out. I can still see you, dude. Everyone already has his own two hands. What you all need my hand for. I need a break. Oh, my goodness, my back! All I'm doing is money! Well, it was the best. Can anyone help me pick my paper up? Oh, no. No, no, no, no, no, no, no, no. Don't look at me like that, Gramps. Not today, Gramps! Gramps, no! Come on, can you help? Look in the room! Where did he go? Where he's going? It's all with you. We will play together forever. Because we are safe. Oh, it's crazy, crazy. You are the best Muslim. No way. When you find somebody in life that needs your help, and you know you've made mistakes in your past, think of the opportunity to help them as something as a God sent, Allah sent it down to you as something you were desperately in need of. Rabbi inni lima anzalta ilayya min khaidin fakir. Master, whatever good you descend upon me of any kind, I am completely bankrupt, I am in absolute need of it. Master, whatever good that you descend upon me of any kind, I am completely bankrupt, and I am in an absolute need of it. Oh, it's amazing. Hey, best, I need your help. Can you help me? Oh, thank God, best, all the food run away to my stomach. Oh, man, I almost died in that place. Thank you, best, for saving me. Alhamdulillah, it's a pleasure helping you all. Let's eat some delicious food, bro. I have a new best Muslim recipe. Wow, it's so sparkly bright. What is this warm feeling inside my heart? Make me want to help people, best. Is this your true power? This is ain't about your own power. There is something else about you, bro. Thank you for teaching me how to care, dude. Really helpful, eh? Alhamdulillah, you don't realize it, but actually, you are the one that helped me, bro. It refreshes my memory. Not only because you love helping, but the most important thing, you do it because of Allah. It makes me want to help people, bro. Oh, man, thank you, young man. What sensation is this? Alhamdulillah, you're welcome, Gramps. May Allah always give you health, happiness and barakah in your life. What is this kindness? I never feel this kindness before. This beautiful du'a pierced my body and soul. I want to help people. Let's make a world a better place. Muslim level up. The most beloved people to Allah are those who are the most beneficiary to Allah. The most beloved deed to Allah is to make a Muslim happy or to remove one of his troubles or to forgive his debt or to feed his hunger. That's true. The same? Amazing, amazing. SubhanAllah, SubhanAllah. It was totally amazing. It was like one hour and four minutes. It was really interesting. I just watched it in one time and it was not even boring or something. There were so many good messages and so many education here. As I told you, we should learn from the Quran and Imam and Sunnah and Hadith. Actually, we can learn from these kind of videos too. I think, Alhamdulillah, I'm so lucky that I was born in the 10th and 4th century. For example, if there was no YouTube or this kind of internet then I can learn Islam and about the Muslims' life easily. Alhamdulillah, it's really great. Actually, I also think a lot of things because I think I do also not good deeds, mistakes and bad things, so I think I should look at myself again and try to be a good Muslim, the bad Muslim. Like this, really. I have to do it well. I hope you can learn something while watching it. Then, thank you for watching my video. Take care and be safe. Alhamdulillah. Thank you. See you next time. Bye. One hour.