Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Google Summer of Code 2016: Getting Started #934

Closed
mhils opened this issue Feb 14, 2016 · 6 comments

Comments

@mhils
Copy link
Member

commented Feb 14, 2016

gsoc

mitmproxy is participating under the umbrella of the Honeynet project in the Google Summer of Code 2016. We have two exciting project proposals (here and here) and are open for other ideas as well.

This issue is targeted at potential GSoC students to help them getting started and write a strong proposal. If there are any questions, please don't hesistate to comment below 😃


Picking the right students for a Google Summer of Code is hard - we really want to encourage people to get involved into open source, but how do we determine who's best suited for a particular project? Here comes your part: Show us that you're super enthusiastic, autonomous and good at coding! 🎉
Most importantly, your proposal should demonstrate two things: You have the ability to execute and you truly believe that mitmproxy is an interesting project to work on.

Demonstrate that you are capable of fulfilling the project!

While many of you probably have a good theoretical background from your university, you should show us that you can code as well:

  • Do you have a cool/interesting side project or class project? Show it to us! Even better if it's open source and we can read the code!
  • Have you ever contributed to an open source project? Show us what you did!
  • No previous projects you could show? Add a feature and/or fix a bug in mitmproxy!

Any of these may suffice - if you are a django core contributor, we won't be questioning your coding skills. 😉

Demonstrate that you really want to contribute to mitmproxy!

The brick walls are there for a reason. The brick walls are not there to keep us out; the brick walls are there to give us a chance to show how badly we want something. The brick walls are there to stop the people who don't want it badly enough. They are there to stop the other people! [1]

Google accepts a variety of mentoring organizations every year, each of them with multiple projects. Now, why do you want to work on mitmproxy specifically? We do not just want to hear a chorus of praise here ("mitmproxy is a great tool"). Instead, play around with it and tell us about your experiences:

  • Use mitmproxy to analyze a popular Android or iOS app or anything else. There are many hidden treasures/security issues to be found [2]! Show us what you analyzed (screenshots), what you found, where mitmproxy was good/not good etc! :-)
  • Write a nice inline script that does something cool with a webpage! For example, we have an example script that turns all PNGs upside down (src). Try to come up with something creative :-)
  • Again, a good way to show that you're a good candidate is to fix a bug, propose or implement a feature, add something that was unclear to you to the docs, etc.

Get in touch!

We hang out on Slack (#gsoc on http://slack.mitmproxy.org), IRC (#gsoc-honeynet at Freenode), there is the mailing list and of course you can just comment here. Try to ask us good questions! 😃

Good starting points for a contribution

Contributing to mitmproxy directly is an optional part of your proposal. If you can convince us by other means that you'd be a strong student (e.g. strong past experience with other open source projects), that's good, too.

  • Fix bugs or add features. Make sure to filter the issue list by "good first contribution", which includes suitable tasks. If you are tackling an issue, please leave a brief comment so that we don't have duplicated effort.
  • Add some docstrings to the code! Read a bit through mitmproxy or netlib, take a somewhat complex undocumented class/function, find out what it does and add a quick doc string explaining what it is.
  • Write a cool inline script!
  • Improve the docs. If you're proficient in English, feel free to make our docs better! If you feel that your english isn't proficient enough, don't worry and try to focus on the other tasks. 😃
  • Web UI: Add something useful! :-)

Make sure to have a plan!

For your GSoC proposal (please use the template!), you need to write down a roadmap/timeline for your project. Think about which features you need to develop to accomplish your goal, split your project into subtasks and make sure that you'll end up with a viable timeline. Having roughly one dedicated task per week would be a good way to track the progress of the project as well. If you already identified potential issues/caveats for your endeavour, make sure to discuss them in the proposal as well!

Last but not least: GSoC is fun. Enjoy it! :-)


FAQ

1. There's a skilled, hyper-motivated student already working hard on the project I want to apply for. Should I even bother to apply?

Yes! First, if we get two convincing proposals for one project idea, we will try to just take them both¹. Second, if we cannot take you for some reason, we will actively introduce you to other projects that match your skills and interests after the application deadline. Don't worry about competition! :-)

¹) This requires that the project can be split (and extended) in a way that there are no critical interdependencies between the students. You will not get a project which depends on another student's work. This year, we'd be open to split both of our project ideas.

2. I want to implement $MAJOR_FEATURE_X to show that I'm a super capable student!

This is great, but please please do not send us a single giant pull request! Please try to show us that you can split major tasks into small, (mostly) isolated parts. A PR is never to small for first time contributors. ☺️

3. In the application template, there's a question about Windows, Unix or Mac OS X development experience relevant to your chosen project. What do you expect me to write there?

The application template is shared by all Honeynet projects. Some of our projects may require knowledge of low-level OS internals (e.g. Cuckoo Sandbox), but for mitmproxy it does not really matter. Just mention the OS you develop on and you're good.

@saugatt

This comment has been minimized.

Copy link

commented Feb 28, 2016

I am very interested in working on mitmproxy in GSoC program but I am having difficulty getting along with the project. I have got some questions regarding your suggestions for good first contribution.

  • Does the community provide some kind of mentoring program for a new contributor, as a newbie to mitmproxy, few things get intimidating. It would be great if there someone experienced you give us some guidance.
  • Is there a link to contributor's wiki or a forum, so it can be easier to get started and I think some of the challenges that I am facing must be the ones faced by others when they started with the project.
  • Regarding the doc strings, after writing them, how are we supposed to submit them.
  • I could not get the template link working.

I hope this is not overwhelming but I believe these are some of the questions that first-time contributors have in their mind.
Looking forward to working together on the project. 😃

@mhils

This comment has been minimized.

Copy link
Member Author

commented Feb 29, 2016

Hi @saugatt,

Does the community provide some kind of mentoring program for a new contributor, as a newbie to mitmproxy, few things get intimidating. It would be great if there someone experienced you give us some guidance.
Is there a link to contributor's wiki or a forum, so it can be easier to get started and I think some of the challenges that I am facing must be the ones faced by others when they started with the project.

I'd suggest you just join us on Slack - we're happy to answer questions in #gsoc. 😃

Regarding the doc strings, after writing them, how are we supposed to submit them.

Please send a pull request! :-)

I could not get the template link working.

Thanks for letting us know - we'll fix that over the coming days. :-)

Cheers,
Max

@kunal394

This comment has been minimized.

Copy link

commented Mar 4, 2016

Hi mhils, about joining the team on slack, what is the team address / team's slack doamin?

@dufferzafar

This comment has been minimized.

Copy link
Contributor

commented Mar 4, 2016

@kunal394

This comment has been minimized.

Copy link

commented Mar 4, 2016

dufferzafar, I think i need an invite to join the team

@mhils

This comment has been minimized.

Copy link
Member Author

commented Mar 4, 2016

slack.mitmproxy.org gets you signed up!

Shadab Zafar notifications@github.com schrieb am Fr., 4. März 2016 15:16:

https://mitmproxy.slack.com/


Reply to this email directly or view it on GitHub
#934 (comment)
.

@mhils mhils closed this Apr 15, 2016

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
4 participants
You can’t perform that action at this time.