[tor-dev] GSOC 2017: Revised Proposal for anon-connection-wizard

irykoon irykoon at gmail.com
Mon Mar 27 16:48:12 UTC 2017


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Hello everyone!

I have revised my previous proposal with the help of anonym's
feedback. Could anyone offer me some feedback about it please? Any
recommendation, suggestion and criticism are very welcome and appreciate
d!

#####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_loca
l-hooks/06-adduser_tor-launcher?h=devel),
[[2]](https://git-tails.immerda.ch/tails/tree/config/chroot_local-hooks/
10-tbb?h=devel),
[[3]](https://git-tails.immerda.ch/tails/tree/config/chroot_local-includ
es/usr/local/sbin/tails-tor-launcher?h=devel),
[[4]](https://git-tails.immerda.ch/tails/tree/config/chroot_local-includ
es/usr/local/bin/tor-launcher?h=devel))
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 [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-connection-wizard-technical-discussion/650/226)
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-c
onnection-wizard-for-better-usability/3681)
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 advanve 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
situationy 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-c
onnection-wizard-for-better-usability/3681)


#####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 you be working full-time on the project for the summer, or
will you have other commitments too (a second job, classes, etc)? If
you won't be available full-time, please explain, and list timing if
you know them for other major deadlines (e.g. exams). Having other
activities isn't a deal-breaker, but we don't want to be surprised.

I am going to be enrolled for the Summer 2017 semester that begins May
22nd and ends June 23th at XXX University. I am going to take two
classes from Monday to Friday for each week during the Summer
semester. One will be from 3:20PM to 5:00PM (UTC) and another one will
be from 7:00PM to 8:40PM (UTC).

The sum of the time I will be in class for each weekday will be 3
hours and 20 minute which is totally fine to me. My current overall
GPA is 4.0/4.0 which may help to prove I can handle my school study
well. According to Google Summer of Code timeline, the “[c]oding
officially begins” at May 30th which means there will be approximate
three weeks that I have both school study and Google Summer of Code.

To work around it, I have came up with three plans which either of
them is fine to my potential mentor:
1. Since I have been familiar with the contributing workflow for
Whonix, I do not have to spend a lot of time to get used to it.
Therefore I can use the “Community Bonding Period” which is from May
4th to May 30th to do the real coding for the project;
2. I can also keep committing to the project during each weekend from
now on before May 4th . This is also a way to work around the time
conflicts.
3. If I am expected to code only during the official timeline, I can
spend 5 hours each day during the weekdays and spend 8 hours each day
during the weekends.

#####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.

#####What school are you attending? What year are you, and what's your
major/degree/focus? If you're part of a research group, which one?

If these information is necessary, please do not hesitate to contact
me. My contact information is listed in the next section.

#####How can we contact you to ask you further questions?

Currently, people can contact me through the following ways:

1. Email: irykoon at gmail dot com
[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 informatio
n.

#####Are you applying to other projects for GSoC and, if so, what
would be your preference if you're accepted to both? Having a stated
preference helps with the deduplication process and will not impact if
we accept your application or not.
I am going to submit the same proposal to both the Tor Project and the
Qubes Project. This is because I would like to avoid the situiation
where one of the projects does not get as many slots as it wants from
google. I will be extremly happy to be accepted by either of the
projects. Since my project may benifit the Tor Project more, I would
prefer it when I am accepted by both of the projects.
-----BEGIN PGP SIGNATURE-----

iQIcBAEBCgAGBQJY2UGjAAoJEKFLTbxtzdU8coMQAIsfxRw5Fdyrnwp6Rb13zpEh
ugDr9FdDOuIMmIQbEKn+kXoYUoECuuDXa0r+DLOS9HodPJ6MrksDr8956HsusEnw
7XyJLlfL+pccNPzsyXe+O5UgiMYlmIJpH4+7tHyZ0bYkjzrxsa6TPaP/iODoby3d
B2f5GUXgt5X1vpGBmGGVpOzTYTSJwnNaFfpE4O6dCm41aMsuMsIGj1vRH80SqrsT
XJKBdgEKbwewGEwLNgdMx5XlH+9rARv0Ytx83GI8894sx80Rl2S9wL9D5km7IoWW
n3+8HS0wzFOkCIFPumfAtwAHtJRTyWVEc4jr/waObPwJtK/cnoOwkVHXbimvnWoc
dr7qjNBDDms98rXDD6gxgKToIKgdgDJetMW9QWhDBTXuZcbq6bwmONoTZ94/4mR6
V0E2HhGkjF/RLCu8dP+oHVPdEsFN1er/l9SEUreqF78+VRFwspAc7y5nIo/0WXDV
t/zKeiqYjsw+bHC7Dbaxax67QXNuWe3viToCYtPOKGMat7ORlTj+eqNaE6iRt+q/
N91Wd/B86v5ibWy9UEN4Uo/FqwT+YOjOYJ1yoXZRmnrdwhYalAt3ESCqCi3cMDc8
eRQGbtCwGeaGd5g03OfBe8zQwswj11yTwi1xsIOL/RdVXt7Af6Q1MMd6a0g0Rub0
6WV1NX+Knl88tbzyRpQ5
=ioNx
-----END PGP SIGNATURE-----


More information about the tor-dev mailing list