 Hello everyone, welcome to Fawcetia's live chat on advice for potential students for getting into this year's Google Summer of Code and also more information about Fawcetia as an organization and our role for the Google Summer of Code and how US students could participate with us in this year's Google Summer of Code. I'm Sudeesh, I've been a contributor and a two-time Google Summer of Code student with Fawcetia working majorly on the low-collect project and I've slowly transitioned from being a student to becoming a mentor. And in this live stream, I would like to just give a bunch of advice to potential students with respect to how they should plan their Summer of Code applications and what all are we really looking for as an organization in a student who wants to be a Google Summer of Code student for us. Before we get started, are there any open questions with which we could get started or I would be more than happy to go ahead with the pre-planned agenda that I had in mind? So just a brief introduction to Fawcetia. So Fawcetia is free and open source software in Asia and we are the largest open source organization and we're an umbrella organization in Asia which consists of a lot of other open source projects being built, which are either very specific to Asia or have a lot of impact as an open source project within the region around Asia, right? And just a second, trying to get some, well, we're just trying to get some stuff sorted out. I would be waiting for my org admin, Mario, to be joining us, yeah? But in the meanwhile, we could get started on some of the stuff sorted out, meaning for my... Sorry, there's a light echo. Perfect, Mario, would you want to get started with what is Fawcetia and then I could go ahead and take the rest of the live streaming session? Hi, Sudeesh. So I think I'm in. Thanks for setting it up. So I already saw this, you will start. So thanks everyone for joining the hangout here on YouTube. Can you see already how many people are joining actually? It looks like there are 26 of them that I can see at the bottom. Okay. So thanks everyone for hooking up with us here. And Sudeesh, I just let you go on. It's a great schedule here for the next maybe an hour and please keep it up. And I think I just jump in from time to time and give some feedback. Sounds perfect. So yes, let me get started. So Fawcetia as an organization, we are a big umbrella organization with a lot of sub projects. So one of the projects being low-clack and other being Suci, then we have open event. We have a lot of other Android related projects and so on, which are all under this umbrella. And every year we hold a conference in Singapore. This year it's happening within one week in the during March 22nd to 26th. So please do make it there in case you can. And as an umbrella organization, one of the roles that Fawcetia plays is it tries to get different new organization which try to, in a way, which try to build new open source software which can be used by a lot of people. It could be used potentially by industries. It could be used by other regular open source enthusiasts or it could be even used in the field of science and things like that. So there are a lot of exciting projects that go around in Fawcetia and Fawcetia as an umbrella organization tries to administer and maintain all of these projects in some way, maintain the community around these projects. And that's what the major role really is. So as we get started, most of the repositories for the software that falls under the Fawcetia umbrella is either on the Fawcetia GitHub page, the GitHub organization URL, that's github.com slash Fawcetia or it's at the sub-organizational URL which is, say, for example, for Lokalak and we have Xpice and so on, which is all on different URLs. But all of these are accessible directly from either the community chat, the chat rooms or you can get them from the mailing list or you can also get them directly from the website. So the first step for a student would essentially be to go and find the projects and most projects are all hosted in one single place and there's a great community that lives on GitHub and on Slack and other ways like on mailing list, Google groups, where there's a lot of active community who will be more than happy to reply to your messages and take a look at your ideas and so on. So a first step for a student would essentially be to go to the GitHub repository and query it based on the programming language of their choice. So you can do an advanced search in GitHub which says show me all the repositories which are built in Python, for example. Similarly, maybe repositories which use JavaScript based on the programming language that you're very familiar with or that you would like to contribute to. So that would be your first step. And once you find the list of projects, the next step that you actually have to take is view the documentation of the project and try to understand what the project is all about and where its current development stage really is. There are some projects which are stable and which are running for quite a while, more than a year or two years for now. But there are some projects which are very, very new and there's a lot of work that needs to go into that project and as a community, your ideas and the way you would want to interact with the developers and pitch in your ideas saying that, hey, I wish this feature existed or I wish this feature was removed or was replaced in some other way would be a really interesting step. So we're always open to your feedback, we're open to your contributing core, but the first step for a student that we see at this point is to go and understand the documentation for the project that you're interested in and that said that it also means that you need to go and look at the existing projects that Falsesha does, right? The second thing that we recommend all students to do is go to falsesha.org slash apply.html and try and just register there as a student so that we can keep track and we can follow up in case we haven't received your application or in case we think there is something wrong with your application or some parts of it which were not clear and so on and that would be very helpful for us as mentors to reach out to you. So there are a lot of prospective students and that's the main reason why we're having this session here and over a bunch of, over the last three, four years what we've really noticed is there are some general requirements that we would want students to take before they put in their application or during the process of putting in their application and until the results are actually out. The first thing that we would want you to do is actually go ahead and introduce yourself in a terse manner or in a detailed manner, whatever it is we are very happy to read through on the chat. So we have a community chat on GitHub and so we have a community chat on GitHub and you can always go to the community chat and introduce about yourself, introduce where you're from, what your skill set is and why you want to contribute further to the project and what kind of projects you want to contribute to and so on. In case there are some parts of the projects that you don't understand, in that case say for example you want to understand what the future of the open event project is or you want to understand what the future of Susie the project is or you want to understand the future of local, right? It then makes a lot of sense to put your question there trying to say, hey I'm trying to understand what the future of this project is and we have community members, we have maintainers, we have the admins who would be more than happy to explain it to you. Once you find out which project you are really interested in the next step would be for you to actually download that code, so we use Git for all our version control. So use Git, clone the particular repository and build that repository and set it up locally on your DevSystems. So that gives us the confidence that yes you can take an existing application which could be fairly big or fairly small and successfully get it to run all by yourself and that for us is a major motivational factor, right? For looking into a student and saying that hey he can do something on his own. Then you need to take this a step further, okay? And once you have the local project up and running the best way for you to identify other projects is identify what's happening in the project is to actually use the project. Say you build look like or you build Suzy or you build open event, actually use open event and say that hey here is what open event does it may be very similar to event bright or it could be similar to some other event organizing or even booking tool. But these are some new interesting features that I think should be added to it. Or hey here are a bunch of bugs. Let me go and fix those bugs, right? And that gives us a sense of confidence that once you have your local Dev environment you have used the software for a pretty long time and or you understood what the software really does. Really none of our software have a huge learning curve. You would be definitely able to understand what different pieces of the software do and it should be fairly easy to get started and contribute. So even our GitHub repositories have issue trackers. So if you go to an issue tracker all the issues are classified by a specific tag on them. Say for example, you have easy, beginner, medium hard and these kind of classifier tags on them. You could always open one of these tags. Like over here, Mario is showing you. So there are a bunch of things which are enhancements. Some of them are priority urgent. Some of them were open for Hacktoberfest which happens every October powered by digital ocean. And you could pick some of these open bugs, open issues and actually send in a patch to them. A lot of these especially the Hacktoberfest tags or the easy tags for example or the beginner tags for example are very good starting points for new contributors to get on board and actually help us and at the same time get themselves noticed. Added to these, it also serves a huge purpose of understanding the code base. So once you start contributing with a bunch of beginner bugs you can then slowly level it up and go ahead to bugs which require a little bit more of effort and then some things which require even more effort and so on. As you do this, so there's a bunch of things that we expect contributors to actually put in. For us, we expect them to send in and show that they can develop, they can understand large code bases and actually send in a contribution to one of the GitHub repositories like either PausAsia or Loflac or Suzy or other projects under PausAsia, right? And once you have this it also gets the attention of the maintainers when you raise a pull request it goes through a bunch of reviews and after your reviews your code gets merged. And that for us is a good indicator that you have understood the code base, you have used it and there could be something that you can contribute and then it falls down to your idea of what exactly do you want to really contribute to the project and is there something that you think is missing currently in the project and how do we build that part that is missing? So once you have all of these pieces in place we could then get started with the student proposal and what we're really looking for in your proposal. But that said, these were a bunch of do's, there are a bunch of don'ts for everyone to actually follow. A lot of times just because there are a lot of members available on chat, a lot of students do spam the chat groups by saying why is this not working with some very basic errors that sometimes may show up in the starting phase. We do understand that this is an error and you're looking for an answer. But what we are really looking for from you is maybe you could just go to Stack Overflow and search why this error happens. And once you have an idea of why is that specific error is happening it could either be a bug fix that you could provide or it could be something about your local development environment which is wrong. So there are a bunch of very regular problems that students keep coming up with and we suggest that it's not a great time to, it's not a great idea to go and waste someone's time on chat whether be it a contributor be it a maintainer or be it an admin of the project. And we would like most, we would like all of you to actually go ahead and search for it yourself, do a lot of reading, do a lot of self work and understand what is really happening in the project and why those errors are happening and fix them yourself, right? That to us shows that you do put in some significant amount of effort to understand it on your own and that's almost like a green light for us in choosing our students, right? That said, it's a very good idea to understand what the problem is to investigate what the problem is and then get involved rather than as I said spamming the community members for whatever is happening. That said, the community chat is a very good friend so please utilize it very, very carefully and very, you know, not just carefully but please utilize it so that there is maximum productivity, right? People are across the world contributing to false Asia. So there are people in different time zones, it's probably not a good idea to tag a specific person for an answer unless of course there is nobody else who knows the answer to that question or you've been having a significant amount of discussion and contribution with them. The second step would be just post an open question and someone from the community member would be able to get to you and answer your question in most cases, right? And clearly when you come up with a problem and when you say this is a problem, clearly indicate what you have tried, why it did not work and where you're actually stuck, right? And once you have all of this information if you phrase it in a very nice manner, if you phrase it in a good way and put forward the question to the community, people would be more than happy to answer your question in the community. So please be as detailed as possible when you're actually asking a question. That said, I think that took up quite some time. Let's jump in to what the student proposals really need. But before that, in case there are a bunch of questions, we'll be more than happy to answer them. Yes. Yes. Yes. Your voice is breaking up. Okay. So maybe you just ask me if I have a question in the chat. I can't really see the chat from here, but let me just try, let me look at it. So I submitted the proposal for a particular project and if I get selected, are there any chances that I will be assigned some other project for GSOC? Okay. That's an interesting question. A particular question. I think I missed the question. So is your question, if I get accepted towards a specific project, is there a chance, is there a possibility of me moving to some other project? Or, okay. So in some cases, yes, this has happened before you do have a proposal for a specific project, but you can be moved a little here and there in between the projects. But in most cases, we've not drastically ever moved students from students say who applied to low-clutch to a project like Open Event. Those kind of things have not happened. Within low-clutch, we realize that to build a particular proposal, right? There are a bunch of pieces which still need to be built before your proposal can actually be taken forward. In situations like that, we tend to move the projects a little here and there or join two students or two students to work on a specific area of the project. And that, and so once the minimal pieces which help you build your project further are complete, most students move back to their original projects and build our property. So I hope that answers your question. The second question I see is from Rupa, which says, should one apply for a project if you see or see most half the stack of technology or language used in that project? That's a very good idea. If you have already say, for example, used Python Flask, you have used WSGI servers, you've used MySQL or Postgres or Elasticsearch or one of these databases. And you see yourself wanting to do that longer. You are very happy that you want to work on those technologies. It makes a lot of sense to continue and actually apply to that project because you already know a lot of pieces that are needed to build that project. Thank you. So this is- Yep. Let me button you. Please switch back the video to you when you're talking. But continue and then I would like to add something to the first question, I think, but yeah, just continue. Okay, so I'm just presenting it to myself, okay. So going back to Rupa's question, if you know half, if you know the technology stack and if you're really passionate about continuing to work on that technology stack, it does make a lot of sense for you to apply as a student on to that project and continue to build that project and take that further. So that's very helpful, right? I hope that answered your question. Ishan Verma is GSOC open to all. Ishan GSOC is open to students who are currently in their undergraduate or graduate institutions who are about the age of 18. So you could be an undergraduate student pursuing a bachelor's degree or a graduate student pursuing a master's or a PhD degree. You would be more than welcome to apply for a Google summer course. I think that said, there are some countries which are not allowed on the Google summer course, but most of those details are already available on the main website for Google summer course. Okay, so I would like to butt in here into this first question that you discussed also. Maybe let's have like answers from both of us to those questions. Yeah. So should one apply for a project if she knows half the stack of technology language using the project? That's actually a normal thing. So when you start to work in a company later, often companies have like microservices or some projects where they just need somebody to fix an issue. And so it's normal that you start on a project and something is new to you. Also, there are always new programming languages and so on keeping up. So that's very normal. But as a good developer, you get up to speed. And during GSOC, of course, you have some time to learn about it and so on. But you have, for example, already proven that you're able to do this and we can see your potential. Like let's say you do a JavaScript project. We expect that you would probably be able to also work with another framework. So that is something that we would think. And then there was another question which was if you get assigned, like is it possible that you get assigned to another project? So Sudej, I would like to add something here because it is often the case that we don't know exactly how many slots we will get. So actually, so we have some experience from previous years but actually students apply. We talk with students as mentors and admins. But in the end, we don't know how many student slots we will get in the end from Google. So we have our list of favorites, of course, but other people's might be just second favorites. So, and of course, we want to get in everyone. But if we get sufficient slots from students for every student that we like, there's often an overlap in projects, right? And also like sometimes technologies and issues and bugs and things are shifting. So for example, we had this case last year that we needed more help in like a backend or in like new components of Susie AI. So when we said there will be a shift in architecture and if we change the architecture, not everyone can do front end. We also need like some backend or some Android and so on. So we always hope that students are flexible here. And but of course, they also have the chance to say, okay, they can't do it. We usually ask them before we accept them. So if we ask a student before we accept them, would you be willing as a good student to work in another project? Well, then the student accepts and then we're all happy, I guess. So please don't complain like afterwards to Google, oh yeah, I applied for another project and then I talked with the mentors and the mentors said that we don't have enough slots for this project. Do you want to do another project? And then we're all happy. And suddenly like then you complain to the admins or to somebody from the program. That wouldn't be fair. Once you accept to switch a project or something and we're all set, that's usually the thing. So this is one thing before the application period. Would you agree on that? Yeah, so let me just add to that. In most cases, yes, as Mario had mentioned, we do ask the student in advance, whether they are interested to move to a different project. And the only reason why we do that is if we find them technically fit for the other project, right? Like you understand the technology stack or you know a specific area or it overlaps with something that you want to do down the line and things like that. So we try, that's the only reason why we sometimes do ask if we think you're a really good student and then we get to just move you around in some of them. But definitely, as Mario mentioned, it all happens with your consent and only after you agree to it. And the reason why we ask you is because we think you are technically fit to take that project also ahead. But it depends completely on your interest after that. Yeah, and then I would like to switch because I think this is a very important question because First Asia has been a rather large organization in GSOC. And can you hear me? Yeah? Yeah. Okay. So First Asia has been a rather large organization. So we actually have a lot of questions of these. It's not just like one student. Could be different students. So the question we just talked about was before students get accepted. So what happens after students get accepted? So let's say one student makes a proposal. I want to implement a certain feature and yeah, maybe like things change. Yeah? So let's say like a change that could happen, for example, that we have the architecture decision in like let's say a project to have our own database, have our own authentication system and so on and later we find out it doesn't scale well because in the end we're all open source projects. So let's say from our own authentication system maybe we switch to use Firebase. So and then the student will say, hey, but my proposal was exactly about something else. So why do you ask me now to do something else? Well, this is the beauty of open source and I swear you it will happen in any project that you will do in a commercial company that things change. And yeah, so we hope that you like help us here and work with us and work with the community and the developers to make these changes happen because it's not like we planned things for a year and then we have to do this even if we realized after two months it doesn't make sense in the same way. So we want to work together with you here. And I think yeah, that's fair and we hope that you're not like just strictly say, okay, that's written like how it is in the book and then we have to stick to it or something like that because if we realize something's don't make sense anymore we have to change them and have to work together to do that. Absolutely, completely. So let's move to the next question which is Geerija Manoj who asked when will we get to know about the project mentors? So you have multiple options here. You can give in a proposal to the community and a mentor who is interested in that particular project or who has been working on that project gets automatically assigned to it. But in case you have a specific mentor in mind you can indicate your preference of your specific mentor telling this is the mentor whom I want to look at my project proposal and that mentor would definitely take a look at it and get back to you. That said, it's not one mentor's job to get to accept you or not accept you. As an open source community we follow the selection process also as a community. We ask different mentors or all possible mentors in the best case to look at every possible proposal and rate those proposals. And then we choose the student based on those ratings and then we have preferences from the mentors side and we have preferences from the students side and then we try our best to match all of this but in some cases you might get a second choice of your mentor or if you don't want a second choice of your mentor, if you want only one choice you will be assigned someone for that. So that's how you generally get to know about your project mentors but it's a good idea to always know your project mentor beforehand or to have had a conversation with them either on chat or on email or as a face-to-face conversation or you must be dealing with a Google handle or Skype or something of that sort with the mentor. Right? Yeah. I would like to do that because I see that question goes also into the direction like what role does your mentors have? And I think you also have a lot of experience with that Swedish like a positive but also like some kind of challenging experiences as a mentor because like as a mentor is not a teacher it's not somebody who tells you how to solve an issue or do something. I see the role of a mentor more like somebody who could maybe point you to a good resource if you say, oh, I'm really stuck here or we have that for example we have this one Linux project that we could like put people in touch with somebody at Debian who already solved this problem and I know this guy because I've met him at a conference and he told like, look, talk to me, right? So a mentor is not really a teacher it's not somebody who does you. Like Google once said to me the students are the one coding, yeah? I mean, we are all contributing anyways but it's a Google Summer of Code program and you learn a lot but it's not like a teaching program where the mentors teach you something. So that is expected. So now that this role is clear it's also like the case then that you can understand you can talk to anyone in the projects to help you solve issues. It's not like that you have to report to the mentor something but the responsibility is doing the programs that we defined in our guidelines is like you talk with the community you engage with the community. We want you, the Google Summer of Code students to be future leaders in this project or any of our projects or in the open source community in general. So we want you to learn how to solve things yourself how to work with the community and the mentor is a bit the last resort also. He's the one like really asks also questions about the Google Summer of Code program and who brings everything together. So don't think too big of the role of mentors they're basically like just there to support you but you work in the first case with the community, with other developers with people on the channel and this is the thing that I really would like you to understand. Absolutely. That's really, really good advice Mario and I think it also sets the expectations of what the mentor is and the mentor's role for the student very realistically for the student. So just reiterating on that on whatever Mario said the mentor is here to just guide you the mentor will not write code for you. The mentor will be able to tell you in case you're stuck hey here is where you need to go and read more about it in case you're completely stuck and in case you have no idea what is happening the mentor can write maybe a small snippet of code and tell you here is how this runs that is especially when you're completely blocked but mentors by themselves have added to the mentoring responsibilities of multiple students they also have their own work to do and they're not full-time students writing large code basis like what you would be doing if you're a part of the false Asia students with the Google Summer of Code. So we recommend that the student that's the reason why as I said before we recommend that the students understand investigate and build whatever problems they have and clearly articulate that here is a problem that I faced this is what all I have tried to solve my problem and I have not been successful what should I do next? These are the kind of questions mentors will be really able to help if you come to a mentor and say how do I do this? That's something a mentor can't really help you with. Right? That said, let's go to the next question Mohit I think says that if I do not have contribution to a particular project before submitting a proposal what are the chances that I would be assigned that project? This is indicated clearly in your proposal, right? When you, we don't expect you to make a proposal to a project to which you have not contributed to that's definitely a red light for us because we've never seen your code going in we don't know if you understand the project if you use it and things like that. So a good thing, an advice from our side would actually be show us your contribution into a specific project and apply to that very project. The next question from Abhishek is can one become a mentor or a maintainer even though he or she did not get selected in GISA but has been a contributor for quite some time and is passionate about the project? This is a slightly mixed answer in case you're a student we don't know why you want to become a mentor because you do have an opportunity to be a student from the Google somewhere. But in case you do not want to be a student and you have fixed yourself on being a mentor your contribution to the project as well as the amount of time that you can commit with a specific project the amount of time that you can commit to guiding or mentoring the students does play a huge role in this. So of course, yes, that said you can definitely become a mentor or a maintainer for a project if you have sufficient contribution and if you do not want to and if you're not selected in GISA that's totally fine. We are an open community at the end of the day we are not just run by GISA as a project so there are contributors that come in all the time there are contributors from industries who contribute there are contributors from universities who do it and sometimes they, it may or may not be students but of course a lot of people who become maintainers over time they have to do it. That said, Mohit's next question is for selection does the contributor matter the most or the submitted proposal? My answer would be both, right? As a mentor when I am screening, when I personally so I can only speak for myself in this case and I would maybe ask Mario to speak about this. For me, if I'm looking at potential students their contribution as well as their proposal both matter a lot but of course that said just having a lot of contribution but not a very good proposal is not a good idea and that's on the reverse case of it where you don't have a lot of contribution but you have a very big idea that you want to propose when that wouldn't work because we don't really know what you can and cannot build so it takes some time writing a proposal is a very painful task and it's a very time consuming task so what we suggest students to do is actually go ahead talk to your mentors describe your ideas to them and clearly draft out your ideas that it helps you in two ways one, it helps the mentor understand the part process that is in your mind and two, it also helps you understand what are the subparts that you need to actually build your project and make it a reality during the Google Summer of Code because it's a fixed time duration and there is only some amount of things that you can do realistically so a clear understanding of your submitted proposal as well as your prior contribution and understanding of your code basis and lay a big role for us in identifying which students to select and which students not to select right, Mario, would you want to say something about this? Yes, because like the question here is also what is a good proposal, yeah? And how to define it so for me a good proposal is a proposal that brings the project forward, yeah? So having a look like really through the issues that's a very good idea, yeah? There are a lot of open issues and many projects and take a look, install the project, check out there are things that aren't working, yeah? Like check out competitors like if I think of open event, there are competitors like Event Nuke, Eventbrite and so on, the commercial one, the proprietary ones because commercial, you can also use open event commercially if you like. So check this out and that's what would be a question to you, Sudesh what do we define as a good proposal? For me, it doesn't have to be super long but it has to be really like related to the project so you don't have to come up with something completely new or something we want to get our projects to be used by many people so I think we don't, like there are also projects something, okay, you can show, make something work but what I really want to see is not just that it works on your computer, on your setup I want things to see that work for many people, yeah? So how would you define a good proposal? I think that's very important. Absolutely, so that said, if we jump to what a good proposal really is the, a good proposal starts with a good problem statement and it starts with the way and why and how you want to solve that problem statement, right? So the best way we want the best way we would like student proposals is actually to start with a problem statement on an existing project and say that hey, here is a problem in your existing project which needs significant amount of work and here is the reason why this needs to be solved and then go into introducing yourself introducing your, using the other relevant information for us about you, that is what is your skill set what have your contributions been like and so on and then the most crucial part of this is essentially to indicate what you want to build and how you want to build it. So that said, let me detail that out a little more by what you want to build, if I take an example say someone say we want to build an extension to a low-clack, which can now take some other micro services, which can take like say some other websites like YouTube or Instagram or Pinterest, for example, right? Some other social networks and to scrape that social network what needs to be changed architecturally so that is what you want to build, clearly indicate what is the end result of what you want to build and break your work down into what you want to do before GSOC, that is pre-GSOC and what you want to do during the GSOC, right? So that gives us an understanding of how you want to understand the problem statement and what you're actually trying to do with respect to understanding the problem statement. That said, another very important thing that we recommend all students do is to include a very detailed timeline of tasks that they want to accomplish. These tasks can be broad, like they can be something like build the data ingestion layer into Elasticsearch. You could say this is one task. The second task is build the distributed consensus layer. Third part could be say build the visualization layers and so on. Or the fourth part can be make multiple requests, have a seed for web crawling and build the entire crawling service. So these are all tasks. We want you to list the tasks and try to structure them in such a fashion that we know how you will jump from one task to another. And it would be good. So we don't want micro planning on the task. That is, this task will take 16 hours. This task will take 12 hours. We don't want things like that. We want you to just give a brief detail of what the tasks are and how you plan to do the tasks over the 12 weeks. So you can say week one to two, I plan to do something like this. Week two to three, I plan to do something like this. Or week three to five, I plan to do something like this. You know, just having a week level structure makes it really helpful for us to understand what our thought process is and how much time are you budgeting to yourself to build something. So there are two things that we as mentors understand from this. One, we understand your familiarity with respect to a specific project. And two, we understand how fluent and how good your programming skill in a specific programming language is. Of course, that said, it does not mean that you need to be an expert in say Java to write local. That does not mean you need to be an expert in Python to write open event. As a part of the student experience, you learn a lot. And that learning essentially needs to be a part of your planning, a part of your work schedule. So you write, you learn, you write more code, you get a review on your code and you learn more about that code as you write, right? And this feedback loop continues and makes you a better developer over and over time. And now that we know what the detailed timelines are, the next thing would be to actually describe what your plan after the GSUB period is. We want most students to actually turn into mentors and we would be really happy if students turn into mentors or maintainers, right? So please do describe what your plan is after GSUB. And the most crucial part, these are all the dos. The most crucial part is we don't want students during the GSUB period to just take one week off, right? Because GSUB is a full time program where you have to give approximately 35 to 40 hours of work a week. That is exactly like working in an office, right? So you should make it very clear beforehand to your mentors that these weeks, you may or may not be able to work because sometimes we have an overlap of the last two weeks or some week in the middle based on which country we choose our student from. They either have their exams or they have some travels, some travel plans and so on. So of course, making a travel plan is not prohibited. We don't tell you don't go anywhere second code. We don't ask you to do that. But of course, just let us know beforehand if in case you plan to take some days off as leave, right? Where you will not be able to work as much as you are expected to work. Say you're able to work for one hour a day or two hours a day on that or you're not able to work at all. Do let us know that upfront, right? Please let us know that and tell us how you're going to compensate for that in your plan, right? When you actually write this out. So that helps us understand how you're planning this, what you're doing and when we can reach out to you when we can't reach out to you. And the last part is also do indicate other organizations that you're applying to that you're writing a proposal for. Because in case there are some conflicts as organizations we tend to talk to other organizations and other mentors from other organizations and resolve this conflict, right? So that's about student proposals. Please do let us know in case there are other questions that you have. Mario, please go ahead. Yeah, so about the proposal, I would like to ask you also like what do you think like short versus long proposals? Because I've seen both, yeah? And like I don't want to make it sound too difficult because there are lots of details to proposals but like we also understand if there are people for example whose native language is not English. Yeah, so that's where for example their previous contributions come in and they become like very important as a second view like when we can see for example, this person has contributed and there has been like substantial progress through this contribution, of course. Like so we take everything into account and also they are deadlines. So I want to say like the deadlines are usually set by Google and we would wish I think like among us that they would be more flexible. Yeah, I mean people have issues and so on but like Google is very clear on that. And so if you aren't available during the program and even though you've done good work for example in the first third but that means you will have to drop out and they're very clear on that. And so also with the proposals I think like you could also like add links to your proposals for example to issues you have done or issues you are working on and during the evaluation process we will also continue to look at that. So it's not for us like there's a proposal and it never changes. Like we understand the process we understand the challenges in different countries and we really want to help you and want to work together with you. So let's try to make it happen but the question is like short versus long proposals. I'm in favor of very short proposals and rather more contributions sometimes but for some projects we really want to know more about the architecture. So it's maybe also a question like depending on what is the project what's your idea about this? Yeah, I completely agree. Personally I like proposals which are very detailed. So which have a clear focus telling this is what I want to do this is how I want to do it but that said it may or may not work out the way we plan to do it. So it might need some changes here and there. So having a detailed proposal the only reason why I as a mentor prefer it is because it's easy to tell the other person that maybe their thought process is a little different here. Maybe if they change this thought process it's going to work better. And that's the reason why I generally tend to prefer a longer one but that said there are of course students whom we selected last year who have small proposals. That's almost like a page and a half or two rather than a five page proposal. So these proposals as you rightly mentioned have a lot of significant contribution that they have made to a specific project and also maybe their project can be articulated very easily in just that one page or just by writing words but there are other projects which are majorly UI-driven projects, front end projects. For front end projects it does not make a lot of sense to have a small proposal which says this is what I want to do but it rather makes a lot more sense to say hey here is a bunch of mock-ups of how I want to actually build this. This is how I want the end applications to look like. This is what I want the experience to look like. This is how people will interact with different buttons or forms or things on the screen. So yes, a proposal length has to be very variable. There are some proposals if you're able to efficiently convey whatever you want to convey within say like two pages, sure, please go ahead do that. If it takes you five pages to convey that and be very detailed in conveying that please go ahead and do that. One thing we can definitely assure you is the mentors definitely read each and every single one of your proposals. Before making a decision. So it's going to be a fair one when we make it and it's going to be community data, right? So let me jump to a few more questions that I think I saw here. Sridhar asks, currently we see that many students are giving their proposals for projects in this case, which students gets more preference and will a long-term contributor get more preference? That's a good question. So the preference for a student is indicated by a bunch of words given by mentors and also by which includes both your contribution as well as the way you have written your proposal. You could have had a brilliant contribution this way. You could have contributed say 100 full requests into a specific project. But then in the proposal you say, I want to contribute to some other organization which is the FOSS Asia and then you send it to us. We don't really know what to do with it, right? So there are these issues which have happened before. People have written wrong organizational names, wrong project names, people have uploaded the wrong proposal to FOSS Asia, things like that. So we suggest that please don't do something of that sort. That's the only reason when a long-term contributor might get rejected. But in most cases, contributors beat long-term or short-term if they have indicated sufficient amount of contribution to the project where we think that this person will fit the project, we'll have a say. And the end goal of whether the student is actually selected or not will be collectively decided by different mentors and the rating given by different mentors for that particular student, right? I think Vivek's question, how many proposals are allowed to submit has been answered by Prashant. So three proposals are allowed this year from Google. And going ahead, Pratyush asks a question which says, what are the things that one should keep in mind while preparing the project timeline? So that's a very interesting question. Some of the things that you need to keep in mind while preparing the project timeline is also, so let us assume that you have 30 to 40 hours of effort that you're going to give in every week, right? And when you say that I have given 30 to 40 hours of effort every week, you know how much time it's going to take for you to build some small component of it because you've already been working on it. So this is where your prior contributions come in handy. If you contribute further, if you contribute previously before applying, before sending in your proposal, you understand that you understand how long it has taken you to fix one part of whatever you have done. So you can imagine your entire proposal is going to be a much bigger thing like that. So just multiply the time and try to see it. At the same time, also ensure that you have enough time for debugging and as developers, there are issues that we face sometimes which could be like a small semicolon that you missed in some other line and your compiler throws an error in some other file. These kind of issues do happen up and they take days. Sometimes they take one day or two days to get over one very silly problem where you think everything is working perfectly but there is something which is just breaking your code. So please do account for these kinds of inconsistencies that could happen, but overall do account it based on your effort and your understanding of the programming languages and how fluent or experienced you are with respect to building something. So if a project timeline, something that you might pick, you might say it will take me 15 hours to do something like this, might be very different for somebody else. Somebody else can say it might take me 25 hours to do this. While someone can say, oh no, maybe it will just take me five hours to do something like this. It is totally fine to be over budgeted but please don't be under budgeted. So please don't say it's going to take five hours when it's actually going to end up taking 20. But you can say it's going to take 15 hours, you can say maybe it will take 20 hours. That's totally fine, right? I hope that answers your question. Mario wants to say something. Sure, Mario, please go ahead. I think that also raises a very different question, what you define as a project, yeah? We've seen a lot of definitions in the past where somebody says, I want to do this feature. And then I say, okay, well, it's a very nice feature but maybe in the roadmap, it would come maybe in one or two years because we actually have so many things still to solve before, like getting the basics right, right? I mean, and so this is the question, like how do we define these projects? We also like have a lot of projects that have huge amount of features but somewhere it's like not working. Like for example, lock-in functionality is not working or something, yeah, some basic thing. So how would we define projects in a sense that help our applications to get to the next level, to make them more usable? How, like these projects, I think they're very important for us because as you mentioned, we have a lot of projects there for two years. I think of OpenEvent. We are using it for the First Asia Summit and the Gnome Foundation, Wikimedia, everyone's talking to us, they want to use it but they say, look, the export of speakers is not perfect or this and that, right? So there are lots of small things. So how could we define these kind of projects and how would you advise students here? Right, so that's a very good question, especially for projects which are slightly older, right? Like one year or two years down the line. There are, I would recommend that the students actually go to the issue tracker that is on GitHub for that specific project. There are some issues which are tagged as epics or which are tagged as very high effort. So that essentially, that could potentially be one project because, or maybe a collection of two to three of these hard problems could become one project for the students. So I would strongly recommend, please go through the issue tracker, please see what all issues exist that you can fix that are tagged as extremely hard that require a significant amount of effort to be fixed and then take those up as your projects rather than proposing something completely brand new which may or may not directly fit into the schedule of the project roadmap. And this is the very reason why having a conversation beforehand with a mentor by sending them in a draft of your proposal would make a lot of sense because the mentors know exactly what needs to be done and what cannot be done and maybe they can suggest, they can make a suggestion to the student telling that here are a bunch of things that I think if you change, your proposal becomes nicer or maybe your proposal is too much into the future. This could be a proposal next year but to achieve what you're doing, what you're trying to propose, there are a bunch of these things that need to be fixed. Are you interested in trying to fix these up and take this up as this year's project? So I think that would be my suggestion. So I would like to add something here which is like we also have some of these older projects and they also have more users and then more developers and more people who could also assist you and help you over the summer. Whereas like a new project, some students even ask me, oh, can I start something completely new? Well, it's awesome to start something completely new but like if it would fit into GSOC, it is not sure. We had some projects that started completely new but somehow sometimes for example, an extension of open event where we said, okay, we need a batch here, we need like a way to create batches or something like that. So it's somehow separate application but related. So I would probably say that the existing apps that we have and which are older and have like many different components, probably also have like more students that they can take in. And we have seen for example, like Google, we talked to Google over the last few years and they've seen like more and more projects coming out of our community. And we said, oh, it's quite challenging also to manage them sometimes. And they advised us actually to check if some of these projects could become independent orgs. So we have a pocket science lab which is like under the first Asia community but it's an organization this year in Google Summer of Code for example, right? And I think we will be seeing more of this. So if you want to get in, I think like older projects might have a higher chance, always depends. We have a lot of different projects but generally I think it's a good rule of thumb. And so check out Susie, check out open event, check out these applications that exist already for some time. Rather than saying like for example, where FIMP me is an older app but was like recreated completely but FIMP me has I think around 100 users on the Google App Store. So 100 users and we can't put on like 10 developers on this, right? I mean, like you have to see everything in relation. Would that be something you agree with, Sudeesh? Absolutely, absolutely. I agree with that. And that's the reason why there is a lot of work that will also be there in larger projects. As projects become larger, we have problems with respect to scaling, we have problems with respect to easily maintaining the databases or easily maintaining these DevOps for our things. And there is a lot of effort that goes into streamlining all of this from a developer specific perspective to a production perspective. And that is where your contribution to different projects will play a major role. I think Aniket had a question. I hope your question is answered with Mario's response. Another question that Damini had asked is would having a basic POC help? Yes, in some cases, especially if it is UI, mostly front end, let's say you want to build the front end interfaces, having a proof of concept for that would really help. Or in other cases, say for example, you want to implement a new algorithm to do peer-to-peer transfer, say in suzi.ai or in low plaque or so on. It may be something very, very theoretical. It may be something that you took out of a research paper. For example, a computer science research paper. We don't really know if that is possible or not. Of course, research says it is possible, but there are a lot of things which are very theoretical in nature. And if the mentor is not very convinced about the fact that it could be possible or not, the mentor may ask for a proof of concept. But it's also a good idea to start working on a proof of concept beforehand. Especially if you think the proof of concept is something that is absolutely necessary to convince that your project is worth it. Mario, what do you say? I think proof of concept, I don't know it really depends on which project and so on. I think it's not necessary. I mean, it depends really what, I don't know what kind of proof of concept for what thing, but like, Jenny, I think like what we've been seeing a lot is that we followed also existing apps when we developed something. So let's say to get us really started with open event, we looked a lot like at existing companies and providers. So in that way, we had a proof of concept that they showed us this exists. However, we also had our own ideas that we wanted to implement. For example, we didn't just need a ticketing solution, we actually wanted a solution where people can apply and where we can drag and drop our speakers and our sessions for our event into a specific calendar. And so that was very difficult. We didn't have any solution like that. And there was like, I think there was a $50,000 solution that maybe the Linux foundation still uses. So if we can make open event, for example, more smoothly, like functioning for everyone, right? I mean, I'm sure it will be like a very big success in with these big events. And I think that's what we want to achieve next. Another thing, for example, I think it hasn't been posted to the issue tracker. It's batch shape project. I would love to see it more becoming like conference batch, more features and more easily like to print off batches for different sizes, things like that. And yeah, a lot of time can go into these kind of small issues sometimes, right? So, yeah. Absolutely, absolutely. I agree with that. I hope that has answered some other questions, some other really good questions in the chat here. Rukal asks a question which says, is it a good practice to send similar work done for another org in a given project of some other org? Do you mean including some other organizations project as a sub-project in this, like someone else has already done parts of the code and you just want to include it? In some cases, it depends now on the licensing of that particular project. If that project is, say, an MIT licensed project, yes, I mean, any contributor could definitely take that and if they feel that it's important enough, they can plug it into this. So, yes, my answer would be it completely depends on the licensing, but that would be more on a call with your mentor or as when you put your question out to a community for a specific use case, like you can say, I want to include this library into this because I think that helps and this is a pre-built software. I think that's a call that the community has to take. There are a lot of other things that come into play like the license offer and so on. So, I'm sorry, I don't really have a very good answer to that question. Mario, do you have an answer to that question? I think you answered it. I mean, similar work, it can be understood in different ways, this question, if I understand as a reference, maybe, why not? Yeah, I mean, I want to see if you're posting a reference for us or even use code from another organization or from another project, well, that's what open source is about, right? So, just be clear to reference it correctly and check all the licenses and so on. So, it really depends what you mean with that question, but I think it's, yeah, we answered that. So, yeah, and more questions coming in, Sudeesh. Right, so I think the next question is from Kush, who says, I wish to contribute the development of Web Server on ESP8266 and for creating firmware on wireless connectivity. Kush, I think that sounds like a really interesting project and I'm assuming this is for the Pocket Science Lab because of the hardware requirements of ESP8266. Maybe it's a very good idea to actually reach out to the maintainers of Pocket Science Lab or go on to the chat for Pocket Science Lab and actually fill this question out. Also, added to this, maybe you should also tell how you want to contribute. Is there a specific part of the firmware that you want to contribute to or how do you want to enhance it than what it is currently today? Right, I think, I hope that's also a question. Osama asks a question telling, what do you say about new organizations? I'm sorry, the question is not really clear. Madyo, do you want to take that? Well, I think you might mean like the organizations that came out of first Asia, which, I mean, it's like how Google defines organization, right, I mean, like what is an organization, what is not, but like, let's say Google some more of code organization that is set up there. So we have two organizations that come out of first Asia, which is Pocket Science Lab here. Padmal is leading this project currently and we have Open Tech. There will be more projects coming out of Open Tech, which is also related to the Foundation for Free Information Infrastructure in Germany. And at Open Tech, they have agreed to also support the development of the open event system. So yes, this is, you can post your, you can add your applications to both these organizations, but be clear that new organizations don't take in as many students as existing organizations. So if you have like different proposals for these organizations, I definitely recommend to put up the applications and check. Yeah, I wish we could get more into detail about like how everything is set up and so on and everything is moving, but like maybe some of you will be joining us at the First Asia Summit next week and we can definitely talk more about this, but I'd recommend to you to apply and use these three proposals that you have, even if they are overlapping at some points, just try to increase your chances, apply everywhere where you can. Absolutely. So I think we're slowly running out of time, so I'll probably stop it with Anand's question and before that I'll take Sridhar's question. How important are UI, UX markups for a proposal, especially in an Android project? That depends on what part of the Android project you're really working on or what the proposal is about. If your proposal is more about the app and how people use the app and if it needs interfaces, definitely your UI and UX markups are really, really important part of your proposal. But if you're looking at more things like sync adapters and how your background services will run and how they interact with cloud services and so on, in that case, an architectural diagram of how you want this background sync services or sync adapter or Google Cloud Messaging Services to link, that's very important. In that case, obviously, you don't have a UI UX markup. So it really depends on what part of the Android project you really want to work on. Right? And I would add, I would like to add to this, the UI and people study UI for many years, yeah? We have this sometimes, we're asking for a logo. So they really like guidelines often or for example, a logo needs to work in two colors as well, right? So designers learn all of that and it's often very challenging. So markups can help us to understand how well of an understanding you have in this area, even though we can't give feedback about each single item. But I also often like to follow existing apps. So let's say if they have, like, let's say this example of Google, they came up years ago with their search interface and of course it was good. So everyone followed that example. And just because something is proprietary and closed source, it doesn't mean that we can't follow that example, right? And anyway, as we can see with open event, in the process, we will come up with new ideas that then will actually change the UI and so on. So if you make a search engine, I think the example is probably following Google's UI in this search example, because that's how most are doing it, Dr. Go, Yahoo, Bing, whoever is doing it. So if you're doing UI, check out what other market leaders are doing in this area because our goal is not just having some projects that can be hacked. I think our goal should be how can the mainstream, how can everyone use open source? How can we make free and open source software the main thing, like the mainstream in this world so we can all share across borders and everywhere? And I think this is also one exciting project. I didn't see any question about this, an exciting thing here in Google Summer of Code that we see people from very different backgrounds to work together. These days we have these political issues all over the world and we have like conflicts, Pakistan, India, China, the US, you're everywhere. However, in Google Summer of Code and in false Asia, we really see people from very different backgrounds to work together. So this is really something we want to foster here. Sudej, what do we do about the remaining questions? I think we can take one last question and maybe the rest of the questions, I would be really happy if someone redirected it either on the mailing list or on chat where some other community member can really take this question forward because we're slowly running out of time. And that said, I think I'll go with the last question, which is Anand's question, were any of the existing false Asia projects born from a GSOC proposal, right? I can tell you a personal experience, it may not be exactly born from a GSOC proposal, but the project that I first worked on as a student was low click. And when low click initially started, it was that year that my mentor, Michael, had presented that during the false Asia summit, right? And it was a proof of concept that said that, hey, here is something which I think works and which looks exciting enough. And then once we have the proof of concept, we really took it a step further by actually writing in a proposal and saying that maybe these are the bunch of things we should do next. And over a bunch of time, it had more than 15 to 20 students who worked on it over the past two to three years to, for it to become the state as it is today. So yes, my answer would be, yes, there are projects with, there are GSOC proposals which have resulted into full-fledged projects, but before it was accepted as a project which could be worked on by a student, there was a proof of concept for that particular project, right? And maybe I'll just take the last question, which is, I would suggest Kush for his question to actually go ahead and mail the PS lab, PS lab books from false Asia. And as far as I remember, the repository is on github.com for false Asia. You could always reach out to Mario or me for more information regarding that, but it would be better if you could reach out to Praveen. I can say this much, but the question is, my real doubt is that the project of PS lab has no repository which is working on developing the web server using JavaScript. Well, what we have to know here is really like, what would you like to develop? Because what I see is like a lot of components for this exist already, but they could be like big work and putting these different components together. So they are like lightweight servers that can be used or how you would like to do this. So what specifically you would like to do that would be very interesting, but definitely we would like for example, to have a small server running on a PS lab so it can be used as a standalone device so that you don't need other devices. And yeah, how you would like to implement that, please let us know. Yes. And maybe the last question for now, which is Sandeepan says that, Palsesia has a knitting Python library, which is very old. Why not start a new library? Example, data science and mining like that are mostly new needed technology. So Sandeepan, some parts of this question essentially, like using data science libraries or building a new mining library and so on are mostly a focus of most academic groups. So if you look at data science libraries, there is a Python library called Pandas. There is an equivalent library in R. So Python and R are the two most prominent programming languages used for data science. It does not make a lot of sense for us to start a new library by ourselves without the support of an academic community or without the support of a bunch of scientists computer scientists or data scientists or developers who are writing that code. So Julia was a programming language that started for solving a specific purpose. Rust was another programming language which became open source, which started for another specific purpose. So if there is a requirement, there is a different community which looks like that. Palsesia does not have any projects that deal very heavily with data science or data mining or things like that. We are more applied in terms of we build more applications rather than small libraries which empower other application developers. So that's the reason why we do not have any library. The knitting Python library was essentially something that started with Palsesia. And I think Mario will have more details about that. But yes, we do agree that it's quite old. And if there is a way that you know how to revive the entire project, and that's one of the bad parts about open source. Your project may be built, but over time your project could die. It is in those cases that we need new community members to actually come on board and revive that project to find a community for that project, to actually go ahead and build more things on top of the project with someone who knows. And that's the spirit of open source in general. So I would really recommend that maybe you should go ahead and look at how you can maybe enhance the library. But also try to understand from Palsesia's perspective whether there is an incentive in a new library, like for data science and so on, because there is pandas, there is other libraries, other programming languages, which know these things. So I hope that answers your question. Mario, you can take your final one. I think like sometimes like I feel things a bit mixed which I don't see immediately the connection to. So data science and knitting. Sure, there is a project from Fabienne. She also worked with us a bit who made like mathematical structures in knitting. And there are some mathematical knitting projects. They're very cool. Why it's a bit quieter around the knitting area right now. So like our goal was actually to make knitting happen on the existing knitting machines. And we wanted to use open source to do that. So we worked together with several people around the world. I think we got the core knitters like the mechanical engineers who are interested in knitting and the software engineers. And we got them together and we achieved this. So there's IAP project. For example, the other Mark Harnay was here at the First Asia Summit. He presented his project. So we did this. You can now use an Arduino, put it into an existing knitting machine and use your computer, use your PC to knit. But in order to really revive and move on with the knitting community, we need knitting machines. And we haven't been so far to produce our own knitting machines. So if the developers don't have the knitting machines, it's very difficult for them actually to try out everything. Like it works on the computer but doesn't really work for the knitters. So I hope we get there step by step. So we do the pocket science lab. We produce our own hardware. And so we have the first 50 devices of the next version here and at the First Asia Summit next week and we'll get the feedback and see when we can produce a larger amounts. And I hope we can do more devices that we see at one point knitting machines. And definitely there will be lots of cool and interesting problems that we need to solve on the way. So let's go step by step. And as we're heading to the end, I would like to point people again to our website and there is this apply drop down menu. And I think a lot of you didn't see that you can actually click on the apply itself and head to the programs and guidelines. So I just added on some of the pages already another drop down button. Let me maybe show you that on the screen here. Screen share, let me make a screen share and see if I can do this well. Yes, okay. So guys, please check this out. Can you see my screen share go to the apply and there's a programs and guidelines drop down item now. You click on it and you can find more information about the programs scroll down like here for example there's a link to a Google document with program guidelines where you can find out more information and yeah, scroll down here you find information like what do you do before you apply? What do you do when applying for coding projects during the coding program? So this gets you started and more details on this large link into the first Asia program guidelines. So please check all of this out. And I think if you read through it you have a very good understanding. And with this, I think we are like all set and yeah, can get a lot of good applications for you guys. So just on an ending note, thank you Mario. On an ending note, thank you all everyone for attending this live stream. Mario, I and the others of the community are more than happy to answer your questions and we look forward to all of your amazing student proposals this year, right? And we'll definitely reach out to you in case we want to add a petitions and we look forward to seeing a lot of you during the program code and working along with you. So thank you very much. Thank you, bye-bye. Bye everybody.