Hello everyone!
My name is iry. I am a GSoC student who will be mentored by both Sukhbir (sukhe) and Patrick Schleizer!
Although I have heard this good news for a while, I still feel great excitement and happiness every time I think about it. This is because contributing to the Tor/Whonix is my dream that has been encouraging me to move on. Therefore, you can imagine how appreciated I am to the Tor community for offering me such a great opportunity to let me get more involved with Tor!
The following is a Q&A about myself and the project I will be working on this summer. I hope it will help you have a better idea about me and the project I will be working on! Also, if there is any question, feedback or anything else you would like to discuss with me, please do not hesitate to let me know! I will be more than happy to discuss them with you!
#####What project would you like to work on? I would like to work on the anon-connection-wizard. It is a Python-clone of the Tor Launcher which aims at providing Tor users with a graphical instruction on configuring the Tor. This [application](https://github.com/Whonix/anon-connection-wizard) has been developed as a part of the Whonix Project. Some of the screenshots of its old version can be found [here](https://www.whonix.org/blog/connection-bridge-wizard).
This application is especially helpful for users who live in Tor-censored area. This is because those users can only connect to the Tor network with the help of other censorship circumvention tools which include but are not limited to Tor bridges, pluggable transports and other third party Internet censorship circumvention tools like Lantern and VPN.
Currently, the Tor Launcher is shipped with the Tor Browser Bundle and heavily relies on the Tor Browser for its implementation. Although thanks to the great efforts([[1]](https://git-tails.immerda.ch/tails/tree/config/chroot_local-hooks/06-adduser...), [[2]](https://git-tails.immerda.ch/tails/tree/config/chroot_local-hooks/10-tbb?h=d...), [[3]](https://git-tails.immerda.ch/tails/tree/config/chroot_local-includes/usr/loc...), [[4]](https://git-tails.immerda.ch/tails/tree/config/chroot_local-includes/usr/loc...)) of Tails, the Tor Launcher can be run as a stand-alone XUL application currently, since the XUL will not be supported by mozilla in Firefox ESR branch anymore [some time next year](https://blog.mozilla.org/addons/2016/11/23/add-ons-in-2017/), that implementation may not work for a long time. Beiseds, I agree with the Whonix core developer Patrick Schleizer that "the Tor Browser Bundle has its kind of users. system Tor (refers to Tor from packages.debian.org or deb.torproject.org) users, where Tor runs as daemon, is used in different ways for different purposes".
Therefore, although anon-connection-wizard is a Python-clone of the Tor luancher, since all its dependencies are already in Debian and already packaged, it can still serve as a really useful tool for the system Tor users or a loose coupling substituition to the Tor Launcher.
In addition, the current instructions provided by the anon-connection-wizard and Tor launcher is not clear enough for users to configure Tor correctly. Therefore I would like to implement and redesign the anon-connection-wizard. I hope that my work will help more people to connect to the Tor network efficiently and successfully.
#####Your proposal should also try to break down the project into tasks of a fairly fine granularity, and convince us you have a plan for finishing it.
As mentioned above, my project goals include two main parts:
######The clone implementation of Tor Launcher: Currently, I have helped to implement the basic functions of anon-connection-wizard. However, there are still several bugs need fixing and a large number of exciting features need implementing, which include:
1. The current implementation of configuring torrc file is very rudimentary. The anon-connection-wizard should read the previous bridge/proxy configuration from the file and adjust the default UI accordingly. Just like what Tor Launcher has been doing. The ["edit marker approach"](https://forums.whonix.org/t/graphical-gui-whonix-setup-wizard-anon-connectio...) is preferred way to implement this; 2. The password for proxy setting should be covered by character *.
######The redesign of the anon-connection-wizard: I have made a specific [proposal](https://forums.whonix.org/t/a-proposal-for-redesigning-anon-connection-wizar...) for this topic. And the redesign should at least includes:
1. Rearranging the instruction page orders for better usability; 2. Rewriting the literal instruction so that it fits the actual situation of people in censored areas; 3. Adding more features to the custom Tor bridges configuration input box for more clear instruction. For example, syntax highlight, tool-tips, etc; 4. Doing user behavior experiment to find out what can be helpful for better usability; 5. Modifying the anon-connection-wizard based on the result of the experiment.
#####A timeline for what you will be doing throughout the summer is highly recommended.
Since the specific dates may be changed with the undecided working schedule. I arrange my timeline in a week unit. Please notice that I have communicated with my potential mentor that we can work on some tasks in advance if the project plan for a specific week is finished earlier than expected.
| TIME | TODO | |------|------| |Week 1 | The password for proxy setting should be covered by character *.| |Week 3 | Rewrite the literal instruction so that it fits the actual situation of people in censored areas.| |Week 4 | Generate ideas on redesigning the anon-continence-wizard users interface, basing on the recommendations from outside sources,problems discussed above and suggestions from other people. Present the planning redesign to public to receive feedback.| |Week 5 | Rearrange the instruction page orders for better usability; Rewriting the literal instruction so that it fits the actual situation of people in censored areas.| |Week 6 | Add more features to the custom Tor bridges configuration input box for more clear instruction. For example, syntax highlight, tool-tips, etc.| |Week 7 | Prepare for the user behavior experiment, including recruitment and setting up environment.| |Week 8 | Conduct the experiment.| |Week 9 | Process and analysis the experiment data.| |Week 10| Write the research report.| |Week 11| Modify the anon-connection-wizard based on the result of the experiment.| |Week 12| Modify the anon-connection-wizard based on the result of the experiment.|
#####Point us to a code sample: something good and clean to demonstrate that you know what you're doing, ideally from an existing project.
The followings are a part of my pull requests to the anon-connection-wizard project on GitHub: 1. [Basic features implementation](https://github.com/Whonix/anon-connection-wizard/pull/1); 2. [Pluggable transport renew](https://github.com/Whonix/anon-connection-wizard/pull/2); 3. [Port from Python2 to Python3.4 & from PyQt4 to PyQt5](https://github.com/Whonix/anon-connection-wizard/pull/4).
The following is my proposal for the redesign of anon-connection-wizard in Whonix Forum: 1. [A proposal for redesigning anon-connection-wizard for better usability](https://forums.whonix.org/t/a-proposal-for-redesigning-anon-connection-wizar...)
#####Why do you want to work with The Tor Project in particular?
As one who was living in oppressive area, I deeply understand the importance of Internet freedom to a society. At first, I merely considered Internet freedom as fighting against Internet censorship. However, after a large amount of observation, reading and reflection, I realized that the self-censorship conducted by every scared citizens was much more powerful and terrible than the censorship conducted by the outside world. It was at that moment I realized the online anonymity was a vital component to Internet freedom because it frees people from fear.
I value Tor/Whonix. Without it, I couldn't have been freed from the fear and explored the world freely and finally became who I am today.
Therefore, contributing to Tor/Whonix as a career is not only a dream that I have been fighting for, but also an essential approach to my self-actualization.
#####Tell us about your experiences in free software development environments. We especially want to hear examples of how you have collaborated with others rather than just working on a project by yourself. I agree that “[o]pen and clear communication is of utmost importance”. This is because of two main reasons from my point of view. First, a successful free and open source software development heavily relies on the collaboration between different people. A good communication skill will create a positive and supportive atmosphere which not only make everyone works for it more efficient but also attracts more people to join the development. Second, feedback from others, especially mentor, can be extremely beneficial to a student’s progress. Without the feedback, it may take a student years until one day after a frustrating debugging process to realize a mistake he/she made; while he/she may realize several mistakes he/she made almost immediately from his/her mentor’s feedback.
I have already been working on the project with my potential mentor Patrick Schleizer. A small part of our open communication can be found [here](https://forums.whonix.org/t/graphical-gui-whonix-setup-wizard-ano n-connection-wizard-technical-discussion/650/222), which may be helpful to prove we have been having an open and clear communication. I also take Jean-Philippe Ouellet's words said on the Qubes-devel mailing list as an encouragement to me:
This kind of detailed and engaged communication is a model to all GSoC
applicants
#####Will your project need more work and/or maintenance after the summer ends? Yes! Tails developer anonym pointed out a promising future for the anon-connection-wizard on the tor-dev mailing list:
"I also see potential for future collaboration between Whonix and Tails
for extending the usefulness of anon-connection-wizard beyond what Tor Launcher (and its replacement) offers [2]; anon-connection-wizard targets the OS, not just a single application, so it could integrate the choices of network configuration (wired? which wireless network? MAC spoofing?) and Tor configuration (proxy? pluggable transport?) in a single place which probably makes more sense for users and also allows us to more easily (optionally) save these settings so they are restored the next time you visit the same network. This could potentially even be used to help giving users control over entry node selection to avoid persistent Entry Guards from leaking information about you geographical movement. [3]"
#####What are the chances you will stick around and help out with that and other related projects? Since I would like to take contributing to Tor/Whonix as a career, I will definitely stick around the Tor/Whonix community and help out with the future development of my project and other related ones. I never consider my project as a one-time project. Instead, I consider it as an important step to help myself get more invovled in the Tor/Whonix community.
#####What is your ideal approach to keeping everybody informed of your progress, problems, and questions over the course of the project? Said another way, how much of a "manager" will you need your mentor to be?
My plan is to take the [Whonix Forum](https://forums.whonix.org/) as the daily communication platform with my potential mentor Patrick. And just like what I have been doing, I will also post a detailed progress report for each working period which is no more than a week. Since the anon-connection-wizard is hosted on Github right now, people can also take it as a way to see my commits and progress. I can also send the posts to the tor-dev mailing list if it is considered as a good idea.
#####How can we contact you?
Currently, people can contact me through the following ways:
1. Email: iry at riseup dot net [GPG](https://pgp.mit.edu/pks/lookup?op=vindex&search=0xA14B4DBC6DCDD53C) 2. Github: @irykoon 3. Whonix Forum: @iry
I will inform the public if there is any change to my contact information.
#####In addition, what's your IRC nickname? Interacting with us on IRC will help us get to know you, and help you get to know our community.
I am going to join the IRC and inform the public my IRC nickname before the end of the next week.