 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