----BEGIN CLASS---- [13:30] #startclass [13:30] Roll call [13:30] Sourabh Deshmukh [13:30] Pravar Agrawal [13:30] Abhishek Kumar [13:30] Aniruddha Basak [13:30] Philemon Johnson [13:30] Ritik Raushan [13:30] <_honey_> Honey Bhardwaj [13:30] Kumar Vipin Yadav [13:30] swiftkiller [13:30] Aniket uttam [13:30] Nilesh Patra [13:30] Akshay Gaikwad [13:31] kumar prateek [13:32] Jason Braganza [13:32] Ankur [13:32] kanay bhandari [13:32] Ankesh Bharti [13:33] In today's session, we will be reviewing mbuf_2ndclass.log [13:33] karthik murari [13:33] We had asked you to go through the same yesterday [13:33] Manu Shaurya [13:33] Before I open it for Q&A, there are few things I want to mention first [13:33] Working with Free/Libre and Open Source Software requires a mindset [13:34] Darshna das [13:34] It is important to understand what is required, and how to go about doing things right, asking the right questions etc. [13:34] Roll call: Prashant Sharma [13:35] There is a culture that exists, and if you want to be a part of it, there are important traits that one should have; curiosity, willingness to learn, patience etc. [13:35] Once you understand the reason on why you want to work with a FLOSS project, and you are satisfied, then you can take the necessary steps to work towards your goal [13:36] The important point is that you are fully satisified on why you are doing what you are doing, and that you are fully committed to the task(s) in hand [13:36] rollcall: nandeesh [13:36] Force does not work with anything, and hence we do not spoon-feed, but, are here to guide you [13:37] So, the project and communication guidelines are very important to learn and practice [13:37] I hope all of you have done your homework on the best practices and recommendations on getting to start with FLOSS projects [13:37] Let me now open it up for questions [13:38] ! [13:38] Anything related to how to decided on a FLOSS project, approach to take, working with mentors etc. [13:38] next [13:38] How do you choose a project?? [13:38] katek_warren, So, the first thing is you need to identify your interests [13:39] ! [13:39] katek_warren, you need to ask the question on what it is that interests you; so, you should first be a user of the software [13:39] ! [13:39] katek_warren, it can be in any domain of interest; for example, let us take the Qt project, and you want to design desktop/embedded UI applications [13:40] katek_warren, you should have a reason as to why you like a project; start using the software, and then see their roadmap plan, and what is it that you can pick to work on [13:40] katek_warren, it could be small bugs, documentation; but, find a mentor [13:40] katek_warren, then see what skills you need, and prepare a plan to tackle them [13:41] katek_warren, so, the choice of project is entirely yours; but, we may suggest if you know what area of interest you have [13:41] next [13:41] sorry same question as katek_warren and it was well answered. thanks [13:41] What if the software or app is not yet ready for production or the documentation is not that handy for begginers or for that sake what if their code base is too large to read or hard to understand for a begginer [13:42] Because I always found that their is a very large difference between the academic c++ code and industrial code [13:43] katek_warren, ""Software is never finished. It is only released" ~ Mike Gancarz [13:43] katek_warren, do you think all production software is ready? [13:43] katek_warren, there are always improvements, and bug fixes that happen; [13:44] katek_warren, developers usually test on their machines, so whether it is production ready is not essential; your objective is to develop the features required [13:44] katek_warren, projects can have large code bases, so you need to work on different modules, and bugs are a good way to get to understand how a feature or functionality is written [13:44] ! [13:45] katek_warren, define "academic c++ code" [13:45] i mean the way we do our college projects [13:45] katek_warren, also working on documentation can be a good place to start in a project; it is the simple divide and conquer algorithm; you break a larger code base into modules, and work on specific modules [13:46] katek_warren, a well designed software will have modules that can be tested independently and also with others [13:46] So I should look for currently active issues and assign one to myself?/ [13:47] [13:47] katek_warren, what you do in college are not projects [13:47] katek_warren, they are toy examples [13:48] yeah i feel that but what to do?? [13:48] katek_warren, work with a mentor in a project, to see how their workflow is, which bugs to take, and follow their process [13:48] katek_warren, one step at a time [13:48] next [13:49] A lot of projects have "beginner" or "starter" tasks; you need to pick from them [13:49] ! [13:50] Although lines of code is not the only measure to see how much your coding, it is one that you should keep an eye on [13:50] See how many lines of code you are writing every day [13:50] Of course, we also encourage people to do code reviews [13:50] next [13:50] my area of interest is python. I have learnt the basics of python. what kind of project i can make with the help of it? [13:50] kanay_, that is not the approach you should take [13:51] I have to questions to ask. first: I have noticed this myself a lot of times that while wrking with FOSS projects, after a point of time, things start becoming a little overwhelming for me and I find it hard to make progress, what is the best startergy in that situation? second: There are a few projects that I'm really very interested to contribute in, but it so happens a few times, that the documentation is broken. [13:51] what should be done? [13:51] kanay_, and that is well explained my book as well; you do not pick a programming language and then do a project in it [13:51] kanay_, you choose a problem to solve, and then see what tools are required to solve the problem in it [13:51] kanay_, I cannot and will not do assembly language programming in Ruby or Java or Python [13:52] mbuf : can you suggest me something [13:52] kanay_, for optimizations, I might embed assembly code in C files to get the performance [13:52] kanay_, that is something you have to explore and find what interests you; we cannot decide your favourite ice cream [13:53] yes : mbuf [13:53] kanay_, that is why in undergraduate, you do a lot of courses to get the breadth of computer science [13:53] How do i start a project because i don't have any knowledge where to start? and what to know before starting? should i start any python related project [13:53] kanay_, whichever subject you like, you pick what existing FLOSS software exists in it, and you dig deep into it [13:53] ! [13:53] SSahid95, do not ask out of turn [13:53] SSahid95: wait for your turn. [13:54] ok mbuf :) [13:54] kanay_, There is a ? at the end of any "Interrogative Sentences". [13:54] kanay_, for example, a person interested in distributed systems, might be interested to work on web applications, scaling, infrastructure etc. [13:54] yes [13:54] gargantua_kerr[m, when you do work, you need to measure what you are doing, how much time you are spending, and how consistent you are [13:55] How do i start a project because i don't have any knowledge where to start? and what to know before starting [13:55] gargantua_kerr[m, unless you measure, and monitor, you cannot analyse [13:55] sorry, mistakenly pressed enter [13:55] gargantua_kerr[m, unless you have data on what you did, it is hard to tell why it is overwhelming for you [13:56] SSahid95, next time, you will be kicked out. [13:56] gargantua_kerr[m, most of the time documentation, may not exist, and that can happen; but, you have access to the source code! [13:56] gargantua_kerr[m, the beauty of FLOSS is that you can read, understand and modify the code; updating documentation and getting it reviewed is a way to contribute to the project and also learn it better [13:57] People learn better when they teach others [13:57] ! [13:57] next [13:57] Will we have programming assignments or any contest towards the end?? [13:57] mbuf: Yes but the source code is too big to get hang of at times, and that causes trouble when I have insufficient documentation. [13:57] katek_warren, for the programming sessions, yes; but, if you want to understand a programming language better, you need to practice solving problems in it [13:58] [13:58] Project Euler is a good example, https://projecteuler.net/ [13:58] katek_warren, in FLOSS we generally do not do competitive programming, which is often based on time [13:58] ! [13:59] katek_warren, even if it takes time to get the design or implementation correct, we will wait until it is done [13:59] katek_warren, so doing things right is important for us; of course, having deadlines is useful [14:00] gargantua_kerr[m, nobody graduated from 1st standard to 10th directly; you moved from one standard to another; so, it takes time and patience to get a grip of the project; [14:00] gargantua_kerr[m, as we mentioned earlier, if people are in a hurry, nothing will materialize for them [14:01] gargantua_kerr[m, fast food may be good to satisfy your hunger now, but, not in the long run; we are teaching people to learn to cook and survive [14:01] gargantua_kerr[m, unfortunately, students these days want everything quick and fast, but, learning is not like that (unfortunately) [14:01] next [14:01] How do i start a project because i dn't have any knowledge where to start? and what to know before starting? should i start any python related project? [14:02] SSahid95, You first work in an existing project, gain some experience, and think about why you want to start a new project [14:02] ! [14:02] where do i get existing project? [14:02] SSahid95, as I mentioned before, you choose the right tool to solve a problem, and not pick a software like Python and decide to solve a problem in it [14:03] SSahid95, that I already answered; that depends on your area of interest: distributued systems, operating systems, system software, hardware, compilers, applications etc. [14:03] next [14:03] mbuf : if i decide the problem as making an ATM system. than i can make this in various programming languages but how to decide which one will be efficent? [14:04] kanay_, reinventing the wheel is in general frowned upon, unless you have a real reason to do so; if there is an existing FLOSS project that solves your problem, and you want to improve it, it is better [14:05] kanay_, "Premature optimization is the root of all evil." ~ Prof. Donald Knuth [14:05] kanay_, if you are justified that your ATM system implementation is a new design, and has useful futures, then you first implement it; later you can look at optimization [14:06] mbuf : okk [14:06] kanay_, but, banking systems have strict regulations too; you might want to check that [14:06] next [14:06] Does not doing competitive programming harms problem solving ability in the long run?? [14:06] I have contributed to some OSS projects before. Yet usually what happens is I stop mid-way and don't continue much. How to keep on contributing to FOSS projects regularly and stop leaving mid-way? [14:06] katek_warren, if you are able to solve hard problems quickly, it is definitely a blessing [14:06] django_master, wait for your turn [14:07] ! [14:07] katek_warren, but, unless there is a customer deadline, we generally want to make sure in FLOSS that we are doing things right [14:07] ! [14:07] katek_warren, for that matter, understanding CS theory is always important [14:07] next [14:07] I have contributed to some OSS projects before. Yet usually what happens is I stop mid-way and don't continue much. How to keep on contributing to FOSS projects regularly and stop leaving mid-way? [14:08] django_master, this again comes back to my previous reply, on how much time you spent on the project, what you did, why did you stop etc. [14:08] django_master, without data on what you did, it is difficult to say; [14:08] next [14:09] mbuf : now suppose i have found my problem and also i have know what programming language would be good for it. after i have find the solution of that problem should i stick to that language? [14:09] ! [14:09] kanay_, sure, but, if there is a better PL to do things better, you need to learn the language, and improve the solution [14:09] kanay_, we are always looking at improving ourselves and our projects [14:10] kanay_, a PL is just a tool; a master knows all the tools, and knows when to use them [14:10] kanay_, a tennis player, for example, needs to learn different shots - forehand, backhand, drop shot, serves, smashes etc. [14:10] might be after finding the solution of one problem i have another problem which is not solvable by that language then what i can do ? [14:11] kanay_, if you happen to only play the backhand stroke, it is difficult to win [14:11] kanay_, you need to look at it from the project perspective [14:12] ! [14:12] kanay_, today, microservices architecture is quite dominant, you can use different programming paradigms to provide different solutions [14:12] next [14:12] starting with an existing project means we will be entering into middle of it,but when we are starting we should start from the beginning right? [14:12] Programming Paradigms: procedural, object-oriented, functional and logic [14:14] darshna, a project already has a history, so, yes, you are joining in the middle of it; but, you start from the basics, if required [14:15] darshna, sometimes, you may already have the skills, so it is easier to work on the project [14:15] darshna, people join and leave a project, just like you join and leave a company [14:15] darshna, projects with good leadership survive, and team members may change [14:15] next [14:15] I get stuck when solving harder problems and bugs that take about 4-5 days effort. How to show perseverance when solving bigger problems and when mentors continuosly get back to you with comments? [14:16] django_master, this is where the communication guidelines come into play [14:16] django_master, you need to describe all the approaches you have taken to solve the problem or bug, document it, maybe in a blog post, and send it for review [14:17] ! [14:17] django_master, and if the mentors find that you have really put in the effort, then they may guide you or give you pointers [14:17] django_master, nobody said life is easy; if you are afraid, or scared to experiment, learn and try out things, you are in the wrong industry [14:18] django_master, there is a reason why engineers are paid well :) (to solve hard problems) [14:18] next [14:18] mbuf: As you said learn the tools that are required for project. Suppose a we choose go as a language. And we want to learn that. So people usually say that learn c lang first then move to the go language. [14:18] What is your opinion about it? [14:18] sourabhdeshmukh, you do not choose the language or tools; the project tells you what tools you need to learn [14:19] sourabhdeshmukh, I will tell you why this is a bad approach which many of you take; tomorrow, let's say, Java is obsolete, and you know only to program in Java [14:19] sourabhdeshmukh, then you are not employable; you need to master the art of problem solving in different programming paradigms that I mentioned earlier [14:20] sourabhdeshmukh, basically, students are asking the wrong questions; you do not do only what the industry wants you to do; you focus on the basics first, and then learn the rest [14:20] next [14:20] mbuf: ok [14:21] what is a better approach in your opinion for contributing to FOSS projects: learning the tech stack completely, making some mini projects and then go ahead to contribute, or just go ahead contribute and learn things on the way? [14:21] gargantua_kerr[m, the latter [14:21] gargantua_kerr[m, learn as you go; theory is important, but, you need to apply it [14:21] gargantua_kerr[m, only when you apply it in a project you will actually learn the art of software engineering [14:22] next [14:22] As I mentioned earlier, I highly recommend that you all read my book, where I have described the process in detail [14:23] ! [14:23] We have also been running a program called "Operation Blue Moon", which you can read more from here https://gitlab.com/shakthimaan/operation-blue-moon [14:23] As you go through more sessions, and understand how things work, you will get a better grasp of the process [14:23] next [14:23] mbuf, what are the basics Industry expect from a Bachelors student? [14:24] ! [14:24] django_master, I cannot answer for the industry, but, there are two schools of thought that you should be familiar with [14:25] django_master, there is the cathedral style of working, where you do what your managers ask you to do, and ask no questions; most of the service companies follow this model [14:25] django_master, there is also the bazaar model in lot of start-up like companies, where they have the FLOSS culture, where you question everything and see how to improve thingns [14:25] django_master, there are few large enterprises, where small teams work in a bazaar model too [14:26] django_master, to understand the differences, you need to read http://www.catb.org/~esr/writings/cathedral-bazaar/ [14:26] next [14:26] django_master, basically your basics should be strong, attitude to learn [14:27] django_master, if you want to survive and work in FLOSS companies [14:27] django_master, again, it is important to work in a project that interests you, than be stuck in the wrong company [14:28] I'm interested in two separate domains, which are diverse. But time allows me to pursue just one of them, properly. It's a little hard to make a choice. can you give an advice? [14:28] ! [14:28] gargantua_kerr[m, ask yourself this question, on which of the two domains will keep you awake at night [14:29] gargantua_kerr[m, which one are you more passionate about, that you will work hard even without sleep [14:29] mbuf: And if the answer is both? [14:30] gargantua_kerr[m, sometimes, it so happens that what you think of a domain, may not actually turn out to be what you imagined; you can try projects in both, and decide for yourself [14:30] gargantua_kerr[m, you have only 24h in a day, and life is hard [14:30] ! [14:30] gargantua_kerr[m, think about what you would like to be known for in another 10 years [14:31] gargantua_kerr[m, what you see yourself working with, and that can give you the answer; life is full of compromises; it is how we overcome the challenges, and prove ourselves, is what differentiates the champions from the players [14:31] next [14:32] If i want to change from one domain to othere, But i was goting difeculties on it , give me some advice about it, what shuld i do [14:32] Ani, you can change domain, but, you need to discuss the difficulties with your mentor [14:32] Ani, no SMS language in here [14:32] next [14:32] ok [14:33] If i found the problem or want to make any changes then how do i identify that which programming language will be better to solve it? and to recognize this i should have the knowledge about more than one programming language? [14:33] kushal will take it from here [14:33] SSahid95, I already answered that question; you do not get to decide the programming language [14:33] SSahid95, no, you need have know-how on more than one programming paradigm [14:33] SSahid95, read on the four paradigms that I have listed before [14:34] next [14:34] Hi all [14:34] hello kushal [14:35] Yesterday I have asked you to read https://lym.readthedocs.io/en/latest/useful.html chapter. [14:35] kushal, hi [14:35] I will take questions from it. [14:35] ! [14:36] nect [14:36] oops [14:36] next [14:36] Yesterday vim was mentioned in useful. How can I master and learn vim so I don't use vscode for anything? [14:36] django_master, for now I am taking questions related to https://lym.readthedocs.io/en/latest/useful.html chapter. [14:37] django_master, But, I can still answer you as vim is mentioned there. [14:37] django_master, use vim for long time. [14:38] django_master, If you never read this link https://www.norvig.com/21-days.html [14:38] next [14:38] No other questions related to useful commands chapter? [14:38] ! [14:38] ! [14:38] next [14:39] ! [14:39] Can you tell about the decompression chamber in tar ?? [14:39] ! [14:39] katek_warren, I have no clue what that is. [14:39] ! [14:40] katek_warren, I will have to search, I guess you can also search and read about it. [14:40] So how do we decompress a tar file?? [14:40] next [14:40] katek_warren, https://lym.readthedocs.io/en/latest/useful.html#extracting-a-tar-file [14:40] decompression chamber in tar [14:40] sorry typed by mistake [14:41] django_master, ? [14:41] ! [14:41] ! [14:41] what's difference b/w .gz and .gz2 other formats for compressing [14:42] Usually there is .zip and .tar formats only. Why are these formats used for? [14:42] ! [14:43] I guess there is a typo in your question, but, you can read about various available options in compressing files. [14:43] django_master, https://en.wikipedia.org/wiki/Gunzip [14:43] django_master, and even better https://en.wikipedia.org/wiki/List_of_archive_formats [14:43] next [14:43] if i know a problem can be solved by a language which i did before but i also know that it is difficult to solve it there and wanna choose the better language to solve that particular problem, then how do i choose? [14:44] SSahid95, not a question for this session, someone may answer you after the session. [14:44] next [14:44] kushal, If i save any environment variable then where it get stored in the system? [14:44] ok, kushal [14:44] aniruddhab, what do you mean by save? [14:45] You will have to define it somewhere, say for bash in ~/.bashrc file [14:45] `export NAME="Kushal Das"` [14:45] like this [14:45] ! [14:45] aniruddhab, yup, the ~/.bashrc is a good file for start. [14:45] next [14:45] kushal, ok [14:45] thanks [14:45] aniruddhab, you can search more about exporting environment variables in your shell. [14:45] when the system asks password after typing su - , does it ask the root passwor, or the password for user?(I have set both of them same, couldn't distinguish) [14:46] ! [14:46] su asks for the root password [14:46] next [14:46] I was not able to understand hard link and soft link. Could you please specify the difference? [14:46] kushal, ok [14:47] mrinalraj_, search on duckduckgo.com, you will find a few better descriptions than the book, read them, if you still don't get it, then ask in the channel when the session is not going on. [14:47] next [14:47] What are the use cases of hard and soft links? [14:48] shaur, did you type the exact same question in the duckduckgo.com and tried to read and understand the results? [14:48] yes, I checked on stackoverflow [14:49] shaur, how many links did you read? [14:49] just one [14:49] shaur, for example: did you read https://www.geeksforgeeks.org/soft-hard-links-unixlinux/ ? [14:49] Thanks, I'll go through this one. [14:50] shaur, You will have to learn how to search first. [14:51] next [14:51] kushal : i am using ubuntu. when i am trying to become a root user by typing "su -" it is asking for password but after writing password when i hit enter it is saying authentication failure. why ? [14:51] kanay_, because you are typing wrong password for root. [14:52] next [14:52] kanay@kanay-VirtualBox:~$ su - [14:52] Password: [14:52] su: Authentication failure [14:52] Enumerating specific cases where there has been historical conflict. what does this 'Historical conflict' mean? [14:52] no i am using the correct password [14:52] kanay_, please learn to use a pastebin service, for example paste.debian.net [14:52] kanay_, Your computer is telling you that you are using wrong password. [14:52] SSahid95, where did you find that line? [14:53] next [14:53] kanay_: ubuntu does not have a password for the root account. So su will not work. Use `sudo su` or `sudo -i`. I think we discussed this outside the class [14:53] purpose intoduction [14:53] ! [14:54] SSahid95, what is purpose introduction? [14:54] next [14:54] when i am typing `su -` it is showing authentication failure but when i am typing `sudo -s` it is going to the root [14:54] same password [14:54] Means the introduction of FHS [14:55] aniruddhab, look at what j605 mentioned. [14:55] kushal, ok [14:55] also I generally have a root password always setup. [14:55] j605: yes it is working perfectly i have become the root user. thank you [14:56] SSahid95, https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard [14:56] next [14:56] Here are a few links to study from mbuf: [14:57] aniruddhab: try sudo password root [14:57] http://shakthimaan.com/downloads/glv/presentations/building-careers-with-floss.pdf [14:57] http://www.shakthimaan.com/downloads/glv/presentations/careers.with.gnu.linux.pdf [14:57] https://www.youtube.com/watch?v=-A3Wsb7GaFc&feature=youtu.be&t=194 [14:57] aniruddhab: try sudo passwd root [14:57] I would also ask you to read https://lym.readthedocs.io/en/latest/users.html before tomorrow. [14:57] Roll call [14:57] Pallav Bhalla [14:57] Jagannathan Tiruvallur Eachambadi [14:57] Abhishek Kumar [14:57] Kumar Vipin Yadav [14:57] darshna das [14:57] swiftkiller [14:58] Sourabh Deshmukh [14:58] Ritik Raushan [14:58] Jason Braganza ----END CLASS----